1 # -*- coding: utf-8 -*-
 
   2 # This file is part of PrawoKultury, licensed under GNU Affero GPLv3 or later.
 
   3 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 
   5 from django.conf import settings
 
   6 from django.core.exceptions import ValidationError
 
   7 from django.db import models
 
   8 from django.utils.translation import ugettext_lazy as _, ugettext
 
   9 from fnpdjango.utils.models.translation import add_translatable
 
  12 class Event(models.Model):
 
  13     date = models.DateTimeField(_('date'), max_length=255, db_index=True)
 
  14     link = models.URLField(_('link'))
 
  17         verbose_name = _('event')
 
  18         verbose_name_plural = _('events')
 
  21     def __unicode__(self):
 
  25         for lc, ln in settings.LANGUAGES:
 
  26             if (getattr(self, "published_%s" % lc) and
 
  27                     not getattr(self, "title_%s" % lc)):
 
  28                 raise ValidationError(
 
  29                     ugettext("Published event should have a title in relevant language (%s).") % lc)
 
  32 add_translatable(Event, {
 
  33     'title': models.CharField(_('title'), max_length=255, blank=True),
 
  34     'organizer': models.CharField(_('organizer'), max_length=255,
 
  35             db_index=True, blank=True),
 
  36     'place': models.CharField(_('place'), max_length=255, blank=True),
 
  37     'published': models.BooleanField(_('published'), default=False),