diff --git a/ietf/secr/meetings/forms.py b/ietf/secr/meetings/forms.py index 6942cce34..80b085c6e 100644 --- a/ietf/secr/meetings/forms.py +++ b/ietf/secr/meetings/forms.py @@ -1,4 +1,3 @@ -import datetime import re from django import forms @@ -130,44 +129,6 @@ class MeetingRoomForm(forms.ModelForm): model = Room exclude = ['resources'] -class NewSessionForm(forms.Form): - day = forms.ChoiceField(choices=SESSION_DAYS) - time = TimeChoiceField() - room = forms.ModelChoiceField(queryset=Room.objects.none()) - session = forms.CharField(widget=forms.HiddenInput) - note = forms.CharField(max_length=255, required=False, label='Special Note from Scheduler') - combine = forms.BooleanField(required=False, label='Combine with next session') - - # setup the timeslot options based on meeting passed in - def __init__(self,*args,**kwargs): - self.meeting = kwargs.pop('meeting') - super(NewSessionForm, self).__init__(*args,**kwargs) - - # attach session object to the form so we can use it in the template - self.session_object = Session.objects.get(id=self.initial['session']) - self.fields['room'].queryset = Room.objects.filter(meeting=self.meeting) - self.fields['time'].choices = get_times(self.meeting,self.initial['day']) - - def clean(self): - super(NewSessionForm, self).clean() - if any(self.errors): - return - cleaned_data = self.cleaned_data - time = cleaned_data['time'] - day = cleaned_data['day'] - room = cleaned_data['room'] - if cleaned_data['combine']: - # calculate datetime object from inputs, get current slot, feed to get_next_slot() - day_obj = self.meeting.get_meeting_date(int(day)-1) - hour = datetime.time(int(time[:2]),int(time[2:])) - time_obj = datetime.datetime.combine(day_obj,hour) - slot = TimeSlot.objects.get(meeting=self.meeting,time=time_obj,location=room) - next_slot = get_next_slot(slot) - if not next_slot: - raise forms.ValidationError('There is no next session to combine') - - return cleaned_data - class TimeSlotForm(forms.Form): day = forms.ChoiceField(choices=DAYS_CHOICES) time = forms.TimeField() diff --git a/ietf/secr/meetings/tests.py b/ietf/secr/meetings/tests.py index 536f7a0df..897ce6a5e 100644 --- a/ietf/secr/meetings/tests.py +++ b/ietf/secr/meetings/tests.py @@ -102,12 +102,9 @@ class SecrMeetingTestCase(TestCase): def test_edit_meeting(self): "Edit Meeting" - Meeting.objects.create(number=1, - type_id='ietf', - date=datetime.datetime(2014,7,20), - ) - url = reverse('ietf.secr.meetings.views.edit_meeting',kwargs={'meeting_id':1}) - post_data = dict(number='1',date='2014-07-20',city='Toronto', + meeting = make_meeting_test_data() + url = reverse('ietf.secr.meetings.views.edit_meeting',kwargs={'meeting_id':meeting.number}) + post_data = dict(number=meeting.number,date='2014-07-20',city='Toronto', days=7, idsubmit_cutoff_day_offset_00=13, idsubmit_cutoff_day_offset_01=20, @@ -119,9 +116,9 @@ class SecrMeetingTestCase(TestCase): attendees=1234, ) self.client.login(username="secretary", password="secretary+password") - response = self.client.post(url, post_data,follow=True) + response = self.client.post(url, post_data, follow=True) self.assertEqual(response.status_code, 200) - meeting = Meeting.objects.get(number=1) + meeting = Meeting.objects.get(number=meeting.number) self.assertEqual(meeting.city,'Toronto') self.assertEqual(meeting.attendees,1234) @@ -187,13 +184,6 @@ class SecrMeetingTestCase(TestCase): self.assertEqual(response.status_code, 302) self.assertEqual(len(outbox), mailbox_before + 1) - def test_meetings_select(self): - make_meeting_test_data() - url = reverse('ietf.secr.meetings.views.select',kwargs={'meeting_id':42,'schedule_name':'test-agenda'}) - self.client.login(username="secretary", password="secretary+password") - response = self.client.get(url) - self.assertEqual(response.status_code, 200) - def test_meetings_rooms(self): meeting = make_meeting_test_data() url = reverse('ietf.secr.meetings.views.rooms',kwargs={'meeting_id':42,'schedule_name':'test-agenda'}) @@ -370,31 +360,11 @@ class SecrMeetingTestCase(TestCase): session = slot.sessionassignments.filter(schedule=meeting.agenda).first().session self.assertEqual(session.status_id, 'canceled') - def test_meetings_select_group(self): - make_meeting_test_data() - url = reverse('ietf.secr.meetings.views.select_group',kwargs={'meeting_id':42,'schedule_name':'test-agenda'}) - self.client.login(username="secretary", password="secretary+password") - response = self.client.get(url) - self.assertEqual(response.status_code, 200) - q = PyQuery(response.content) - self.assertEqual(len(q("#id_scheduled_sessions")),1) - - def test_meetings_schedule(self): - meeting = make_meeting_test_data() - url = reverse('ietf.secr.meetings.views.schedule',kwargs={ - 'meeting_id':meeting.number, - 'schedule_name':meeting.agenda.name, - 'acronym':'mars' - }) - self.client.login(username="secretary", password="secretary+password") - response = self.client.get(url) - self.assertEqual(response.status_code, 200) - def test_meetings_session_edit(self): meeting = make_meeting_test_data() session = Session.objects.filter(meeting=meeting,group__acronym='mars').first() url = reverse('ietf.secr.meetings.views.session_edit', kwargs={'meeting_id':meeting.number,'schedule_name':meeting.agenda.name,'session_id':session.id}) - redirect_url = reverse('ietf.secr.meetings.views.select_group', kwargs={'meeting_id':meeting.number,'schedule_name':meeting.agenda.name}) + redirect_url = reverse('ietf.secr.meetings.views.sessions', kwargs={'meeting_id':meeting.number,'schedule_name':meeting.agenda.name}) self.client.login(username="secretary", password="secretary+password") response = self.client.get(url) self.assertEqual(response.status_code, 200) @@ -402,10 +372,6 @@ class SecrMeetingTestCase(TestCase): self.assertRedirects(response, redirect_url) session = Session.objects.get(id=session.id) self.assertEqual(session.agenda_note, 'TEST') - response = self.client.post(url, {'agenda_note':'TEST','submit':'Cancel'}) - self.assertRedirects(response, redirect_url) - session = Session.objects.get(id=session.id) - self.assertEqual(session.status.slug, 'canceled') # ---------------------- # Unit Tests diff --git a/ietf/secr/meetings/urls.py b/ietf/secr/meetings/urls.py index 0b5993b2d..7aa9a473a 100644 --- a/ietf/secr/meetings/urls.py +++ b/ietf/secr/meetings/urls.py @@ -12,18 +12,15 @@ urlpatterns = [ url(r'^(?P\d{1,6})/blue_sheet/generate/$', views.blue_sheet_generate), url(r'^(?P\d{1,6})/edit/$', views.edit_meeting), url(r'^(?P\d{1,6})/notifications/$', views.notifications), - url(r'^(?P\d{1,6})/(?P[A-Za-z0-9_\-]+)/$', views.select), + url(r'^(?P\d{1,6})/(?P[A-Za-z0-9_\-]+)/$', views.rooms), url(r'^(?P\d{1,6})/(?P[A-Za-z0-9_\-]+)/non_session/$', views.non_session), url(r'^(?P\d{1,6})/(?P[A-Za-z0-9_\-]+)/non_session/cancel/(?P\d{1,6})/$', views.non_session_cancel), url(r'^(?P\d{1,6})/(?P[A-Za-z0-9_\-]+)/non_session/edit/(?P\d{1,6})/$', views.non_session_edit), url(r'^(?P\d{1,6})/(?P[A-Za-z0-9_\-]+)/non_session/delete/(?P\d{1,6})/$', views.non_session_delete), url(r'^(?P\d{1,6})/(?P[A-Za-z0-9_\-]+)/rooms/$', views.rooms), - url(r'^(?P\d{1,6})/(?P[A-Za-z0-9_\-]+)/select/$', views.select_group), url(r'^(?P\d{1,6})/(?P[A-Za-z0-9_\-]+)/times/$', views.times), + url(r'^(?P\d{1,6})/(?P[A-Za-z0-9_\-]+)/sessions/$', views.sessions), url(r'^(?P\d{1,6})/(?P[A-Za-z0-9_\-]+)/times/delete/(?P