self.r_params["user_test_count"] = count self.r_params["user_tests"] = \ query.slice(offset, offset + page_size).all() self.r_params["user_test_page"] = page self.r_params["user_test_pages"] = \ (count + page_size - 1) // page_size def render_params_for_remove_confirmation(self, query): count = query.count() if self.r_params is None: self.r_params = self.render_params() self.r_params["submission_count"] = count FileHandler = file_handler_gen(BaseHandler) class FileFromDigestHandler(FileHandler): """Return the file, using the given name, and as plain text.""" @require_permission(BaseHandler.AUTHENTICATED) def get(self, digest, filename): # TODO: Accept a MIME type self.sql_session.close() self.fetch(digest, "text/plain", filename) def SimpleHandler(page, authenticated=True, permission_all=False): if permission_all: class Cls(BaseHandler): @require_permission(BaseHandler.PERMISSION_ALL)
if len(self.contest.allowed_localizations) > 0: lang_codes = filter_language_codes( lang_codes, self.contest.allowed_localizations) for lang_code, trans in self.langs.iteritems(): language_name = None # Filter lang_codes with allowed localizations if lang_code not in lang_codes: continue try: language_name = translate_language_country_code( lang_code, trans) except ValueError: language_name = translate_language_code( lang_code, trans) ret["lang_names"][lang_code.replace("_", "-")] = language_name ret["cookie_lang"] = self.cookie_lang ret["browser_lang"] = self.browser_lang return ret def get_login_url(self): """The login url depends on the contest name, so we can't just use the "login_url" application parameter. """ return self.contest_url() FileHandler = file_handler_gen(ContestHandler)