1 #!/usr/bin/python |
|
2 |
|
3 import sys |
|
4 import traceback |
|
5 sys.path.insert(0, "/home/fabien/lib/python") |
|
6 sys.path.insert(0, "./lib") |
|
7 sys.stderr = sys.stdout |
|
8 |
|
9 print "Content-type: text/html; charset=iso-8859-1;" |
|
10 print |
|
11 |
|
12 # import cgitb; cgitb.enable() |
|
13 import cgi |
|
14 import my_db |
|
15 from os import environ |
|
16 from webutils import load_index |
|
17 from keywords import get_keywords |
|
18 |
|
19 def do_merge(form, db): |
|
20 fromids = get_keywords(form, 'id') |
|
21 toids = get_keywords(form, 'kw') |
|
22 remove_them = form.has_key('remove') |
|
23 if remove_them: |
|
24 lastid = toids.pop() |
|
25 for id in fromids: |
|
26 fromkw = db.get_keyword(id) |
|
27 for dest in toids: |
|
28 tokw = db.get_keyword(dest) |
|
29 print "<em>Adding '%s' into '%s'.</em><br/>" % (fromkw, tokw) |
|
30 db.add_keywords(id, dest) |
|
31 if remove_them: |
|
32 tokw = db.get_keyword(lastid) |
|
33 print "<em>Merging '%s' into '%s'.</em><br/>" % (fromkw, tokw) |
|
34 db.merge_keywords(id, lastid) |
|
35 |
|
36 def do_rename(form, db): |
|
37 ids = get_keywords(form, 'id') |
|
38 for id in ids: |
|
39 oldname = db.get_keyword(id) |
|
40 newname = form['name%d' % id].value |
|
41 print "<em>Renaming '%s' into '%s'.</em><br/>" % (oldname, newname) |
|
42 db.update_keyword(id, newname) |
|
43 |
|
44 def do_delete(form, db): |
|
45 ids = get_keywords(form, 'id') |
|
46 for id in ids: |
|
47 kw = db.get_keyword(id) |
|
48 print "<em>Removing '%s'.</em><br/>" % kw |
|
49 db.remove_keyword(id) |
|
50 |
|
51 if (__name__ == "__main__"): |
|
52 form = cgi.FieldStorage() |
|
53 db = my_db.connect(environ["REMOTE_USER"]) |
|
54 prefs = db.get_preferences() |
|
55 action = form['action'].value |
|
56 if action == 'merge': |
|
57 do_merge(form, db) |
|
58 elif action == 'rename': |
|
59 do_rename(form, db) |
|
60 elif action == 'delete': |
|
61 do_delete(form, db) |
|
62 load_index(db, prefs) |
|