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')
예제 #6
0
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)