def update_nugget_edge_attrs(corpus_id, nugget_id): """Handle update of node attrs.""" json_data = request.get_json() source = json_data["source"] target = json_data["target"] node_attrs = json_data["attrs"] corpus = get_corpus(corpus_id) response = json.dumps({'success': False}), 404, { 'ContentType': 'application/json' } if corpus is not None: if (source, target) in corpus.action_graph.edges() and\ nugget_id in corpus.nuggets(): # try: # Here I actually need to generate rewriting rule corpus.update_nugget_edge_attr_from_json(nugget_id, source, target, node_attrs) response = json.dumps({'success': True}), 200, { 'ContentType': 'application/json' } update_last_modified(corpus_id) # except: # pass return response
def update_nugget_node_attrs(corpus_id, nugget_id): """Handle update of node attrs.""" json_data = request.get_json() node_id = json_data["id"] node_attrs = json_data["attrs"] corpus = get_corpus(corpus_id) response = json.dumps({'success': False}), 404, { 'ContentType': 'application/json' } if corpus is not None: if nugget_id in corpus.nuggets() and\ node_id in corpus.get_nugget(nugget_id).nodes(): try: # Here I actually need to generate rewriting rule corpus.update_nugget_node_attr_from_json( nugget_id, node_id, node_attrs) response = json.dumps({'success': True}), 200, { 'ContentType': 'application/json' } update_last_modified(corpus_id) except: pass return response
def update_action_graph_node_attrs(corpus_id): """Handle update of node attrs.""" json_data = request.get_json() node_id = json_data["id"] node_attrs = json_data["attrs"] corpus = get_corpus(corpus_id) response = json.dumps({'success': False}), 404, { 'ContentType': 'application/json' } if corpus is not None: if node_id in corpus.action_graph.nodes(): try: for k, v in node_attrs.items(): new_v = [] for vv in v["data"]: new_v.append(vv.strip()) node_attrs[k]["data"] = new_v attrs = attrs_from_json(node_attrs) corpus.action_graph.set_node_attrs(node_id, attrs) response = json.dumps({'success': True}), 200, { 'ContentType': 'application/json' } update_last_modified(corpus_id) except: pass return response
def update_ag_node_positioning(corpus_id): """Retrieve node positioning from post request.""" json_data = request.get_json() # corpus = get_corpus(corpus_id) if "node_positioning" in json_data.keys() and\ len(json_data["node_positioning"]) > 0: attrs = app.mongo.db.kami_corpora.find_one({"id": corpus_id}) if "node_positioning" in attrs.keys(): position_dict = attrs["node_positioning"] else: position_dict = {} # update positions from json data in the request for k, v in json_data["node_positioning"].items(): position_dict[k] = [v[0], v[1]] app.mongo.db.kami_corpora.update( {'id': corpus_id}, {'$set': { 'node_positioning': position_dict }}) update_last_modified(corpus_id) return json.dumps({'success': True}), 200, { 'ContentType': 'application/json' }
def add_interaction(corpus_id, add_agents=True, anatomize=True, apply_semantics=True): """Handle interaction addition.""" corpus = get_corpus(corpus_id) if request.method == 'GET': return render_template("add_interaction.html", corpus=corpus, readonly=app.config["READ_ONLY"]) elif request.method == 'POST': if app.config["READ_ONLY"]: return render_template("403.html") else: corpus = get_corpus(corpus_id) interaction = parse_interaction(request.form) corpus.add_interaction(interaction) update_revision_history(corpus) update_last_modified(corpus_id) return redirect(url_for('corpus.corpus_view', corpus_id=corpus._id))
def update_action_graph_edge_attrs(corpus_id): """Handle update of node attrs.""" json_data = request.get_json() source = json_data["source"] target = json_data["target"] edge_attrs = json_data["attrs"] corpus = get_corpus(corpus_id) response = json.dumps({'success': False}), 404, { 'ContentType': 'application/json' } if corpus is not None: if (source, target) in corpus.action_graph.edges(): try: corpus.action_graph.set_edge_attrs_from_json( source, target, edge_attrs) response = json.dumps({'success': True}), 200, { 'ContentType': 'application/json' } update_last_modified(corpus_id) except: pass return response