def editorials(): if len(request.args) < 1: redirect(URL("default", "index")) record = db.problem(int(request.args[0])) if record is None: redirect(URL("default", "index")) uetable = db.user_editorials atable = db.auth_user query = (uetable.problem_id == record.id) user_editorials = db(query).select(orderby=~uetable.added_on) accepted_count = len( filter( lambda x: (x.verification == "accepted" or (auth.is_logged_in() and (x.user_id == session.user_id or session.user_id == 1))), user_editorials)) if accepted_count == 0: if auth.is_logged_in(): table_contents = T( "No editorials found! Please contribute to the community by writing an editorial if you've solved the problem." ) else: table_contents = T( "No editorials found! Please login if you want to write an editorial." ) return dict(name=record.name, link=record.link, editorial_link=record.editorial_link, table=DIV(BR(), H6(table_contents)), problem_id=record.id, site=utilities.urltosite(record.link)) user_id = session.user_id if auth.is_logged_in() else None table = utilities.render_user_editorials_table( user_editorials, user_id, user_id, "read-editorial-problem-editorials-page") return dict(name=record.name, link=record.link, editorial_link=record.editorial_link, table=table, problem_id=record.id, site=utilities.urltosite(record.link))
def get_activity(): if request.extension != "json" or \ request.vars.user_id is None or \ request.vars.custom is None: raise HTTP(400, "Bad request") return user_id = int(request.vars.user_id) custom = (request.vars.custom == "True") stable = db.submission uetable = db.user_editorials post_vars = request.post_vars date = post_vars["date"] if date is None: return dict(table="") start_time = date + " 00:00:00" end_time = date + " 23:59:59" query = (stable.time_stamp >= start_time) & \ (stable.time_stamp <= end_time) ue_query = (uetable.added_on >= start_time) & \ (uetable.added_on <= end_time) if custom is False and auth.is_logged_in() and session.user_id == user_id: ue_query &= True else: ue_query &= (uetable.verification == "accepted") if custom: query &= (stable.custom_user_id == user_id) ue_query &= False else: query &= (stable.user_id == user_id) ue_query &= (uetable.user_id == user_id) submissions = db(query).select(orderby=~stable.time_stamp) user_editorials = db(ue_query).select(orderby=~uetable.id) editorials_table = utilities.render_user_editorials_table( user_editorials, user_id, session.user_id if auth.is_logged_in() else None, "read-editorial-user-profile-page") if len(submissions) > 0 or len(user_editorials): div_element = DIV(H3(T("Activity on") + " " + date)) if len(submissions) > 0: table = utilities.render_table(submissions, [], session.user_id) div_element.append(table) if len(user_editorials) > 0: div_element.append(BR()) if len(user_editorials) > 0: div_element.append(editorials_table) else: div_element = H5(T("No activity on") + " " + date) return dict(table=div_element)