vkk.workhours.accounting.projects.project.urls

  1from django.urls import include, path
  2from django.utils.translation import gettext_lazy as _
  3from django.forms import modelform_factory
  4from vkk.workhours.models import ProjectManager, ProjectAssignment, Project, WorkHours
  5from vkk.generic.forms import CustomDateInput
  6from vkk.workhours.accounting.views import *
  7from .views import *
  8
  9key = {'slug_field': 'invoice_number', 'slug_url_kwarg': 'invoice_number'}
 10
 11app_name = 'project'
 12urlpatterns = [
 13    path(
 14        _('details/'),
 15        AccountingProjectOverView.as_view(),
 16        name='default'
 17    ),
 18    path(
 19        _('update/'),
 20        AccountingProjectUpdateView.as_view(),
 21        name='update'
 22    ),
 23    path(
 24        _('update/success/'),
 25        AccountingSuccessView.as_view(
 26            model=Project,
 27            template_name='vkk/generic/update_success.html',
 28        ),
 29        name='update_success'
 30    ),
 31    # manager
 32    path(
 33        _('manager/<int:pk>/details/'),
 34        AccountingDetailView.as_view(
 35            model=ProjectManager,
 36            template_name='vkk/workhours/accounting/projects/project/manager_details.html',
 37        ),
 38        name='manager_details'
 39    ),
 40    path(
 41        _('manager/<int:pk>/update/'),
 42        AccountingUpdateView.as_view(
 43            model=ProjectManager,
 44            form_class=modelform_factory(
 45                model=ProjectManager,
 46                fields=['start', 'end', 'is_proxy'],
 47                widgets={'start': CustomDateInput, 'end': CustomDateInput}
 48            ),
 49            on_success='manager_update_success',
 50        ),
 51        name='manager_update'
 52    ),
 53    path(
 54        _('manager/update/success/'),
 55        AccountingSuccessView.as_view(
 56            model=ProjectManager,
 57            template_name='vkk/generic/update_success.html',
 58        ),
 59        name='manager_update_success'
 60    ),
 61    path(
 62        _('manager_candidates/'),
 63        AccountingProjectUserFilterView.as_view(
 64            to_exclude='projectmanager__project__invoice_number',
 65            action_options={'add_manager': _('Add')},
 66            ordering=['last_name', 'first_name'],
 67        ),
 68        name='manager_candidates'
 69    ),
 70    path(
 71        _('manager_candidates/<int:pk>/add_new/'),
 72        AccountingManagerCreateView.as_view(),
 73        name='add_manager'
 74    ),
 75    path(
 76        _('manager_candidates/add_new/success/'),
 77        AccountingSuccessView.as_view(
 78            model=ProjectManager,
 79            template_name='vkk/generic/create_success.html',
 80            on_success='manager_candidates'
 81        ),
 82        name='add_manager_success'
 83    ),
 84    path(
 85        _('manager/<int:pk>/delete'),
 86        AccountingManagerDeleteView.as_view(),
 87        name='delete_manager'
 88    ),
 89    path(
 90        _('manager/delete/success/'),
 91        AccountingSuccessView.as_view(
 92            model=ProjectAssignment,
 93            template_name='vkk/generic/delete_success.html',
 94            on_success='default'
 95        ),
 96        name='delete_manager_success'
 97    ),
 98    # contributor
 99    path(
100        _('contributor/<int:pk>/details/'),
101        AccountingDetailView.as_view(
102            model=ProjectAssignment,
103            template_name='vkk/workhours/accounting/projects/project/contributor_details.html',
104        ),
105        name='contributor_details'
106    ),
107    path(
108        _('contributor/<int:pk>/update/'),
109        AccountingUpdateView.as_view(
110            model=ProjectAssignment,
111            fields=['salary_level'],
112            on_success='contributor_update_success',
113        ),
114        name='contributor_update'
115    ),
116    path(
117        _('contributor/update/success/'),
118        AccountingSuccessView.as_view(
119            model=ProjectManager,
120            template_name='vkk/generic/update_success.html',
121        ),
122        name='contributor_update_success'
123    ),
124    path(
125        _('contributor_candidates/'),
126        AccountingProjectUserFilterView.as_view(
127            to_exclude='projectassignment__project__invoice_number',
128            action_options={'add_contributor': _('Add')},
129            ordering=['last_name', 'first_name'],
130        ),
131        name='contributor_candidates'
132    ),
133    path(
134        _('contributor_candidates/<int:pk>/add_new/'),
135        AccountingContributorCreateView.as_view(),
136        name='add_contributor'
137    ),
138    path(
139        _('contributor_candidates/add_new/success/'),
140        AccountingSuccessView.as_view(
141            model=ProjectAssignment,
142            template_name='vkk/generic/create_success.html',
143            on_success='contributor_candidates'
144        ),
145        name='add_contributor_success'
146    ),
147    path(
148        _('contributor/<int:pk>/delete'),
149        AccountingContributorDeleteView.as_view(),
150        name='delete_contributor'
151    ),
152    path(
153        _('contributor/delete/success/'),
154        AccountingSuccessView.as_view(
155            model=ProjectAssignment,
156            template_name='vkk/generic/delete_success.html',
157            on_success='default'
158        ),
159        name='delete_contributor_success'
160    ),
161    # workhour sheet
162    path(
163        _('workhours_sheet/'),
164        AccountingWorkhourSheetSelectionView.as_view(),
165        name='workhours_sheet_selection'
166    ),
167    path(
168        _('workhours_sheet/<int:period_pk>/'),
169        AccountingWorkhourSheetView.as_view(),
170        name='workhours_sheet'
171    ),
172    path(
173        _('workhours_sheet/<int:period_pk>/success/'),
174        AccountingSuccessView.as_view(
175            template_name='vkk/workhours/workhours_sheet_success.html',
176            model=WorkHours,
177            on_success='workhours_sheet',
178        ),
179        name='workhours_sheet_success'
180    ),
181    path(
182        _('workhours_sheet/<int:period_pk>/closure/'),
183        AccountingPeriodClosureView.as_view(),
184        name='period_closure'
185    ),
186    path(
187        _('workhours_sheet/<int:period_pk>/closure/success/'),
188        AccountingPeriodClosureSuccessView.as_view(),
189        name='period_closure_success'
190    ),
191    # export
192    path(_('export/'), include('vkk.workhours.accounting.projects.project.export.urls')),
193]