def test_review_volunteer_w_conf(self):
        ''' when a specific conf has specific bids, check bid details'''
        volunteer = VolunteerFactory(
            submitted=True)
        interest = VolunteerInterestFactory(
            volunteer=self.volunteer
        )
        volunteer.profile.user_object.email = "*****@*****.**"
        volunteer.profile.user_object.save()
        prefs = ProfilePreferencesFactory(
            profile=volunteer.profile,
            in_hotel="Maybe",
            inform_about=True,
            show_hotel_infobox=True)
        login_as(self.privileged_user, self)
        response = self.client.get(
            self.url,
            {'conf_slug': self.volunteer.b_conference.conference_slug})

        nt.assert_equal(response.status_code, 200)
        nt.assert_true('Bid Information' in response.content)
        nt.assert_true(str(self.volunteer.number_shifts) in response.content)
        nt.assert_true(self.volunteer.background in response.content)
        nt.assert_true(self.volunteer.profile.display_name in response.content)
        nt.assert_true(interest.interest.interest in response.content)
        nt.assert_true(
            self.volunteer.profile.user_object.email in response.content)
        nt.assert_true(self.prefs.in_hotel in response.content)
        nt.assert_true("Needs Review" in response.content)
        nt.assert_true("Review" in response.content)
Esempio n. 2
0
 def setUp(self):
     self.client = Client()
     self.profile = ProfilePreferencesFactory(
         profile__purchase_email='*****@*****.**').profile
     self.privileged_user = ProfileFactory().user_object
     grant_privilege(self.privileged_user, 'Registrar')
     self.url = reverse('manage_users', urlconf='gbe.urls')
 def test_update_profile_no_display_name(self):
     pref = ProfilePreferencesFactory(profile__display_name="")
     url = reverse(self.view_name, urlconf='gbe.urls')
     login_as(pref.profile.user_object, self)
     response = self.client.get(url)
     self.assertContains(
         response, "%s %s" % (pref.profile.user_object.first_name,
                              pref.profile.user_object.last_name))
Esempio n. 4
0
    def test_get(self):
        profile = self.performer.contact
        ProfilePreferencesFactory(profile=profile)

        url = reverse(self.view_name, args=[profile.pk], urlconf="gbe.urls")
        login_as(self.privileged_user, self)
        response = self.client.get(url)
        nt.assert_equal(200, response.status_code)
Esempio n. 5
0
    def test_update_profile_post_invalid_form(self):
        profile = ProfilePreferencesFactory().profile

        url = reverse(self.view_name, urlconf='gbe.urls')
        login_as(profile, self)
        data = self.get_form(invalid=True)
        response = self.client.post(url, data=data, follow=True)
        self.assertTrue("Update Profile" in response.content)
        self.assertEqual(response.status_code, 200)
    def test_post_invalid_form(self):
        profile = self.performer.contact
        ProfilePreferencesFactory(profile=profile)

        url = reverse(self.view_name, args=[profile.pk], urlconf="gbe.urls")
        data = self.get_form(invalid=True)
        login_as(self.privileged_user, self)
        response = self.client.post(url, data=data)
        self.assertContains(response, 'There is an error on the form.')
Esempio n. 7
0
 def test_update_profile_how_heard(self):
     pref = ProfilePreferencesFactory(
         profile__how_heard="[u'Word of mouth']")
     url = reverse(self.view_name, urlconf='gbe.urls')
     login_as(pref.profile.user_object, self)
     response = self.client.get(url)
     self.assertTrue(
         '<input checked="checked" id="id_how_heard_6" name="how_heard" ' +
         'type="checkbox" value="Word of mouth" />' in response.content)
Esempio n. 8
0
 def setUp(self):
     self.client = Client()
     self.profile = ProfilePreferencesFactory(
         profile__purchase_email='*****@*****.**').profile
     self.troupe = TroupeFactory(contact=self.profile)
     self.member = PersonaFactory()
     self.troupe.membership.add(self.member)
     self.privileged_user = ProfileFactory().user_object
     grant_privilege(self.privileged_user, 'Registrar')
     self.url = reverse(self.view_name, urlconf='gbe.urls')
 def test_create_bad_profile(self):
     url = reverse(self.view_name, urlconf='gbe.urls')
     cptn_tinypants = ProfileFactory(display_name="", phone="")
     ProfilePreferencesFactory(profile=cptn_tinypants)
     login_as(cptn_tinypants.user_object, self)
     response = self.client.get(url, follow=True)
     self.assertRedirects(
         response, "%s?next=%s" %
         (reverse('profile_update', urlconf='gbe.urls'), url))
     assert_alert_exists(response, 'warning', 'Warning', no_profile_msg)
