Beispiel #1
0
    def __init__(self, deck, master=None):
        super().__init__(master)
        self.app = master
        self.selectedDeck = deck
        self.data = Data()
        self.deckService = DeckService(Data())
        self.clear()

        self.fontTitle = tkFont.Font(family="Lucida Grande", size=20)
        self.title = tkinter.Label(text="AnkiLike - Creator Mode",
                                   font=self.fontTitle)
        self.str_line = "_" * 20
        self.line = tkinter.Label(text=self.str_line, font=self.fontTitle)
        self.frame_menu = tkinter.LabelFrame(self.app, text="Delete card")
        self.form_one = tkinter.Frame(self.frame_menu)
        self.label_choose = tkinter.Label(self.form_one, text="Delete card : ")
        self.tst = ttk.Combobox(self.form_one)
        self.tst['values'] = [c.title for c in self.selectedDeck._get_cards()]
        self.delete_btn = tkinter.Button(self.frame_menu,
                                         text="Delete",
                                         command=self.delete)
        self.back_btn = tkinter.Button(self.frame_menu,
                                       text="Back",
                                       command=self.load_back_view)

        self.create_view()
Beispiel #2
0
    def __init__(self, selectedDeck, master=None):
        super().__init__(master)
        self.selectedDeck = selectedDeck
        self.app = master
        self.clear()

        self.deckService = DeckService(Data())

        self.fontTitle = tkFont.Font(family="Lucida Grande", size=20)
        self.title = tkinter.Label(text="AnkiLike - Creator Mode",
                                   font=self.fontTitle)
        self.str_line = "_" * 20
        self.str_deck = tkinter.Label(text="Card management of deck : " +
                                      self.selectedDeck.name)
        self.line = tkinter.Label(text=self.str_line, font=self.fontTitle)
        self.frame_menu = tkinter.LabelFrame(self.app, text="Deck management")
        self.create_card = tkinter.Button(self.frame_menu,
                                          text="Add card",
                                          command=self.load_add_card_view)
        self.update_card = tkinter.Button(self.frame_menu,
                                          text="Update card",
                                          command=self.load_update_card_view)
        self.delete_card = tkinter.Button(self.frame_menu,
                                          text="Delete card",
                                          command=self.load_del_card_view)
        self.back_btn = tkinter.Button(self.frame_menu,
                                       text="Back",
                                       command=self.load_back_view)

        self.create_view()
Beispiel #3
0
    def __init__(self, deck_index, master=None, last_card=None, **kw):
        super().__init__(master, **kw)
        self.app = master
        self.clear()
        self.data = Data()
        self.current_deck = self.data.box.decks[deck_index]
        self.deck_index = deck_index
        self.cards = self.current_deck.cards

        # set card_service
        self.card_service = CardService()

        self.question_controller = QuestionController(deck_index, self.card_service, last_card)

        self.str_line = "_" * 20
        self.font_title = tkFont.Font(family="Lucida Grande", size=20)
        self.line = tkinter.Label(text=self.str_line, font=self.font_title)
        self.title = tkinter.Label(text="AnkiLike - Player Mode", font=self.font_title)

        self.deck_name = tkinter.Label(text="Deck name : " + self.current_deck.name, font=self.font_title)
        self.deck_name.config(font=("Lucida Grande", 20))
        self.current_card = self.question_controller.draw_card()
        self.question_title = tkinter.Label(text="Title : {}".format(self.current_card.title), font=("Lucida Grande", 20))
        self.question_label = tkinter.Label(text="Question :", font=("Lucida Grande", 13))
        self.current_content = tkinter.Label(text=self.current_card.question, font=("Lucida Grande", 13))
        self.current_validation_level = tkinter.Label(
            text="Validation level : {}".format(self.current_card.validation_level))
        self.button_validate = tkinter.Button(text="Show answer", command=self._call_show_answer)
        self.button_not_validate = tkinter.Button(text="Not Validate", command=self._call_not_validate)
        self.back_button = tkinter.Button(text="Return list decks", command=self._back_player_view)
        self._create_player_deck_view()
