def value(self, mrk): if not (CourseDB.get_mark(self.__course_id, self.__task_number, self.__user_id)["date"]): CourseDB.set_mark(self.__course_id, self.__task_number, self.__user_id, 'date', date.today()) CourseDB.set_mark(self.__course_id, self.__task_number, self.__user_id, 'mark', mrk)
def __init__(self, course_id, task_number, user_id): self.__course_id = course_id self.__task_number = task_number self.__user_id = user_id if not (CourseDB.get_mark(self.__course_id, self.__task_number, self.__user_id)): CourseDB.create_mark(self.__course_id, self.__task_number, self.__user_id, None, None)
def get_marks(course_id): file_name = 'ExcelData/Marks_{0}.xlsx'.format(course_id) book = xlsxwriter.Workbook(file_name) sheet = book.add_worksheet('Успеваемость') h_sheet = book.add_worksheet('Hidden') h_sheet.hide() course = CourseDB.get_course(course_id) centered_format = book.add_format({ 'align': 'center', 'valign': 'vcenter', 'border': 1 }) users = list([UserDB.get_user(u_id) for u_id in course['participants']]) sheet.merge_range(0, 0, 1, 0, 'Студенты', centered_format) sheet.set_column(0, 0, len(max([user['name'] for user in users])) + 4) task_count = len(course['task_numbers']) sheet.merge_range(0, 1, 1, 1 + task_count, 'Задачи', centered_format) sheet.write(2, 1, 'Название') sheet.write(3, 1, 'Макс. балл') sheet.write(4, 1, 'Дедлайн') for i, task in enumerate([ CourseDB.get_task(course_id, t_id) for t_id in course['task_numbers'] ]): sheet.write(2, 2 + i, task['name']) h_sheet.write(2, 2 + i, task['task_id']) sheet.write(3, 2 + i, task['highest_mark']) sheet.write(4, 2 + i, task['deadline']) for i, user in enumerate(users): sheet.write(i + 5, 0, str(i + 1) + '. ' + user['name']) h_sheet.write(i + 5, 0, user['u_id']) for j, mark in enumerate([ CourseDB.get_mark(course_id, t_id, user['u_id']) for t_id in course['task_numbers'] ]): sheet.write(i + 5, j + 2, mark['mark']) book.close() return file_name
def date(self): return CourseDB.get_mark(self.__course_id, self.__task_number, self.__user_id)["date"]
def value(self): return CourseDB.get_mark(self.__course_id, self.__task_number, self.__user_id)["mark"]