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 from templates import Template |
|
15 import time |
|
16 from utils import unique |
|
17 import my_db |
|
18 from add_confirm import get_bk_from_form, get_new_kw_from_form |
|
19 from webutils import load_index |
|
20 import os |
|
21 |
|
22 def add_new_keywords(db, newkw): |
|
23 kw = [0] # Default keyword, so that every bookmarks appears in |
|
24 # the bookmarks_keywords db. |
|
25 (ids, kws) = map(list,apply(zip, db.get_all_keywords())) |
|
26 for elem in unique(newkw): |
|
27 if elem in kws: |
|
28 kw.append(ids[kws.index(elem)]) |
|
29 else: |
|
30 id = db.add_keyword(elem) |
|
31 kw.append(id) |
|
32 return kw |
|
33 |
|
34 def main(bk, kw, prefs): |
|
35 tmpl = Template("add_result.tmpl", prefs) |
|
36 tmpl.set("url", bk.url) |
|
37 tmpl.set("name", bk.name) |
|
38 tmpl.set("added", bk.added) |
|
39 tmpl.set("desc", bk.desc) |
|
40 tmpl.set("Keywords", kw) |
|
41 print tmpl.process() |
|
42 |
|
43 if (__name__ == "__main__"): |
|
44 form = cgi.FieldStorage() |
|
45 db = my_db.connect(os.environ["REMOTE_USER"]) |
|
46 prefs = db.get_preferences() |
|
47 action = form['action'].value |
|
48 if action == 'cancel': |
|
49 load_index(db, prefs) |
|
50 elif action == 'delete': |
|
51 db.remove_bookmark(int(form['id'].value)) |
|
52 load_index(db, prefs) |
|
53 else: |
|
54 bk = get_bk_from_form(form) |
|
55 newkw = get_new_kw_from_form(form) |
|
56 kw = add_new_keywords(db, newkw) |
|
57 if bk.id == -1: |
|
58 id = db.add_bookmark(bk) |
|
59 else: |
|
60 db.update_bookmark(bk) |
|
61 id = bk.id |
|
62 db.update_keywords(id, kw) |
|
63 kw = map(lambda e: { 'keyword': e[1] }, db.get_keywords([id])[1:]) |
|
64 main(bk, kw, prefs) |
|