Esempio n. 10
0
    def test_post_invalid_form(self):
        profile = self.performer.contact
        ProfilePreferencesFactory(profile=profile)

        url = reverse(self.view_name, args=[profile.pk], urlconf="gbe.urls")
        data = self.get_form(invalid=True)
        login_as(self.privileged_user, self)
        response = self.client.post(url, data=data)
        nt.assert_true('Your Profile' in response.content)
        nt.assert_equal(200, response.status_code)
 def test_post_form_edit_exclude_unsubscribed(self):
     new_volunteer = ProfileFactory()
     data = self.get_edit_data()
     data['worker'] = new_volunteer.pk,
     data['role'] = 'Producer',
     ProfilePreferencesFactory(profile=new_volunteer,
                               send_schedule_change_notifications=False)
     login_as(self.privileged_profile, self)
     response = self.client.post(self.url, data=data, follow=True)
     self.assertEqual(0, len(mail.outbox))
 def test_update_profile_how_heard(self):
     pref = ProfilePreferencesFactory(
         profile__how_heard="[u'Word of mouth']")
     url = reverse(self.view_name, urlconf='gbe.urls')
     login_as(pref.profile.user_object, self)
     response = self.client.get(url)
     self.assertContains(
         response,
         '<input type="checkbox" name="how_heard" value="Word of mouth" ' +
         'id="id_how_heard_6" checked />',
         html=True)
Esempio n. 13
0
    def test_post_valid_form(self):
        profile = self.performer.contact
        ProfilePreferencesFactory(profile=profile)

        url = reverse(self.view_name, args=[profile.pk], urlconf="gbe.urls")
        data = self.get_form()
        login_as(self.privileged_user, self)
        response = self.client.post(url, data=data, follow=True)
        nt.assert_true(('http://testserver/profile/manage',
                        302) in response.redirect_chain)
        nt.assert_equal(200, response.status_code)
Esempio n. 14
0
 def test_pick_everyone_except_unsubscribed(self):
     ProfilePreferencesFactory(profile=self.context.teacher.contact,
                               send_bid_notifications=False)
     login_as(self.privileged_profile, self)
     data = {
         'everyone': "Everyone",
     }
     response = self.client.post(self.url, data=data, follow=True)
     self.assertNotContains(response,
                            self.context.teacher.contact.user_object.email)
     self.assertContains(response, group_filter_note)
Esempio n. 15
0
    def test_pick_everyone(self):
        second_context = ClassContext()
        ProfilePreferencesFactory(profile=second_context.teacher.contact)

        login_as(self.privileged_profile, self)
        data = {
            'everyone': "Everyone",
        }
        response = self.client.post(self.url, data=data, follow=True)
        for user in User.objects.exclude(username="******"):
            self.assertContains(response, user.email)
Esempio n. 16
0
 def test_exclude_unsubscribed(self):
     ProfilePreferencesFactory(profile=self.context.teacher.contact,
                               send_role_notifications=False)
     login_as(self.privileged_profile, self)
     data = {
         'email-select-conference': [self.context.conference.pk],
         'email-select-roles': self.role_list,
         'filter': True,
     }
     response = self.client.post(self.url, data=data, follow=True)
     self.assertNotContains(response,
                            self.context.teacher.contact.user_object.email)
Esempio n. 17
0
    def __init__(self,
                 profile=None,
                 bid=None,
                 event=None,
                 opportunity=None,
                 role=None):
        if not event:
            self.window = VolunteerWindowFactory()
            self.conference = self.window.day.conference
        else:
            self.conference = event.e_conference
            if not VolunteerWindow.objects.filter(
                    day__conference=self.conference).exists():
                self.window = VolunteerWindowFactory(
                    day__conference=self.conference)
            else:
                self.window = VolunteerWindow.objects.all().first()
        self.conf_day = self.window.day
        self.profile = profile or ProfileFactory()
        if not hasattr(self.profile, 'preferences'):
            ProfilePreferencesFactory(profile=self.profile)

        if bid is False:
            self.bid = None
        elif bid:
            self.bid = bid
            self.profile = self.bid.profile
        else:
            self.bid = VolunteerFactory(
                b_conference=self.conference,
                profile=self.profile)
        self.interest = VolunteerInterestFactory(
            volunteer=self.bid)
        self.event = event or ShowFactory(
            e_conference=self.conference)
        self.role = role or "Volunteer"
        self.room = RoomFactory()
        self.sched_event = SchedEventFactory(
            eventitem=self.event.eventitem_ptr,
            starttime=datetime.combine(self.window.day.day,
                                       self.window.start))
        ResourceAllocationFactory(
            event=self.sched_event,
            resource=LocationFactory(_item=self.room))
        EventLabelFactory(event=self.sched_event,
                          text="General")
        EventLabelFactory(event=self.sched_event,
                          text=self.conference.conference_slug)
        self.worker = WorkerFactory(_item=self.profile.workeritem,
                                    role=self.role)
        self.opportunity, self.opp_event = self.add_opportunity(opportunity)
        self.allocation = ResourceAllocationFactory(resource=self.worker,
                                                    event=self.opp_event)
