genCards() on findReplace()

This commit is contained in:
Damien Elmes 2012-04-25 12:39:02 +09:00
parent 5f7c80a2cd
commit 58aebc5b55

View file

@ -411,8 +411,10 @@ def findReplace(col, nids, src, dst, regex=False, field=None, fold=True):
def repl(str): def repl(str):
return re.sub(regex, dst, str) return re.sub(regex, dst, str)
d = [] d = []
snids = ids2str(nids)
nids = []
for nid, mid, flds in col.db.execute( for nid, mid, flds in col.db.execute(
"select id, mid, flds from notes where id in "+ids2str(nids)): "select id, mid, flds from notes where id in "+snids):
origFlds = flds origFlds = flds
# does it match? # does it match?
sflds = splitFields(flds) sflds = splitFields(flds)
@ -428,12 +430,14 @@ def findReplace(col, nids, src, dst, regex=False, field=None, fold=True):
sflds[c] = repl(sflds[c]) sflds[c] = repl(sflds[c])
flds = joinFields(sflds) flds = joinFields(sflds)
if flds != origFlds: if flds != origFlds:
nids.append(nid)
d.append(dict(nid=nid,flds=flds,u=col.usn(),m=intTime())) d.append(dict(nid=nid,flds=flds,u=col.usn(),m=intTime()))
if not d: if not d:
return 0 return 0
# replace # replace
col.db.executemany("update notes set flds=:flds,mod=:m,usn=:u where id=:nid", d) col.db.executemany("update notes set flds=:flds,mod=:m,usn=:u where id=:nid", d)
col.updateFieldCache(nids) col.updateFieldCache(nids)
col.genCards(nids)
return len(d) return len(d)
# Find duplicates # Find duplicates