38 kw = set(map(db.get_keyword, kw)) |
38 kw = set(map(db.get_keyword, kw)) |
39 return list(kw.union(get_new_kw_from_form(form))) |
39 return list(kw.union(get_new_kw_from_form(form))) |
40 |
40 |
41 def edit(db, prefs, form, id): |
41 def edit(db, prefs, form, id): |
42 name = url = "" |
42 name = url = "" |
43 if form.has_key("ctitle"): |
43 bk = Bookmark() |
44 name = form["ctitle"].value |
44 selected_kws = [] |
45 if form.has_key("curl"): |
45 if (id != -1): |
46 url = form["curl"].value |
46 bks = db.get_bookmarks([id]) |
|
47 if len(bks) > 0: |
|
48 bk = bks[0] |
|
49 (selected_kws, kwnames) = apply(zip,db.get_keywords([id])) |
|
50 if form.has_key("name"): |
|
51 bk.name = form["name"].value |
|
52 if form.has_key("url"): |
|
53 bk.url = form["url"].value |
47 kw = db.get_all_keywords()[1:] |
54 kw = db.get_all_keywords()[1:] |
48 kw.sort(lambda l,r: cmp(l[1],r[1])) |
55 kw.sort(lambda l,r: cmp(l[1],r[1])) |
49 kw = map(lambda elem: { |
56 kw = map(lambda elem: { |
50 'id' : elem[0], |
57 'id' : elem[0], |
51 'keyword' : elem[1], |
58 'keyword' : elem[1], |
52 'checked' : 0 }, kw) |
59 'checked' : elem[0] in selected_kws }, kw) |
53 print_edit(id, kw, name, url, prefs) |
60 print_edit(prefs, bk, kw) |
54 |
61 |
55 def confirm(step, bk, kw, prefs): |
62 def confirm(step, bk, kw, prefs): |
56 tmpl = Template("add_confirm.tmpl", prefs) |
63 tmpl = Template("add_confirm.tmpl", prefs) |
57 confirmation = "Unknown!" |
64 confirmation = "Unknown!" |
58 if (step == 'delete'): |
65 if (step == 'delete'): |
66 tmpl.set("url", bk.url) |
73 tmpl.set("url", bk.url) |
67 tmpl.set("Keywords", map(lambda x: {'keyword': x }, kw)) |
74 tmpl.set("Keywords", map(lambda x: {'keyword': x }, kw)) |
68 tmpl.set("desc", bk.desc) |
75 tmpl.set("desc", bk.desc) |
69 print tmpl.process() |
76 print tmpl.process() |
70 |
77 |
71 def print_edit(id, keywords, title, url, prefs): |
78 def print_edit(prefs, bk, keywords): |
72 tmpl = Template("add_bk.tmpl", prefs) |
79 tmpl = Template("add_bk.tmpl", prefs) |
73 tmpl.set('ctitle', title) |
80 tmpl.set('name', bk.name) |
74 tmpl.set('curl', url) |
81 tmpl.set('url', bk.url) |
75 tmpl.set('desc', '') |
82 tmpl.set('desc', bk.desc) |
76 tmpl.set('bkid', id) |
83 tmpl.set('bkid', bk.id) |
77 tmpl.set('Keywords', keywords) |
84 tmpl.set('Keywords', keywords) |
78 print tmpl.process() |
85 print tmpl.process() |
79 |
86 |
80 def update_bookmark(db, form): |
87 def execute(db, form): |
81 bk = get_bk_from_form(form) |
88 bk = get_bk_from_form(form) |
82 id = bk.id |
89 id = bk.id |
83 if (bk.id == -1): |
90 execution = form['execute'].value |
84 id = db.add_bookmark(bk) |
91 if execution == 'delete': |
85 else: |
92 if id != -1: |
86 db.update_bookmark(bk) |
93 db.remove_bookmark(id) |
87 kw = add_unique_keywords(db, get_unique_keywords(form, db)) |
94 elif execution == 'update': |
88 db.update_keywords(id, kw.values()) |
95 if (bk.id == -1): |
|
96 id = db.add_bookmark(bk) |
|
97 else: |
|
98 db.update_bookmark(bk) |
|
99 kw = add_unique_keywords(db, get_unique_keywords(form, db)) |
|
100 db.update_keywords(id, kw.values()) |
89 |
101 |
90 def do_it(action, db, prefs, form): |
102 def do_it(action, db, prefs, form): |
91 if form.has_key('id'): |
103 if form.has_key('id'): |
92 id = int(form['id'].value) |
104 id = int(form['id'].value) |
93 else: |
105 else: |
97 else: |
109 else: |
98 step = 'edit' |
110 step = 'edit' |
99 if step == 'edit': |
111 if step == 'edit': |
100 edit(db, prefs, form, id) |
112 edit(db, prefs, form, id) |
101 elif step == 'confirm': |
113 elif step == 'confirm': |
102 update_bookmark(db, form) |
114 execute(db, form) |
103 load_index(db, prefs, form, "result", "Bookmark update") |
115 load_index(db, prefs, form, "result", "Bookmark " + form['execute'].value) |
104 elif step == 'cancel' or (action == 'delete' and id == -1): |
116 elif step == 'cancel' or (action == 'delete' and id == -1): |
105 load_index(db, prefs, form, "err", "Operation cancel") |
117 load_index(db, prefs, form, "err", "Operation cancel") |
106 else: |
118 else: |
107 if step == 'update': |
119 if step == 'update': |
108 bk = get_bk_from_form(form) |
120 bk = get_bk_from_form(form) |