Example #1
0
File: map.py Project: wojas/pomni
    def __init__(self):
        CardType.__init__(self)
        self.id = "4"
        self.name = _("Map")
        self.description = _("A card type for learning locations on a map")

        # List and name the keys.
        self.fields.append(("loc", _("Location")))
        self.fields.append(("blank", _("Blank map")))
        self.fields.append(("marked", _("Marked map")))
        
        # Recognition.
        v = FactView(1, _("Recognition"))
        v.q_fields = ["marked"]
        v.a_fields = ["loc"]
        v.required_fields = ["marked", "loc"]
        self.fact_views.append(v)

        # Production.
        v = FactView(2, _("Production"))
        v.q_fields = ["loc","blank"]
        v.a_fields = ["marked"]
        v.required_fields = ["loc", "blank", "marked"]
        v.a_on_top_of_q = True
        self.fact_views.append(v)
    
        # The following field needs to be unique.
        self.unique_fields = ["loc"]
Example #2
0
 def __init__(self, language_name=""):
     CardType.__init__(self)
     if not language_name:
         self.id = "2"
         self.name = _("Front-to-back and back-to-front")
         self.is_language = False
     else:
         self.id = "2_" + language_name
         self.name = language_name
         self.is_language = True
         
     # List and name the keys.
     self.fields.append(("q", _("Question")))
     self.fields.append(("a", _("Answer")))
     
     # Front-to-back.
     v = FactView(1, _("Front-to-back"))
     v.q_fields = ["q"]
     v.a_fields = ["a"]
     v.required_fields = ["q"]
     self.fact_views.append(v)
     
     # Back-to-front.
     v = FactView(2, _("Back-to-front"))
     v.q_fields = ["a"]
     v.a_fields = ["q"]
     v.required_fields = ["a"]
     self.fact_views.append(v)
     
     # The question field needs to be unique. As for duplicates is the answer
     # field, these are better handled through a synonym detection plugin.
     self.unique_fields = ["q"]
Example #3
0
    def __init__(self, language_name=""):
        CardType.__init__(self)
        if not language_name:
            self.id = "3"
            self.name = _("Foreign word with pronunciation")
            self.is_language = False
        else:
            self.id = "3_" + language_name
            self.name = language_name
            self.is_language = True

        # List and name the keys.
        self.fields.append(("f", _("Foreign word")))
        self.fields.append(("p", _("Pronunciation")))
        self.fields.append(("t", _("Translation")))

        # Recognition.
        v = FactView(1, _("Recognition"))
        v.q_fields = ["f"]
        v.a_fields = ["p", "t"]
        v.required_fields = ["f"]
        self.fact_views.append(v)

        # Production.
        v = FactView(2, _("Production"))
        v.q_fields = ["t"]
        v.a_fields = ["f", "p"]
        v.required_fields = ["t"]
        self.fact_views.append(v)
    
        # The foreign word field needs to be unique. As for duplicates is the
        # answer field, these are better handled through a synonym detection 
        # plugin.
        self.unique_fields = ["f"]
Example #4
0
File: cloze.py Project: wojas/pomni
 def __init__(self):
     CardType.__init__(self)
     self.id = "5"
     self.name = _("Cloze deletion")
     self.description = \
        _("A card type blanking out certain fragments in a text.")
     self.fields.append(("text", _("Text")))
     self.unique_fields = ["text"]
     self.fact_views_can_be_deactivated = False
Example #5
0
    def __init__(self):
        CardType.__init__(self)
        self.id = "1"
        self.name = _("Front-to-back only")

        # List and name the keys.
        self.fields.append(("q", _("Question")))
        self.fields.append(("a", _("Answer")))

        # Front-to-back.
        v = FactView(1, _("Front-to-back"))
        v.q_fields = ["q"]
        v.a_fields = ["a"]
        v.required_fields = ["q"]
        self.fact_views.append(v)
    
        # The following field needs to be unique.
        self.unique_fields = ["q"]
Example #6
0
File: map.py Project: bartosh/pomni
 def question(self, card, exporting):
     # Insert a blank line to improve layout.
     card.fact["_"] = "<br>"
     return CardType.question(self, card, exporting)
Example #7
0
 def card_type_from_log_entry(self, log_entry):
     # Get card type object to be deleted now.
     if log_entry["type"] == EventTypes.DELETED_CARD_TYPE:
         return self.card_type(log_entry["o_id"], is_id_internal=False)
     # Create an empty shell of card type object that will be deleted later
     # during this sync.
     if "fact_views" not in log_entry:
         card_type = CardType(self.component_manager)
         card_type.id = log_entry["o_id"]
         card_type.fact_views = []
         card_type.fact_keys_and_names = []
         return card_type
     # Create card type object.
     card_type = CardType(self.component_manager)
     card_type.id = log_entry["o_id"]
     card_type.name = log_entry["name"]
     card_type.fact_keys_and_names = eval(log_entry["fact_keys_and_names"])
     card_type.fact_views = []
     for fact_view_id in eval(log_entry["fact_views"]):
         card_type.fact_views.append(
             self.fact_view(fact_view_id, is_id_internal=False))
     card_type.unique_fact_keys = eval(log_entry["unique_fact_keys"])
     card_type.required_fact_keys = eval(log_entry["required_fact_keys"])
     card_type.keyboard_shortcuts = eval(log_entry["keyboard_shortcuts"])
     if "extra" in log_entry:
         card_type.extra_data = eval(log_entry["extra"])
     return card_type
Example #8
0
 def card_type_from_log_entry(self, log_entry):
     # Get card type object to be deleted now.
     if log_entry["type"] == EventTypes.DELETED_CARD_TYPE:
         return self.get_card_type(log_entry["o_id"], id_is_internal=False)
     # Create an empty shell of card type object that will be deleted later
     # during this sync.
     if "fact_views" not in log_entry:
         card_type = CardType(self.component_manager)
         card_type.id = log_entry["o_id"]
         card_type.fact_views = []
         return card_type
     # Create card type object.
     card_type = CardType(self.component_manager)
     card_type.id = log_entry["o_id"]
     card_type.name = log_entry["name"]
     card_type.fields = eval(log_entry["fields"])
     card_type.fact_views = []
     for fact_view_id in eval(log_entry["fact_views"]):
         card_type.fact_views.append(self.get_fact_view(fact_view_id,
             id_is_internal=False))
     card_type.unique_fields = eval(log_entry["unique_fields"])
     card_type.required_fields = eval(log_entry["required_fields"])        
     card_type.keyboard_shortcuts = eval(log_entry["keyboard_shortcuts"])                    
     if "extra" in log_entry:
         card_type.extra_data = eval(log_entry["extra"])
     return card_type
Example #9
0
 def is_fact_data_valid(self, fact_data):
     return CardType.is_fact_data_valid(self, fact_data)
Example #10
0
 def fact_key_format_proxies(self):
     proxies = CardType.fact_key_format_proxies(self)
     proxies["a"] = "f"
     return proxies
Example #11
0
 def is_fact_data_valid(self, fact_data):
     return CardType.is_fact_data_valid(self, fact_data)
Example #12
0
 def fact_key_format_proxies(self):
     proxies = CardType.fact_key_format_proxies(self)
     proxies["a"] = "f"
     return proxies