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 set_marks(course_id, excel_file): book = None try: book = openpyxl.load_workbook(excel_file) except: raise ExtensionException(excel_file) sheet = book.active p_file = get_marks(course_id) p_book = openpyxl.load_workbook(p_file) h_p_sheet = p_book['Hidden'] p_sheet = p_book.active course = CourseDB.get_course(course_id) t_count = len(course['task_numbers']) u_count = len(course['participants']) for i in range(6, 6 + u_count): for j in range(3, 3 + t_count): int_cell = None try: int_cell = int(sheet.cell(i, j).value) except: p_book.close() book.close() raise CellValueException( i, j, '{0} must be an integer.'.format(sheet.cell(i, j).value)) highest_mark = int(p_sheet.cell(4, j)) if 0 <= int_cell <= highest_mark: u_id = h_p_sheet.cell(i, 1).value t_id = h_p_sheet.cell(3, j).value CourseDB.set_mark(course_id, t_id, u_id, 'value', str(int_cell)) else: p_book.close() book.close() raise CellValueException( i, j, '{0} must be greater than 0 and less than {1}.'.format( int_cell, highest_mark)) p_book.close() book.close()
def date(self, date): CourseDB.set_mark(self.__course_id, self.__task_number, self.__user_id, 'date', date)