chiark / gitweb /
01a631992a20c1f17eac90267b85b49a0a45a1b0
[familyTree.git] / cgiFiles / jointAncestorGraph.py
1 #!/usr/bin/python
2
3 import cgi
4 import cgitb
5 cgitb.enable()
6 import sys
7 sys.path.append('/home/naath/familyTreeProject/familyTree')
8 import make_dot as d
9 import askQuestion as aQ
10
11 def add_parents(ID,name,startLevel,stopLevel):
12
13         startLevel = startLevel + 1
14         if int(startLevel) == int(stopLevel)+1:
15                 return
16
17         pair=[]
18         [parents, parentIDs,parentNames] = aQ.find_parents(ID)
19
20         pair = []
21         for i in range(len(parents)):
22                 newName = parents[i]
23                 if parentIDs[i]!=0:
24                         newID = parentIDs[i]
25                         if not d.has_node(newName):
26                                 d.add_person(newName)
27                                 add_parents(newID,newName,\
28                                 startLevel,stopLevel)
29                 else:   
30                         d.add_person(newName)
31                 pair.append(newName)
32
33         d.add_marriage(pair[0], pair[1],[name],1)
34
35 def make_graph(ID,ID2,LA,LB):
36
37         d.start_dot()   
38
39         if int(LA)!=0:
40                 [Self, selfID, selfName] = aQ.find_person(ID)
41                 d.add_highlight(Self)
42                 add_parents(selfID,Self,0,LA)
43
44         if int(LB)!=0:
45                 [Self, selfID, selfName] = aQ.find_person(ID2)
46                 d.add_highlight(Self)
47                 add_parents(selfID,Self,0,LB)
48
49         d.add_subgraphs()
50         d.end_dot()
51         d.render_dot()
52         aQ.close(conn)
53
54 form = cgi.FieldStorage()
55
56 ID = form.getvalue('id')
57 ID2 = form.getvalue('id2')
58 LA = form.getvalue('LA')
59 LB = form.getvalue('LB')
60
61 conn = aQ.connect()
62 make_graph(ID,ID2,LA,LB)
63 aQ.close(conn)
64