]> git.parisson.com Git - mezzo.git/commitdiff
Media: add shutter on home + video on media list but not audio for the moment...
authorEmilie <zawadzki@ircam.fr>
Sun, 9 Oct 2016 18:26:24 +0000 (20:26 +0200)
committerEmilie <zawadzki@ircam.fr>
Sun, 9 Oct 2016 18:26:24 +0000 (20:26 +0200)
14 files changed:
app/organization/media/migrations/0004_auto_20161007_1426.py
app/organization/media/migrations/0005_auto_20160930_1849.py
app/organization/media/urls.py
app/organization/media/views.py
app/organization/pages/admin.py
app/organization/pages/forms.py
app/organization/pages/migrations/0006_auto_20161007_1512.py [new file with mode: 0644]
app/organization/pages/migrations/0007_auto_20161007_1852.py [new file with mode: 0644]
app/organization/pages/models.py
app/organization/pages/translation.py
app/organization/pages/urls.py
app/organization/pages/views.py
app/templates/index.html
app/templates/media/media_list.html

index 6dec1a0515d070d900c493acdc86f9c333bfb60d..93e23b8232dfbcddc261a383fd555a649d7c127a 100644 (file)
@@ -10,7 +10,7 @@ class Migration(migrations.Migration):
 
     dependencies = [
         ('sites', '0002_alter_domain_unique'),
-        ('organization-media', '0003_auto_20160929_1835'),
+        ('organization-media', '0004_auto_20160930_1039'),
     ]
 
     operations = [
index 2aa0ec0c70edccac53ed8d7c40987b0d07f13da4..3020d9c87cb97ea46785d9e30ad9476c53169a12 100644 (file)
@@ -8,7 +8,7 @@ from django.db import migrations
 class Migration(migrations.Migration):
 
     dependencies = [
-        ('organization-media', '0004_auto_20160930_1039'),
+        ('organization-media', '0004_auto_20161007_1426'),
     ]
 
     operations = [
index 9787ed90eae889da2c2750c69c8a98d8f1a78f96..6fe87b468d6356d2cafcd62c97c7b8ae324a0965 100644 (file)
@@ -11,7 +11,7 @@ from organization.media.views import *
 
 
 urlpatterns = [
-    url(r'^media-list/$', MediaListView.as_view(), name="media"),
+    url(r'^media-list/$', MediaListView.as_view(), name="media-list"),
     url(r'^videos/$', VideoListView.as_view(), name="festival-video-list"),
     url(r'^videos/detail/(?P<slug>.*)/$', VideoDetailView.as_view(), name="festival-video-detail"),
     url(r'^videos/category/(?P<slug>.*)/$', VideoListCategoryView.as_view(), name="festival-video-list-category"),
index f982dac36799f28a327fb6e3322f36eb7fc2c54c..b447b6d529b6b8e9f7019ef7db589cccc106ea01 100644 (file)
@@ -1,11 +1,12 @@
 from django.shortcuts import render
-
+from collections import defaultdict
 from organization.media.models import *
 from organization.core.views import *
 from dal import autocomplete
 from dal_select2_queryset_sequence.views import Select2QuerySetSequenceView
 from mezzanine_agenda.models import Event
-from organization.magazine.models import Article, Topic, Brief
+from organization.agenda.models import EventVideo
+from organization.magazine.models import Article, Topic, Brief, ArticleVideo
 
 class VideoListView(ListView):
 
@@ -50,10 +51,10 @@ class MediaListView(ListView):
     context_object_name = 'media'
 
     def get_queryset(self):
-        audios = Audio.objects.all()
+        audios = Audio.objects.all()
         videos = Video.objects.all()
         media_list = [video for video in videos]
-        media_list += [audio for audio in audios]
+        media_list += [audio for audio in audios]
         media_list.sort(key=lambda x: x.created_at, reverse=True)
 
         return media_list
index ff35c3b7911d1d50414ad2be9019db3bfe9aa3c1..db5d01c086c78a3050ce008993cb775cf42016c2 100644 (file)
@@ -105,9 +105,18 @@ class DynamicContentHomeBodyInline(TabularDynamicInlineAdmin):
     form = DynamicContentHomeBodyForm
 
 
+class DynamicContentHomeMediaInline(TabularDynamicInlineAdmin):
+
+    model = DynamicContentHomeMedia
+    form = DynamicContentHomeMediaForm
+
+
 class HomeAdminDisplayable(BaseTranslationModelAdmin):
 
-    inlines = [DynamicContentHomeSliderInline, DynamicContentHomeBodyInline  ]
+    inlines = [ DynamicContentHomeSliderInline,
+                DynamicContentHomeMediaInline,
+                DynamicContentHomeBodyInline,
+                ]
 
 
 admin.site.register(CustomPage, CustomPageAdmin)
index ec1b91aa619af2cdca18665ddef7fff9330f6420..e82ada1f10ecc6d7864cd275230d5d1f777de6fb 100644 (file)
@@ -11,6 +11,7 @@ from organization.magazine.models import Article, Topic, Brief
 from organization.pages.models import CustomPage
 from organization.pages.models import *
 from organization.agenda.models import Event
+from organization.media.models import Audio, Video
 
 class DynamicContentHomeSliderForm(autocomplete.FutureModelForm):
 
@@ -47,6 +48,23 @@ class DynamicContentHomeBodyForm(autocomplete.FutureModelForm):
         fields = ('content_object',)
 
 
+class DynamicContentHomeMediaForm(autocomplete.FutureModelForm):
+
+    content_object = dal_queryset_sequence.fields.QuerySetSequenceModelField(
+        queryset=autocomplete.QuerySetSequence(
+            Audio.objects.all(),
+            Video.objects.all(),
+        ),
+        required=False,
+        widget=dal_select2_queryset_sequence.widgets.QuerySetSequenceSelect2('dynamic-content-home-media'),
+    )
+
+    class Meta:
+        model = DynamicContentHomeMedia
+        fields = ('content_object',)
+
+
+
 class DynamicContentPageForm(autocomplete.FutureModelForm):
 
     content_object = dal_queryset_sequence.fields.QuerySetSequenceModelField(
diff --git a/app/organization/pages/migrations/0006_auto_20161007_1512.py b/app/organization/pages/migrations/0006_auto_20161007_1512.py
new file mode 100644 (file)
index 0000000..40349e0
--- /dev/null
@@ -0,0 +1,40 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.10 on 2016-10-07 13:12
+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 = [
+        ('contenttypes', '0002_remove_content_type_name'),
+        ('organization-pages', '0005_dynamiccontentpage'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='DynamicContentHomeMedia',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('_order', mezzanine.core.fields.OrderField(null=True, verbose_name='Order')),
+                ('object_id', models.PositiveIntegerField(editable=False, null=True, verbose_name='related object')),
+                ('content_type', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType', verbose_name='content type')),
+                ('home', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='organization-pages.Home', verbose_name='home')),
+            ],
+            options={
+                'ordering': ('_order',),
+                'verbose_name': 'Media',
+            },
+        ),
+        migrations.AlterModelOptions(
+            name='dynamiccontenthomebody',
+            options={'ordering': ('_order',), 'verbose_name': 'Body'},
+        ),
+        migrations.AlterModelOptions(
+            name='dynamiccontenthomeslider',
+            options={'ordering': ('_order',), 'verbose_name': 'Slider'},
+        ),
+    ]
diff --git a/app/organization/pages/migrations/0007_auto_20161007_1852.py b/app/organization/pages/migrations/0007_auto_20161007_1852.py
new file mode 100644 (file)
index 0000000..1c865a4
--- /dev/null
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.10 on 2016-10-07 16:52
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organization-pages', '0006_auto_20161007_1512'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='dynamiccontenthomemedia',
+            name='home',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='dynamic_content_home_media', to='organization-pages.Home', verbose_name='home'),
+        ),
+    ]
index b33e78b24a0dd20c77f2d1c16347b01b1260f85d..02047b1928df026ea6d1a50ffebaba5f3a2fd8d9 100644 (file)
@@ -87,7 +87,7 @@ class DynamicContentHomeSlider(DynamicContent, Orderable):
     home = models.ForeignKey("home", verbose_name=_('home'), blank=True, null=True, on_delete=models.SET_NULL)
 
     class Meta:
