Beispiel #1
0
def volunteer_search(request):
    if request.method == 'POST':
        form = SearchVolunteerForm(request.POST)
        if form.is_valid():

            first_name = form.cleaned_data['first_name']
            last_name = form.cleaned_data['last_name']
            city = form.cleaned_data['city']
            state = form.cleaned_data['state']
            country = form.cleaned_data['country']
            organization = form.cleaned_data['organization']

            volunteer_list = search_volunteers(first_name, last_name, city,
                                               state, country, organization)
            return render(
                request, 'shift/volunteer_search.html', {
                    'form': form,
                    'has_searched': True,
                    'volunteer_list': volunteer_list
                })
    else:
        form = SearchVolunteerForm()
        volunteer_list = get_all_volunteers()

    return render(request, 'shift/volunteer_search.html', {
        'form': form,
        'has_searched': False,
        'volunteer_list': volunteer_list
    })
Beispiel #2
0
    def test_get_all_volunteers(self):
        # Tests get_all_volunteers()
        vol_list = get_all_volunteers()

        # test typical cases
        self.assertIsNotNone(vol_list)
        self.assertTrue(len(vol_list), 3)
        self.assertIn(self.v1, vol_list)
        self.assertIn(self.v2, vol_list)
        self.assertIn(self.v3, vol_list)
    def test_get_all_volunteers(self):
        # Tests get_all_volunteers()
        vol_list = get_all_volunteers()

        # test typical cases
        self.assertIsNotNone(vol_list)
        self.assertTrue(len(vol_list), 3)
        self.assertIn(self.v1, vol_list)
        self.assertIn(self.v2, vol_list)
        self.assertIn(self.v3, vol_list)
Beispiel #4
0
    def test_get_all_volunteers(self):
        """ Tests get_all_volunteers() """

        u1 = User.objects.create_user('John')
        u2 = User.objects.create_user('James')
        u3 = User.objects.create_user('George')

        v1 = Volunteer(
                        first_name="John",
                        last_name="Doe",
                        address="7 Alpine Street",
                        city="Maplegrove",
                        state="Wyoming",
                        country="USA",
                        phone_number="23454545",
                        email="*****@*****.**",
                        user=u1
                        )

        v2 = Volunteer(
                        first_name="James",
                        last_name="Doe",
                        address="7 Oak Street",
                        city="Elmgrove",
                        state="California",
                        country="USA",
                        phone_number="23454545",
                        email="*****@*****.**",
                        user=u2
                        )

        v3 = Volunteer(
                        id=999,
                        first_name="George",
                        last_name="Doe",
                        address="7 Elm Street",
                        city="Oakgrove",
                        state="California",
                        country="USA",
                        phone_number="23454545",
                        email="*****@*****.**",
                        user=u3
                        )

        v1.save()
        v2.save()
        v3.save()

        # test typical cases
        self.assertIsNotNone(get_all_volunteers())
Beispiel #5
0
def send_reminder():
    """
    Send reminder email for all shifts and volunteers
    days = 7 - one week reminder
    days = 1 - one day reminder
    A volunteer can specify days in the profile
    !This function should be run on the server once a day!
    """
    notifications_number = 0    
    for volunteer in get_all_volunteers():
        days = volunteer.reminder_days
        if days == 1:
            email_word = " tomorrow."
        else:
            email_word = " in " + str(days) + " days."
        v_id = volunteer.id
        shift_list = get_unlogged_shifts_by_volunteer_id(v_id)
        subject = "The Systers - VMS Volunteer Shift Reminder Mail"
        for shift in shift_list:
            date_shift = shift.date
            days_before_shift = date_shift - date.today()
            if days_before_shift.days == days:
                message = "Dear " + volunteer.first_name + \
                ",\n\nThis is your reminder that you have registered for the " + \
                shift.job.name + " job at the " + shift.job.event.name + \
                " event on " + str(shift.date) + \
                ".\nThe shift you signed up starts" + \
                email_word + \
                "\n\nShift Start Time: " + str(shift.start_time) + \
                "\nShift End Time: " + str(shift.end_time) + \
                "\n\nAddress: " + shift.address + \
                "\nVenue: " + shift.venue + \
                "\nCity: " + shift.city + \
                "\nState: " + shift.state + \
                "\nCountry: " + shift.country + \
                "\n\nThank you for registering!"
                send_mail(
                    subject,
                    message,
                    '*****@*****.**',
                    [volunteer.email],
                    fail_silently=False
                    )
                notifications_number += 1
                #print(message)
    return notifications_number
