]> git.parisson.com Git - mezzo.git/commitdiff
add fields, translations, try to fix admin menus
authorGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Wed, 13 Jul 2016 13:51:21 +0000 (15:51 +0200)
committerGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Wed, 13 Jul 2016 13:51:21 +0000 (15:51 +0200)
app/local_settings.py
app/organization/magazine/admin.py
app/organization/project/admin.py
app/organization/project/migrations/0003_auto_20160713_1501.py [new file with mode: 0644]
app/organization/project/translation.py [new file with mode: 0644]
app/organization/team/admin.py
app/organization/team/migrations/0003_auto_20160713_1504.py [new file with mode: 0644]
app/organization/team/models.py
app/organization/team/translation.py [new file with mode: 0644]
scripts/makemigrations.sh
scripts/migrate.sh

index 914522de02668e25d77bb5e05517879faacc3f8b..20f6087e0619beace92390658535907707359595 100644 (file)
@@ -69,18 +69,12 @@ SITE_TAGLINE = 'Institut de Recherche et de Coordination Acoustique et Musique'
 SILENCED_SYSTEM_CHECKS = ['fields.W342',]
 
 ADMIN_MENU_ORDER = (
-    (_('Content'), ('pages.Page', 'blog.BlogPost', 'mezzanine_agenda.Event',
-        'generic.ThreadedComment', (_('Media Library'), 'fb_browse'),)),
-    (_("Magazine"), ("magazine.Article",)),
-    (_('team'), ('organization.team.Organization', 'organization.team.Team',
-        'organization.team.Department', 'organization.team.Person',
-        'organization.team.Activity')),
-    (_('Projects'), ('organization.project.Project')),
-    (_('Festival'), ('organization.festival.Artist', 'organization.festival.Video',
-    'organization.festival.Audio', 'organization.festival.Playlist',
-    'organization.festival.Featured', 'mezzanine_agenda.EventLocation',
-        'mezzanine_agenda.EventCategory', 'mezzanine_agenda.EventPrice',
-        'festival.PageCategory',)),
+    (_('Content'), ('pages.Page', 'blog.BlogPost', (_('Media Library'), 'fb_browse'), 'featured.Featured', "generic.ThreadedComment",)),
+    (_('Events'), ('mezzanine_agenda.Event', 'mezzanine_agenda.EventLocation', 'mezzanine_agenda.EventCategory', 'mezzanine_agenda.EventPrice',)),
+    (_('Magazine'), ('magazine.Article', 'magazine.Brief',)),
+    (_('Organization'), ('team.Organization', 'team.Team', 'team.Department', 'team.Person', 'team.Activity',)),
+    (_('Projects'), ('project.Project',)),
+    (_('Festival'), ('festival.Artist',)),
     (_('Users'), ('auth.User', 'auth.Group',)),
     (_('Site'), ('sites.Site', 'redirects.Redirect', 'conf.Setting')),
 )
index bb11befdb4b50322bfc39d217f2c3d4a6edbe4c8..7117eb4829f640a2c649d21f1de738c18044ef0d 100644 (file)
@@ -2,7 +2,18 @@ from django.contrib import admin
 from django import forms
 from copy import deepcopy
 from mezzanine.core.admin import DisplayableAdmin
-from organization.magazine.models import Brief
+from organization.magazine.models import Article, Brief
+
+
+class ArticleAdmin(admin.ModelAdmin):
+
+    model = Article
+
+
+class ArticleAdminDisplayable(DisplayableAdmin):
+
+    fieldsets = deepcopy(ArticleAdmin.fieldsets)
+
 
 class BriefAdmin(admin.ModelAdmin):
 
@@ -12,4 +23,6 @@ class BriefAdminDisplayable(DisplayableAdmin):
 
     fieldsets = deepcopy(BriefAdmin.fieldsets)
 
+
+admin.site.register(Article, ArticleAdminDisplayable)
 admin.site.register(Brief, BriefAdminDisplayable)
index 988416d52bb7037561bd19ec4650276ecda6dd68..19a227a35721efadcd1978aa161150b76feb6857 100644 (file)
@@ -1,25 +1,21 @@
+from copy import deepcopy
 from django.contrib import admin
-from mezzanine.blog.admin import BlogPostAdmin
-from organization.magazine.models import Article
+from organization.project.models import Project
 #from custom.admin import SubTitleAdmin
-from copy import deepcopy
 
 from django.contrib import admin
 from django.utils.translation import ugettext_lazy as _
 from mezzanine.core.admin import DisplayableAdmin, OwnableAdmin
 
-# class ArticleAdmin(BlogPostAdmin, SubTitleAdmin):
-#
-#     model = Article
 