Esempio n. 18
0
    def post_profile(self, redirect=None, form=None):
        profile = ProfilePreferencesFactory().profile

        url = reverse(self.view_name, urlconf='gbe.urls')
        if redirect:
            url = url + "?next=" + redirect
        login_as(profile, self)
        if not form:
            data = self.get_form()
        else:
            data = form
        response = self.client.post(url, data=data, follow=True)
        return response
 def test_exclude_unsubscribed(self):
     start_time = datetime.combine(
         datetime.now().date() + timedelta(days=1), time(0, 0, 0, 0))
     context = ClassContext(starttime=start_time)
     ProfilePreferencesFactory(profile=context.teacher.contact,
                               send_daily_schedule=False)
     num = schedule_email()
     self.assertEqual(0, num)
     queued_email = Email.objects.filter(
         status=2,
         subject=self.subject,
         from_email=settings.DEFAULT_FROM_EMAIL,
     )
     self.assertEqual(queued_email.count(), 0)
    def test_post_valid_form(self):
        profile = self.performer.contact
        ProfilePreferencesFactory(profile=profile)

        url = "%s?next=%s" % (reverse(
            self.view_name, args=[profile.pk],
            urlconf="gbe.urls"), reverse('manage_users', urlconf='gbe.urls'))
        data = self.get_form()
        login_as(self.privileged_user, self)
        response = self.client.post(url, data=data, follow=True)
        self.assertRedirects(response,
                             reverse('manage_users', urlconf='gbe.urls'))
        self.assertContains(response,
                            "Updated Profile: %s" % data['display_name'])
 def test_obey_email_preference(self):
     incomplete_act_context = ActTechInfoContext()
     incomplete_act_context.act.accepted = 3
     incomplete_act_context.act.save()
     act = incomplete_act_context.act
     ProfilePreferencesFactory(profile=act.performer.contact,
                               send_schedule_change_notifications=False)
     call_command("send_tech_reminder")
     queued_email = Email.objects.filter(
         status=2,
         subject="Reminder to Finish your Act Tech Info",
         from_email=settings.DEFAULT_FROM_EMAIL,
         )
     self.assertEqual(queued_email.count(), 0)
Esempio n. 22
0
 def test_draft_exclude_unsubscribed(self):
     second_bid = ClassFactory()
     ProfilePreferencesFactory(profile=second_bid.teacher.contact,
                               send_bid_notifications=False)
     login_as(self.privileged_profile, self)
     data = {
         'email-select-conference': [self.context.conference.pk],
         'email-select-bid_type': self.priv_list,
         'email-select-state': [0, 1, 2, 3, 4, 5],
         'filter': True,
     }
     response = self.client.post(self.url, data=data, follow=True)
     self.assertNotContains(response,
                            second_bid.teacher.contact.user_object.email)
    def test_get(self):
        profile = self.performer.contact
        ProfilePreferencesFactory(profile=profile)

        url = reverse(self.view_name, args=[profile.pk], urlconf="gbe.urls")
        login_as(self.privileged_user, self)
        response = self.client.get(url)
        self.assertContains(
            response,
            '<input type="submit" value="Update User Account" ' +
            'class="btn gbe-btn-primary">',
            html=True)
        self.assertContains(response, admin_note)
        self.assertContains(response, "<title>Update User Profile</title")
 def test_volunteer_changestate_gives_overbook_warning(self):
     ProfilePreferencesFactory(profile=self.volunteer.profile)
     context = VolunteerContext(
         profile=self.volunteer.profile)
     x, opp = context.add_opportunity()
     url = reverse(self.view_name,
                   args=[self.volunteer.pk],
                   urlconf='gbe.urls')
     login_as(self.privileged_user, self)
     data = {'conference': context.conference,
             'events': [opp.pk],
             'accepted': 3}
     response = self.client.post(url, data=data, follow=True)
     self.assertContains(response, "SCHEDULE_CONFLICT")
    def setUp(self):
        self.client = Client()
        self.performer = PersonaFactory()
        self.privileged_profile = ProfileFactory()
        self.privileged_user = self.privileged_profile.user_object
        grant_privilege(self.privileged_user, 'Volunteer Reviewers')

        self.volunteer = VolunteerFactory(
            submitted=True,
            profile__user_object__email="*****@*****.**")
        self.prefs = ProfilePreferencesFactory(
            profile=self.volunteer.profile,
            in_hotel="Maybe",
            inform_about=True,
            show_hotel_infobox=True)
        self.url = reverse(self.view_name, urlconf='gbe.urls')
