[svn r1574] Keywords edition now in a separate page. xbelweb
authorfabien
Tue, 07 Oct 2003 00:05:17 -0400
branchxbelweb
changeset 30 dbf4027d82fc
parent 29 b5d3cc46b16d
child 31 cee64de4e7e0
[svn r1574] Keywords edition now in a separate page.
do_edit_kw.py
edit_kw.py
edit_kw.tmpl
kw_confirm.tmpl
kw_result.py
--- a/do_edit_kw.py	Sun Sep 28 11:39:55 2003 -0400
+++ b/do_edit_kw.py	Tue Oct 07 00:05:17 2003 -0400
@@ -13,33 +13,30 @@
 import cgi
 from htmltmpl import TemplateManager, TemplateProcessor
 import my_db
-import time
 from bkmark import Bookmark
+from webutils import get_keywords
 import os
 
-def main(action, id, kwname, name, merge, mergename):
+def main(action, sel_keywords, keywords):
     tmpl = TemplateManager().prepare("kw_confirm.tmpl")
     tproc = TemplateProcessor()
     tproc.set("pagetitle", os.environ["REMOTE_USER"]+"'s XBELWeb Confirmation")
     tproc.set("confirm_delete", action == 'delete')
     tproc.set("confirm_merge", action == 'merge')
-    tproc.set("confirm_update", action == 'update')
+    tproc.set("confirm_rename", action == 'rename')
     tproc.set("action", action)
-    tproc.set("id", id)
-    tproc.set("name", kwname)
-    tproc.set("newname", name)
-    tproc.set("mergeid", merge)
-    tproc.set("mergename", mergename)
+    tproc.set("Selected", sel_keywords)
+    tproc.set("Keywords", keywords)
     print tproc.process(tmpl)
 
 if (__name__ == "__main__"):
     form = cgi.FieldStorage()
     db = my_db.connect(os.environ["REMOTE_USER"])
-    id = int(form['id'].value)
+    ids = get_keywords(form, 'kw')
+    keywords = map(lambda e: { 'id': e[0], 'keyword': e[1]},
+   	 db.get_all_keywords())
+    keywords.sort(lambda x, y: cmp(x['keyword'],y['keyword']))
+    sel_keywords = filter(lambda e: e['id'] in ids, keywords)
     action = form['action'].value
-    kwname = db.get_keyword(id)
-    name = form['name'].value
-    merge = int(form['keywords'].value)
-    mergename = db.get_keyword(merge)
-    main(action, id, kwname, name, merge, mergename)
+    main(action, sel_keywords, keywords)
 
--- a/edit_kw.py	Sun Sep 28 11:39:55 2003 -0400
+++ b/edit_kw.py	Tue Oct 07 00:05:17 2003 -0400
@@ -16,23 +16,19 @@
 import time
 import os
 
-def main(keyword, id, keywords):
+def main(keywords):
     tmpl = TemplateManager().prepare("edit_kw.tmpl")
     tproc = TemplateProcessor()
     tproc.set("pagetitle", os.environ["REMOTE_USER"]+"'s XBELWeb Edit Keyword")
-    tproc.set('keyword', keyword)
-    tproc.set('id', id)
     tproc.set('Keywords', keywords)
     print tproc.process(tmpl)
 
 if (__name__ == "__main__"):
     form = cgi.FieldStorage()
-    id = int(form["id"].value)
     db = my_db.connect(os.environ["REMOTE_USER"])
-    name = db.get_keyword(id)
     kw = db.get_all_keywords()[1:]
-    kw.sort(lambda l,r: cmp(l[1],r[1]))
     kw = map(lambda elem: {
    	 'id' : elem[0],
 	 'keyword' : elem[1] }, kw)
-    main(name, id, kw)
+    kw.sort(lambda l,r: cmp(l['keyword'],r['keyword']))
+    main(kw)
--- a/edit_kw.tmpl	Sun Sep 28 11:39:55 2003 -0400
+++ b/edit_kw.tmpl	Tue Oct 07 00:05:17 2003 -0400
@@ -3,16 +3,12 @@
   <body>
     <h1><TMPL_VAR pagetitle></h1>
     <form action="do_edit_kw.py" method="post" name="edit">
-      <input type="hidden" name="id" value="<TMPL_VAR id>"/>
-      <label>Name: <input type="text" name="name"
-                          value="<TMPL_VAR keyword>"/></label>
-      <button name="action" type="submit" value="update">Update</button><br/>
-      <label>Keyword: <select name="keywords">
+	<label>Keywords: <select multiple name="kw">
 	<TMPL_LOOP Keywords>
