from django.utils.translation import ugettext_lazy as _
from django.core.urlresolvers import reverse, reverse_lazy
from django.conf import settings
+from django.contrib.auth.models import User
from mezzanine.core.models import RichText, Displayable, Slugged
from mezzanine.core.fields import RichTextField, OrderField, FileField
ALIGNMENT_CHOICES = (('left', _('left')), ('right', _('right')))
-class BaseNameModel(models.model):
+class BaseNameModel(models.Model):
"""Base object with name and description"""
name = models.CharField(_('name'), max_length=512)
class Department(BaseNameModel):
"""(Department description)"""
- organization = models.ForeignKey('Organization', verbose_name=_('organization'), on_delete=models.SET_NULL)
+ organization = models.ForeignKey('Organization', verbose_name=_('organization'))
domain = models.CharField(_('domain'), max_length=255, blank=True)
def __unicode__(self):
class Team(BaseNameModel):
"""(Team description)"""
- department = models.ForeignKey('Department', verbose_name=_('department'), on_delete=models.SET_NULL)
+ department = models.ForeignKey('Department', verbose_name=_('department'), blank=True, null=True, on_delete=models.SET_NULL)
def __unicode__(self):
return u"Team"
class Person(Displayable, RichText, AdminThumbMixin):
"""(Person description)"""
- user = models.ForeignKey('User', verbose_name=_('user'), blank=True, null=True, on_delete=models.SET_NULL)
- title = models.CharField(_('Title'), max_length=16, choices=TITLE_CHOICES, blank=True)
- first_name = models.CharField(_('first name'), max_length=255, blank=True, null=True, help="If no User linked")
+ user = models.ForeignKey(User, verbose_name=_('user'), blank=True, null=True, on_delete=models.SET_NULL)
+ person_title = models.CharField(_('Title'), max_length=16, choices=TITLE_CHOICES, blank=True)
+ first_name = models.CharField(_('first name'), max_length=255, blank=True, null=True)
last_name = models.CharField(_('last name'), max_length=255, blank=True, null=True)
organization = models.ForeignKey('Organization', verbose_name=_('organization'), blank=True, null=True, on_delete=models.SET_NULL)
bio = RichTextField(_('biography'), blank=True)
photo_description = models.TextField(_('photo description'), blank=True)
photo_featured = FileField(_('photo featured'), upload_to='images/photos', max_length=1024, blank=True, format="Image")
photo_featured_credits = models.CharField(_('photo featured credits'), max_length=255, blank=True, null=True)
- link = models.URLField(_('Link'), blank=True, null=True)
def __unicode__(self):
return ' '.join((self.user.first_name, self.user.last_name))
class Link(models.Model):
"""A person can have many links."""
- person = models.ForeignKey(Person, verbose_name=_('Person'))
- link_type = models.ForeignKey(LinkType, verbose_name=_('Link type'))
+ person = models.ForeignKey('Person', verbose_name=_('Person'))
+ link_type = models.ForeignKey('LinkType', verbose_name=_('Link type'))
url = models.URLField(verbose_name=_('URL'))
def __str__(self):
return self.url
-class LinkType(TranslatableModel):
+class LinkType(models.Model):
"""
A link type could be ``Facebook`` or ``Twitter`` or ``Website``.
This is masterdata that should be created by the admins when the site is
class Activity(models.Model):
"""(Activity description)"""
- person = models.ForeignKey('Person', verbose_name=_('person'), on_delete=models.SET_NULL)
+ person = models.ForeignKey('Person', verbose_name=_('person'))
teams = models.ManyToManyField('Team', verbose_name=_('teams'))
date_begin = models.DateField(_('begin date'), null=True, blank=True)
date_end = models.DateField(_('end date'), null=True, blank=True)