Files
catops/cntmanage/flightslot/admin.py

80 lines
2.9 KiB
Python

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)