add_result.py
author fabien
Mon, 23 Aug 2004 23:31:38 -0400
branchxbelweb
changeset 56 6b31934e5b2e
parent 47 2781ac85b807
permissions -rwxr-xr-x
[svn r1740] Add licence notes to src files.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
     1
#!/usr/bin/python
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
     2
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
     3
import sys
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
     4
import traceback
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
     5
sys.path.insert(0, "/home/fabien/lib/python")
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
     6
sys.path.insert(0, "./lib")
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
     7
sys.stderr = sys.stdout
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
     8
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
     9
print "Content-type: text/html; charset=iso-8859-1;"
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
    10
print
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
    11
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
    12
# import cgitb; cgitb.enable()
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
    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
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
    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
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
    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
7cc3ab1c160b [svn r1541] Add new keywords entry.
fabien
parents: 3
diff changeset
    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
7cc3ab1c160b [svn r1541] Add new keywords entry.
fabien
parents: 3
diff changeset
    33
43
4d194fce51e1 [svn r1594] Update to use user's preferences.
fabien
parents: 33
diff changeset
    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
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
    42
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
    43
if (__name__ == "__main__"):
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents:
diff changeset
    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
896b7c6de627 [svn r1543] Ajout des fonctions d'�ditions.
fabien
parents: 7
diff changeset
    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
896b7c6de627 [svn r1543] Ajout des fonctions d'�ditions.
fabien
parents: 7
diff changeset
    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
db91081e5a78 [svn r1577] Various change to the new interface.
fabien
parents: 21
diff changeset
    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)