Exemple #1
0
 def test_vol_opp_present(self):
     vol_context = VolunteerContext()
     vol_context.sched_event.max_volunteer = 7
     vol_context.sched_event.save()
     vol_context.opp_event.set_locations([])
     grant_privilege(self.privileged_user, 'Volunteer Coordinator')
     login_as(self.privileged_user, self)
     self.url = reverse(self.view_name,
                        args=[
                            vol_context.conference.conference_slug,
                            vol_context.sched_event.pk
                        ],
                        urlconf='gbe.scheduling.urls')
     response = self.client.get(self.url, follow=True)
     self.assertContains(
         response, 'type="hidden" name="opp_event_id" value="%d"' %
         (vol_context.opportunity.pk))
     self.assertContains(
         response, 'type="hidden" name="opp_sched_id" value="%d"' %
         (vol_context.opp_event.pk))
     assert_option_state(response, vol_context.conf_day.pk,
                         vol_context.conf_day.day.strftime("%b. %-d, %Y"),
                         True)
     self.assertContains(response, 'name="max_volunteer" value="2"')
     self.assertContains(response, 'name="duration" value="1.0"')
     self.assertContains(response, "Display Staff", 2)
Exemple #2
0
 def test_authorized_user_get_default_room_preset(self):
     room = self.context.get_room()
     self.context.area.default_location = room
     self.context.area.save()
     login_as(self.privileged_user, self)
     response = self.client.get(self.url)
     self.assert_good_mode_form(response, self.context.area.title)
     assert_option_state(response, room.pk, room.name, True)
 def test_edit_no_music_rehearsal_ready(self):
     context = ActTechInfoContext(schedule_rehearsal=True)
     context.tech.confirm_no_music = True
     context.tech.save()
     url = reverse(self.view_name,
                   urlconf='gbe.urls',
                   args=[context.act.pk])
     login_as(context.performer.contact, self)
     response = self.client.get(url)
     assert_option_state(response, "1",
                         "No, I will not need an audio track", True)
Exemple #4
0
 def test_authorized_user_can_access(self):
     login_as(self.privileged_user, self)
     response = self.client.get(self.url)
     self.assertEqual(response.status_code, 200)
     self.assertNotContains(response, "Volunteer Management")
     self.assertContains(response, "Edit Staff Area Details")
     self.assertContains(response, self.context.area.title)
     self.assertContains(response, self.context.area.description)
     assert_option_state(response, self.context.staff_lead.profile.pk,
                         str(self.context.staff_lead.profile), True)
     self.assertContains(response, 'name="default_volunteers" value="7"')
 def check_second_stage(self, response, title, selected_rehearsal):
     self.assertContains(response, "Change Rehearsal")
     assert_option_state(
         response, str(selected_rehearsal.id),
         date_format(selected_rehearsal.starttime, "TIME_FORMAT"), True)
     self.assertContains(response, "Provide Technical Information")
     self.assertContains(response, title)
     self.assertContains(
         response, "Current Rehearsal Reservation: %s, at %s" %
         (str(selected_rehearsal),
          selected_rehearsal.starttime.strftime(GBE_DATETIME_FORMAT)))
Exemple #6
0
 def test_authorized_user_can_also_get_volunteer_mgmt(self):
     grant_privilege(self.privileged_user, 'Volunteer Coordinator')
     login_as(self.privileged_user, self)
     response = self.client.get(self.url, follow=True)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, "Volunteer Management")
     self.assertContains(response, "Save and Continue")
     assert_option_state(response, self.context.conf_day.pk,
                         self.context.conf_day.day.strftime("%b. %-d, %Y"),
                         True)
     self.assertContains(response, 'name="new_opp-max_volunteer" value="7"')
     self.assertContains(response, 'name="new_opp-duration" value="1.5"')
Exemple #7
0
 def test_authorized_user_get_w_child_events(self):
     target_event = VolunteerContext()
     self.context.add_opportunity()
     login_as(self.privileged_user, self)
     response = self.client.get(self.url)
     self.assert_good_mode_form(
         response,
         target_event.event.e_title,
         target_event.sched_event.start_time)
     assert_option_state(
         response,
         target_event.room.pk,
         target_event.room.name)
