# Deduction views

* refactors deduction views on interventions and eco accounts from function to class based
* introduces basic checks on shared access and permission on BaseView on dispatching --> checks shall be overwritten on inheriting classes
This commit is contained in:
2025-10-16 15:36:57 +02:00
parent f4e97db9ac
commit 8a984d0169
10 changed files with 148 additions and 114 deletions

View File

@@ -18,9 +18,17 @@ from konova.contexts import BaseContext
from konova.decorators import login_required_modal
class UserDetailView(LoginRequiredMixin, BaseView):
_TAB_TITLE = _("User settings")
class UserBaseView(BaseView):
def _user_has_shared_access(self, user, **kwargs):
return True
def _user_has_permission(self, user):
return True
class UserDetailView(LoginRequiredMixin, UserBaseView):
_TEMPLATE = "user/index.html"
_TAB_TITLE = _("User settings")
def get(self, request: HttpRequest):
context = {
@@ -31,7 +39,7 @@ class UserDetailView(LoginRequiredMixin, BaseView):
return render(request, self._TEMPLATE, context)
class NotificationsView(LoginRequiredMixin, BaseView):
class NotificationsView(LoginRequiredMixin, UserBaseView):
_TEMPLATE = "user/notifications.html"
_TAB_TITLE = _("User notifications")
@@ -84,6 +92,14 @@ class ContactView(LoginRequiredMixin, BaseModalFormView):
context = BaseContext(request, context).context
return render(request, self._TEMPLATE, context)
def _user_has_shared_access(self, user, **kwargs):
# No specific constraints
return True
def _user_has_permission(self, user):
# No specific constraints
return True
class TeamDetailModalView(LoginRequiredMixin, BaseModalFormView):
def get(self, request: HttpRequest, id: str):
@@ -104,8 +120,16 @@ class TeamDetailModalView(LoginRequiredMixin, BaseModalFormView):
context = BaseContext(request, context).context
return render(request, self._TEMPLATE, context)
def _user_has_shared_access(self, user, **kwargs):
# No specific constraints
return True
class TeamIndexView(LoginRequiredMixin, BaseView):
def _user_has_permission(self, user):
# No specific constraints
return True
class TeamIndexView(LoginRequiredMixin, UserBaseView):
_TEMPLATE = "user/team/index.html"
_TAB_TITLE = _("Teams")