Event Export List: short formated date.
This commit is contained in:
1
TODO.txt
1
TODO.txt
@@ -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?
|
||||
|
||||
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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 }}----------
|
||||
|
||||
@@ -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 }}----------
|
||||
|
||||
@@ -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' %}
|
||||
|
||||
@@ -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 %}
|
||||
@@ -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">
|
||||
|
||||
@@ -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' %}
|
||||
|
||||
@@ -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'
|
||||
|
||||
Reference in New Issue
Block a user