Exemplo n.º 1
0
def discussion_reaction(request):
    """
    Return data from DBas discussion_reaction page.

    Path: /{slug}/reaction/{arg_id_user}/{relation}/{arg_id_sys}

    :param request: request
    :return: bubbles for information and items for the next step
    """
    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.reaction(db_issue, db_user,
                                              request.validated['arg_user'],
                                              request.validated['arg_sys'],
                                              request.validated['relation'],
                                              history, request.path)
    bubbles, items = extract_items_and_bubbles(prepared_discussion)

    keys = [
        item['attitude'] for item in prepared_discussion['items']['elements']
    ]

    return {'bubbles': bubbles, 'attacks': dict(zip(keys, items))}
Exemplo n.º 2
0
def discussion_support(request):
    """
    View configuration for discussion step, where we will present another supportive argument.

    Path: /{slug}/support/{arg_id_user}/{arg_id_sys}

    :param request: request
    :return: bubbles for information and items for the next step
    """
    LOG.debug("Support a statement. %s", request.matchdict)
    emit_participation(request)

    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.support(db_issue, db_user,
                                             request.validated['arg_user'],
                                             request.validated['arg_sys'],
                                             history, request.path)

    bubbles, items = extract_items_and_bubbles(prepared_discussion)

    keys = [
        item['attitude'] for item in prepared_discussion['items']['elements']
    ]

    return {'bubbles': bubbles, 'attacks': dict(zip(keys, items))}
Exemplo n.º 3
0
def discussion_finish(request):
    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.finish(db_issue, db_user,
                                            request.validated['argument'], history)

    return {'bubbles': extract_items_and_bubbles(prepared_discussion)[0]}
Exemplo n.º 4
0
def jump_to_argument_fn(request):
    """
    Jump directly to an argument to provoke user interaction.

    :param request:
    :return: Argument with a list of possible interactions
    """
    request.validated["from_api"] = True
    response = jump(request)
    bubbles, items = extract_items_and_bubbles(response)
    return {'bubbles': bubbles, 'items': items}
Exemplo n.º 5
0
def discussion_justify_statement(request) -> dict:
    """
    Pick attitude from path and query the statement. Show the user some statements to follow the discussion.

    Path: /{slug}/justify/{statement_id}/{attitude}

    :param request: request
    :return: dict
    """
    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_statement(
        db_issue, db_user, request.validated['statement'],
        request.validated['attitude'], history, request.path)
    bubbles, items = extract_items_and_bubbles(prepared_discussion)

    return {'bubbles': bubbles, 'items': items}
Exemplo n.º 6
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}
Exemplo n.º 7
0
def discussion_dontknow_argument(request) -> dict:
    """
    Dont know an argument.

    /{slug}/justify/{argument_id}/dontknow

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

    prepared_discussion = discussion.dont_know_argument(
        db_issue, db_user, request.validated['argument'], hist, request.path)
    bubbles, items = extract_items_and_bubbles(prepared_discussion)

    keys = [
        item['attitude'] for item in prepared_discussion['items']['elements']
    ]

    return {'bubbles': bubbles, 'attacks': dict(zip(keys, items))}
Exemplo n.º 8
0
def discussion_attitude(request):
    """
    Return data from DBas discussion_attitude page.

    /{slug}/attitude/{position_id}

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

    prepared_discussion = discussion.attitude(db_issue, db_user, db_position,
                                              history, request.path)
    bubbles, items = extract_items_and_bubbles(prepared_discussion)

    keys = [
        item['attitude'] for item in prepared_discussion['items']['elements']
    ]

    return {'bubbles': bubbles, 'attitudes': dict(zip(keys, items))}