annotate doc/scripts/tracker_defsgen.py @ 325:c193bb0a8819

Trackers: even more static fields definition
author Sylvain Beucler <beuc@beuc.net>
date Sat, 21 Aug 2010 13:45:48 +0200
parents 9275694cda61
children f34eba406e57
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
322
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
1 # Output a Python dict with tracker fields definition, using a Savane3
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
2 # initialized database as source
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
3
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
4 import MySQLdb
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
5 #import MySQLdb.cursors
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
6
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
7 db = MySQLdb.connect(unix_socket='/tmp/savane-mini/mysql/sock',
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
8 user='root',db='savane')
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
9 c=db.cursor()
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
10
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
11 tfields = ['bug_field_id','field_name','display_type','display_size',
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
12 'label','description','scope','required','empty_ok','keep_history',
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
13 'special','custom']
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
14
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
15 defs = {}
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
16 field_names = []
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
17 c.execute("""SELECT * FROM bugs_field""")
325
c193bb0a8819 Trackers: even more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 324
diff changeset
18 def process_field_row(row):
322
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
19 name = row[1]
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
20 field_names.append(name)
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
21 defs[name] = ''
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
22 defs[name] += " '"+name+"' : {\n"
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
23 for i,val in enumerate(row):
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
24 if i <= 0:
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
25 continue
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
26 else:
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
27 defs[name] += " " \
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
28 + "'"+tfields[i]+"'" \
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
29 + ": "
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
30 if tfields[i] == 'label' or tfields[i] == 'description':
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
31 defs[name] += '_("' + val + '"),'
324
9275694cda61 Trackers: more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 322
diff changeset
32 elif (name=='priority' or name=='resolution_id' or name=='planned_starting_date' or name=='planned_close_date') \
9275694cda61 Trackers: more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 322
diff changeset
33 and tfields[i] == 'required':
9275694cda61 Trackers: more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 322
diff changeset
34 # override priority.required so we have a common
9275694cda61 Trackers: more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 322
diff changeset
35 # definition for all trackers
9275694cda61 Trackers: more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 322
diff changeset
36 defs[name] += str(0)+","
9275694cda61 Trackers: more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 322
diff changeset
37 elif (name=='priority' or name=='resolution_id') \
9275694cda61 Trackers: more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 322
diff changeset
38 and tfields[i] == 'empty_ok':
9275694cda61 Trackers: more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 322
diff changeset
39 # override priority.empty_ok so we have a common
9275694cda61 Trackers: more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 322
diff changeset
40 # definition for all trackers
9275694cda61 Trackers: more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 322
diff changeset
41 defs[name] += str(1)+","
322
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
42 elif type(val) == long:
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
43 defs[name] += str(val)+","
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
44 else:
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
45 defs[name] += "'"+val+"',"
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
46 defs[name] += "\n"
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
47
324
9275694cda61 Trackers: more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 322
diff changeset
48 for row in c.fetchall():
325
c193bb0a8819 Trackers: even more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 324
diff changeset
49 process_field_row(row)
324
9275694cda61 Trackers: more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 322
diff changeset
50
9275694cda61 Trackers: more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 322
diff changeset
51 c.execute("""SELECT * FROM task_field WHERE field_name IN ('planned_starting_date', 'planned_close_date')""")
9275694cda61 Trackers: more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 322
diff changeset
52 for row in c.fetchall():
325
c193bb0a8819 Trackers: even more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 324
diff changeset
53 process_field_row(row)
324
9275694cda61 Trackers: more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 322
diff changeset
54
322
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
55 tfields = ['name','bug_field_id','group_id','use_it','show_on_add',
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
56 'show_on_add_members','place','custom_label',
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
57 'custom_description','custom_display_size',
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
58 'custom_empty_ok','custom_keep_history',
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
59 'transition_default_auth']
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
60 c.execute("""SELECT bugs_field.field_name,bugs_field_usage.*
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
61 FROM bugs_field_usage JOIN bugs_field USING (bug_field_id) WHERE group_id=100""")
325
c193bb0a8819 Trackers: even more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 324
diff changeset
62 def process_field_usage_row(row):
322
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
63 name = row[0]
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
64 for i,val in enumerate(row):
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
65 if i <= 2:
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
66 continue
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
67 elif tfields[i] == 'custom_label' \
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
68 or tfields[i] == 'custom_description' \
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
69 or tfields[i] == 'custom_display_size' \
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
70 or tfields[i] == 'custom_empty_ok' \
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
71 or tfields[i] == 'custom_keep_history' \
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
72 :
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
73 # overlays, duplicates of bugs_field in this context
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
74 continue
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
75 else:
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
76 defs[name] += " " \
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
77 + "'"+tfields[i]+"'" \
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
78 + ": "
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
79 if type(val) == long:
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
80 defs[name] += str(val)+","
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
81 elif val is None:
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
82 defs[name] += "None,"
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
83 else:
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
84 defs[name] += "'"+val+"',"
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
85 defs[name] += "\n"
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
86 defs[name] += " },\n"
325
c193bb0a8819 Trackers: even more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 324
diff changeset
87 for row in c.fetchall():
c193bb0a8819 Trackers: even more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 324
diff changeset
88 process_field_usage_row(row)
c193bb0a8819 Trackers: even more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 324
diff changeset
89 c.execute("""SELECT task_field.field_name,task_field_usage.*
c193bb0a8819 Trackers: even more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 324
diff changeset
90 FROM task_field_usage JOIN task_field USING (bug_field_id) WHERE group_id=100
c193bb0a8819 Trackers: even more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 324
diff changeset
91 AND field_name IN ('planned_starting_date', 'planned_close_date')""")
c193bb0a8819 Trackers: even more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 324
diff changeset
92 for row in c.fetchall():
c193bb0a8819 Trackers: even more static fields definition
Sylvain Beucler <beuc@beuc.net>
parents: 324
diff changeset
93 process_field_usage_row(row)
322
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
94
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
95 for name in field_names:
3f005a413dfc Trackers: prepare static fields definition
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
96 print defs[name],