Beispiel #4
0
    def setUp(self) -> None:
        self.card = Card("card title", "question", "answer", 1)
        self.deck = Deck("deck name", [self.card])
        self.data = Data()
        self.data.box = Box("box name", [self.deck])

        self.deck_service = DeckService(self.data)
Beispiel #5
0
    def __init__(self, master=None):
        super().__init__(master)
        self.app = master
        self.clear()

        self.deckService = DeckService(Data())

        self.fontTitle = tkFont.Font(family="Lucida Grande", size=20)
        self.title = tkinter.Label(text="AnkiLike - Creator Mode",
                                   font=self.fontTitle)
        self.str_line = "_" * 20
        self.line = tkinter.Label(text=self.str_line, font=self.fontTitle)
        self.frame_menu = tkinter.LabelFrame(self.app, text="Create Deck")
        self.form_one = tkinter.Frame(self.frame_menu)
        self.label_name = tkinter.Label(self.form_one, text="Name : ")
        self.var_name_entry = tkinter.StringVar()
        self.name_entry = tkinter.Entry(self.form_one,
                                        textvariable=self.var_name_entry)
        self.save_btn = tkinter.Button(self.frame_menu,
                                       text="Save",
                                       command=self.save_deck)
        self.back_btn = tkinter.Button(self.frame_menu,
                                       text="Back",
                                       command=self.load_back_view)
        self.confirm_text = tkinter.StringVar()
        self.confirm_label = tkinter.Label(self.app,
                                           textvariable=self.confirm_text)

        self.create_view()
 def __init__(self, deck_index: int, card_service: CardService,
              last_card: Card):
     self.deck_index = deck_index
     self.card_service = card_service
     self.card_service.data = Data()
     self.card_service.values_ratio_lister = ValuesRatioLister(3 / 4)
     self.card_service.deck_index = deck_index
     self.card_service.current_card = last_card
Beispiel #7
0
    def __init__(self, master=None):
        super().__init__(master)
        self.app = master
        self.clear()
        self.data = Data()
        self.deckService = DeckService(Data())

        # Nominal view
        self.fontTitle = tkFont.Font(family="Lucida Grande", size=20)
        self.title = tkinter.Label(text="AnkiLike - Creator Mode",
                                   font=self.fontTitle)
        self.str_line = "_" * 20
        self.frame_menu = tkinter.LabelFrame(self.app, text="Deck Management")
        self.line = tkinter.Label(text=self.str_line, font=self.fontTitle)
        self.form_one = tkinter.Frame(self.frame_menu)
        self.label_choose = tkinter.Label(self.form_one,
                                          text="Choose your deck : ")
        self.tst = ttk.Combobox(self.form_one)
        self.tst['values'] = [d._get_name() for d in self.data.box.decks]
        self.save_btn = tkinter.Button(self.frame_menu,
                                       text="Manage cards",
                                       command=self.manage)
        self.rename_btn = tkinter.Button(self.frame_menu,
                                         text="Rename",
                                         command=self.rename_view)
        self.back_btn = tkinter.Button(self.frame_menu,
                                       text="Back",
                                       command=self.load_back_view)

        # Rename view
        self.clear()
        self.rename_label = tkinter.Label(self.form_one, text="Name : ")
        self.var_name_entry = tkinter.StringVar()
        self.input_rename = tkinter.Entry(self.form_one,
                                          textvariable=self.var_name_entry)

        self.create_view_nominal()
Beispiel #8
0
    def setUp(self) -> None:
        self.cards = []
        for i in range(5):
            self.cards.append(Card("card" + str(i), "question", "answer", i))
        self.deck = Deck("deck name to test card service", self.cards)
        self.data = Data()
        self.data.box = Box("box name", [self.deck])
        self.mock_values_ratio_lister = MagicMock()

        self.card_service = CardService()
        self.card_service.data = self.data
        self.card_service.deck_index = 0
        self.card_service.values_ratio_lister = self.mock_values_ratio_lister

        self.deck_create_helper = DeckCreateHelper(4)
