mirror of
https://github.com/ankitects/anki.git
synced 2025-09-25 17:26:36 -04:00
prevent merging/deletion of public models, add source id
This commit is contained in:
parent
4685523791
commit
838ed803f7
2 changed files with 12 additions and 4 deletions
|
@ -899,7 +899,8 @@ facts.id = cards.factId""", id=model.id))
|
||||||
|
|
||||||
def modelsGroupedByName(self):
|
def modelsGroupedByName(self):
|
||||||
"Return hash of name -> [id, cardModelIds, fieldIds]"
|
"Return hash of name -> [id, cardModelIds, fieldIds]"
|
||||||
l = self.s.all("select name, id from models order by created")
|
l = self.s.all("select name, id from models where source = 0"
|
||||||
|
" order by created")
|
||||||
models = {}
|
models = {}
|
||||||
for m in l:
|
for m in l:
|
||||||
cms = self.s.column0("""
|
cms = self.s.column0("""
|
||||||
|
|
13
anki/sync.py
13
anki/sync.py
|
@ -32,7 +32,7 @@ from anki.stats import Stats, globalStats
|
||||||
from anki.history import CardHistoryEntry
|
from anki.history import CardHistoryEntry
|
||||||
from anki.stats import globalStats
|
from anki.stats import globalStats
|
||||||
from anki.media import checksum
|
from anki.media import checksum
|
||||||
from anki.utils import ids2str
|
from anki.utils import ids2str, hexifyID
|
||||||
from anki.lang import _
|
from anki.lang import _
|
||||||
|
|
||||||
if simplejson.__version__ < "1.7.3":
|
if simplejson.__version__ < "1.7.3":
|
||||||
|
@ -704,8 +704,9 @@ where media.id in %s""" % sids, now=time.time())
|
||||||
self.applyOneWayPayload(payload)
|
self.applyOneWayPayload(payload)
|
||||||
|
|
||||||
def syncOneWayDeckName(self):
|
def syncOneWayDeckName(self):
|
||||||
return self.deck.s.scalar("select name from sources where id = :id",
|
return (self.deck.s.scalar("select name from sources where id = :id",
|
||||||
id=self.server.deckName) or self.server.deckName
|
id=self.server.deckName) or
|
||||||
|
hexifyID(int(self.server.deckName)))
|
||||||
|
|
||||||
def prepareOneWaySync(self):
|
def prepareOneWaySync(self):
|
||||||
"Sync setup. True if sync needed. Not used for local sync."
|
"Sync setup. True if sync needed. Not used for local sync."
|
||||||
|
@ -744,6 +745,12 @@ where media.id in %s""" % sids, now=time.time())
|
||||||
# model, facts, media
|
# model, facts, media
|
||||||
for key in keys:
|
for key in keys:
|
||||||
self.updateObjsFromKey(payload[key], key)
|
self.updateObjsFromKey(payload[key], key)
|
||||||
|
# models need their source tagged
|
||||||
|
for m in payload["models"]:
|
||||||
|
self.deck.s.statement("update models set source = :s "
|
||||||
|
"where id = :id",
|
||||||
|
s=self.server.deckName,
|
||||||
|
id=m['id'])
|
||||||
# cards last, handled differently
|
# cards last, handled differently
|
||||||
self.updateOneWayCards(payload['cards'])
|
self.updateOneWayCards(payload['cards'])
|
||||||
# update sync time
|
# update sync time
|
||||||
|
|
Loading…
Reference in a new issue