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))
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 })
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
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 })
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} )
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 })
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, })
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
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, })
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)