Exemple #1
0
def list_events(request):
    """
    list of filtered events
    :return: search_result_list: filtered events based on name, start date, end date, state, city, country, job
    :return: SearchEventForm
    """
    search_result_list = get_events_ordered_by_name()
    if request.method == 'POST':
        form = SearchEventForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            start_date = form.cleaned_data['start_date']
            end_date = form.cleaned_data['end_date']
            city = form.cleaned_data['city']
            state = form.cleaned_data['state']
            country = form.cleaned_data['country']
            job = form.cleaned_data['job']
            search_result_list = search_events(
                name, start_date, end_date, city, state, country, job)
    else:
        form = SearchEventForm()

    return render(
        request, 'event/list.html', {
            'form': form,
            'search_result_list': search_result_list
        })
Exemple #2
0
 def form_valid(self, form):
     event_id = self.request.POST.get('event_id')
     event = get_event_by_id(event_id)
     start_date_event = event.start_date
     end_date_event = event.end_date
     start_date_job = form.cleaned_data.get('start_date')
     end_date_job = form.cleaned_data.get('end_date')
     job_name = form.cleaned_data.get('name')
     flag = Job.objects.filter(event=event, name=job_name).exists()
     event_list = get_events_ordered_by_name()
     if (start_date_job >= start_date_event
             and end_date_job <= end_date_event and not flag):
         job = form.save(commit=False)
         if event:
             job.event = event
         else:
             raise Http404
         job.save()
         return HttpResponseRedirect(reverse('job:list'))
     else:
         raise_err = 'Job dates should lie within Event dates'
         if flag:
             raise_err = 'Job with the same name already exists'
         messages.add_message(self.request, messages.INFO, raise_err)
         return render(self.request, 'job/create.html', {
             'form': form,
             'event_list': event_list,
             'last_event': event
         })
Exemple #3
0
 def form_valid(self, form):
     job_id = self.kwargs['job_id']
     event_id = self.request.POST.get('event_id')
     job = get_job_by_id(job_id)
     event = get_event_by_id(event_id)
     start_date_event = event.start_date
     end_date_event = event.end_date
     start_date_job = form.cleaned_data.get('start_date')
     end_date_job = form.cleaned_data.get('end_date')
     event_list = get_events_ordered_by_name()
     job_edit = check_edit_job(job_id, start_date_job, end_date_job)
     if not job_edit['result']:
         return render(self.request, 'job/edit_error.html',
                       {'count': job_edit['invalid_count']})
     if (start_date_job >= start_date_event
             and end_date_job <= end_date_event):
         job_to_edit = form.save(commit=False)
         if event:
             job_to_edit.event = event
         else:
             raise Http404
         job_to_edit.save()
         return HttpResponseRedirect(reverse('job:list'))
     else:
         messages.add_message(self.request, messages.INFO,
                              'Job dates should lie within Event dates')
         return render(self.request, 'job/edit.html', {
             'form': form,
             'event_list': event_list,
             'job': job
         })
class ShowReportListView(LoginRequiredMixin, AdministratorLoginRequiredMixin,
                         ListView):
    """
    Generate the report using ListView
    """
    template_name = "administrator/report.html"
    organization_list = get_organizations_ordered_by_name()
    event_list = get_events_ordered_by_name()
    job_list = get_jobs_ordered_by_title()

    def post(self, request, *args, **kwargs):
        report_list = get_administrator_report(
            self.request.POST['first_name'],
            self.request.POST['last_name'],
            self.request.POST['organization'],
            self.request.POST['event_name'],
            self.request.POST['job_name'],
            self.request.POST['start_date'],
            self.request.POST['end_date'],
        )
        organization = self.request.POST['organization']
        event_name = self.request.POST['event_name']
        total_hours = calculate_total_report_hours(report_list)
        return render(
            request, 'administrator/report.html', {
                'report_list': report_list,
                'total_hours': total_hours,
                'notification': True,
                'organization_list': self.organization_list,
                'selected_organization': organization,
                'event_list': self.event_list,
                'selected_event': event_name,
                'job_list': self.job_list
            })
