logging for statedefinitions

This commit is contained in:
Thomas Nahuel Rusiecki 2024-12-11 17:18:46 -03:00
parent 2d84b71cb2
commit 814f28bbd7

View file

@ -1,3 +1,4 @@
import logging
from smtplib import SMTPException
from django.contrib import messages
from django.urls import reverse_lazy
@ -18,6 +19,8 @@ from user.models import User, Institution
from admin.email import NotifyActivateUserByEmail
from action.models import StateDefinition
device_logger = logging.getLogger('device_log')
class AdminView(DashboardView):
def get(self, *args, **kwargs):
response = super().get(*args, **kwargs)
@ -139,11 +142,13 @@ class StateDefinitionContextMixin(ContextMixin):
})
return context
class StatesPanelView(AdminView, StateDefinitionContextMixin, TemplateView):
template_name = "states_panel.html"
title = _("States")
breadcrumb = _("admin / States") + " /"
class AddStateDefinitionView(AdminView, StateDefinitionContextMixin, CreateView):
template_name = "states_panel.html"
title = _("New State Definition")
@ -158,6 +163,7 @@ class AddStateDefinitionView(AdminView, StateDefinitionContextMixin, CreateView)
try:
response = super().form_valid(form)
messages.success(self.request, _("State definition successfully added."))
device_logger.info(f"<Created> StateDefinition with value {form.instance.state} by user {self.request.user}.")
return response
except IntegrityError:
messages.error(self.request, _("State is already defined."))
@ -172,6 +178,7 @@ class DeleteStateDefinitionView(AdminView, StateDefinitionContextMixin, SuccessM
success_url = reverse_lazy('admin:states')
def get_success_message(self, cleaned_data):
device_logger.info(f"<Deleted> StateDefinition with value {self.object.state} by user {self.request.user}.")
return f'State definition: {self.object.state}, has been deleted'
def delete(self, request, *args, **kwargs):
@ -183,6 +190,7 @@ class DeleteStateDefinitionView(AdminView, StateDefinitionContextMixin, SuccessM
return super().delete(request, *args, **kwargs)
class UpdateStateOrderView(AdminView, TemplateView):
success_url = reverse_lazy('admin:states')
@ -194,12 +202,17 @@ class UpdateStateOrderView(AdminView, TemplateView):
with transaction.atomic():
current_order = 1
_log = []
for lookup_id in ordered_ids:
state_definition = StateDefinition.objects.get(id=lookup_id)
state_definition.order = current_order
state_definition.save()
_log.append(f"{state_definition.state} (ID: {lookup_id} -> Order: {current_order})")
current_order += 1
device_logger.info(
f"<Updated Order> State order updated by user {self.request.user}: {', '.join(_log)}"
)
messages.success(self.request, _("Order changed succesfuly."))
return redirect(self.success_url)
else: