]> git.parisson.com Git - mezzo.git/commitdiff
use agenda fork for extending event metadata, add playlist test
authorGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Wed, 9 Mar 2016 15:46:02 +0000 (16:46 +0100)
committerGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Wed, 9 Mar 2016 15:46:02 +0000 (16:46 +0100)
app/festival/admin.py
app/festival/migrations/0007_auto_20160309_1441.py [new file with mode: 0644]
app/festival/models.py
app/festival/templates/festival/playlist.html [new file with mode: 0644]
app/migrations/mezzanine_agenda/0003_auto_20160309_1621.py [new file with mode: 0644]
app/sandbox/local_settings.py
app/translations.py
conf/dev.yml
docker-compose.yml

index c80c7e7556fafc9590190d25d2c0bff1504415a6..65918868b1b293a388381ef3d4bed87e92f73d47 100644 (file)
@@ -14,16 +14,6 @@ from mezzanine.core.admin import DisplayableAdmin, OwnableAdmin
 from festival.models import *
 
 
-class FestivalEventInline(admin.StackedInline):
-    model = FestivalEvent
-    extra = 3
-
-
-class FestivalEventAdmin(EventAdmin):
-
-    inlines = [FestivalEventInline, ]
-
-
 class ArtistAdmin(admin.ModelAdmin):
 
     model = Artist
@@ -44,10 +34,6 @@ class ArtistAdminDisplayable(DisplayableAdmin):
     fieldsets = deepcopy(ArtistAdmin.fieldsets)
 
 
-admin.site.unregister(Event)
-admin.site.register(Event, FestivalEventAdmin)
-admin.site.register(EventCategory)
 admin.site.register(PageCategory)
-
 admin.site.register(Artist, ArtistAdminDisplayable)
 admin.site.register(Video, VideoAdminDisplayable)
diff --git a/app/festival/migrations/0007_auto_20160309_1441.py b/app/festival/migrations/0007_auto_20160309_1441.py
new file mode 100644 (file)
index 0000000..1713cb8
--- /dev/null
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('mezzanine_agenda', '0002_auto_20160224_1142'),
+        ('festival', '0006_auto_20160303_1442'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='festivalevent',
+            name='artists',
+        ),
+        migrations.RemoveField(
+            model_name='festivalevent',
+            name='category',
+        ),
+        migrations.RemoveField(
+            model_name='festivalevent',
+            name='event',
+        ),
+        migrations.AddField(
+            model_name='artist',
+            name='events',
+            field=models.ManyToManyField(related_name='artists', verbose_name='events', to='mezzanine_agenda.Event', blank=True),
+        ),
+        migrations.DeleteModel(
+            name='EventCategory',
+        ),
+        migrations.DeleteModel(
+            name='FestivalEvent',
+        ),
+    ]
index c7fe39b59a8af1c733ff8bc7ed745783b8a0b987..71c892a82ddf015eaab31c0f5b2630ea6db3d60c 100644 (file)
@@ -46,27 +46,6 @@ class BaseTitleModel(models.Model):
         return self.title
 
 
-class FestivalEvent(models.Model):
-    """Extensible event metadata"""
-
-    event = models.ForeignKey(Event, related_name='festival_events', verbose_name=_('festival event'), blank=True, null=True, on_delete=models.SET_NULL)
-    #eve_event = SpanningForeignKey(eve.models.EventVersion, related_name='festival_events', verbose_name=_('E-venement event'), blank=True, null=True, default=None)
-    eve_event_id = models.IntegerField(_('eve id'), blank=True, null=True)
-    category = models.ForeignKey('EventCategory', related_name='festival_events', verbose_name=_('category'), blank=True, null=True, on_delete=models.SET_NULL)
-    artists = models.ManyToManyField('Artist', related_name='metaevents', verbose_name=_('artists'), blank=True)
-    featured = models.BooleanField(_('featured'), default=False)
-    featured_image = FileField(_('featured image'), upload_to='images/events', max_length=1024, blank=True, format="Image")
-    featured_image_header = FileField(_('featured image header'), upload_to='images/events/headers', max_length=1024, blank=True, format="Image")
-    featured_image_description = models.TextField(_('featured image description'), blank=True)
-
-    class Meta(MetaCore):
-        verbose_name = _('festival event')
-        db_table = app_label + '_events'
-
-    def __unicode__(self):
-        return self.event.title
-
-
 class Artist(Displayable, RichText, AdminThumbMixin):
     """Artist"""
 
