def grade_assignment(): ''' Prints the list of students to choose a student. Then prints assignments of the student. Then asks the user for the choice and changing the grade. ''' if Student.list_of_students == []: return mentor_view.print_empty_database_msg() view_students() student_index = get_student_index() if student_index is not None: assignment_controller.print_student_assignments(student_index) assignment = assignment_controller.get_assignment_form_user_input() if assignment: solution = assignment.solutions[student_index] if solution.can_be_graded: view.print_message(solution.get_content()) solution.grade = get_new_grade(assignment.max_grade) Assignment.save_assignments_to_file('assignments.csv') else: mentor_view.assignment_already_graded() else: mentor_view.no_such_assignment() else: mentor_view.index_doesnt_exist()
def edit_assignment(): ''' Lets user choose Assignemnt obj. and change it's attribiutes values Paramaters: None Returns: None Updates: Assignemnt obj. ''' print_assignments() assignment = get_assignment_form_user_input() if assignment: name, deadline, max_grade = get_valid_inputs() deadline = format_date(deadline) assignment.name = name assignment.deadline = deadline assignment.max_grade = max_grade Assignment.save_assignments_to_file('assignments.csv') else: no_assignment_message = assignment_view.get_no_assignment_message() view.print_message(no_assignment_message)
def create_assignment(): ''' Creates new Assignemnt obj. and updated Solutions of all Students objs. in data ''' name, add_date, deadline, max_grade, solutions = get_assignment_data() Assignment(name, add_date, deadline, max_grade, solutions) Assignment.save_assignments_to_file('assignments.csv')
def assign_assignments_to_new_student(): ''' Fallows adding student. Creates Solution objs. for all assignemts stored in system Paramaters: None Returns: None Updates: Solution, Assignment class data ''' for assignment in Assignment.list_of_assignments: assignment.solutions.append(Solution(0, '0', '0')) Assignment.save_assignments_to_file('assignments.csv')
def remove_student_solutions(student_index): ''' Fallows remowing student. Removes all his solutions stored in database. Parameters: student_index : int Returns: None Updated: Assignemnt, Solution classes data ''' for assignment in Assignment.list_of_assignments: del assignment.solutions[student_index] Assignment.save_assignments_to_file('assignments.csv')
def submit_assigment(student): ''' Choose assignment from list and change status assignment 'done'. Save change to file' Args: student - obj ''' student_index = Student.list_of_students.index(student) view_grades(student) number = None while not number: number = view.input_number() if number <= Assignment.amount_of_assignments(): assignment = Assignment.list_of_assignments[number - 1] assignment_controller.submit_solution_to_assignment(assignment, student_index) Assignment.save_assignments_to_file('assignments.csv') else: text = view_student.get_invalid_assignment_in_submit() view.print_message(text)