예제 #1
0
 def handle_regeneration(self, event):
     regenerate_css.apply_async(args=(event.pk,))
     self.stdout.write(
         self.style.SUCCESS(
             f"[{event.slug}] Event style was successfully regenerated."
         )
     )
예제 #2
0
    def form_valid(self, form):
        new_event = not bool(form.instance.pk)
        if not new_event:
            if not self.sform.is_valid():
                return self.form_invalid(form)

        ret = super().form_valid(form)

        if new_event:
            messages.success(
                self.request,
                _('Yay, a new event! Check these settings and configure a CfP and you\'re good to go!'
                  ))
            form.instance.log_action('pretalx.event.create',
                                     person=self.request.user,
                                     orga=True)
            EventPermission.objects.create(
                event=form.instance,
                user=self.request.user,
                is_orga=True,
            )
        else:
            self.sform.save()
            form.instance.log_action('pretalx.event.update',
                                     person=self.request.user,
                                     orga=True)
            messages.success(self.request,
                             _('The event settings have been saved.'))
        regenerate_css.apply_async(args=(form.instance.pk, ))
        return ret
예제 #3
0
    def form_valid(self, form):
        if not self.sform.is_valid():
            return self.form_invalid(form)
        result = super().form_valid(form)

        self.sform.save()
        form.instance.log_action('pretalx.event.update', person=self.request.user, orga=True)
        messages.success(self.request, _('The event settings have been saved.'))
        regenerate_css.apply_async(args=(form.instance.pk,))
        return result
예제 #4
0
    def ready(self):
        from pretalx.event.models import Event
        from pretalx.common.tasks import regenerate_css
        from django.db import connection, utils

        if Event._meta.db_table not in connection.introspection.table_names():
            # commands like `compilemessages` execute ready(), but do not
            # require a database to be present. Bail out early, if the Event
            # table has not been created yet.
            return

        try:
            for event in Event.objects.all():
                regenerate_css.apply_async(args=(event.pk, ))
        except (utils.OperationalError, utils.ProgrammingError):
            pass
예제 #5
0
    def handle(self, *args, **options):
        event = options.get('event')
        if event:
            try:
                event = Event.objects.get(slug__iexact=event)
            except Event.DoesNotExist:
                self.stdout.write(self.style.ERROR('This event does not exist.'))
                return
            regenerate_css.apply_async(args=(event.pk, ))
            self.stdout.write(self.style.SUCCESS(f'[{event.slug}] Event style was successfully regenerated.'))

        else:
            for es in Event_SettingsStore.objects.filter(key='agenda_css_file').order_by('-object__date_from'):
                event = Event.objects.get(pk=es.object_id)
                regenerate_css.apply_async(args=(event.pk, ))
                self.stdout.write(self.style.SUCCESS(f'[{event.slug}] Event style was successfully regenerated.'))