-        verbose_name = 'Dynamic Content Home Slider'
+        verbose_name = 'Slider'
 
 
 class DynamicContentHomeBody(DynamicContent, Orderable):
@@ -95,7 +95,15 @@ class DynamicContentHomeBody(DynamicContent, Orderable):
     home = models.ForeignKey("home", verbose_name=_('home'), blank=True, null=True, on_delete=models.SET_NULL)
 
     class Meta:
-        verbose_name = 'Dynamic Content Home Body'
+        verbose_name = _('Body')
+
+
+class DynamicContentHomeMedia(DynamicContent, Orderable):
+
+    home = models.ForeignKey("home", verbose_name=_('home'), related_name='dynamic_content_home_media', blank=True, null=True, on_delete=models.SET_NULL)
+
+    class Meta:
+        verbose_name = 'Media'
 
 
 class Home(Displayable):
index 2b00ae34ebd8d81c237af8a2fed8d348a7bc423f..d6863648c449e6672840abd597c110df135a99cb 100644 (file)
@@ -11,13 +11,19 @@ class HomeTranslationOptions(TranslationOptions):
 
 
 @register(DynamicContentHomeSlider)
-class DynamicContentHomeSliderOptions(TranslationOptions):
+class DynamicContentHomeSliderTranslationOptions(TranslationOptions):
 
     pass
 
 
 @register(DynamicContentHomeBody)
