From: Guillaume Pellerin Date: Thu, 7 Jul 2016 09:07:34 +0000 (+0200) Subject: fix various labels, update admin menu order, add migration scripts X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=a0c53fa63c480af2450ec1bda4bd789fd4dbe8ca;p=mezzo.git fix various labels, update admin menu order, add migration scripts --- diff --git a/app/local_settings.py b/app/local_settings.py index 5b6f5d61..29df194c 100644 --- a/app/local_settings.py +++ b/app/local_settings.py @@ -78,15 +78,19 @@ SITE_TAGLINE = 'Festival 2 juin | 2 juillet 2016' SILENCED_SYSTEM_CHECKS = ['fields.W342',] ADMIN_MENU_ORDER = ( - (_("Content"), ("pages.Page", "blog.BlogPost", "mezzanine_agenda.Event", - "festival.Artist", "festival.Video", "festival.Audio", "festival.Playlist", - "festival.Featured", - "generic.ThreadedComment", (_("Media Library"), "fb_browse"),)), - (_("Site"), ("sites.Site", "redirects.Redirect", "conf.Setting")), - (_("Users"), ("auth.User", "auth.Group",)), - (_("Festival"), ("mezzanine_agenda.EventLocation", - "mezzanine_agenda.EventCategory", "mezzanine_agenda.EventPrice", - "festival.PageCategory",)), + (_('Content'), ('pages.Page', 'blog.BlogPost', 'mezzanine_agenda.Event', + 'generic.ThreadedComment', (_('Media Library'), 'fb_browse'),)), + (_('Structure'), ('organization.structure.Organization', 'organization.structure.Team', + 'organization.structure.Department', 'organization.structure.Person', + 'organization.structure.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',)), + (_('Users'), ('auth.User', 'auth.Group',)), + (_('Site'), ('sites.Site', 'redirects.Redirect', 'conf.Setting')), ) GRAPPELLI_ADMIN_TITLE = 'IRCAM Admin' diff --git a/app/organization/festival/__init__.py b/app/organization/festival/__init__.py index 28fa6ce6..e5988d7f 100644 --- a/app/organization/festival/__init__.py +++ b/app/organization/festival/__init__.py @@ -4,7 +4,4 @@ Mezzanine apps. """ from __future__ import unicode_literals -from mezzanine import __version__ # noqa - - default_app_config = 'organization.festival.apps.FestivalConfig' diff --git a/app/organization/festival/apps.py b/app/organization/festival/apps.py index a6fe16f3..0ab1f17a 100644 --- a/app/organization/festival/apps.py +++ b/app/organization/festival/apps.py @@ -4,4 +4,4 @@ from django.apps import AppConfig class FestivalConfig(AppConfig): name = 'organization.festival' - label = 'organization festival' + label = 'organization festival app' diff --git a/app/organization/festival/models.py b/app/organization/festival/models.py index 15a96562..5703b40b 100644 --- a/app/organization/festival/models.py +++ b/app/organization/festival/models.py @@ -15,15 +15,10 @@ import requests from pyquery import PyQuery as pq -app_label = 'festival' ALIGNMENT_CHOICES = (('left', _('left')), ('right', _('right'))) MEDIA_BASE_URL = getattr(settings, 'MEDIA_BASE_URL', 'http://medias.ircam.fr/embed/media/') -class MetaCore: - - app_label = 'festival' - class BaseNameModel(models.Model): """Base object with name and description""" @@ -31,7 +26,7 @@ class BaseNameModel(models.Model): name = models.CharField(_('name'), max_length=512) description = models.TextField(_('description'), blank=True) - class Meta(MetaCore): + class Meta: abstract = True def __unicode__(self): @@ -43,7 +38,7 @@ class BaseTitleModel(models.Model): title = models.CharField(_('title'), max_length=512) description = models.TextField(_('description'), blank=True) - class Meta(MetaCore): + class Meta: abstract = True def __unicode__(self): @@ -66,9 +61,8 @@ class Artist(Displayable, RichText, AdminThumbMixin): search_fields = ("title", "bio") - class Meta(MetaCore): + class Meta: verbose_name = _('artist') - db_table = app_label + '_artists' ordering = ['last_name',] def __unicode__(self): @@ -117,7 +111,7 @@ class Media(Displayable, RichText): closed_source_url = models.URLField(_('closed source URL'), max_length=1024, blank=True) poster_url = models.URLField(_('poster'), max_length=1024, blank=True) - class Meta(MetaCore): + class Meta: abstract = True def __unicode__(self): @@ -155,9 +149,8 @@ class Audio(Media): event = models.ForeignKey(Event, related_name='audios', verbose_name=_('event'), blank=True, null=True, on_delete=models.SET_NULL) artists = models.ManyToManyField(Artist, verbose_name=_('artists'), related_name='audios', blank=True) - class Meta(MetaCore): + class Meta: verbose_name = _('audio') - db_table = app_label + '_audios' def get_absolute_url(self): return reverse("festival-video-detail", kwargs={"slug": self.slug}) @@ -173,9 +166,8 @@ class Video(Media): category = models.ForeignKey('VideoCategory', related_name='videos', verbose_name=_('category'), blank=True, null=True, on_delete=models.SET_NULL) artists = models.ManyToManyField(Artist, verbose_name=_('artists'), related_name='videos', blank=True) - class Meta(MetaCore): + class Meta: verbose_name = _('video') - db_table = app_label + '_videos' @property def html(self): @@ -213,9 +205,8 @@ class Featured(BaseNameModel): class VideoCategory(Slugged): """Video Category""" - class Meta(MetaCore): + class Meta: verbose_name = _('video category') - db_table = app_label + '_video_category' - + def count(self): return self.videos.published().count()+1 diff --git a/app/organization/magazine/apps.py b/app/organization/magazine/apps.py index 508c40ae..78483d70 100644 --- a/app/organization/magazine/apps.py +++ b/app/organization/magazine/apps.py @@ -6,3 +6,4 @@ from django.apps import AppConfig class MagazineConfig(AppConfig): name = 'organization.magazine' + label = 'organization magazine' diff --git a/app/organization/media/apps.py b/app/organization/media/apps.py index 0b6445c2..d5dd59ac 100644 --- a/app/organization/media/apps.py +++ b/app/organization/media/apps.py @@ -6,3 +6,4 @@ from django.apps import AppConfig class MediaConfig(AppConfig): name = 'organization.media' + label = 'organization media' diff --git a/app/organization/project/apps.py b/app/organization/project/apps.py index 26ba939a..34d023b2 100644 --- a/app/organization/project/apps.py +++ b/app/organization/project/apps.py @@ -6,3 +6,4 @@ from django.apps import AppConfig class ProjectConfig(AppConfig): name = 'organization.project' + label = 'organization project' diff --git a/app/organization/project/migrations/0001_initial.py b/app/organization/project/migrations/0001_initial.py index e8ea8f52..c96edf5f 100644 --- a/app/organization/project/migrations/0001_initial.py +++ b/app/organization/project/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.9.7 on 2016-07-06 16:48 +# Generated by Django 1.9.7 on 2016-07-07 08:53 from __future__ import unicode_literals from django.db import migrations, models diff --git a/app/organization/project/migrations/0002_auto_20160706_1848.py b/app/organization/project/migrations/0002_auto_20160706_1848.py deleted file mode 100644 index 266a5d3b..00000000 --- a/app/organization/project/migrations/0002_auto_20160706_1848.py +++ /dev/null @@ -1,35 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.7 on 2016-07-06 16:48 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ('project', '0001_initial'), - ('structure', '0001_initial'), - ('sites', '0002_alter_domain_unique'), - ] - - operations = [ - migrations.AddField( - model_name='project', - name='partners', - field=models.ManyToManyField(to='structure.Organization', verbose_name='organizations'), - ), - migrations.AddField( - model_name='project', - name='persons', - field=models.ManyToManyField(to='structure.Person', verbose_name='persons'), - ), - migrations.AddField( - model_name='project', - name='site', - field=models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site'), - ), - ] diff --git a/app/organization/project/migrations/0002_auto_20160707_1053.py b/app/organization/project/migrations/0002_auto_20160707_1053.py new file mode 100644 index 00000000..59768c53 --- /dev/null +++ b/app/organization/project/migrations/0002_auto_20160707_1053.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-07-07 08:53 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('sites', '0002_alter_domain_unique'), + ('organization project', '0001_initial'), + ('organization structure', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='project', + name='partners', + field=models.ManyToManyField(to='organization structure.Organization', verbose_name='organizations'), + ), + migrations.AddField( + model_name='project', + name='persons', + field=models.ManyToManyField(to='organization structure.Person', verbose_name='persons'), + ), + migrations.AddField( + model_name='project', + name='site', + field=models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site'), + ), + ] diff --git a/app/organization/structure/apps.py b/app/organization/structure/apps.py index e399e507..671fe585 100644 --- a/app/organization/structure/apps.py +++ b/app/organization/structure/apps.py @@ -6,3 +6,4 @@ from django.apps import AppConfig class StructureConfig(AppConfig): name = 'organization.structure' + label = 'organization structure' diff --git a/app/organization/structure/migrations/0001_initial.py b/app/organization/structure/migrations/0001_initial.py index 3589da55..eb6a618d 100644 --- a/app/organization/structure/migrations/0001_initial.py +++ b/app/organization/structure/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.9.7 on 2016-07-06 16:48 +# Generated by Django 1.9.7 on 2016-07-07 08:53 from __future__ import unicode_literals from django.conf import settings @@ -15,8 +15,8 @@ class Migration(migrations.Migration): initial = True dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('sites', '0002_alter_domain_unique'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ @@ -140,7 +140,7 @@ class Migration(migrations.Migration): ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=512, verbose_name='name')), ('description', models.TextField(blank=True, verbose_name='description')), - ('department', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='structure.Department', verbose_name='department')), + ('department', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='organization structure.Department', verbose_name='department')), ], options={ 'abstract': False, @@ -149,45 +149,45 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Organization', fields=[ - ('address_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='structure.Address')), + ('address_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='organization structure.Address')), ('name', models.CharField(max_length=512, verbose_name='name')), ('description', models.TextField(blank=True, verbose_name='description')), ('url', models.URLField(blank=True, max_length=512, verbose_name='URL')), - ('type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='structure.OrganizationType', verbose_name='organization type')), + ('type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='organization structure.OrganizationType', verbose_name='organization type')), ], options={ 'verbose_name': 'organization', }, - bases=('structure.address', models.Model), + bases=('organization structure.address', models.Model), ), migrations.AddField( model_name='link', name='link_type', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='structure.LinkType', verbose_name='Link type'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='organization structure.LinkType', verbose_name='Link type'), ), migrations.AddField( model_name='link', name='person', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='structure.Person', verbose_name='Person'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='organization structure.Person', verbose_name='Person'), ), migrations.AddField( model_name='activity', name='person', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='structure.Person', verbose_name='person'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='organization structure.Person', verbose_name='person'), ), migrations.AddField( model_name='activity', name='teams', - field=models.ManyToManyField(to='structure.Team', verbose_name='teams'), + field=models.ManyToManyField(to='organization structure.Team', verbose_name='teams'), ), migrations.AddField( model_name='person', name='organization', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='structure.Organization', verbose_name='organization'), + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='organization structure.Organization', verbose_name='organization'), ), migrations.AddField( model_name='department', name='organization', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='structure.Organization', verbose_name='organization'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='organization structure.Organization', verbose_name='organization'), ), ] diff --git a/app/settings.py b/app/settings.py index 5b6ac933..bd023de3 100644 --- a/app/settings.py +++ b/app/settings.py @@ -225,10 +225,9 @@ INSTALLED_APPS = [ "mezzanine_agenda", "organization.core", "organization.structure", - # "organization.festival", + "organization.festival", "organization.magazine", "organization.media", - "organization.festival", "organization.project", ] @@ -295,7 +294,7 @@ MIDDLEWARE_CLASSES = ( # Uncomment the following if using any of the SSL settings: # "mezzanine.core.middleware.SSLRedirectMiddleware", "mezzanine.pages.middleware.PageMiddleware", - "mezzanine.core.middleware.FetchFromCacheMiddleware", + # "mezzanine.core.middleware.FetchFromCacheMiddleware", ) # Store these package names here as they may change in the future since diff --git a/scripts/makemigrations.sh b/scripts/makemigrations.sh new file mode 100755 index 00000000..e43f5cad --- /dev/null +++ b/scripts/makemigrations.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +docker-compose run app /srv/app/manage.py makemigrations diff --git a/scripts/migrate.sh b/scripts/migrate.sh new file mode 100755 index 00000000..8b06ce09 --- /dev/null +++ b/scripts/migrate.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +docker-compose run app /srv/app/manage.py migrate