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.exc import *
|
||||||
from webob import Response
|
from webob import Response
|
||||||
|
|
||||||
|
#from pprint import pprint
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import simplejson as json
|
import simplejson as json
|
||||||
from simplejson import JSONDecodeError
|
from simplejson import JSONDecodeError
|
||||||
@ -404,6 +406,18 @@ class DeckHandler(RestHandlerBase):
|
|||||||
"""Default handler group for 'deck' type."""
|
"""Default handler group for 'deck' type."""
|
||||||
|
|
||||||
button_labels = ['Easy', 'Good', 'Hard']
|
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
|
# Code stolen from aqt/reviewer.py
|
||||||
def _get_answer_buttons(self, col, card):
|
def _get_answer_buttons(self, col, card):
|
||||||
@ -420,9 +434,9 @@ class DeckHandler(RestHandlerBase):
|
|||||||
return [(ease, label, col.sched.nextIvl(card, ease)) for ease, label in enumerate(l, 1)]
|
return [(ease, label, col.sched.nextIvl(card, ease)) for ease, label in enumerate(l, 1)]
|
||||||
|
|
||||||
def next_card(self, col, data, ids):
|
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()
|
card = col.sched.getCard()
|
||||||
if card is None:
|
if card is None:
|
||||||
return None
|
return None
|
||||||
@ -438,9 +452,26 @@ class CardHandler(RestHandlerBase):
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def _serialize(card):
|
def _serialize(card):
|
||||||
d = {
|
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
|
return d
|
||||||
|
|
||||||
# Our entry point
|
# Our entry point
|
||||||
|
|||||||
@ -323,12 +323,16 @@ class DeckHandlerTest(CollectionTestBase):
|
|||||||
}
|
}
|
||||||
self.add_note(note)
|
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]
|
card_id = self.collection.findCards('')[0]
|
||||||
|
|
||||||
self.collection.sched.reset()
|
self.collection.sched.reset()
|
||||||
ret = self.execute('next_card', {})
|
ret = self.execute('next_card', {})
|
||||||
self.assertEqual(ret['id'], card_id)
|
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__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user