def assignment_submit(assignments_id): """ Student submit assignment :param assignments_id: :return: """ assignment = Assignment.get_by_id(assignments_id) submit = Submition.get_submit( user_session(session['user'], session['type']).id, assignments_id) if request.method == "POST": content = request.form['content'] if assignment.type == 'group': team_id = user_session(session['user'], session['type']).team_id team = Team.get_by_id(team_id) team_members = team.get_members() for student in team_members: submit = Submition.get_submit(student.id, assignments_id) submit.change_content(content) else: submit.change_content(content) return redirect( url_for('assignment_controller.view_assignments', assignments_id=assignments_id)) return render_template('stud-submit.html', user=user_session(session['user'], session['type']), assignment=assignment, submit=submit)
def list_checkpoints(): """ List all checkpoints :return: template """ user = user_session(session['user'], session['type']) choose = None if isinstance(user, Mentor): choose = "Mentor" list_checkpoints = Checkpoint.get_list_distinct() return render_template('viewcheckpoints.html', user=user_session(session['user'], session['type']), choose=choose, list_checkpoints=list_checkpoints) elif isinstance(user, Student): choose = "Student" list_checkpoints = Checkpoint.get_by_student_id(user.id) return render_template('viewcheckpoints.html', user=user_session(session['user'], session['type']), choose=choose, list_checkpoints=list_checkpoints) else: return render_template('404.html', user=user_session(session['user'], session['type']))
def list_assignments(): """ List assignments GET: returns 404 or Student view or Mentor view POST: returns HTTP 200 on success and redirect to list-assignments page """ user = user_session(session['user'], session['type']) if isinstance(user, Mentor): choose = "Mentor" assignListOfObjects = Assignment.get_list() return render_template('viewassignments.html', user=user_session(session['user'], session['type']), choose=choose, assignListOfObjects=assignListOfObjects) elif (isinstance(user, Student)): choose = "Student" student_id = user_session(session['user'], session['type']).id student_assignments = Assignment.get_all_assigmnets(student_id) return render_template('viewassignments.html', user=user_session(session['user'], session['type']), choose=choose, student_assignments=student_assignments) else: return render_template('404.html', user=user_session(session['user'], session['type']))
def grade_assignment(): """ List user of assignments and add possibility to grade it :return: """ if request.method == 'POST': if request.form['assignmentID']: assigID = Assignment.get_by_id(request.form['assignmentID']) studentsDetails = Assignment.get_students_of_assigmnent(assigID.id) return render_template('grade_assignment.html', user=user_session(session['user'], session['type']), students=studentsDetails, assignment=assigID) elif request.method == "GET": assigID = Assignment.get_by_id(request.args['assignmentID']) studentsDetails = Assignment.get_students_of_assigmnent(assigID.id) return render_template('grade_assignment.html', user=user_session(session['user'], session['type']), students=studentsDetails, assignment=assigID) else: return render_template('404.html', user=user_session(session['user'], session['type']))
def add_checkpoint(): """ GET: returns add assistant formula POST: returns list of assistant with new assistant added """ user = user_session(session['user'], session['type']) if isinstance(user, Mentor): if request.method == 'POST': if request.form['add_checkpoint']: students = Student.list_students() checkpoint_name = request.form['checkpoint_name'] date = request.form['date'] Checkpoint.add_checkpoint_students( checkpoint_name, date, user_session(session['user'], session['type']).id, students) flash('Checkpoint was added') return redirect( url_for('checkpoint_controller.list_checkpoints')) return render_template('add_checkpoint.html', user=user_session(session['user'], session['type'])) return render_template('404.html', user=user_session(session['user'], session['type']))
def view_assignments(assignments_id): """ List all assignments of user :param assignments_id: :return: """ assignment = Assignment.get_by_id(assignments_id) submit = Submition.get_submit( user_session(session['user'], session['type']).id, assignments_id) return render_template('stud_view_assiment.html', user=user_session(session['user'], session['type']), assignment=assignment, submit=submit)
def delete_checkpoint(): user = user_session(session['user'], session['type']) if isinstance(user, Mentor): if request.method == 'POST': if request.form['action']: checkpoint_name = request.form['checkpoint_name'] Checkpoint.remove_checkpoint(checkpoint_name) flash('Checkpoint was deleted') return redirect( url_for('checkpoint_controller.list_checkpoints')) return render_template('404.html', user=user_session(session['user'], session['type']))
def list_students(): """ GET to generate a list of students """ students = Student.list_students() return render_template('viewstudents.html', user=user_session(session['user'], session['type']), students=students)
def grade_checkpoint(checkpoint_name): user = user_session(session['user'], session['type']) if isinstance(user, Mentor): if request.method == 'POST': id_list = request.form.getlist('id[]') grade_list = request.form.getlist('checkpoint-grade[]') Checkpoint.grade_checkpoints(grade_list, id_list) return redirect(url_for('checkpoint_controller.list_checkpoints')) chkp_list = Checkpoint.get_details_checkpoint_by_name(checkpoint_name) return render_template('grade_checkpoint.html', checkpoint_name=checkpoint_name, chkp_list=chkp_list, user=user_session(session['user'], session['type'])) return render_template('404.html', user=user_session(session['user'], session['type']))
def statistics(): """Return statistics.html with Student objects.""" students = Student.list_students() if session['type'] == 'Student': students = [ student for student in students if student.id == int(session['user']) ] return render_template('statistics.html', user=user_session(session['user'], session['type']), students=students)
def add_team(): """ Return team_form.html POST: Add team to database basing on data from request.form['name'] and redirect user to list-teams definition. """ if request.method == 'POST': Team(request.form['name']).add_team() flash('Team was added') return redirect('list-teams') return render_template("team_form.html", user=user_session(session['user'], session['type']))
def list_mentors(): """ GET to generate a list of mentors """ mentors_list = Mentor.list_mentors() add = 'employee_controller.add_mentor' edit = 'employee_controller.edit_mentor' delete = 'employee_controller.delete_mentor' return render_template('viewemployee.html', user=user_session(session['user'], session['type']), employee_list=mentors_list, employee='Mentor', add=add, edit=edit, delete=delete)
def add_assistant(): """ GET: returns add assistant formula POST: returns list of assistant with new assistant added """ if request.method == 'POST': save_employee('assistant', 'add') flash('Assistant was added') return redirect(url_for('employee_controller.list_assistants')) return render_template('addemployee.html', user=user_session(session['user'], session['type']), employee='Assistant', list='employee_controller.list_assistants')
def list_assistants(): """ GET to generate a list of assistants """ assistants_list = Employee.list_employee('assistant') add = 'employee_controller.add_assistant' edit = 'employee_controller.edit_assistant' delete = 'employee_controller.delete_assistant' return render_template('viewemployee.html', user=user_session(session['user'], session['type']), employee_list=assistants_list, employee='Assistant', add=add, edit=edit, delete=delete)
def add_assignment(): """ Add assignment :return: """ if request.method == 'POST': if request.form['add_assignment']: title = request.form['title'] description = request.form['description'] due_to = request.form['due_to'] type = request.form['type'] Assignment.create( title, description, type, user_session(session['user'], session['type']).username, due_to, user_session(session['user'], session['type']).id) flash('Assignment was added') return redirect(url_for('assignment_controller.list_assignments')) return render_template('addassignment.html', user=user_session(session['user'], session['type']))
def grade_user_assignments(username): """ Grade assignment of user if you are mentor :param username: :return: """ if request.method == "POST": if request.form['grade_user'] == 'grade': assignment_id = request.form['assignment'] student_id = request.form['id'] assignment = Assignment.get_by_id(assignment_id) student = Student.get_by_id(student_id) student_submit = Submition.get_submit(student_id, assignment_id) return render_template('grade_user_assignments.html', user=user_session(session['user'], session['type']), student=student, assignment=assignment, student_submit=student_submit) elif request.form['grade_user'] == 'Save': submit_id = request.form['submit_id'] new_grade = request.form['new_grade'] assignment_id = request.form['assignment_id'] assignment = Assignment.get_by_id(assignment_id) submit = Submition.get_by_id(submit_id) if assignment.type == 'group': team_id = Student.get_by_id(submit.student_id).team_id team = Team.get_by_id(team_id) team_members = team.get_members() for student in team_members: submit = Submition.get_submit(student.id, assignment_id) submit.update_grade(new_grade) else: submit.update_grade(new_grade) return redirect( url_for('assignment_controller.grade_assignment', assignmentID=assignment_id)) return render_template('404.html', user=user_session(session['user'], session['type']))
def add_mentor(): """ GET: returns add mentor formula POST: returns list of mentors with new mentor added """ if request.method == 'POST': save_employee('mentor', 'add') flash('Mentor was added') return redirect(url_for('employee_controller.list_mentors')) return render_template('addemployee.html', user=user_session(session['user'], session['type']), list='employee_controller.list_mentors')
def add_student(): """ GET: returns add student formula POST: returns list of students with new student added """ teams = Team.list_teams() if request.method == 'POST': save_student('add') flash('Student was added') return redirect(url_for('student_controller.list_students')) return render_template('student_form.html', user=user_session(session['user'], session['type']), teams=teams)
def edit_mentor(employee_id): """ Edit mentor formula to edit mentor details :param employee_id: int GET return edit mentor formula POST return list of mentors with edited mentor changes saved """ mentor = Mentor.get_by_id(employee_id) if request.method == 'POST': save_employee('mentor', 'edit', mentor) flash('Mentor was edited') return redirect(url_for('employee_controller.list_mentors')) return render_template('editemployee.html', user=user_session(session['user'], session['type']), employee=mentor, list='employee_controller.list_mentors')
def edit_assistant(employee_id): """ Edit assistant formula to edit assistant details :param employee_id: int GET return edit assistants formula POST return list of assistants with edited assistant changes saved """ assistant = Employee.get_by_id(employee_id, 'assistant') if request.method == 'POST': save_employee('assistant', 'edit', assistant) flash('Assistant was edited') return redirect(url_for('employee_controller.list_assistants')) return render_template('editemployee.html', user=user_session(session['user'], session['type']), employee=assistant, list='employee_controller.list_assistants')
def edit_team(team_id): """ Return team_form.html with team basing on given team_id POST: Edit team with given values in request.form['name'] and redirect user to list-teams definition. :param team_id: team id in database """ team = Team.get_by_id(team_id) if request.method == 'POST': team.name = request.form['name'] team.edit_team() flash('Team was edited') return redirect(url_for('team_controller.list_teams')) return render_template('team_form.html', user=user_session(session['user'], session['type']), team=team)
def edit_student(student_id): """ Edit student formula to edit student details :param student_id: int GET return edit student formula POST return list of students with edited student changes saved """ teams = Team.list_teams() student = Student.get_by_id(student_id) print('Editing') if student: if request.method == 'POST': save_student('edit', student.id) flash('Student was edited') return redirect(url_for('student_controller.list_students')) return render_template('edit_student_form.html', user=user_session(session['user'], session['type']), student=student, teams=teams) return redirect('list-students')
def attendance(): """ GET: Return attendance.html with Students object. POST: Add or update attendance in database by given value in request.form. Redirect to attendance definition. """ students = Student.list_students() date = datetime.datetime.today().date() students_checked = Attendance.get_attendance_day(date) if request.method == 'POST': if Attendance.already_checked(date): for student in students_checked: status = bool(int(request.form[str(student[0])])) Attendance.update_attendance_day(int(student[0]), date, status) flash('Attendence was updated') else: for student in students: status = bool(request.form[str(student.id)]) Attendance(date, status, student.id).add() flash('Attendence was checked') return redirect(url_for('attendance_controller.attendance')) return render_template('attendance.html', user=user_session(session['user'], session['type']), students=students, date=date, students_checked=students_checked)
def list_teams(): """Return viewteams.html with list of id teams and teams names.""" teams = Team.list_teams() return render_template('viewteams.html', user=user_session(session['user'], session['type']), teams=teams)
def index(): """ handle main index page, display nav of current user :return: """ return render_template('index.html', user=user_session(session['user'], session['type']))