lib/actions/bookmark.py
changeset 75 4f6b7b48322f
parent 74 6784c4350b41
equal deleted inserted replaced
74:6784c4350b41 75:4f6b7b48322f
    38       kw = set(map(db.get_keyword, kw))
    38       kw = set(map(db.get_keyword, kw))
    39       return list(kw.union(get_new_kw_from_form(form)))
    39       return list(kw.union(get_new_kw_from_form(form)))
    40 
    40 
    41 def edit(db, prefs, form, id):
    41 def edit(db, prefs, form, id):
    42     name = url = ""
    42     name = url = ""
    43     if form.has_key("ctitle"):
    43     bk = Bookmark()
    44         name = form["ctitle"].value
    44     selected_kws = []
    45     if form.has_key("curl"):
    45     if (id != -1):
    46         url = form["curl"].value
    46     	bks = db.get_bookmarks([id])
       
    47 	if len(bks) > 0:
       
    48 		bk = bks[0]
       
    49 		(selected_kws, kwnames) = apply(zip,db.get_keywords([id]))
       
    50     if form.has_key("name"):
       
    51         bk.name = form["name"].value
       
    52     if form.has_key("url"):
       
    53         bk.url = form["url"].value
    47     kw = db.get_all_keywords()[1:]
    54     kw = db.get_all_keywords()[1:]
    48     kw.sort(lambda l,r: cmp(l[1],r[1]))
    55     kw.sort(lambda l,r: cmp(l[1],r[1]))
    49     kw = map(lambda elem: {
    56     kw = map(lambda elem: {
    50          'id' : elem[0],
    57          'id' : elem[0],
    51          'keyword' : elem[1],
    58          'keyword' : elem[1],
    52          'checked' : 0 }, kw)
    59          'checked' : elem[0] in selected_kws }, kw)
    53     print_edit(id, kw, name, url, prefs)
    60     print_edit(prefs, bk, kw)
    54 
    61 
    55 def confirm(step, bk, kw, prefs):
    62 def confirm(step, bk, kw, prefs):
    56     tmpl = Template("add_confirm.tmpl", prefs)
    63     tmpl = Template("add_confirm.tmpl", prefs)
    57     confirmation = "Unknown!"
    64     confirmation = "Unknown!"
    58     if (step == 'delete'):
    65     if (step == 'delete'):
    66     tmpl.set("url", bk.url)
    73     tmpl.set("url", bk.url)
    67     tmpl.set("Keywords", map(lambda x: {'keyword': x }, kw))
    74     tmpl.set("Keywords", map(lambda x: {'keyword': x }, kw))
    68     tmpl.set("desc", bk.desc)
    75     tmpl.set("desc", bk.desc)
    69     print tmpl.process()
    76     print tmpl.process()
    70 
    77 
    71 def print_edit(id, keywords, title, url, prefs):
    78 def print_edit(prefs, bk, keywords):
    72     tmpl = Template("add_bk.tmpl", prefs)
    79     tmpl = Template("add_bk.tmpl", prefs)
    73     tmpl.set('ctitle', title)
    80     tmpl.set('name', bk.name)
    74     tmpl.set('curl', url)
    81     tmpl.set('url', bk.url)
    75     tmpl.set('desc', '')
    82     tmpl.set('desc', bk.desc)
    76     tmpl.set('bkid', id)
    83     tmpl.set('bkid', bk.id)
    77     tmpl.set('Keywords', keywords)
    84     tmpl.set('Keywords', keywords)
    78     print tmpl.process()
    85     print tmpl.process()
    79 
    86 
    80 def update_bookmark(db, form):
    87 def execute(db, form):
    81 	bk = get_bk_from_form(form)
    88 	bk = get_bk_from_form(form)
    82 	id = bk.id
    89 	id = bk.id
    83 	if (bk.id == -1):
    90 	execution = form['execute'].value
    84 		id = db.add_bookmark(bk)
    91 	if execution == 'delete':
    85 	else:
    92 		if id != -1:
    86 		db.update_bookmark(bk)
    93 			db.remove_bookmark(id)
    87 	kw = add_unique_keywords(db, get_unique_keywords(form, db))
    94 	elif execution == 'update':
    88 	db.update_keywords(id, kw.values())
    95 		if (bk.id == -1):
       
    96 			id = db.add_bookmark(bk)
       
    97 		else:
       
    98 			db.update_bookmark(bk)
       
    99 		kw = add_unique_keywords(db, get_unique_keywords(form, db))
       
   100 		db.update_keywords(id, kw.values())
    89 
   101 
    90 def do_it(action, db, prefs, form):
   102 def do_it(action, db, prefs, form):
    91         if form.has_key('id'):
   103         if form.has_key('id'):
    92                 id = int(form['id'].value)
   104                 id = int(form['id'].value)
    93         else:
   105         else:
    97         else:
   109         else:
    98                 step = 'edit'
   110                 step = 'edit'
    99         if step == 'edit':
   111         if step == 'edit':
   100                 edit(db, prefs, form, id)
   112                 edit(db, prefs, form, id)
   101 	elif step == 'confirm':
   113 	elif step == 'confirm':
   102 		update_bookmark(db, form)
   114 		execute(db, form)
   103                 load_index(db, prefs, form, "result", "Bookmark update")
   115                 load_index(db, prefs, form, "result", "Bookmark " + form['execute'].value)
   104         elif step == 'cancel' or (action == 'delete' and id == -1):
   116         elif step == 'cancel' or (action == 'delete' and id == -1):
   105                 load_index(db, prefs, form, "err", "Operation cancel")
   117                 load_index(db, prefs, form, "err", "Operation cancel")
   106         else:
   118         else:
   107                 if step == 'update':
   119                 if step == 'update':
   108                         bk = get_bk_from_form(form)
   120                         bk = get_bk_from_form(form)