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

@@ -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')