[svn r1739] Add some ideas to implement/clean up.
#!/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
import my_db
from os import environ
from webutils import load_index
from keywords import get_keywords
def do_merge(form, db):
fromids = get_keywords(form, 'id')
toids = get_keywords(form, 'kw')
remove_them = form.has_key('remove')
if remove_them:
lastid = toids.pop()
for id in fromids:
fromkw = db.get_keyword(id)
for dest in toids:
tokw = db.get_keyword(dest)
print "<em>Adding '%s' into '%s'.</em><br/>" % (fromkw, tokw)
db.add_keywords(id, dest)
if remove_them:
tokw = db.get_keyword(lastid)
print "<em>Merging '%s' into '%s'.</em><br/>" % (fromkw, tokw)
db.merge_keywords(id, lastid)
def do_rename(form, db):
ids = get_keywords(form, 'id')
for id in ids:
oldname = db.get_keyword(id)
newname = form['name%d' % id].value
print "<em>Renaming '%s' into '%s'.</em><br/>" % (oldname, newname)
db.update_keyword(id, newname)
def do_delete(form, db):
ids = get_keywords(form, 'id')
for id in ids:
kw = db.get_keyword(id)
print "<em>Removing '%s'.</em><br/>" % kw
db.remove_keyword(id)
if (__name__ == "__main__"):
form = cgi.FieldStorage()
db = my_db.connect(environ["REMOTE_USER"])
prefs = db.get_preferences()
action = form['action'].value
if action == 'merge':
do_merge(form, db)
elif action == 'rename':
do_rename(form, db)
elif action == 'delete':
do_delete(form, db)
load_index(db, prefs)