]> git.parisson.com Git - mezzo.git/commitdiff
CustomPage : add link type | Network : rename verbose name
authorEmilie <zawadzki@ircam.fr>
Wed, 14 Sep 2016 17:09:47 +0000 (19:09 +0200)
committerEmilie <zawadzki@ircam.fr>
Wed, 14 Sep 2016 17:09:47 +0000 (19:09 +0200)
app/organization/core/migrations/0002_linktype_picto.py [new file with mode: 0644]
app/organization/core/models.py
app/organization/network/migrations/0007_auto_20160914_1818.py [new file with mode: 0644]
app/organization/pages/admin.py
app/organization/pages/migrations/0002_auto_20160914_1838.py [new file with mode: 0644]
app/organization/pages/models.py
app/organization/pages/translation.py
app/templates/core/inc/link.html [new file with mode: 0644]
app/templates/pages/custompage.html
app/templates/pages/page.html

diff --git a/app/organization/core/migrations/0002_linktype_picto.py b/app/organization/core/migrations/0002_linktype_picto.py
new file mode 100644 (file)
index 0000000..9997fe0
--- /dev/null
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-09-14 16:18
+from __future__ import unicode_literals
+
+from django.db import migrations
+import mezzanine.core.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organization-core', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='linktype',
+            name='picto',
+            field=mezzanine.core.fields.FileField(default='', max_length=1024, verbose_name='picto'),
+            preserve_default=False,
+        ),
+    ]
index 3d0bb98e3308d845a4112b2c7a54c70cee2fc93b..c355ac879041937304164256dde25969e2620a20 100644 (file)
@@ -148,6 +148,7 @@ class LinkType(models.Model):
         blank=True,
     )
     ordering = models.PositiveIntegerField(verbose_name=_('ordering'), null=True, blank=True)
+    picto = FileField(_("picto"), max_length=1024, format="Image", upload_to="images/picto")
 
     class Meta:
         ordering = ['ordering', ]
diff --git a/app/organization/network/migrations/0007_auto_20160914_1818.py b/app/organization/network/migrations/0007_auto_20160914_1818.py
new file mode 100644 (file)
index 0000000..b93d331
--- /dev/null
@@ -0,0 +1,66 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-09-14 16:18
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organization-network', '0006_auto_20160914_1454'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='organizationaudio',
+            name='organization',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='audios', to='organization-network.Organization', verbose_name='organization'),
+        ),
+        migrations.AlterField(
+            model_name='organizationblock',
+            name='organization',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='blocks', to='organization-network.Organization', verbose_name='organization'),
+        ),
+        migrations.AlterField(
+            model_name='organizationimage',
+            name='organization',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='images', to='organization-network.Organization', verbose_name='organization'),
+        ),
+        migrations.AlterField(
+            model_name='organizationlink',
+            name='organization',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='links', to='organization-network.Organization', verbose_name='organization'),
+        ),
+        migrations.AlterField(
+            model_name='organizationvideo',
+            name='organization',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='videos', to='organization-network.Organization', verbose_name='organization'),
+        ),
+        migrations.AlterField(
+            model_name='personaudio',
+            name='person',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='audios', to='organization-network.Person', verbose_name='person'),
+        ),
+        migrations.AlterField(
+            model_name='personblock',
+            name='person',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='blocks', to='organization-network.Person', verbose_name='person'),
+        ),
+        migrations.AlterField(
+            model_name='personimage',
+            name='person',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='images', to='organization-network.Person', verbose_name='person'),
+        ),
+        migrations.AlterField(
+            model_name='personlink',
+            name='person',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='links', to='organization-network.Person', verbose_name='person'),
+        ),
+        migrations.AlterField(
+            model_name='personvideo',
+            name='person',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='videos', to='organization-network.Person', verbose_name='person'),
+        ),
+    ]
index b53f5e5b45b1a1b43fc4127982a5e445b89827b0..d578689ae1ce4ad1d1ecf8ed7ac9461eb1c85cbb 100644 (file)
@@ -34,9 +34,14 @@ class PageVideoInline(StackedDynamicInlineAdmin):
     exclude = ("short_url", "keywords", "description", "slug", )
 
 
