From: Guillaume Pellerin Date: Wed, 13 Jul 2016 13:51:21 +0000 (+0200) Subject: add fields, translations, try to fix admin menus X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=48e05d7149d021c192afa3553535f4f5ba90973f;p=mezzo.git add fields, translations, try to fix admin menus --- diff --git a/app/local_settings.py b/app/local_settings.py index 914522de..20f6087e 100644 --- a/app/local_settings.py +++ b/app/local_settings.py @@ -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')), ) diff --git a/app/organization/magazine/admin.py b/app/organization/magazine/admin.py index bb11befd..7117eb48 100644 --- a/app/organization/magazine/admin.py +++ b/app/organization/magazine/admin.py @@ -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) diff --git a/app/organization/project/admin.py b/app/organization/project/admin.py index 988416d5..19a227a3 100644 --- a/app/organization/project/admin.py +++ b/app/organization/project/admin.py @@ -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 index 00000000..c0a2eb55 --- /dev/null +++ b/app/organization/project/migrations/0003_auto_20160713_1501.py @@ -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 index 00000000..7f9d3d1f --- /dev/null +++ b/app/organization/project/translation.py @@ -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') diff --git a/app/organization/team/admin.py b/app/organization/team/admin.py index 8c38f3f3..c5b13fcc 100644 --- a/app/organization/team/admin.py +++ b/app/organization/team/admin.py @@ -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 index 00000000..012003c0 --- /dev/null +++ b/app/organization/team/migrations/0003_auto_20160713_1504.py @@ -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'), + ), + ] diff --git a/app/organization/team/models.py b/app/organization/team/models.py index 139ccfe1..81ebb7f5 100644 --- a/app/organization/team/models.py +++ b/app/organization/team/models.py @@ -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 index 00000000..3dfc4c99 --- /dev/null +++ b/app/organization/team/translation.py @@ -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') diff --git a/scripts/makemigrations.sh b/scripts/makemigrations.sh index e43f5cad..3841bd30 100755 --- a/scripts/makemigrations.sh +++ b/scripts/makemigrations.sh @@ -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 diff --git a/scripts/migrate.sh b/scripts/migrate.sh index 8b06ce09..b561bbfa 100755 --- a/scripts/migrate.sh +++ b/scripts/migrate.sh @@ -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