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 'Spielart' %} | {% trans 'Nummer' %} | {% trans 'Titel' %} | {% trans 'Trainer' %} | @@ -39,17 +38,14 @@- | |||
|---|---|---|---|---|---|---|---|
| - {{ 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 %} |