+class PageLinkInline(StackedDynamicInlineAdmin):
+
+    model = PageLink
+
+
 class CustomPageAdmin(PageAdmin):
 
-    inlines = [PageBlockInline, PageImageInline, PageAudioInline, PageVideoInline, ]
+    inlines = [PageBlockInline, PageImageInline, PageAudioInline, PageVideoInline, PageLinkInline]
 
 
 class DynamicContentHomeSliderInline(TabularDynamicInlineAdmin):
diff --git a/app/organization/pages/migrations/0002_auto_20160914_1838.py b/app/organization/pages/migrations/0002_auto_20160914_1838.py
new file mode 100644 (file)
index 0000000..ac6be2e
--- /dev/null
@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-09-14 16:38
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('pages', '0004_auto_20160804_1547'),
+        ('organization-core', '0002_linktype_picto'),
+        ('organization-pages', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='PageLink',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('url', models.URLField(blank=True, max_length=512, verbose_name='URL')),
+                ('link_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='organization-core.LinkType', verbose_name='link type')),
+                ('page', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='links', to='pages.Page', verbose_name='page')),
+            ],
+            options={
+                'verbose_name_plural': 'links',
+                'verbose_name': 'link',
+            },
+        ),
+        migrations.AlterOrderWithRespectTo(
+            name='pagelink',
+            order_with_respect_to='page',
+        ),
+    ]
index dafca37408b2d4edc4edcb852494560d96638ed2..8561cf291259cdb4385bbcd3f544e4a61aaa889f 100644 (file)
@@ -52,6 +52,16 @@ class PageVideo(Video):
         order_with_respect_to = "page"
 
 
+class PageLink(Link):
+
+    page = models.ForeignKey(Page, verbose_name=_('page'), related_name='links', blank=True, null=True, on_delete=models.SET_NULL)
+
+    class Meta:
+        verbose_name = _("link")
+        verbose_name_plural = _("links")
+        order_with_respect_to = "page"
+
+
 class DynamicContentHomeSlider(DynamicContent, Orderable):
 
     home = models.ForeignKey("home", verbose_name=_('home'), blank=True, null=True, on_delete=models.SET_NULL)
index 873e123a6698dcbd00267fc15fc9eba43c0ce54c..d84002dc1e4fb28a72a7cf117a4af501858c6422 100644 (file)
@@ -50,3 +50,9 @@ class PageVideoTranslationOptions(TranslationOptions):
 class PageAudioTranslationOptions(TranslationOptions):
 
     pass
+
+
+@register(PageLink)
+class PageLinkTranslationOptions(TranslationOptions):
+
+    pass
diff --git a/app/templates/core/inc/link.html b/app/templates/core/inc/link.html
new file mode 100644 (file)
index 0000000..2f9615b
--- /dev/null
@@ -0,0 +1,6 @@
+{% load mezzanine_tags %}
+<ul>
+{% for link in links %}
+  <li><img src="{{ link.link_type.picto.url }}" alt="{{ link.link_type.name }}"/><a href="{{ link.url }}" title="">{{ link.url }}</a></li>
+{% endfor %}
+</ul>
index 8820e006aac0e8fcd9b8d5b6699684438749cf6a..d56a6ef7180efcfb9c8ab4f731bbf14139c52155 100644 (file)
   {% endwith %}
 {% endblock %}
 
+{% block page_link %}
+{% with page.custompage.links.all as links %}
+  {% if links %}
+    {% include 'core/inc/link.html' %}
+  {% endif %}
+{% endwith %}
+{% endblock %}
+
 {% block page_sub_content %}
    {% with page.custompage.blocks.all as blocks %}
      {% include "core/inc/block.html" %}
index e0a062d490a39f1c722235a0a0515ee0a412151f..a1c57863acaf3d7a61256b6dcf1632f86e27a401 100644 (file)
@@ -65,6 +65,8 @@
         {% endblock %}
         {% block page_video %}
         {% endblock %}
+        {% block page_link %}
+        {% endblock %}
         {% block page_sub_content %}
         {% endblock %}
         {% block page_related_content %}