model = Featured
list_display = ('__unicode__',)
- filter_horizontal = ['events', 'videos', 'articles', 'pages', 'playlists']
+ filter_horizontal = ['events', 'videos', 'articles', 'pages', 'playlists', 'briefs']
admin.site.register(Featured, FeaturedAdmin)
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-07-11 10:00
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization magazine', '0006_auto_20160711_1200'),
+ ('featured', '0002_auto_20160707_1614'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='featured',
+ name='briefs',
+ field=models.ManyToManyField(blank=True, related_name='featured', to='organization magazine.Brief', verbose_name='briefs'),
+ ),
+ ]
events = models.ManyToManyField(Event, verbose_name=_('events'), related_name='featured', blank=True)
videos = models.ManyToManyField(Video, verbose_name=_('videos'), related_name='featured', blank=True)
playlists = models.ManyToManyField(Playlist, verbose_name=_('playlists'), related_name='featured', blank=True)
- playlists = models.ManyToManyField(Playlist, verbose_name=_('playlists'), related_name='featured', blank=True)
+ briefs = models.ManyToManyField(Brief, verbose_name=_('briefs'), related_name='featured', blank=True)
def __unicode__(self):
# -*- coding: utf-8 -*-
from mezzanine.pages.models import Page
-from mezzanine.blog.models import BlogPost
+#from mezzanine.blog.models import BlogPost
from mezzanine.template import Library
from mezzanine_agenda.models import Event
from mezzanine.conf import settings
featured = Featured.objects.filter(id=settings.HOME_FEATURED_ID)
if featured:
featured = featured[0]
- for post in featured.blogposts.all():
- featured_list.append(post)
+ for page in featured.pages.all():
+ featured_list.append(page)
+ for article in featured.articles.all():
+ featured_list.append(article)
+ for brief in featured.briefs.all():
+ featured_list.append(brief)
for video in featured.videos.all():
featured_list.append(video)
- for artist in featured.artists.all():
- featured_list.append(artist)
+ # for artist in featured.artists.all():
+ # featured_list.append(artist)
for playlist in featured.playlists.all():
featured_list.append(playlist)
shuffle(featured_list)
from mezzanine.core.admin import DisplayableAdmin
from organization.magazine.models import Brief
-
class BriefAdmin(admin.ModelAdmin):
model = Brief
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-07-11 10:00
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization magazine', '0003_auto_20160708_1236'),
+ ('organization magazine', '0004_auto_20160707_1544'),
+ ]
+
+ operations = [
+ ]
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-07-11 10:00
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization magazine', '0005_merge'),
+ ]
+
+ operations = [
+ migrations.AlterModelOptions(
+ name='article',
+ options={'verbose_name': 'article'},
+ ),
+ ]
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-07-11 12:16
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization magazine', '0006_auto_20160711_1200'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='brief',
+ name='local_content',
+ field=models.URLField(max_length=1000, verbose_name='local content'),
+ ),
+ migrations.AlterField(
+ model_name='brief',
+ name='local_content_en',
+ field=models.URLField(max_length=1000, null=True, verbose_name='local content'),
+ ),
+ migrations.AlterField(
+ model_name='brief',
+ name='local_content_fr',
+ field=models.URLField(max_length=1000, null=True, verbose_name='local content'),
+ ),
+ ]
class Brief(Displayable, RichText):
text_button = models.CharField(blank=True, max_length=150, null=False, verbose_name='text button')
- local_content = models.CharField(blank=True, max_length=1000, null=False, verbose_name='local content')
+ local_content = models.URLField(blank=False, max_length=1000, null=False, verbose_name='local content')
+
+ def get_absolute_url(self):
+ return self.local_content
class Meta:
verbose_name = _('brief')
@register(Brief)
-class AudioTranslationOptions(TranslationOptions):
+class BriefTranslationOptions(TranslationOptions):
fields = ('text_button', 'local_content')
_slash = "/" if settings.APPEND_SLASH else ""
urlpatterns = [
- # url(r'^article/$', ArticleListView.as_view(), name="magazine-article-list"),
- # url(r'^article/detail/(?P<slug>.*)/$', ArticleDetailView.as_view(), name="magazine-article-detail"),
-
url("^article/$", ArticleListView.as_view(), name="magazine-article-list"),
url("^article/detail/(?P<slug>.*)%s$" % _slash, ArticleDetailView.as_view(), name="magazine-article-detail"),
]
<div class="msry__sizer"></div>
{% for item in featured_list %}
<div class="last__media__entry msry__item">
- {% if item|get_class == 'BlogPost' %}
- {% with item as post %}
- {% include 'blog/includes/post_card.html' %}
- <a href="{% url 'blog_post_list' %}" class="btn btn-full">{% trans "More" context "apos" %} {% trans "articles" %}</a>
+ {% if item|get_class == 'Brief' %}
+ {% with item as brief %}
+ {% include 'magazine/brief/brief_detail.html' %}
{% endwith %}
- {% elif item|get_class == 'Artist' %}
- {% with item as artist %}
- {% include "festival/inc/artist_card.html" %}
- <a href="{% url 'festival-artist-list' %}" class="btn btn-full">{% trans "More" context "apos" %} {% trans "artists" %}</a>
+ {% elif item|get_class == 'Article' %}
+ {% with item as article %}
+ {% include "magazine/article/includes/post_card.html" %}
{% endwith %}
{% elif item|get_class == 'Video' %}
{% with item as video %}
<div class="article__item {% if not on_home %}msry__item {% endif %}">
<div class="article__item__inner">
<a {% if article.content|removetags:"p"|slice:"4" == 'http' %}href="{{ article.content|removetags:'p' }}" target="_blank"{% else %}href="{% url 'magazine-article-detail' article.slug %}"{% endif %} class="article__item__inner">
- {% if article.featured_image %}
- <figure class="article__item__img">
- <img src="{{ MEDIA_URL }}{% thumbnail article.featured_image 500 0 %}" alt="Article: {{ article.title }}">
- </figure>
- {% endif %}
<h3 class="article__item__name">
<span>
{{ article.title }}
</span>
</h3>
- {# <span class="article__item__date">{% trans "published on" %} {{ article.publish_date|date:"DATE_FORMAT" }}</span>#}
+ <p>
+ {{ article.description }}
+ </p>
+
+ {% if article.featured_image %}
+ <figure class="article__item__img">
+ <img src="{{ MEDIA_URL }}{% thumbnail article.featured_image 500 0 %}" alt="Article: {{ article.title }}">
+ </figure>
+ {% endif %}
</a>
</div>
</div>
--- /dev/null
+{% load i18n pages_tags mezzanine_tags %}
+<div class="brief__item {% if not on_home %}msry__item {% endif %}">
+ <div class="brief__item__inner">
+ <a target="_blank" href="{{ brief.local_content}}" class="brief__item__inner">
+ {% if brief.featured_image %}
+ <figure class="brief__item__img">
+ <img src="{{ MEDIA_URL }}{% thumbnail brief.featured_image 500 0 %}" alt="brief: {{ brief.title }}">
+ </figure>
+ {% endif %}
+ <h3 class="brief__item__name">
+ <span>
+ {{ brief.title }}
+ </span>
+ </h3>
+ <p>
+ {{ brief.description }}
+ </p>
+
+ </a>
+ <a href="{{ brief.local_content}}" class="btn btn-full">{{ brief.text_button }}</a>
+ </div>
+</div>