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 })
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() """ 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())
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
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} )
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
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})
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