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))}
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))}
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]}
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}
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}
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}
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))}
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))}