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.
|
# SCHEDULER - Controls card review, ie. intervals, what cards are due, answering a card, etc.
|
||||||
#
|
#
|
||||||
|
|
||||||
@noReturnValue
|
|
||||||
def reset_scheduler(self, col, req):
|
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()
|
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']
|
button_labels = ['Easy', 'Good', 'Hard']
|
||||||
|
|
||||||
@ -548,6 +562,9 @@ class DeckHandler(RestHandlerBase):
|
|||||||
raise HTTPNotFound('No deck with id or name: ' + str(val))
|
raise HTTPNotFound('No deck with id or name: ' + str(val))
|
||||||
|
|
||||||
return deck
|
return deck
|
||||||
|
|
||||||
|
def index(self, col, req):
|
||||||
|
return self._get_deck(col, req.ids[1])
|
||||||
|
|
||||||
def next_card(self, col, req):
|
def next_card(self, col, req):
|
||||||
req_copy = req.copy()
|
req_copy = req.copy()
|
||||||
@ -557,6 +574,21 @@ class DeckHandler(RestHandlerBase):
|
|||||||
# forward this to the CollectionHandler
|
# forward this to the CollectionHandler
|
||||||
return req.app.execute_handler('collection', 'next_card', col, req_copy)
|
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):
|
class CardHandler(RestHandlerBase):
|
||||||
"""Default handler group for 'card' type."""
|
"""Default handler group for 'card' type."""
|
||||||
|
|
||||||
|
|||||||
@ -265,6 +265,16 @@ class CollectionHandlerTest(CollectionTestBase):
|
|||||||
# return everything to normal!
|
# return everything to normal!
|
||||||
anki.lang.setLang('en')
|
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):
|
def test_next_card(self):
|
||||||
ret = self.execute('next_card', {})
|
ret = self.execute('next_card', {})
|
||||||
self.assertEqual(ret, None)
|
self.assertEqual(ret, None)
|
||||||
@ -488,6 +498,13 @@ class DeckHandlerTest(CollectionTestBase):
|
|||||||
req = RestHandlerRequest(self.mock_app, data, ids, {})
|
req = RestHandlerRequest(self.mock_app, data, ids, {})
|
||||||
return func(self.collection, req)
|
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):
|
def test_next_card(self):
|
||||||
self.mock_app.execute_handler.return_value = None
|
self.mock_app.execute_handler.return_value = None
|
||||||
|
|
||||||
@ -495,6 +512,13 @@ class DeckHandlerTest(CollectionTestBase):
|
|||||||
self.assertEqual(ret, None)
|
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'], {}))
|
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):
|
class CardHandlerTest(CollectionTestBase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(CardHandlerTest, self).setUp()
|
super(CardHandlerTest, self).setUp()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user