add_result.py
author fabien
Sat, 18 Oct 2003 00:56:42 -0400
branchxbelweb
changeset 45 c81d480c3224
parent 43 4d194fce51e1
child 47 2781ac85b807
permissions -rwxr-xr-x
[svn r1601] Add first try to get a folder's like view.

#!/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 htmltmpl import TemplateManager
from webutils import get_template_processor
import time
from utils import unique
import my_db
from add_confirm import get_bk_from_form, get_new_kw_from_form
from index 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 = TemplateManager().prepare("add_result.tmpl")
    tproc = get_template_processor(prefs)
    tproc.set("url", bk.url)
    tproc.set("name", bk.name)
    tproc.set("added", bk.added)
    tproc.set("desc", bk.desc)
    tproc.set("Keywords", kw)
    print tproc.process(tmpl)

if (__name__ == "__main__"):
    form = cgi.FieldStorage()
    db = my_db.connect(os.environ["REMOTE_USER"])
    action = form['action'].value
    if action == 'cancel':
      load_index(db)
    elif action == 'delete':
      db.remove_bookmark(int(form['id'].value))
      load_index(db)
    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, db.get_preferences())