Add assigned_to field to ServiceRequest. Ensure a administrator group exists. Close #66.
This commit is contained in:
parent
314416740f
commit
78f36c1502
4 changed files with 58 additions and 2 deletions
|
@ -10,8 +10,9 @@ from services.models import ServiceRequest
|
|||
class ServiceRequestAdmin(admin.ModelAdmin):
|
||||
"""Admin for the ServiceRequest model."""
|
||||
|
||||
list_display = ("member", "service", "request", "status")
|
||||
list_filter = ("request", "status")
|
||||
list_display = ("created", "member", "service", "request", "status", "assigned_to")
|
||||
list_filter = ("request", "status", "assigned_to")
|
||||
sortable_by = ("created",)
|
||||
|
||||
|
||||
@admin.register(ServiceAccess)
|
||||
|
|
|
@ -1,6 +1,16 @@
|
|||
"""Config for the services app."""
|
||||
|
||||
from typing import Any
|
||||
|
||||
from django.apps import AppConfig
|
||||
from django.apps import apps
|
||||
from django.db.models.signals import post_migrate
|
||||
|
||||
|
||||
def ensure_administrator_group(sender: Any, **kwargs: Any) -> None: # noqa: ANN401
|
||||
"""Ensure that a group called "administrators" exists."""
|
||||
group_model = apps.get_model("auth.Group")
|
||||
group_model.objects.get_or_create(name="administrators")
|
||||
|
||||
|
||||
class ServicesConfig(AppConfig):
|
||||
|
@ -8,3 +18,7 @@ class ServicesConfig(AppConfig):
|
|||
|
||||
default_auto_field = "django.db.models.BigAutoField"
|
||||
name = "services"
|
||||
|
||||
def ready(self) -> None:
|
||||
"""Connect signals when apps are ready."""
|
||||
post_migrate.connect(ensure_administrator_group, sender=self)
|
||||
|
|
29
src/services/migrations/0004_servicerequest_assigned_to.py
Normal file
29
src/services/migrations/0004_servicerequest_assigned_to.py
Normal file
|
@ -0,0 +1,29 @@
|
|||
# Generated by Django 5.1.4 on 2025-02-02 13:24
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("membership", "0014_alter_membership_options"),
|
||||
("services", "0003_alter_serviceaccess_unique_together_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="servicerequest",
|
||||
name="assigned_to",
|
||||
field=models.ForeignKey(
|
||||
blank=True,
|
||||
help_text="the admin team member assigned to this request",
|
||||
limit_choices_to=models.Q(("groups__name", "administrators")),
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="assigned_service_requests",
|
||||
to="membership.member",
|
||||
verbose_name="assigned to",
|
||||
),
|
||||
),
|
||||
]
|
|
@ -4,6 +4,7 @@ import typing
|
|||
|
||||
from django.contrib.sites.models import Site
|
||||
from django.db import models
|
||||
from django.db.models import Q
|
||||
from django.db.models import TextChoices
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
@ -80,6 +81,17 @@ class ServiceRequest(CreatedModifiedAbstract):
|
|||
blank=True, help_text=_("Readable by member: Notes from the admin / status updates, resolutions etc.")
|
||||
)
|
||||
|
||||
assigned_to = models.ForeignKey(
|
||||
"membership.Member",
|
||||
verbose_name=_("assigned to"),
|
||||
help_text=_("the admin team member assigned to this request"),
|
||||
on_delete=models.CASCADE,
|
||||
null=True,
|
||||
blank=True,
|
||||
related_name="assigned_service_requests",
|
||||
limit_choices_to=Q(groups__name="administrators"),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("service request")
|
||||
verbose_name_plural = _("service requests")
|
||||
|
|
Loading…
Add table
Reference in a new issue