예제 #1
0
파일: helper.py 프로젝트: kroschu/dbas
def __get_issue(request: Request, slug: str, db_last_topic: Issue) -> Issue:
    """

    :param request:
    :param slug:
    :param db_last_topic:
    :return:
    """
    if 'slug' in request.matchdict:
        slug = request.matchdict['slug']
        if not isinstance(request.matchdict['slug'],
                          str) and len(request.matchdict['slug']) > 0:
            slug = request.matchdict['slug'][0]

    if not slug and db_last_topic:
        issue = db_last_topic
    elif slug:
        issue = issue_handler.get_id_of_slug(slug)
    else:
        issue = issue_handler.get_issue_id(request)

    if not issue:
        raise HTTPNotFound()

    if isinstance(issue, int):
        db_issue = DBDiscussionSession.query(Issue).get(issue)
    else:
        db_issue = issue

    return db_issue
예제 #2
0
def prepare_request_dict(request: Request):
    """

    :param request:
    :return:
    """
    logger('Renderer', 'def')

    db_user = request.validated['user']
    nickname = db_user.nickname if db_user.nickname != nick_of_anonymous_user else None
    db_last_topic = history_handler.get_saved_issue(db_user)

    slug = None
    if 'slug' in request.matchdict:
        slug = request.matchdict['slug']
        if not isinstance(request.matchdict['slug'],
                          str) and len(request.matchdict['slug']) > 0:
            slug = request.matchdict['slug'][0]

    if not slug and db_last_topic:
        issue = db_last_topic
    elif slug:
        issue = issue_handler.get_id_of_slug(slug)
    else:
        issue = issue_handler.get_issue_id(request)

    ui_locales = get_language_from_cookie(request)
    if not issue:
        raise HTTPNotFound()

    if isinstance(issue, int):
        db_issue = DBDiscussionSession.query(Issue).get(issue)
    else:
        db_issue = issue

    issue_handler.save_issue_id_in_session(db_issue.uid, request)
    history = history_handler.handle_history(request, db_user, db_issue)
    set_language_for_visit(request)

    return {
        'nickname': nickname,
        'user': db_user,
        'path': request.path,
        'app_url': request.application_url,
        'matchdict': request.matchdict,
        'params': request.params,
        'session': request.session,
        'registry': request.registry,
        'issue': db_issue,
        'history': history,
        'ui_locales': ui_locales
    }
예제 #3
0
 def test_get_id_of_slug(self):
     issue = DBDiscussionSession.query(Issue).filter_by(
         is_disabled=False).first()
     slug = issue.slug
     response = ih.get_id_of_slug(slug)
     self.assertEqual(response.uid, issue.uid)
예제 #4
0
 def test_get_id_of_slug(self):
     queried_issue = ih.get_id_of_slug(self.issue_cat_or_dog.slug)
     self.assertEqual(queried_issue.uid, self.issue_cat_or_dog.uid)