Exemple #5
0
def list_events(request):
    """
    list of filtered events
    :return: search_result_list: filtered events based on name,
                                 start date, end date, state,
                                 city, country, job
    :return: SearchEventForm
    """
    search_result_list = get_events_ordered_by_name()
    today = datetime.date.today()
    if request.method == 'POST':
        form = SearchEventForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            start_date = form.cleaned_data['start_date']
            end_date = form.cleaned_data['end_date']
            city = form.cleaned_data['city']
            state = form.cleaned_data['state']
            country = form.cleaned_data['country']
            job = form.cleaned_data['job']
            search_result_list = search_events(name, start_date, end_date,
                                               city, state, country, job)
    else:
        form = SearchEventForm()

    return render(request, 'event/list.html', {
        'form': form,
        'search_result_list': search_result_list,
        'today': today
    })
Exemple #6
0
 def form_valid(self, form):
     event_id = self.request.POST.get('event_id')
     event = get_event_by_id(event_id)
     start_date_event = event.start_date
     end_date_event = event.end_date
     start_date_job = form.cleaned_data.get('start_date')
     end_date_job = form.cleaned_data.get('end_date')
     job_name = form.cleaned_data.get('name')
     flag = Job.objects.filter(event=event, name=job_name).exists()
     event_list = get_events_ordered_by_name()
     if (start_date_job >= start_date_event
             and end_date_job <= end_date_event and not flag):
         job = form.save(commit=False)
         if event:
             job.event = event
         else:
             raise Http404
         job.save()
         return HttpResponseRedirect(reverse('job:list'))
     else:
         raise_err = 'Job dates should lie within Event dates'
         if flag:
             raise_err = 'Job with the same name already exists'
         messages.add_message(self.request, messages.INFO, raise_err)
         return render(
             self.request,
             'job/create.html',
             {'form': form, 'event_list': event_list, 'last_event': event}
         )
Exemple #7
0
 def form_valid(self, form):
     job_id = self.kwargs['job_id']
     event_id = self.request.POST.get('event_id')
     job = get_job_by_id(job_id)
     event = get_event_by_id(event_id)
     start_date_event = event.start_date
     end_date_event = event.end_date
     start_date_job = form.cleaned_data.get('start_date')
     end_date_job = form.cleaned_data.get('end_date')
     event_list = get_events_ordered_by_name()
     job_edit = check_edit_job(job_id, start_date_job, end_date_job)
     if not job_edit['result']:
         return render(self.request, 'job/edit_error.html', {
             'count': job_edit['invalid_count']
         })
     if (start_date_job >= start_date_event
             and end_date_job <= end_date_event):
         job_to_edit = form.save(commit=False)
         if event:
             job_to_edit.event = event
         else:
             raise Http404
         job_to_edit.save()
         return HttpResponseRedirect(reverse('job:list'))
     else:
         messages.add_message(self.request, messages.INFO,
                              'Job dates should lie within Event dates')
         return render(self.request, 'job/edit.html', {
             'form': form,
             'event_list': event_list,
             'job': job
         })
Exemple #8
0
    def test_get_events_ordered_by_name(self):
        """ Test get_events_ordered_by_name() """

        e1 = Event(
                name="Open Source Event",
                start_date="2012-10-22",
                end_date="2012-10-23"
                )
        e2 = Event(
                name="Python Event",
                start_date="2013-11-12",
                end_date="2013-11-13"
                )
        e3 = Event(
                name="Django Event",
                start_date="2015-07-07",
                end_date="2015-07-08"
                )
        e4 = Event(
                name="Systers Event",
                start_date="2015-07-07",
                end_date="2015-07-08"
                )
        e5 = Event(
                name="Anita Borg Event",
                start_date="2015-07-07",
                end_date="2015-07-08"
                )

        e1.save()
        e2.save()
        e3.save()
        e4.save()
        e5.save()

        # test typical cases
        event_list = get_events_ordered_by_name()
        self.assertIsNotNone(event_list)
        self.assertIn(e1, event_list)
        self.assertIn(e2, event_list)
        self.assertIn(e3, event_list)
        self.assertIn(e4, event_list)
        self.assertIn(e5, event_list)
        self.assertEqual(len(event_list), 5)

        # test order
        self.assertEqual(event_list[0], e5)
        self.assertEqual(event_list[1], e3)
        self.assertEqual(event_list[2], e1)
        self.assertEqual(event_list[3], e2)
        self.assertEqual(event_list[4], e4)
class ShowFormView(AdministratorLoginRequiredMixin, FormView):
    """
    Displays the form
    """
    model = Administrator
    form_class = ReportForm
    template_name = "administrator/report.html"
    event_list = get_events_ordered_by_name()
    job_list = get_jobs_ordered_by_title()
    organization_list = get_organizations_ordered_by_name()

    def get(self, request, *args, **kwargs):
        return render(
            request, 'administrator/report.html', {
                'event_list': self.event_list,
                'organization_list': self.organization_list,
                'job_list': self.job_list
            })
