def repository(request, sid, cid): """ 教学系统资源仓库列表 :param request: :param cid: Course Id :param sid: :return: """ wejudge_session = WeJudgeEducationSession(request) # 创建会话 response = WeJudgeResponse(wejudge_session) # 创建响应 manager = libs.EducationController(request, response, sid) manager.get_course(cid) # 检查访问权限 manager.login_check() manager.check_assistant() # 助教提权 # 检查课程访问权限 manager.check_course_visit() response.set_navlist([ const.apps.EDUCATION, [manager.school.name, 'education.school', (manager.school.id, )], [ "%s (%s)" % (manager.course.name, manager.course.term), 'education.course.index', (manager.school.id, manager.course.id) ], ["教学资源仓库"] ]) return response.render_page( request, 'education/course/repository.tpl', { "course": manager.course, "school": manager.school, "page_name": "REPOSITORY" })
def arrangements(request, sid, cid): """ 教学系统课程排课管理 :param request: :param cid: Course Id :param sid: :return: """ wejudge_session = WeJudgeEducationSession(request) # 创建会话 response = WeJudgeResponse(wejudge_session) # 创建响应 manager = libs.EducationController(request, response, sid) manager.get_course(cid) # 检查访问权限 manager.login_check() manager.check_assistant() # 助教提权 # 检查课程访问权限 manager.check_course_visit() manager.check_user_privilege(2) response.set_navlist([ const.apps.EDUCATION, [manager.school.name, 'education.school', (manager.school.id, )], [ "%s (%s)" % (manager.course.name, manager.course.term), 'education.course.index', (manager.school.id, manager.course.id) ], ["排课管理"] ]) return response.render_page( request, 'education/course/arrangements.tpl', { "course": manager.course, "school": manager.school, "page_name": "ARRANGEMENTS" })
def management(request, sid): wejudge_session = WeJudgeEducationSession(request) # 创建会话 response = WeJudgeResponse(wejudge_session) # 创建响应 manager = libs.EducationController(request, response, sid) # 检查访问权限 manager.login_check() manager.check_user_privilege(3) response.set_navlist([ const.apps.EDUCATION, [manager.school.name, 'education.school', (manager.school.id, )], ['学校管理'] ]) academies = [ academy.json(items=['id', 'name']) for academy in manager.get_school_academies() ] return response.render_page( request, 'education/school/manager.tpl', { "school": manager.school, "term_list": manager.get_terms_list(), "now_term": manager.term, "WJ_EDU_ARC": system.WEJUDGE_EDU_ACCOUNT_ROLES_CALLED, "page_name": "MANAGER", "academies": json.dumps(academies) })
def authorize_education(request, sid): """ Oauth2教学系统授权页面 :param request: :return: """ wejudge_session = WeJudgeEducationSession(request) # 创建会话 response = WeJudgeResponse(wejudge_session) # 创建响应 education_manager = EduLibs.EducationController(request, response, sid) manager = libs.Oauth2Service(request, response) rel, url, ctx = manager.authorize() response.set_navlist([ const.apps.EDUCATION, [education_manager.school.name, 'education.school', (education_manager.school.id,)], ['WeJudge开放平台'], [manager.client.appname], ['应用授权'] ]) if not rel: ctx.update({ "school": education_manager.school, "page_name": "INDEX" }) return response.render_page(request, 'oauth2/authorize/education.tpl', ctx) else: return HttpResponseRedirect(url)
def school_index(request, sid): if not tools.is_numeric(sid): school = libs.EducationController.get_school_by_short_name(sid) return HttpResponseRedirect( reverse("education.school", args=[school.id])) wejudge_session = WeJudgeEducationSession(request) # 创建会话 response = WeJudgeResponse(wejudge_session) # 创建响应 manager = libs.EducationController(request, response, sid) __change_term(request, manager) response.set_navlist([const.apps.EDUCATION, [manager.school.name]]) # 设置学校访问记录 response.set_cookie('EDU_LAST_VISITED_SCHOOL', sid, expires=365 * 86400) academies = [ academy.json(items=['id', 'name']) for academy in manager.get_school_academies() ] storage = WeJudgeStorage(system.WEJUDGE_STORAGE_ROOT.EDUCATION_STORAGE, str(manager.school.id)) if storage.exists("intro.html"): fp = storage.open_file("intro.html", 'r') index_view = fp.read() fp.close() t = Template(index_view) index_view = t.render( Context({ "school": manager.school, "term_list": manager.get_terms_list(), "now_term": manager.term, "wejudge_session": manager.session })) else: index_view = "" return response.render_page( request, 'education/school/school.tpl', { "school": manager.school, "term_list": manager.get_terms_list(), "now_term": manager.term, "WJ_EDU_ARC": system.WEJUDGE_EDU_ACCOUNT_ROLES_CALLED, "page_name": "INDEX", "hide_breadcrumb": True, "academies": json.dumps(academies), "index_view": index_view })
def master_register_or_bind(request, sid): """ 注册或者绑定WeJudge主账户 :param request: :param sid: :return: """ wejudge_session = WeJudgeEducationSession(request) # 创建会话 response = WeJudgeResponse(wejudge_session) # 创建响应 manager = libs.EducationController(request, response, sid) result = manager.master_register_or_bind() return response.json(WeJudgeResult(msg=result))
def xls_import_account(request, sid): """ 导入学生账户 :param request: :param sid: :return: """ wejudge_session = WeJudgeEducationSession(request) # 创建会话 response = WeJudgeResponse(wejudge_session) # 创建响应 manager = libs.EducationController(request, response, sid) result = manager.xls_import_account() return response.json(WeJudgeResult(msg=result))
def save_school_info(request, sid): """ 增加/删除学年学期 :param request: :param sid: :return: """ wejudge_session = WeJudgeEducationSession(request) # 创建会话 response = WeJudgeResponse(wejudge_session) # 创建响应 manager = libs.EducationController(request, response, sid) result = manager.save_school_info() return response.json(WeJudgeResult(result))
def save_sections_data(request, sid): """ 保存上课时间信息 :param request: :param sid: :return: """ wejudge_session = WeJudgeEducationSession(request) # 创建会话 response = WeJudgeResponse(wejudge_session) # 创建响应 manager = libs.EducationController(request, response, sid) result = manager.save_sections_data() return response.json(WeJudgeResult(result))
def get_schools_info(request, sid): """ 获取学校的设置信息 :param request: :param sid: :return: """ wejudge_session = WeJudgeEducationSession(request) # 创建会话 response = WeJudgeResponse(wejudge_session) # 创建响应 manager = libs.EducationController(request, response, sid) result = manager.get_schools_info() return response.json(WeJudgeResult(result))
def delete_account(request, sid): """ 删除用户 :param request: :param sid: :return: """ wejudge_session = WeJudgeEducationSession(request) # 创建会话 response = WeJudgeResponse(wejudge_session) # 创建响应 manager = libs.EducationController(request, response, sid) result = manager.delete_account() return response.json(WeJudgeResult(result))
def get_account_list(request, sid): """ 获取学校账户列表 :param request: :param sid: :return: """ wejudge_session = WeJudgeEducationSession(request) # 创建会话 response = WeJudgeResponse(wejudge_session) # 创建响应 manager = libs.EducationController(request, response, sid) result = manager.get_account_list() return response.json(WeJudgeResult(result))
def create_course(request, sid): """ 创建课程 :param request: :param sid: :return: """ wejudge_session = WeJudgeEducationSession(request) # 创建会话 response = WeJudgeResponse(wejudge_session) # 创建响应 manager = libs.EducationController(request, response, sid) result = manager.create_course() return response.json(WeJudgeResult(result))
def api_course_asgn(request, sid): """ 教学系统首页作业和课程列表 :param request: :param sid: :return: """ wejudge_session = WeJudgeEducationSession(request) # 创建会话 response = WeJudgeResponse(wejudge_session) # 创建响应 manager = libs.EducationController(request, response, sid) result = manager.get_education_course_asgn_datas() return response.json(WeJudgeResult(result))
def change_year_terms(request, sid): """ 增加/删除学年学期 :param request: :param sid: :return: """ wejudge_session = WeJudgeEducationSession(request) # 创建会话 response = WeJudgeResponse(wejudge_session) # 创建响应 manager = libs.EducationController(request, response, sid) result = manager.change_year_terms() return response.json(WeJudgeResult(result))
def repository(request, sid): wejudge_session = WeJudgeEducationSession(request) # 创建会话 response = WeJudgeResponse(wejudge_session) # 创建响应 manager = libs.EducationController(request, response, sid) response.set_navlist([ const.apps.EDUCATION, [manager.school.name, 'education.school', (manager.school.id, )], ['教学资源仓库'] ]) return response.render_page(request, 'education/school/repository.tpl', { "school": manager.school, "page_name": "REPOSITORY", })
def course(request, sid, cid): """ 教学系统课程信息 :param request: :param cid: Course Id :param sid: :return: """ wejudge_session = WeJudgeEducationSession(request) # 创建会话 response = WeJudgeResponse(wejudge_session) # 创建响应 manager = libs.EducationController(request, response, sid) manager.get_course(cid) # 检查访问权限 manager.login_check() manager.check_assistant() # 助教提权 # 检查课程访问权限 manager.check_course_visit() response.set_navlist([ const.apps.EDUCATION, [manager.school.name, 'education.school', (manager.school.id, )], ["%s (%s)" % (manager.course.name, manager.course.term)] ]) return response.render_page( request, 'education/course/course.tpl', { "course": manager.course, "course_teachers": [teacher for teacher in manager.course.teacher.all()], "course_arrangements": [arrangement for arrangement in manager.course.arrangements.all()], "school": manager.school, "page_name": "INDEX" })