예제 #1
0
    def test_get_event_by_id(self):
        """ Test get_event_by_id(event_id) """

        # test typical cases
        self.assertIsNotNone(get_event_by_id(self.e2.id))
        self.assertEqual(get_event_by_id(self.e2.id), self.e2)

        self.assertIsNone(get_event_by_id(1000))
예제 #2
0
    def test_get_event_by_id(self):
        """ Test get_event_by_id(event_id) """

        # test typical cases
        self.assertIsNotNone(get_event_by_id(self.e2.id))
        self.assertEqual(get_event_by_id(self.e2.id), self.e2)

        self.assertIsNone(get_event_by_id(1000))
예제 #3
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
         })
예제 #4
0
def list_sign_up(request, event_id, volunteer_id):
    if event_id:
        event = get_event_by_id(event_id)
        if request.method == 'POST':
            form = SearchJobForm(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 = search_jobs(name, start_date, end_date, city,
                                            state, country, '')
                search_result_list = search_result.filter(event_id=event_id)
        else:
            form = SearchJobForm()
            search_result_list = get_jobs_by_event_id(event_id)
        job_list = remove_empty_jobs_for_volunteer(search_result_list,
                                                   volunteer_id)
        return render(
            request, 'job/list_sign_up.html', {
                'form': form,
                'job_list': job_list,
                'volunteer_id': volunteer_id,
                'event': event,
            })
    else:
        raise Http404
예제 #5
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
         })
예제 #6
0
파일: views.py 프로젝트: systers/vms
 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}
         )
예제 #7
0
파일: views.py 프로젝트: systers/vms
def list_sign_up(request, event_id, volunteer_id):
    if event_id:
        event = get_event_by_id(event_id)
        if request.method == 'POST':
            form = SearchJobForm(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 = search_jobs(name, start_date, end_date,
                                            city, state, country, '')
                search_result_list = search_result.filter(event_id=event_id)
        else:
                form = SearchJobForm()
                search_result_list = get_jobs_by_event_id(event_id)
        job_list = remove_empty_jobs_for_volunteer(search_result_list, volunteer_id)
        return render(
            request, 'job/list_sign_up.html', {
                'form': form,
                'job_list': job_list,
                'volunteer_id': volunteer_id,
                'event': event,
            })
    else:
        raise Http404
예제 #8
0
파일: views.py 프로젝트: systers/vms
 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
         })
예제 #9
0
 def post(self, request, *args, **kwargs):
     event_id = self.kwargs['event_id']
     if event_id:
         event = get_event_by_id(event_id)
         form = EventForm(self.request.POST, instance=event)
         if form.is_valid():
             start_date_event = form.cleaned_data['start_date']
             end_date_event = form.cleaned_data['end_date']
             event_edit = check_edit_event(event_id, start_date_event,
                                           end_date_event)
             if not event_edit['result']:
                 return render(
                     request, 'event/edit_error.html', {
                         'count': event_edit['invalid_count'],
                         'jobs': event_edit['invalid_jobs']
                     })
             if start_date_event < datetime.date.today():
                 data = request.POST.copy()
                 data['end_date'] = end_date_event
                 messages.add_message(
                     request, messages.INFO,
                     'Start date should be today\'s date or later.')
                 form = EventForm(data)
                 return render(request, 'event/edit.html', {
                     'form': form,
                 })
             else:
                 event_to_edit = form.save(commit=False)
                 try:
                     country_name = self.request.POST.get('country')
                     country = Country.objects.get(name=country_name)
                 except ObjectDoesNotExist:
                     country = None
                 event_to_edit.country = country
                 try:
                     state_name = self.request.POST.get('state')
                     state = Region.objects.get(name=state_name)
                 except ObjectDoesNotExist:
                     state = None
                 event_to_edit.state = state
                 try:
                     city_name = self.request.POST.get('city')
                     city = City.objects.get(name=city_name)
                 except ObjectDoesNotExist:
                     city = None
                 event_to_edit.city = city
                 event_to_edit.save()
                 return HttpResponseRedirect(reverse('event:list'))
         else:
             data = request.POST.copy()
             try:
                 data['end_date'] = form.cleaned_data['end_date']
             except KeyError:
                 data['end_date'] = ''
             form = EventForm(data)
             return render(request, 'event/edit.html', {
                 'form': form,
             })
