diff --git a/TODO.txt b/TODO.txt index 39d2892..049634f 100644 --- a/TODO.txt +++ b/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? diff --git a/dav_events/models.py b/dav_events/models.py index f3eea4c..ba1aa2a 100644 --- a/dav_events/models.py +++ b/dav_events/models.py @@ -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') diff --git a/dav_events/templates/dav_events/emails/event_accepted.txt b/dav_events/templates/dav_events/emails/event_accepted.txt index 72b9926..406989a 100644 --- a/dav_events/templates/dav_events/emails/event_accepted.txt +++ b/dav_events/templates/dav_events/emails/event_accepted.txt @@ -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 }}---------- diff --git a/dav_events/templates/dav_events/emails/event_to_accept.txt b/dav_events/templates/dav_events/emails/event_to_accept.txt index 3398bd3..bd38f1a 100644 --- a/dav_events/templates/dav_events/emails/event_to_accept.txt +++ b/dav_events/templates/dav_events/emails/event_to_accept.txt @@ -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 }}---------- diff --git a/dav_events/templates/dav_events/emails/event_to_publish.txt b/dav_events/templates/dav_events/emails/event_to_publish.txt index bb6954c..61a3b7c 100644 --- a/dav_events/templates/dav_events/emails/event_to_publish.txt +++ b/dav_events/templates/dav_events/emails/event_to_publish.txt @@ -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 ----- -
{{ short_date }}{% if alt_short_date %}
-({% trans 'Ersatztermin' %}: {{ alt_short_date }}) +---------- HTML Joomla ---------- +
{{ normalized_long_date }}{% if alt_normalized_long_date %}
+({% trans 'Ersatztermin' %}: {{ alt_normalized_long_date }}) {% endif %}

{{ description|linebreaksbr }}

{% if mode == 'training' %} diff --git a/dav_events/templates/dav_events/emails/new_event.txt b/dav_events/templates/dav_events/emails/new_event.txt index 8e8f448..aad6c35 100644 --- a/dav_events/templates/dav_events/emails/new_event.txt +++ b/dav_events/templates/dav_events/emails/new_event.txt @@ -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 %} \ No newline at end of file diff --git a/dav_events/templates/dav_events/event.html b/dav_events/templates/dav_events/event.html index a9f4d8e..ed7967d 100644 --- a/dav_events/templates/dav_events/event.html +++ b/dav_events/templates/dav_events/event.html @@ -19,10 +19,10 @@