from django.contrib import admin from django_admin_listfilter_dropdown.filters import ( DropdownFilter, ChoiceDropdownFilter, RelatedDropdownFilter, ) from .models import ( Plan, Note, Point, Chrono, Accident, MindState, Intensity, HeightWeight, LearnedSkill, ChronoDetails, GymnastHasRoutine, SeasonInformation, NumberOfRoutineDone, CompetitivePointsStats, ) class ChronoAdmin(admin.ModelAdmin): model = Chrono list_display = ("date", "gymnast", "tof", "chrono_type") readonly_fields = ("season", "week_number", "created_at", "updated_at") list_filter = ("chrono_type", ("gymnast", RelatedDropdownFilter)) # list_filter = (("gymnast", RelatedDropdownFilter),) autocomplete_fields = ("gymnast",) date_hierarchy = "date" related_search_fields = {"gymnast": ("last_name", "first_name")} class ChronoDetailsAdmin(admin.ModelAdmin): model = ChronoDetails list_display = ("chrono", "order", "value") # "chrono__gymnast", list_filter = ( ("chrono", RelatedDropdownFilter), # ('chrono__gymnast', RelatedDropdownFilter), ) related_search_fields = { "chrono": ("date", "chrono__gymnast__last_name", "chrono__gymnast__first_name") } class LearnedSkillAdmin(admin.ModelAdmin): model = LearnedSkill list_display = ("gymnast", "skill", "learning_step", "date") readonly_fields = ("season", "week_number", "created_at", "updated_at") list_filter = ( ("gymnast", RelatedDropdownFilter), ("skill", RelatedDropdownFilter), "learning_step", ) search_fields = ("gymnast", "skill") autocomplete_fields = ("gymnast", "skill") date_hierarchy = "date" class PointAdmin(admin.ModelAdmin): model = Point list_display = ( "gymnast", "point_execution", "point_difficulty", "point_time_of_flight", "total", ) readonly_fields = ("created_at", "updated_at") ordering = ("gymnast",) list_filter = ( ("gymnast", RelatedDropdownFilter), ("event", RelatedDropdownFilter), ("routine_type", DropdownFilter), ) search_fields = ( "gymnast__first_name", "gymnast__last_name", "event__place_name", "event__place_city", "event__place__country_name", ) autocomplete_fields = ("gymnast", "event") class AccidentAdmin(admin.ModelAdmin): model = Accident fields = ("date", "gymnast", "skill", "informations") # educative readonly_fields = ("season", "week_number", "created_at", "updated_at") list_display = ("date", "gymnast", "skill") # educative list_filter = ("date",) date_hierarchy = "date" search_fields = ("date", "gymnast") # educative autocomplete_fields = ("gymnast", "skill") class MindStateAdmin(admin.ModelAdmin): model = MindState fields = ("gymnast", "date", "score", "informations") readonly_fields = ("season", "week_number", "created_at", "updated_at") list_display = ("date", "gymnast", "score") list_filter = ( "date", ("gymnast", RelatedDropdownFilter), ) autocomplete_fields = ("gymnast",) date_hierarchy = "date" class GymnastHasRoutineAdmin(admin.ModelAdmin): model = GymnastHasRoutine list_display = ("gymnast", "routine", "routine_type", "date_begin", "date_end") list_filter = ( ("gymnast", RelatedDropdownFilter), ("routine_type", DropdownFilter), # A supprimer ? ) search_fields = ("gymnast", "routine") autocomplete_fields = ("gymnast", "routine") class NumberOfRoutineDoneAdmin(admin.ModelAdmin): model = NumberOfRoutineDone list_display = ( "gymnast", "routine_type", "date", "number_of_successes", "number_of_try", ) list_filter = ( ("gymnast", RelatedDropdownFilter), ("routine_type", DropdownFilter), # A supprimer ? ) autocomplete_fields = ("gymnast", "routine") date_hierarchy = "date" class HeightWeightAdmin(admin.ModelAdmin): model = HeightWeight list_display = ("gymnast", "height", "hips_height", "weight", "date") readonly_fields = ("season", "week_number") list_filter = (("gymnast", RelatedDropdownFilter),) date_hierarchy = "date" autocomplete_fields = ("gymnast",) class PlanAdmin(admin.ModelAdmin): model = Plan list_display = ("gymnast", "date", "educative") readonly_fields = ("season", "week_number", "created_at", "updated_at") list_filter = ( ("gymnast", RelatedDropdownFilter), ("educative", RelatedDropdownFilter), ) search_fields = ( "gymnast__firstname", "gymnast__lastname", "educative__long_label", "educative__short_label", ) date_hierarchy = "date" autocomplete_fields = ("gymnast",) class NoteAdmin(admin.ModelAdmin): model = Note list_display = ("gymnast", "coach", "date", "created_at") readonly_fields = ("season", "week_number", "created_at", "updated_at") list_filter = ( ("gymnast", RelatedDropdownFilter), ("coach", RelatedDropdownFilter), "status", ) search_fields = ( "gymnast__firstname", "gymnast__lastname", "coach__last_name", "coach__first_name", ) date_hierarchy = "created_at" autocomplete_fields = ("gymnast",) class IntensityAdmin(admin.ModelAdmin): model = Intensity list_display = ( "gymnast", "time", "difficulty", "quantity_of_skill", "number_of_passes", ) readonly_fields = ("season", "week_number") list_filter = (("gymnast", RelatedDropdownFilter),) search_fields = ( "gymnast__firstname", "gymnast__lastname", ) autocomplete_fields = ("gymnast",) class SeasonInformationAdmin(admin.ModelAdmin): model = SeasonInformation list_display = ( "gymnast", "season", "category", "number_of_training_sessions_per_week", "number_of_hours_per_week", "number_of_s_and_c_sessions_per_week", "number_of_s_and_c_hours_per_week", # "club", ) list_filter = (("gymnast", RelatedDropdownFilter),) search_fields = ( "gymnast__firstname", "gymnast__lastname", ) autocomplete_fields = ("gymnast",) class CompetitivePointsStatsAdmin(admin.ModelAdmin): model = CompetitivePointsStats list_display = ( "label", "age_category", "gender", "statistic_type", "total", "routine_type", ) list_filter = ( ("statistic_type", ChoiceDropdownFilter), ("routine_type", ChoiceDropdownFilter), # A supprimer ? ) admin.site.register(Plan, PlanAdmin) admin.site.register(Note, NoteAdmin) admin.site.register(Point, PointAdmin) admin.site.register(Chrono, ChronoAdmin) admin.site.register(Accident, AccidentAdmin) admin.site.register(MindState, MindStateAdmin) admin.site.register(Intensity, IntensityAdmin) admin.site.register(LearnedSkill, LearnedSkillAdmin) admin.site.register(HeightWeight, HeightWeightAdmin) admin.site.register(ChronoDetails, ChronoDetailsAdmin) admin.site.register(SeasonInformation, SeasonInformationAdmin) admin.site.register(GymnastHasRoutine, GymnastHasRoutineAdmin) admin.site.register(NumberOfRoutineDone, NumberOfRoutineDoneAdmin) admin.site.register(CompetitivePointsStats, CompetitivePointsStatsAdmin)