Example #1
0
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)
Example #2
0
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)
Example #3
0
 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())
Example #4
0
 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.']})
Example #5
0
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)
Example #6
0
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