[svn r1607] Add remove flag to the keyword merging. xbelweb
authorfabien
Fri, 24 Oct 2003 17:55:22 -0400
branchxbelweb
changeset 50 5275135955c0
parent 49 57932e991854
child 51 7015d65beb3d
[svn r1607] Add remove flag to the keyword merging.
BUGS
ChangeLog
do_edit_kw.py
folders.tmpl
kw_confirm.tmpl
kw_result.py
lib/my_db.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BUGS	Fri Oct 24 17:55:22 2003 -0400
@@ -0,0 +1,2 @@
+* There is a problem on keywords count for the add subfolder drop box
+  in folder view.
--- a/ChangeLog	Fri Oct 24 17:51:57 2003 -0400
+++ b/ChangeLog	Fri Oct 24 17:55:22 2003 -0400
@@ -3,9 +3,10 @@
   * Add display name to Preferences.
   * Add folders view with Add.
   * Add a default view between folders and dynamic view.
+  * Add a "remove keyword?" to the merge command.
   * Move things around so the code is a bit (really a bit) cleaner.
 
- -- Fabien Ninoles <fabien@tzone.org>  Fri, 17 Oct 2003 15:04:26 -0400
+ -- Fabien Ninoles <fabien@tzone.org>  Fri, 24 Oct 2003 17:54:14 -0400
 
 xbelweb (0.1-4) unstable; urgency=low
 
--- a/do_edit_kw.py	Fri Oct 24 17:51:57 2003 -0400
+++ b/do_edit_kw.py	Fri Oct 24 17:55:22 2003 -0400
@@ -33,9 +33,10 @@
     db = my_db.connect(os.environ["REMOTE_USER"])
     ids = get_keywords(form, 'kw')
     keywords = map(lambda e: { 'id': e[0], 'keyword': e[1]},
-   	 db.get_all_keywords())
+   	 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)
     action = form['action'].value
     main(action, sel_keywords, keywords, db.get_preferences())
 
--- a/folders.tmpl	Fri Oct 24 17:51:57 2003 -0400
+++ b/folders.tmpl	Fri Oct 24 17:55:22 2003 -0400
@@ -16,9 +16,9 @@
     <input type="hidden" name="action" value="delete"/>
     <ul>
     <TMPL_LOOP Subfolders>
-      <li><a href="index.py?view=folder;folder=<TMPL_VAR id>"><TMPL_VAR name>
-      	(<TMPL_VAR count>)</a>
-	<button name="delete" value="<TMPL_VAR id>">Delete</button></li>
+      <li><button name="delete" value="<TMPL_VAR id>">Delete</button>
+      <a href="index.py?view=folder;folder=<TMPL_VAR id>"><TMPL_VAR name>
+      	(<TMPL_VAR count>)</a></li>
     </TMPL_LOOP>
     </ul>
     </form>
--- a/kw_confirm.tmpl	Fri Oct 24 17:51:57 2003 -0400
+++ b/kw_confirm.tmpl	Fri Oct 24 17:55:22 2003 -0400
@@ -24,12 +24,13 @@
 	</TMPL_LOOP>
 	</p>
 	<label>Merge them with:
-	<select name="kw" size="<TMPL_VAR kw_size>">
+	<select name="kw" size="1">
 	<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/>
+	<label><input type="checkbox" name="remove"/> Remove keywords?</label>
       </TMPL_IF>
       <TMPL_IF confirm_rename>
         <p>Rename<br/>
--- a/kw_result.py	Fri Oct 24 17:51:57 2003 -0400
+++ b/kw_result.py	Fri Oct 24 17:55:22 2003 -0400
@@ -20,10 +20,15 @@
 	fromids = get_keywords(form, 'id')
 	toid = int(form['kw'].value)	
 	tokw = db.get_keyword(toid)
+	remove_them = form.has_key('remove')
 	for id in fromids:
 		fromkw = db.get_keyword(id)
-		print "<em>Merging '%s' into '%s'.</em><br/>" % (fromkw, tokw)
-		db.merge_keywords(id, toid)
+		if remove_them:
+			print "<em>Merging '%s' into '%s'.</em><br/>" % (fromkw, tokw)
+			db.merge_keywords(id, toid)
+		else:
+			print "<em>Adding '%s' into '%s'.</em><br/>" % (fromkw, tokw)
+			db.merge_keywords(id, toid) 
 
 def do_rename(form, db):
 	ids = get_keywords(form, 'id')
--- a/lib/my_db.py	Fri Oct 24 17:51:57 2003 -0400
+++ b/lib/my_db.py	Fri Oct 24 17:55:22 2003 -0400
@@ -216,6 +216,20 @@
 			WHERE id = %d AND userid = %d;
 			""" % (id, self.userid, id, self.userid))
 		self.cnx.commit()
+	def add_keywords(self, add_id, into_id):
+		self.crs.execute("""
+			INSERT INTO bookmarks_keywords (userid,
+			bookmark, keyword)
+			SELECT (%d, %d, bookmark)
+			WHERE keyword = %d
+			AND userid = %d
+			AND bookmark NOT IN 
+			  (SELECT bookmark FROM bookmarks_keywords
+			  WHERE userid = %d AND keyword = %d )
+			;
+			""" % (self.userid, into_id, add_id, self.userid,
+			self.userid, into_id))
+		self.cnx.commit()
 	def merge_keywords(self, merge_id, into_id):
 		self.crs.execute("""
 			UPDATE bookmarks_keywords