def academic_form_single(request, student_id=0): if request.method == 'POST': form = AcademicForm(request.POST) if form.is_valid(): #process instance = form.save() message = 'Recorded semester test for '+instance.student_id.name log = NotificationLog(user=request.user, text=message, font_awesome_icon='fa-calculator') log.save() #then return return HttpResponseRedirect( reverse('student_detail', kwargs={'student_id':instance.student_id.student_id})) else: if student_id > 0: form = AcademicForm({ 'student_id':student_id, 'test_date':TODAY, 'test_level':getStudentGradebyID(student_id)}) else: form = AcademicForm() context = {'form': form,'student_id':student_id} return render(request, 'mande/academicformsingle.html',context)
def academic_form_single(request, student_id=0,test_id=None): form_error_message= {} if request.method == 'POST': if test_id == None: form = AcademicForm(request.POST) instance,created = Academic.objects.get_or_create(student_id=IntakeSurvey.objects.get(pk=form.data['student_id']), test_date=form.data['test_date'], test_level=form.data['test_level']) form = AcademicForm(request.POST,instance=instance) else: created =None instance = Academic.objects.get(id=test_id) form = AcademicForm(request.POST,instance=instance) if form.is_valid(): #process instance = form.save() action = 'Recorded ' if created else 'Updated ' message = (action+'semester test for '+instance.student_id.name) log = NotificationLog(user=request.user, text=message, font_awesome_icon='fa-calculator') log.save() # then return return HttpResponseRedirect( reverse('student_detail', kwargs={'student_id':instance.student_id.student_id})) else: action = 'Adding ' if created else 'Editing ' form_error_message= form.errors.as_text() else: if student_id and test_id: instance = Academic.objects.get(id=test_id) form = AcademicForm(instance=instance) action ="Editing" else: form = AcademicForm() if student_id >0: try: action = 'Editing' instance = Academic.objects.get(student_id=IntakeSurvey.objects.get(pk=student_id), test_date=date.today().isoformat(), test_level=getStudentGradebyID(student_id)) form = AcademicForm(instance=instance) except ObjectDoesNotExist: action = 'Adding' form = AcademicForm({'student_id':student_id, 'test_date':date.today().isoformat(), 'test_level':getStudentGradebyID(student_id)}) else: action = 'Adding' form = AcademicForm() context = {'form': form,'student_id':student_id,'test_id':test_id,'action':action,'form_error_message':form_error_message} return render(request, 'mande/academicformsingle.html',context)
def test_AcademicForm_valid(self): data = { "student_id": 1, "test_date": "2017-01-01", "test_level": 1, "promote": False, "test_grade_math": 1, "test_grade_khmer": 1 } form = AcademicForm(data) self.assertTrue(form.is_valid())
def test_AcademicForm_invalid(self): data = { "test_date": "2017-01-01", "test_level": 1, "promote": False, "test_grade_math": 1, "test_grade_khmer": 1 } form = AcademicForm(data) self.assertFalse(form.is_valid()) self.assertEqual(form.errors, {'student_id': [u'This field is required.']})
def academic_form_single(request, student_id=0): if request.method == 'POST': form = AcademicForm(request.POST) if form.is_valid(): #process instance = form.save() message = 'Recorded semester test for ' + instance.student_id.name log = NotificationLog(user=request.user, text=message, font_awesome_icon='fa-calculator') log.save() #then return return HttpResponseRedirect( reverse('student_detail', kwargs={'student_id': instance.student_id.student_id})) else: if student_id > 0: form = AcademicForm({ 'student_id': student_id, 'test_date': TODAY, 'test_level': getStudentGradebyID(student_id) }) else: form = AcademicForm() context = {'form': form, 'student_id': student_id} return render(request, 'mande/academicformsingle.html', context)
def academic_form_single(request, student_id=0, test_id=None): #get current method name method_name = inspect.currentframe().f_code.co_name if user_permissions(method_name, request.user): form_error_message = {} locked = True today = date.today().isoformat() making_period = AcademicMarkingPeriod.objects.all().filter( Q(marking_period_start__lte=today) & Q(marking_period_end__gte=today)) if len(making_period) >= 1: locked = False if request.method == 'POST': if test_id == None: form = AcademicForm(request.POST) instance, created = Academic.objects.get_or_create( student_id=IntakeSurvey.objects.get( pk=form.data['student_id']), test_date=form.data['test_date'], test_level=form.data['test_level']) form = AcademicForm(request.POST, instance=instance) else: created = None instance = Academic.objects.get(id=test_id) form = AcademicForm(request.POST, instance=instance) if form.is_valid(): #process test_date = request.POST['test_date'] period = AcademicMarkingPeriod.objects.all().filter( test_date=test_date) if len(period) >= 1: instance = form.save() action = 'Recorded ' if created else 'Updated ' message = (action + 'semester test for ' + instance.student_id.name) log = NotificationLog(user=request.user, text=message, font_awesome_icon='fa-calculator') log.save() # update cache table student = IntakeSurvey.objects.get( student_id=instance.student_id.student_id) update_student = CurrentStudentInfo.objects.get( student_id=student.student_id) update_student.at_grade_level = studentAtAgeAppropriateGradeLevel( student.student_id) update_student.vdp_grade = student.current_vdp_grade() update_student.refresh = date.today().isoformat() update_student.save() # then return return HttpResponseRedirect( reverse('student_detail', kwargs={ 'student_id': instance.student_id.student_id })) else: action = 'Adding ' if created else 'Editing ' form.add_error(None, "") form_error_message = "Test date doesn't match with AcademicMarkingPeriod date." else: action = 'Adding ' if created else 'Editing ' form_error_message = form.errors.as_text() else: if student_id and test_id: instance = Academic.objects.get(id=test_id) form = AcademicForm(instance=instance) action = "Editing" else: form = AcademicForm() if student_id > 0: try: action = 'Editing' instance = Academic.objects.get( student_id=IntakeSurvey.objects.get(pk=student_id), test_date=date.today().isoformat(), test_level=getStudentGradebyID(student_id)) form = AcademicForm(instance=instance) except ObjectDoesNotExist: action = 'Adding' form = AcademicForm({ 'student_id': student_id, 'test_date': date.today().isoformat(), 'test_level': getStudentGradebyID(student_id) }) else: action = 'Adding' form = AcademicForm() context = { 'form': form, 'student_id': student_id, 'test_id': test_id, 'action': action, 'form_error_message': form_error_message, 'locked': locked } return render(request, 'mande/academicformsingle.html', context) else: raise PermissionDenied