]> git.parisson.com Git - mezzo.git/commitdiff
Department menu : we can add link page
authorEmilie <zawadzki@ircam.fr>
Fri, 23 Sep 2016 15:12:27 +0000 (17:12 +0200)
committerEmilie <zawadzki@ircam.fr>
Fri, 23 Sep 2016 15:12:27 +0000 (17:12 +0200)
app/organization/pages/admin.py
app/organization/pages/migrations/0003_auto_20160923_1418.py [new file with mode: 0644]
app/organization/pages/models.py
app/organization/pages/translation.py
app/templates/pages/menus/header.html

index 1cbf8b3c09ecfd6f9420344735206bf757c03ccb..057586e8a91cc456777f0a5eae81ca9a69ac426e 100644 (file)
@@ -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 (file)
index 0000000..1f5cfd7
--- /dev/null
@@ -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',
+        ),
+    ]
index c183a899e1a71c3c0301e3cef5e13788d411c214..f1afc8dda378a7e66c2e90d57f23f58a28f82bcc 100644 (file)
@@ -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)
index d84002dc1e4fb28a72a7cf117a4af501858c6422..5cae7e874e32188fb52b54a60b693f06d3a2cccb 100644 (file)
@@ -56,3 +56,9 @@ class PageAudioTranslationOptions(TranslationOptions):
 class PageLinkTranslationOptions(TranslationOptions):
 
     pass
+
+
+@register(LinkImage)
+class LinkImageTranslationOptions(TranslationOptions):
+
+    pass
index 030bc1acdab4dc54d644e69ca40351cd5f764263..1e3016312f3cb381426e061ad0bc2f4ec8b86853 100644 (file)
@@ -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 %}
             {% endif %}
         {% endif %}
         {% if page.in_menu %}
-            <li class="nav-header__item">
-                <a class="nav-header__item-link{% if page.is_current_or_ascendant %} active{% endif %}" href="{{ page.get_absolute_url }}" title="{{ page.title }}">{{ page.title }}</a>
-                {% if page.has_children_in_menu %}
-                    {% page_menu page "pages/menus/header_tree_primary.html" %}
-                {% endif %}
-            </li>
+            {% if page.content_model == "link" %}
+                <li class="nav-header__item nav-header__item--image">
+                    {% with page.link.link_images.all|first as link_image %}
+                        <a href="{{ page.get_absolute_url }}" target="_blank" title="{{ page.title }}"><img src="{{ MEDIA_URL }}{% thumbnail link_image.image 83 65 %}" /></a>
+                    {% endwith %}
+                </li>
+            {% else %}
+                <li class="nav-header__item">
+                    <a class="nav-header__item-link{% if page.is_current_or_ascendant %} active{% endif %}" href="{{ page.get_absolute_url }}" title="{{ page.title }}">{{ page.title }}</a>
+                    {% if page.has_children_in_menu %}
+                        {% page_menu page "pages/menus/header_tree_primary.html" %}
+                    {% endif %}
+                </li>
+            {% endif %}
         {% endif %}
         {% if page.is_primary %}
             {% if forloop.last %}
-                <li class="nav-header__item nav-header__item--special">
-                    <a href="{% url 'event_list' %}"><span class="fss ffss">rendez-vous</span><br /><span class="fsxxxl ffss">15.16</span></a>
-                </li>
-                <li class="nav-header__item nav-header__item--image">
-                    <a href="http://manifeste.ircam.fr" target="_blank" title="{% trans 'Manifest' %}"><img src="{% static "img/logo-manifest.png" %}" width="83" height="65" /></a>
-                </li>
                 <li class="nav-header__item nav-header__item--special nav-header__item--centered">
                     <a href="#" class="fsxl" data-open-button="search" id="searchBtn"><i class="fa fa-search" aria-hidden="true"></i></a>
                 </li>