Beispiel #9
0
    def __init__(self, master=None):
        super().__init__(master)
        self.app = master
        self.clear()
        self.data = Data()

        self.str_line = "_" * 20
        self.fontTitle = tkFont.Font(family="Lucida Grande", size=20)
        self.line = tkinter.Label(text=self.str_line, font=self.fontTitle)
        self.title = tkinter.Label(text="AnkiLike - Export Mode", font=self.fontTitle)
        self.label_frame = tkinter.LabelFrame(self.app, text="Choisissez les decks à exporter")
        self.list_check_decks = list()

        self.export_deck_button = tkinter.Button(text="Exporter les decks sélectionnés", command=self.export_decks)
        self.export_all_decks_button = tkinter.Button(text="Exporter tous les decks", command=self.export_all_decks)
        self.create_view()
Beispiel #10
0
    def __init__(self, selectedDeck, master=None):
        super().__init__(master)
        self.selectedDeck = selectedDeck
        self.app = master
        self.clear()

        self.deckService = DeckService(Data())

        self.fontTitle = tkFont.Font(family="Lucida Grande", size=20)
        self.title = tkinter.Label(text="AnkiLike - Creator Mode",
                                   font=self.fontTitle)
        self.str_line = "_" * 20
        self.str_deck = tkinter.Label(text="Add card to deck : " +
                                      self.selectedDeck.name)
        self.line = tkinter.Label(text=self.str_line, font=self.fontTitle)
        self.frame_menu = tkinter.LabelFrame(self.app, text="Create card")
        self.form_one = tkinter.Frame(self.frame_menu)
        self.form_two = tkinter.Frame(self.frame_menu)
        self.form_three = tkinter.Frame(self.frame_menu)

        self.label_title = tkinter.Label(self.form_one, text="Title : ")
        self.var_title_entry = tkinter.StringVar()
        self.title_entry = tkinter.Entry(self.form_one,
                                         textvariable=self.var_title_entry)

        self.label_quest = tkinter.Label(self.form_two, text="Question : ")
        self.var_quest_entry = tkinter.StringVar()
        self.quest_entry = tkinter.Entry(self.form_two,
                                         textvariable=self.var_quest_entry)

        self.label_answer = tkinter.Label(self.form_three, text="Answer : ")
        self.var_answer_entry = tkinter.StringVar()
        self.answer_entry = tkinter.Entry(self.form_three,
                                          textvariable=self.var_answer_entry)

        self.save_btn = tkinter.Button(self.frame_menu,
                                       text="Save",
                                       command=self.save_card)
        self.back_btn = tkinter.Button(self.frame_menu,
                                       text="Back",
                                       command=self.load_back_view)
        self.error_text = tkinter.StringVar()
        self.error_label = tkinter.Label(self.app,
                                         textvariable=self.error_text)

        self.create_view()
Beispiel #11
0
    if confirm:
        Path('save').mkdir(parents=True, exist_ok=True)
        SaveService().save_data('save/save.json', data.box)
        root.destroy()
    elif confirm is None:
        pass
    else:
        root.destroy()


def on_saving(event):
    Path('save').mkdir(parents=True, exist_ok=True)
    SaveService().save_data('save/save.json', data.box)


if __name__ == "__main__":
    root = tkinter.Tk()

    data = Data()

    # load dummies random number of decks and cards
    if len(sys.argv) >= 2 and sys.argv[1] == "dataload":
        data.box = DataDummiesLoader().box_load()
    else:
        data.box = SaveService().get_json_box(Path("save/save.json"))
    app = AnkiLike(master=root)

    root.bind('<Control-s>', on_saving)
    root.protocol("WM_DELETE_WINDOW", on_closing)
    app.mainloop()
Beispiel #12
0
 def __init__(self):
     self.data = Data()