def addNote(self, note) -> Optional[Note]: note.model()["did"] = self.deckChooser.selectedId() ret = note.dupeOrEmpty() problem = None if ret == 1: problem = _("The first field is empty.") problem = gui_hooks.add_cards_will_add_note(problem, note) if problem is not None: showWarning(problem, help="AddItems#AddError") return None if note.model()["type"] == MODEL_CLOZE: if not note.cloze_numbers_in_fields(): if not askUser( _( "You have a cloze deletion note type " "but have not made any cloze deletions. Proceed?" ) ): return None self.mw.col.add_note(note, self.deckChooser.selectedId()) self.mw.col.clearUndo() self.addHistory(note) self.previousNote = note self.mw.requireReset(reason=ResetReason.AddCardsAddNote, context=self) gui_hooks.add_cards_did_add_note(note) return note
def addNote(self, note) -> Optional[Note]: note.model()["did"] = self.deckChooser.selectedId() ret = note.dupeOrEmpty() problem = None if ret == 1: problem = _("The first field is empty.") problem = gui_hooks.add_cards_will_add_note(problem, note) if problem is not None: showWarning(problem, help="AddItems#AddError") return None if "{{cloze:" in note.model()["tmpls"][0]["qfmt"]: if not self.mw.col.models._availClozeOrds( note.model(), note.joinedFields(), False): if not askUser( _("You have a cloze deletion note type " "but have not made any cloze deletions. Proceed?")): return None cards = self.mw.col.addNote(note) if not cards: showWarning( _("""\ The input you have provided would make an empty \ question on all cards."""), help="AddItems", ) return None self.mw.col.clearUndo() self.addHistory(note) self.mw.requireReset() self.previousNote = note gui_hooks.add_cards_did_add_note(note) return note
def _note_can_be_added(self, note: Note) -> bool: result = note.duplicate_or_empty() if result == DuplicateOrEmptyResult.EMPTY: problem = tr.adding_the_first_field_is_empty() else: # duplicate entries are allowed these days problem = None # filter problem through add-ons problem = gui_hooks.add_cards_will_add_note(problem, note) if problem is not None: showWarning(problem, help=HelpPage.ADDING_CARD_AND_NOTE) return False # missing cloze deletion? if note.model()["type"] == MODEL_CLOZE: if not note.cloze_numbers_in_fields(): if not askUser(tr.adding_you_have_a_cloze_deletion_note()): return False return True
def addNote(self, note) -> Optional[Note]: note.model()["did"] = self.deckChooser.selectedId() ret = note.dupeOrEmpty() problem = None if ret == 1: problem = tr(TR.ADDING_THE_FIRST_FIELD_IS_EMPTY) problem = gui_hooks.add_cards_will_add_note(problem, note) if problem is not None: showWarning(problem, help="AddItems#AddError") return None if note.model()["type"] == MODEL_CLOZE: if not note.cloze_numbers_in_fields(): if not askUser(tr(TR.ADDING_YOU_HAVE_A_CLOZE_DELETION_NOTE)): return None self.mw.col.add_note(note, self.deckChooser.selectedId()) self.mw.col.clearUndo() self.addHistory(note) self.previousNote = note self.mw.requireReset(reason=ResetReason.AddCardsAddNote, context=self) gui_hooks.add_cards_did_add_note(note) return note
def _note_can_be_added(self, note: Note) -> bool: result = note.fields_check() # no problem, duplicate, and confirmed cloze cases problem = None if result == NoteFieldsCheckResult.EMPTY: problem = tr.adding_the_first_field_is_empty() elif result == NoteFieldsCheckResult.MISSING_CLOZE: if not askUser(tr.adding_you_have_a_cloze_deletion_note()): return False elif result == NoteFieldsCheckResult.NOTETYPE_NOT_CLOZE: problem = tr.adding_cloze_outside_cloze_notetype() elif result == NoteFieldsCheckResult.FIELD_NOT_CLOZE: problem = tr.adding_cloze_outside_cloze_field() # filter problem through add-ons problem = gui_hooks.add_cards_will_add_note(problem, note) if problem is not None: showWarning(problem, help=HelpPage.ADDING_CARD_AND_NOTE) return False return True
def accept_empty_first_field(problem, note): if problem == _("The first field is empty."): # recursive call, so that all hooks are run again, removing this problem. return gui_hooks.add_cards_will_add_note(None, note) else: return problem