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()
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()
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()
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)
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
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()
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)
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()
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()
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()
def __init__(self): self.data = Data()