mirror of
https://github.com/ankitects/anki.git
synced 2025-09-21 07:22:23 -04:00
handle randomize progress in ankiqt, add helper for updating facts
This commit is contained in:
parent
f4997f328c
commit
d1a44e308e
1 changed files with 16 additions and 9 deletions
25
anki/deck.py
25
anki/deck.py
|
@ -516,13 +516,13 @@ combinedDue = created, modified = :now, due = created
|
|||
where id in %s""" % ids2str(ids), now=time.time(), new=0)
|
||||
self.flushMod()
|
||||
|
||||
def randomizeNewCards(self):
|
||||
def randomizeNewCards(self, cardIds=None):
|
||||
"Randomize 'due' on all new cards."
|
||||
self.startProgress()
|
||||
self.updateProgress(_("Randomizing..."))
|
||||
now = time.time()
|
||||
fids = self.s.column0("""
|
||||
select distinct factId from cards where type = 2""")
|
||||
query = "select distinct factId from cards where type = 2"
|
||||
if cardIds:
|
||||
query += " and id in %s" % ids2str(cardIds)
|
||||
fids = self.s.column0(query)
|
||||
data = [{'fid': fid,
|
||||
'rand': random.uniform(0, now),
|
||||
'now': now} for fid in fids]
|
||||
|
@ -533,19 +533,15 @@ combinedDue = max(:rand + ordinal, spaceUntil),
|
|||
modified = :now
|
||||
where factId = :fid
|
||||
and type = 2""", data)
|
||||
self.finishProgress()
|
||||
|
||||
def orderNewCards(self):
|
||||
"Set 'due' to card creation time."
|
||||
self.startProgress()
|
||||
self.updateProgress(_("Ordering..."))
|
||||
self.s.statement("""
|
||||
update cards set
|
||||
due = created,
|
||||
combinedDue = max(spaceUntil, due),
|
||||
modified = :now
|
||||
where type = 2""", now=time.time())
|
||||
self.finishProgress()
|
||||
|
||||
def rescheduleCards(self, ids, min, max):
|
||||
"Reset cards and schedule with new interval in days (min, max)."
|
||||
|
@ -1404,6 +1400,17 @@ facts.modelId = :id""", id=model.id)
|
|||
return
|
||||
self.updateCardQACache(ids, dirty)
|
||||
|
||||
def updateCardsFromFactIds(self, ids, dirty=True):
|
||||
"Update all card question/answer when model changes."
|
||||
ids = self.s.all("""
|
||||
select cards.id, cards.cardModelId, cards.factId, facts.modelId from
|
||||
cards, facts where
|
||||
cards.factId = facts.id and
|
||||
facts.id in %s""" % ids2str(ids))
|
||||
if not ids:
|
||||
return
|
||||
self.updateCardQACache(ids, dirty)
|
||||
|
||||
def updateCardQACacheFromIds(self, ids, type="cards"):
|
||||
"Given a list of card or fact ids, update q/a cache."
|
||||
if type == "facts":
|
||||
|
|
Loading…
Reference in a new issue