improve device states

This commit is contained in:
Tom Irgang 2023-06-18 09:44:53 +02:00
parent ad52056977
commit f91ae88592
2 changed files with 19 additions and 5 deletions

View file

@ -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é"))

View file

@ -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,