80 lines
2.9 KiB
Python
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)
|