cgitb.enable()
import sys
sys.path.append('/home/naath/familyTreeProject/familyTree')
-import pygraph
-from pygraph.classes.graph import graph
-from pygraph.classes.digraph import digraph
-from pygraph.algorithms.searching import breadth_first_search
-from pygraph.readwrite.dot import write
-import gv
-import StringIO
+import make_dot as d
import askQuestion
-def parents(ID,name,gr,attr,startLevel,stopLevel):
+def parents(ID,name,startLevel,stopLevel):
findParents = "SELECT Name,parentID FROM parents LEFT JOIN"\
+" people ON people.id=parents.parentid"\
startLevel = startLevel + 1
if int(startLevel) == int(stopLevel)+1:
- return gr
+ return
+ pair=[]
for row in askQuestion.run_query(findParents,(ID,)):
if row[0]!=None:
thisN = row[0] + ' '+str(row[1])
- if not gr.has_node(thisN):
- gr.add_node(thisN,attr)
- if gr.has_edge((thisN,name)):
- return gr
- gr.add_edge((thisN,name))
+
+ pair.append(thisN)
newName = thisN
newID = row[1]
- gr = parents(newID,newName,gr,attr,startLevel,stopLevel)
+ if not d.has_node(thisN):
+ d.add_person(thisN)
+ parents(newID,newName,startLevel,stopLevel)
else:
- if not gr.has_node(row[1]):
- gr.add_node(row[1],attr)
- gr.add_edge((row[1],name))
- return gr
+ thisN = row[1] + ',p ' + str(ID)
+ pair.append(thisN)
+ d.add_person(thisN)
-def make_graph(ID,ID2,LA,LB):
- # Graph creation
- gr = digraph()
- attr = [('fontsize',8)]
- # Add nodes and edges
+
+ d.add_marriage(pair[0], pair[1],[name],1)
+
+def make_graph(ID,ID2,LA,LB):
+
+ d.start_dot()
if int(LA)!=0:
s = "SELECT name, id FROM people WHERE ID = ?;"
for row in askQuestion.run_query(s,(ID,)):
thisN = row[0]+' ' + str(row[1])
- gr.add_node(thisN,attr)
+ d.add_highlight(thisN)
newName = (thisN)
newID = row[1]
- gr = parents(newID,newName,gr,attr,0,LA)
+ parents(newID,newName,0,LA)
if int(LB)!=0:
s = "SELECT name, id FROM people WHERE ID = ?;"
for row in askQuestion.run_query(s,(ID2,)):
thisN = row[0] +' '+ str(row[1])
- gr.add_node(thisN,attr)
+ d.add_highlight(thisN)
newName = (thisN)
newID = row[1]
+ parents(newID,newName,0,LB)
- gr = parents(newID,newName,gr,attr,0,LB)
-
- #Draw as jpg
- dot = write(gr)
- gvv = gv.readstring(dot)
- gv.layout(gvv,'dot')
-
- format = 'jpg'
- print "Content-type: image/" + format + "\n"
- print gv.render(gvv,format)
+ d.add_subgraphs()
+ d.end_dot()
+ d.render_dot()
askQuestion.close(conn)
form = cgi.FieldStorage()