Skip to content

Commit

Permalink
Merge pull request #49 from johnsonc/master
Browse files Browse the repository at this point in the history
Graph changes and prior/post nodes addition to templates and graph
  • Loading branch information
gnowgi committed Mar 11, 2012
2 parents 11ed4a3 + 0e7974c commit 7cec2ee
Show file tree
Hide file tree
Showing 6 changed files with 112 additions and 14 deletions.
3 changes: 3 additions & 0 deletions demo/readme.txt
@@ -1,4 +1,7 @@
This is a convenience package to test gstudio.
Please follow the instructions below to setup gstudio


https://github.com/gnowgi/django-gstudio

1. download git://github.com/gnowgi/django-gstudio.git
Expand Down
2 changes: 1 addition & 1 deletion gstudio/models.py
Expand Up @@ -608,7 +608,7 @@ def get_possible_attributes(self):
def get_graph_json(self):


# predicate_id={"plural":"a1","altnames":"a2","contains_members":"a3","contains_subtypes":"a4","prior_nodes":""}
# predicate_id={"plural":"a1","altnames":"a2","contains_members":"a3","contains_subtypes":"a4","prior_nodes":"a5", "posterior_nodes":"a6"}
g_json = {}
g_json["node_metadata"]= []

Expand Down
2 changes: 1 addition & 1 deletion gstudio/templates/gstudio/nodetype_detail.html
Expand Up @@ -117,7 +117,7 @@
{% if object.get_rendered_nbh.priornodes %}


<b>Priornodes:<nbsp></b>
<b>Prior nodes:<nbsp></b>
{% for mkey,mvalue in object.get_rendered_nbh.priornodes.items %}
<a href="{{mvalue}}">{{mkey}}</a>;
{% endfor %}<br/>
Expand Down
31 changes: 30 additions & 1 deletion objectapp/models.py
Expand Up @@ -270,6 +270,23 @@ def get_nbh(self):
#return all OTs the object is linked to
nbh['member_of'] = self.objecttypes.all()

prior_nodes_list =[]
temp = self.prior_nodes.all()
for pn in temp:
# put the ot, at, rt instead of NT
prior_nodes_list.append(pn.ref)

nbh['prior_nodes'] = prior_nodes_list

posterior_nodes_list =[]
temp = self.posterior_nodes.all()
for pn in temp:
# put the ot, at, rt instead of NT
posterior_nodes_list.append(pn.ref)

nbh['posterior_nodes'] = posterior_nodes_list
nbh['authors'] = self.authors.all()

# get all the relations of the object
nbh.update(self.get_relations())
nbh.update(self.get_attributes())
Expand All @@ -279,7 +296,7 @@ def get_nbh(self):

def get_graph_json(self):

predicate_id={"plural":"a1","altnames":"a2","member_of":"a3"}
predicate_id={"plural":"a1","altnames":"a2","member_of":"a3", "prior_nodes":"a4","posterior_nodes":"a5"}
g_json = {}
g_json["node_metadata"]= []

Expand Down Expand Up @@ -394,6 +411,17 @@ def get_rendered_nbh(self):
for each in self.objecttypes.all():
member_of_dict[each.title]= each.get_absolute_url()
nbh['member_of']=member_of_dict

pnode_dict = {}
for each in self.prior_nodes.all():
pnode_dict[each.title]= each.get_absolute_url()
nbh['priornodes']=pnode_dict

pnode_dict = {}
for each in self.posterior_nodes.all():
pnode_dict[each.title]= each.get_absolute_url()
nbh['posteriornodes']=pnode_dict

#get Relations
relns={}
rellft={}
Expand Down Expand Up @@ -429,6 +457,7 @@ def get_rendered_nbh(self):
nbh['relations']=relrgt
nbh['relations'].update(rellft)


