chiark / gitweb /
b248448f3f5c3aed2dcd02ea409edc005215795f
[familyTree.git] / cgiFiles / searchname.py
1 #!/usr/bin/env python
2 # -*- coding: UTF-8 -*-
3
4 # enable debugging
5 import cgi
6 import cgitb
7 import sys
8 import re
9 sys.path.append('/home/naath/familyTreeProject/familyTree')
10 import askQuestion as aQ
11 import everyPage
12
13
14 def make_drop_down(n, IDs, Names):
15         if n==1:
16                 formName = 'ID'
17         else:
18                 formName = 'ID' + str(n)        
19         
20         dd=\
21                 "Person "+str(n)+": <select name = "+formName + ">"
22         for i in range(len(IDs)):
23                 dd = dd +\
24                 "<option value = '"+str(IDs[i])+"'>"+Names[i]+"</option>"
25                  
26
27         dd = dd+"</select>"
28
29         return dd
30
31 cgitb.enable()
32
33 [conn,form]=everyPage.top()
34
35 name = form.getvalue('name')
36 name2 = form.getvalue('name2')
37
38 thisName = ''
39 nameA=''
40 nameB=''
41 if name2==None and name !=None:
42         thisName = name
43 elif name2!=None and name!=None:
44         nameA = name
45         nameB = name2   
46
47 oneSearch = "Search for people by name"+\
48 "<form id='searchBox' action = 'searchname.py' method = 'get'>"+\
49 "Search for: <input type = 'text' name = 'name' value =" +thisName+"> <br>"+\
50 "<button type = 'submit'>Search</button><br><br>"+\
51 "</form>"
52
53 pairSearch = "Search for pairs of people"+\
54 " to find joint ancestors"+\
55 "<form id='searchBox' action = 'searchname.py' method = 'get'>"+\
56 "Person 1: <input type = 'text' name = 'name' value =" +nameA+"> <br>"+\
57 "Person 2: <input type = 'text' name = 'name2' value = "+nameB+"> <br>"+\
58 "<button type = 'submit'>Search</button><br><br>"
59 "</form>"
60         
61 if name == None:
62         printMe = oneSearch + pairSearch
63         
64         everyPage.good(printMe) 
65
66 elif name2 ==None:
67         result = re.match('[a-zA-z-% ]*$', name)
68
69         if result == None:
70                 everyPage.bad()
71         else:   
72                 printMe  = \
73                 aQ.search_name(name,'<br>')[0]
74                 if len(printMe)<10:
75                         printMe =  'sorry, no data <br>'
76
77                 printMe = printMe + '<br>' + oneSearch + pairSearch
78                 everyPage.good(printMe)
79
80
81 else:
82
83         [out1,names1,IDs1] = aQ.search_name(name,'<br>')
84         [out2,names2,IDs2] = aQ.search_name(name2,'<br>')
85
86         printMe = \
87         "<form id='chooseList' action = 'ancestors.py' method = 'get'>"+\
88         make_drop_down(1,IDs1,names1)+\
89         "<br>"+\
90         make_drop_down(2,IDs2,names2)+\
91         "<br><button type = 'submit'>Search</button><br><br>"+\
92         "</form>"+\
93         oneSearch+ pairSearch
94
95         everyPage.good(printMe)
96
97 everyPage.bottom(conn)
98