Update index.py and config to use the right information.
from keywords import get_keywords
from webutils import load_index
from templates import Template
def print_kw(keywords, prefs):
tmpl = Template("edit_kw.tmpl", prefs, "", "")
tmpl.set('Keywords', keywords)
print tmpl.process()
def print_confirm(step, sel_keywords, keywords, prefs):
if step == 'delete':
tmpl = Template("kw_delete.tmpl", prefs)
elif step == 'merge':
tmpl = Template("kw_merge.tmpl", prefs)
elif step == 'rename':
tmpl = Template("kw_rename.tmpl", prefs)
tmpl.set("Selected", sel_keywords)
tmpl.set("Keywords", keywords)
print tmpl.process()
def list_kw(db, prefs):
kw = db.get_all_keywords()[1:]
kw = map(lambda elem: {
'id' : elem[0],
'keyword' : elem[1] }, kw)
kw.sort(lambda l,r: cmp(l['keyword'],r['keyword']))
print_kw(kw, prefs)
def confirm_kw(step, db, prefs, form):
ids = get_keywords(form, 'kw')
keywords = map(lambda e: { 'id': e[0], 'keyword': e[1]},
db.get_all_keywords()[1:])
keywords.sort(lambda x, y: cmp(x['keyword'],y['keyword']))
sel_keywords = filter(lambda e: e['id'] in ids, keywords)
keywords = filter(lambda e: e['id'] not in ids, keywords)
print_confirm(step, sel_keywords, keywords, prefs)
def do_merge(db, prefs, form):
fromids = get_keywords(form, 'id')
toids = get_keywords(form, 'kw')
remove_them = form.has_key('remove')
if remove_them:
lastid = toids.pop()
status = "result"
status_msg = []
for id in fromids:
fromkw = db.get_keyword(id)
for dest in toids:
tokw = db.get_keyword(dest)
status_msg.append("Adding '%s' into '%s'." % (fromkw, tokw))
db.add_keywords(id, dest)
if remove_them:
tokw = db.get_keyword(lastid)
status_msg.append("Merging '%s' into '%s'." % (fromkw, tokw))
db.merge_keywords(id, lastid)
load_index(db, prefs, form, status, "<br/>".join(status_msg))
def do_rename(db, prefs, form):
ids = get_keywords(form, 'id')
status = "result"
status_msg = []
for id in ids:
oldname = db.get_keyword(id)
newname = form['name%d' % id].value
status_msg.append("Renaming '%s' into '%s'." % (oldname, newname))
db.update_keyword(id, newname)
load_index(db, prefs, form, status, "<br/>".join(status_msg))
def do_delete(db, prefs, form):
ids = get_keywords(form, 'id')
status = "result"
status_msg = []
for id in ids:
kw = db.get_keyword(id)
status_msg.append("Removing '%s'." % kw)
db.remove_keyword(id)
load_index(db, prefs, form, status, "<br/>".join(status_msg))
def do_it(action, db, prefs, form):
step = 'list'
if form.has_key('step'):
step = form['step'].value
if step == 'list':
list_kw(db, prefs)
elif step == 'cancel':
load_index(db, prefs, form, "err", "Operation cancel")
elif step == 'do_delete':
do_delete(db, prefs, form)
elif step == 'do_merge':
do_merge(db, prefs, form)
elif step == 'do_rename':
do_rename(db, prefs, form)
else:
confirm_kw(step, db, prefs, form)