mirror of
https://gitlab.com/animath/si/plateforme-corres2math.git
synced 2025-06-21 20:38:22 +02:00
Add phase update page
This commit is contained in:
@ -1,10 +1,11 @@
|
||||
import re
|
||||
|
||||
from bootstrap_datepicker_plus import DateTimePickerInput
|
||||
from django import forms
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from .models import Participation, Team, Video
|
||||
from .models import Participation, Phase, Team, Video
|
||||
|
||||
|
||||
class TeamForm(forms.ModelForm):
|
||||
@ -72,3 +73,13 @@ class UploadVideoForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Video
|
||||
fields = ('link',)
|
||||
|
||||
|
||||
class PhaseForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Phase
|
||||
fields = ('start', 'end',)
|
||||
widgets = {
|
||||
'start': DateTimePickerInput(),
|
||||
'end': DateTimePickerInput(),
|
||||
}
|
||||
|
14
apps/participation/templates/participation/phase_form.html
Normal file
14
apps/participation/templates/participation/phase_form.html
Normal file
@ -0,0 +1,14 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% load crispy_forms_filters i18n %}
|
||||
|
||||
{% block content %}
|
||||
<form method="post">
|
||||
<div id="form-content">
|
||||
{% csrf_token %}
|
||||
{{ form|crispy }}
|
||||
</div>
|
||||
<button class="btn btn-primary" type="submit">{% trans "Update" %}</button>
|
||||
</form>
|
||||
{% endblock content %}
|
||||
|
@ -1,7 +1,7 @@
|
||||
from django.urls import path
|
||||
|
||||
from .views import CalendarView, CreateTeamView, JoinTeamView, MyParticipationDetailView, MyTeamDetailView, \
|
||||
ParticipationDetailView,TeamAuthorizationsView, TeamDetailView, TeamUpdateView, UploadVideoView
|
||||
ParticipationDetailView, PhaseUpdateView, TeamAuthorizationsView, TeamDetailView, TeamUpdateView, UploadVideoView
|
||||
|
||||
|
||||
app_name = "participation"
|
||||
@ -17,4 +17,5 @@ urlpatterns = [
|
||||
path("detail/<int:pk>/", ParticipationDetailView.as_view(), name="participation_detail"),
|
||||
path("detail/upload-video/<int:pk>/", UploadVideoView.as_view(), name="upload_video"),
|
||||
path("calendar/", CalendarView.as_view(), name="calendar"),
|
||||
path("calendar/<int:pk>/", PhaseUpdateView.as_view(), name="update_phase"),
|
||||
]
|
||||
|
@ -3,6 +3,7 @@ import os
|
||||
from zipfile import ZipFile
|
||||
|
||||
from corres2math.lists import get_sympa_client
|
||||
from corres2math.views import AdminMixin
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.core.mail import send_mail
|
||||
@ -17,7 +18,7 @@ from django_tables2 import SingleTableView
|
||||
from magic import Magic
|
||||
from registration.models import AdminRegistration
|
||||
|
||||
from .forms import JoinTeamForm, ParticipationForm, RequestValidationForm, TeamForm, UploadVideoForm,\
|
||||
from .forms import JoinTeamForm, ParticipationForm, PhaseForm, RequestValidationForm, TeamForm, UploadVideoForm,\
|
||||
ValidateParticipationForm
|
||||
from .models import Participation, Phase, Team, Video
|
||||
from .tables import CalendarTable
|
||||
@ -281,3 +282,8 @@ class UploadVideoView(LoginRequiredMixin, UpdateView):
|
||||
class CalendarView(SingleTableView):
|
||||
table_class = CalendarTable
|
||||
model = Phase
|
||||
|
||||
|
||||
class PhaseUpdateView(AdminMixin, UpdateView):
|
||||
model = Phase
|
||||
form_class = PhaseForm
|
||||
|
Reference in New Issue
Block a user