From c7c366fd412b123650c08dae5f257ff01526065f Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Thu, 4 Aug 2022 11:25:57 -0500 Subject: [PATCH] chore: remove session_purpose_demo mgmt command. Fixes #4290. (#4309) --- .../commands/session_purpose_demo.py | 91 ------------------- 1 file changed, 91 deletions(-) delete mode 100644 ietf/meeting/management/commands/session_purpose_demo.py diff --git a/ietf/meeting/management/commands/session_purpose_demo.py b/ietf/meeting/management/commands/session_purpose_demo.py deleted file mode 100644 index 624e89794..000000000 --- a/ietf/meeting/management/commands/session_purpose_demo.py +++ /dev/null @@ -1,91 +0,0 @@ -import datetime -import random - -from django.core.management.base import BaseCommand, CommandError - -from ietf.group.models import Group -from ietf.meeting.factories import RoomFactory, TimeSlotFactory, SessionFactory -from ietf.meeting.helpers import get_meeting -from ietf.meeting.models import Room, Session -from ietf.name.models import SessionPurposeName - - -class Command(BaseCommand): - help = 'Set up a demo of the session purpose updates' - - DEMO_PREFIX='PDemo' # used to identify things added by this command - - def add_arguments(self, parser): - parser.add_argument('--remove', action='store_true') - - def handle(self, *args, **options): - if options['remove']: - self.remove_demo() - else: - self.install_demo() - - def remove_demo(self): - self.stdout.write(f'Removing rooms with "{self.DEMO_PREFIX}" name prefix...\n') - Room.objects.filter(name__startswith=self.DEMO_PREFIX).delete() - self.stdout.write(f'Removing sessions with "{self.DEMO_PREFIX}" name prefix...\n') - Session.objects.filter(name__startswith=self.DEMO_PREFIX).delete() - - def install_demo(self): - # get meeting - try: - meeting = get_meeting(days=14) # matches how secr app finds meetings - except: - raise CommandError('No upcoming meeting to modify') - - # create rooms - self.stdout.write('Creating rooms...\n') - rooms = [ - RoomFactory(meeting=meeting, name=f'{self.DEMO_PREFIX} 1'), - RoomFactory(meeting=meeting, name=f'{self.DEMO_PREFIX} 2'), - RoomFactory(meeting=meeting, name=f'{self.DEMO_PREFIX} 3'), - ] - - # get all the timeslot types used by a session purpose - type_ids = set() - for purpose in SessionPurposeName.objects.filter(used=True): - type_ids.update(purpose.timeslot_types) - - # set up timeslots - self.stdout.write('Creating timeslots...\n') - for room in rooms: - for day in range(meeting.days): - date = meeting.get_meeting_date(day) - for n, type_id in enumerate(type_ids): - TimeSlotFactory( - type_id=type_id, - meeting=meeting, - location=room, - time=datetime.datetime.combine(date, datetime.time(10, 0, 0)) + datetime.timedelta(hours=n), - duration=datetime.timedelta(hours=1), - ) - - # set up sessions - self.stdout.write('Creating sessions...') - groups_for_session_purpose = { - purpose.slug: list( - Group.objects.filter( - type__features__session_purposes__contains=f'"{purpose.slug}"', - state_id='active', - ) - ) - for purpose in SessionPurposeName.objects.filter(used=True) - } - for purpose in SessionPurposeName.objects.filter(used=True): - for type_id in purpose.timeslot_types: - group=random.choice(groups_for_session_purpose[purpose.slug]) - SessionFactory( - meeting=meeting, - purpose=purpose, - type_id=type_id, - group=group, - name=f'{self.DEMO_PREFIX} for {group.acronym}', - status_id='schedw', - add_to_schedule=False, - ) - - self.stdout.write(f'\nRooms and sessions created with "{self.DEMO_PREFIX}" as name prefix\n') \ No newline at end of file