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): 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 test_check_edit_job(self): """ Uses jobs j1,j2 """ # test typical cases start_date1 = datetime.date(2012, 10, 23) start_date2 = datetime.date(2012, 10, 25) start_date3 = datetime.date(2012, 10, 2) start_date4 = datetime.date(2013, 10, 8) stop_date1 = datetime.date(2012, 10, 28) stop_date2 = datetime.date(2012, 10, 29) stop_date3 = datetime.date(2012, 10, 24) stop_date4 = datetime.date(2013, 10, 20) out1 = check_edit_job(self.j1.id, start_date1, stop_date1) out2 = check_edit_job(self.j1.id, start_date2, stop_date2) out3 = check_edit_job(self.j1.id, start_date3, stop_date3) out4 = check_edit_job(self.j1.id, start_date4, stop_date4) out5 = check_edit_job(self.j2.id, start_date1, stop_date1) out6 = check_edit_job(100, start_date1, stop_date1) self.assertTrue(out1['result']) self.assertFalse(out2['result']) self.assertFalse(out3['result']) self.assertFalse(out4['result']) self.assertTrue(out5['result']) self.assertFalse(out6['result']) self.assertEqual(out1['invalid_count'], 0) self.assertEqual(out2['invalid_count'], 1) self.assertEqual(out4['invalid_count'], 2) self.assertEqual(out5['invalid_count'], 0)