Moved where active status is displayed.

Cleaned up logout redirects
Added suburbs admin page back. Wasn't able to create new suburbs
Made active status check to any traveller save function
This commit is contained in:
John Mullins
2023-12-22 16:50:30 +11:00
parent f73b08e989
commit d74290036e
7 changed files with 24 additions and 30 deletions
+2 -1
View File
@@ -67,7 +67,8 @@ MIDDLEWARE = [
if "AZURE_CLIENT_ID" in os.environ:
AUTHENTICATION_BACKENDS = ("custom_user.backends.AzureBackend",)
MIDDLEWARE.append('custom_user.middleware.AzureMiddleware')
LOGIN_URL = "/azure_auth/login"
LOGIN_URL = "/auth/login"
LOGOUT_REDIRECT_URL = "/auth/logout"
AZURE_AUTH = {
"CLIENT_ID": os.environ.get('AZURE_CLIENT_ID'),
"CLIENT_SECRET": os.environ.get('AZURE_CLIENT_SECRET'),
+1 -3
View File
@@ -14,7 +14,6 @@ Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from azure_auth.views import azure_auth_logout
from django.contrib import admin
from django.urls import path, include
@@ -22,8 +21,7 @@ admin.site.site_header = "Bus Portal Admin"
urlpatterns = [
path('report/', include("coord.urls")),
path('logout/', azure_auth_logout),
path('auth/', include("azure_auth.urls"),),
path('auth/', include("custom_user.urls")),
path('settings/', include('coord.urls_settings')),
path('', admin.site.urls),
]
+3 -5
View File
@@ -1,14 +1,12 @@
import csv
from datetime import date
from django.contrib.admin import DateFieldListFilter, BooleanFieldListFilter
from django.forms import widgets
from django.contrib import admin
from django.http import HttpResponse
from django.urls import reverse
from django.utils.html import format_html
from django.utils.http import urlencode
from django.utils.translation import gettext_lazy
from import_export.admin import ImportExportModelAdmin
from rangefilter.filters import DateRangeFilterBuilder
@@ -159,7 +157,7 @@ class BusStopAdmin(MyImportExportModelAdmin, admin.ModelAdmin):
search_fields = ["bus__route_name", "address"]
# @admin.register(Suburb)
@admin.register(Suburb)
class SuburbsAdmin(MyImportExportModelAdmin, admin.ModelAdmin):
list_filter = ["state"]
@@ -171,7 +169,7 @@ class TravellerRouteInline(admin.TabularInline):
@admin.register(Traveller)
class TravellerAdmin(MyImportExportModelAdmin, CloneModelAdmin, admin.ModelAdmin, TravellerRollMixin):
list_display = ["first_name", "last_name", "school", "year_level", "residential_address", "residential_suburb", "stop_route", "shuttle", "travel_start_date", "travel_end_date"]
list_display = ["first_name", "last_name", "school", "year_level", "is_active", "residential_address", "residential_suburb", "stop_route", "shuttle", "travel_start_date", "travel_end_date"]
list_filter = [
"is_active", "school", "year_level", "eligibility_status", "bus_stops__bus", "shuttle", "residential_suburb",
("travel_start_date", DateRangeFilterBuilder(
@@ -195,6 +193,7 @@ class TravellerAdmin(MyImportExportModelAdmin, CloneModelAdmin, admin.ModelAdmin
fieldsets = [
(None, {
'fields': [
"is_active",
"school",
"first_name",
"last_name",
@@ -229,7 +228,6 @@ class TravellerAdmin(MyImportExportModelAdmin, CloneModelAdmin, admin.ModelAdmin
"seat_number",
"created_on",
"last_edit",
"is_active",
]
}),
('Adult Contacts', {
+10 -18
View File
@@ -234,7 +234,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(default=False, verbose_name="Archived")
is_active = models.BooleanField(default=True, verbose_name='Active')
is_active = models.BooleanField(default=False, verbose_name='Active')
notes = models.TextField(blank=True, verbose_name='Admin Notes')
shuttle = models.ForeignKey(Shuttle, on_delete=models.SET_NULL, blank=True, null=True)
@@ -244,6 +244,10 @@ class Traveller(models.Model):
def __str__(self):
return f"{self.first_name} {self.last_name}"
def save(self, *args, **kwargs):
self._update_active_status()
super(Traveller, self).save(*args, **kwargs)
def _is_active(self):
today = datetime.today()
today = datetime(today.year, today.month, today.day)
@@ -255,7 +259,7 @@ class Traveller(models.Model):
end_date = datetime(self.travel_end_date.year, self.travel_end_date.month, self.travel_end_date.day)
return end_date >= today
def update_active_status(self):
def _update_active_status(self):
new_start_date = None
new_end_date = None
@@ -270,21 +274,9 @@ class Traveller(models.Model):
if new_end_date is None or new_end_date < route_end:
new_end_date = route_end
updated = False
if self.travel_start_date != new_start_date:
self.travel_start_date = new_start_date
updated = True
if self.travel_end_date != new_end_date:
self.travel_end_date = new_end_date
updated = True
is_active = self._is_active()
if self.is_active != is_active:
self.is_active = is_active
updated = True
if updated:
self.save()
self.travel_start_date = new_start_date
self.travel_end_date = new_end_date
self.is_active = self._is_active()
def fare_paying(self):
if self.eligibility_status != "2":
@@ -347,7 +339,7 @@ class TravellerRoute(models.Model):
def save(self, *args, **kwargs):
super(TravellerRoute, self).save(*args, **kwargs)
# self.traveller.update_active_status()
self.traveller.save()
def active_stops(self):
stops = 0
+7 -2
View File
@@ -1,6 +1,11 @@
from coord.models import Traveller
from .models import Traveller
def nightly_check_active_status():
for traveller in Traveller.objects.all():
traveller.update_active_status()
start_date = traveller.travel_start_date
end_date = traveller.travel_end_date
is_active = traveller.is_active
traveller._update_active_status()
if start_date != traveller.travel_start_date or end_date != traveller.travel_end_date or is_active != traveller.is_active:
traveller.save()
+1 -1
View File
@@ -2,7 +2,7 @@ from django.urls import path
from .views import azure_auth_callback, azure_auth_login, azure_auth_logout
app_name = "azure_auth"
app_name = "auth"
urlpatterns = [
path("login", azure_auth_login, name="login"),
path("logout", azure_auth_logout, name="logout"),
BIN
View File
Binary file not shown.