author | fabien |
Mon, 23 Aug 2004 23:31:38 -0400 | |
branch | xbelweb |
changeset 56 | 6b31934e5b2e |
parent 47 | 2781ac85b807 |
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 |
|
47
2781ac85b807
[svn r1604] Implement default_view preferences, which move things around a lot.
fabien
parents:
43
diff
changeset
|
14 |
from templates import Template |
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 |
47
2781ac85b807
[svn r1604] Implement default_view preferences, which move things around a lot.
fabien
parents:
43
diff
changeset
|
19 |
from webutils 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 |
|
43 | 34 |
def main(bk, kw, prefs): |
47
2781ac85b807
[svn r1604] Implement default_view preferences, which move things around a lot.
fabien
parents:
43
diff
changeset
|
35 |
tmpl = Template("add_result.tmpl", prefs) |
2781ac85b807
[svn r1604] Implement default_view preferences, which move things around a lot.
fabien
parents:
43
diff
changeset
|
36 |
tmpl.set("url", bk.url) |
2781ac85b807
[svn r1604] Implement default_view preferences, which move things around a lot.
fabien
parents:
43
diff
changeset
|
37 |
tmpl.set("name", bk.name) |
2781ac85b807
[svn r1604] Implement default_view preferences, which move things around a lot.
fabien
parents:
43
diff
changeset
|
38 |
tmpl.set("added", bk.added) |
2781ac85b807
[svn r1604] Implement default_view preferences, which move things around a lot.
fabien
parents:
43
diff
changeset
|
39 |
tmpl.set("desc", bk.desc) |
2781ac85b807
[svn r1604] Implement default_view preferences, which move things around a lot.
fabien
parents:
43
diff
changeset
|
40 |
tmpl.set("Keywords", kw) |
2781ac85b807
[svn r1604] Implement default_view preferences, which move things around a lot.
fabien
parents:
43
diff
changeset
|
41 |
print tmpl.process() |
3 | 42 |
|
43 |
if (__name__ == "__main__"): |
|
44 |
form = cgi.FieldStorage() |
|
21
345ee7421989
[svn r1555] Add multiuser support and more templating.
fabien
parents:
17
diff
changeset
|
45 |
db = my_db.connect(os.environ["REMOTE_USER"]) |
47
2781ac85b807
[svn r1604] Implement default_view preferences, which move things around a lot.
fabien
parents:
43
diff
changeset
|
46 |
prefs = db.get_preferences() |
17
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
47 |
action = form['action'].value |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
48 |
if action == 'cancel': |
47
2781ac85b807
[svn r1604] Implement default_view preferences, which move things around a lot.
fabien
parents:
43
diff
changeset
|
49 |
load_index(db, prefs) |
17
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
50 |
elif action == 'delete': |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
51 |
db.remove_bookmark(int(form['id'].value)) |
47
2781ac85b807
[svn r1604] Implement default_view preferences, which move things around a lot.
fabien
parents:
43
diff
changeset
|
52 |
load_index(db, prefs) |
17
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
53 |
else: |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
54 |
bk = get_bk_from_form(form) |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
55 |
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
|
56 |
kw = add_new_keywords(db, newkw) |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
57 |
if bk.id == -1: |
9 | 58 |
id = db.add_bookmark(bk) |
17
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
59 |
else: |
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
60 |
db.update_bookmark(bk) |
9 | 61 |
id = bk.id |
17
14bec94bbe89
[svn r1551] Add delete bookmarks functionality as well as many reusability issues.
fabien
parents:
13
diff
changeset
|
62 |
db.update_keywords(id, kw) |
33 | 63 |
kw = map(lambda e: { 'keyword': e[1] }, db.get_keywords([id])[1:]) |
47
2781ac85b807
[svn r1604] Implement default_view preferences, which move things around a lot.
fabien
parents:
43
diff
changeset
|
64 |
main(bk, kw, prefs) |