Beispiel #6
0
def volunteer_search(request):
    user = request.user
    admin = None

    try:
        admin = user.administrator
    except ObjectDoesNotExist:
        pass

    # check that an admin is logged in
    if not admin:
        return render(request, 'vms/no_admin_rights.html')
    else:
        if request.method == 'POST':
            form = SearchVolunteerForm(request.POST)
            if form.is_valid():

                first_name = form.cleaned_data['first_name']
                last_name = form.cleaned_data['last_name']
                city = form.cleaned_data['city']
                state = form.cleaned_data['state']
                country = form.cleaned_data['country']
                organization = form.cleaned_data['organization']

                volunteer_list = search_volunteers(
                        first_name,
                        last_name,
                        city,
                        state,
                        country,
                        organization
                        )
                return render(
                    request,
                    'shift/volunteer_search.html',
                    {'form': form, 'has_searched': True, 'volunteer_list': volunteer_list}
                    )
        else:
            form = SearchVolunteerForm()
            volunteer_list = get_all_volunteers()

        return render(
            request,
            'shift/volunteer_search.html',
            {'form': form, 'has_searched': False, 'volunteer_list': volunteer_list}
            )
Beispiel #7
0
def send_reminder():
    """
    Send reminder email for all shifts and volunteers
    days = 7 - one week reminder
    days = 1 - one day reminder
    A volunteer can specify days in the profile
    !This function should be run on the server once a day!
    """
    notifications_number = 0
    for volunteer in get_all_volunteers():
        days = volunteer.reminder_days
        if days == 1:
            email_word = " tomorrow."
        else:
            email_word = " in " + str(days) + " days."
        v_id = volunteer.id
        shift_list = get_future_shifts_by_volunteer_id(v_id)
        subject = "The Systers - VMS Volunteer Shift Reminder Mail"
        for shift in shift_list:
            date_shift = shift.date
            days_before_shift = date_shift - date.today()
            if days_before_shift.days == days:
                message = "Dear " + volunteer.first_name + \
                    ",\n\nThis is your reminder that you " \
                    "have registered for the " + \
                    shift.job.name + " job at the " + shift.job.event.name + \
                    " event on " + str(shift.date) + \
                    ".\nThe shift you signed up starts" + \
                    email_word + \
                    "\n\nShift Start Time: " + str(shift.start_time) + \
                    "\nShift End Time: " + str(shift.end_time) + \
                    "\n\nAddress: " + shift.address + \
                    "\nVenue: " + shift.venue + \
                    "\nCity: " + shift.city.name + \
                    "\nState: " + shift.state.name + \
                    "\nCountry: " + shift.country.name + \
                    "\n\nThank you for registering!"
                send_mail(subject,
                          message,
                          '*****@*****.**', [volunteer.email],
                          fail_silently=False)
                notifications_number += 1
                # print(message)
    return notifications_number
Beispiel #8
0
Datei: views.py Projekt: Ads7/vms
def volunteer_search(request):
    if request.method == 'POST':
        form = SearchVolunteerForm(request.POST)
        if form.is_valid():

            first_name = form.cleaned_data['first_name']
            last_name = form.cleaned_data['last_name']
            city = form.cleaned_data['city']
            state = form.cleaned_data['state']
            country = form.cleaned_data['country']
            organization = form.cleaned_data['organization']

            volunteer_list = search_volunteers(first_name, last_name, city, state, country, organization)
            return render(request, 'shift/volunteer_search.html', {'form' : form, 'has_searched' : True, 'volunteer_list' : volunteer_list})
    else:
        form = SearchVolunteerForm()
        volunteer_list = get_all_volunteers()

    return render(request, 'shift/volunteer_search.html', {'form' : form, 'has_searched' : False, 'volunteer_list' : volunteer_list})
Beispiel #9
0
 def get_context_data(self, **kwargs):
     context = super(VolunteerSearchView, self).get_context_data(**kwargs)
     context['volunteer_list'] = get_all_volunteers()
     context['has_searched'] = False
     return context
Beispiel #10
0
 def get_context_data(self, **kwargs):
     context = super(VolunteerSearchView, self).get_context_data(**kwargs)
     context['volunteer_list'] = get_all_volunteers()
     context['has_searched'] = False
     return context