-#admin.site.register(Article, BlogPostAdmin)
-class ArticleAdmin(admin.ModelAdmin):
+class ProjectAdmin(admin.ModelAdmin):
+
+    model = Project
 
-    model = Article
 
+class ProjectAdminDisplayable(DisplayableAdmin):
 
-class ArticleAdminDisplayable(DisplayableAdmin):
+    fieldsets = deepcopy(ProjectAdmin.fieldsets)
 
-    fieldsets = deepcopy(ArticleAdmin.fieldsets)
 
-admin.site.register(Article, ArticleAdminDisplayable)
+admin.site.register(Project, ProjectAdminDisplayable)
diff --git a/app/organization/project/migrations/0003_auto_20160713_1501.py b/app/organization/project/migrations/0003_auto_20160713_1501.py
new file mode 100644 (file)
index 0000000..c0a2eb5
--- /dev/null
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-07-13 13:01
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import mezzanine.core.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organization project', '0002_auto_20160707_1053'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='project',
+            name='content_en',
+            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
+        ),
+        migrations.AddField(
+            model_name='project',
+            name='content_fr',
+            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
+        ),
+        migrations.AddField(
+            model_name='project',
+            name='description_en',
+            field=models.TextField(blank=True, null=True, verbose_name='Description'),
+        ),
+        migrations.AddField(
+            model_name='project',
+            name='description_fr',
+            field=models.TextField(blank=True, null=True, verbose_name='Description'),
+        ),
+        migrations.AddField(
+            model_name='project',
+            name='title_en',
+            field=models.CharField(max_length=500, null=True, verbose_name='Title'),
+        ),
+        migrations.AddField(
+            model_name='project',
+            name='title_fr',
+            field=models.CharField(max_length=500, null=True, verbose_name='Title'),
+        ),
+    ]
diff --git a/app/organization/project/translation.py b/app/organization/project/translation.py
new file mode 100644 (file)
index 0000000..7f9d3d1
--- /dev/null
@@ -0,0 +1,9 @@
+from modeltranslation.translator import translator, register, TranslationOptions
+
+from organization.project.models import *
+
+
+@register(Project)
+class ProjectTranslationOptions(TranslationOptions):
+
+    fields = ('title', 'description', 'content')
index 8c38f3f3dad51e4585f3984282c2a4bec5349c1e..c5b13fcc27927eb3a563c48b3f0c7a70d1e17453 100644 (file)
@@ -1,3 +1,31 @@
 from django.contrib import admin
+from django import forms
+from copy import deepcopy
+from mezzanine.core.admin import DisplayableAdmin, BaseDynamicInlineAdmin, BaseTranslationModelAdmin
+from organization.team.models import *
 
