]> git.parisson.com Git - mezzo.git/commitdiff
teams and departments as Pages
authorGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Sun, 24 Jul 2016 23:25:06 +0000 (01:25 +0200)
committerGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Sun, 24 Jul 2016 23:25:06 +0000 (01:25 +0200)
app/organization/core/models.py
app/organization/magazine/admin.py
app/organization/magazine/models.py
app/organization/media/models.py
app/organization/team/translation.py

index 241dee18639a5014194f3253369067a29ac0c8b7..377d057ed6d92af420853afb1f4a923f3d3eef73 100644 (file)
@@ -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'
index 7117eb4829f640a2c649d21f1de738c18044ef0d..88ddc9666f97713d3e05d33a2a78c5fe5877ad3c 100644 (file)
@@ -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)
index 77b9955cd2b187b61483dc9fe4369f6a457b51c2..8d5dc3cefd7d806715f411037c0e727a4f542b1e 100644 (file)
@@ -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
index c4dfffa052d9c633a8b48fe1109c1175ec383682..6d3269c9894fc1941c628c5f678417e7bc4e2a83 100644 (file)
@@ -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)
index 4d4302e4e6883f79985cfcc677e1824d93f90fce..b9712626bf3c10642a25ba6b431304ea7ee444f9 100644 (file)
@@ -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):