kw_result.py
author fabien
Thu, 30 Oct 2003 03:24:25 -0500
branchxbelweb
changeset 54 f74bad856bce
parent 53 e80160a19653
permissions -rwxr-xr-x
[svn r1611] Optimization of db.get_bookmarks_count which was call too often.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
     1
#!/usr/bin/python
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
     2
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
     3
import sys
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
     4
import traceback
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
     5
sys.path.insert(0, "/home/fabien/lib/python")
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
     6
sys.path.insert(0, "./lib")
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
     7
sys.stderr = sys.stdout
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
     8
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
     9
print "Content-type: text/html; charset=iso-8859-1;"
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    10
print
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    11
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    12
# import cgitb; cgitb.enable()
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    13
import cgi
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    14
import my_db
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    15
from os import environ
47
2781ac85b807 [svn r1604] Implement default_view preferences, which move things around a lot.
fabien
parents: 30
diff changeset
    16
from webutils import load_index
2781ac85b807 [svn r1604] Implement default_view preferences, which move things around a lot.
fabien
parents: 30
diff changeset
    17
from keywords import get_keywords
15
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    18
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    19
def do_merge(form, db):
30
dbf4027d82fc [svn r1574] Keywords edition now in a separate page.
fabien
parents: 21
diff changeset
    20
	fromids = get_keywords(form, 'id')
53
e80160a19653 [svn r1610] Lots of "small" bugs corrected.
fabien
parents: 50
diff changeset
    21
	toids = get_keywords(form, 'kw')
50
5275135955c0 [svn r1607] Add remove flag to the keyword merging.
fabien
parents: 47
diff changeset
    22
	remove_them = form.has_key('remove')
53
e80160a19653 [svn r1610] Lots of "small" bugs corrected.
fabien
parents: 50
diff changeset
    23
	if remove_them:
e80160a19653 [svn r1610] Lots of "small" bugs corrected.
fabien
parents: 50
diff changeset
    24
		lastid = toids.pop()
30
dbf4027d82fc [svn r1574] Keywords edition now in a separate page.
fabien
parents: 21
diff changeset
    25
	for id in fromids:
dbf4027d82fc [svn r1574] Keywords edition now in a separate page.
fabien
parents: 21
diff changeset
    26
		fromkw = db.get_keyword(id)
53
e80160a19653 [svn r1610] Lots of "small" bugs corrected.
fabien
parents: 50
diff changeset
    27
		for dest in toids:
e80160a19653 [svn r1610] Lots of "small" bugs corrected.
fabien
parents: 50
diff changeset
    28
			tokw = db.get_keyword(dest)
e80160a19653 [svn r1610] Lots of "small" bugs corrected.
fabien
parents: 50
diff changeset
    29
			print "<em>Adding '%s' into '%s'.</em><br/>" % (fromkw, tokw)
e80160a19653 [svn r1610] Lots of "small" bugs corrected.
fabien
parents: 50
diff changeset
    30
			db.add_keywords(id, dest) 
50
5275135955c0 [svn r1607] Add remove flag to the keyword merging.
fabien
parents: 47
diff changeset
    31
		if remove_them:
53
e80160a19653 [svn r1610] Lots of "small" bugs corrected.
fabien
parents: 50
diff changeset
    32
			tokw = db.get_keyword(lastid)
50
5275135955c0 [svn r1607] Add remove flag to the keyword merging.
fabien
parents: 47
diff changeset
    33
			print "<em>Merging '%s' into '%s'.</em><br/>" % (fromkw, tokw)
53
e80160a19653 [svn r1610] Lots of "small" bugs corrected.
fabien
parents: 50
diff changeset
    34
			db.merge_keywords(id, lastid)
15
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    35
30
dbf4027d82fc [svn r1574] Keywords edition now in a separate page.
fabien
parents: 21
diff changeset
    36
def do_rename(form, db):
dbf4027d82fc [svn r1574] Keywords edition now in a separate page.
fabien
parents: 21
diff changeset
    37
	ids = get_keywords(form, 'id')
dbf4027d82fc [svn r1574] Keywords edition now in a separate page.
fabien
parents: 21
diff changeset
    38
	for id in ids:
dbf4027d82fc [svn r1574] Keywords edition now in a separate page.
fabien
parents: 21
diff changeset
    39
		oldname = db.get_keyword(id)
dbf4027d82fc [svn r1574] Keywords edition now in a separate page.
fabien
parents: 21
diff changeset
    40
		newname = form['name%d' % id].value
dbf4027d82fc [svn r1574] Keywords edition now in a separate page.
fabien
parents: 21
diff changeset
    41
		print "<em>Renaming '%s' into '%s'.</em><br/>" % (oldname, newname)
dbf4027d82fc [svn r1574] Keywords edition now in a separate page.
fabien
parents: 21
diff changeset
    42
		db.update_keyword(id, newname)
15
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    43
 
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    44
def do_delete(form, db):
30
dbf4027d82fc [svn r1574] Keywords edition now in a separate page.
fabien
parents: 21
diff changeset
    45
	ids = get_keywords(form, 'id')
dbf4027d82fc [svn r1574] Keywords edition now in a separate page.
fabien
parents: 21
diff changeset
    46
	for id in ids:
dbf4027d82fc [svn r1574] Keywords edition now in a separate page.
fabien
parents: 21
diff changeset
    47
		kw = db.get_keyword(id)
dbf4027d82fc [svn r1574] Keywords edition now in a separate page.
fabien
parents: 21
diff changeset
    48
		print "<em>Removing '%s'.</em><br/>" % kw
dbf4027d82fc [svn r1574] Keywords edition now in a separate page.
fabien
parents: 21
diff changeset
    49
		db.remove_keyword(id)
15
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    50
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    51
if (__name__ == "__main__"):
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    52
    form = cgi.FieldStorage()
21
345ee7421989 [svn r1555] Add multiuser support and more templating.
fabien
parents: 17
diff changeset
    53
    db = my_db.connect(environ["REMOTE_USER"])
47
2781ac85b807 [svn r1604] Implement default_view preferences, which move things around a lot.
fabien
parents: 30
diff changeset
    54
    prefs = db.get_preferences()
15
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    55
    action = form['action'].value
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    56
    if action == 'merge':
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    57
	do_merge(form, db)
30
dbf4027d82fc [svn r1574] Keywords edition now in a separate page.
fabien
parents: 21
diff changeset
    58
    elif action == 'rename':
dbf4027d82fc [svn r1574] Keywords edition now in a separate page.
fabien
parents: 21
diff changeset
    59
	do_rename(form, db)
15
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    60
    elif action == 'delete':
574631f841c3 [svn r1549] Add update/merge/delete keywords.
fabien
parents:
diff changeset
    61
    	do_delete(form, db)
47
2781ac85b807 [svn r1604] Implement default_view preferences, which move things around a lot.
fabien
parents: 30
diff changeset
    62
    load_index(db, prefs)