Exemple #10
0
    def test_get_events_ordered_by_name(self):
        """ Test get_events_ordered_by_name() """

        # test typical cases
        event_list = get_events_ordered_by_name()
        self.assertIsNotNone(event_list)
        self.assertIn(self.e1, event_list)
        self.assertIn(self.e2, event_list)
        self.assertIn(self.e3, event_list)
        self.assertIn(self.e4, event_list)
        self.assertIn(self.e5, event_list)
        self.assertEqual(len(event_list), 5)

        # test order
        self.assertEqual(event_list[0], self.e5)
        self.assertEqual(event_list[1], self.e3)
        self.assertEqual(event_list[2], self.e1)
        self.assertEqual(event_list[3], self.e2)
        self.assertEqual(event_list[4], self.e4)
Exemple #11
0
    def test_get_events_ordered_by_name(self):
        """ Test get_events_ordered_by_name() """

        # test typical cases
        event_list = get_events_ordered_by_name()
        self.assertIsNotNone(event_list)
        self.assertIn(self.e1, event_list)
        self.assertIn(self.e2, event_list)
        self.assertIn(self.e3, event_list)
        self.assertIn(self.e4, event_list)
        self.assertIn(self.e5, event_list)
        self.assertEqual(len(event_list), 5)

        # test order
        self.assertEqual(event_list[0], self.e5)
        self.assertEqual(event_list[1], self.e3)
        self.assertEqual(event_list[2], self.e1)
        self.assertEqual(event_list[3], self.e2)
        self.assertEqual(event_list[4], self.e4)
Exemple #12
0
def list_sign_up(request, volunteer_id):
    if request.method == 'POST':
        form = SearchEventForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            start_date = form.cleaned_data['start_date']
            end_date = form.cleaned_data['end_date']
            city = form.cleaned_data['city']
            state = form.cleaned_data['state']
            country = form.cleaned_data['country']
            search_result_list = search_events(name, start_date, end_date, city, state, country, '')
    else:
        form = SearchEventForm()
        search_result_list = get_events_ordered_by_name()
    event_list = remove_empty_events_for_volunteer(search_result_list,
                                                   volunteer_id)
    return render(
        request, 'event/list_sign_up.html', {
            'form': form,
            'event_list': event_list,
            'volunteer_id': volunteer_id,
        })
Exemple #13
0
def list_sign_up(request, volunteer_id):
    if request.method == 'POST':
        form = SearchEventForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            start_date = form.cleaned_data['start_date']
            end_date = form.cleaned_data['end_date']
            city = form.cleaned_data['city']
            state = form.cleaned_data['state']
            country = form.cleaned_data['country']
            search_result_list = search_events(name, start_date, end_date,
                                               city, state, country, '')
    else:
        form = SearchEventForm()
        search_result_list = get_events_ordered_by_name()
    event_list = remove_empty_events_for_volunteer(search_result_list,
                                                   volunteer_id)
    return render(request, 'event/list_sign_up.html', {
        'form': form,
        'event_list': event_list,
        'volunteer_id': volunteer_id,
    })
Exemple #14
0
def list_sign_up(request, volunteer_id):
    if request.method == 'POST':
        form = EventDateForm(request.POST)
        if form.is_valid():
            start_date = form.cleaned_data['start_date']
            end_date = form.cleaned_data['end_date']
            event_list = get_events_by_date(start_date, end_date)
            event_list = remove_empty_events_for_volunteer(
                event_list, volunteer_id)
            return render(
                request, 'event/list_sign_up.html', {
                    'form': form,
                    'event_list': event_list,
                    'volunteer_id': volunteer_id
                })
    else:
        event_list = get_events_ordered_by_name()
        event_list = remove_empty_events_for_volunteer(event_list,
                                                       volunteer_id)
        return render(request, 'event/list_sign_up.html', {
            'event_list': event_list,
            'volunteer_id': volunteer_id
        })
Exemple #15
0
 def get_context_data(self, **kwargs):
     context = super(CreateJobView, self).get_context_data(**kwargs)
     context['event_list'] = get_events_ordered_by_name()
     return context
Exemple #16
0
 def get_context_data(self, **kwargs):
     context = super(CreateJobView, self).get_context_data(**kwargs)
     context['event_list'] = get_events_ordered_by_name()
     return context