diff --git a/anki/models.py b/anki/models.py index 8aa9d9777..fade814b9 100644 --- a/anki/models.py +++ b/anki/models.py @@ -167,8 +167,10 @@ select id from cards where nid in (select id from notes where mid = ?)""", self.save(m) def ensureNameUnique(self, m): - if m['name'] in self.allNames(m): - m['name'] += "-" + checksum(str(time.time()))[:5] + for mcur in self.all(): + if (mcur['name'] == m['name'] and + mcur['id'] != m['id']): + m['name'] += "-" + checksum(str(time.time()))[:5] def update(self, m): "Add or update an existing model. Used for syncing and merging." diff --git a/tests/test_sync.py b/tests/test_sync.py index cb6f0ae2e..3f2efaad9 100644 --- a/tests/test_sync.py +++ b/tests/test_sync.py @@ -100,7 +100,7 @@ def test_models(): time.sleep(1) deck1.models.save(cm) deck1.save() - assert deck2.models.get(cm['id'])['name'] == "Basic" + assert deck2.models.get(cm['id'])['name'].startswith("Basic") assert client.sync() == "success" assert deck2.models.get(cm['id'])['name'] == "new" # deleting triggers a full sync