예제 #1
0
파일: problem.py 프로젝트: riba2534/vj4
 async def get(self, *, pid: document.convert_doc_id):
   uid = self.user['_id'] if self.has_priv(builtin.PRIV_USER_PROFILE) else None
   pdoc = await problem.get(self.domain_id, pid, uid)
   if not self.own(pdoc, builtin.PERM_EDIT_PROBLEM_SELF):
     self.check_perm(builtin.PERM_EDIT_PROBLEM)
   udoc = await user.get_by_uid(pdoc['owner_uid'])
   path_components = self.build_path(
       (self.translate('problem_main'), self.reverse_url('problem_main')),
       (pdoc['title'], self.reverse_url('problem_detail', pid=pdoc['doc_id'])),
       (self.translate('problem_settings'), None))
   self.render('problem_settings.html', pdoc=pdoc, udoc=udoc, categories=problem.get_categories(),
               page_title=pdoc['title'], path_components=path_components)
예제 #2
0
async def render_or_json_problem_list(self, page, ppcount, pcount, pdocs,
                                      category, psdict, **kwargs):
    if 'page_title' not in kwargs:
        kwargs['page_title'] = self.translate(self.TITLE)
    if 'path_components' not in kwargs:
        kwargs['path_components'] = self.build_path(
            (self.translate(self.NAME), None))
    if self.prefer_json:
        list_html = self.render_html('partials/problem_list.html',
                                     page=page,
                                     ppcount=ppcount,
                                     pcount=pcount,
                                     pdocs=pdocs,
                                     psdict=psdict)
        stat_html = self.render_html('partials/problem_stat.html',
                                     pcount=pcount)
        lucky_html = self.render_html('partials/problem_lucky.html',
                                      category=category)
        path_html = self.render_html('partials/path.html',
                                     path_components=kwargs['path_components'])
        self.json({
            'title':
            self.render_title(kwargs['page_title']),
            'fragments': [{
                'html': list_html
            }, {
                'html': stat_html
            }, {
                'html': lucky_html
            }, {
                'html': path_html
            }]
        })
    else:
        self.render('problem_main.html',
                    page=page,
                    ppcount=ppcount,
                    pcount=pcount,
                    pdocs=pdocs,
                    category=category,
                    psdict=psdict,
                    categories=problem.get_categories(),
                    **kwargs)