def create(): user = get_jwt_identity params = request.json user = User.get_or_none(User.identity_card == get_jwt_identity()) new_grade = Grade(student_id=params.get("student_id"), subject_id=params.get("subject_id"), grade=params.get("grade"), year=params.get("year")) if user.roles == "staff": if new_grade.save(): response = [] for grade in Grade.select(): response.append({ "message": "Grade successfully updated", "status": "Success", "post_id": grade.subject_id, "staff_name": grade.grade, "title": grade.year, "post": grade.student_id }) else: response = { "error": new_grade.errors, "message": "Update failed, please try again", "status": "Failed" } else: response = {"message": "You are not allowed to perform this action!"} return jsonify(response)
def setUp(self): student = Student('test', 1) course = Course(1, 'test_course') datetime_format = '%Y-%m-%dT%H:%M:%SZ' assignment = Assignment(1, 'hw1', '2018-01-02T23:59:00Z', course, datetime_format) self.grade = Grade(student, course, assignment, 0.85)
def post(self): data = request.get_json() # moge to tez w funkcji zamknac np checkPermission i raise custom error ktory zlapie na poziomie app grade_create_schema = GradeCreateSchema() grade = grade_create_schema.load(data) lecture_student = LectureStudents.query.filter_by( lecture_id=grade["lecture_id"], student_id=grade["student_id"]).first() if lecture_student is None: return {"mesage": "This student is not assigned to this lecture"} current_user_id = get_jwt_identity() #current_user = UserModel.query.get(current_user_id) teacher_id = lecture_student.lecture.teacher_id if current_user_id != teacher_id: return {"You have no permission to do that"} new_grade = Grade() new_grade.lecture_student = lecture_student new_grade.grade = grade['grade'] db.session.add(new_grade) db.session.commit() return {"data": self.grade_schema.dump(new_grade)}
def setUp(self): student = Student('test', 1) course = Course(1, 'test_course') datetime_format = '%Y-%m-%dT%H:%M:%SZ' assignment1 = Assignment(1, 'hw1', '2018-01-02T23:59:00Z', course, datetime_format) assignment2 = Assignment(2, 'hw2', '2018-01-02T23:59:00Z', course, datetime_format) assignment3 = Assignment(3, 'hw3', '2018-01-02T23:59:00Z', course, datetime_format) assignment4 = Assignment(4, 'hw4', '2018-01-02T23:59:00Z', course, datetime_format) self.grade1 = Grade(student, course, assignment1, 0.85) self.grade2 = Grade(student, course, assignment2, 0.75) self.grade3 = Grade(student, course, assignment3, 0.65) self.grade4 = Grade(student, course, assignment4, 0.55) self.enrollment = Enrollment(student, course, [self.grade1], 0.75)
def parse_grade(grades_page): try: disciplines_raw = [ [cell.text for cell in row("td")] for row in BeautifulSoup(grades_page.content, features="lxml")("tr") ][1:] disciplines = Grade(disciplines_raw).__dict__ except: disciplines = None return disciplines
def insertGrade(): if request.method == 'POST': grade = request.form['grade'] student_id = request.form['student_id'] course_id = request.form['course_id'] grade = Grade(grade, student_id, course_id) if insertGrade(grade): return redirect(url_for('home')) else: error = 'ERROR' return render_template('insert-grade.html', error=error) else: return render_template('insert-grade.html')
from config.routes import routes from modules.linechart_module import LineChartModule from modules.fcq_card_module import FcqCardModule from models.fcq import Fcq from models.grade import Grade from models.course import Course from models.instructor import Instructor from models.department import Department from handlers.not_found_handler import NotFoundHandler import logging settings = { 'cookie_secret': 'PqITv9b7QUyoAUUcgfRtReoZIXjQrEKKk9fpQpGu6MU=', 'template_path': 'templates/', 'static_path': 'static/', 'grade': Grade(), 'fcq': Fcq(), 'course': Course(), 'instructor': Instructor(), 'department': Department(), 'default_handler_class': NotFoundHandler, 'ui_modules': { 'chart_overtime': LineChartModule, 'fcq_card': FcqCardModule } } def initialize_settings(): settings['debug'] = options.debug settings['autoreload'] = options.debug
enrollment = Enrollment( student, course, current_score=current_scores_dict.get( student.lms_id)) student_grades = [] for assignment in assignments: # Find the entry in grades_dict corresponding to this assignment assignment_score = [ s for s in grades_dict.get( str(student.lms_id), []) if str(s['lms_id']) == str(assignment.lms_id) ] if assignment_score: student_grades.append( Grade(student, course, assignment, assignment_score[0].get('score'))) enrollment.add_grades(student_grades) student.add_enrollments(enrollment) # Context dictionaries are used by Jinja to create the emails course_context_dicts = [] for course in instructor.courses: logger.info(f'Finding outliers for {course.short_name}...') course_outliers = defaultdict(list) if course.students is not None: for student in course.students: # Create CI's for each student -> floats enrollment = student.get_enrollment_by_course(course) # Look for new good/bad results -> Assignments if ref_date is not None:
def seed_grades(): for grade in grades: new_grade = Grade(**grade) db.session.add(new_grade) db.session.commit()
def digest_grades(db, conn): data = dataSet('data/grades/grades.csv') grade_data = list(map(Grade().sanitize_from_raw, data.raw_data)) dci_from_data(grade_data, db, conn) batch_insert(db, conn, grade_data, 'Grade')
def rowToGrade(row): grade = row[0] student_id = row[1] course_id = row[2] return Grade(grade, student_id, course_id)