bgarcial

Untitled

Apr 7th, 2017
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.85 KB | None | 0 0
  1. # Python code
  2. class AccountProfilesView(LoginRequiredMixin, UpdateView):
  3.     # All users can access this view
  4.     model = get_user_model()
  5.     #success_url = reverse_lazy('dashboard')
  6.     template_name = 'accounts/profile_form.html'
  7.     fields = '__all__'
  8.  
  9.     def get_context_data(self, **kwargs):
  10.         context = super(AccountProfilesView, self).get_context_data(**kwargs)
  11.         user = self.request.user
  12.        
  13.         # Can define before the forms? Is possible?
  14.         profesor_form = forms.ProfessorProfileForm()
  15.         student_form = forms.StudentProfileForm()
  16.         executive_form = forms.ExecutiveProfileForm()
  17.  
  18.         if not self.request.POST:
  19.             if user.is_student:
  20.                 profile = user.get_student_profile()
  21.                 context['userprofile'] = profile
  22.                 context['form_student'] = forms.StudentProfileForm()
  23.             elif user.is_professor:
  24.                 profile = user.get_professor_profile()
  25.                 context['userprofile'] = profile
  26.                 context['form_professor'] = forms.ProfessorProfileForm()
  27.             elif user.is_executive:
  28.                 profile = user.get_executive_profile()
  29.                 context['userprofile'] = profile
  30.                 context['form_executive'] = forms.ExecutiveProfileForm()
  31.             elif user.is_student and user.is_professor and user.is_executive:
  32.                 student_profile = user.get_student_profile()
  33.                 professor_profile = user.get_professor_profile()
  34.                 executive_profile = user.get_executive_profile()
  35.  
  36.                 context['student_profile'] = student_profile
  37.                 context['professor_profile'] = professor_profile
  38.                 context['executive_profile'] = executive_profile
  39.  
  40.                 context['form_student'] = forms.StudentProfileForm()
  41.                 context['form_professor'] = forms.ProfessorProfileForm()
  42.                 context['form_executive'] = forms.ExecutiveProfileForm()
  43.         return context
  44.  
  45.     # Post method
  46.     def post(self, request, *args, **kwargs):
  47.         self.object = self.get_object()
  48.         user = self.request.user
  49.         if user.is_student:
  50.             context['form_student'] = forms.StudentProfileForm(self.request.POST)
  51.         elif user.is_professor:
  52.             context['form_professor'] = forms.ProfessorProfileForm(self.request.POST)
  53.         elif user.is_executive:
  54.             context['form_executive'] = forms.ExecutiveProfileForm(self.request.POST)
  55.         '''
  56.       elif user.is_student and user.is_professor and user.is_executive:
  57.           context['form_student'] = forms.StudentProfileForm(self.request.POST)
  58.           context['form_professor'] = forms.ProfessorProfileForm(self.request.POST)
  59.           context['form_executive'] = forms.ExecutiveProfileForm(self.request.POST)
  60.       '''
  61.  
  62.         return super(AccountProfilesView, self).post(request, *args, **kwargs)
  63.    
  64.     # Validating form
  65.     def form_valid(self, form):
  66.         context = self.get_context_data(form=form)
  67.         user = self.request.user
  68.         user = form.save()
  69.         if user.is_student:
  70.             student = context['form_student'].save(commit=False)
  71.             student.user = user
  72.             student.save()
  73.         elif user.is_professor:
  74.             professor = context['form_professor'].save(commit=False)
  75.             professor.user = user
  76.             professor.save()
  77.         elif user.is_executive:
  78.             executive = context['form_executive'].save(commit=False)
  79.             executive.user = user
  80.             executive.save()
  81.         return super(AccountProfilesView, self).form_valid(form)
  82.  
  83.     def get_success_url(self):
  84.         return reverse('dashboard')
  85.  
  86. # My template
  87.  
  88. {% extends 'layout.html' %}
  89. {% load bootstrap3 %}
  90.  
  91. {% block title_tag %}Accounts | Profile | iHost {{ block.super }}{% endblock %}
  92.  
  93. {% block body_content %}
  94. <div class="container">
  95.     <h1>My Profile</h1>
  96.     <form method="POST">
  97.  
  98.         {% csrf_token %}
  99.         {% if userprofile.user.is_student %}
  100.             {% bootstrap_form form_student %}
  101.         {% endif %}
  102.  
  103.         {% if userprofile.user.is_professor %}  
  104.             {% bootstrap_form form_professor %}
  105.         {% endif %}
  106.  
  107.         {% if userprofile.user.is_executive %}
  108.             {% bootstrap_form form_executive %}    
  109.         {% endif %}
  110.        
  111.         {% if userprofile.user.is_student %}
  112.             {% if userprofile.user.is_professor %}
  113.                 {% if userprofile.user.is_executive%}
  114.                     {% bootstrap_form form_student %}
  115.                     {% bootstrap_form form_professor %}
  116.                     {% bootstrap_form form_executive %}
  117.                 {% endif %}
  118.             {% endif %}
  119.         {% endif %}
  120.  
  121.  
  122.  
  123.        
  124.         <input type="submit" value="Save Changes" class="btn btn-default">
  125.     </form>
  126. </div>
  127.  
  128. {% endblock %}
Advertisement
Add Comment
Please, Sign In to add comment