-# Register your models here.
+
+
+class ActivityInline(admin.StackedInline):
+
+    model = Activity
+    extras = 3
+
+
+class PersonAdmin(admin.ModelAdmin):
+
+    model = Person
+
+
+class PersonAdminDisplayable(DisplayableAdmin):
+
+    fieldsets = deepcopy(PersonAdmin.fieldsets)
+    inlines = [ActivityInline,]
+
+
+admin.site.register(Organization)
+admin.site.register(OrganizationType)
+admin.site.register(Department)
+admin.site.register(Team)
+admin.site.register(Person, PersonAdminDisplayable)
+admin.site.register(Activity)
diff --git a/app/organization/team/migrations/0003_auto_20160713_1504.py b/app/organization/team/migrations/0003_auto_20160713_1504.py
new file mode 100644 (file)
index 0000000..012003c
--- /dev/null
@@ -0,0 +1,111 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-07-13 13:04
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import mezzanine.core.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organization team', '0002_auto_20160707_1614'),
+    ]
+
+    operations = [
+        migrations.RenameField(
+            model_name='activity',
+            old_name='work',
+            new_name='description',
+        ),
+        migrations.RemoveField(
+            model_name='person',
+            name='content',
+        ),
+        migrations.AddField(
+            model_name='activity',
+            name='content',
+            field=mezzanine.core.fields.RichTextField(default='', verbose_name='Content'),
+            preserve_default=False,
+        ),
+        migrations.AddField(
+            model_name='activity',
+            name='content_en',
+            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
+        ),
+        migrations.AddField(
+            model_name='activity',
+            name='content_fr',
+            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
+        ),
+        migrations.AddField(
+            model_name='activity',
+            name='description_en',
+            field=models.TextField(blank=True, null=True, verbose_name='work'),
+        ),
+        migrations.AddField(
+            model_name='activity',
+            name='description_fr',
+            field=models.TextField(blank=True, null=True, verbose_name='work'),
+        ),
+        migrations.AddField(
+            model_name='department',
+            name='description_en',
+            field=models.TextField(blank=True, null=True, verbose_name='description'),
+        ),
+        migrations.AddField(
+            model_name='department',
+            name='description_fr',
+            field=models.TextField(blank=True, null=True, verbose_name='description'),
+        ),
+        migrations.AddField(
+            model_name='department',
+            name='name_en',
+            field=models.CharField(max_length=512, null=True, verbose_name='name'),
+        ),
+        migrations.AddField(
+            model_name='department',
+            name='name_fr',
+            field=models.CharField(max_length=512, null=True, verbose_name='name'),
+        ),
+        migrations.AddField(
+            model_name='organization',
+            name='description_en',
+            field=models.TextField(blank=True, null=True, verbose_name='description'),
+        ),
+        migrations.AddField(
+            model_name='organization',
+            name='description_fr',
+            field=models.TextField(blank=True, null=True, verbose_name='description'),
+        ),
+        migrations.AddField(
+            model_name='person',
+            name='bio_en',
+            field=mezzanine.core.fields.RichTextField(blank=True, null=True, verbose_name='biography'),
+        ),
+        migrations.AddField(
+            model_name='person',
+            name='bio_fr',
+            field=mezzanine.core.fields.RichTextField(blank=True, null=True, verbose_name='biography'),
+        ),
+        migrations.AddField(
+            model_name='team',
+            name='description_en',
+            field=models.TextField(blank=True, null=True, verbose_name='description'),
+        ),
+        migrations.AddField(
+            model_name='team',
+            name='description_fr',
+            field=models.TextField(blank=True, null=True, verbose_name='description'),
+        ),
+        migrations.AddField(
+            model_name='team',
+            name='name_en',
+            field=models.CharField(max_length=512, null=True, verbose_name='name'),
+        ),
+        migrations.AddField(
+            model_name='team',
+            name='name_fr',
+            field=models.CharField(max_length=512, null=True, verbose_name='name'),
+        ),
+    ]
index 139ccfe1fbae1e0bb384e68b411cbced29acd87c..81ebb7f5bd38b22061c358a615260e21bb9bb663 100644 (file)
@@ -100,7 +100,7 @@ class Team(Named):
         return u"Team"
 
 
-class Person(Displayable, RichText, AdminThumbMixin, Photo):
+class Person(Displayable, AdminThumbMixin, Photo):
     """(Person description)"""
 
     user = models.ForeignKey(User, verbose_name=_('user'), blank=True, null=True, on_delete=models.SET_NULL)
@@ -188,7 +188,7 @@ class LinkType(models.Model):
         return self.name
 
 
-class Activity(models.Model):
+class Activity(RichText):
     """(Activity description)"""
 
     person = models.ForeignKey('Person', verbose_name=_('person'))
@@ -196,7 +196,7 @@ class Activity(models.Model):
     date_begin = models.DateField(_('begin date'), null=True, blank=True)
     date_end = models.DateField(_('end date'), null=True, blank=True)
     role = models.CharField(_('role'), blank=True, max_length=512)
-    work = models.TextField(_('work'), blank=True)
+    description = models.TextField(_('work'), blank=True)
 
     def __unicode__(self):
         return ' - '.join((self.person, self.role, self.date_begin, self.date_end))
diff --git a/app/organization/team/translation.py b/app/organization/team/translation.py
new file mode 100644 (file)
index 0000000..3dfc4c9
--- /dev/null
@@ -0,0 +1,33 @@
+from modeltranslation.translator import translator, register, TranslationOptions
+
+from organization.team.models import *
+
+
+@register(Organization)
+class OrganizationTranslationOptions(TranslationOptions):
+
+    fields = ('description',)
+
+
+@register(Department)
+class DepartmentTranslationOptions(TranslationOptions):
+
+    fields = ('name', 'description',)
+
+
+@register(Team)
+class TeamTranslationOptions(TranslationOptions):
+
+    fields = ('name', 'description',)
+
+
+@register(Person)
+class PersonTranslationOptions(TranslationOptions):
+
+    fields = ('bio',)
+
+
+@register(Activity)
+class ActivityTranslationOptions(TranslationOptions):
+
+    fields = ('description', 'content')
index e43f5cadb8188397451c6e138f8d188c35e54534..3841bd30f946c606714f36aa1a29605eab158a94 100755 (executable)
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-docker-compose run app /srv/app/manage.py makemigrations
+docker-compose run app python /srv/app/manage.py makemigrations
index 8b06ce094689d45e8de46c398c22615a0862e51f..b561bbfa898dcb92a784e05cf5b4a83274cfd871 100755 (executable)
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-docker-compose run app /srv/app/manage.py migrate
+docker-compose run app python /srv/app/manage.py migrate