Initialize Empty-Schedule with special sessions from previous meeting on creation. Fixes #1500. Commit ready for merge.
- Legacy-Id: 13588
This commit is contained in:
parent
356fa71a6a
commit
8a98ba2516
|
@ -50,9 +50,13 @@ def make_meeting_test_data(meeting=None):
|
|||
asname = RoomResourceName.objects.get(slug='audiostream')
|
||||
UrlResource.objects.create(name=asname, room=room, url='http://ietf{number}streaming.dnsalias.net/ietf/ietf{number}1.m3u'.format(number=meeting.number))
|
||||
|
||||
# another room
|
||||
# other rooms
|
||||
breakfast_room = Room.objects.create(meeting=meeting, name="Breakfast Room", capacity=40)
|
||||
breakfast_room.session_types.add("lead")
|
||||
break_room = Room.objects.create(meeting=meeting, name="Break Area", capacity=500)
|
||||
break_room.session_types.add("break")
|
||||
reg_room = Room.objects.create(meeting=meeting, name="Registration Area", capacity=500)
|
||||
reg_room.session_types.add("reg")
|
||||
|
||||
# slots
|
||||
session_date = meeting.date + datetime.timedelta(days=1)
|
||||
|
@ -65,6 +69,12 @@ def make_meeting_test_data(meeting=None):
|
|||
breakfast_slot = TimeSlot.objects.create(meeting=meeting, type_id="lead", location=breakfast_room,
|
||||
duration=datetime.timedelta(minutes=90),
|
||||
time=datetime.datetime.combine(session_date, datetime.time(7,0)))
|
||||
reg_slot = TimeSlot.objects.create(meeting=meeting, type_id="reg", location=reg_room,
|
||||
duration=datetime.timedelta(minutes=480),
|
||||
time=datetime.datetime.combine(session_date, datetime.time(9,0)))
|
||||
break_slot = TimeSlot.objects.create(meeting=meeting, type_id="break", location=break_room,
|
||||
duration=datetime.timedelta(minutes=90),
|
||||
time=datetime.datetime.combine(session_date, datetime.time(7,0)))
|
||||
# mars WG
|
||||
mars = Group.objects.get(acronym='mars')
|
||||
mars_session = Session.objects.create(meeting=meeting, group=mars,
|
||||
|
@ -91,6 +101,22 @@ def make_meeting_test_data(meeting=None):
|
|||
SchedTimeSessAssignment.objects.create(timeslot=breakfast_slot, session=iesg_session, schedule=schedule)
|
||||
# No breakfast on unofficial schedule
|
||||
|
||||
# Registration
|
||||
reg_session = Session.objects.create(meeting=meeting, group=Group.objects.get(acronym="secretariat"),
|
||||
name="Registration", attendees=250,
|
||||
requested_by=system_person, status_id="schedw",
|
||||
requested_duration=datetime.timedelta(minutes=480),
|
||||
scheduled=datetime.datetime.now(),type_id="reg")
|
||||
SchedTimeSessAssignment.objects.create(timeslot=reg_slot, session=reg_session, schedule=schedule)
|
||||
|
||||
# Break
|
||||
break_session = Session.objects.create(meeting=meeting, group=Group.objects.get(acronym="secretariat"),
|
||||
name="Morning Break", attendees=250,
|
||||
requested_by=system_person, status_id="schedw",
|
||||
requested_duration=datetime.timedelta(minutes=30),
|
||||
scheduled=datetime.datetime.now(),type_id="break")
|
||||
SchedTimeSessAssignment.objects.create(timeslot=break_slot, session=break_session, schedule=schedule)
|
||||
|
||||
meeting.agenda = schedule
|
||||
meeting.save()
|
||||
|
||||
|
|
|
@ -137,7 +137,7 @@ class ApiTests(TestCase):
|
|||
|
||||
def test_create_new_room(self):
|
||||
meeting = make_meeting_test_data()
|
||||
timeslots_before = meeting.timeslot_set.count()
|
||||
timeslots_before = meeting.timeslot_set.filter(type='session').count()
|
||||
url = urlreverse("ietf.meeting.ajax.timeslot_roomsurl", kwargs=dict(num=meeting.number))
|
||||
|
||||
post_data = { "name": "new room", "capacity": "50" , "resources": [], "session_types":["session"]}
|
||||
|
@ -153,7 +153,7 @@ class ApiTests(TestCase):
|
|||
self.assertEqual(r.status_code, 302)
|
||||
self.assertTrue(meeting.room_set.filter(name="new room"))
|
||||
|
||||
timeslots_after = meeting.timeslot_set.count()
|
||||
timeslots_after = meeting.timeslot_set.filter(type='session').count()
|
||||
# It's not clear that what that ajax function is doing is the right thing to do,
|
||||
# but it currently makes a new timeslot for any existing timeslot.
|
||||
# The condition tested below relies on the timeslots before this test all having different start and end times
|
||||
|
|
|
@ -777,7 +777,7 @@ class InterimTests(TestCase):
|
|||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.get('Content-Type'), "text/calendar")
|
||||
self.assertEqual(r.content.count('UID'), 5)
|
||||
self.assertEqual(r.content.count('UID'), 7)
|
||||
# check filtered output
|
||||
url = url + '?filters=mars'
|
||||
r = self.client.get(url)
|
||||
|
|
|
@ -83,6 +83,20 @@ class SecrMeetingTestCase(TestCase):
|
|||
response = self.client.post(url, post_data, follow=True)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(Meeting.objects.count(),count + 1)
|
||||
new_meeting = Meeting.objects.get(number=number)
|
||||
|
||||
# ensure new schedule is populated with specials sessions from previous meeting
|
||||
self.assertTrue(new_meeting.agenda)
|
||||
self.assertTrue(meeting.agenda.assignments.filter(timeslot__type='break').count() > 0)
|
||||
self.assertEqual(
|
||||
meeting.agenda.assignments.filter(timeslot__type='break').count(),
|
||||
new_meeting.agenda.assignments.filter(timeslot__type='break').count()
|
||||
)
|
||||
self.assertTrue(meeting.agenda.assignments.filter(timeslot__type='reg').count() > 0)
|
||||
self.assertEqual(
|
||||
meeting.agenda.assignments.filter(timeslot__type='reg').count(),
|
||||
new_meeting.agenda.assignments.filter(timeslot__type='reg').count()
|
||||
)
|
||||
|
||||
def test_edit_meeting(self):
|
||||
"Edit Meeting"
|
||||
|
|
|
@ -314,6 +314,9 @@ def add(request):
|
|||
meeting.session_request_lock_message = previous_meeting.session_request_lock_message
|
||||
meeting.save()
|
||||
|
||||
# copy special sessions from previous meeting
|
||||
build_nonsession(meeting,schedule)
|
||||
|
||||
# Create Physical new meeting directory and subdirectories
|
||||
make_materials_directories(meeting)
|
||||
|
||||
|
|
Loading…
Reference in a new issue