From f91ae88592b020d1cedc56a7fc85ecfbe6e680d8 Mon Sep 17 00:00:00 2001 From: Tom Irgang Date: Sun, 18 Jun 2023 09:44:53 +0200 Subject: [PATCH] improve device states --- rc_hip/repapp/models.py | 16 +++++++++++++++- rc_hip/repapp/views.py | 8 ++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/rc_hip/repapp/models.py b/rc_hip/repapp/models.py index 874c1f7..7117d19 100644 --- a/rc_hip/repapp/models.py +++ b/rc_hip/repapp/models.py @@ -54,6 +54,7 @@ class Reparateur(models.Model): """ name = models.CharField(max_length=200, verbose_name=_("Name")) mail = models.CharField(max_length=200, verbose_name=_("eMail")) + cafe = models.ManyToManyField(Cafe) class Meta: verbose_name = _('Reparateur') @@ -102,6 +103,19 @@ class Device(models.Model): """ A Device is a broken device owned by a guest which shall be repaired during a Repair-Café. """ + STATUS_REJECTED = -1 + STATUS_NEW = 0 + STATUS_ORGA_QUESTION = 1 + STATUS_ORGA_QUESTION_ANSWERED = 2 + STATUS_WAITING_LIST = 3 + STATUS = ( + (STATUS_REJECTED, 'abgelehnt'), + (STATUS_NEW, 'neu'), + (STATUS_ORGA_QUESTION, 'in Orga Rückfrage'), + (STATUS_ORGA_QUESTION_ANSWERED, 'in Orga Rückfrage beantwortet'), + (STATUS_WAITING_LIST, 'in der Warteliste'), + ) + identifier = models.CharField(max_length=200, verbose_name=_("ID")) date = models.DateField(verbose_name=_( "Erstellungsdatum"), default=django.utils.timezone.now) @@ -117,7 +131,7 @@ class Device(models.Model): confirmed = models.BooleanField(verbose_name=_("Bestätigung gesendet?")) status = models.IntegerField(verbose_name=_("Status"), default=0) guest = models.ForeignKey( - Guest, on_delete=models.CASCADE, null=True, verbose_name=_("Gast")) + Guest, on_delete=models.CASCADE, null=True, verbose_name=_("Gast"), choices=STATUS) cafe = models.ForeignKey( Cafe, on_delete=models.CASCADE, null=False, verbose_name=_("Repair-Café")) diff --git a/rc_hip/repapp/views.py b/rc_hip/repapp/views.py index b914e05..0f3f88e 100644 --- a/rc_hip/repapp/views.py +++ b/rc_hip/repapp/views.py @@ -552,7 +552,7 @@ def review_device_accept(request, device): raise PermissionDenied('Not organisator!') device = get_object_or_404(Device, pk=device) - device.status = 3 + device.status = Device.STATUS_WAITING_LIST device.save() return HttpResponseRedirect(reverse_lazy('orga')) @@ -577,7 +577,7 @@ class RejectDeviceFormView(LoginRequiredMixin, UserPassesTestMixin, generic.edit send_device_reject_mail(device, message, self.request) - device.status = -1 + device.status = Device.STATUS_REJECTED device.save() return HttpResponseRedirect( @@ -640,7 +640,7 @@ class QuestionDeviceFormView(LoginRequiredMixin, UserPassesTestMixin, generic.ed send_device_question_mail(question, self.request) - device.status = 1 + device.status = Device.STATUS_ORGA_QUESTION device.save() return HttpResponseRedirect( @@ -783,7 +783,7 @@ def repa(request): raise PermissionDenied('Not reparateur!') cafes = Cafe.objects.filter(event_date__gte=datetime.date.today()) - devices = Device.objects.filter(status=3) + devices = Device.objects.filter(status=Device.STATUS_WAITING_LIST) return render( request,