-	  <option value="<TMPL_VAR id>"/><TMPL_VAR keyword></option>
-	</TMPL_LOOP>
-      </select></label>
+	  <option value="<TMPL_VAR id>"><TMPL_VAR keyword></option>
+	</TMPL_LOOP></select><br/>
       <button name="action" type="submit" value="merge">Merge</button><br/>
+      <button name="action" type="submit" value="rename">Rename</button><br/>
       <button name="action" type="submit" value="delete">Delete</button>
     </form>
   </body>
--- a/kw_confirm.tmpl	Sun Sep 28 11:39:55 2003 -0400
+++ b/kw_confirm.tmpl	Tue Oct 07 00:05:17 2003 -0400
@@ -4,22 +4,43 @@
   <body>
     <h1><TMPL_VAR pagetitle></h1>
     <form name="confirmation" method="post" action="kw_result.py">
-      <input type="hidden" name="id" value="<TMPL_VAR id>"/>
-      <input type="hidden" name="merge" value="<TMPL_VAR mergeid>"/>
-      <input type="hidden" name="name" value="<TMPL_VAR newname>"/>
       <TMPL_IF confirm_delete>
-        <p>Do you really want to remove <em><TMPL_VAR name></em>?</p>
+        <p>Do you really want to remove those keywords?</p>
+	<p>
+	<TMPL_LOOP Selected>
+	  <input type="hidden" name="id" value="<TMPL_VAR id>"/>
+	  <TMPL_VAR keyword>;
+	</TMPL_LOOP>
+	</p>
+        <button name="action" type="submit"
+              value="<TMPL_VAR action>">Delete</button>
       </TMPL_IF>
       <TMPL_IF confirm_merge>
-        <p>Do you really want to merge <em><TMPL_VAR name></em> into
-          <em><TMPL_VAR mergename></em>?</p>
+        <p>Selected keywords:</p>
+	<p>
+	<TMPL_LOOP Selected>
+	  <input type="hidden" name="id" value="<TMPL_VAR id>"/>
+	  <TMPL_VAR keyword>;
+	</TMPL_LOOP>
+	</p>
+	<label>Merge them with: <select name="kw">
+	<TMPL_LOOP Keywords>
+	  <option value="<TMPL_VAR id>"><TMPL_VAR keyword></option>
+	</TMPL_LOOP></select><br/>
+        <button name="action" type="submit"
+              value="<TMPL_VAR action>">Merge</button><br/>
       </TMPL_IF>
-      <TMPL_IF confirm_update>
-        <p>Do you really want to rename <em><TMPL_VAR name></em> into
-          <em><TMPL_VAR newname></em>?</p>
+      <TMPL_IF confirm_rename>
+        <p>Rename<br/>
+        <TMPL_LOOP Selected>
+	  <label><em><TMPL_VAR keyword></em> to
+	  <input type="hidden" name="id" value="<TMPL_VAR id>"/>
+	  <input type="text" name="name<TMPL_VAR id>"
+	     value="<TMPL_VAR keyword>"/></label><br/>
+	</TMPL_LOOP>
+        <button name="action" type="submit"
+              value="<TMPL_VAR action>">Rename</button><br/>
       </TMPL_IF>
-      <button name="action" type="submit"
-              value="<TMPL_VAR action>">Yes, I want</button>
       <button name="action" type="submit" value="cancel">Cancel</button>
     </form>
   </body>
--- a/kw_result.py	Sun Sep 28 11:39:55 2003 -0400
+++ b/kw_result.py	Tue Oct 07 00:05:17 2003 -0400
@@ -13,21 +13,31 @@
 import cgi
 import my_db
 from os import environ
-from index import load_index
+from webutils import load_index, get_keywords
 
 def do_merge(form, db):
-	fromid = int(form['id'].value)	
-	toid = int(form['merge'].value)	
-	db.merge_keywords(fromid, toid)
+	fromids = get_keywords(form, 'id')
+	toid = int(form['kw'].value)	
+	tokw = db.get_keyword(toid)
+	for id in fromids:
+		fromkw = db.get_keyword(id)
+		print "<em>Merging '%s' into '%s'.</em><br/>" % (fromkw, tokw)
+		db.merge_keywords(id, toid)
 
-def do_update(form, db):
-	id = int(form['id'].value)
-	newname = form['name'].value
-	db.update_keyword(id, newname)
+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):
-	id = int(form['id'].value)
-	db.remove_keyword(id)
+	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()
@@ -35,8 +45,8 @@
     action = form['action'].value
     if action == 'merge':
 	do_merge(form, db)
-    elif action == 'update':
-	do_update(form, db)
+    elif action == 'rename':
+	do_rename(form, db)
     elif action == 'delete':
     	do_delete(form, db)
     load_index(db)