from django.contrib import admin from django.http import HttpRequest from .models.aircrafts import Aircraft from .models.courses import Course from .models.students import Student from .models.missions import MissionProfile from .models.weekpref import WeekPreference from .models.instructors import Instructor from .models.availabilities import Availability from .admins.aircraft_adm import AircraftAdmin from .admins.course_adm import CourseAdmin from .admins.student_adm import StudentAdmin from .admins.mission_adm import MissionProfileAdmin from .admins.weekpref_adm import WeekPreferenceAdmin from .admins.instructor_admin import InstructorAdmin from .admins.availability_adm import AvailabilityAdmin from django.contrib.admin import AdminSite from os import environ ################################## # User website under /user/ URL # ################################## class FlightSlotUserSite(AdminSite): site_header = "Flight Scheduler 🛫" site_title = "Flight Scheduler 🛫" index_title = "Welcome to CantorAir Flight Scheduler Student Portal" def get_app_list(self, request: HttpRequest, *args, **kwargs): app_list = super().get_app_list(request) if not request.user.is_superuser: self.enable_nav_sidebar = False return app_list # Register only user visible models flightslot_user = FlightSlotUserSite(name="user_site") flightslot_user.register(WeekPreference, WeekPreferenceAdmin) ################################## # User website under /staff/ URL # ################################## class FlightSlotStaffSite(AdminSite): site_header = "Flight Scheduler Staff 🛫" site_title = "Flight Scheduler Staff 🛫" index_title = "Welcome to CantorAir Flight Scheduler Staff Portal" def get_app_list(self, request: HttpRequest, *args, **kwargs): app_list = super().get_app_list(request) if not request.user.is_superuser: self.enable_nav_sidebar = False return app_list # Register only user visible models flightslot_staff = FlightSlotUserSite(name="staff_site") flightslot_staff.register(MissionProfile, MissionProfileAdmin) flightslot_staff.register(Availability, AvailabilityAdmin) flightslot_staff.register(Instructor, InstructorAdmin) # Get version for debug purposes ver: str = environ.get("VERSION", "dev") # Register all visible models admin.site.site_header = f"Flight Scheduler Admin 🛫 - ver.{ver}" admin.site.site_title = f"Flight Scheduler Admin 🛫 - ver.{ver}" admin.site.index_title = "Welcome to CantorAir Flight Scheduler Administrator Portal" admin.site.register(Aircraft, AircraftAdmin) admin.site.register(Course, CourseAdmin) admin.site.register(MissionProfile, MissionProfileAdmin) admin.site.register(Student, StudentAdmin) admin.site.register(WeekPreference, WeekPreferenceAdmin) #admin.site.register(Instructor, InstructorAdmin) #admin.site.register(Availability, AvailabilityAdmin)