rendered paste bodyfrom django.db import modelsfrom django.utils.translation import gettext_lazy as _from django.conf import settingsfrom universzik import tinycmssettingsSTATE_CHOICES = ( ('S', _('Submitted')), ('C', _('Corrected')), ('W', _('Waiting')), ('P', _('Published')),)class Category(models.Model): slug = models.SlugField( _('Computer Name'), help_text=_('This name will be used in urls. Slugs are unique identifiers used to select categories.'), unique=True ) itemTemplate = models.CharField(_('Item Template'), help_text=_('Custom template to display items in this category'), maxlength=255, blank=True) indexTemplate = models.CharField(_('Index Template'), help_text=_('Custom template to display this category\'s index'), maxlength=255, blank=True) image = models.ImageField( _('Attach an Image'), upload_to='category_image', blank=True ) def __str__(self): return self.slug class Admin: pass class Meta: verbose_name = tinycmssettings.category_nameclass LocalizedCategory(models.Model): category = models.ForeignKey(Category,edit_inline=models.TABULAR) language = models.CharField(_('Language'), maxlength=5, choices=settings.LANGUAGES, core=True) title = models.CharField(_('Title'), maxlength=255, core=True) description = models.TextField(_('Description'), core=True, blank=True) class Admin: pass def __str__(self): return str(_('Category data for ')) + str(self.category.slug) + str(_(' in ')) + str(self.get_language_display()) + ' ("' + str(self.title) + '")'class Article(models.Model): slug = models.SlugField( _('Computer Name'), help_text=_('This name will be used in urls. Slugs are unique identifiers used to select articles for a specified date.'), unique=True ) type = models.CharField(choices=tinycmssettings.TYPES, maxlength=2, verbose_name=tinycmssettings.type_name) category = models.ForeignKey(Category, blank=True, verbose_name=tinycmssettings.category_name) state = models.CharField(_('state'), maxlength=2, choices=STATE_CHOICES) sub_date = models.DateTimeField(_('submission date'), auto_now_add=True) pub_date = models.DateTimeField(_('publication date'), blank=True) author_name = models.CharField(_('author name'), maxlength=255) author_email = models.EmailField(_('author email')) author_website = models.URLField(_('author website'), blank=True) image = models.ImageField( _('Attach an Image'), upload_to='article_image', blank=True ) def __str__(self): return self.slug class Admin: fields = ( (None, {'fields': ('slug','state','image')}), (_('Category Informations'), {'fields': ('type','category')}), (_('Date Informations'), {'fields': ('sub_date','pub_date')}), (_('Author Informations'), {'fields': ('author_name','author_email','author_website')}), ) list_display = ('slug', 'type', 'category', 'sub_date', 'pub_date', 'author_name', 'state') list_filter = ['type','state','category','sub_date','pub_date','author_name'] search_fields = ('slug', 'author_name', 'author_email', 'author_website') class Meta: ordering = ('-pub_date',) verbose_name = _('article') get_latest_by = 'pub_date''''class ArticlePage(models.Model): article = models.ForeignKey(Article,edit_inline=models.STACKED) language = models.CharField(maxlength=5, choices=settings.LANGUAGES, core=True) number = models.IntegerField(core=True) title = models.CharField(maxlength=255, core=True) content = models.TextField(core=True) image = models.ImageField( _('Attach an Image'), upload_to='articlepage_image', blank=True )''' class LocalizedArticle(models.Model): article = models.ForeignKey(Article,edit_inline=models.STACKED,num_in_admin=2) language = models.CharField(_('language'), maxlength=5, choices=settings.LANGUAGES, core=True) title = models.CharField(_('title'), maxlength=255, core=True) subject = models.CharField(_('subject'), maxlength=30, core=True) listing_text = models.TextField(_('listing text'), core=True, help_text=_('Tiny text (20-30 words) used to describe this item in listings')) content = models.TextField(_('content'), core=True) website = models.CharField(_('website url'), maxlength=250, core=True) def associated_category(self): if self.article.category.localizedcategory_set.filter(language=self.language).count() != 0: return self.article.category.localizedcategory_set.filter(language=self.language)[0] else: if self.article.category.localizedcategory_set.all().count() != 0: return self.article.category.localizedcategory_set.all()[0] else: return LocalizedCategory(category=self.article.category, title=self.article.category.slug) class Meta: verbose_name = _('localized article')