1
1
##############################################################################
3
# Three sided card type <Peter.Bienstman@UGent.be>
3
# three_sided.py <Peter.Bienstman@UGent.be>
5
5
##############################################################################
10
from mnemosyne.libmnemosyne.card import *
11
from mnemosyne.libmnemosyne.card_type import *
12
from mnemosyne.libmnemosyne.fact import *
13
from mnemosyne.libmnemosyne.config import config
10
from mnemosyne.libmnemosyne.card_type import CardType
11
from mnemosyne.libmnemosyne.fact_view import FactView
33
27
##########################################################################
38
29
def __init__(self):
40
CardType.__init__(self, id=2,
41
name=_("Foreign word with pronunciation"),
42
can_be_unregistered=False)
46
##########################################################################
50
##########################################################################
52
def generate_q(self, fact, fact_view):
54
if fact_view == ThreeSided.recognition:
56
elif fact_view == ThreeSided.production:
59
print 'Invalid fact view.'
64
##########################################################################
68
##########################################################################
70
def generate_a(self, fact, fact_view):
72
if fact_view == ThreeSided.recognition:
73
return fact['p'] + '\n' + fact['t']
74
elif fact_view == ThreeSided.production:
75
return fact['f'] + '\n' + fact['p']
77
print 'Invalid fact view.'
82
##########################################################################
86
##########################################################################
88
def new_cards(self, data):
90
# Extract and remove data.
93
cat_names = data['cat_names']
94
recognition = data['recognition']
95
production = data['production']
97
del data['recognition']
98
del data['production']
103
# TODO: add fact_views as a category name
110
Card(grade, card_type=self, fact=fact,
111
fact_view=ThreeSided.recognition, cat_names=cat_names).save()
114
Card(grade, card_type=self, fact=fact,
115
fact_view=ThreeSided.production, cat_names=cat_names).save()
121
##########################################################################
125
##########################################################################
127
def update_cards(self, data):
31
self.name = _("Foreign word with pronunciation"),
36
self.fact_key_names['f'] = _("Foreign word")
37
self.fact_key_names['p'] = _("Pronunciation")
38
self.fact_key_names['t'] = _("Translation")
42
v = FactView(_("Recognition"))
44
v.q_fields.append(("f", True))
46
v.a_fields.append(("p", False))
47
v.a_fields.append(("t", False))
49
self.fact_views.append(v)
53
v = FactView(_("Production"))
55
v.q_fields.append(("t", True))
57
v.a_fields.append(("f", False))
58
v.a_fields.append(("p", False))
60
self.fact_views.append(v)