Exemple #8
0
 def test_edit_event_and_continue(self):
     grant_privilege(self.privileged_user, 'Volunteer Coordinator')
     login_as(self.privileged_user, self)
     data = self.edit_event()
     data['edit_event'] = "Save and Continue"
     response = self.client.post(
         self.url,
         data=data,
         follow=True)
     self.assertRedirects(
         response,
         "%s?worker_open=True" % self.url)
     assert_alert_exists(
         response,
         'success',
         'Success',
         'Occurrence has been updated.<br>%s, Start Time: %s 11:00 AM' % (
             data['e_title'],
             self.extra_day.day.strftime(GBE_DATE_FORMAT))
         )
     self.assertContains(response, data['e_title'])
     self.assertContains(response, data['e_description'])
     assert_option_state(
         response,
         self.extra_day.pk,
         self.extra_day.day.strftime(GBE_DATE_FORMAT),
         True)
     self.assertContains(
         response,
         '<input type="number" name="max_volunteer" value="3" min="0" ' +
         'required id="id_max_volunteer">',
         html=True)
     self.assertContains(
         response,
         '<input type="number" name="duration" value="2.5" min="0.5" ' +
         'max="12" step="any" required id="id_duration" />',
         html=True)
     self.assertContains(
         response,
         '<input type="checkbox" name="approval" ' +
         'id="id_approval" checked />',
         html=True)
     self.assertContains(
         response,
         '<option value="%d">%s - %s</option>' % (
             self.context.sched_event.pk,
             self.context.event.e_title,
             self.context.sched_event.start_time.strftime(
                 GBE_DATETIME_FORMAT)),
         html=True)
 def test_edit_act_techinfo_rehearsal_ready(self):
     context = ActTechInfoContext()
     rehearsal = context._schedule_rehearsal(context.sched_event)
     url = reverse(self.view_name,
                   urlconf='gbe.urls',
                   args=[context.act.pk])
     login_as(context.performer.contact, self)
     response = self.client.get(url)
     self.assertContains(response, "Set Rehearsal Time")
     assert_option_state(response, str(rehearsal.id),
                         date_format(rehearsal.starttime, "TIME_FORMAT"),
                         True)
     self.assertNotContains(response, "Provide Technical Information")
     self.assertNotContains(response,
                            'Advanced Technical Information (Optional)')
Exemple #10
0
 def test_edit_area_and_continue(self):
     grant_privilege(self.privileged_user, 'Volunteer Coordinator')
     login_as(self.privileged_user, self)
     data = self.edit_area()
     data['edit_event'] = "Save and Continue"
     response = self.client.post(self.url, data=data, follow=True)
     self.assertRedirects(response, "%s?volunteer_open=True" % self.url)
     assert_alert_exists(
         response, 'success', 'Success',
         'Staff Area has been updated.<br>Title: %s' % (data['title']))
     self.assertContains(response, data['title'])
     self.assertContains(response, data['description'])
     assert_option_state(response, self.privileged_user.profile.pk,
                         str(self.privileged_user.profile), True)
     self.assertContains(response, 'name="default_volunteers" value="3"')
Exemple #11
0
 def test_authorized_user_can_access_event(self):
     login_as(self.privileged_user, self)
     response = self.client.get(self.url)
     self.assertEqual(response.status_code, 200)
     self.assert_role_choice(response, "Staff Lead")
     self.assertNotContains(response, "Volunteer Management")
     self.assertContains(response, "Finish")
     self.assertContains(response, self.context.event.e_title)
     self.assertContains(response, self.context.event.e_description)
     assert_option_state(
         response, self.context.conf_day.pk,
         self.context.conf_day.day.strftime(GBE_DATE_FORMAT), True)
     self.assertContains(response, 'name="max_volunteer" value="7"')
     self.assertContains(response, 'name="duration" value="1.5"')
     assert_option_state(response, self.staff_lead.pk, str(self.staff_lead),
                         True)
Exemple #12
0
 def test_edit_event_and_continue(self):
     grant_privilege(self.privileged_user, 'Volunteer Coordinator')
     login_as(self.privileged_user, self)
     data = self.edit_event()
     data['edit_event'] = "Save and Continue"
     response = self.client.post(self.url, data=data, follow=True)
     self.assertRedirects(response, "%s?volunteer_open=True" % self.url)
     assert_alert_exists(
         response, 'success', 'Success',
         'Occurrence has been updated.<br>%s, Start Time: %s 11:00 AM' %
         (data['e_title'], self.extra_day.day.strftime(GBE_DATE_FORMAT)))
     self.assertContains(response, data['e_title'])
     self.assertContains(response, data['e_description'])
     assert_option_state(response, self.extra_day.pk,
                         self.extra_day.day.strftime(GBE_DATE_FORMAT), True)
     self.assertContains(response, 'name="max_volunteer" value="3"')
     self.assertContains(response, 'name="duration" value="2.5"')
 def test_edit_act_techinfo_with_rehearsal(self):
     context = ActTechInfoContext(schedule_rehearsal=True)
     url = reverse(self.view_name,
                   urlconf='gbe.urls',
                   args=[context.act.pk])
     login_as(context.performer.contact, self)
     response = self.client.get(url)
     assert_option_state(
         response, str(context.rehearsal.id),
         date_format(context.rehearsal.starttime, "TIME_FORMAT"), True)
     self.check_second_stage(response, context.act.tech.track_title,
                             context.rehearsal)
     self.assertContains(response,
                         'name="%d-booking_id"' % context.sched_event.pk)
     assert_option_state(response, "0", "Yes, I will upload an audio track",
                         True)
     self.assertNotContains(response,
                            'Advanced Technical Information (Optional)')
