Exemplo n.º 1
0
def justify_argument(request) -> dict:
    r"""
    View configuration for discussion step, where we will ask the user for her a justification of her opinion/interest.

    Path: /discuss/{slug}/justify/{argument_id:\d+}/{attitude}/{relation}

    :param request: request of the web server
    :return: dict
    """
    LOG.debug("Justify an argument. %s", request.matchdict)
    emit_participation(request)

    db_argument: Argument = request.validated['argument']
    db_issue = request.validated['issue']
    db_user = request.validated['user']
    inner_attitude = request.validated['attitude']
    relation = request.validated['relation']

    history = history_handler.save_and_set_cookie(request, db_user, db_issue)
    prepared_discussion = discussion.justify_argument(db_issue, db_user,
                                                      db_argument,
                                                      inner_attitude, relation,
                                                      history, request.path)
    modify_discussion_url(prepared_discussion)
    modify_discussion_bubbles(prepared_discussion, request.registry)

    append_extras_dict_during_justification_argument(request, db_user,
                                                     db_issue,
                                                     prepared_discussion)

    return prepared_discussion
Exemplo n.º 2
0
def discussion_justify_argument(request) -> dict:
    """
    View configuration for discussion step, where we will ask the user for her a justification of her opinion/interest.

    Path: /discuss/{slug}/justify/{argument_id:\d+}/{attitude}/{relation}

    :param request: request of the web server
    :return: dict
    """
    logger('discussion_justify_argument',
           'request.matchdict: {}'.format(request.matchdict))

    db_argument: Argument = request.validated['argument']
    db_issue = request.validated['issue']
    db_user = request.validated['user']
    attitude = request.validated['attitude']
    relation = request.validated['relation']

    history = history_handler.handle_history(request, db_user, db_issue)
    prepared_discussion = discussion.justify_argument(db_issue, db_user,
                                                      db_argument, attitude,
                                                      relation, history,
                                                      request.path)
    __modify_discussion_url(prepared_discussion)
    __modify_discussion_bubbles(prepared_discussion, request.registry)

    __append_extras_dict_during_justification_argument(request, db_user,
                                                       db_issue,
                                                       prepared_discussion)

    return prepared_discussion
Exemplo n.º 3
0
def discussion_justify_argument(request) -> dict:
    """
    Justify an argument. Attitude and relation are important to show the correct items for the user.

    /{slug}/justify/{argument_id}/{attitude}/{relation}

    :param request:
    :return:
    """
    db_user = request.validated['user']
    db_issue = request.validated['issue']
    history = history_handler.save_and_set_cookie(request, db_user, db_issue)

    prepared_discussion = discussion.justify_argument(
        db_issue, db_user, request.validated['argument'],
        request.validated['attitude'], request.validated['relation'], history,
        request.path)
    bubbles, items = extract_items_and_bubbles(prepared_discussion)

    return {'bubbles': bubbles, 'items': items}