@@ -125,9 +125,11 @@ def load(src, dst, src_name, dst_name=None, conv=lambda i: i):
125125
126126
127127def parse_datetime (val ):
128+ if isinstance (val , datetime ):
129+ return val .astimezone (timezone .utc )
128130 if isinstance (val , (int , float )):
129131 return datetime .fromtimestamp (val , timezone .utc )
130- return datetime . fromisoformat ( val )
132+ raise ValueError ( "Invalid datetime format." )
131133
132134
133135def make_timedelta (t ):
@@ -173,11 +175,26 @@ def get_contest(self):
173175
174176 args = {}
175177
178+ # Contest information
176179 load (conf , args , ["name" , "nome_breve" ])
177180 load (conf , args , ["description" , "nome" ])
181+ load (conf , args , "allowed_localizations" )
182+ load (conf , args , "languages" )
183+ load (conf , args , "submissions_download_allowed" )
184+ load (conf , args , "allow_questions" )
185+ load (conf , args , "allow_user_tests" )
186+ load (conf , args , "score_precision" )
178187
179188 logger .info ("Loading parameters for contest %s." , args ["name" ])
180189
190+ # Logging in
191+ load (conf , args , "block_hidden_participations" )
192+ load (conf , args , "allow_password_authentication" )
193+ load (conf , args , "allow_registration" )
194+ load (conf , args , "ip_restriction" )
195+ load (conf , args , "ip_autologin" )
196+
197+ # Token parameters
181198 # Use the new token settings format if detected.
182199 if "token_mode" in conf :
183200 load (conf , args , "token_mode" )
@@ -219,16 +236,23 @@ def get_contest(self):
219236 if args ["token_gen_interval" ].total_seconds () == 0 :
220237 args ["token_gen_interval" ] = timedelta (minutes = 1 )
221238
239+ # Times
222240 load (conf , args , ["start" , "inizio" ], conv = parse_datetime )
223241 load (conf , args , ["stop" , "fine" ], conv = parse_datetime )
224- load (conf , args , ["per_user_time" ], conv = make_timedelta )
225242 load (conf , args , ["timezone" ])
243+ load (conf , args , ["per_user_time" ], conv = make_timedelta )
226244
245+ # Limits
227246 load (conf , args , "max_submission_number" )
228247 load (conf , args , "max_user_test_number" )
229248 load (conf , args , "min_submission_interval" , conv = make_timedelta )
230249 load (conf , args , "min_user_test_interval" , conv = make_timedelta )
231250
251+ # Analysis mode
252+ load (conf , args , "analysis_enabled" )
253+ load (conf , args , "analysis_start" , conv = parse_datetime )
254+ load (conf , args , "analysis_stop" , conv = parse_datetime )
255+
232256 tasks = load (conf , None , ["tasks" , "problemi" ])
233257 participations = load (conf , None , ["users" , "utenti" ])
234258 participations = [] if participations is None else participations
0 commit comments