vkk.workhours.accounting.users.views
This submodule contains all fo the class based views of this module.
1""" 2This submodule contains all fo the class based views of this module. 3""" 4 5from smtplib import SMTPException 6from vkk.workhours.accounting.views import AccountingCreateView, AccountingDetailView 7from vkk.users.models import User, NewUser, send_registration_mail 8from vkk.workhours.models import ProjectAssignment, ProjectManager 9 10class UserCreateView(AccountingCreateView): 11 """ 12 A class based view providing functionality for creating new `User`s. 13 """ 14 model = User 15 fields = ['first_name', 'last_name', 'email'] 16 17 def form_valid(self, form): 18 """ 19 Saves the asscoated `Form` data and returns said instance. 20 """ 21 user = form.instance 22 user.set_unusable_password() 23 response = super().form_valid(form) 24 try: 25 send_registration_mail(user) 26 except SMTPException: 27 user.delete() 28 raise 29 return response 30 31class AccountingUserDetailView(AccountingDetailView): 32 """ 33 A class based `View` providing functionality for displaying a `User`s details. 34 """ 35 template_name = 'vkk/workhours/accounting/users/details.html' 36 model = User 37 fields = ['first_name', 'last_name', 'email', 'last_login', 'is_accountant', 'is_active'] 38 39 def get_context_data(self, **kwargs): 40 """ 41 Returns a context for rendering a page containg user details. 42 """ 43 context = super().get_context_data(**kwargs) 44 manages = ProjectManager.objects.filter( 45 manager__pk=self.kwargs['pk'] 46 ).select_related('project').order_by('project__invoice_number') 47 assignments = ProjectAssignment.objects.filter( 48 contributor__pk=self.kwargs['pk'] 49 ).select_related('project').order_by('project__invoice_number') 50 context['manages'] = manages 51 context['assignments'] = assignments 52 return context
11class UserCreateView(AccountingCreateView): 12 """ 13 A class based view providing functionality for creating new `User`s. 14 """ 15 model = User 16 fields = ['first_name', 'last_name', 'email'] 17 18 def form_valid(self, form): 19 """ 20 Saves the asscoated `Form` data and returns said instance. 21 """ 22 user = form.instance 23 user.set_unusable_password() 24 response = super().form_valid(form) 25 try: 26 send_registration_mail(user) 27 except SMTPException: 28 user.delete() 29 raise 30 return response
A class based view providing functionality for creating new User
s.
model =
<class 'vkk.users.models.User'>
def
form_valid(self, form):
18 def form_valid(self, form): 19 """ 20 Saves the asscoated `Form` data and returns said instance. 21 """ 22 user = form.instance 23 user.set_unusable_password() 24 response = super().form_valid(form) 25 try: 26 send_registration_mail(user) 27 except SMTPException: 28 user.delete() 29 raise 30 return response
Saves the asscoated Form
data and returns said instance.
Inherited Members
- django.views.generic.base.View
- View
- http_method_names
- view_is_async
- as_view
- setup
- http_method_not_allowed
- options
- django.contrib.auth.mixins.AccessMixin
- login_url
- permission_denied_message
- raise_exception
- redirect_field_name
- get_login_url
- get_permission_denied_message
- get_redirect_field_name
- handle_no_permission
- django.views.generic.edit.CreateView
- template_name_suffix
- django.views.generic.detail.SingleObjectTemplateResponseMixin
- template_name_field
- get_template_names
- django.views.generic.base.TemplateResponseMixin
- template_engine
- response_class
- content_type
- 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
- initial
- form_class
- success_url
- prefix
- get_initial
- get_prefix
- get_form
- form_invalid
- get_context_data
- django.views.generic.detail.SingleObjectMixin
- queryset
- slug_field
- context_object_name
- slug_url_kwarg
- pk_url_kwarg
- query_pk_and_slug
- get_object
- get_queryset
- get_slug_field
- get_context_object_name
- django.views.generic.base.ContextMixin
- extra_context
- django.views.generic.edit.ProcessFormView
- put
32class AccountingUserDetailView(AccountingDetailView): 33 """ 34 A class based `View` providing functionality for displaying a `User`s details. 35 """ 36 template_name = 'vkk/workhours/accounting/users/details.html' 37 model = User 38 fields = ['first_name', 'last_name', 'email', 'last_login', 'is_accountant', 'is_active'] 39 40 def get_context_data(self, **kwargs): 41 """ 42 Returns a context for rendering a page containg user details. 43 """ 44 context = super().get_context_data(**kwargs) 45 manages = ProjectManager.objects.filter( 46 manager__pk=self.kwargs['pk'] 47 ).select_related('project').order_by('project__invoice_number') 48 assignments = ProjectAssignment.objects.filter( 49 contributor__pk=self.kwargs['pk'] 50 ).select_related('project').order_by('project__invoice_number') 51 context['manages'] = manages 52 context['assignments'] = assignments 53 return context
A class based View
providing functionality for displaying a User
s details.
model =
<class 'vkk.users.models.User'>
def
get_context_data(self, **kwargs):
40 def get_context_data(self, **kwargs): 41 """ 42 Returns a context for rendering a page containg user details. 43 """ 44 context = super().get_context_data(**kwargs) 45 manages = ProjectManager.objects.filter( 46 manager__pk=self.kwargs['pk'] 47 ).select_related('project').order_by('project__invoice_number') 48 assignments = ProjectAssignment.objects.filter( 49 contributor__pk=self.kwargs['pk'] 50 ).select_related('project').order_by('project__invoice_number') 51 context['manages'] = manages 52 context['assignments'] = assignments 53 return context
Returns a context for rendering a page containg user details.
Inherited Members
- django.views.generic.base.View
- View
- http_method_names
- view_is_async
- as_view
- setup
- http_method_not_allowed
- options
- django.contrib.auth.mixins.AccessMixin
- login_url
- permission_denied_message
- raise_exception
- redirect_field_name
- get_login_url
- get_permission_denied_message
- get_redirect_field_name
- handle_no_permission
- django.views.generic.detail.SingleObjectTemplateResponseMixin
- template_name_field
- template_name_suffix
- get_template_names
- django.views.generic.base.TemplateResponseMixin
- template_engine
- response_class
- content_type
- render_to_response
- django.views.generic.detail.BaseDetailView
- get
- django.views.generic.detail.SingleObjectMixin
- queryset
- slug_field
- context_object_name
- slug_url_kwarg
- pk_url_kwarg
- query_pk_and_slug
- get_object
- get_queryset
- get_slug_field
- get_context_object_name
- django.views.generic.base.ContextMixin
- extra_context