示例#1
0
 def put(self):
     claims = get_jwt_claims()
     data = _student_parser.parse_args()
     for key in data.keys():
         if str(data[key]).lower() in ('none', 'null', ''):
             data[key] = None
     dt = datetime.now().strftime("%Y-%m-%d, %H:%M:%S")
     data["modified_date"] = dt
     data["modified_by"] = claims["email"]
     student_id = data.get("student_id")
     student_name = data.get("student_name")
     student_aadhar = data.get("aadhar")
     if student_id:
         student = StudentModel.find_by_student_id(student_id)
     elif student_aadhar:
         student = StudentModel.find_by_student_aadhar(student_aadhar)
     elif student_name:
         student = StudentModel.find_by_student_name(student_name)
     else:
         return {"message": "Missing student key fields"}, 404
     try:
         if student:
             student.set_attribute(data)
         else:
             student = StudentModel(**data)
         student.save_to_db()
         return student.json()
     except Exception as ex:
         return {"message": f"Error updating student data. {repr(ex)}"}, 403
示例#2
0
 def json(self):
     student = StudentModel.find_by_student_id(self.student_id)
     cluster = ClusterModel.find_by_cluster_id(student.cluster_id)
     kalika_kendra = KalikaKendraModel.find_by_kalika_kendra_id(
         student.kalika_kendra_id)
     return {
         'result_id':
         self.id,
         'attempt_id':
         self.attempt_id,
         'student_id':
         self.student_id,
         'student_name':
         student.student_name if student else None,
         'cluster_id':
         cluster.id if cluster else None,
         'cluster_name':
         cluster.cluster_name if cluster else None,
         'kalika_kendra_id':
         kalika_kendra.id if kalika_kendra else None,
         'kalika_kendra_name':
         kalika_kendra.kalika_kendra_name if kalika_kendra else None,
         'subject_id':
         self.subject_id,
         'subject_name':
         SubjectModel.find_by_subject_id(self.subject_id).subject_name,
         'assessment_category_id':
         self.category_id,
         'assessment_category_name':
         AssessmentCategoryModel.find_by_category_id(
             self.category_id).category_name,
         'assessment_skill_id':
         self.skill_id,
         'assessment_skill_name':
         AssessmentSkillModel.find_by_skill_id(self.skill_id).skill_name
         if AssessmentSkillModel.find_by_skill_id(self.skill_id) else None,
         'assessment_period_id':
         self.period_id,
         'assessment_year':
         self.year,
         'assessment_month':
         self.month,
         'assessment_day':
         self.day,
         'assessment_session':
         self.session,
         'assessment_score':
         self.score,
         'assessment_full_score':
         self.full_score,
         'assessment_grade':
         self.grade,
         'creation_date':
         str(self.creation_date),
         'modified_date':
         str(self.modified_date),
         'modified_by':
         self.modified_by
     }
示例#3
0
    def get(self):
        data = request.args
        print(data)
        data = data.to_dict(flat=False)
        claims = get_jwt_claims()

        student_kalika_kendra_name = None
        student_kalika_kendra_id = None
        student_cluster_name = None
        student_cluster_id = None

        if not claims['is_admin']:
            user_email = claims['email']
            if claims['teacher_code']:
                teacher = TeacherModel.find_by_teacher_code(
                    claims['teacher_code'])
                student_kalika_kendra_id = teacher.kalika_kendra_id
                print(student_kalika_kendra_id)
            else:
                return {
                    'message': 'User do not have permission. Contact admin.'
                }, 401

        student_id = data.get("student_id")
        student_name = data.get("student_name")
        student_aadhar = data.get("aadhar")

        print(data)
        if student_id:
            student = StudentModel.find_by_student_id(student_id)
        if student_aadhar:
            student = StudentModel.find_by_student_aadhar(student_aadhar)
        if student_name:
            student = StudentModel.find_by_student_name(student_name)
        if student:
            print(student.kalika_kendra_id)
            if claims['is_admin'] or (str(student.kalika_kendra_id).__eq__(
                    str(student_kalika_kendra_id))):
                return student.json()
            else:
                return {
                    'message':
                    'User not authorized to view other Kalika Kendra data.'
                }, 401
        else:
            return {"message": "Student not found"}, 404
示例#4
0
 def delete(self):
     claims = get_jwt_claims()
     if not claims['is_admin']:
         return {'message': 'Admin privilege required.'}, 401
     data = _student_parser.parse_args()
     student_id = data.get("student_id")
     student_name = data.get("student_name")
     student_aadhar = data.get("aadhar")
     if student_id:
         student = StudentModel.find_by_student_id(student_id)
     elif student_aadhar:
         student = StudentModel.find_by_student_aadhar(student_aadhar)
     elif student_name:
         student = StudentModel.find_by_student_name(student_name)
     else:
         return {"message": "Missing student key fields"}, 404
     if student:
         student.delete_from_db()
         return {'message': 'Student deleted.'}
     return {'message': 'Student not found.'}, 404