예제 #10
0
 def get_context_data(self, **kwargs):
     context = super(EventUpdateView, self).get_context_data(**kwargs)
     job_obj = get_jobs_by_event_id(self.kwargs['event_id'])
     context['job_list'] = job_obj.values_list('start_date',
                                               'end_date').distinct()
     context['country_list'] = Country.objects.all()
     event_id = self.kwargs['event_id']
     event = get_event_by_id(event_id)
     if event.country:
         country = event.country
         state_list = Region.objects.filter(country=country)
         context['state_list'] = state_list
     if event.state:
         state = event.state
         city_list = City.objects.filter(region=state)
         context['city_list'] = city_list
     return context
예제 #11
0
파일: views.py 프로젝트: pradeepgangwar/vms
 def post(self, request, *args, **kwargs):
     event_id = self.kwargs['event_id']
     if event_id:
         event = get_event_by_id(event_id)
         form = EventForm(self.request.POST, instance=event)
         if form.is_valid():
             start_date_event = form.cleaned_data['start_date']
             end_date_event = form.cleaned_data['end_date']
             event_edit = check_edit_event(event_id, start_date_event,
                                           end_date_event)
             if not event_edit['result']:
                 return render(
                     request, 'event/edit_error.html', {
                         'count': event_edit['invalid_count'],
                         'jobs': event_edit['invalid_jobs']
                     })
             if start_date_event < datetime.date.today():
                 data = request.POST.copy()
                 data['end_date'] = end_date_event
                 messages.add_message(
                     request, messages.INFO,
                     'Start date should be today\'s date or later.')
                 form = EventForm(data)
                 return render(request, 'event/edit.html', {
                     'form': form,
                 })
             else:
                 form.save()
                 return HttpResponseRedirect(reverse('event:list'))
         else:
             data = request.POST.copy()
             try:
                 data['end_date'] = form.cleaned_data['end_date']
             except KeyError:
                 data['end_date'] = ''
             form = EventForm(data)
             return render(request, 'event/edit.html', {
                 'form': form,
             })
예제 #12
0
파일: views.py 프로젝트: systers/vms
 def post(self, request, *args, **kwargs):
     event_id = self.kwargs['event_id']
     if event_id:
         event = get_event_by_id(event_id)
         form = EventForm(self.request.POST, instance=event)
         if form.is_valid():
             start_date_event = form.cleaned_data['start_date']
             end_date_event = form.cleaned_data['end_date']
             event_edit = check_edit_event(event_id, start_date_event,
                                           end_date_event)
             if not event_edit['result']:
                 return render(
                     request, 'event/edit_error.html', {
                         'count': event_edit['invalid_count'],
                         'jobs': event_edit['invalid_jobs']
                     })
             if start_date_event < datetime.date.today():
                 data = request.POST.copy()
                 data['end_date'] = end_date_event
                 messages.add_message(
                     request, messages.INFO,
                     'Start date should be today\'s date or later.')
                 form = EventForm(data)
                 return render(request, 'event/edit.html', {
                     'form': form,
                 })
             else:
                 form.save()
                 return HttpResponseRedirect(reverse('event:list'))
         else:
             data = request.POST.copy()
             try:
                 data['end_date'] = form.cleaned_data['end_date']
             except KeyError:
                 data['end_date'] = ''
             form = EventForm(data)
             return render(request, 'event/edit.html', {
                 'form': form,
             })
예제 #13
0
파일: tests.py 프로젝트: ahmedsabie/vms
    def test_get_event_by_id(self):
        """ Test get_event_by_id(event_id) """

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

        e1.save()
        e2.save()
        e3.save()

        # test typical cases
        self.assertIsNotNone(get_event_by_id(e1.id))
        self.assertIsNotNone(get_event_by_id(e2.id))
        self.assertIsNotNone(get_event_by_id(e3.id))

        self.assertEqual(get_event_by_id(e1.id), e1)
        self.assertEqual(get_event_by_id(e2.id), e2)
        self.assertEqual(get_event_by_id(e3.id), e3)

        self.assertIsNone(get_event_by_id(100))
        self.assertIsNone(get_event_by_id(200))
        self.assertIsNone(get_event_by_id(300))

        self.assertNotEqual(get_event_by_id(100), e1)
        self.assertNotEqual(get_event_by_id(200), e1)
        self.assertNotEqual(get_event_by_id(300), e1)

        self.assertNotEqual(get_event_by_id(100), e2)
        self.assertNotEqual(get_event_by_id(200), e2)
        self.assertNotEqual(get_event_by_id(300), e2)

        self.assertNotEqual(get_event_by_id(100), e3)
        self.assertNotEqual(get_event_by_id(200), e3)
        self.assertNotEqual(get_event_by_id(300), e3)