Esempio n. 26
0
 def edit_volunteer(self, rank=5):
     clear_conferences()
     pref = ProfilePreferencesFactory()
     context = VolunteerContext(profile=pref.profile)
     add_window = context.add_window()
     url = reverse('volunteer_edit',
                   urlconf='gbe.urls',
                   args=[context.bid.pk])
     login_as(self.privileged_user, self)
     form = self.get_form(context, rank=rank)
     form['unavailable_windows'] = add_window.pk
     response = self.client.post(
         url,
         form,
         follow=True)
     return response, context
 def test_update_profile_email_settings(self):
     pref = ProfilePreferencesFactory(send_bid_notifications=False)
     url = reverse(self.view_name, urlconf='gbe.urls')
     login_as(pref.profile.user_object, self)
     response = self.client.get(url)
     self.assertContains(
         response,
         '<input type="checkbox" name="email_pref-send_daily_schedule" ' +
         'id="id_email_pref-send_daily_schedule" checked />',
         html=True)
     self.assertContains(
         response,
         '<input type="checkbox" name="email_pref-send_bid_notifications"' +
         ' id="id_email_pref-send_bid_notifications" />',
         html=True)
     self.assertContains(response, email_pref_note.replace("'", "&#x27;"))
 def test_volunteer_withdraw_sends_notification_fail(self):
     ProfilePreferencesFactory(profile=self.volunteer.profile)
     EmailTemplateSenderFactory(
         from_email="*****@*****.**",
         template__name='volunteer withdrawn',
         template__subject="test template {% url 'gbehome' %}"
     )
     url = reverse(self.view_name,
                   args=[self.volunteer.pk],
                   urlconf='gbe.urls')
     login_as(self.privileged_user, self)
     data = {'conference': self.volunteer.b_conference,
             'events': [],
             'accepted': 4}
     response = self.client.post(url, data=data, follow=True)
     self.assertContains(response,
                         bidder_email_fail_msg)
 def test_dont_send_today(self):
     EmailFrequency.objects.all().delete()
     incomplete_act_context = ActTechInfoContext()
     incomplete_act_context.act.accepted = 3
     incomplete_act_context.act.save()
     act = incomplete_act_context.act
     ProfilePreferencesFactory(profile=act.performer.contact)
     out = StringIO()
     call_command("send_tech_reminder", stdout=out)
     queued_email = Email.objects.filter(
         status=2,
         subject="Reminder to Finish your Act Tech Info",
         from_email=settings.DEFAULT_FROM_EMAIL,
         )
     self.assertEqual(queued_email.count(), 0)
     response = out.getvalue()
     self.assertIn('Today is day %s, and not a scheduled day.' % (
         day_of_week[datetime.now().weekday()][1]), response)
 def test_volunteer_changestate_gives_event_over_full_warning(self):
     ProfilePreferencesFactory(profile=self.volunteer.profile)
     context = StaffAreaContext(
         conference=self.volunteer.b_conference,
     )
     opp = context.add_volunteer_opp()
     context.book_volunteer(
         volunteer_sched_event=opp,
         volunteer=context.staff_lead)
     url = reverse(self.view_name,
                   args=[self.volunteer.pk],
                   urlconf='gbe.urls')
     login_as(self.privileged_user, self)
     data = {'conference': self.volunteer.b_conference,
             'events': [opp.pk],
             'accepted': 3}
     response = self.client.post(url, data=data, follow=True)
     self.assertContains(response, "OCCURRENCE_OVERBOOKED")