Beispiel #1
0
    def __init__(
        self,
        mw: AnkiQt,
        deck_id: DeckID = DeckID(0),
        search: Optional[str] = None,
        search_2: Optional[str] = None,
    ) -> None:
        """If 'deck_id' is non-zero, load and modify its settings.
        Otherwise, build a new deck and derive settings from the current deck.

        If search or search_2 are provided, they will be used as the default
        search text.
        """

        QDialog.__init__(self, mw)
        self.mw = mw
        self.col = self.mw.col
        self._desired_search_1 = search
        self._desired_search_2 = search_2

        self._initial_dialog_setup()

        # set on successful query
        self.deck: FilteredDeckForUpdate

        mw.query_op(
            lambda: mw.col.sched.get_or_create_filtered_deck(deck_id=deck_id),
            success=self.load_deck_and_show,
            failure=self.on_fetch_error,
        )
Beispiel #2
0
    def __init__(self, parent: QWidget, *, mw: AnkiQt, note_ids: Sequence[int]) -> None:
        super().__init__(parent)
        self.mw = mw
        self.note_ids = note_ids
        self.field_names: List[str] = []

        # fetch field names and then show
        mw.query_op(
            lambda: mw.col.field_names_for_note_ids(note_ids),
            success=self._show,
        )