Jarvis/jarvis/followup/admin.py

305 lines
7.9 KiB
Python

from django.contrib import admin
from django_admin_listfilter_dropdown.filters import (
DropdownFilter,
ChoiceDropdownFilter,
RelatedDropdownFilter,
)
from .models import (
Plan,
Note,
Point,
Chrono,
Injury,
WellBeing,
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))
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 InjuryAdmin(admin.ModelAdmin):
model = Injury
fields = (
"date",
"gymnast",
"skill",
"injury_type",
"location",
"body_side",
"mechanism",
"nb_week_off",
"informations",
) # educative
# readonly_fields = ("season", "week_number", "created_at", "updated_at")
list_display = ("date", "gymnast", "skill") # educative
list_filter = (
("gymnast", RelatedDropdownFilter),
("injury_type", DropdownFilter),
("location", DropdownFilter),
("body_side", DropdownFilter),
("mechanism", DropdownFilter),
)
date_hierarchy = "date"
search_fields = ("date", "gymnast") # educative
autocomplete_fields = ("gymnast", "skill")
class WellBeingAdmin(admin.ModelAdmin):
model = WellBeing
fields = (
"gymnast",
"date",
"mindstate",
"sleep",
"stress",
"fatigue",
"muscle_soreness",
"informations",
)
readonly_fields = ("created_at", "updated_at")
list_display = (
"date",
"gymnast",
"mindstate",
"sleep",
"stress",
"fatigue",
"muscle_soreness",
"created_at",
"updated_at",
)
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 = ("title", "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",
"date",
"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(Injury, InjuryAdmin)
admin.site.register(WellBeing, WellBeingAdmin)
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)