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,
model = PageLink
+class LinkImageInline(StackedDynamicInlineAdmin):
+
+ model = LinkImage
+
+
+class LinkImageAdmin(LinkAdmin):
+
+ inlines = [LinkImageInline,]
+
+
class PersonListBlockAutocompleteInlineAdmin(TabularDynamicInlineAdmin):
model = PageCustomPersonListBlockInline
admin.site.register(CustomPage, CustomPageAdmin)
admin.site.register(Home, HomeAdminDisplayable)
+admin.site.unregister(MezzanineLink)
+admin.site.register(MezzanineLink, LinkImageAdmin)
--- /dev/null
+# -*- 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',
+ ),
+ ]
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 *
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)
class PageLinkTranslationOptions(TranslationOptions):
pass
+
+
+@register(LinkImage)
+class LinkImageTranslationOptions(TranslationOptions):
+
+ pass
-{% 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>