Event Export List: short formated date.

This commit is contained in:
2018-02-26 16:41:41 +01:00
parent aef9efa49f
commit 31e1adf2b8
9 changed files with 77 additions and 48 deletions

View File

@@ -14,7 +14,6 @@
- erster teil des anmeldungshowto editierbar
- feld 'anmeldung nicht nötig'
- publizierendes feld für redaktionellen hinweis
- für heft: wochentage abkürzen
- vortreffen ohne datum?

View File

@@ -176,7 +176,7 @@ class Event(models.Model):
def __unicode__(self):
return u'{number} - {title} ({date})'.format(number=self.get_number(),
title=self.title,
date=self.get_short_date())
date=self.get_formated_date())
def get_absolute_url(self):
return reverse('dav_events:event_detail', kwargs={'pk': self.pk})
@@ -311,38 +311,55 @@ 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):
def get_formated_date(self, begin_date=None, end_date=None, format='normalized_long'):
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')
if format.endswith('numeric'):
weekday_fmt = ''
day_fmt = 'dd.'
month_fmt = 'MM.'
year_fmt = 'yyyy'
elif format.endswith('short'):
weekday_fmt = 'EEE '
day_fmt = 'd.'
month_fmt = ' MMM'
if begin_date.year == datetime.date.today().year:
year_fmt = ''
else:
year_fmt = ' yy'
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
if end_date is None:
end_date = self.last_day
weekday_fmt = 'EEEE, '
day_fmt = 'd.'
month_fmt = ' MMMM'
year_fmt = ' yyyy'
lang = get_language()[0:2]
if not end_date:
r = format_date(begin_date, 'EEEE, d. MMMM yyyy', locale=lang)
fmt = '{weekday}{day}{month}{year}'.format(weekday=weekday_fmt,
day=day_fmt,
month=month_fmt,
year=year_fmt)
r = format_date(begin_date, fmt, locale=lang)
else:
end_format = 'EEEE, d. MMMM yyyy'
begin_format = 'EEEE, d.'
if begin_date.month != end_date.month:
begin_format += ' MMMM'
if begin_date.year != end_date.year:
begin_format += ' yyyy'
end_format = '{weekday}{day}{month}{year}'.format(weekday=weekday_fmt,
day=day_fmt,
month=month_fmt,
year=year_fmt)
if format.startswith('normalized'):
begin_format = '{weekday}{day}'.format(weekday=weekday_fmt, day=day_fmt)
if begin_date.month != end_date.month:
begin_format += month_fmt
if begin_date.year != end_date.year:
begin_format += year_fmt
else:
begin_format = '{weekday}{day}{month}{year}'.format(weekday=weekday_fmt,
day=day_fmt,
month=month_fmt,
year=year_fmt)
begin = format_date(begin_date, begin_format, locale=lang)
end = format_date(end_date, end_format, locale=lang)
@@ -350,14 +367,17 @@ class Event(models.Model):
return r
def get_alt_short_date(self):
def get_alt_formated_date(self, format='normalized_long'):
if self.alt_first_day:
return self.get_short_date(self.alt_first_day, self.alt_last_day)
return self.get_formated_date(begin_date=self.alt_first_day, end_date=self.alt_last_day, format=format)
else:
return None
def get_template_context(self):
context = {
def get_numeric_date(self, begin_date=None, end_date=None):
return self.get_formated_date(begin_date=begin_date, end_date=end_date, format='numeric')
def get_template_context(self, context=None):
r = {
'event': self,
'status': self.get_status(),
'number': self.get_number(),
@@ -366,10 +386,14 @@ class Event(models.Model):
'title': self.title,
'first_day': self.first_day,
'last_day': self.last_day,
'short_date': self.get_short_date(),
'normalized_date': self.get_formated_date(format='normalized'),
'normalized_long_date': self.get_formated_date(format='normalized_long'),
'normalized_short_date': self.get_formated_date(format='normalized_short'),
'alt_first_day': self.alt_first_day,
'alt_last_day': self.alt_last_day,
'alt_short_date': self.get_alt_short_date(),
'alt_normalized_date': self.get_alt_formated_date(format='normalized'),
'alt_normalized_long_date': self.get_alt_formated_date(format='normalized_long'),
'alt_normalized_short_date': self.get_alt_formated_date(format='normalized_short'),
'description': self.description,
'course_topic_1': self.course_topic_1,
'course_topic_2': self.course_topic_2,
@@ -418,12 +442,18 @@ class Event(models.Model):
'planned_publication_date': self.planned_publication_date,
'internal_note': self.internal_note,
}
return context
if context is not None:
r.update(context)
return r
def render_as_text(self):
def render_as_text(self, format=None):
template_name = os.path.join('dav_events', 'event.txt')
template = get_template(template_name)
return template.render(self.get_template_context())
context = {}
if format == 'kaalpin':
context['normalized_date'] = self.get_formated_date(format='normalized_short')
context['alt_normalized_date'] = self.get_alt_formated_date(format='normalized_short')
return template.render(self.get_template_context(context))
def render_as_html(self):
template_name = os.path.join('dav_events', 'event.html')

View File

@@ -7,5 +7,5 @@ Link zur Veranstaltung:
{{ base_url }}{{ event.get_absolute_url }}
Voraussichtliche Veröffentlichung: {% if planned_publication_date %}{{ planned_publication_date|date:'l, d. F Y' }}{% else %}In wenigen Tagen{% endif %}
-----
{{ event.render_as_text }}-----
----------
{{ event.render_as_text }}----------

View File

@@ -10,5 +10,5 @@ Der folgende Link führt zur Veranstaltung:
Veröffentlichung: {% if planned_publication_date %}{{ planned_publication_date|date:'l, d. F Y' }}{% else %}sofort{% endif %}
{% if internal_note %}Bearbeitungshinweis:
{{ internal_note }}
{% endif %}-----
{{ event.render_as_text }}-----
{% endif %}----------
{{ event.render_as_text }}----------

View File

@@ -11,12 +11,12 @@ Der folgende Link führt zur Veranstaltung:
Veröffentlichung: {% if planned_publication_date %}{{ planned_publication_date|date:'l, d. F Y' }}{% else %}sofort{% endif %}
{% if internal_note %}Bearbeitungshinweis:
{{ internal_note }}
{% endif %}----- Plain Text -----
{% endif %}---------- Plain Text ----------
{{ event.render_as_text }}
----- HTML Joomla -----
<h6>{{ short_date }}{% if alt_short_date %}<br />
({% trans 'Ersatztermin' %}: {{ alt_short_date }})
---------- HTML Joomla ----------
<h6>{{ normalized_long_date }}{% if alt_normalized_long_date %}<br />
({% trans 'Ersatztermin' %}: {{ alt_normalized_long_date }})
{% endif %}</h6>
<p>{{ description|linebreaksbr }}</p>
{% if mode == 'training' %}

View File

@@ -7,7 +7,7 @@ Link zur Veranstaltung:
{{ base_url }}{{ event.get_absolute_url }}
Voraussichtliche Veröffentlichung: {% if planned_publication_date %}{{ planned_publication_date|date:'l, d. F Y' }}{% else %}In wenigen Tagen{% endif %}
-----
{{ event.render_as_text }}-----
----------
{{ event.render_as_text }}----------
{% if internal_note %}Bearbeitungshinweis:
{{ internal_note }}{% endif %}

View File

@@ -19,10 +19,10 @@
</div>
<ul class="list-group">
<li class="list-group-item">
<strong>{{ short_date }}</strong>
{% if alt_short_date %}
<strong>{{ normalized_date }}</strong>
{% if alt_normalized_date %}
<br />
<strong>({% trans 'Ersatztermin' %}: {{ alt_short_date }})</strong>
<strong>({% trans 'Ersatztermin' %}: {{ alt_normalized_date }})</strong>
{% endif %}
</li>
<li class="list-group-item">

View File

@@ -1,7 +1,7 @@
{% load i18n %}{{ number }} - {{ title }}
{{ short_date }}
{% if alt_short_date %}({% trans 'Ersatztermin' %}: {{ alt_short_date }})
{{ normalized_date }}
{% if alt_normalized_date %}({% trans 'Ersatztermin' %}: {{ alt_normalized_date }})
{% endif %}
{{ description }}
{% if mode == 'training' %}

View File

@@ -90,7 +90,7 @@ class EventListExportView(generic.FormView):
for event in event_qs:
if exclude_expired and event.get_status() == 'expired':
continue
txt += event.render_as_text()
txt += event.render_as_text(format='kaalpin')
if event.internal_note:
txt += u'\n> Bearbeitungshinweis:\n> ' + event.internal_note.replace('\n', '\n> ') + u'\n'
txt += u'\n' + (u'-' * 72) + '\n\n'