admin.site.register(Artist, ArtistAdminDisplayable)
admin.site.register(Video, VideoAdminDisplayable)
admin.site.register(Audio, AudioAdminDisplayable)
+admin.site.register(Playlist)
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.2 on 2016-03-22 00:00
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('mezzanine_agenda', '0003_auto_20160309_1621'),
+ ('festival', '0009_auto_20160322_0021'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Playlist',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('title', models.CharField(max_length=512, verbose_name='title')),
+ ('description', models.TextField(blank=True, verbose_name='description')),
+ ('audios', models.ManyToManyField(blank=True, related_name='playlists', to='festival.Audio', verbose_name='audios')),
+ ('event', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='playlists', to='mezzanine_agenda.Event', verbose_name='event')),
+ ],
+ options={
+ 'abstract': False,
+ },
+ ),
+ ]
def get_absolute_url(self):
return reverse("festival-video-detail", kwargs={"slug": self.slug})
+
+
+class Playlist(BaseTitleModel):
+ """(Playlist description)"""
+
+ audios = models.ManyToManyField(Audio, verbose_name=_('audios'), related_name='playlists', blank=True)
+ event = models.ForeignKey(Event, related_name='playlists', verbose_name=_('event'), blank=True, null=True, on_delete=models.SET_NULL)
ADMIN_MENU_ORDER = (
(_("Content"), ("pages.Page", "blog.BlogPost", "mezzanine_agenda.Event",
- "festival.Artist", "festival.Video", "festival.Audio",
+ "festival.Artist", "festival.Video", "festival.Audio", "festival.Playlist",
"generic.ThreadedComment", (_("Media Library"), "fb_browse"),)),
(_("Site"), ("sites.Site", "redirects.Redirect", "conf.Setting")),
(_("Users"), ("auth.User", "auth.Group",)),