Attempt to allow the user to configure the scheduler.
This commit is contained in:
parent
e582d8284b
commit
1348950875
@ -353,9 +353,23 @@ class CollectionHandler(RestHandlerBase):
|
||||
# SCHEDULER - Controls card review, ie. intervals, what cards are due, answering a card, etc.
|
||||
#
|
||||
|
||||
@noReturnValue
|
||||
def reset_scheduler(self, col, req):
|
||||
if req.data.has_key('deck'):
|
||||
deck = DeckHandler._get_deck(col, req.data['deck'])
|
||||
col.decks.select(deck['id'])
|
||||
|
||||
col.sched.reset()
|
||||
counts = col.sched.counts()
|
||||
return {
|
||||
'new_cards': counts[0],
|
||||
'learning_cards': counts[1],
|
||||
'review_cards': counts[1],
|
||||
}
|
||||
|
||||
def extend_scheduler_limits(self, col, req):
|
||||
new_cards = int(req.data.get('new_cards', 0))
|
||||
review_cards = int(req.data.get('review_cards', 0))
|
||||
col.sched.extendLimits(new_cards, review_cards)
|
||||
|
||||
button_labels = ['Easy', 'Good', 'Hard']
|
||||
|
||||
@ -549,6 +563,9 @@ class DeckHandler(RestHandlerBase):
|
||||
|
||||
return deck
|
||||
|
||||
def index(self, col, req):
|
||||
return self._get_deck(col, req.ids[1])
|
||||
|
||||
def next_card(self, col, req):
|
||||
req_copy = req.copy()
|
||||
req_copy.data['deck'] = req.ids[1]
|
||||
@ -557,6 +574,21 @@ class DeckHandler(RestHandlerBase):
|
||||
# forward this to the CollectionHandler
|
||||
return req.app.execute_handler('collection', 'next_card', col, req_copy)
|
||||
|
||||
def get_conf(self, col, req):
|
||||
# TODO: should probably live in a ConfHandler
|
||||
return col.decks.confForDid(req.ids[1])
|
||||
|
||||
@noReturnValue
|
||||
def set_update_conf(self, col, req):
|
||||
data = req.data.copy()
|
||||
del data['id']
|
||||
|
||||
conf = col.decks.confForDid(req.ids[1])
|
||||
conf = conf.copy()
|
||||
conf.update(data)
|
||||
|
||||
col.decks.updateConf(conf)
|
||||
|
||||
class CardHandler(RestHandlerBase):
|
||||
"""Default handler group for 'card' type."""
|
||||
|
||||
|
||||
@ -265,6 +265,16 @@ class CollectionHandlerTest(CollectionTestBase):
|
||||
# return everything to normal!
|
||||
anki.lang.setLang('en')
|
||||
|
||||
def test_reset_scheduler(self):
|
||||
self.add_default_note(3)
|
||||
|
||||
ret = self.execute('reset_scheduler', {'deck': 'Default'})
|
||||
self.assertEqual(ret, {
|
||||
'new_cards': 3,
|
||||
'learning_cards': 0,
|
||||
'review_cards': 0,
|
||||
})
|
||||
|
||||
def test_next_card(self):
|
||||
ret = self.execute('next_card', {})
|
||||
self.assertEqual(ret, None)
|
||||
@ -488,6 +498,13 @@ class DeckHandlerTest(CollectionTestBase):
|
||||
req = RestHandlerRequest(self.mock_app, data, ids, {})
|
||||
return func(self.collection, req)
|
||||
|
||||
def test_index(self):
|
||||
ret = self.execute('index', {})
|
||||
#pprint(ret)
|
||||
self.assertEqual(ret['name'], 'Default')
|
||||
self.assertEqual(ret['id'], 1)
|
||||
self.assertEqual(ret['dyn'], False)
|
||||
|
||||
def test_next_card(self):
|
||||
self.mock_app.execute_handler.return_value = None
|
||||
|
||||
@ -495,6 +512,13 @@ class DeckHandlerTest(CollectionTestBase):
|
||||
self.assertEqual(ret, None)
|
||||
self.mock_app.execute_handler.assert_called_with('collection', 'next_card', self.collection, RestHandlerRequest(self.mock_app, {'deck': '1'}, ['collection_name'], {}))
|
||||
|
||||
def test_get_conf(self):
|
||||
ret = self.execute('get_conf', {})
|
||||
#pprint(ret)
|
||||
self.assertEqual(ret['name'], 'Default')
|
||||
self.assertEqual(ret['id'], 1)
|
||||
self.assertEqual(ret['dyn'], False)
|
||||
|
||||
class CardHandlerTest(CollectionTestBase):
|
||||
def setUp(self):
|
||||
super(CardHandlerTest, self).setUp()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user