Exemple #14
0
 def test_authorized_user_get_right_rooms(self):
     not_this_room = RoomFactory()
     login_as(self.privileged_user, self)
     self.url = reverse(
         self.view_name,
         args=[self.context.opp_event.pk],
         urlconf='gbe.scheduling.urls')
     response = self.client.get(self.url)
     self.assertEqual(response.status_code, 200)
     self.assertContains(
         response,
         self.context.conf_day.day.strftime(GBE_DATE_FORMAT))
     self.assertNotContains(response, not_this_room.name)
     assert_option_state(
         response,
         self.context.room.pk,
         self.context.room.name,
         True)
Exemple #15
0
 def test_vol_is_booked(self):
     grant_privilege(self.privileged_user, 'Volunteer Coordinator')
     login_as(self.privileged_user, self)
     response = self.client.get(self.url, follow=True)
     self.assert_hidden_value(
         response,
         "id_alloc_id",
         "alloc_id",
         self.context.allocation.pk)
     assert_option_state(
         response,
         self.context.profile.pk,
         self.context.profile.display_name,
         True)
     self.assertContains(
         response,
         '<option value="Volunteer" selected>Volunteer</option>',
         2)
Exemple #16
0
 def test_vol_opp_present(self):
     self.context.area.default_room = self.room
     self.context.area.save()
     vol_opp = self.context.add_volunteer_opp()
     self.extra_day = ConferenceDayFactory(
         conference=self.context.conference,
         day=self.context.conf_day.day + timedelta(days=1))
     grant_privilege(self.privileged_user, 'Volunteer Coordinator')
     login_as(self.privileged_user, self)
     response = self.client.get(self.url, follow=True)
     self.assertContains(
         response,
         'name="opp_event_id" value="%d"' % (vol_opp.eventitem.event_id))
     self.assertContains(response,
                         'name="opp_sched_id" value="%d"' % (vol_opp.pk))
     assert_option_state(response, self.context.conf_day.pk,
                         self.context.conf_day.day.strftime("%b. %-d, %Y"),
                         True)
     self.assertContains(response, 'name="max_volunteer" value="7"')
     self.assertContains(response, "Display Staff", 2)
 def test_book_no_rehearsal_and_continue(self):
     context = ActTechInfoContext(schedule_rehearsal=True)
     context.act.tech.save()
     url = reverse(self.view_name,
                   urlconf='gbe.urls',
                   args=[context.act.pk])
     login_as(context.performer.contact, self)
     data = {'book_continue': "Book & Continue"}
     data['%d-rehearsal' % context.sched_event.pk] = -1
     alloc = ResourceAllocation.objects.get(
         event=context.rehearsal, ordering__class_id=context.act.pk)
     data['%d-booking_id' % context.sched_event.pk] = alloc.pk
     response = self.client.post(url, data)
     assert_alert_exists(response, 'success', 'Success',
                         rehearsal_remove_confirmation)
     self.assertNotContains(response, "Current Rehearsal Reservation")
     self.assertContains(response,
                         'name="%d-booking_id"' % context.sched_event.pk)
     self.assertContains(response, "Provide Technical Information")
     assert_option_state(response, "-1", "No rehearsal needed", True)
 def test_edit_act_techinfo_w_prop_settings(self):
     context = ActTechInfoContext(schedule_rehearsal=True)
     context.act.tech.prop_setup = "[u'I have props I will need set " + \
         "before my number']"
     context.act.tech.save()
     url = reverse(self.view_name,
                   urlconf='gbe.urls',
                   args=[context.act.pk])
     login_as(context.performer.contact, self)
     response = self.client.get(url)
     assert_option_state(
         response, str(context.rehearsal.id),
         date_format(context.rehearsal.starttime, "TIME_FORMAT"), True)
     self.check_second_stage(response, context.act.tech.track_title,
                             context.rehearsal)
     self.assertContains(
         response,
         '<input type="checkbox" name="prop_setup" value="I have props '
         'I will need set before my number" '
         'id="id_prop_setup_1" checked />',
         html=True)
