From da178155da554f9b41e8e561f8614a0dd9a6af9f Mon Sep 17 00:00:00 2001 From: Emilie Date: Fri, 23 Sep 2016 17:12:27 +0200 Subject: [PATCH] Department menu : we can add link page --- app/organization/pages/admin.py | 15 +++++++- .../migrations/0003_auto_20160923_1418.py | 34 +++++++++++++++++++ app/organization/pages/models.py | 12 +++++++ app/organization/pages/translation.py | 6 ++++ app/templates/pages/menus/header.html | 28 ++++++++------- 5 files changed, 81 insertions(+), 14 deletions(-) create mode 100644 app/organization/pages/migrations/0003_auto_20160923_1418.py diff --git a/app/organization/pages/admin.py b/app/organization/pages/admin.py index 1cbf8b3c..057586e8 100644 --- a/app/organization/pages/admin.py +++ b/app/organization/pages/admin.py @@ -2,7 +2,8 @@ from django.contrib import admin from mezzanine.utils.static import static_lazy as static from copy import deepcopy from mezzanine.core.admin import * -from mezzanine.pages.admin import PageAdmin +from mezzanine.pages.admin import PageAdmin, LinkAdmin +from mezzanine.pages.models import Link as MezzanineLink from organization.pages.models import * from organization.pages.models import ( DynamicContentHomeSlider, @@ -40,6 +41,16 @@ class PageLinkInline(StackedDynamicInlineAdmin): model = PageLink +class LinkImageInline(StackedDynamicInlineAdmin): + + model = LinkImage + + +class LinkImageAdmin(LinkAdmin): + + inlines = [LinkImageInline,] + + class PersonListBlockAutocompleteInlineAdmin(TabularDynamicInlineAdmin): model = PageCustomPersonListBlockInline @@ -81,3 +92,5 @@ class HomeAdminDisplayable(BaseTranslationModelAdmin): admin.site.register(CustomPage, CustomPageAdmin) admin.site.register(Home, HomeAdminDisplayable) +admin.site.unregister(MezzanineLink) +admin.site.register(MezzanineLink, LinkImageAdmin) diff --git a/app/organization/pages/migrations/0003_auto_20160923_1418.py b/app/organization/pages/migrations/0003_auto_20160923_1418.py new file mode 100644 index 00000000..1f5cfd7c --- /dev/null +++ b/app/organization/pages/migrations/0003_auto_20160923_1418.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-23 12:18 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion +import mezzanine.core.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('pages', '0005_auto_20160923_1219'), + ('organization-pages', '0002_auto_20160914_1838'), + ] + + operations = [ + migrations.CreateModel( + name='LinkImage', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('image', mezzanine.core.fields.FileField(max_length=1024, verbose_name='Image')), + ('link', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='link_images', to='pages.Link', verbose_name='link')), + ], + options={ + 'verbose_name': 'link image', + 'verbose_name_plural': 'link images', + }, + ), + migrations.AlterOrderWithRespectTo( + name='linkimage', + order_with_respect_to='link', + ), + ] diff --git a/app/organization/pages/models.py b/app/organization/pages/models.py index c183a899..f1afc8dd 100644 --- a/app/organization/pages/models.py +++ b/app/organization/pages/models.py @@ -2,6 +2,7 @@ from django.db import models from django.utils.translation import ugettext_lazy as _ from django.core.urlresolvers import reverse, reverse_lazy from mezzanine.core.models import Displayable, Slugged, Orderable +from mezzanine.pages.models import Link as MezzanineLink from organization.core.models import * from organization.media.models import * @@ -62,6 +63,17 @@ class PageLink(Link): order_with_respect_to = "page" +class LinkImage(models.Model): + + link = models.ForeignKey(MezzanineLink, verbose_name=_('link'), related_name='link_images', blank=True, null=True, on_delete=models.SET_NULL) + image = FileField(_("Image"), max_length=1024, format="Image", upload_to="images") + + class Meta: + verbose_name = _("link image") + verbose_name_plural = _("link images") + order_with_respect_to = "link" + + class DynamicContentHomeSlider(DynamicContent, Orderable): home = models.ForeignKey("home", verbose_name=_('home'), blank=True, null=True, on_delete=models.SET_NULL) diff --git a/app/organization/pages/translation.py b/app/organization/pages/translation.py index d84002dc..5cae7e87 100644 --- a/app/organization/pages/translation.py +++ b/app/organization/pages/translation.py @@ -56,3 +56,9 @@ class PageAudioTranslationOptions(TranslationOptions): class PageLinkTranslationOptions(TranslationOptions): pass + + +@register(LinkImage) +class LinkImageTranslationOptions(TranslationOptions): + + pass diff --git a/app/templates/pages/menus/header.html b/app/templates/pages/menus/header.html index 030bc1ac..1e301631 100644 --- a/app/templates/pages/menus/header.html +++ b/app/templates/pages/menus/header.html @@ -1,4 +1,4 @@ -{% load i18n pages_tags staticfiles %} +{% load i18n pages_tags staticfiles mezzanine_tags %} {% get_language_info_list for LANGUAGES as languages %} {% spaceless %} @@ -17,21 +17,23 @@ {% endif %} {% endif %} {% if page.in_menu %} - + {% if page.content_model == "link" %} + + {% else %} + + {% endif %} {% endif %} {% if page.is_primary %} {% if forloop.last %} - - -- 2.39.5