X-Git-Url: https://git.mdrn.pl/prawokultury.git/blobdiff_plain/44090c986d9a16f6913047c25319c446bb9308ad..846b69463a94546a97e392f8f7ade04669df1537:/events/models.py diff --git a/events/models.py b/events/models.py index 742c2f2..aa36591 100644 --- a/events/models.py +++ b/events/models.py @@ -2,9 +2,11 @@ # This file is part of PrawoKultury, licensed under GNU Affero GPLv3 or later. # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # +from django.conf import settings +from django.core.exceptions import ValidationError from django.db import models -from django.utils.translation import ugettext_lazy as _ -from migdal.helpers import add_translatable +from django.utils.translation import ugettext_lazy as _, ugettext +from fnpdjango.utils.models.translation import add_translatable class Event(models.Model): @@ -16,8 +18,21 @@ class Event(models.Model): verbose_name_plural = _('events') ordering = ['date'] + def __unicode__(self): + return self.title + + def clean(self): + for lc, ln in settings.LANGUAGES: + if (getattr(self, "published_%s" % lc) and + not getattr(self, "title_%s" % lc)): + raise ValidationError( + ugettext("Published event should have a title in relevant language (%s).") % lc) + + add_translatable(Event, { - 'title': models.CharField(_('title'), max_length=255), - 'organizer': models.CharField(_('organizer'), max_length=255, db_index=True), - 'place': models.CharField(_('place'), max_length=255), + 'title': models.CharField(_('title'), max_length=255, blank=True), + 'organizer': models.CharField(_('organizer'), max_length=255, + db_index=True, blank=True), + 'place': models.CharField(_('place'), max_length=255, blank=True), + 'published': models.BooleanField(_('published'), default=False), })