add_result.py
author fabien
Fri, 24 Oct 2003 17:55:22 -0400
branchxbelweb
changeset 50 5275135955c0
parent 47 2781ac85b807
permissions -rwxr-xr-x
[svn r1607] Add remove flag to the keyword merging.

#!/usr/bin/python

import sys
import traceback
sys.path.insert(0, "/home/fabien/lib/python")
sys.path.insert(0, "./lib")
sys.stderr = sys.stdout

print "Content-type: text/html; charset=iso-8859-1;"
print

# import cgitb; cgitb.enable()
import cgi
from templates import Template
import time
from utils import unique
import my_db
from add_confirm import get_bk_from_form, get_new_kw_from_form
from webutils import load_index
import os

def add_new_keywords(db, newkw):
    kw = [0] # Default keyword, so that every bookmarks appears in
             # the bookmarks_keywords db.
    (ids, kws) = map(list,apply(zip, db.get_all_keywords()))
    for elem in unique(newkw):
    	if elem in kws:
		kw.append(ids[kws.index(elem)])
	else:
		id = db.add_keyword(elem)
		kw.append(id)
    return kw

def main(bk, kw, prefs):
    tmpl = Template("add_result.tmpl", prefs)
    tmpl.set("url", bk.url)
    tmpl.set("name", bk.name)
    tmpl.set("added", bk.added)
    tmpl.set("desc", bk.desc)
    tmpl.set("Keywords", kw)
    print tmpl.process()

if (__name__ == "__main__"):
    form = cgi.FieldStorage()
    db = my_db.connect(os.environ["REMOTE_USER"])
    prefs = db.get_preferences()
    action = form['action'].value
    if action == 'cancel':
      load_index(db, prefs)
    elif action == 'delete':
      db.remove_bookmark(int(form['id'].value))
      load_index(db, prefs)
    else:
      bk = get_bk_from_form(form)
      newkw = get_new_kw_from_form(form)
      kw = add_new_keywords(db, newkw)
      if bk.id == -1:
	id = db.add_bookmark(bk)
      else:
	db.update_bookmark(bk)
	id = bk.id
      db.update_keywords(id, kw)
      kw = map(lambda e: { 'keyword': e[1] }, db.get_keywords([id])[1:])
      main(bk, kw, prefs)