Beispiel #1
0
 def get(self):
     data = dict(request.args)
     print(data)
     claims = get_jwt_claims()
     if not claims['is_admin']:
         if not claims['teacher_code']:
             return {
                 'message':
                 'User not a teacher. Unauthorized to view student data.'
             }, 401
         else:
             teacher = TeacherModel.find_by_teacher_code(
                 claims['teacher_code'])
             student_kalika_kendra_id = teacher.kalika_kendra_id
             student_kalika_kendra_name = KalikaKendraModel.find_by_kalika_kendra_id(
                 student_kalika_kendra_id).kalika_kendra_name
         if data.get("kalika_kendra_id"):
             if data.get("kalika_kendra_id") != student_kalika_kendra_id:
                 return {
                     'message':
                     'User not authorized to view other Kalika Kendra data.'
                 }, 401
         elif data.get("kalika_kendra_name"):
             if data.get(
                     "kalika_kendra_name") != student_kalika_kendra_name:
                 return {
                     'message':
                     'User not authorized to view other Kalika Kendra data.'
                 }, 401
         else:
             data["kalika_kendra_id"] = student_kalika_kendra_id
     students = StudentModel.find_by_student_by_any(**data)
     if students:
         resp = []
         for student in students:
             resp.append(student.json())
         return resp
     else:
         return {'message': 'Students not found'}
Beispiel #2
0
 def find_assessment_result_by_any(cls, **kwargs):
     cols = [
         'attempt_id', 'student_id', 'subject_id', 'assessment_category_id',
         'assessment_skill_id', 'assessment_period_id', 'assessment_year',
         'assessment_month', 'assessment_day', 'assessment_session',
         'assessment_score', 'assessment_full_score', 'assessment_grade',
         'creation_date', 'modified_date', 'modified_by'
     ]
     filter_str = 'cls.query'
     if 'result_id' in kwargs.keys():
         filter_str = filter_str + '.filter_by(id="' + str(
             kwargs['result_id']) + '")'
     if 'attempt_id' in kwargs.keys():
         filter_str = filter_str + '.filter_by(attempt_id="' + str(
             kwargs['attempt_id']) + '")'
     if 'student_id' in kwargs.keys():
         filter_str = filter_str + '.filter_by(student_id="' + str(
             kwargs['student_id']) + '")'
     if 'subject_id' in kwargs.keys():
         filter_str = filter_str + '.filter_by(subject_id="' + str(
             kwargs['subject_id']) + '")'
     if 'category_id' in kwargs.keys():
         filter_str = filter_str + '.filter_by(category_id="' + str(
             kwargs['category_id']) + '")'
     if 'skill_id' in kwargs.keys():
         filter_str = filter_str + '.filter_by(skill_id="' + str(
             kwargs['skill_id']) + '")'
     if 'period_id' in kwargs.keys():
         filter_str = filter_str + '.filter_by(period_id="' + str(
             kwargs['period_id']) + '")'
     if 'year' in kwargs.keys():
         filter_str = filter_str + '.filter_by(year="' + str(
             kwargs['year']) + '")'
     if 'month' in kwargs.keys():
         filter_str = filter_str + '.filter_by(month="' + str(
             kwargs['month']) + '")'
     if 'day' in kwargs.keys():
         filter_str = filter_str + '.filter_by(day="' + str(
             kwargs['day']) + '")'
     if 'session' in kwargs.keys():
         filter_str = filter_str + '.filter_by(session="' + str(
             kwargs['session']) + '")'
     if 'score' in kwargs.keys():
         filter_str = filter_str + '.filter_by(score="' + str(
             kwargs['score']) + '")'
     if 'full_score' in kwargs.keys():
         filter_str = filter_str + '.filter_by(full_score="' + str(
             kwargs['full_score']) + '")'
     if 'grade' in kwargs.keys():
         filter_str = filter_str + '.filter_by(grade="' + str(
             kwargs['grade']) + '")'
     if 'creation_date' in kwargs.keys():
         filter_str = filter_str + '.filter_by(creation_date="' + str(
             kwargs['creation_date']) + '")'
     if 'modified_date' in kwargs.keys():
         filter_str = filter_str + '.filter_by(modified_date="' + str(
             kwargs['modified_date']) + '")'
     if 'modified_by' in kwargs.keys():
         filter_str = filter_str + '.filter_by(modified_by="' + str(
             kwargs['modified_by']) + '")'
     if 'subject_name' in kwargs.keys():
         subject = SubjectModel.find_by_subject_name(kwargs['subject_name'])
         if subject:
             subject_id = subject.id
             filter_str = filter_str + '.filter_by(subject_id="'\
                          + str(subject_id) + '")'
     if 'category_name' in kwargs.keys():
         assessment_category = AssessmentCategoryModel.find_by_category_name(
             kwargs['category_name'])
         if assessment_category:
             category_id = assessment_category.id
             filter_str = filter_str + '.filter_by(category_id="' + str(
                 category_id) + '")'
     if 'student_name' in kwargs.keys():
         student = StudentModel.find_by_student_name(kwargs['student_name'])
         if student:
             student_id = student.id
             filter_str = filter_str + '.filter_by(student_id="' + str(
                 student_id) + '")'
     if 'skill_name' in kwargs.keys():
         skill = AssessmentSkillModel.find_by_skill_name(
             kwargs['skill_name'])
         if skill:
             skill_id = skill.id
             filter_str = filter_str + '.filter_by(skill_id="' + str(
                 skill_id) + '")'
     if 'cluster_id' in kwargs.keys():
         payload = {"cluster_id": kwargs["cluster_id"]}
         students = StudentModel.find_by_student_by_any(**payload)
         if students:
             student_ids = [s.id for s in students]
             # print(student_ids)
             filter_str = filter_str + '.filter(cls.student_id.in_(' + str(
                 student_ids) + '))'
     if 'kalika_kendra_id' in kwargs.keys():
         payload = {"kalika_kendra_id": kwargs["kalika_kendra_id"]}
         students = StudentModel.find_by_student_by_any(**payload)
         if students:
             student_ids = [s.id for s in students]
             filter_str = filter_str + '.filter(cls.student_id.in_(' + str(
                 student_ids) + '))'
     if 'cluster_name' in kwargs.keys():
         payload = {"cluster_name": kwargs["cluster_name"]}
         students = StudentModel.find_by_student_by_any(**payload)
         if students:
             student_ids = [s.id for s in students]
             filter_str = filter_str + '.filter(cls.student_id.in_(' + str(
                 student_ids) + '))'
     if 'kalika_kendra_name' in kwargs.keys():
         payload = {"kalika_kendra_name": kwargs["kalika_kendra_name"]}
         students = StudentModel.find_by_student_by_any(**payload)
         if students:
             student_ids = [s.id for s in students]
             filter_str = filter_str + '.filter(cls.student_id.in_(' + str(
                 student_ids) + '))'
     filter_str = filter_str + '.all()'
     return eval(filter_str)