vkk.workhours.accounting.users.views
1from smtplib import SMTPException 2from vkk.workhours.accounting.views import AccountingCreateView, AccountingDetailView 3from vkk.users.models import User, NewUser, send_registration_mail 4from vkk.workhours.models import ProjectAssignment, ProjectManager 5 6class UserCreateView(AccountingCreateView): 7 model = User 8 fields = ['first_name', 'last_name', 'email'] 9 10 def form_valid(self, form): 11 user = form.instance 12 user.set_unusable_password() 13 response = super().form_valid(form) 14 try: 15 send_registration_mail(user) 16 except SMTPException: 17 user.delete() 18 raise 19 return response 20 21class AccountingUserDetailView(AccountingDetailView): 22 template_name = 'vkk/workhours/accounting/users/details.html' 23 model = User 24 fields = ['first_name', 'last_name', 'email', 'last_login', 'is_accountant', 'is_active'] 25 26 def get_context_data(self, **kwargs): 27 context = super().get_context_data(**kwargs) 28 manages = ProjectManager.objects.filter( 29 manager__pk=self.kwargs['pk'] 30 ).select_related('project').order_by('project__invoice_number') 31 assignments = ProjectAssignment.objects.filter( 32 contributor__pk=self.kwargs['pk'] 33 ).select_related('project').order_by('project__invoice_number') 34 context['manages'] = manages 35 context['assignments'] = assignments 36 return context
7class UserCreateView(AccountingCreateView): 8 model = User 9 fields = ['first_name', 'last_name', 'email'] 10 11 def form_valid(self, form): 12 user = form.instance 13 user.set_unusable_password() 14 response = super().form_valid(form) 15 try: 16 send_registration_mail(user) 17 except SMTPException: 18 user.delete() 19 raise 20 return response
Verify that the current user has accountant rights.
def
form_valid(self, form):
11 def form_valid(self, form): 12 user = form.instance 13 user.set_unusable_password() 14 response = super().form_valid(form) 15 try: 16 send_registration_mail(user) 17 except SMTPException: 18 user.delete() 19 raise 20 return response
If the form is valid, save the associated model.
Inherited Members
- django.views.generic.base.View
- View
- view_is_async
- as_view
- setup
- http_method_not_allowed
- options
- django.contrib.auth.mixins.AccessMixin
- get_login_url
- get_permission_denied_message
- get_redirect_field_name
- handle_no_permission
- django.views.generic.detail.SingleObjectTemplateResponseMixin
- get_template_names
- django.views.generic.base.TemplateResponseMixin
- render_to_response
- django.views.generic.edit.BaseCreateView
- get
- post
- django.views.generic.edit.ModelFormMixin
- get_form_class
- get_form_kwargs
- django.views.generic.edit.FormMixin
- get_initial
- get_prefix
- get_form
- form_invalid
- get_context_data
- django.views.generic.detail.SingleObjectMixin
- get_object
- get_queryset
- get_slug_field
- get_context_object_name
- django.views.generic.edit.ProcessFormView
- put
22class AccountingUserDetailView(AccountingDetailView): 23 template_name = 'vkk/workhours/accounting/users/details.html' 24 model = User 25 fields = ['first_name', 'last_name', 'email', 'last_login', 'is_accountant', 'is_active'] 26 27 def get_context_data(self, **kwargs): 28 context = super().get_context_data(**kwargs) 29 manages = ProjectManager.objects.filter( 30 manager__pk=self.kwargs['pk'] 31 ).select_related('project').order_by('project__invoice_number') 32 assignments = ProjectAssignment.objects.filter( 33 contributor__pk=self.kwargs['pk'] 34 ).select_related('project').order_by('project__invoice_number') 35 context['manages'] = manages 36 context['assignments'] = assignments 37 return context
Verify that the current user has accountant rights.
def
get_context_data(self, **kwargs):
27 def get_context_data(self, **kwargs): 28 context = super().get_context_data(**kwargs) 29 manages = ProjectManager.objects.filter( 30 manager__pk=self.kwargs['pk'] 31 ).select_related('project').order_by('project__invoice_number') 32 assignments = ProjectAssignment.objects.filter( 33 contributor__pk=self.kwargs['pk'] 34 ).select_related('project').order_by('project__invoice_number') 35 context['manages'] = manages 36 context['assignments'] = assignments 37 return context
Insert the single object into the context dict.
Inherited Members
- django.views.generic.base.View
- View
- view_is_async
- as_view
- setup
- http_method_not_allowed
- options
- django.contrib.auth.mixins.AccessMixin
- get_login_url
- get_permission_denied_message
- get_redirect_field_name
- handle_no_permission
- django.views.generic.detail.SingleObjectTemplateResponseMixin
- get_template_names
- django.views.generic.base.TemplateResponseMixin
- render_to_response
- django.views.generic.detail.BaseDetailView
- get
- django.views.generic.detail.SingleObjectMixin
- get_object
- get_queryset
- get_slug_field
- get_context_object_name