コード例 #1
0
ファイル: views.py プロジェクト: Kappa-Dev/KAMIStudio
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
コード例 #2
0
ファイル: views.py プロジェクト: Kappa-Dev/KAMIStudio
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
コード例 #3
0
ファイル: views.py プロジェクト: Kappa-Dev/KAMIStudio
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
コード例 #4
0
ファイル: views.py プロジェクト: Kappa-Dev/KAMIStudio
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'
    }
コード例 #5
0
ファイル: views.py プロジェクト: Kappa-Dev/KAMIStudio
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))
コード例 #6
0
ファイル: views.py プロジェクト: Kappa-Dev/KAMIStudio
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