diff --git a/apps/api/serializers.py b/apps/api/serializers.py index 52ec57d..b261242 100644 --- a/apps/api/serializers.py +++ b/apps/api/serializers.py @@ -130,7 +130,7 @@ class TicketPrioritySerializer(DynamicModelSerializer): class Meta: model = TicketPriority fields = [ - "uuid", "title", "colour", "backgroundcolour" + "uuid", "title", "colour", "backgroundcolour", "order" ] @@ -138,7 +138,7 @@ class TicketTagSerializer(DynamicModelSerializer): class Meta: model = TicketTag fields = [ - "uuid", "title", "colour", "backgroundcolour" + "uuid", "title", "colour", "backgroundcolour", "order" ] @@ -151,6 +151,6 @@ class TicketSerializer(DynamicModelSerializer): model = Ticket fields = ( "uuid", "title", "description", "author", "create_timestamp", - "edit_timestamp", "is_edited", "was_yesterday", "is_older_than_day", - "timestamp", "priority", "tags", "short_description", "string_datetime" + "edit_timestamp", "is_edited", "timestamp", "priority", "tags", + "short_description", "display_datetime" ) diff --git a/apps/home/migrations/0003_auto_20240122_1323.py b/apps/home/migrations/0003_auto_20240122_1323.py new file mode 100644 index 0000000..b19b82e --- /dev/null +++ b/apps/home/migrations/0003_auto_20240122_1323.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.16 on 2024-01-22 13:23 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('home', '0002_auto_20240112_1604'), + ] + + operations = [ + migrations.AddField( + model_name='ticketpriority', + name='order', + field=models.PositiveIntegerField(default=0), + ), + migrations.AddField( + model_name='tickettag', + name='order', + field=models.PositiveIntegerField(default=0), + ), + ] diff --git a/apps/home/models.py b/apps/home/models.py index 6eea00a..0467a3d 100644 --- a/apps/home/models.py +++ b/apps/home/models.py @@ -19,6 +19,7 @@ class TicketPriority(models.Model): title = models.CharField(max_length=32) colour = models.CharField(max_length=7) backgroundcolour = models.CharField(max_length=7) + order = models.PositiveIntegerField(default=0, blank=False, null=False) def __str__(self): return self.title @@ -30,6 +31,7 @@ class TicketTag(models.Model): title = models.CharField(max_length=32) colour = models.CharField(max_length=7) backgroundcolour = models.CharField(max_length=7) + order = models.PositiveIntegerField(default=0, blank=False, null=False) def __str__(self): return self.title @@ -141,35 +143,7 @@ class Ticket(models.Model): return self.create_timestamp != self.edit_timestamp @property - def is_older_than_day(self) -> bool: - """Returns boolean dependent on if `self.timestamp` is older than 24 hours. - - Returns - ------- - bool - True if `self.timestamp` is older than 24 hours, False otherwise. - """ - - dayago = timezone.now() - timedelta(hours=24) - return self.timestamp <= dayago - - @property - def was_yesterday(self) -> bool: - """Returns a boolean dependent on if `self.timestamp` is from before midnight yesterday. - - Returns - ------- - bool - _description_ - """ - - now = timezone.now() - midnight_today = now - timedelta(hours=now.hour, minutes=now.minute, seconds=now.second, microseconds=now.microsecond) - - return self.timestamp < midnight_today - - @property - def string_datetime(self) -> str: + def display_datetime(self) -> str: """Provides a human readable string representation of `self.timestamp` that should be displayed to represent the ticket's age. diff --git a/apps/home/views.py b/apps/home/views.py index 71cff0f..d19dc39 100644 --- a/apps/home/views.py +++ b/apps/home/views.py @@ -29,15 +29,14 @@ class TicketView(TemplateView): @method_decorator(login_required) def get(self, request): - priorities = TicketPriority.objects.all() - tags = TicketTag.objects.all() + priorities = TicketPriority.objects.all().order_by("order") + tags = TicketTag.objects.all().order_by("order") departments = Department.objects.all() context = { "priorities": priorities, "tags": tags, - "departments": departments, - "dayago": datetime.now() - timedelta(hours=24) + "departments": departments } return render(request, "home/tickets.html", context)