create a separate conf group for each imported deck

This commit is contained in:
Damien Elmes 2011-12-13 04:42:12 +09:00
parent c1d9b62549
commit aeb38ab65d
2 changed files with 15 additions and 13 deletions

View file

@ -24,9 +24,18 @@ class Anki1Importer(Anki2Importer):
traceback.print_exc()
self.log.append(traceback.format_exc())
return
# save the conf for later
conf = deck.decks.conf(1)
# merge
deck.close()
mdir = self.file.replace(".anki", ".media")
self.deckPrefix = os.path.basename(self.file).replace(".anki", "")
self.file = deck.path
Anki2Importer.run(self, mdir)
# set imported deck to saved conf
id = self.col.decks.confId(self.deckPrefix)
conf['id'] = id
self.col.decks.updateConf(conf)
did = self.col.decks.id(self.deckPrefix)
d = self.col.decks.get(did)
self.col.decks.setConf(d, id)

View file

@ -301,14 +301,11 @@ insert or replace into col select id, cast(created as int), :t,
for k in keys:
db.execute("delete from deckVars where key=:k", k=k)
# copy other settings, ignoring deck order as there's a new default
g['newSpread'] = db.scalar("select newCardSpacing from decks")
g['newPerDay'] = db.scalar("select newCardsPerDay from decks")
g['repLim'] = db.scalar("select sessionRepLimit from decks")
g['timeLim'] = db.scalar("select sessionTimeLimit from decks")
# this needs to be placed in the model later on
conf['oldNewOrder'] = db.scalar("select newCardOrder from decks")
# no reverse option anymore
conf['oldNewOrder'] = min(1, conf['oldNewOrder'])
gc['new']['perDay'] = db.scalar("select newCardsPerDay from decks")
gc['new']['order'] = min(1, db.scalar("select newCardOrder from decks"))
# these are collection level, and can't be imported on a per-deck basis
# conf['newSpread'] = db.scalar("select newCardSpacing from decks")
# conf['timeLim'] = db.scalar("select sessionTimeLimit from decks")
# add any deck vars and save
dkeys = ("hexCache", "cssCache")
for (k, v) in db.execute("select * from deckVars").fetchall():
@ -616,12 +613,8 @@ update cards set due = cast(
(case when due < :stamp then 0 else 1 end) +
((due-:stamp)/86400) as int)+:today where type = 2
""", stamp=col.sched.dayCutoff, today=col.sched.today)
# set new card order
conf = col.decks.allConf()[0]
conf['new']['order'] = col.conf['oldNewOrder']
col.decks.save(conf)
del col.conf['oldNewOrder']
# possibly re-randomize
conf = col.decks.allConf()[0]
if not conf['new']['order']:
col.sched.randomizeCards(1)
# update insertion id