Exemple #19
0
 def test_authorized_user_get_w_child_events_special(self):
     original_event = GenericEventFactory(type='Special')
     target_event = GenericEventFactory(type='Special')
     target_context = VolunteerContext(event=target_event)
     original_context = VolunteerContext(event=original_event)
     original_context.add_opportunity()
     url = reverse(
         self.view_name,
         args=[original_context.sched_event.pk],
         urlconf='gbe.scheduling.urls')
     login_as(self.privileged_user, self)
     response = self.client.get(url)
     self.assert_good_mode_form(
         response,
         target_context.event.e_title,
         target_context.sched_event.start_time)
     assert_option_state(
         response,
         target_context.room.pk,
         target_context.room.name)
     self.assertContains(response, target_event.e_title)
Exemple #20
0
 def test_authorized_user_can_access_event_w_parent(self):
     login_as(self.privileged_user, self)
     response = self.client.get(self.url)
     self.assertEqual(response.status_code, 200)
     self.assertNotContains(response, "Manage Volunteers")
     self.assertContains(response, "Finish")
     self.assertContains(response, self.context.opportunity.e_title)
     self.assertContains(response, self.context.opportunity.e_description)
     self.assertContains(
         response,
         '<option value="%d" selected>%s - %s</option>' % (
             self.context.sched_event.pk,
             self.context.event.e_title,
             self.context.sched_event.start_time.strftime(
                 GBE_DATETIME_FORMAT)),
         html=True)
     assert_option_state(
         response,
         self.context.conf_day.pk,
         self.context.conf_day.day.strftime(GBE_DATE_FORMAT),
         True)
 def test_book_rehearsal_and_continue(self):
     context = ActTechInfoContext(schedule_rehearsal=True)
     context.act.tech.prop_setup = "[u'I have props I will need set " + \
         "before my number']"
     context.act.tech.save()
     extra_rehearsal = context._schedule_rehearsal(context.sched_event)
     extra_rehearsal.starttime = extra_rehearsal.starttime - timedelta(
         hours=1)
     extra_rehearsal.save()
     url = reverse(self.view_name,
                   urlconf='gbe.urls',
                   args=[context.act.pk])
     login_as(context.performer.contact, self)
     data = {'book_continue': "Book & Continue"}
     data['%d-rehearsal' % context.sched_event.pk] = extra_rehearsal.pk
     alloc = ResourceAllocation.objects.get(
         event=context.rehearsal, ordering__class_id=context.act.pk)
     data['%d-booking_id' % context.sched_event.pk] = alloc.pk
     response = self.client.post(url, data)
     success_msg = "%s  Rehearsal Name:  %s, Start Time: %s" % (
         default_rehearsal_booked, str(extra_rehearsal),
         extra_rehearsal.starttime.strftime(GBE_DATETIME_FORMAT))
     assert_alert_exists(response, 'success', 'Success', success_msg)
     self.assertContains(response,
                         'name="%d-booking_id"' % context.sched_event.pk)
     self.check_second_stage(response, context.act.tech.track_title,
                             extra_rehearsal)
     self.assertContains(
         response,
         '<input type="checkbox" name="prop_setup" value="I have props '
         'I will need set before my number" '
         'id="id_prop_setup_1" checked />',
         html=True)
     alloc = ResourceAllocation.objects.filter(
         ordering__class_id=context.act.pk)
     self.assertEqual(alloc.count(), 2)
     assert_option_state(response, "0", "Yes, I will upload an audio track",
                         True)
     self.assertNotContains(response,
                            'Advanced Technical Information (Optional)')
    def assert_post_contents(self,
                             response,
                             volunteer_opp,
                             volunteer,
                             alloc,
                             notes,
                             role="Volunteer",
                             allocations=2):
        if volunteer == -1:
            assert_option_state(response, "", "---------", True)
        else:
            assert_option_state(response, str(volunteer.pk), str(volunteer),
                                True)
        assert_option_state(response, role, role, True)

        self.assertContains(response,
                            '<input type="hidden" name="alloc_id" value="' +
                            str(alloc.pk) + '" id="id_alloc_id" />',
                            html=True)
        self.assertContains(response,
                            '<input type="text" name="label" value="' + notes +
                            '" maxlength="100" id="id_label" />',
                            html=True)
        self.assertContains(
            response, '<form method="POST" action="%s' %
            (reverse('manage_workers',
                     urlconf='gbe.scheduling.urls',
                     args=[
                         volunteer_opp.eventitem.e_conference.conference_slug,
                         volunteer_opp.pk
                     ])))
 def test_book_rehearsal_and_continue_no_music(self):
     context = ActTechInfoContext(schedule_rehearsal=True)
     context.act.tech.prop_setup = "[u'I have props I will need set " + \
         "before my number']"
     context.act.tech.confirm_no_music = True
     context.act.tech.save()
     extra_rehearsal = context._schedule_rehearsal(context.sched_event)
     extra_rehearsal.starttime = extra_rehearsal.starttime - timedelta(
         hours=1)
     extra_rehearsal.save()
     url = reverse(self.view_name,
                   urlconf='gbe.urls',
                   args=[context.act.pk])
     login_as(context.performer.contact, self)
     data = {'book_continue': "Book & Continue"}
     data['%d-rehearsal' % context.sched_event.pk] = extra_rehearsal.pk
     alloc = ResourceAllocation.objects.get(
         event=context.rehearsal, ordering__class_id=context.act.pk)
     data['%d-booking_id' % context.sched_event.pk] = alloc.pk
     response = self.client.post(url, data)
     assert_option_state(response, "1",
                         "No, I will not need an audio track", True)
 def test_get_advanced(self):
     context = ActTechInfoContext(schedule_rehearsal=True)
     context.act.tech.confirm_no_music = True
     context.act.tech.mic_choice = mic_options[2][0]
     context.act.tech.prop_setup = "[u'I have props I will need set " + \
         "before my number']"
     context.act.tech.feel_of_act = "feel"
     context.act.tech.starting_position = "Onstage"
     context.act.tech.primary_color = "Red"
     context.act.tech.pronouns = "Me/Myself"
     context.act.tech.duration = timedelta(minutes=2)
     context.act.tech.introduction_text = "Yo this is an intro"
     context.act.tech.start_blackout = True
     context.act.tech.end_blackout = True
     context.act.tech.special_lighting_cue = "so special!"
     context.act.tech.save()
     url = reverse(self.view_name,
                   urlconf='gbe.urls',
                   args=[context.act.pk])
     login_as(context.performer.contact, self)
     response = self.client.get(url)
     self.assertContains(response,
                         'Advanced Technical Information (Optional)')
     assert_option_state(
         response, str(context.rehearsal.id),
         date_format(context.rehearsal.starttime, "TIME_FORMAT"), True)
     self.assertContains(response,
                         'name="%d-booking_id"' % context.sched_event.pk)
     self.assertContains(response,
                         '<input type="checkbox" name="start_blackout" ' +
                         'id="id_start_blackout" checked />',
                         html=True)
     self.assertContains(response,
                         '<input type="checkbox" name="end_blackout" ' +
                         'id="id_end_blackout" checked />',
                         html=True)
     self.assertContains(response, "so special!")
     assert_option_state(response, mic_options[2][0], mic_options[2][1],
                         True)
