diff options
Diffstat (limited to 'program/management/commands')
-rw-r--r-- | program/management/commands/cleanup_defaultshow.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/program/management/commands/cleanup_defaultshow.py b/program/management/commands/cleanup_defaultshow.py new file mode 100644 index 0000000..2f6ccca --- /dev/null +++ b/program/management/commands/cleanup_defaultshow.py @@ -0,0 +1,21 @@ +from django.core.management.base import NoArgsCommand +from django.db import transaction + +from program.models import Show, TimeSlot, ProgramSlot + +class Command(NoArgsCommand): + @transaction.commit_manually + def handle_noargs(self, **options): + help = 'removes default shows without note' + + default_show = Show.objects.get(pk=1) + try: + TimeSlot.objects.filter(show=default_show, note__isnull=True).delete() + for programslot in ProgramSlot.objects.filter(show=default_show): + if programslot.timeslots.count() == 0: + programslot.delete() + except: + transaction.rollback() + else: + transaction.commit() + |