diff --git a/compensation/urls/compensation.py b/compensation/urls/compensation.py index 8416539e..d5aca228 100644 --- a/compensation/urls/compensation.py +++ b/compensation/urls/compensation.py @@ -17,14 +17,14 @@ from compensation.views.compensation.action import NewCompensationActionView, Ed RemoveCompensationActionView from compensation.views.compensation.state import NewCompensationStateView, EditCompensationStateView, \ RemoveCompensationStateView -from compensation.views.compensation.compensation import new_view, new_id_view, detail_view, edit_view, \ - remove_view, CompensationIndexView +from compensation.views.compensation.compensation import new_view, detail_view, edit_view, \ + remove_view, CompensationIndexView, CompensationIdentifierGeneratorView from compensation.views.compensation.log import CompensationLogView urlpatterns = [ # Main compensation path("", CompensationIndexView.as_view(), name="index"), - path('new/id', new_id_view, name='new-id'), + path('new/id', CompensationIdentifierGeneratorView.as_view(), name='new-id'), path('new/', new_view, name='new'), path('new', new_view, name='new'), path('', detail_view, name='detail'), diff --git a/compensation/views/compensation/compensation.py b/compensation/views/compensation/compensation.py index 944d54fb..4259bf5b 100644 --- a/compensation/views/compensation/compensation.py +++ b/compensation/views/compensation/compensation.py @@ -28,7 +28,7 @@ from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER from konova.utils.message_templates import COMPENSATION_REMOVED_TEMPLATE, DATA_CHECKED_PREVIOUSLY_TEMPLATE, \ RECORDED_BLOCKS_EDIT, CHECK_STATE_RESET, FORM_INVALID, PARAMS_INVALID, IDENTIFIER_REPLACED, \ COMPENSATION_ADDED_TEMPLATE, DO_NOT_FORGET_TO_SHARE, GEOMETRY_SIMPLIFIED, GEOMETRIES_IGNORED_TEMPLATE -from konova.views.base import BaseIndexView +from konova.views.base import BaseIndexView, BaseIdentifierGeneratorView class CompensationIndexView(LoginRequiredMixin, BaseIndexView): @@ -115,23 +115,12 @@ def new_view(request: HttpRequest, intervention_id: str = None): return render(request, template, context) -@login_required -@default_group_required -def new_id_view(request: HttpRequest): - """ JSON endpoint +class CompensationIdentifierGeneratorView(LoginRequiredMixin, BaseIdentifierGeneratorView): + _MODEL_CLS = Compensation + _REDIRECT_URL_NAME = "compensation:index" - Provides fetching of free identifiers for e.g. AJAX calls - - """ - tmp = Compensation() - identifier = tmp.generate_new_identifier() - while Compensation.objects.filter(identifier=identifier).exists(): - identifier = tmp.generate_new_identifier() - return JsonResponse( - data={ - "gen_data": identifier - } - ) + def _user_has_permission(self, user): + return user.is_default_user() @login_required