@@ -78,6 +57,7 @@ class Artist(Displayable, RichText, AdminThumbMixin):
     featured = models.BooleanField(_('featured'), default=False)
     photo_featured = FileField(_('photo featured'), upload_to='images/photos', max_length=1024, blank=True, format="Image")
     photo_featured_credits = models.CharField(_('photo featured credits'), max_length=255, blank=True, null=True)
+    events = models.ManyToManyField(Event, related_name='artists', verbose_name=_('events'), blank=True)
 
     search_fields = ("title", "bio")
 
@@ -118,13 +98,6 @@ class Video(Displayable, RichText):
         return reverse("festival-video-detail", kwargs={"slug": self.slug})
 
 
-class EventCategory(BaseNameModel):
-    """Event Category"""
-
-    class Meta(MetaCore):
-        verbose_name = _('event category')
-
-
 class PageCategory(BaseNameModel):
     """Page Category"""
 
diff --git a/app/festival/templates/festival/playlist.html b/app/festival/templates/festival/playlist.html
new file mode 100644 (file)
index 0000000..073ffda
--- /dev/null
@@ -0,0 +1,74 @@
+<html>
+  <head>
+    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
+  </head>
+<body>
+
+
+<audio id="audio" preload="auto" tabindex="0" controls="" >
+  <source id="primarysrc" src="http://www.archive.org/download/bolero_69/Bolero.mp3">
+  <source id="secondarysrc" src="http://www.archive.org/download/bolero_69/Bolero.ogg">
+  Your Fallback goes here
+</audio>
+
+
+<ul id="playlist">
+        <li class="active">
+            <a href="http://www.archive.org/download/bolero_69/Bolero.mp3" data-altsrc="http://www.archive.org/download/bolero_69/Bolero.ogg">
+                Ravel Bolero
+            </a>
+        </li>
+        <li>
+            <a href="http://www.archive.org/download/MoonlightSonata_755/Beethoven-MoonlightSonata.mp3" data-altsrc="http://www.archive.org/download/MoonlightSonata_755/Beethoven-MoonlightSonata.ogg">
+                Moonlight Sonata - Beethoven
+            </a>
+        </li>
+        <li>
+            <a href="http://www.archive.org/download/CanonInD_261/CanoninD.mp3" data-altsrc="http://www.archive.org/download/CanonInD_261/CanoninD.ogg">
+                Canon in D Pachabel
+            </a>
+        </li>
+    </ul>
+<script>
+var audio;
+var playlist;
+var tracks;
+var current;
+
+init();
+function init(){
+    current = 0;
+    audio = $('#audio');
+    playlist = $('#playlist');
+    tracks = playlist.find('li a');
+    len = tracks.length - 1;
+    audio[0].volume = .60;
+//    audio[0].play();
+    playlist.find('a').click(function(e){
+        e.preventDefault();
+        link = $(this);
+        current = link.parent().index();
+        run(link, audio[0]);
+    });
+    audio[0].addEventListener('ended',function(e){
+        current++;
+        if(current == len){
+            current = 0;
+            link = playlist.find('a')[0];
+        }else{
+            link = playlist.find('a')[current];
+        }
+        run($(link),audio[0]);
+    });
+}
+function run(link, player){
+    $(player).find('#primarysrc').attr('src', link.attr('href'));
+    $(player).find('#secondarysrc').attr('src', link.attr('data-altsrc'));
+    par = link.parent();
+    par.addClass('active').siblings().removeClass('active');
+    player.load();
+    player.play();
+}
+</script>
+</body>
+</html>
diff --git a/app/migrations/mezzanine_agenda/0003_auto_20160309_1621.py b/app/migrations/mezzanine_agenda/0003_auto_20160309_1621.py
new file mode 100644 (file)
index 0000000..51e65fe
--- /dev/null
@@ -0,0 +1,64 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.2 on 2016-03-09 15:21
+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 = [
+        ('mezzanine_agenda', '0002_auto_20160224_1142'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='EventCategory',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('name', models.CharField(max_length=512, verbose_name='name')),
+                ('description', models.TextField(blank=True, verbose_name='description')),
+            ],
+            options={
+                'verbose_name_plural': 'Event categories',
+                'verbose_name': 'Event category',
+            },
+        ),
+        migrations.AddField(
+            model_name='event',
+            name='external_id',
+            field=models.IntegerField(blank=True, null=True, verbose_name='external_id'),
+        ),
+        migrations.AddField(
+            model_name='event',
+            name='featured',
+            field=models.BooleanField(default=False, verbose_name='featured'),
+        ),
+        migrations.AddField(
+            model_name='event',
+            name='featured_image_description',
+            field=models.TextField(blank=True, verbose_name='featured image description'),
+        ),
+        migrations.AddField(
+            model_name='event',
+            name='featured_image_header',
+            field=mezzanine.core.fields.FileField(blank=True, max_length=1024, verbose_name='featured image header'),
+        ),
+        migrations.AddField(
+            model_name='event',
+            name='parent',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='children', to='mezzanine_agenda.Event', verbose_name='parent'),
+        ),
+        migrations.AlterField(
+            model_name='event',
+            name='allow_comments',
+            field=models.BooleanField(default=False, verbose_name='Allow comments'),
+        ),
+        migrations.AddField(
+            model_name='event',
+            name='category',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='events', to='mezzanine_agenda.EventCategory', verbose_name='category'),
+        ),
+    ]
index 8fbfbb645cbcb2dd11a67a034c3d2cfd72ab80f1..4f7634e8fef329dd1b0b3ca93d679ac30cd0d410 100644 (file)
@@ -82,7 +82,8 @@ ADMIN_MENU_ORDER = (
         "generic.ThreadedComment", (_("Media Library"), "fb_browse"),)),
     (_("Site"), ("sites.Site", "redirects.Redirect", "conf.Setting")),
     (_("Users"), ("auth.User", "auth.Group",)),
