bgarcial

Untitled

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