Generated: Thu 2013-04-18 14:15 SGT
Source file: /Users/martin/Repos/django-hero-slider/hero_slider/models.py
Stats: 14 executed, 0 missed, 7 excluded, 47 ignored
"""Models for the ``hero_slider`` app."""from django.contrib.contenttypes import genericfrom django.contrib.contenttypes.models import ContentTypefrom django.db import modelsfrom django.utils.translation import get_languagefrom django.utils.translation import ugettext_lazy as _from simple_translation.utils import get_preferred_translation_from_langfrom filer.fields.file import FilerFileFieldclass SliderItem(models.Model): """ Resembles an item that should be shown on the front page in a slider. For translateable fields see the ``SliderItemTitle`` model. :image: A filer file. This will be the image shown in the slider. :position: Can be set in order to control the ordering of the slider items. :content_type: The contenttype of the object this slider item links to. :object_id: The PK of the object this slider item links to. """ image = FilerFileField( verbose_name=_('Image'), ) position = models.PositiveIntegerField( verbose_name=_('Position'), null=True, blank=True, ) # Generic foreign key content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField() content_object = generic.GenericForeignKey('content_type', 'object_id') def get_trans(self): """Returns the translation object for this slider item.""" lang = get_language() return get_preferred_translation_from_lang(self, lang)class SliderItemTitle(models.Model): """ Translateable fields of the ``SliderItem`` model. :title: The title of this slider item. :description: A short description of this slider item. """ title = models.CharField( max_length=256, verbose_name=_('Title'), blank=True, ) description = models.CharField( max_length=512, verbose_name=_('Description'), blank=True, ) # Needed by simple-translation slider_item = models.ForeignKey(SliderItem, verbose_name=_('Slider item')) language = models.CharField(max_length=2, verbose_name=_('Language'))