From 4eb2909a1659cdfcfd009e3a0ac65a8480b367c4 Mon Sep 17 00:00:00 2001 From: John Mullins Date: Tue, 29 Aug 2023 14:18:48 +1000 Subject: [PATCH] Added archive field. Set during rollover or when end date is removed --- busManager/coord/admin.py | 15 ++++++++++++--- busManager/coord/models.py | 1 + 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/busManager/coord/admin.py b/busManager/coord/admin.py index d8d0752..448deea 100644 --- a/busManager/coord/admin.py +++ b/busManager/coord/admin.py @@ -1,5 +1,6 @@ import csv +from django.contrib.admin import DateFieldListFilter from django.forms import widgets from django.contrib import admin from django.http import HttpResponse @@ -124,8 +125,8 @@ class TravellerRouteInline(admin.TabularInline): @admin.register(Traveller) class TravellerAdmin(MyImportExportModelAdmin, CloneModelAdmin, admin.ModelAdmin): - list_display = ["first_name", "last_name", "school", "year_level", "residential_address", "residential_suburb"] - list_filter = ["school", "eligibility_status", "bus_stops__bus", "residential_suburb"] + list_display = ["first_name", "last_name", "school", "year_level", "residential_address", "residential_suburb", "travel_start_date", "travel_end_date"] + list_filter = ["school", "eligibility_status", "bus_stops__bus", "residential_suburb", ("travel_end_date", DateFieldListFilter), "is_archived"] search_fields = ["first_name", "last_name", "residential_address"] cloneable_fields = ["last_name", "residential_address", "residential_suburb", "postal_address", "postal_suburb", "eligibility_status", "shuttle", @@ -135,7 +136,7 @@ class TravellerAdmin(MyImportExportModelAdmin, CloneModelAdmin, admin.ModelAdmin "emergency_contact_A_relation", "emergency_contact_B_firstname", "emergency_contact_B_lastname", "emergency_contact_B_phone", "emergency_contact_B_relation"] inlines = [TravellerRouteInline] - readonly_fields = ["fare_paying", "created_on", "last_edit"] + readonly_fields = ["fare_paying", "created_on", "last_edit", "is_archived"] fieldsets = [ (None, { 'fields': [ @@ -173,6 +174,7 @@ class TravellerAdmin(MyImportExportModelAdmin, CloneModelAdmin, admin.ModelAdmin "seat_number", "created_on", "last_edit", + "is_archived", ] }), ('Adult Contacts', { @@ -205,6 +207,13 @@ class TravellerAdmin(MyImportExportModelAdmin, CloneModelAdmin, admin.ModelAdmin def yearly_rollover(self, request, queryset): pass + def save_model(self, request, obj, form, change): + print("Saving") + if obj.is_archived and obj.travel_end_date is None: + obj.is_archived = False + print("Pulling out of archive") + super().save_model(request, obj, form, change) + @admin.register(TravellerRoute) class TravellerRouteAdmin(MyImportExportModelAdmin, admin.ModelAdmin): diff --git a/busManager/coord/models.py b/busManager/coord/models.py index b18135a..7e3152a 100644 --- a/busManager/coord/models.py +++ b/busManager/coord/models.py @@ -228,6 +228,7 @@ class Traveller(models.Model): created_on = models.DateTimeField(auto_now_add=True, blank=True, null=True) last_edit = models.DateTimeField(auto_now=True, blank=True, null=True) + is_archived = models.BooleanField() notes = models.TextField(blank=True, verbose_name='Admin Notes') shuttle = models.ForeignKey(Shuttle, on_delete=models.SET_NULL, blank=True, null=True)