From 46e10cdcbcaba8ffdc57c0b56325fbaaa5d5e062 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Mon, 25 Jul 2016 01:25:06 +0200 Subject: [PATCH] teams and departments as Pages --- app/organization/core/models.py | 38 +++++++++++++++++++++++----- app/organization/magazine/admin.py | 5 +++- app/organization/magazine/models.py | 19 +++----------- app/organization/media/models.py | 2 +- app/organization/team/translation.py | 8 ++---- 5 files changed, 42 insertions(+), 30 deletions(-) diff --git a/app/organization/core/models.py b/app/organization/core/models.py index 241dee18..377d057e 100644 --- a/app/organization/core/models.py +++ b/app/organization/core/models.py @@ -8,8 +8,11 @@ from mezzanine.core.fields import RichTextField, OrderField, FileField from mezzanine.core.models import Displayable, Slugged +COLOR_CHOICES = (('black', _('black')), ('yellow', _('yellow')), ('red', _('red'))) + + class Description(models.Model): - """Base object description""" + """Abstract model providing a description field""" description = models.TextField(_('description'), blank=True) @@ -17,8 +20,8 @@ class Description(models.Model): abstract = True -class Named(Description): - """Named object with description""" +class Named(models.Model): + """Abstract model providing a name field""" name = models.CharField(_('name'), max_length=512) @@ -33,12 +36,17 @@ class Named(Description): return slugify(self.__unicode__()) -class Titled(Slugged, Description): - """Base object with title, slug and description""" +class Titled(models.Model): + """Abstract model providing a title field""" + + title = models.CharField(_('name'), max_length=1024) class Meta: abstract = True + def __str__(self): + return self.title + class SubTitle(models.Model): @@ -48,7 +56,25 @@ class SubTitle(models.Model): abstract = True -class BasicPage(Page, RichText, SubTitle): +class Category(Named): + """Category description)""" + + class Meta: + verbose_name = _('category') + + def __str__(self): + return self.name + + +class BasicPage(Page, SubTitle, RichText): class Meta: verbose_name = 'basic page' + + +class PageBlock(Titled, RichText): + + background_color = models.CharField(_('background color'), max_length=32, choices=COLOR_CHOICES, blank=True) + + class Meta: + verbose_name = 'page block' diff --git a/app/organization/magazine/admin.py b/app/organization/magazine/admin.py index 7117eb48..88ddc966 100644 --- a/app/organization/magazine/admin.py +++ b/app/organization/magazine/admin.py @@ -2,7 +2,7 @@ from django.contrib import admin from django import forms from copy import deepcopy from mezzanine.core.admin import DisplayableAdmin -from organization.magazine.models import Article, Brief +from organization.magazine.models import Article, Brief, Topic class ArticleAdmin(admin.ModelAdmin): @@ -19,10 +19,13 @@ class BriefAdmin(admin.ModelAdmin): model = Brief + class BriefAdminDisplayable(DisplayableAdmin): fieldsets = deepcopy(BriefAdmin.fieldsets) + admin.site.register(Article, ArticleAdminDisplayable) admin.site.register(Brief, BriefAdminDisplayable) +admin.site.register(Topic) diff --git a/app/organization/magazine/models.py b/app/organization/magazine/models.py index 77b9955c..8d5dc3ce 100644 --- a/app/organization/magazine/models.py +++ b/app/organization/magazine/models.py @@ -5,7 +5,7 @@ from django.utils.translation import ugettext_lazy as _ from django.core.urlresolvers import reverse, reverse_lazy from mezzanine.core.models import RichText, Displayable, Slugged from mezzanine.blog.models import BlogPost -from organization.core.models import Named +from organization.core.models import Named, Description class Article(BlogPost): @@ -31,21 +31,8 @@ class Brief(Displayable, RichText): verbose_name = _('brief') -class Category(Named): - """(Category description)""" - - class Meta: - verbose_name = _('category') - - def __unicode__(self): - return self.name - - -class Topic(Named): - """(Topic description)""" +class Topic(Named, Description): + """Topic for magazine menu""" class Meta: verbose_name = _('topic') - - def __unicode__(self): - return self.name diff --git a/app/organization/media/models.py b/app/organization/media/models.py index c4dfffa0..6d3269c9 100644 --- a/app/organization/media/models.py +++ b/app/organization/media/models.py @@ -119,7 +119,7 @@ class VideoCategory(Slugged): return self.videos.published().count()+1 -class Playlist(Titled): +class Playlist(Slugged, Description): """(Playlist description)""" audios = models.ManyToManyField('Audio', verbose_name=_('audios'), related_name='playlists', blank=True) diff --git a/app/organization/team/translation.py b/app/organization/team/translation.py index 4d4302e4..b9712626 100644 --- a/app/organization/team/translation.py +++ b/app/organization/team/translation.py @@ -11,15 +11,11 @@ class OrganizationTranslationOptions(TranslationOptions): @register(Department) class DepartmentTranslationOptions(TranslationOptions): - - fields = ('title', 'description',) - + pass @register(Team) class TeamTranslationOptions(TranslationOptions): - - fields = ('title', 'description',) - + pass @register(Person) class PersonTranslationOptions(TranslationOptions): -- 2.39.5