-class DynamicContentHomeBodyOptions(TranslationOptions):
+class DynamicContentHomeBodyTranslationOptions(TranslationOptions):
+
+    pass
+
+
+@register(DynamicContentHomeMedia)
+class DynamicContentHomeMediaTranslationOptions(TranslationOptions):
 
     pass
 
index 559de3687edf8b14d15fbfedc56b408643259b78..a4aec058cec18d2c14c9ab7c3bca30cddcbfa33d 100644 (file)
@@ -14,6 +14,7 @@ urlpatterns = [
     url("^$", HomeView.as_view(), name="home"),
     url("^dynamic-content-home-slider/$", permission_required('home.can_edit')(DynamicContentHomeSliderView.as_view()), name='dynamic-content-home-slider'),
     url("^dynamic-content-home-body/$",  permission_required('home.can_edit')(DynamicContentHomeBodyView.as_view()), name='dynamic-content-home-body'),
+    url("^dynamic-content-home-media/$",  permission_required('page.can_edit')(DynamicContentHomeMediaView.as_view()), name='dynamic-content-home-media'),
     url("^dynamic-content-page/$",  permission_required('page.can_edit')(DynamicContentPageView.as_view()), name='dynamic-content-page'),
     url("^home/$", HomeView.as_view(), name='organization-home'),
     url("^newsletter/$", NewsletterView.as_view(), name='organization-newsletter'),
index e2bb796dc5f2bed76421e60da42ceda988957cac..384acf54dde402d2e312ba08d5e20645eb9eb702 100644 (file)
@@ -11,6 +11,8 @@ from organization.core.views import SlugMixin
 from organization.magazine.models import Article, Topic, Brief
 from organization.pages.models import Home
 from organization.agenda.models import Event
+from organization.media.models import Audio, Video
+
 
 class HomeView(SlugMixin, ListView):
 
@@ -84,6 +86,28 @@ class DynamicContentHomeBodyView(Select2QuerySetSequenceView):
 
         return qs
 
+
+class DynamicContentHomeMediaView(Select2QuerySetSequenceView):
+
+    def get_queryset(self):
+
+        videos = Video.objects.all()
+        audios = Audio.objects.all()
+
+        if self.q:
+            videos = videos.filter(title__icontains=self.q)
+            audios = audios.filter(title__icontains=self.q)
+
+        qs = autocomplete.QuerySetSequence(videos, audios,)
+
+        if self.q:
+            qs = qs.filter(title__icontains=self.q)
+
+        qs = self.mixup_querysets(qs)
+
+        return qs
+
+
 class NewsletterView(TemplateView):
 
     template_name = "pages/newsletter.html"
index 8dfe85ce8607abae9b339e635027a3ea59d0abf5..f1c8221defaef2b44458fe26e63a6a39f9d03a09 100644 (file)
       </li>
       <li class="home__menu-item">
           <a href="#" title="{% trans "Media" %}">{% trans "Medias" %}</a>
+          <div class="home__shutter">
+              <div class="home__shutter-content">
+                  <div class="container-fluid tal">
+                      {% include "media/inc/media_shutter.html" %}
+                  </div>
+                  <div><a href="{% url 'media-list' %}" title="">{% trans 'See more media >' %}</a></div>
+              </div>
+          </div>
       </li>
     </ul>
 
index 8eadaf47847ffecad06d421aac95042ba9dde37b..89718dcf7db6996e546d6627eadd07dcced3b753 100644 (file)
 {% endblock %}
 
 {% block page_content %}
-
+    {# not working for audio for the moment... #}
     {% for object in media %}
         {% with object|classname|lower as class_name %}
             {% with "media/"|add:class_name|add:"/inc/"|add:class_name|add:"_card.html" as template %}
                 {% include template %}
             {% endwith %}
         {% endwith %}
-        {{ m|classname }} : {{ m.created_at }} : {{ m.title }}
+        {{ object|classname }} : {{ object.created_at }} : {{ object.title }}
         <br>
     {% endfor %}