model = ArticleImage
+class ArticleVideoInline(StackedDynamicInlineAdmin):
+
+ model = ArticleVideo
+
+
+class ArticleAudioInline(StackedDynamicInlineAdmin):
+
+ model = ArticleAudio
+
+
class ArticleAdmin(admin.ModelAdmin):
model = Article
filter_horizontal = ['categories',]
inlines = [ArticleImageInline,
ArticlePersonAutocompleteInlineAdmin,
- DynamicContentArticleInline]
+ DynamicContentArticleInline,
+ ArticleVideoInline,
+ ArticleAudioInline]
class BriefAdmin(admin.ModelAdmin): #OrderableTabularInline
content_object = dal_queryset_sequence.fields.QuerySetSequenceModelField(
queryset=autocomplete.QuerySetSequence(
Article.objects.all(),
- Event.objects.all()
+ Event.objects.all(),
+ CustomPage.objects.all()
),
required=False,
widget=dal_select2_queryset_sequence.widgets.QuerySetSequenceSelect2('dynamic-content-article'),
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-10-05 15:54
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization-media', '0003_auto_20160929_1835'),
+ ('organization-magazine', '0009_auto_20160928_1858'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='ArticleAudio',
+ fields=[
+ ('audio_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='organization-media.Audio')),
+ ('article', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='audios', to='organization-magazine.Article', verbose_name='article')),
+ ],
+ options={
+ 'abstract': False,
+ },
+ bases=('organization-media.audio',),
+ ),
+ migrations.CreateModel(
+ name='ArticleVideo',
+ fields=[
+ ('video_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='organization-media.Video')),
+ ('article', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='videos', to='organization-magazine.Article', verbose_name='article')),
+ ],
+ options={
+ 'abstract': False,
+ },
+ bases=('organization-media.video',),
+ ),
+ ]
from mezzanine.pages.models import Page
from mezzanine.blog.models import BlogPost
from organization.network.models import Department, PersonListBlock
+from organization.media.models import Audio, Video
from organization.core.models import *
order_with_respect_to = "article"
+class ArticleAudio(Audio):
+
+ article = models.ForeignKey(Article, verbose_name=_('article'), related_name='audios', blank=True, null=True, on_delete=models.SET_NULL)
+
+
+class ArticleVideo(Video):
+
+ article = models.ForeignKey(Article, verbose_name=_('article'), related_name='videos', blank=True, null=True, on_delete=models.SET_NULL)
+
+
class Brief(Displayable, RichText): #Orderable
text_button = models.CharField(blank=True, max_length=150, null=False, verbose_name=_('text button'))
class DynamicContentArticleTranslationOptions(TranslationOptions):
pass
+
+
+@register(ArticleAudio)
+class ArticleAudioTranslationOptions(TranslationOptions):
+
+ pass
+
+
+@register(ArticleVideo)
+class ArticleVideoTranslationOptions(TranslationOptions):
+
+ pass
articles = Article.objects.all()
events = Event.objects.all()
+ pages = CustomPage.objects.all()
if self.q:
articles = articles.filter(title__icontains=self.q)
events = events.filter(title__icontains=self.q)
+ pages = pages.filter(title__icontains=self.q)
- qs = autocomplete.QuerySetSequence(articles, events )
+ qs = autocomplete.QuerySetSequence(articles, events, pages)
if self.q:
# This would apply the filter on all the querysets
{% endwith %}
{% endblock %}
+{% block page_audio %}
+ {{ block.super }}
+{% endblock %}
+
+{% block page_video %}
+ {{ block.super }}
+{% endblock %}
+
{% block page_person_list %}
{% for article_custom_person_list_block_inline in article.article_person_list_block_inlines.all %}
{% with article_custom_person_list_block_inline.person_list_block as person_list_block %}