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
class UserCreateView(vkk.workhours.accounting.views.AccountingCreateView):
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 Users.

model = <class 'vkk.users.models.User'>
fields = ['first_name', 'last_name', 'email']
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
vkk.workhours.accounting.mixins.AccountantRequiredMixin
dispatch
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
vkk.generic.views.CustomCreateView
on_success
template_name
vkk.generic.mixins.OnSuccessMixin
drop_key
kwarg_override
get_success_url
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
class AccountingUserDetailView(vkk.workhours.accounting.views.AccountingDetailView):
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 Users details.

template_name = 'vkk/workhours/accounting/users/details.html'
model = <class 'vkk.users.models.User'>
fields = ['first_name', 'last_name', 'email', 'last_login', 'is_accountant', 'is_active']
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
vkk.workhours.accounting.mixins.AccountantRequiredMixin
dispatch
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
vkk.generic.views.CustomDetailView
action_options
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