From 0f0dbbd34cc9d2954cd2fc4f553cab61e285a135 Mon Sep 17 00:00:00 2001 From: Jens Kleineheismann Date: Fri, 23 Feb 2018 17:44:56 +0100 Subject: [PATCH] preparations for a new status 'published'. --- dav_events/models.py | 39 +++++++++++++++++++ .../templates/dav_events/event_detail.html | 23 ++++++++++- .../templates/dav_events/event_list.html | 22 ++++++----- .../dav_events/event_update_form.html | 13 ++++++- 4 files changed, 84 insertions(+), 13 deletions(-) diff --git a/dav_events/models.py b/dav_events/models.py index 100f3cb..a8539ea 100644 --- a/dav_events/models.py +++ b/dav_events/models.py @@ -212,6 +212,8 @@ class Event(models.Model): self.accepted_at = timezone.now() if user: self.accepted_by = user + else: + logger.error('Event.accept(): no user given! (Event: %s)', self.event) self.save() logger.info('Event is accepted: %s', self) @@ -227,6 +229,27 @@ class Event(models.Model): else: return None + def get_status(self): + now = datetime.date.today() + if self.alt_last_day: + if self.alt_last_day < now: + return 'expired' + elif self.last_day: + if self.last_day < now: + return 'expired' + elif self.alt_first_day and self.alt_first_day < now: + return 'expired' + elif self.first_day and self.first_day < now: + return 'expired' + + if self.accepted: + return 'accepted' + elif self.owner: + return 'submitted' + + logger.debug("here") + return 'draft' + def get_next_number(self): counter = 0 @@ -254,6 +277,21 @@ class Event(models.Model): else: return '%s**/%d' % (self.sport, self.first_day.year % 100) + def get_numeric_date(self, begin_date=None, end_date=None): + if begin_date is None: + begin_date = self.first_day + if end_date is None: + end_date = self.last_day + + if not end_date: + r = begin_date.strftime('%d.%m.%Y') + else: + begin = begin_date.strftime('%d.%m.%Y') + end = end_date.strftime('%d.%m.%Y') + r = u'{begin} - {end}'.format(begin=begin, end=end) + + return r + def get_short_date(self, begin_date=None, end_date=None): if begin_date is None: begin_date = self.first_day @@ -287,6 +325,7 @@ class Event(models.Model): def get_template_context(self): context = { 'event': self, + 'status': self.get_status(), 'number': self.get_number(), 'mode': self.mode, 'sport': self.sport, diff --git a/dav_events/templates/dav_events/event_detail.html b/dav_events/templates/dav_events/event_detail.html index 1f140ad..db9f294 100644 --- a/dav_events/templates/dav_events/event_detail.html +++ b/dav_events/templates/dav_events/event_detail.html @@ -94,12 +94,31 @@ {% endif %} +
+
+ {% trans 'Veröffentlicht' %}: +
+
+ {% if event.published %} + {{ event.published_at|date:'l, d. F Y, H:i' }} {% trans 'Uhr' %}
+ {{ event.published_by.get_full_name }} + {% else %} + - + {% endif %} +
+
- {% if event.accepted %} + {% if event.get_status == 'expired' %} + {% trans 'Ausgelaufen' %} + {% elif event.get_status == 'published' %} + {% trans 'Veröffentlicht' %} + {% elif event.get_status == 'accepted' %} {% trans 'Freigegeben' %} - {% else %} + {% elif event.get_status == 'submitted' %} {% trans 'Eingereicht' %} + {% else %} + {% trans 'Kaputt' %} (){{ event.get_status }} {% endif %}
diff --git a/dav_events/templates/dav_events/event_list.html b/dav_events/templates/dav_events/event_list.html index 04d5685..688a0eb 100644 --- a/dav_events/templates/dav_events/event_list.html +++ b/dav_events/templates/dav_events/event_list.html @@ -26,7 +26,6 @@ - @@ -39,17 +38,14 @@ - {% for event in event_list %} - @@ -82,7 +84,7 @@ paging: false, language: { search: "{% trans 'Filter' %}:", - info: "{% trans 'Showing _START_ to _END_ of _TOTAL_ entries.' %}", + info: "{% trans 'Zeige Eintrag _START_ bis _END_ von _TOTAL_ Einträgen.' %}", infoEmpty: "{% trans 'Showing 0 records.' %}", emptyTable: "{% trans 'No data available in table.' %}", diff --git a/dav_events/templates/dav_events/event_update_form.html b/dav_events/templates/dav_events/event_update_form.html index cc5c446..26e2640 100644 --- a/dav_events/templates/dav_events/event_update_form.html +++ b/dav_events/templates/dav_events/event_update_form.html @@ -21,7 +21,18 @@ {% csrf_token %} - {% if event.accepted %} + {% if event.get_status == 'expired' %} + + {% elif event.get_status == 'published' %} + + {% elif event.get_status == 'accepted' %}
{% trans 'Spielart' %} {% trans 'Nummer' %} {% trans 'Titel' %} {% trans 'Trainer' %}
- {{ event.get_sport_display }} - - {{ event.get_number }} + {{ event.get_number }}
+ ({{ event.get_sport_display }})
{{ event.title }} @@ -62,13 +58,19 @@ {% endif %} - {{ event.get_short_date }} + {{ event.get_numeric_date }} - {% if event.accepted %} + {% if event.get_status == 'expired' %} + {% trans 'Ausgelaufen' %} + {% elif event.get_status == 'published' %} + {% trans 'Veröffentlicht' %} + {% elif event.get_status == 'accepted' %} {% trans 'Freigegeben' %} - {% else %} + {% elif event.get_status == 'submitted' %} {% trans 'Eingereicht' %} + {% else %} + {% trans 'Kaputt' %} ({{ event.get_status }}) {% endif %}