From c2cc8b3872005e56e15135aa51c15424c08227bc Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Mon, 27 Feb 2017 11:01:47 +0100 Subject: [PATCH] Full media update, not only on creation (fix #135) --- app/organization/media/models.py | 39 ++++++++++++-------------------- docker-compose.yml | 16 +++++++++++++ 2 files changed, 31 insertions(+), 24 deletions(-) diff --git a/app/organization/media/models.py b/app/organization/media/models.py index 404e9e96..640d3796 100644 --- a/app/organization/media/models.py +++ b/app/organization/media/models.py @@ -79,30 +79,21 @@ class Media(Displayable): if 'audio' in transcoded.mime_type: return 'audio' - -def create_media(instance, created, raw, **kwargs): - # Ignore fixtures and saves for existing courses. - - if not created or raw: - return - - q = pq(instance.get_html()) - sources = q('source') - - video = q('video') - if len(video): - if 'poster' in video[0].attrib.keys(): - instance.poster_url = video[0].attrib['poster'] - - for source in sources: - mime_type = source.attrib['type'] - transcoded = MediaTranscoded(media=instance, mime_type=mime_type) - transcoded.url = source.attrib['src'] - transcoded.save() - - instance.save() - -models.signals.post_save.connect(create_media, sender=Media, dispatch_uid='create_media') + def save(self, *args, **kwargs): + q = pq(self.get_html()) + sources = q('source') + video = q('video') + if len(video): + if 'poster' in video[0].attrib.keys(): + self.poster_url = video[0].attrib['poster'] + + super(Media, self).save(*args, **kwargs) + + for source in sources: + mime_type = source.attrib['type'] + transcoded, c = MediaTranscoded.objects.get_or_create(media=self, mime_type=mime_type) + transcoded.url = source.attrib['src'] + transcoded.save() class MediaTranscoded(models.Model): diff --git a/docker-compose.yml b/docker-compose.yml index 0e74afc7..c47f64df 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -71,3 +71,19 @@ nginx: - var links: - app + +cron: + image: panubo/cron + volumes: + - ./etc/crontab:/crontab + volumes_from: + - var + - app + - db + links: + - app + - db + environment: + - TZ=Europe/Paris + - SMTP_HOST=smtp.ircam.fr + - SMTP_PORT=25 -- 2.39.5