diff --git a/management/forms.py b/management/forms.py index 361fc247abce52ce2fb376c206199def7f80a52e..2991618ded8f07888446a5fe88e8307c2bb14a48 100644 --- a/management/forms.py +++ b/management/forms.py @@ -153,9 +153,14 @@ class SessionSettingsForm(AddSessionForm): # will be set by html 'invite_text': '' } + widgets = { + 'start_date': forms.TextInput(attrs={'placeholder': 'e.g. 2020-05-12 13:00:00', 'type': 'datetime'}) + } def clean_add_election_manager(self): value = self.data['add_election_manager'] + if not value: + return value if not ElectionManager.objects.filter(username=value).exists(): raise forms.ValidationError(f'Cannot find election manager with username {value}') @@ -164,8 +169,9 @@ class SessionSettingsForm(AddSessionForm): def _save_m2m(self): super()._save_m2m() - self.cleaned_data['add_election_manager'].sessions.add(self.instance) - self.cleaned_data['add_election_manager'].save() + if self.cleaned_data['add_election_manager']: + self.cleaned_data['add_election_manager'].sessions.add(self.instance) + self.cleaned_data['add_election_manager'].save() def save(self, commit=True): self.instance = super().save(commit=False) diff --git a/management/templates/management/session.html b/management/templates/management/session.html index 418c73ac967d4441678ec84149b995738a117ace..96daa9aa0209d691d2b1aaea655f9b3b4d9f593d 100644 --- a/management/templates/management/session.html +++ b/management/templates/management/session.html @@ -30,7 +30,8 @@ <small>Meeting on <a href="{{ session.meeting_link }}">{{ session.meeting_link }}</a></small> {% endif %} {% if session.start_date %} - <small>- {{ session.start_date }}</small> + <br/> + <small>Starts on {{ session.start_date }}</small> {% endif %} </div> <div class="card-body"> diff --git a/management/templates/management/session_settings.html b/management/templates/management/session_settings.html index 35301ef3f1f9f32f599144612c9dcb125db5442e..95affadf354431d6d9afefec1d9e665c6378583f 100644 --- a/management/templates/management/session_settings.html +++ b/management/templates/management/session_settings.html @@ -2,6 +2,10 @@ {% load static %} {% load crispy_forms_filters %} +{% block head %} + <link rel="stylesheet" href="{% static "management/css/DateTimePicker.css" %}"/> +{% endblock %} + {% block content %} <div class="row justify-content-center"> <div class="col-12"> @@ -86,14 +90,17 @@ </div> <br> - <button type="submit" id="id_btn_start" class="btn btn-success">Save</button> + <button type="submit" id="id_btn_start" class="btn btn-success">Update</button> + <div id="dtBox"></div> </form> </div> </div> </div> </div> - <script src="{% static "js/jquery-3.5.1.slim.min.js" %}" - integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"></script> + <script src="{% static "js/jquery-3.5.1.min.js" %}" + integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="></script> <script src="{% static "bootstrap-4.5.3-dist/js/bootstrap.min.js" %}" integrity="sha384-w1Q4orYjBQndcko6MimVbzY0tgp4pWB4lZ7lr30WKz0vr/aWKhXdBNmNb5D92v7s"></script> + <script src="{% static "management/js/DateTimePicker.js" %}"></script> + <script src="{% static "management/js/datetime.js" %}"></script> {% endblock %} diff --git a/management/views.py b/management/views.py index 35c0d2fbe867d6979c853060c3b6dbe5718dd81c..123d5414f14dd5d276ca07fb865ac7b1c85a5aa6 100644 --- a/management/views.py +++ b/management/views.py @@ -115,6 +115,8 @@ def session_settings(request, pk=None): ) else: form.save() + messages.add_message(request, messages.INFO, 'Session updated successfully!') + return redirect('management:session', session.id) context = { 'session': session,