diff --git a/aircox/management/commands/diffusions.py b/aircox/management/commands/diffusions.py index 8e4b28b..e614e91 100755 --- a/aircox/management/commands/diffusions.py +++ b/aircox/management/commands/diffusions.py @@ -40,7 +40,7 @@ class Actions: items = schedule.diffusions_of_month(date, exclude_saved = True) count[0] += len(items) - # we can't bulk create because we ned signal processing + # we can't bulk create because we need signal processing for item in items: conflicts = item.get_conflicts() item.type = Diffusion.Type.unconfirmed \ diff --git a/aircox/settings.py b/aircox/settings.py index 00879b1..4861b32 100755 --- a/aircox/settings.py +++ b/aircox/settings.py @@ -17,6 +17,7 @@ ensure('AIRCOX_DEFAULT_USER_GROUPS', { 'change_sound', 'add_track', 'change_track', 'delete_track', 'add_tag', 'change_tag', 'delete_tag', + 'add_comment', 'edit_comment', 'delete_comment', ), # ensure user can log in using Wagtail 'Editors': None diff --git a/aircox/signals.py b/aircox/signals.py index 26f5c75..093ed6a 100755 --- a/aircox/signals.py +++ b/aircox/signals.py @@ -4,7 +4,7 @@ from django.contrib.auth.models import User, Group, Permission from django.contrib.contenttypes.models import ContentType from django.db.models import F from django.db.models.signals import post_save, pre_save, pre_delete, m2m_changed -from django.dispatch import receiver +from django.dispatch import receiver, Signal from django.utils import timezone as tz from django.utils.translation import ugettext as _, ugettext_lazy @@ -12,6 +12,8 @@ import aircox.models as models import aircox.utils as utils import aircox.settings as settings + + # Add a default group to a user when it is created. It also assigns a list # of permissions to the group if it is created. # diff --git a/aircox_cms/models.py b/aircox_cms/models.py index effa0f4..2b923e3 100755 --- a/aircox_cms/models.py +++ b/aircox_cms/models.py @@ -519,8 +519,6 @@ class Track(aircox.models.Track,Orderable): class DiffusionPage(Publication): - order_field = 'diffusion__start' - diffusion = models.OneToOneField( aircox.models.Diffusion, verbose_name = _('diffusion'), @@ -641,6 +639,9 @@ class DiffusionPage(Publication): def save(self, *args, **kwargs): if self.diffusion: + # force to sort by diffusion date in wagtail explorer + self.latest_revision_created_at = self.diffusion.start + # set publish_as if not self.pk: self.publish_as = self.diffusion.program.page diff --git a/aircox_cms/signals.py b/aircox_cms/signals.py index ee6ffbc..1a7c736 100755 --- a/aircox_cms/signals.py +++ b/aircox_cms/signals.py @@ -1,10 +1,11 @@ from django.db.models import Q from django.db.models.signals import post_save, pre_delete from django.dispatch import receiver +from django.utils import timezone as tz from django.utils.translation import ugettext as _, ugettext_lazy from django.contrib.contenttypes.models import ContentType -from wagtail.wagtailcore.models import Page, Site +from wagtail.wagtailcore.models import Page, Site, PageRevision import aircox.models as aircox import aircox_cms.models as models @@ -185,10 +186,16 @@ def diffusion_post_saved(sender, instance, created, *args, **kwargs): page = models.DiffusionPage.from_diffusion( instance, live = False ) - instance.program.page.add_child( + page = instance.program.page.add_child( instance = page ) + # because wagtail don't have custom order field in explorer + rev = PageRevision(page = page, + created_at = page.date - tz.timedelta(days = 365*5), + content_json = '{}') + rev.save() + @receiver(pre_delete, sender=aircox.Diffusion) def diffusion_pre_deleted(sender, instance, *args, **kwargs): clean_page_of(instance) diff --git a/aircox_cms/static/aircox_cms/css/theme.css b/aircox_cms/static/aircox_cms/css/theme.css index 1aa56ed..49958f5 100755 --- a/aircox_cms/static/aircox_cms/css/theme.css +++ b/aircox_cms/static/aircox_cms/css/theme.css @@ -222,3 +222,12 @@ main.detail { color: #616161; } +section.playlist .artist { + display: inline-block; + margin-right: 0.4em; +} +section.playlist .artist:after { + padding-left: 0.2em; + content: ':' +} +