diff --git a/program/management/commands/update_programslots.py b/program/management/commands/update_programslots.py index f0cc59ddd228de94e6715ed6a425bba64410f2a7..6f7ec90a5e38963cc810f622e92f06f197a65162 100644 --- a/program/management/commands/update_programslots.py +++ b/program/management/commands/update_programslots.py @@ -2,23 +2,14 @@ from django.core.management.base import NoArgsCommand from program.models import ProgramSlot -from datetime import date +from datetime import datetime class Command(NoArgsCommand): help = 'update programslots by setting is_active' def handle_noargs(self, **options): - activated = 0 - deactivated = 0 - - for programslot in ProgramSlot.objects.all(): - programslot.is_active = programslot.until > date.today() - programslot.save() - - if programslot.is_active: - activated += 1 - else: - deactivated += 1 + deactivated = ProgramSlot.objects.filter(until__lt=datetime.now()).update(is_active=False) + activated = ProgramSlot.objects.filter(until__gt=datetime.now()).update(is_active=True) print "%s program slots activated, %s program slots de-activated" % (activated, deactivated) diff --git a/program/management/commands/update_shows.py b/program/management/commands/update_shows.py index a337f21c3dafbd74bf5ca8e297f9cb228a37113b..0dafb8837cb47a44bb6aff5f75e8398cc64c1f28 100644 --- a/program/management/commands/update_shows.py +++ b/program/management/commands/update_shows.py @@ -2,28 +2,14 @@ from django.core.management.base import NoArgsCommand from program.models import Show +from datetime import datetime + class Command(NoArgsCommand): help = 'update shows by setting is_active' def handle_noargs(self, **options): - activated = 0 - deactivated = 0 - - for show in Show.objects.exclude(pk=1): - for programslot in show.programslots.all(): - active_programslots = 0 - if programslot.is_active: - active_programslots += 1 - else: - active_programslots -= 1 - - show.is_active = active_programslots > 0 - show.save() - - if show.is_active: - activated += 1 - else: - deactivated += 1 + deactivated = Show.objects.exclude(id=1).filter(programslots__until__lt=datetime.now()).update(is_active=False) + activated = Show.objects.exclude(id=1).filter(programslots__until__gt=datetime.now()).distinct().update(is_active=True) print "%s shows activated, %s shows de-activated" % (activated, deactivated)