set the initial factor when card graduates, not when it's created

This commit is contained in:
Damien Elmes 2011-03-04 23:25:35 +09:00
parent 1d6dbf9900
commit 8e40fdcb18
3 changed files with 7 additions and 5 deletions

View file

@ -69,7 +69,8 @@ class Card(object):
self.modelId = fact.modelId
self.cardModel = cardModel
self.groupId = group.id
self.factor = group.config['initialFactor']
# placeholder; will get set properly when card graduates
self.factor = 2500
# for non-orm use
self.cardModelId = cardModel.id
self.ordinal = cardModel.ordinal

View file

@ -21,13 +21,13 @@ defaultConf = {
'new': {
'delays': [0.5, 3, 10],
'ints': [1, 7, 4],
'initialFactor': 2.5,
},
'lapse': {
'delays': [0.5, 3, 10],
'ints': [1, 7, 4],
'mult': 0
},
'initialFactor': 2.5,
'suspendLeeches': True,
'leechFails': 16,
}

View file

@ -187,17 +187,18 @@ limit %d""" % self.learnLimit, lim=self.dayCutoff)
else:
# normal remove
int_ = conf['ints'][2]
self.rescheduleAsReview(card, int_)
self.rescheduleAsReview(card, conf, int_)
def graduateLearnCard(self, card, conf):
if card.type == 1:
int_ = None
else:
int_ = conf['ints'][0]
self.rescheduleAsReview(card, int_)
self.rescheduleAsReview(card, conf, int_)
def rescheduleAsReview(self, card, int_):
def rescheduleAsReview(self, card, conf, int_):
card.queue = 1
card.factor = conf['initialFactor']
if int_:
# new card
card.type = 1