#get Attributes
attributes ={}
for each in self.subject_of.all():
Expand Down
20 changes: 20 additions & 0 deletions objectapp/templates/objectapp/_gbobject_detail.html
Expand Up @@ -51,6 +51,26 @@ <h2 class="gbobject-title">
{% endfor %}<br/>
{% endif %}


{% if object.get_rendered_nbh.priornodes %}


<b>Prior nodes:<nbsp></b>
{% for mkey,mvalue in object.get_rendered_nbh.priornodes.items %}
<a href="{{mvalue}}">{{mkey}}</a>;
{% endfor %}<br/>
{% endif %}

{% if object.get_rendered_nbh.posteriornodes %}


<b>Posterior nodes:<nbsp></b>
{% for mkey,mvalue in object.get_rendered_nbh.posteriornodes.items %}
<a href="{{mvalue}}">{{mkey}}</a>;
{% endfor %}<br/>
{% endif %}


{% if object.get_rendered_nbh.relations %}


Expand Down
68 changes: 57 additions & 11 deletions objectapp/templates/objectapp/skeleton.html
Expand Up @@ -12,9 +12,23 @@
pointer-events: none;
font: 10px sans-serif;
}
.mainnode{
font: 10px sans-serif;
fill:"red";
border-width: 1px;
border-color: gray;

}
.relnode {
font: 10px sans-serif;
fill:#000;
}
.node {
border-width: 1px;
border-color: gray;
fill:"green";
font: 10px sans-serif;

}
body {
background-color: white;
Expand Down Expand Up @@ -69,6 +83,8 @@
<script src="{% admin_media_prefix %}js/grappelli/jquery.grp_autocomplete_fk.js" type="text/javascript"></script>
<script src="{% admin_media_prefix %}js/grappelli/jquery.grp_autocomplete_m2m.js" type="text/javascript"></script>
<script src="{% admin_media_prefix %}js/grappelli/jquery.grp_autocomplete_generic.js" type="text/javascript"></script>

<!--
<script type="text/javascript" src="{{STATIC_URL}}gstudio/js/jquery-ui-timepicker-0.2.9/include/jquery-1.5.1.min.js"></script>
<script type="text/javascript" src="{{STATIC_URL}}gstudio/js/jquery-ui-timepicker-0.2.9/include/jquery.ui.core.min.js"></script>
<script type="text/javascript" src="{{STATIC_URL}}gstudio/js/jquery-ui-timepicker-0.2.9/include/jquery.ui.widget.min.js"></script>
Expand All @@ -77,8 +93,11 @@
<script type="text/javascript" src="{{STATIC_URL}}gstudio/js/jquery.ui.timepicker.js"></script>
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<script src="{{STATIC_URL}}gstudio/js/gstudio.js" type="text/javascript"></script>
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
-->


<!-- EXTRAHEAD -->
{% block extrahead %}{% endblock %}

Expand All @@ -94,9 +113,12 @@
<link rel="pingback" href="/xmlrpc/" />
<link rel="shortcut icon" href="{{ STATIC_URL }}gstudio/img/favicon.ico" />
<link rel="home" href="{% url gstudio_nodetype_archive_index %}" />
<link rel="stylesheet" type="text/css" media="screen, projection" href="{{ STATIC_URL }}gstudio/css/grappelli_skin_default.css" />
<link rel="stylesheet" type="text/css" media="screen, projection" href="{{ STATIC_URL }}gstudio/css/screen.css" />

<!-- <link rel="stylesheet" type="text/css" media="screen, projection" href="{{ STATIC_URL }}gstudio/css/grappelli_skin_default.css" />
<link rel="stylesheet" type="text/css" media="screen, projection" href="{{ STATIC_URL }}gstudio/css/screen_gstudio.css" />
-->
<link rel="stylesheet" type="text/css" media="screen, projection" href="{{ STATIC_URL }}gstudio/css/screen.css" />

<link rel="stylesheet" type="text/css" media="print" href="{{ STATIC_URL }}gstudio/css/print.css" />
<!--[if lt IE 8]>
<link rel="stylesheet" type="text/css" media="screen, projection" href="{{ STATIC_URL }}gstudio/css/ie.css" />
Expand Down Expand Up @@ -262,6 +284,25 @@
}).filter(function(e){
return nodes_by_id[e.from] && nodes_by_id[e.to]
}).value();


