# Document views refactoring

* refactors new, edit, get and delete views for eiv, kom, oek and ema
* introduces
This commit is contained in:
2025-10-21 13:48:16 +02:00
parent d5accb2143
commit d2a57df080
13 changed files with 219 additions and 312 deletions

View File

@@ -15,7 +15,7 @@ from compensation.forms.compensation import AbstractCompensationForm
from ema.models import Ema, EmaDocument
from intervention.models import Responsibility, Handler
from konova.forms import SimpleGeomForm
from konova.forms.modals import NewDocumentModalForm
from konova.forms.modals import NewDocumentModalForm, EditDocumentModalForm, RemoveDocumentModalForm
from user.models import UserActionLogEntry
@@ -170,4 +170,10 @@ class EditEmaForm(NewEmaForm):
class NewEmaDocumentModalForm(NewDocumentModalForm):
document_model = EmaDocument
_DOCUMENT_CLS = EmaDocument
class EditEmaDocumentModalForm(EditDocumentModalForm):
_DOCUMENT_CLS = EmaDocument
class RemoveEmaDocumentModalForm(RemoveDocumentModalForm):
_DOCUMENT_CLS = EmaDocument

View File

@@ -5,62 +5,41 @@ Contact: ksp-servicestelle@sgdnord.rlp.de
Created on: 19.08.22
"""
from django.contrib.auth.decorators import login_required
from django.utils.decorators import method_decorator
from ema.forms import NewEmaDocumentModalForm
from ema.forms import NewEmaDocumentModalForm, RemoveEmaDocumentModalForm, EditEmaDocumentModalForm
from ema.models import Ema, EmaDocument
from konova.decorators import shared_access_required, conservation_office_group_required, login_required_modal
from konova.forms.modals import EditDocumentModalForm
from konova.views.document import AbstractEditDocumentView, AbstractRemoveDocumentView, AbstractGetDocumentView, \
AbstractNewDocumentView
class NewEmaDocumentView(AbstractNewDocumentView):
model = Ema
form = NewEmaDocumentModalForm
redirect_url = "ema:detail"
@method_decorator(login_required_modal)
@method_decorator(login_required)
@method_decorator(conservation_office_group_required)
@method_decorator(shared_access_required(Ema, "id"))
def dispatch(self, request, *args, **kwargs):
return super().dispatch(request, *args, **kwargs)
_MODEL_CLS = Ema
_FORM_CLS = NewEmaDocumentModalForm
_REDIRECT_URL = "ema:detail"
def _user_has_permission(self, user):
return user.is_ets_user()
class GetEmaDocumentView(AbstractGetDocumentView):
model = Ema
document_model = EmaDocument
@method_decorator(login_required)
@method_decorator(conservation_office_group_required)
@method_decorator(shared_access_required(Ema, "id"))
def dispatch(self, request, *args, **kwargs):
return super().dispatch(request, *args, **kwargs)
_MODEL_CLS = Ema
_DOCUMENT_CLS = EmaDocument
def _user_has_permission(self, user):
return user.is_ets_user()
class RemoveEmaDocumentView(AbstractRemoveDocumentView):
model = Ema
document_model = EmaDocument
@method_decorator(login_required_modal)
@method_decorator(login_required)
@method_decorator(conservation_office_group_required)
@method_decorator(shared_access_required(Ema, "id"))
def dispatch(self, request, *args, **kwargs):
return super().dispatch(request, *args, **kwargs)
_MODEL_CLS = Ema
_DOCUMENT_CLS = EmaDocument
_FORM_CLS = RemoveEmaDocumentModalForm
_REDIRECT_URL = "ema:detail"
def _user_has_permission(self, user):
return user.is_ets_user()
class EditEmaDocumentView(AbstractEditDocumentView):
model = Ema
document_model = EmaDocument
form = EditDocumentModalForm
redirect_url = "ema:detail"
_MODEL_CLS = Ema
_FORM_CLS = EditEmaDocumentModalForm
_DOCUMENT_CLS = EmaDocument
_REDIRECT_URL = "ema:detail"
@method_decorator(login_required_modal)
@method_decorator(login_required)
@method_decorator(conservation_office_group_required)
@method_decorator(shared_access_required(Ema, "id"))
def dispatch(self, request, *args, **kwargs):
return super().dispatch(request, *args, **kwargs)
def _user_has_permission(self, user):
return user.is_ets_user()