# CompensationAction views refactored
* refactors AbstractCompensationActionViews (new, edit, remove) to inherit from BaseModalFormView * refactors KOM, OEK, EMA views for compensation actions * moves message template strings into message_templates.py
This commit is contained in:
@@ -7,10 +7,12 @@ Created on: 18.08.22
|
||||
"""
|
||||
from dal import autocomplete
|
||||
from django import forms
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from codelist.models import KonovaCode
|
||||
from codelist.settings import CODELIST_COMPENSATION_ACTION_ID, CODELIST_COMPENSATION_ACTION_DETAIL_ID
|
||||
from compensation.models import CompensationAction
|
||||
from intervention.inputs import CompensationActionTreeCheckboxSelectMultiple
|
||||
from konova.forms.modals import BaseModalForm, RemoveModalForm
|
||||
from konova.utils.message_templates import COMPENSATION_ACTION_EDITED, ADDED_COMPENSATION_ACTION
|
||||
@@ -114,7 +116,8 @@ class EditCompensationActionModalForm(NewCompensationActionModalForm):
|
||||
action = None
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.action = kwargs.pop("action", None)
|
||||
action_id = kwargs.pop("action_id", None)
|
||||
self.action = get_object_or_404(CompensationAction, id=action_id)
|
||||
super().__init__(*args, **kwargs)
|
||||
self.form_title = _("Edit action")
|
||||
form_data = {
|
||||
@@ -147,8 +150,8 @@ class RemoveCompensationActionModalForm(RemoveModalForm):
|
||||
action = None
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
action = kwargs.pop("action", None)
|
||||
self.action = action
|
||||
action_id = kwargs.pop("action_id", None)
|
||||
self.action = get_object_or_404(CompensationAction, id=action_id)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def save(self):
|
||||
|
||||
@@ -80,7 +80,11 @@ class EditCompensationActionModalFormTestCase(NewCompensationActionModalFormTest
|
||||
self.compensation.actions.add(self.comp_action)
|
||||
|
||||
def test_init(self):
|
||||
form = EditCompensationActionModalForm(request=self.request, instance=self.compensation, action=self.comp_action)
|
||||
form = EditCompensationActionModalForm(
|
||||
request=self.request,
|
||||
instance=self.compensation,
|
||||
action_id=self.comp_action.id
|
||||
)
|
||||
self.assertEqual(form.form_title, str(_("Edit action")))
|
||||
self.assertEqual(len(form.fields["action_type"].initial), self.comp_action.action_type.count())
|
||||
self.assertEqual(len(form.fields["action_type_details"].initial), self.comp_action.action_type_details.count())
|
||||
@@ -101,7 +105,7 @@ class EditCompensationActionModalFormTestCase(NewCompensationActionModalFormTest
|
||||
"comment": comment,
|
||||
}
|
||||
|
||||
form = EditCompensationActionModalForm(data, request=self.request, instance=self.compensation, action=self.comp_action)
|
||||
form = EditCompensationActionModalForm(data, request=self.request, instance=self.compensation, action_id=self.comp_action.id)
|
||||
|
||||
self.assertTrue(form.is_valid())
|
||||
action = form.save()
|
||||
@@ -126,7 +130,7 @@ class RemoveCompensationActionModalFormTestCase(EditCompensationActionModalFormT
|
||||
|
||||
def test_init(self):
|
||||
self.assertIn(self.comp_action, self.compensation.actions.all())
|
||||
form = RemoveCompensationActionModalForm(request=self.request, instance=self.compensation, action=self.comp_action)
|
||||
form = RemoveCompensationActionModalForm(request=self.request, instance=self.compensation, action_id=self.comp_action.id)
|
||||
self.assertEqual(form.action, self.comp_action)
|
||||
|
||||
def test_save(self):
|
||||
@@ -137,7 +141,7 @@ class RemoveCompensationActionModalFormTestCase(EditCompensationActionModalFormT
|
||||
data,
|
||||
request=self.request,
|
||||
instance=self.compensation,
|
||||
action=self.comp_action
|
||||
action_id=self.comp_action.id
|
||||
)
|
||||
self.assertTrue(form.is_valid())
|
||||
self.assertIn(self.comp_action, self.compensation.actions.all())
|
||||
|
||||
@@ -5,53 +5,23 @@ Contact: ksp-servicestelle@sgdnord.rlp.de
|
||||
Created on: 19.08.22
|
||||
|
||||
"""
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.http import HttpRequest
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.urls import reverse
|
||||
from django.utils.decorators import method_decorator
|
||||
|
||||
from compensation.forms.modals.compensation_action import RemoveCompensationActionModalForm, \
|
||||
EditCompensationActionModalForm, NewCompensationActionModalForm
|
||||
from compensation.models import Compensation, CompensationAction
|
||||
from konova.decorators import shared_access_required, default_group_required, login_required_modal
|
||||
from konova.utils.message_templates import COMPENSATION_ACTION_REMOVED, COMPENSATION_ACTION_EDITED, \
|
||||
COMPENSATION_ACTION_ADDED
|
||||
from compensation.models import Compensation
|
||||
from konova.views.action import AbstractNewCompensationActionView, AbstractEditCompensationActionView, \
|
||||
AbstractRemoveCompensationActionView
|
||||
|
||||
_COMPENSATION_DETAIL_URL_NAME = "compensation:detail"
|
||||
|
||||
class NewCompensationActionView(AbstractNewCompensationActionView):
|
||||
model = Compensation
|
||||
redirect_url = "compensation:detail"
|
||||
|
||||
@method_decorator(login_required_modal)
|
||||
@method_decorator(login_required)
|
||||
@method_decorator(default_group_required)
|
||||
@method_decorator(shared_access_required(Compensation, "id"))
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
_MODEL_CLS = Compensation
|
||||
_REDIRECT_URL = _COMPENSATION_DETAIL_URL_NAME
|
||||
|
||||
|
||||
class EditCompensationActionView(AbstractEditCompensationActionView):
|
||||
model = Compensation
|
||||
redirect_url = "compensation:detail"
|
||||
|
||||
@method_decorator(login_required_modal)
|
||||
@method_decorator(login_required)
|
||||
@method_decorator(default_group_required)
|
||||
@method_decorator(shared_access_required(Compensation, "id"))
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
_MODEL_CLS = Compensation
|
||||
_REDIRECT_URL = _COMPENSATION_DETAIL_URL_NAME
|
||||
|
||||
|
||||
class RemoveCompensationActionView(AbstractRemoveCompensationActionView):
|
||||
model = Compensation
|
||||
redirect_url = "compensation:detail"
|
||||
|
||||
@method_decorator(login_required_modal)
|
||||
@method_decorator(login_required)
|
||||
@method_decorator(default_group_required)
|
||||
@method_decorator(shared_access_required(Compensation, "id"))
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
_MODEL_CLS = Compensation
|
||||
_REDIRECT_URL = _COMPENSATION_DETAIL_URL_NAME
|
||||
|
||||
@@ -5,46 +5,22 @@ 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 compensation.models import EcoAccount
|
||||
from konova.decorators import shared_access_required, default_group_required, login_required_modal
|
||||
from konova.views.action import AbstractNewCompensationActionView, AbstractEditCompensationActionView, \
|
||||
AbstractRemoveCompensationActionView
|
||||
|
||||
_ECO_ACCOUNT_DETAIL_URL_NAME = "compensation:acc:detail"
|
||||
|
||||
class NewEcoAccountActionView(AbstractNewCompensationActionView):
|
||||
model = EcoAccount
|
||||
redirect_url = "compensation:acc:detail"
|
||||
|
||||
@method_decorator(login_required_modal)
|
||||
@method_decorator(login_required)
|
||||
@method_decorator(default_group_required)
|
||||
@method_decorator(shared_access_required(EcoAccount, "id"))
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
_MODEL_CLS = EcoAccount
|
||||
_REDIRECT_URL = _ECO_ACCOUNT_DETAIL_URL_NAME
|
||||
|
||||
|
||||
class EditEcoAccountActionView(AbstractEditCompensationActionView):
|
||||
model = EcoAccount
|
||||
redirect_url = "compensation:acc:detail"
|
||||
|
||||
@method_decorator(login_required_modal)
|
||||
@method_decorator(login_required)
|
||||
@method_decorator(default_group_required)
|
||||
@method_decorator(shared_access_required(EcoAccount, "id"))
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
_MODEL_CLS = EcoAccount
|
||||
_REDIRECT_URL = _ECO_ACCOUNT_DETAIL_URL_NAME
|
||||
|
||||
|
||||
class RemoveEcoAccountActionView(AbstractRemoveCompensationActionView):
|
||||
model = EcoAccount
|
||||
redirect_url = "compensation:acc:detail"
|
||||
|
||||
@method_decorator(login_required_modal)
|
||||
@method_decorator(login_required)
|
||||
@method_decorator(default_group_required)
|
||||
@method_decorator(shared_access_required(EcoAccount, "id"))
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
_MODEL_CLS = EcoAccount
|
||||
_REDIRECT_URL = _ECO_ACCOUNT_DETAIL_URL_NAME
|
||||
|
||||
Reference in New Issue
Block a user