Jarvis/jarvis/followup/admin.py

270 lines
7.3 KiB
Python

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)