author | fabien |
Sat, 27 Sep 2003 01:44:43 -0400 | |
branch | xbelweb |
changeset 25 | 777bcb36f7be |
parent 21 | 345ee7421989 |
child 33 | db91081e5a78 |
permissions | -rwxr-xr-x |
3 | 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 |
||
11 |
||
12 |
# import cgitb; cgitb.enable() |
|
13 |
import cgi |
|
14 |
from htmltmpl import TemplateManager, TemplateProcessor |
|
17
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
15 |
import time |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
16 |
from utils import unique |
3 | 17 |
import my_db |
17
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
18 |
from add_confirm import get_bk_from_form, get_new_kw_from_form |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
19 |
from index import load_index |
21
345ee7421989
[svn r1555] Add multiuser support and more templating.
fabien
parents:
17
diff
changeset
|
20 |
import os |
3 | 21 |
|
17
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
22 |
def add_new_keywords(db, newkw): |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
23 |
kw = [0] # Default keyword, so that every bookmarks appears in |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
24 |
# the bookmarks_keywords db. |
21
345ee7421989
[svn r1555] Add multiuser support and more templating.
fabien
parents:
17
diff
changeset
|
25 |
(ids, kws) = map(list,apply(zip, db.get_all_keywords())) |
17
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
26 |
for elem in unique(newkw): |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
27 |
if elem in kws: |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
28 |
kw.append(ids[kws.index(elem)]) |
7 | 29 |
else: |
17
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
30 |
id = db.add_keyword(elem) |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
31 |
kw.append(id) |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
32 |
return kw |
7 | 33 |
|
3 | 34 |
def main(bk, kw): |
35 |
tmpl = TemplateManager().prepare("add_result.tmpl") |
|
36 |
tproc = TemplateProcessor() |
|
21
345ee7421989
[svn r1555] Add multiuser support and more templating.
fabien
parents:
17
diff
changeset
|
37 |
tproc.set("pagetitle", os.environ["REMOTE_USER"]+"'s XBELWeb Result") |
3 | 38 |
tproc.set("url", bk.url) |
39 |
tproc.set("name", bk.name) |
|
40 |
tproc.set("added", bk.added) |
|
41 |
tproc.set("desc", bk.desc) |
|
42 |
tproc.set("Keywords", kw) |
|
43 |
print tproc.process(tmpl) |
|
44 |
||
45 |
if (__name__ == "__main__"): |
|
46 |
form = cgi.FieldStorage() |
|
21
345ee7421989
[svn r1555] Add multiuser support and more templating.
fabien
parents:
17
diff
changeset
|
47 |
db = my_db.connect(os.environ["REMOTE_USER"]) |
17
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
48 |
action = form['action'].value |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
49 |
if action == 'cancel': |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
50 |
load_index(db) |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
51 |
elif action == 'delete': |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
52 |
db.remove_bookmark(int(form['id'].value)) |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
53 |
load_index(db) |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
54 |
else: |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
55 |
bk = get_bk_from_form(form) |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
56 |
newkw = get_new_kw_from_form(form) |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
57 |
kw = add_new_keywords(db, newkw) |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
58 |
if bk.id == -1: |
9 | 59 |
id = db.add_bookmark(bk) |
17
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
60 |
else: |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
61 |
db.update_bookmark(bk) |
9 | 62 |
id = bk.id |
17
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
63 |
db.update_keywords(id, kw) |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
64 |
kw = map(lambda e: { 'keyword': e[1] }, db.get_keywords(id)[1:]) |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
65 |
main(bk, kw) |