45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
import datetime
|
|
|
|
from django.db import models
|
|
from django.utils.translation import ugettext_lazy as _
|
|
|
|
from conference.models import Conference
|
|
|
|
|
|
class SponsorLevel(models.Model):
|
|
|
|
conference = models.ForeignKey(Conference, verbose_name=_("conference"))
|
|
name = models.CharField(_("name"), max_length=100)
|
|
order = models.IntegerField(_("order"), default=0)
|
|
description = models.TextField(_("description"), blank=True)
|
|
|
|
class Meta:
|
|
ordering = ["conference", "order"]
|
|
verbose_name = _("sponsor level")
|
|
verbose_name_plural = _("sponsor levels")
|
|
|
|
def __unicode__(self):
|
|
return u"%s %s" % (self.conference, self.name)
|
|
|
|
def sponsors(self):
|
|
return self.sponsor_set.filter(active=True).order_by("added")
|
|
|
|
|
|
class Sponsor(models.Model):
|
|
|
|
name = models.CharField(_("name"), max_length=100)
|
|
external_url = models.URLField(_("external URL"))
|
|
annotation = models.TextField(_("annotation"), blank=True)
|
|
contact_name = models.CharField(_("contact_name"), max_length=100)
|
|
contact_email = models.EmailField(_(u"Contact e\u2011mail"))
|
|
logo = models.ImageField(_("logo"), upload_to="sponsor_logos/")
|
|
level = models.ForeignKey(SponsorLevel, verbose_name=_("level"))
|
|
added = models.DateTimeField(_("added"), default=datetime.datetime.now)
|
|
active = models.BooleanField(_("active"), default=False)
|
|
|
|
def __unicode__(self):
|
|
return self.name
|
|
|
|
class Meta:
|
|
verbose_name = _("sponsor")
|
|
verbose_name_plural = _("sponsors")
|