From 5ff595e555bcb031110c59487de0328d282cf806 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Tue, 12 Mar 2024 11:51:27 +0100 Subject: [PATCH] Update Passe model and update admin files --- jarvis/core/admin.py | 6 ++-- jarvis/followup/admin.py | 30 +++++++++---------- jarvis/location/admin.py | 8 ++--- jarvis/objective/admin.py | 19 ++++++------ jarvis/objective/forms.py | 18 ++--------- .../migrations/0021_alter_passe_educatives.py | 20 +++++++++++++ jarvis/objective/models.py | 4 ++- jarvis/people/admin.py | 4 +-- jarvis/people/models.py | 1 + jarvis/planning/admin.py | 8 ++--- jarvis/profiles/admin.py | 8 ++--- 11 files changed, 62 insertions(+), 64 deletions(-) create mode 100644 jarvis/objective/migrations/0021_alter_passe_educatives.py diff --git a/jarvis/core/admin.py b/jarvis/core/admin.py index 6c13440..6fe5dbd 100644 --- a/jarvis/core/admin.py +++ b/jarvis/core/admin.py @@ -2,17 +2,15 @@ from django.contrib import admin from .models import Citation, Email +@admin.register(Citation) class CitationAdmin(admin.ModelAdmin): model = Citation list_display = ("author", "quote") +@admin.register(Email) class EmailAdmin(admin.ModelAdmin): model = Email list_display = ("title", "created_at", "updated_at", "sent_at", "last_tried_at") - - -admin.site.register(Citation, CitationAdmin) -admin.site.register(Email, EmailAdmin) diff --git a/jarvis/followup/admin.py b/jarvis/followup/admin.py index a7b7372..dad29ee 100644 --- a/jarvis/followup/admin.py +++ b/jarvis/followup/admin.py @@ -24,6 +24,7 @@ from .models import ( ) +@admin.register(Chrono) class ChronoAdmin(admin.ModelAdmin): model = Chrono @@ -38,6 +39,7 @@ class ChronoAdmin(admin.ModelAdmin): related_search_fields = {"gymnast": ("last_name", "first_name")} +@admin.register(ChronoDetails) class ChronoDetailsAdmin(admin.ModelAdmin): model = ChronoDetails @@ -51,6 +53,7 @@ class ChronoDetailsAdmin(admin.ModelAdmin): } +@admin.register(LearnedSkill) class LearnedSkillAdmin(admin.ModelAdmin): model = LearnedSkill @@ -66,6 +69,7 @@ class LearnedSkillAdmin(admin.ModelAdmin): date_hierarchy = "date" +@admin.register(Point) class PointAdmin(admin.ModelAdmin): model = Point @@ -93,6 +97,7 @@ class PointAdmin(admin.ModelAdmin): autocomplete_fields = ("gymnast", "event") +@admin.register(Injury) class InjuryAdmin(admin.ModelAdmin): model = Injury @@ -121,6 +126,7 @@ class InjuryAdmin(admin.ModelAdmin): autocomplete_fields = ("gymnast", "skill") +@admin.register(WellBeing) class WellBeingAdmin(admin.ModelAdmin): model = WellBeing @@ -154,6 +160,7 @@ class WellBeingAdmin(admin.ModelAdmin): date_hierarchy = "date" +@admin.register(GymnastHasRoutine) class GymnastHasRoutineAdmin(admin.ModelAdmin): model = GymnastHasRoutine @@ -166,6 +173,7 @@ class GymnastHasRoutineAdmin(admin.ModelAdmin): autocomplete_fields = ("gymnast", "routine") +@admin.register(NumberOfRoutineDone) class NumberOfRoutineDoneAdmin(admin.ModelAdmin): model = NumberOfRoutineDone @@ -184,6 +192,7 @@ class NumberOfRoutineDoneAdmin(admin.ModelAdmin): date_hierarchy = "date" +@admin.register(HeightWeight) class HeightWeightAdmin(admin.ModelAdmin): model = HeightWeight @@ -194,6 +203,7 @@ class HeightWeightAdmin(admin.ModelAdmin): autocomplete_fields = ("gymnast",) +@admin.register(Plan) class PlanAdmin(admin.ModelAdmin): model = Plan @@ -213,6 +223,7 @@ class PlanAdmin(admin.ModelAdmin): autocomplete_fields = ("gymnast",) +@admin.register(Note) class NoteAdmin(admin.ModelAdmin): model = Note @@ -233,6 +244,7 @@ class NoteAdmin(admin.ModelAdmin): autocomplete_fields = ("gymnast",) +@admin.register(Intensity) class IntensityAdmin(admin.ModelAdmin): model = Intensity @@ -253,6 +265,7 @@ class IntensityAdmin(admin.ModelAdmin): autocomplete_fields = ("gymnast",) +@admin.register(SeasonInformation) class SeasonInformationAdmin(admin.ModelAdmin): model = SeasonInformation @@ -274,6 +287,7 @@ class SeasonInformationAdmin(admin.ModelAdmin): autocomplete_fields = ("gymnast",) +@admin.register(CompetitivePointsStats) class CompetitivePointsStatsAdmin(admin.ModelAdmin): model = CompetitivePointsStats @@ -289,19 +303,3 @@ class CompetitivePointsStatsAdmin(admin.ModelAdmin): ("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) diff --git a/jarvis/location/admin.py b/jarvis/location/admin.py index 6fef19d..a8b3bee 100644 --- a/jarvis/location/admin.py +++ b/jarvis/location/admin.py @@ -2,6 +2,7 @@ from django.contrib import admin from .models import Place, Club, Country +@admin.register(Country) class CountryAdmin(admin.ModelAdmin): model = Country @@ -10,6 +11,7 @@ class CountryAdmin(admin.ModelAdmin): search_fields = ("name", "nationality") +@admin.register(Club) class ClubAdmin(admin.ModelAdmin): model = Club @@ -20,6 +22,7 @@ class ClubAdmin(admin.ModelAdmin): autocomplete_fields = ("place",) +@admin.register(Place) class PlaceAdmin(admin.ModelAdmin): model = Place @@ -28,8 +31,3 @@ class PlaceAdmin(admin.ModelAdmin): list_filter = ("is_active",) search_fields = ("name", "address", "postal", "city") autocomplete_fields = ("country",) # , "place" - - -admin.site.register(Place, PlaceAdmin) -admin.site.register(Club, ClubAdmin) -admin.site.register(Country, CountryAdmin) diff --git a/jarvis/objective/admin.py b/jarvis/objective/admin.py index fb2c398..dfc07f3 100644 --- a/jarvis/objective/admin.py +++ b/jarvis/objective/admin.py @@ -17,6 +17,7 @@ from .models import ( ) +@admin.register(TouchPosition) class TouchPositionAdmin(admin.ModelAdmin): model = TouchPosition @@ -32,6 +33,7 @@ def duplicate_skill(modeladmin, request, queryset): # pylint: disable=unused-ar obj.save() +@admin.register(Skill) class SkillAdmin(admin.ModelAdmin): model = Skill @@ -98,6 +100,7 @@ class SkillAdmin(admin.ModelAdmin): ) +@admin.register(Routine) class RoutineAdmin(admin.ModelAdmin): model = Routine @@ -158,6 +161,7 @@ class RoutineAdmin(admin.ModelAdmin): # return super(Skill, self).get_related_filter(model, request) +@admin.register(RoutineSkill) class RoutineSkillAdmin(admin.ModelAdmin): model = RoutineSkill @@ -173,6 +177,7 @@ class RoutineSkillAdmin(admin.ModelAdmin): autocomplete_fields = ("routine", "skill") +@admin.register(PrerequisiteClosure) class PrerequisiteClosureAdmin(admin.ModelAdmin): model = PrerequisiteClosure @@ -189,6 +194,7 @@ class PrerequisiteClosureAdmin(admin.ModelAdmin): ) +@admin.register(Passe) class PasseAdmin(admin.ModelAdmin): model = Passe @@ -201,11 +207,12 @@ class PasseAdmin(admin.ModelAdmin): "informations", ) - list_display = ("label", "number_of_skill", "difficulty") + list_display = ("label", "regexp", "number_of_skill", "difficulty") list_filter = ( ("number_of_skill", DropdownFilter), ("difficulty", DropdownFilter), ) + filter_horizontal = ("educatives",) class Media: js = ( @@ -214,6 +221,7 @@ class PasseAdmin(admin.ModelAdmin): ) +@admin.register(TrainingProgram) class TrainingProgramAdmin(admin.ModelAdmin): model = TrainingProgram @@ -240,12 +248,3 @@ class TrainingProgramAdmin(admin.ModelAdmin): ("gymnast", RelatedDropdownFilter), ("date", DropdownFilter), ) - - -admin.site.register(Skill, SkillAdmin) -admin.site.register(Passe, PasseAdmin) -admin.site.register(Routine, RoutineAdmin) -admin.site.register(RoutineSkill, RoutineSkillAdmin) -admin.site.register(TouchPosition, TouchPositionAdmin) -admin.site.register(TrainingProgram, TrainingProgramAdmin) -admin.site.register(PrerequisiteClosure, PrerequisiteClosureAdmin) diff --git a/jarvis/objective/forms.py b/jarvis/objective/forms.py index 856ec65..3865bd9 100644 --- a/jarvis/objective/forms.py +++ b/jarvis/objective/forms.py @@ -40,8 +40,6 @@ class CombinationForm(forms.ModelForm): "short_label": forms.TextInput( attrs={"class": "form-control", "placeholder": "Routine's short name"} ), - # "is_routine": form., - # "is_competitive": form., "informations": forms.Textarea( attrs={ "class": "form-control", @@ -104,16 +102,6 @@ class PasseForm(forms.ModelForm): ), ) - # "repetition": forms.NumberInput( - # attrs={ - # "class": "form-control", - # "placeholder": "x", - # "min": "0", - # "max": "1000", - # "step": "1", - # } - # ), - def clean_regexp(self): """Vérifie que la regexp entrée par l'utilisateur est valide.""" regexp = self.cleaned_data["regexp"] @@ -127,9 +115,9 @@ class PasseForm(forms.ModelForm): `regexp` est définie par : - valeurs de ROUTINE_TYPE_CHOICE il faut que Educatives soit VIDE - avec [x-y] - - [x-y] Educatives soit NON VIDE - - WC il y ait 2+ Educatives - - x| il y ait 1! Educatives + - [x-y] " Educatives soit NON VIDE + - WC " il y ait 2+ Educatives + - x| " il y ait 1! Educatives """ cleaned_data = super().clean() regexp = ["regexp"] diff --git a/jarvis/objective/migrations/0021_alter_passe_educatives.py b/jarvis/objective/migrations/0021_alter_passe_educatives.py new file mode 100644 index 0000000..ba86074 --- /dev/null +++ b/jarvis/objective/migrations/0021_alter_passe_educatives.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2 on 2024-03-12 09:20 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("objective", "0020_alter_passe_educatives"), + ] + + operations = [ + migrations.AlterField( + model_name="passe", + name="educatives", + field=models.ManyToManyField( + blank=True, related_name="passes", to="objective.educative" + ), + ), + ] diff --git a/jarvis/objective/models.py b/jarvis/objective/models.py index 6365de9..c61a750 100644 --- a/jarvis/objective/models.py +++ b/jarvis/objective/models.py @@ -473,7 +473,9 @@ class Passe(Markdownizable): ordering = ["label"] label = models.CharField(max_length=30) - educatives = models.ManyToManyField(Educative, blank=True) + educatives = models.ManyToManyField( + Educative, related_name="passes", blank=True, symmetrical=False + ) regexp = models.CharField(max_length=50, null=True, blank=True) number_of_skill = models.PositiveSmallIntegerField(default=0) difficulty = models.DecimalField(max_digits=4, decimal_places=1, default=0.0) diff --git a/jarvis/people/admin.py b/jarvis/people/admin.py index 5c8181f..6aedf35 100644 --- a/jarvis/people/admin.py +++ b/jarvis/people/admin.py @@ -2,6 +2,7 @@ from django.contrib import admin from .models import Gymnast +@admin.register(Gymnast) class GymnastAdmin(admin.ModelAdmin): model = Gymnast @@ -42,6 +43,3 @@ class GymnastAdmin(admin.ModelAdmin): list_display = ("last_name", "first_name", "age", "email", "is_active") list_filter = ("gender", "user__is_active") search_fields = ("last_name", "first_name") - - -admin.site.register(Gymnast, GymnastAdmin) diff --git a/jarvis/people/models.py b/jarvis/people/models.py index 094c2b1..68af7c1 100644 --- a/jarvis/people/models.py +++ b/jarvis/people/models.py @@ -31,6 +31,7 @@ class Gymnast(Markdownizable): class Meta: verbose_name = "Gymnast" verbose_name_plural = "Gymnasts" + ordering = ["first_name", "last_name"] user = models.OneToOneField( User, on_delete=models.SET_NULL, related_name="gymnast", blank=True, null=True diff --git a/jarvis/planning/admin.py b/jarvis/planning/admin.py index 79fe3ad..ad227c8 100644 --- a/jarvis/planning/admin.py +++ b/jarvis/planning/admin.py @@ -18,6 +18,7 @@ from .models import ( # duplicate_record.short_description = 'Duplicate selected records' +@admin.register(EventType) class EventTypeAdmin(admin.ModelAdmin): model = EventType @@ -26,6 +27,7 @@ class EventTypeAdmin(admin.ModelAdmin): search_fields = ("name", "acronym") +@admin.register(Event) class EventAdmin(admin.ModelAdmin): model = Event @@ -45,14 +47,10 @@ class EventAdmin(admin.ModelAdmin): # filter_horizontal = ('gymnasts',) +@admin.register(EventParticipation) class EventParticipationAdmin(admin.ModelAdmin): model = EventParticipation fields = ("event", "gymnast", "rank") list_display = ("event", "gymnast", "rank") autocomplete_fields = ("event", "gymnast") - - -admin.site.register(EventType, EventTypeAdmin) -admin.site.register(Event, EventAdmin) -admin.site.register(EventParticipation, EventParticipationAdmin) diff --git a/jarvis/profiles/admin.py b/jarvis/profiles/admin.py index 3775985..9116e24 100644 --- a/jarvis/profiles/admin.py +++ b/jarvis/profiles/admin.py @@ -3,12 +3,14 @@ from django_admin_listfilter_dropdown.filters import RelatedDropdownFilter from .models import Profile, Notification, TrainerGymnast +@admin.register(Profile) class ProfileAdmin(admin.ModelAdmin): model = Profile list_display = ("user", "template_color", "sidebar_color") autocomplete_fields = ("user",) +@admin.register(Notification) class NotificationAdmin(admin.ModelAdmin): model = Notification list_display = ("user", "gymnast", "functionality") @@ -20,6 +22,7 @@ class NotificationAdmin(admin.ModelAdmin): ) +@admin.register(TrainerGymnast) class TrainerGymnastAdmin(admin.ModelAdmin): model = TrainerGymnast list_display = ("user", "gymnast") @@ -28,8 +31,3 @@ class TrainerGymnastAdmin(admin.ModelAdmin): ("user", RelatedDropdownFilter), ("gymnast", RelatedDropdownFilter), ) - - -admin.site.register(Profile, ProfileAdmin) -admin.site.register(Notification, NotificationAdmin) -admin.site.register(TrainerGymnast, TrainerGymnastAdmin)