Beispiel #1
0
    def test_get_signed_up_events_for_volunteer(self):
        """ Uses events e1,e2, volunteers v1,v2,v3 and shift s1,s2,s3"""

        # volunteer 1 registers for 3 shifts belonging to two events - registers for s3 first to check if sorting is successful
        register(self.v1.id, self.s3.id)
        register(self.v1.id, self.s2.id)
        register(self.v1.id, self.s1.id)

        # volunteer 2 registers for 2 shifts, where s1 has no available slots
        register(self.v2.id, self.s1.id)
        register(self.v2.id, self.s3.id)

        event_list_for_vol_1 = get_signed_up_events_for_volunteer(self.v1.id)
        event_list_for_vol_2 = get_signed_up_events_for_volunteer(self.v2.id)
        event_list_for_vol_3 = get_signed_up_events_for_volunteer(self.v3.id)

        # tests for returned events, their order and duplication for volunteer 1
        self.assertEqual(len(event_list_for_vol_1), 2)
        self.assertIn(self.e1.name, event_list_for_vol_1)
        self.assertIn(self.e2.name, event_list_for_vol_1)
        self.assertEqual(event_list_for_vol_1[0], self.e1.name)
        self.assertEqual(event_list_for_vol_1[1], self.e2.name)

        # tests for returned events for volunteer 2
        self.assertEqual(len(event_list_for_vol_2), 1)
        self.assertIn(self.e2.name, event_list_for_vol_2)
        self.assertNotIn(self.e1.name, event_list_for_vol_2)

        # test for returned events for unregistered volunteer 3
        self.assertEqual(len(event_list_for_vol_3), 0)
        VolunteerShift.objects.all().delete()
Beispiel #2
0
    def test_get_signed_up_events_for_volunteer(self):
        """ Uses events e1,e2, volunteers v1,v2,v3 and shift s1,s2,s3"""

        # volunteer 1 registers for 3 shifts belonging to two events - registers for s3 first to check if sorting is successful
        register(self.v1.id, self.s3.id)
        register(self.v1.id, self.s2.id)
        register(self.v1.id, self.s1.id)

        # volunteer 2 registers for 2 shifts, where s1 has no available slots
        register(self.v2.id, self.s1.id)
        register(self.v2.id, self.s3.id)

        event_list_for_vol_1 = get_signed_up_events_for_volunteer(self.v1.id)
        event_list_for_vol_2 = get_signed_up_events_for_volunteer(self.v2.id)
        event_list_for_vol_3 = get_signed_up_events_for_volunteer(self.v3.id)

        # tests for returned events, their order and duplication for volunteer 1
        self.assertEqual(len(event_list_for_vol_1), 2)
        self.assertIn(self.e1.name, event_list_for_vol_1)
        self.assertIn(self.e2.name, event_list_for_vol_1)
        self.assertEqual(event_list_for_vol_1[0], self.e1.name)
        self.assertEqual(event_list_for_vol_1[1], self.e2.name)

        # tests for returned events for volunteer 2
        self.assertEqual(len(event_list_for_vol_2), 1)
        self.assertIn(self.e2.name, event_list_for_vol_2)
        self.assertNotIn(self.e1.name, event_list_for_vol_2)

        # test for returned events for unregistered volunteer 3
        self.assertEqual(len(event_list_for_vol_3), 0)
        VolunteerShift.objects.all().delete()
