Exemple #1
0
def student_index_list(request, student_Id, display): #0=all, 1=last
    student = get_object_or_404(Student, enrollment_number=student_Id)

    response = []

    enrolls = Enrollment.objects.filter(student=student).order_by('program', 'study_year', 'class_year')
    prog = ""
    for enroll in enrolls:
        out={}
        out['program'] = enroll.program.descriptor
        # same program, don't repeat
        if prog != out['program']:
            out['noprogram'] = True
            prog = out['program']

        out['enrollment_type'] = enroll.enrol_type+' - '+enroll.get_enrol_type_display()
        out["redni"]="Redni" if enroll.regular else "Izredni"
        out["letnik"]=enroll.class_year
        out["study_year"]=enroll.class_year

        #out['enroll'] = enroll
        
        courses = []
        classes = enroll.get_classes()
        courses2 = Course.objects.filter(curriculum__in=classes).order_by('course_code')
        enrollsV2 = Enrollment.objects.filter(student = student,class_year = enroll.class_year, program = enroll.program)
        
        cntr = 0
        
        for p in courses2:
            try:
                course={}
                cntr += 1
                course["cntr"]=str(cntr) 
                course["name"]=p.name
                course["sifra_predmeta"]=p.course_code
                course["izvajalci"]=p.predavatelji()
                
                signs = []
                for enrollV2 in enrollsV2:
                    signups = ExamSignUp.objects.filter(examDate__course__course_code=p.course_code,enroll=enrollV2).order_by('examDate__date')
                    #signups = ExamSignUp.objects.filter(enroll=enrollV2).order_by('examDate__date')
                    signups = filter(lambda s: s.examDate.course.name == p.name, signups)
                    signups = filter(lambda s: (s.result_exam != "NR" and s.VP != True), signups)
                    
                    for s in signups:
                        polaganje={}
                        polaganje['datum']=s.examDate.date.strftime("%d.%m.%Y")
                        polaganje['izvajalci']=s.examDate.instructors
                        if(polaganje['izvajalci']==None):
                            polaganje['izvajalci']=p.predavatelji()
                        cur=Curriculum.objects.all().filter(course=p, program=enrollV2.program)[0]
                        if(cur.only_exam==True):
                            polaganje['ocena']=s.result_exam
                        else:
                            polaganje['ocena']=str(s.result_exam)+"/"+ str((s.result_practice if int(s.result_exam) > 5 else 0))

                        from api.views import _getPolaganja
                        aaa = _getPolaganja(s, student, s.examDate.date)

                        polaganje['stevilo_polaganj'], polaganje['odstevek_ponavljanja'] = _getPolaganja(s, student,s.examDate.date) 
                        polaganje['polaganja_letos']=s.examDate.course.nr_attempts_this_year_till_now(student,s.examDate.date)
                        polaganje['odstevek_ponavljanja'] = polaganje['odstevek_ponavljanja'] if str(enrollV2.enrol_type) == "V2" else 0
                        
                        #aaa = (polaganje['stevilo_polaganj'] - polaganje['odstevek_ponavljanja'], polaganje['polaganja_letos'])
                        aaa = (polaganje['stevilo_polaganj'], polaganje['polaganja_letos'])
                        
                        polaganje['polaganja'] = str(aaa[0]) + ((" - "+str(aaa[1])) if aaa[1]>0 else "")
                       
                        signs.append(polaganje)

                if (display == "1" and len(signs)>1):
                    signs = signs[-1:]

                course["signups"] = signs

                courses = courses+[course]
            except:
                raise
                pass
        out["courses"]=courses
        out["povprecje_izpitov"]=str(enroll.get_exam_avg())[0:5]
        out["povprecje_vaj"]=str(enroll.get_practice_avg())[0:5]
        out["povprecje"]=str(enroll.get_avg())[0:5]
        response = response + [out]
        
    return render_to_response('admin/student/student_index_list.html', {'student':student, 'data':response}, RequestContext(request))
Exemple #2
0
    for p in prijave:
        if not showVP and p.VP: continue
        prijava = {}
        prijava['id'] = p.id
        prijava['priimek'] = p.enroll.student.surname
        prijava['ime'] = p.enroll.student.name
        prijava['leto'] = str(p.enroll.study_year) + "/" + str(p.enroll.study_year + 1)
        prijava['vpisna_st'] = p.enroll.student.enrollment_number
        prijava['opcije']= p.RESULTS
        prijava['tockeIzpit'] = "0" if p.points == None else p.getPointsExam()
        prijava['tockeOstalo'] = "0" if p.points == None else p.getPointsOther()
        prijava['ocena_izpita'] = p.result_exam
        prijava['ocena_vaj']=p.result_practice
        prijava['negativno'] = p.resultNegative()

        stevilo_polaganj, odstevek_ponavljanja = _getPolaganja(p, p.enroll.student, exam.date) 
        polaganja_letos=exam.course.nr_attempts_this_year_till_now(p.enroll.student,exam.date)
        odstevek_ponavljanja = odstevek_ponavljanja if str(p.enroll.enrol_type) == "V2" else 0
        
        #aaa = (stevilo_polaganj - odstevek_ponavljanja, polaganja_letos)
        aaa = (stevilo_polaganj, polaganja_letos)
        
        prijava['polaganja'] = str(aaa[0]) + ((" - "+str(aaa[1])) if aaa[1]>0 else "")

        #polaganja = _getPolaganja(p, p.enroll.student, exam.date)
        #prijava['polaganja'] = str(polaganja[0]) + (("  "+str(polaganja[1])) if polaganja[1]>0 else "")
        #prijava['stevilo_polaganj'], prijava['odstevek_ponavljanja'] = _getPolaganja(p, p.enroll.student,p.examDate.date) 
        prijava['VP'] = p.VP

        result = result + [prijava]