-    (_("Festival"), ("mezzanine_agenda.EventLocation", "festival.EventCategory", "PageCategory")),
+    (_("Festival"), ("mezzanine_agenda.EventLocation",
+        "mezzanine_agenda.EventCategory", "festival.PageCategory")),
 )
 
 SEARCH_MODEL_CHOICES = ()
index 016f557d95358f642496f16216a27734fae7bf77..794a7429c202cd22800b048dca54a1dbf9fe16d8 100644 (file)
@@ -10,11 +10,6 @@ class EventTranslationOptions(TranslationOptions):
     fields = ('title', 'content')
 
 
-@register(FestivalEvent)
-class MetaEventTranslationOptions(TranslationOptions):
-    pass
-
-
 @register(Artist)
 class ArtistTranslationOptions(TranslationOptions):
 
index 72e814b5eeb37cfddece0696bb5e8466875e93b3..8c8c9c2a1fbbbebfdcd891d7aeffff2503211351 100644 (file)
@@ -21,5 +21,8 @@
 
 app:
   command: /bin/sh deploy/start_app.sh --runserver
+  volumes:
+    - ./app/:/srv/app
+    - ./app/apps/mezzanine-agenda/:/srv/src/mezzanine-agenda  
   ports:
     - "9010:8000"
index c573b8c1702608ba3c148c86c41ffe7bade4bb77..202bae261448586e2852475ef2ef740aa57841ad 100644 (file)
@@ -38,17 +38,6 @@ db:
     - MYSQL_USER=manifeste
     - MYSQL_PASSWORD=Onukifsid7
 
-# pgdb:
-#   image: postgres
-#   volumes:
-#     - ./data/var/lib/postgresql/eve/data/:/var/lib/postgresql/data
-#   volumes_from:
-#     - data
-#   environment:
-#     - POSTGRES_PASSWORD=mysecretpassword
-#     - POSTGRES_USER=postgres
-#     - POSTGRES_DB=eve
-
 app:
   build: .
   command: /bin/sh deploy/start_app.sh