var prior_nodes = _(json.prior_nodes).chain().map(function(e) {
e.source = nodes_by_id[e.from];
e.target = nodes_by_id[e.to];
e.type = 'prior_node';
return e;
}).filter(function(e){
return nodes_by_id[e.from] && nodes_by_id[e.to]
}).value();

var posterior_nodes = _(json.posterior_nodes).chain().map(function(e) {
e.source = nodes_by_id[e.from];
e.target = nodes_by_id[e.to];
e.type = 'posterior_node';
return e;
}).filter(function(e){
return nodes_by_id[e.from] && nodes_by_id[e.to]
}).value();


var right_subjecttype_of = _(json.right_subjecttype_of).chain().map(function(e) {
Expand Down Expand Up @@ -298,7 +339,7 @@
nodes_by_id[{{ object.id }}].y = h/2.0;

all_edges = new Array();
all_edges = all_edges.concat(follows_edges, member_of, contains_members, contains_subtypes, mentions_edges, right_subjecttype_of, left_subjecttype_of, subjecttype_of, type_of,plural,altnames,contains_members,authors,content);
all_edges = all_edges.concat(follows_edges, member_of, contains_members, contains_subtypes, mentions_edges, right_subjecttype_of, left_subjecttype_of, subjecttype_of, type_of,plural,altnames,contains_members,authors,content, prior_nodes,posterior_nodes);
/* all_edges.concat(follows_edges);
all_edges.concat(member_of_metatype);
all_edges.concat(contains_members);
Expand All @@ -316,7 +357,7 @@
.charge(-2000)
.friction(0.7)
.gravity(0.7)
.linkDistance(10)
.linkDistance(15)
.nodes([])
.links([])
.size([w, h])
Expand Down Expand Up @@ -363,6 +404,10 @@
.attr("y2", function(d) {
return d.target.y;
})
.attr("text", function(d) {
return d.type;
})

.append("a")
.text(function(d) { return d.type; });

Expand All @@ -372,23 +417,24 @@


var new_g = node.enter().append("svg:g")
.attr("class", "node")
.attr("class", function(d) { if (d._id=={{ object.id }}) return "mainnode"; else if (isNaN(d._id)) return "relnode"; else return "node"; })
.call(force.drag);



new_g.append("svg:circle")
.attr("cx", function(d) { return d.x - w/2.0 + 15; })
.attr("cy", function(d) { return d.y - h/2.0 + 15; })
.attr("r", 7)
.style("fill", function color(d) { if (d._id=={{ object.id }}) return "red"; else if (d._id== "a1" || d._id== "a2" || d._id== "a3" ||d._id== "a4" || d._id== "a5" ) return "white" ; else return "green"});
.attr("cy", function(d) { return d.y - h/2.0 + 15; })
.attr("r", function(d) { if (d._id=={{ object.id }}) return 8; else if (isNaN(d._id)) return 1; else return 7; })
.style("fill", function color(d) { if (d._id=={{ object.id }}) return "red"; else if (isNaN(d._id)) return "white" ; else return "green";});


new_g.append("svg:text")
.attr("class","node")
.attr("class","nodetext")
.attr("dy", 20)
.attr("dx", 25)
.attr("text-anchor",function text(d) { if (d._id== "a1" || d._id== "a2" || d._id== "a3" ||d._id== "a4" || d._id== "a5" ) return "middle" ; else return "left"})
.attr("text-anchor",function text(d) { if (isNaN(d._id)) return "middle" ; else return "left"})

.text(function(d) {
return d.screen_name;
});
Expand Down

0 comments on commit 7cec2ee

Please sign in to comment.