From: Guillaume Pellerin Date: Fri, 14 Oct 2016 10:17:15 +0000 (+0200) Subject: Fix playlist management, simplify and validate all playlist inclusions in various... X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=11683ff66d98ece446385840e36259141b1d401b;p=mezzo.git Fix playlist management, simplify and validate all playlist inclusions in various pages --- diff --git a/app/organization/__init__.py b/app/organization/__init__.py index efe892af..ac056e53 100644 --- a/app/organization/__init__.py +++ b/app/organization/__init__.py @@ -1,2 +1,2 @@ -__version__ = 0.1 +__version__ = 1.0 diff --git a/app/organization/agenda/admin.py b/app/organization/agenda/admin.py index 5a1bed38..23c67223 100644 --- a/app/organization/agenda/admin.py +++ b/app/organization/agenda/admin.py @@ -27,7 +27,7 @@ class EventImageInline(TabularDynamicInlineAdmin): model = EventImage -class EventPlaylistInline(StackedDynamicInlineAdmin): +class EventPlaylistInline(TabularDynamicInlineAdmin): model = EventPlaylist diff --git a/app/organization/agenda/migrations/0010_auto_20161014_0002.py b/app/organization/agenda/migrations/0010_auto_20161014_0002.py new file mode 100644 index 00000000..4a148aca --- /dev/null +++ b/app/organization/agenda/migrations/0010_auto_20161014_0002.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.10 on 2016-10-13 22:02 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-media', '0009_auto_20161013_2353'), + ('organization-agenda', '0009_auto_20161013_1631'), + ] + + operations = [ + migrations.RemoveField( + model_name='eventplaylist', + name='playlist_ptr', + ), + migrations.AddField( + model_name='eventplaylist', + name='playlistrelated_ptr', + field=models.OneToOneField(auto_created=True, default=1, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='organization-media.PlaylistRelated'), + preserve_default=False, + ), + ] diff --git a/app/organization/agenda/models.py b/app/organization/agenda/models.py index 288f90a3..8de24c7c 100644 --- a/app/organization/agenda/models.py +++ b/app/organization/agenda/models.py @@ -57,7 +57,7 @@ class EventLink(Link): verbose_name_plural = _("links") -class EventPlaylist(Playlist): +class EventPlaylist(PlaylistRelated): event = models.ForeignKey(Event, verbose_name=_('event'), related_name='playlists', blank=True, null=True, on_delete=models.SET_NULL) diff --git a/app/organization/job/models.py b/app/organization/job/models.py index 27274799..11fa9817 100644 --- a/app/organization/job/models.py +++ b/app/organization/job/models.py @@ -5,6 +5,7 @@ from mezzanine.core.models import Displayable from organization.core.models import * from organization.media.models import * + class JobResponse(models.Model): first_name = models.CharField(max_length=255, null=False, verbose_name=_('first name')) diff --git a/app/organization/magazine/migrations/0013_auto_20161013_2353.py b/app/organization/magazine/migrations/0013_auto_20161013_2353.py new file mode 100644 index 00000000..325e31a9 --- /dev/null +++ b/app/organization/magazine/migrations/0013_auto_20161013_2353.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.10 on 2016-10-13 21:53 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-media', '0009_auto_20161013_2353'), + ('organization-magazine', '0012_auto_20161013_1631'), + ] + + operations = [ + migrations.RemoveField( + model_name='articleplaylist', + name='playlist_ptr', + ), + migrations.AddField( + model_name='articleplaylist', + name='playlistrelated_ptr', + field=models.OneToOneField(auto_created=True, default=1, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='organization-media.PlaylistRelated'), + preserve_default=False, + ), + ] diff --git a/app/organization/magazine/models.py b/app/organization/magazine/models.py index b044f0a5..971ce7c2 100644 --- a/app/organization/magazine/models.py +++ b/app/organization/magazine/models.py @@ -12,7 +12,7 @@ from mezzanine.core.models import RichText, Displayable, Slugged from mezzanine.pages.models import Page from mezzanine.blog.models import BlogPost from organization.network.models import Department, PersonListBlock -from organization.media.models import Playlist +from organization.media.models import * from organization.core.models import * from organization.magazine.apps import * @@ -40,7 +40,7 @@ class ArticleImage(Image): order_with_respect_to = "article" -class ArticlePlaylist(Playlist): +class ArticlePlaylist(PlaylistRelated): article = models.ForeignKey(Article, verbose_name=_('article'), related_name='playlists', blank=True, null=True, on_delete=models.SET_NULL) diff --git a/app/organization/media/migrations/0009_auto_20161013_2353.py b/app/organization/media/migrations/0009_auto_20161013_2353.py new file mode 100644 index 00000000..70906f91 --- /dev/null +++ b/app/organization/media/migrations/0009_auto_20161013_2353.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.10 on 2016-10-13 21:53 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-media', '0008_auto_20161013_1810'), + ] + + operations = [ + migrations.CreateModel( + name='PlaylistRelated', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('playlist', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='organization-media.Playlist', verbose_name='playlist')), + ], + options={ + 'verbose_name': 'playlist', + 'verbose_name_plural': 'playlists', + }, + ), + migrations.AlterModelOptions( + name='mediatranscoded', + options={'verbose_name': 'media file', 'verbose_name_plural': 'media files'}, + ), + ] diff --git a/app/organization/media/migrations/0010_auto_20161014_0849.py b/app/organization/media/migrations/0010_auto_20161014_0849.py new file mode 100644 index 00000000..e0adf327 --- /dev/null +++ b/app/organization/media/migrations/0010_auto_20161014_0849.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.10 on 2016-10-14 06:49 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-media', '0009_auto_20161013_2353'), + ] + + operations = [ + migrations.AlterField( + model_name='playlist', + name='type', + field=models.CharField(choices=[('audio', 'audio'), ('video', 'video')], max_length=32, verbose_name='type'), + ), + ] diff --git a/app/organization/media/migrations/0011_auto_20161014_1136.py b/app/organization/media/migrations/0011_auto_20161014_1136.py new file mode 100644 index 00000000..f15256f7 --- /dev/null +++ b/app/organization/media/migrations/0011_auto_20161014_1136.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.10 on 2016-10-14 09:36 +from __future__ import unicode_literals + +from django.db import migrations +import mezzanine.core.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-media', '0010_auto_20161014_0849'), + ] + + operations = [ + migrations.AlterField( + model_name='mediatranscoded', + name='file', + field=mezzanine.core.fields.FileField(blank=True, max_length=1024, null=True, verbose_name='file'), + ), + ] diff --git a/app/organization/media/models.py b/app/organization/media/models.py index 1edb66ae..9c45315e 100644 --- a/app/organization/media/models.py +++ b/app/organization/media/models.py @@ -47,6 +47,7 @@ class Media(Displayable): return MEDIA_BASE_URL + self.external_id def get_html(self): + print(self.uri) r = requests.get(self.uri) return r.content @@ -78,15 +79,15 @@ models.signals.post_save.connect(create_media, sender=Media, dispatch_uid='creat class MediaTranscoded(models.Model): media = models.ForeignKey('Media', verbose_name=_('media'), related_name='transcoded') - file = FileField(_("file"), max_length=1024, upload_to="uploads/media/") + file = FileField(_("file"), max_length=1024, upload_to="uploads/media/", blank=True, null=True) url = models.URLField(_('URL'), max_length=1024, blank=True) mime_type = models.CharField(_('mime type'), max_length=64) preferred_mime_type = ['video/webm', 'audio/ogg'] class Meta: - verbose_name = "media" - verbose_name_plural = "medias" + verbose_name = "media file" + verbose_name_plural = "media files" def __str__(self): return self.url @@ -106,12 +107,15 @@ class MediaCategory(Slugged, Description): class Playlist(Displayable): """Playlist""" - type = models.CharField(_('type'), max_length=32, choices=PLAYLIST_TYPE_CHOICES, blank=True, null=True) + type = models.CharField(_('type'), max_length=32, choices=PLAYLIST_TYPE_CHOICES) class Meta: verbose_name = _('playlist') verbose_name_plural = _('playlists') + def __str__(self): + return ' '.join((self.title, '(' + self.type + ')')) + def get_absolute_url(self): return reverse("organization-playlist-detail", kwargs={"slug": self.slug}) @@ -125,3 +129,13 @@ class PlaylistMedia(models.Model): class Meta: verbose_name = _('media') verbose_name_plural = _('medias') + + +class PlaylistRelated(models.Model): + """Playlist inline""" + + playlist = models.ForeignKey(Playlist, verbose_name=_('playlist'), blank=True, null=True, on_delete=models.SET_NULL) + + class Meta: + verbose_name = _('playlist') + verbose_name_plural = _('playlists') diff --git a/app/organization/network/admin.py b/app/organization/network/admin.py index 1877178f..08a775a2 100644 --- a/app/organization/network/admin.py +++ b/app/organization/network/admin.py @@ -12,7 +12,7 @@ from organization.core.admin import * from organization.pages.admin import PageImageInline, PageBlockInline, PagePlaylistInline -class OrganizationPlaylistInline(StackedDynamicInlineAdmin): +class OrganizationPlaylistInline(TabularDynamicInlineAdmin): model = OrganizationPlaylist diff --git a/app/organization/network/migrations/0039_auto_20161014_0002.py b/app/organization/network/migrations/0039_auto_20161014_0002.py new file mode 100644 index 00000000..22b026d3 --- /dev/null +++ b/app/organization/network/migrations/0039_auto_20161014_0002.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.10 on 2016-10-13 22:02 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-media', '0009_auto_20161013_2353'), + ('organization-network', '0038_auto_20161013_1631'), + ] + + operations = [ + migrations.RemoveField( + model_name='organizationplaylist', + name='playlist_ptr', + ), + migrations.RemoveField( + model_name='personplaylist', + name='playlist_ptr', + ), + migrations.AddField( + model_name='organizationplaylist', + name='playlistrelated_ptr', + field=models.OneToOneField(auto_created=True, default=1, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='organization-media.PlaylistRelated'), + preserve_default=False, + ), + migrations.AddField( + model_name='personplaylist', + name='playlistrelated_ptr', + field=models.OneToOneField(auto_created=True, default=1, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='organization-media.PlaylistRelated'), + preserve_default=False, + ), + ] diff --git a/app/organization/network/models.py b/app/organization/network/models.py index 01bf36a1..333fd0ad 100644 --- a/app/organization/network/models.py +++ b/app/organization/network/models.py @@ -125,7 +125,7 @@ class Organization(Named, Address, URL, AdminThumbRelatedMixin): super(Organization, self).save() -class OrganizationPlaylist(Playlist): +class OrganizationPlaylist(PlaylistRelated): organization = models.ForeignKey(Organization, verbose_name=_('organization'), related_name='playlists', blank=True, null=True, on_delete=models.SET_NULL) @@ -268,7 +268,7 @@ class Person(Displayable, AdminThumbMixin): super(Person, self).save(*args, **kwargs) -class PersonPlaylist(Playlist): +class PersonPlaylist(PlaylistRelated): person = models.ForeignKey(Person, verbose_name=_('person'), related_name='playlists', blank=True, null=True, on_delete=models.SET_NULL) diff --git a/app/organization/pages/admin.py b/app/organization/pages/admin.py index cb04bfee..9e346c0b 100644 --- a/app/organization/pages/admin.py +++ b/app/organization/pages/admin.py @@ -26,10 +26,9 @@ class PageImageInline(TabularDynamicInlineAdmin): model = PageImage -class PagePlaylistInline(StackedDynamicInlineAdmin): +class PagePlaylistInline(TabularDynamicInlineAdmin): model = PagePlaylist - exclude = ("short_url", "keywords", "description", "slug", ) class PageLinkInline(StackedDynamicInlineAdmin): diff --git a/app/organization/pages/migrations/0009_auto_20161014_0002.py b/app/organization/pages/migrations/0009_auto_20161014_0002.py new file mode 100644 index 00000000..dc4942cd --- /dev/null +++ b/app/organization/pages/migrations/0009_auto_20161014_0002.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.10 on 2016-10-13 22:02 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-media', '0009_auto_20161013_2353'), + ('organization-pages', '0008_auto_20161013_1631'), + ] + + operations = [ + migrations.RemoveField( + model_name='pageplaylist', + name='playlist_ptr', + ), + migrations.AddField( + model_name='pageplaylist', + name='playlistrelated_ptr', + field=models.OneToOneField(auto_created=True, default=1, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='organization-media.PlaylistRelated'), + preserve_default=False, + ), + ] diff --git a/app/organization/pages/models.py b/app/organization/pages/models.py index b9b8d5b3..20288617 100644 --- a/app/organization/pages/models.py +++ b/app/organization/pages/models.py @@ -33,7 +33,7 @@ class PageImage(Image): order_with_respect_to = "page" -class PagePlaylist(Playlist): +class PagePlaylist(PlaylistRelated): page = models.ForeignKey(Page, verbose_name=_('page'), related_name='playlists', blank=True, null=True, on_delete=models.SET_NULL) diff --git a/app/organization/projects/admin.py b/app/organization/projects/admin.py index b217e546..4c506f7b 100644 --- a/app/organization/projects/admin.py +++ b/app/organization/projects/admin.py @@ -26,7 +26,7 @@ class ProjectBlockInline(StackedDynamicInlineAdmin): model = ProjectBlock -class ProjectPlaylistInline(StackedDynamicInlineAdmin): +class ProjectPlaylistInline(TabularDynamicInlineAdmin): model = ProjectPlaylist diff --git a/app/organization/projects/migrations/0021_auto_20161014_0002.py b/app/organization/projects/migrations/0021_auto_20161014_0002.py new file mode 100644 index 00000000..a0d8cbee --- /dev/null +++ b/app/organization/projects/migrations/0021_auto_20161014_0002.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.10 on 2016-10-13 22:02 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-media', '0009_auto_20161013_2353'), + ('organization-projects', '0020_auto_20161013_1631'), + ] + + operations = [ + migrations.RemoveField( + model_name='projectplaylist', + name='playlist_ptr', + ), + migrations.AddField( + model_name='projectplaylist', + name='playlistrelated_ptr', + field=models.OneToOneField(auto_created=True, default=1, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='organization-media.PlaylistRelated'), + preserve_default=False, + ), + ] diff --git a/app/organization/projects/models.py b/app/organization/projects/models.py index 38d14adb..2b6525e8 100644 --- a/app/organization/projects/models.py +++ b/app/organization/projects/models.py @@ -79,7 +79,7 @@ class ProjectProgramType(Named): ordering = ['name',] -class ProjectPlaylist(Playlist): +class ProjectPlaylist(PlaylistRelated): project = models.ForeignKey(Project, verbose_name=_('project'), related_name='playlists', blank=True, null=True, on_delete=models.SET_NULL) diff --git a/app/templates/agenda/event_detail.html b/app/templates/agenda/event_detail.html index 0fe29e57..5a560eaf 100644 --- a/app/templates/agenda/event_detail.html +++ b/app/templates/agenda/event_detail.html @@ -110,26 +110,20 @@ {% endblock %} {% block page_audio %} - {% with event.audios.all as audios %} - {% if audios %} - {% include 'core/inc/audio.html' %} - {% endif %} + {% with event as object %} + {{ block.super }} {% endwith %} {% endblock %} {% block page_slider %} - {% with event.images.all|get_type:'page_slider' as slider_images %} - {% if slider_images %} - {% include 'core/inc/slider.html' %} - {% endif %} + {% with event as object %} + {{ block.super }} {% endwith %} {% endblock %} {% block page_video %} - {% with event.videos.all as videos %} - {% if videos %} - {% include 'core/inc/slider_video.html' %} - {% endif %} + {% with event as object %} + {{ block.super }} {% endwith %} {% endblock %} diff --git a/app/templates/core/inc/audio.html b/app/templates/core/inc/audio.html deleted file mode 100644 index 8c31aa45..00000000 --- a/app/templates/core/inc/audio.html +++ /dev/null @@ -1,34 +0,0 @@ -{% if audios %} - - -
    - - {% for audio in audios %} - -
  1. - {{ audio.title }} -
  2. - - {% comment %} - - {# audio.title #}
    - {# audio.open_source_mime_type #}
    - {# audio.closed_source_mime_type #}
    - {# audio.category #}
    - {# audio.media_id #}
    - {# audio.open_source_url #}
    - {# audio.closed_source_url #}
    - {# audio.poster_url #}
    - - - {% endcomment %} - - {% endfor %} - -
- -{% endif %} diff --git a/app/templates/core/inc/slider_video.html b/app/templates/core/inc/slider_video.html deleted file mode 100644 index 30ebaad2..00000000 --- a/app/templates/core/inc/slider_video.html +++ /dev/null @@ -1,21 +0,0 @@ -{% load mezzanine_tags %} -
- -
diff --git a/app/templates/core/inc/video.html b/app/templates/core/inc/video.html deleted file mode 100644 index 0f2df011..00000000 --- a/app/templates/core/inc/video.html +++ /dev/null @@ -1,18 +0,0 @@ -{% for video in videos %} - {% comment %} - {# video.title #}
- {# video.open_source_mime_type #}
- {# video.closed_source_mime_type #}
- {# video.category #}
- {# video.media_id #}
- {# video.open_source_url #}
- {# video.closed_source_url #}
- {# video.poster_url #}
- {% endcomment %} - - -{% endfor %} diff --git a/app/templates/media/inc/playlist_audio_detail.html b/app/templates/media/inc/playlist_audio_detail.html index a373955e..f622fa19 100644 --- a/app/templates/media/inc/playlist_audio_detail.html +++ b/app/templates/media/inc/playlist_audio_detail.html @@ -5,9 +5,11 @@
    {% for media in playlist.medias.all %}
  1. - {% for transcoded in media.media.transcoded.all %} - {{ media.media.title }} - {% endfor %} + {% with media.media as media %} + {% for transcoded in media.transcoded.all %} + {{ media.title }} + {% endfor %} + {% endwith %}
  2. {% endfor %}
diff --git a/app/templates/media/inc/playlist_video_detail.html b/app/templates/media/inc/playlist_video_detail.html index 7f638b66..7632f2d5 100644 --- a/app/templates/media/inc/playlist_video_detail.html +++ b/app/templates/media/inc/playlist_video_detail.html @@ -1,11 +1,12 @@ {% load mezzanine_tags keyword_tags i18n organization_tags %} {% for media in playlist.medias.all %} + {% with media.media as media %} {% if forloop.first %}
@@ -16,4 +17,5 @@ {% if forloop.last %} {% endif %} + {% endwith %} {% endfor %} diff --git a/app/templates/media/inc/playlist_video_slider.html b/app/templates/media/inc/playlist_video_slider.html new file mode 100644 index 00000000..eece8a21 --- /dev/null +++ b/app/templates/media/inc/playlist_video_slider.html @@ -0,0 +1,24 @@ +{% load mezzanine_tags %} +
+ +
diff --git a/app/templates/pages/custompage.html b/app/templates/pages/custompage.html index cfb3b245..49c1f476 100644 --- a/app/templates/pages/custompage.html +++ b/app/templates/pages/custompage.html @@ -1,20 +1,6 @@ {% extends "pages/page.html" %} {% load i18n mezzanine_tags keyword_tags pages_tags organization_tags %} -{% block meta_title %}{{ page.meta_title }}{% endblock %} - -{% block meta_keywords %}{% metablock %} -{% keywords_for page as keywords %} -{% for keyword in keywords %} - {% if not forloop.first %}, {% endif %} - {{ keyword }} -{% endfor %} -{% endmetablock %}{% endblock %} - -{% block meta_description %}{% metablock %} -{{ page.description }} -{% endmetablock %}{% endblock %} - {% block page_class %} custompage {% endblock %} @@ -66,35 +52,21 @@ {% endblock %} -{% block page_link %} - {% with page.custompage.links.all as links %} - {% if links %} - {% include 'core/inc/link.html' %} - {% endif %} - {% endwith %} -{% endblock %} - {% block page_audio %} - {% with page.custompage.audios.all as audios %} - {% if audios %} - {% include 'core/inc/audio.html' %} - {% endif %} + {% with page.custompage as object %} + {{ block.super }} {% endwith %} {% endblock %} {% block page_slider %} - {% with page.custompage.images.all|get_type:'page_slider' as slider_images %} - {% if slider_images %} - {% include 'core/inc/slider.html' %} - {% endif %} - {% endwith %} + {% with page.custompage as object %} + {{ block.super }} + {% endwith %} {% endblock %} {% block page_video %} - {% with page.custompage.videos.all as videos %} - {% if videos %} - {% include 'core/inc/slider_video.html' %} - {% endif %} + {% with page.custompage as object %} + {{ block.super }} {% endwith %} {% endblock %} diff --git a/app/templates/pages/departmentpage.html b/app/templates/pages/departmentpage.html index f833a2eb..dd1523ff 100644 --- a/app/templates/pages/departmentpage.html +++ b/app/templates/pages/departmentpage.html @@ -1,20 +1,6 @@ -{% extends "pages/custompage.html" %} +{% extends "pages/page.html" %} {% load i18n mezzanine_tags keyword_tags pages_tags organization_tags %} -{% block meta_title %}{{ page.meta_title }}{% endblock %} - -{% block meta_keywords %}{% metablock %} -{% keywords_for page as keywords %} -{% for keyword in keywords %} - {% if not forloop.first %}, {% endif %} - {{ keyword }} -{% endfor %} -{% endmetablock %}{% endblock %} - -{% block meta_description %}{% metablock %} -{{ page.description }} -{% endmetablock %}{% endblock %} - {% block page_class %} department {% endblock %} @@ -59,26 +45,20 @@ {% endblock %} {% block page_audio %} - {% with page.departmentpage.audios.all as audios %} - {% if audios %} - {% include 'core/inc/audio.html' %} - {% endif %} + {% with page.departmentpage as object %} + {{ block.super }} {% endwith %} {% endblock %} {% block page_slider %} -{% with page.departmentpage.images.all|get_type:'page_slider' as slider_images %} - {% if slider_images %} - {% include 'core/inc/slider.html' %} - {% endif %} -{% endwith %} + {% with page.departmentpage as object %} + {{ block.super }} + {% endwith %} {% endblock %} {% block page_video %} - {% with page.departmentpage.videos.all as videos %} - {% if videos %} - {% include 'core/inc/slider_video.html' %} - {% endif %} + {% with page.departmentpage as object %} + {{ block.super }} {% endwith %} {% endblock %} diff --git a/app/templates/pages/page.html b/app/templates/pages/page.html index 1b927040..af1e55e6 100644 --- a/app/templates/pages/page.html +++ b/app/templates/pages/page.html @@ -70,17 +70,20 @@ {% endwith %} {% endblock %} {% block page_audio %} - {% with object.audios.all as audios %} - {% if audios %} - {% include 'core/inc/audio.html' %} - {% endif %} - {% endwith %} + {% for related in object.playlists.all %} + {% with related.playlist as playlist %} + {% if playlist.type == 'audio' %} + {% include 'media/inc/playlist_audio_detail.html' %} + {% endif %} + {% endwith %} + {% endfor %} {% endblock %} + {% block page_slider %} {% with object.images.all|get_type:'page_slider' as slider_images %} {% if slider_images %} @@ -88,13 +91,18 @@ {% endif %} {% endwith %} {% endblock %} + {% block page_video %} - {% with object.videos.all as videos %} - {% if videos %} - {% include 'core/inc/slider_video.html' %} - {% endif %} - {% endwith %} + {% for related in object.playlists.all %} + {% with related.playlist as playlist %} + {% if playlist.type == 'video' %} + {% include 'media/inc/playlist_video_slider.html' %} + {% endif %} + {% endwith %} + {% endfor %} {% endblock %} + + {% block page_person_list %} {% endblock %} {% block products %} diff --git a/app/templates/pages/teampage.html b/app/templates/pages/teampage.html index 3b70d116..b22e1097 100644 --- a/app/templates/pages/teampage.html +++ b/app/templates/pages/teampage.html @@ -1,20 +1,6 @@ -{% extends "pages/custompage.html" %} +{% extends "pages/page.html" %} {% load i18n mezzanine_tags keyword_tags pages_tags organization_tags %} -{% block meta_title %}{{ page.meta_title }}{% endblock %} - -{% block meta_keywords %}{% metablock %} -{% keywords_for page as keywords %} -{% for keyword in keywords %} - {% if not forloop.first %}, {% endif %} - {{ keyword }} -{% endfor %} -{% endmetablock %}{% endblock %} - -{% block meta_description %}{% metablock %} -{{ page.description }} -{% endmetablock %}{% endblock %} - {% block page_class %} department {% endblock %} @@ -75,30 +61,23 @@ {% endblock %} {% block page_audio %} - {% with page.teampage.audios.all as audios %} - {% if audios %} - {% include 'core/inc/audio.html' %} - {% endif %} + {% with page.teampage as object %} + {{ block.super }} {% endwith %} {% endblock %} {% block page_slider %} - {% with page.teampage.images.all|get_type:'page_slider' as slider_images %} - {% if slider_images %} - {% include 'core/inc/slider.html' %} - {% endif %} + {% with page.teampage as object %} + {{ block.super }} {% endwith %} {% endblock %} {% block page_video %} - {% with page.teampage.videos.all as videos %} - {% if videos %} - {% include 'core/inc/slider_video.html' %} - {% endif %} + {% with page.teampage as object %} + {{ block.super }} {% endwith %} {% endblock %} - {% block page_sub_content %} {% with page.teampage.blocks.all as blocks %} {% include "core/inc/block.html" %} diff --git a/app/templates/projects/project_detail.html b/app/templates/projects/project_detail.html index f5a81066..c2e5e182 100644 --- a/app/templates/projects/project_detail.html +++ b/app/templates/projects/project_detail.html @@ -91,27 +91,21 @@ {% endblock %} {% block page_audio %} - {% with project.audios.all as audios %} - {% if audios %} - {% include 'core/inc/audio.html' %} - {% endif %} - {% endwith %} + {% with project as object %} + {{ block.super }} + {% endwith %} {% endblock %} {% block page_slider %} - {% with project.images.all|get_type:'page_slider' as slider_images %} - {% if slider_images %} - {% include 'core/inc/slider.html' %} - {% endif %} + {% with project as object %} + {{ block.super }} {% endwith %} {% endblock %} {% block page_video %} - {% with project.videos.all as videos %} - {% if videos %} - {% include 'core/inc/slider_video.html' %} - {% endif %} - {% endwith %} + {% with project as object %} + {{ block.super }} + {% endwith %} {% endblock %} {% block page_sub_content %}