@@ -51,7 +51,7 @@ def _format_penalty_rules_yaml(penalty_rules):
51
51
return yaml_doc
52
52
53
53
54
- @app .route ('/homework ' , 'homework_main' )
54
+ @app .route ('/h ' , 'homework_main' )
55
55
class HomeworkMainHandler (contest .ContestMixin , base .Handler ):
56
56
@base .require_perm (builtin .PERM_VIEW_HOMEWORK )
57
57
async def get (self ):
@@ -72,7 +72,7 @@ async def get(self):
72
72
self .render ('homework_main.html' , tdocs = tdocs , calendar_tdocs = calendar_tdocs )
73
73
74
74
75
- @app .route ('/homework /{tid:\w{24}}' , 'homework_detail' )
75
+ @app .route ('/h /{tid:\w{24}}' , 'homework_detail' )
76
76
class HomeworkDetailHandler (contest .ContestMixin , base .OperationHandler ):
77
77
DISCUSSIONS_PER_PAGE = 15
78
78
@@ -130,7 +130,7 @@ async def post_attend(self, *, tid: objectid.ObjectId):
130
130
self .json_or_redirect (self .url )
131
131
132
132
133
- @app .route ('/homework /{tid:\w{24}}/code' , 'homework_code' )
133
+ @app .route ('/h /{tid:\w{24}}/code' , 'homework_code' )
134
134
class HomeworkCodeHandler (base .OperationHandler ):
135
135
@base .limit_rate ('homework_code' , 3600 , 60 )
136
136
@base .route_argument
@@ -157,7 +157,7 @@ async def get(self, *, tid: objectid.ObjectId):
157
157
file_name = '{}.zip' .format (tdoc ['title' ]))
158
158
159
159
160
- @app .route ('/homework /{tid}/{pid:-?\d+|\w{24} }' , 'homework_detail_problem' )
160
+ @app .route ('/h /{tid}/p/ {pid:[a-zA-Z0-9]+ }' , 'homework_detail_problem' )
161
161
class HomeworkDetailProblemHandler (contest .ContestMixin , base .Handler ):
162
162
@base .route_argument
163
163
@base .require_perm (builtin .PERM_VIEW_HOMEWORK )
@@ -188,7 +188,7 @@ async def get(self, *, tid: objectid.ObjectId, pid: document.convert_doc_id):
188
188
page_title = pdoc ['title' ], path_components = path_components )
189
189
190
190
191
- @app .route ('/homework /{tid}/{pid}/submit' , 'homework_detail_problem_submit' )
191
+ @app .route ('/h /{tid}/p /{pid}/submit' , 'homework_detail_problem_submit' )
192
192
class HomeworkDetailProblemSubmitHandler (contest .ContestMixin , base .Handler ):
193
193
@base .route_argument
194
194
@base .require_perm (builtin .PERM_VIEW_HOMEWORK )
@@ -257,7 +257,7 @@ async def post(self, *, tid: objectid.ObjectId, pid: document.convert_doc_id,
257
257
self .json_or_redirect (self .reverse_url ('record_detail' , rid = rid ))
258
258
259
259
260
- @app .route ('/homework /{tid}/scoreboard' , 'homework_scoreboard' )
260
+ @app .route ('/h /{tid}/scoreboard' , 'homework_scoreboard' )
261
261
class HomeworkScoreboardHandler (contest .ContestMixin , base .Handler ):
262
262
@base .route_argument
263
263
@base .require_perm (builtin .PERM_VIEW_HOMEWORK )
@@ -275,7 +275,7 @@ async def get(self, *, tid: objectid.ObjectId):
275
275
page_title = page_title , path_components = path_components )
276
276
277
277
278
- @app .route ('/homework /{tid}/scoreboard/download/{ext}' , 'homework_scoreboard_download' )
278
+ @app .route ('/h /{tid}/scoreboard/download/{ext}' , 'homework_scoreboard_download' )
279
279
class HomeworkScoreboardDownloadHandler (contest .ContestMixin , base .Handler ):
280
280
def _export_status_as_csv (self , rows ):
281
281
# \r\n for notepad compatibility
@@ -357,7 +357,7 @@ async def post(self, *, title: str, content: str,
357
357
self .json_or_redirect (self .reverse_url ('homework_detail' , tid = tid ))
358
358
359
359
360
- @app .route ('/homework /{tid}/edit' , 'homework_edit' )
360
+ @app .route ('/h /{tid}/edit' , 'homework_edit' )
361
361
class HomeworkEditHandler (contest .ContestMixin , base .Handler ):
362
362
@base .require_priv (builtin .PRIV_USER_PROFILE )
363
363
@base .require_perm (builtin .PERM_EDIT_HOMEWORK )
0 commit comments