Example #1
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
         })
Example #2
0
File: views.py Project: 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
         })
    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)
Example #4
0
    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)