preparations for a new status 'published'.

This commit is contained in:
2018-02-23 17:44:56 +01:00
parent 72e04eb3f0
commit 0f0dbbd34c
4 changed files with 84 additions and 13 deletions

View File

@@ -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,

View File

@@ -94,12 +94,31 @@
{% endif %}
</div>
</div>
<div class="row">
<div class="col-sm-2">
<strong>{% trans 'Veröffentlicht' %}:</strong>
</div>
<div class="col-sm-10">
{% if event.published %}
{{ event.published_at|date:'l, d. F Y, H:i' }} {% trans 'Uhr' %}<br />
{{ event.published_by.get_full_name }}
{% else %}
-
{% endif %}
</div>
</div>
</div>
<div class="col-sm-2">
{% if event.accepted %}
{% if event.get_status == 'expired' %}
<span class="label label-info">{% trans 'Ausgelaufen' %}</span>
{% elif event.get_status == 'published' %}
<span class="label label-success">{% trans 'Veröffentlicht' %}</span>
{% elif event.get_status == 'accepted' %}
<span class="label label-warning">{% trans 'Freigegeben' %}</span>
{% else %}
{% elif event.get_status == 'submitted' %}
<span class="label label-danger">{% trans 'Eingereicht' %}</span>
{% else %}
<span class="label label-default">{% trans 'Kaputt' %} (){{ event.get_status }}</span>
{% endif %}
</div>
</div>

View File

@@ -26,7 +26,6 @@
<table id="objects_table" class="table table-striped">
<thead>
<tr>
<th>{% trans 'Spielart' %}</th>
<th>{% trans 'Nummer' %}</th>
<th>{% trans 'Titel' %}</th>
<th>{% trans 'Trainer' %}</th>
@@ -39,17 +38,14 @@
<th><input type="text" placeholder="{% trans 'Filter' %}" /></th>
<th><input type="text" placeholder="{% trans 'Filter' %}" /></th>
<th><input type="text" placeholder="{% trans 'Filter' %}" /></th>
<th><input type="text" placeholder="{% trans 'Filter' %}" /></th>
</tr>
</thead>
<tbody>
{% for event in event_list %}
<tr>
<td>
{{ event.get_sport_display }}
</td>
<td>
<a href="{% url 'dav_events:event_detail' event.pk %}">{{ event.get_number }}</a>
<a href="{% url 'dav_events:event_detail' event.pk %}">{{ event.get_number }}</a><br />
<small>({{ event.get_sport_display }})</small>
</td>
<td>
<a href="{% url 'dav_events:event_detail' event.pk %}">{{ event.title }}</a>
@@ -62,13 +58,19 @@
{% endif %}
</td>
<td data-order="{{ event.first_day|date:'U' }}">
{{ event.get_short_date }}
{{ event.get_numeric_date }}
</td>
<td>
{% if event.accepted %}
{% if event.get_status == 'expired' %}
<span class="label label-info">{% trans 'Ausgelaufen' %}</span>
{% elif event.get_status == 'published' %}
<span class="label label-success">{% trans 'Veröffentlicht' %}</span>
{% elif event.get_status == 'accepted' %}
<span class="label label-warning">{% trans 'Freigegeben' %}</span>
{% else %}
{% elif event.get_status == 'submitted' %}
<span class="label label-danger">{% trans 'Eingereicht' %}</span>
{% else %}
<span class="label label-default">{% trans 'Kaputt' %} ({{ event.get_status }})</span>
{% endif %}
</td>
</tr>
@@ -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.' %}",

View File

@@ -21,7 +21,18 @@
<form action="" method="post">
{% csrf_token %}
{% if event.accepted %}
{% if event.get_status == 'expired' %}
<div class="alert alert-info alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
{% trans 'Diese Veranstaltung ist bereits ausgelaufen.' %}
</div>
{% elif event.get_status == 'published' %}
<div class="alert alert-danger alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<strong>{% trans 'Achtung!' %}</strong> {% trans 'Diese Veranstaltung wurde bereits veröffentlicht.' %}
{% trans 'Änderungen müssen mit allen Beteiligten abgesprochen werden.' %}
</div>
{% elif event.get_status == 'accepted' %}
<div class="alert alert-danger alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<strong>{% trans 'Achtung!' %}</strong> {% trans 'Diese Veranstaltung wurde bereits freigegeben.' %}