diff --git a/participation/forms.py b/participation/forms.py index 6b8627c..2c097d0 100644 --- a/participation/forms.py +++ b/participation/forms.py @@ -192,24 +192,6 @@ class PoolForm(forms.ModelForm): } -class PoolTeamsForm(forms.ModelForm): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.fields["participations"].queryset = self.instance.tournament.participations.all() - - class Meta: - model = Pool - fields = ('participations',) - widgets = { - "participations": forms.SelectMultiple(attrs={ - 'class': 'selectpicker', - 'data-live-search': 'true', - 'data-live-search-normalize': 'true', - 'data-width': 'fit', - }), - } - - class AddJuryForm(forms.ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) diff --git a/participation/templates/participation/pool_detail.html b/participation/templates/participation/pool_detail.html index 55a2639..e9a5218 100644 --- a/participation/templates/participation/pool_detail.html +++ b/participation/templates/participation/pool_detail.html @@ -125,9 +125,7 @@ {% if user.registration.is_volunteer %} {% endif %} @@ -138,21 +136,11 @@ {% render_table passages %} - {% trans "Add passage" as modal_title %} - {% trans "Add" as modal_button %} - {% url "participation:passage_create" pk=pool.pk as modal_action %} - {% include "base_modal.html" with modal_id="addPassage" modal_button_type="success" %} - {% trans "Update pool" as modal_title %} {% trans "Update" as modal_button %} {% url "participation:pool_update" pk=pool.pk as modal_action %} {% include "base_modal.html" with modal_id="updatePool" %} - {% trans "Update teams" as modal_title %} - {% trans "Update" as modal_button %} - {% url "participation:pool_update_teams" pk=pool.pk as modal_action %} - {% include "base_modal.html" with modal_id="updateTeams" %} - {% trans "Upload notes" as modal_title %} {% trans "Upload" as modal_button %} {% url "participation:pool_upload_notes" pk=pool.pk as modal_action %} @@ -163,8 +151,6 @@ diff --git a/participation/urls.py b/participation/urls.py index 2634262..45f4dca 100644 --- a/participation/urls.py +++ b/participation/urls.py @@ -5,9 +5,9 @@ from django.urls import path from django.views.generic import TemplateView from .views import CreateTeamView, FinalNotationSheetTemplateView, JoinTeamView, MyParticipationDetailView, \ - MyTeamDetailView, NotationSheetsArchiveView, NoteUpdateView, ParticipationDetailView, PassageCreateView, \ + MyTeamDetailView, NotationSheetsArchiveView, NoteUpdateView, ParticipationDetailView, \ PassageDetailView, PassageUpdateView, PoolCreateView, PoolDetailView, PoolJuryView, PoolNotesTemplateView, \ - PoolPresideJuryView, PoolRemoveJuryView, PoolUpdateTeamsView, PoolUpdateView, PoolUploadNotesView, \ + PoolPresideJuryView, PoolRemoveJuryView, PoolUpdateView, PoolUploadNotesView, \ ScaleNotationSheetTemplateView, SolutionsDownloadView, SolutionUploadView, SynthesisUploadView, \ TeamAuthorizationsView, TeamDetailView, TeamLeaveView, TeamListView, TeamUpdateView, \ TeamUploadMotivationLetterView, TournamentCreateView, TournamentDetailView, TournamentExportCSVView, \ @@ -60,13 +60,11 @@ urlpatterns = [ path("pools//notation/scale/", ScaleNotationSheetTemplateView.as_view(), name="pool_scale_note_sheet"), path("pools//notation/final/", FinalNotationSheetTemplateView.as_view(), name="pool_final_note_sheet"), path("pools//notation/sheets/", NotationSheetsArchiveView.as_view(), name="pool_notation_sheets"), - path("pools//update-teams/", PoolUpdateTeamsView.as_view(), name="pool_update_teams"), path("pools//jury/", PoolJuryView.as_view(), name="pool_jury"), path("pools//jury/remove//", PoolRemoveJuryView.as_view(), name="pool_remove_jury"), path("pools//jury/preside//", PoolPresideJuryView.as_view(), name="pool_preside"), path("pools//upload-notes/", PoolUploadNotesView.as_view(), name="pool_upload_notes"), path("pools//upload-notes/template/", PoolNotesTemplateView.as_view(), name="pool_notes_template"), - path("pools/passages/add//", PassageCreateView.as_view(), name="passage_create"), path("pools/passages//", PassageDetailView.as_view(), name="passage_detail"), path("pools/passages//update/", PassageUpdateView.as_view(), name="passage_update"), path("pools/passages//solution/", SynthesisUploadView.as_view(), name="upload_synthesis"), diff --git a/participation/views.py b/participation/views.py index 3ff477f..7963bb1 100644 --- a/participation/views.py +++ b/participation/views.py @@ -40,7 +40,7 @@ from tfjm.lists import get_sympa_client from tfjm.views import AdminMixin, VolunteerMixin from .forms import AddJuryForm, JoinTeamForm, MotivationLetterForm, NoteForm, ParticipationForm, PassageForm, \ - PoolForm, PoolTeamsForm, RequestValidationForm, SolutionForm, SynthesisForm, TeamForm, TournamentForm, \ + PoolForm, RequestValidationForm, SolutionForm, SynthesisForm, TeamForm, TournamentForm, \ UploadNotesForm, ValidateParticipationForm from .models import Note, Participation, Passage, Pool, Solution, Synthesis, Team, Tournament, Tweak from .tables import NoteTable, ParticipationTable, PassageTable, PoolTable, TeamTable, TournamentTable @@ -888,20 +888,6 @@ class PoolUpdateView(VolunteerMixin, UpdateView): return ret -class PoolUpdateTeamsView(VolunteerMixin, UpdateView): - model = Pool - form_class = PoolTeamsForm - - def dispatch(self, request, *args, **kwargs): - if not request.user.is_authenticated: - return self.handle_no_permission() - if request.user.registration.is_admin or request.user.registration.is_volunteer \ - and (self.get_object().tournament in request.user.registration.organized_tournaments.all() - or request.user.registration in self.get_object().juries.all()): - return super().dispatch(request, *args, **kwargs) - return self.handle_no_permission() - - class SolutionsDownloadView(VolunteerMixin, View): """ Download all solutions or syntheses as a ZIP archive. @@ -1881,35 +1867,6 @@ class NotationSheetsArchiveView(VolunteerMixin, DetailView): return response -class PassageCreateView(VolunteerMixin, CreateView): - model = Passage - form_class = PassageForm - - def dispatch(self, request, *args, **kwargs): - if not request.user.is_authenticated: - return self.handle_no_permission() - - qs = Pool.objects.filter(pk=self.kwargs["pk"]) - if not qs.exists(): - raise Http404 - self.pool = qs.get() - - if request.user.registration.is_admin or request.user.registration.is_volunteer \ - and (self.pool.tournament in request.user.registration.organized_tournaments.all() - or request.user.registration in self.pool.juries.all()): - return super().dispatch(request, *args, **kwargs) - - return self.handle_no_permission() - - def get_form(self, form_class=None): - form = super().get_form(form_class) - form.instance.pool = self.pool - form.fields["defender"].queryset = self.pool.participations.all() - form.fields["opponent"].queryset = self.pool.participations.all() - form.fields["reporter"].queryset = self.pool.participations.all() - return form - - class PassageDetailView(LoginRequiredMixin, DetailView): model = Passage