Beispiel #3
0
 def post(self, request, *args, **kwargs):
     volunteer_id = self.kwargs['volunteer_id']
     volunteer = get_volunteer_by_id(volunteer_id)
     event_list = get_signed_up_events_for_volunteer(volunteer_id)
     job_list = get_signed_up_jobs_for_volunteer(volunteer_id)
     event_name = self.request.POST['event_name']
     job_name = self.request.POST['job_name']
     start_date = self.request.POST['start_date']
     end_date = self.request.POST['end_date']
     volunteer_shift_list = get_volunteer_shifts(volunteer_id, event_name, job_name,
                                        start_date, end_date)
     if volunteer_shift_list:
         report_list = generate_report(volunteer_shift_list)
         total_hours = calculate_total_report_hours(report_list)
         report = Report.objects.create(total_hrs=total_hours, volunteer=volunteer)
         report.volunteer_shifts.add(*volunteer_shift_list)
         report.save()
         return render(request, 'volunteer/report.html', {
                       'report_list': report_list,
                       'total_hours': total_hours,
                       'notification': True,
                       'job_list': job_list,
                       'event_list': event_list,
                       'selected_event': event_name,
                       'selected_job': job_name
                       })
     else:
         return render(request, 'volunteer/report.html', {
                       'job_list': job_list,
                       'event_list': event_list,
                       'notification': True,
                       })
Beispiel #4
0
    def get(self, request, *args, **kwargs):
        volunteer_id = self.kwargs['volunteer_id']
        event_list = get_signed_up_events_for_volunteer(volunteer_id)
        job_list = get_signed_up_jobs_for_volunteer(volunteer_id)

        return render(request, 'volunteer/report.html', {
            'event_list': event_list,
            'job_list': job_list,
        })
Beispiel #5
0
    def get(self, request, *args, **kwargs):
        volunteer_id = self.kwargs['volunteer_id']
        event_list = get_signed_up_events_for_volunteer(volunteer_id)
        job_list = get_signed_up_jobs_for_volunteer(volunteer_id)

        return render(request, 'volunteer/report.html', {
            'event_list': event_list,
            'job_list': job_list,
        })
Beispiel #6
0
 def post(self, request, *args, **kwargs):
     volunteer_id = self.kwargs['volunteer_id']
     event_list = get_signed_up_events_for_volunteer(volunteer_id)
     job_list = get_signed_up_jobs_for_volunteer(volunteer_id)
     event_name = self.request.POST['event_name']
     job_name = self.request.POST['job_name']
     start_date = self.request.POST['start_date']
     end_date = self.request.POST['end_date']
     report_list = get_volunteer_report(volunteer_id, event_name, job_name,
                                        start_date, end_date)
     total_hours = calculate_total_report_hours(report_list)
     return render(
         request, 'volunteer/report.html', {
             'report_list': report_list,
             'total_hours': total_hours,
             'notification': True,
             'job_list': job_list,
             'event_list': event_list,
             'selected_event': event_name,
             'selected_job': job_name
         })
Beispiel #7
0
 def post(self, request, *args, **kwargs):
     volunteer_id = self.kwargs['volunteer_id']
     volunteer = get_volunteer_by_id(volunteer_id)
     event_list = get_signed_up_events_for_volunteer(volunteer_id)
     job_list = get_signed_up_jobs_for_volunteer(volunteer_id)
     event_name = self.request.POST['event_name']
     job_name = self.request.POST['job_name']
     start_date = self.request.POST['start_date']
     end_date = self.request.POST['end_date']
     volunteer_shift_list = get_volunteer_shifts(volunteer_id, event_name,
                                                 job_name, start_date,
                                                 end_date)
     if volunteer_shift_list:
         report_list = generate_report(volunteer_shift_list)
         total_hours = calculate_total_report_hours(report_list)
         report = Report.objects.create(total_hrs=total_hours,
                                        volunteer=volunteer)
         report.volunteer_shifts.add(*volunteer_shift_list)
         report.save()
         return render(
             request, 'volunteer/report.html', {
                 'report_list': report_list,
                 'total_hours': total_hours,
                 'notification': True,
                 'job_list': job_list,
                 'event_list': event_list,
                 'selected_event': event_name,
                 'selected_job': job_name
             })
     else:
         return render(
             request, 'volunteer/report.html', {
                 'job_list': job_list,
                 'event_list': event_list,
                 'notification': True,
             })