Exemple #25
0
    def test_create_area_w_all_vals_and_continue(self):
        grant_privilege(self.privileged_user, 'Volunteer Coordinator')
        login_as(self.privileged_user, self)
        data = self.edit_area()
        data['default_volunteers'] = 3
        data['staff_lead'] = self.privileged_user.profile.pk
        data['default_location'] = self.room.pk
        data['set_event'] = "More..."
        response = self.client.post(self.url, data=data, follow=True)
        new_area = StaffArea.objects.get(slug=data['slug'],
                                         conference=self.current_conference)
        self.assertRedirects(
            response,
            "%s?start_open=False" % reverse('edit_staff',
                                            urlconf='gbe.scheduling.urls',
                                            args=[new_area.id]))
        assert_alert_exists(
            response, 'success', 'Success',
            'Staff area has been created.<br>Title: %s' % (data['title']))
        assert_option_state(response, self.room.pk, str(self.room), True)
        assert_option_state(response, self.privileged_user.profile.pk,
                            str(self.privileged_user.profile), True)

        self.assertContains(response, 'name="default_volunteers" value="3"')
Exemple #26
0
 def test_review_special_role_already_cast(self):
     context = ActTechInfoContext(act_role="Hosted by...")
     response = self.get_act_w_roles(context.act)
     self.assertEqual(response.status_code, 200)
     assert_option_state(response, "Hosted by...", "Hosted by...", True)
Exemple #27
0
 def test_review_default_role_present(self):
     response = self.get_act_w_roles(self.act)
     self.assertEqual(response.status_code, 200)
     assert_option_state(response, "Regular Act", "Regular Act", False)
     assert_option_state(response, "Hosted by...", "Hosted by...", False)