From: Guillaume Pellerin Date: Wed, 7 Sep 2016 14:01:10 +0000 (+0200) Subject: Add EventDeprtment link, cleanup and new admin entries X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=2b7b575bc3c496c7557417b66e971b2c0c217d6c;p=mezzo.git Add EventDeprtment link, cleanup and new admin entries --- diff --git a/app/local_settings.py b/app/local_settings.py index f76f7949..92348931 100644 --- a/app/local_settings.py +++ b/app/local_settings.py @@ -71,10 +71,10 @@ SILENCED_SYSTEM_CHECKS = ['fields.W342',] ADMIN_MENU_ORDER = ( (_('Pages'), ('pages.Page', 'organization-pages.Home')), (_('Media'), ('organization-media.Video', 'organization-media.VideoCategory', 'organization-media.Audio', 'organization-media.Playlist', (_('Media Library'), 'fb_browse'),)), - (_('Events'), ('mezzanine_agenda.Event', 'mezzanine_agenda.EventLocation', 'mezzanine_agenda.EventPrice',)), + (_('Events'), ('mezzanine_agenda.Event', 'mezzanine_agenda.EventLocation', 'mezzanine_agenda.EventPrice', 'mezzanine_agenda.EventCategory')), (_('Magazine'), ('organization-magazine.Article', 'organization-magazine.Brief',)), (_('Network'), ('organization-network.Organization', 'organization-network.Department', 'organization-network.Team', 'organization-network.Person', 'organization-network.Activity', 'organization-network.OrganizationType',)), - (_('Projects'), ('organization-projects.Project',)), + (_('Projects'), ('organization-projects.Project','organization-projects.ProjectProgram', 'organization-projects.ProjectProgramType' )), (_('Festival'), ('organization-festival.Artist',)), (_('Users'), ('auth.User', 'auth.Group',)), (_('Site'), ('sites.Site', 'redirects.Redirect', 'conf.Setting')), diff --git a/app/organization/agenda/admin.py b/app/organization/agenda/admin.py index 5e1793ae..b44b5dc2 100644 --- a/app/organization/agenda/admin.py +++ b/app/organization/agenda/admin.py @@ -27,6 +27,11 @@ class EventImageInline(TabularDynamicInlineAdmin): model = EventImage +class EventDepartmentInline(StackedDynamicInlineAdmin): + + model = EventDepartment + + class CustomEventAdmin(EventAdmin): """ Admin class for events. @@ -37,8 +42,8 @@ class CustomEventAdmin(EventAdmin): list_display = ["title", "start", "end", "user", "status", "admin_link"] if settings.EVENT_USE_FEATURED_IMAGE: list_display.insert(0, "admin_thumb") - list_filter = deepcopy(DisplayableAdmin.list_filter) + ("location",) - inlines = [EventBlockInline, EventImageInline,] + list_filter = deepcopy(DisplayableAdmin.list_filter) + ("location", "category") + inlines = [EventBlockInline, EventImageInline, EventDepartmentInline] def save_form(self, request, form, change): """ diff --git a/app/organization/agenda/migrations/0002_eventdepartment.py b/app/organization/agenda/migrations/0002_eventdepartment.py new file mode 100644 index 00000000..14eb8a81 --- /dev/null +++ b/app/organization/agenda/migrations/0002_eventdepartment.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-07 13:41 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-network', '0005_auto_20160905_1853'), + ('mezzanine_agenda', '0005_auto_20160907_1541'), + ('organization-agenda', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='EventDepartment', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('department', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='events', to='organization-network.Department', verbose_name='department')), + ('event', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='departments', to='mezzanine_agenda.Event', verbose_name='event')), + ], + options={ + 'verbose_name_plural': 'departments', + 'verbose_name': 'department', + }, + ), + ] diff --git a/app/organization/agenda/models.py b/app/organization/agenda/models.py index 573c7391..521a0c3c 100644 --- a/app/organization/agenda/models.py +++ b/app/organization/agenda/models.py @@ -3,8 +3,9 @@ from future.builtins import str from django.utils.translation import ugettext_lazy as _ -from mezzanine_agenda.models import Event +from mezzanine_agenda.models import * from organization.core.models import * +from organization.network.models import * class EventBlock(Block): @@ -23,3 +24,13 @@ class EventImage(Image): class Meta: verbose_name = _("image") verbose_name_plural = _("images") + + +class EventDepartment(models.Model): + + event = models.ForeignKey(Event, verbose_name=_('event'), related_name='departments', blank=True, null=True, on_delete=models.SET_NULL) + department = models.ForeignKey(Department, verbose_name=_('department'), related_name='events', blank=True, null=True, on_delete=models.SET_NULL) + + class Meta: + verbose_name = _("department") + verbose_name_plural = _("departments") diff --git a/app/organization/agenda/translation.py b/app/organization/agenda/translation.py index dfc2c6fb..2fd9ebc5 100644 --- a/app/organization/agenda/translation.py +++ b/app/organization/agenda/translation.py @@ -13,3 +13,9 @@ class EventBlockTranslationOptions(TranslationOptions): class EventImageTranslationOptions(TranslationOptions): fields = () + + +@register(EventDepartment) +class EventDepartmentTranslationOptions(TranslationOptions): + + fields = () diff --git a/app/organization/agenda/urls.py b/app/organization/agenda/urls.py index e69de29b..1caa1283 100644 --- a/app/organization/agenda/urls.py +++ b/app/organization/agenda/urls.py @@ -0,0 +1,15 @@ +from __future__ import unicode_literals + +import django.views.i18n +from django.conf.urls import patterns, include, url +from django.conf.urls.i18n import i18n_patterns + +from mezzanine.core.views import direct_to_template +from mezzanine.conf import settings + +from organization.core.views import * + + +urlpatterns = [ + url("^%s/" % settings.EVENT_SLUG, include("mezzanine_agenda.urls")), +] diff --git a/app/organization/core/urls.py b/app/organization/core/urls.py index 6755ae67..804c46cc 100644 --- a/app/organization/core/urls.py +++ b/app/organization/core/urls.py @@ -10,5 +10,4 @@ from mezzanine.conf import settings from organization.core.views import * urlpatterns = [ - # url(r'^displayable/(?P.*)/$', CustomDisplayableView.as_view(), name="organization-displayable"), ] diff --git a/app/organization/projects/admin.py b/app/organization/projects/admin.py index ada735ba..3ba01b2e 100644 --- a/app/organization/projects/admin.py +++ b/app/organization/projects/admin.py @@ -44,7 +44,7 @@ class ProjectAdminDisplayable(DisplayableAdmin): fieldsets = deepcopy(ProjectAdmin.fieldsets) inlines = [ ProjectBlockInline, ProjectImageInline, ProjectAudioInline, ProjectVideoInline, ProjectLinkInline] - filter_horizontal = ['persons', 'teams', 'organizations'] + filter_horizontal = ['teams', 'organizations'] list_filter = ['type', 'program', 'program_type', ] diff --git a/app/organization/projects/migrations/0005_auto_20160907_1046.py b/app/organization/projects/migrations/0005_auto_20160907_1046.py new file mode 100644 index 00000000..ddf24357 --- /dev/null +++ b/app/organization/projects/migrations/0005_auto_20160907_1046.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-07 08:46 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-projects', '0004_auto_20160905_1853'), + ] + + operations = [ + migrations.RemoveField( + model_name='project', + name='persons', + ), + migrations.AlterField( + model_name='project', + name='type', + field=models.CharField(choices=[('internal project', 'internal project'), ('external project', 'external project')], max_length=128, verbose_name='type'), + ), + ] diff --git a/app/organization/projects/models.py b/app/organization/projects/models.py index cf658b06..ae0fc91f 100644 --- a/app/organization/projects/models.py +++ b/app/organization/projects/models.py @@ -21,7 +21,6 @@ class Project(Displayable, Period, RichText): program = models.ForeignKey('ProjectProgram', verbose_name=_('project program'), related_name='projects', blank=True, null=True, on_delete=models.SET_NULL) program_type = models.ForeignKey('ProjectProgramType', verbose_name=_('project program type'), related_name='projects', blank=True, null=True, on_delete=models.SET_NULL) lead_team = models.ForeignKey('organization-network.Team', verbose_name=_('lead team'), related_name='leader_projects', blank=True, null=True) - persons = models.ManyToManyField('organization-network.Person', verbose_name=_('persons'), blank=True) teams = models.ManyToManyField('organization-network.Team', verbose_name=_('teams'), related_name='partner_projects', blank=True) organizations = models.ManyToManyField('organization-network.Organization', verbose_name=_('organizations'), blank=True) website = models.URLField(_('website'), max_length=512, blank=True) @@ -39,13 +38,13 @@ class Project(Displayable, Period, RichText): class ProjectProgram(Named): class Meta: - verbose_name = _('project programme') + verbose_name = _('program') class ProjectProgramType(Named): class Meta: - verbose_name = _('project programme type') + verbose_name = _('program type') class ProjectAudio(Audio): diff --git a/app/organization/urls.py b/app/organization/urls.py index af320802..beed0ac1 100644 --- a/app/organization/urls.py +++ b/app/organization/urls.py @@ -19,4 +19,5 @@ urlpatterns = [ url("^", include('organization.media.urls')), url("^", include('organization.projects.urls')), url("^", include('organization.network.urls')), + url("^", include('organization.agenda.urls')), ] diff --git a/app/urls.py b/app/urls.py index 6e0a5d17..5ade0f91 100644 --- a/app/urls.py +++ b/app/urls.py @@ -30,7 +30,6 @@ urlpatterns += [ # App urls url("^", include('organization.urls')), - url("^%s/" % settings.EVENT_SLUG, include("mezzanine_agenda.urls")), url("^styles/$", direct_to_template, {"template": "styles.html"}, name="styles"), # We don't want to presume how your homepage works, so here are a diff --git a/lib/mezzanine-agenda b/lib/mezzanine-agenda index e097aa19..07f1a336 160000 --- a/lib/mezzanine-agenda +++ b/lib/mezzanine-agenda @@ -1 +1 @@ -Subproject commit e097aa19ade48f0b03d3b9068a39a0c14d6695d9 +Subproject commit 07f1a336837a23c9901d23f6ac61e3b193f398d2