Serialize more of the card object.
This commit is contained in:
parent
9deb84c6a6
commit
59f8171798
@ -3,6 +3,8 @@ from webob.dec import wsgify
|
||||
from webob.exc import *
|
||||
from webob import Response
|
||||
|
||||
#from pprint import pprint
|
||||
|
||||
try:
|
||||
import simplejson as json
|
||||
from simplejson import JSONDecodeError
|
||||
@ -405,6 +407,18 @@ class DeckHandler(RestHandlerBase):
|
||||
|
||||
button_labels = ['Easy', 'Good', 'Hard']
|
||||
|
||||
def _get_deck(self, col, ids):
|
||||
try:
|
||||
did = long(ids[1])
|
||||
deck = col.decks.get(did, False)
|
||||
except ValueError:
|
||||
deck = col.decks.byName(ids[1])
|
||||
|
||||
if deck is None:
|
||||
raise HTTPNotFound('No deck with id or name: ' + str(ids[1]))
|
||||
|
||||
return deck
|
||||
|
||||
# Code stolen from aqt/reviewer.py
|
||||
def _get_answer_buttons(self, col, card):
|
||||
l = []
|
||||
@ -420,9 +434,9 @@ class DeckHandler(RestHandlerBase):
|
||||
return [(ease, label, col.sched.nextIvl(card, ease)) for ease, label in enumerate(l, 1)]
|
||||
|
||||
def next_card(self, col, data, ids):
|
||||
deck_id = ids[1]
|
||||
deck = self._get_deck(col, ids)
|
||||
|
||||
col.decks.select(deck_id)
|
||||
col.decks.select(deck['id'])
|
||||
card = col.sched.getCard()
|
||||
if card is None:
|
||||
return None
|
||||
@ -438,9 +452,26 @@ class CardHandler(RestHandlerBase):
|
||||
@staticmethod
|
||||
def _serialize(card):
|
||||
d = {
|
||||
'id': card.id
|
||||
'id': card.id,
|
||||
'isEmpty': card.isEmpty(),
|
||||
'question': card.q(),
|
||||
'answer': card.a(),
|
||||
'did': card.did,
|
||||
'due': card.due,
|
||||
'factor': card.factor,
|
||||
'ivl': card.ivl,
|
||||
'lapses': card.lapses,
|
||||
'left': card.left,
|
||||
'mod': card.mod,
|
||||
'nid': card.nid,
|
||||
'odid': card.odid,
|
||||
'odue': card.odue,
|
||||
'ord': card.ord,
|
||||
'queue': card.queue,
|
||||
'reps': card.reps,
|
||||
'type': card.type,
|
||||
'usn': card.usn,
|
||||
}
|
||||
# TODO: do more stuff!
|
||||
return d
|
||||
|
||||
# Our entry point
|
||||
|
||||
@ -323,12 +323,16 @@ class DeckHandlerTest(CollectionTestBase):
|
||||
}
|
||||
self.add_note(note)
|
||||
|
||||
# get the id for the one card on this collection
|
||||
# get the id for the one card and note on this collection
|
||||
note_id = self.collection.findNotes('')[0]
|
||||
card_id = self.collection.findCards('')[0]
|
||||
|
||||
self.collection.sched.reset()
|
||||
ret = self.execute('next_card', {})
|
||||
self.assertEqual(ret['id'], card_id)
|
||||
self.assertEqual(ret['nid'], note_id)
|
||||
self.assertEqual(ret['question'], '<style>.card {\n font-family: arial;\n font-size: 20px;\n text-align: center;\n color: black;\n background-color: white;\n}\n</style>The front')
|
||||
self.assertEqual(ret['answer'], '<style>.card {\n font-family: arial;\n font-size: 20px;\n text-align: center;\n color: black;\n background-color: white;\n}\n</style>The front\n\n<hr id=answer>\n\nThe back')
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user