def formulaire_noticesaut2arkBnF(master, access_to_network=True, last_version=[0, False]): couleur_fond = "white" couleur_bouton = "#515151" [ form, zone_alert_explications, zone_access2programs, zone_actions, zone_ok_help_cancel, zone_notes ] = main.form_generic_frames( master, "Aligner ses données d'autorité avec les notices BnF", couleur_fond, couleur_bouton, access_to_network) zone_ok_help_cancel.config(padx=10) frame_input = tk.Frame(zone_actions, bg=couleur_fond, padx=10, pady=10, highlightthickness=2, highlightbackground=couleur_bouton) frame_input.pack(side="left", anchor="w", padx=10, pady=10) frame_input_header = tk.Frame(frame_input, bg=couleur_fond) frame_input_header.pack(anchor="w") frame_input_file = tk.Frame(frame_input, bg=couleur_fond) frame_input_file.pack() frame_input_aut = tk.Frame( frame_input, bg=couleur_fond, ) frame_input_aut.pack(anchor="w") frame_output = tk.Frame(zone_actions, bg=couleur_fond, padx=10, pady=10, highlightthickness=2, highlightbackground=couleur_bouton) frame_output.pack(side="left", anchor="w") frame_output_header = tk.Frame(frame_output, bg=couleur_fond) frame_output_header.pack(anchor="w") frame_output_file = tk.Frame(frame_output, bg=couleur_fond, padx=10, pady=10) frame_output_file.pack(anchor="w") frame_output_options = tk.Frame(frame_output, bg=couleur_fond, padx=10, pady=10) frame_output_options.pack(anchor="w") frame_output_options_marc = tk.Frame(frame_output_options, bg=couleur_fond) frame_output_options_marc.pack(side="left", anchor="nw") frame_output_options_inter = tk.Frame(frame_output_options, bg=couleur_fond) frame_output_options_inter.pack(side="left") frame_output_options_format = tk.Frame(frame_output_options, bg=couleur_fond) frame_output_options_format.pack(side="left", anchor="nw") zone_notes_message_en_cours = tk.Frame(zone_notes, padx=20, bg=couleur_fond) zone_notes_message_en_cours.pack() tk.Label(frame_input_header, text="En entrée", font="bold", fg=couleur_bouton, bg=couleur_fond).pack() tk.Label(frame_input_file, text="Fichier contenant \nles notices d'autorité à aligner\n\n", bg=couleur_fond, justify="left").pack(side="left", anchor="w") """entry_filename = tk.Entry(frame_input_file, width=20, bd=2, bg=couleur_fond) entry_filename.pack(side="left") entry_filename.focus_set()""" main.download_zone( frame_input_file, "Sélectionner un fichier\nSéparateur TAB, Encodage UTF-8", entry_file_list, couleur_fond, zone_notes_message_en_cours) #Fichier avec en-têtes ? headers = tk.IntVar() tk.Checkbutton(frame_input_aut, text="Mon fichier a des en-têtes de colonne", variable=headers, bg=couleur_fond, justify="left").pack(anchor="w") headers.set(1) tk.Label(frame_input_aut, bg=couleur_fond, text="\nType de données en entrée", font="Arial 10 bold", anchor="w").pack(anchor="w") input_data_type = tk.IntVar() bib2ark.radioButton_lienExample( frame_input_aut, input_data_type, 1, couleur_fond, "Liste de notices d'autorité", "(" + " | ".join(header_columns_init_aut2aut) + ")", "https://raw.githubusercontent.com/Transition-bibliographique/alignements-donnees-bnf/master/examples/aut_align_aut.tsv" ) bib2ark.radioButton_lienExample( frame_input_aut, input_data_type, 2, couleur_fond, "Liste de notices bibliographiques", "(" + " | ".join(header_columns_init_bib2aut) + ")", "https://raw.githubusercontent.com/Transition-bibliographique/alignements-donnees-bnf/master/examples/aut_align_bib.tsv" ) input_data_type.set(1) #Option Relance sur isni ? isni_option = tk.IntVar() tk.Checkbutton(frame_input_aut, text="Relancer sur isni.org en cas d'absence de réponse", variable=isni_option, bg=couleur_fond, justify="left").pack(anchor="w") isni_option.set(1) #tk.Label(frame_input_aut,bg=couleur_fond, text="\n").pack() tk.Label(frame_output_header, text="En sortie", font="bold", fg=couleur_bouton, bg=couleur_fond).pack() file_nb = tk.IntVar() tk.Radiobutton(frame_output_file, bg=couleur_fond, text="1 fichier", variable=file_nb, value=1, justify="left").pack(anchor="w") tk.Radiobutton( frame_output_file, bg=couleur_fond, text="Plusieurs fichiers \n(Pb / 0 / 1 / plusieurs ARK trouvés)", variable=file_nb, value=2, justify="left").pack(anchor="w") file_nb.set(1) tk.Label(frame_output_file, bg=couleur_fond, text="\n").pack() #Récupérer les métadonnées BnF au passage ? meta_bnf = tk.IntVar() tk.Checkbutton(frame_output_file, text="Récupérer les métadonnées BnF", variable=meta_bnf, bg=couleur_fond, justify="left").pack(anchor="w") tk.Label(frame_output_file, text="\n", bg=couleur_fond, justify="left").pack(anchor="w") tk.Label(frame_output_file, text="Préfixe des fichiers en sortie", bg=couleur_fond).pack(anchor="w") outputID = tk.Entry(frame_output_file, bg=couleur_fond, width=30) outputID.pack(anchor="w") tk.Label(frame_output_file, text="\n", bg=couleur_fond).pack(anchor="w") #file_format.focus_set() b = tk.Button(zone_ok_help_cancel, text="Aligner\nles autorités", command=lambda: launch(form, entry_file_list[0], headers.get( ), input_data_type.get(), isni_option.get(), file_nb.get(), outputID.get(), meta_bnf.get()), width=15, borderwidth=1, pady=40, fg="white", bg=couleur_bouton, font="Arial 10 bold") b.pack() main.form_saut_de_ligne(zone_ok_help_cancel, couleur_fond) call4help = tk.Button(zone_ok_help_cancel, text=main.texte_bouton_help, command=lambda: main.click2url(main.url_online_help), pady=5, padx=5, width=12) call4help.pack() tk.Label(zone_ok_help_cancel, text="\n", bg=couleur_fond, font="Arial 1 normal").pack() forum_button = tk.Button( zone_ok_help_cancel, text=main.texte_bouton_forum, command=lambda: main.click2url(main.url_forum_aide), pady=5, padx=5, width=12) forum_button.pack() tk.Label(zone_ok_help_cancel, text="\n", bg=couleur_fond, font="Arial 4 normal").pack() cancel = tk.Button(zone_ok_help_cancel, text="Annuler", bg=couleur_fond, command=lambda: main.annuler(form), pady=10, padx=5, width=12) cancel.pack() tk.Label(zone_notes, text="Bibliostratus - Version " + str(main.version) + " - " + main.lastupdate, bg=couleur_fond).pack() """if (main.last_version[1] == True): download_update = tk.Button(zone_notes, text = "Télécharger la version " + str(main.last_version[0]), command=download_last_update) download_update.pack()""" tk.mainloop()
def formulaire_ark2records(master, access_to_network=True, last_version=[0.0, False]): couleur_fond = "white" couleur_bouton = "#99182D" [ form, zone_alert_explications, zone_access2programs, zone_actions, zone_ok_help_cancel, zone_notes ] = main.form_generic_frames( master, "Bibliostratus : Récupérer les notices complètes BnF / Sudoc / IdRef à partir d'une liste de n° de notices", couleur_fond, couleur_bouton, access_to_network) zone_ok_help_cancel.config(padx=10) frame_input = tk.Frame(zone_actions, bg=couleur_fond, padx=10, pady=10, highlightthickness=2, highlightbackground=couleur_bouton) frame_input.pack(side="left", anchor="w", padx=10, pady=10) frame_input_file = tk.Frame(frame_input, bg=couleur_fond) frame_input_file.pack() frame_input_aut = tk.Frame(frame_input, bg=couleur_fond) frame_input_aut.pack() frame_input_aut_file = tk.Frame(frame_input_aut, bg=couleur_fond) frame_input_aut_file.pack() frame_input_aut_headers = tk.Frame(frame_input_aut, bg=couleur_fond) frame_input_aut_headers.pack(anchor="w") frame_input_aut_liees = tk.Frame(frame_input_aut, bg=couleur_fond) frame_input_aut_liees.pack(anchor="w") frame_output = tk.Frame(zone_actions, bg=couleur_fond, padx=10, pady=10, highlightthickness=2, highlightbackground=couleur_bouton) frame_output.pack(side="left", anchor="w") frame_output_file = tk.Frame(frame_output, bg=couleur_fond, padx=10, pady=10) frame_output_file.pack() frame_output_options = tk.Frame(frame_output, bg=couleur_fond, padx=10, pady=10) frame_output_options.pack() frame_output_options_marc = tk.Frame(frame_output_options, bg=couleur_fond) frame_output_options_marc.pack(anchor="w") frame_output_options_format_global = tk.Frame(frame_output_options, bg=couleur_fond) frame_output_options_format_global.pack() frame_output_options_format = tk.Frame(frame_output_options_format_global, bg=couleur_fond) frame_output_options_format.pack(side="left", anchor="nw") frame_output_options_intermediaire = tk.Frame( frame_output_options_format_global, bg=couleur_fond) frame_output_options_intermediaire.pack(side="left", anchor="nw") frame_output_options_si_xml = tk.Frame(frame_output_options_format_global, bg=couleur_fond) frame_output_options_si_xml.pack(side="left", anchor="nw") frame_outputID = tk.Frame(frame_output, bg=couleur_fond) frame_outputID.pack(anchor="w") # forms.add_saut_de_ligne(frame_outputID) zone_notes_message_en_cours = tk.Frame(zone_notes, padx=20, bg=couleur_fond) zone_notes_message_en_cours.pack() main.download_zone( frame_input_file, "Sélectionner un fichier contenant\nune liste de n° de notices\nARK BnF ou PPN Abes\n(un numéro par ligne)", entry_file_list, couleur_fond, zone_notes_message_en_cours) main.download_zone(frame_output_file, "Sélectionner un dossier de destination", main.output_directory, couleur_fond, type_action="askdirectory", widthb=[40, 1]) type_records = tk.IntVar() # ARK de BIB ou d'AUT ? correct_record_option = tk.IntVar() # 1 ou 2 colonnes ? headers = tk.IntVar() # Fichier avec en-têtes ? headers.set(1) AUTlieesAUT = tk.IntVar() # notices d'autorité liées AUTlieesSUB = tk.IntVar() AUTlieesWORK = tk.IntVar() format_records_choice = tk.IntVar() # Choix du format format_records_choice.set(1) format_file = tk.IntVar() format_file.set(1) frame2var = [{ "frame": frame_input_aut_file, "name": "frame_input_aut_file", "variables": [["type_records", type_records], ["correct_record_option", correct_record_option]] }, { "frame": frame_input_aut_headers, "name": "frame_input_aut_headers", "variables": [["headers", headers]] }, { "frame": frame_input_aut_liees, "name": "frame_input_aut_liees", "variables": [["AUTlieesAUT", AUTlieesAUT], ["AUTlieesSUB", AUTlieesSUB], ["AUTlieesWORK", AUTlieesWORK]] }, { "frame": frame_output_options_format, "name": "frame_output_options_format", "variables": [["format_file", format_file]] }, { "frame": frame_output_options_marc, "name": "frame_output_options_marc", "variables": [["format_records_choice", format_records_choice]] }] forms.display_options(frame2var, forms.form_ark2records) xml_encoding_option = forms.Combobox( frame_output_options_si_xml, forms.form_ark2records["frame_output_options_si_xml"] ["xml_encoding_option"]["title"], forms.form_ark2records["frame_output_options_si_xml"] ["xml_encoding_option"]["values"], forms.form_ark2records["frame_output_options_si_xml"] ["xml_encoding_option"]["params"]) select_fields = forms.Entry( frame_output_options_si_xml, forms.form_ark2records["frame_output_options_si_xml"]["select_fields"] ["title"], forms.form_ark2records["frame_output_options_si_xml"] ["select_fields"]["params"]) outputID = forms.Entry( frame_outputID, forms.form_ark2records["frame_outputID"]["outputID"]["title"], forms.form_ark2records["frame_outputID"]["outputID"]["params"]) forms.add_saut_de_ligne(frame_input_aut_liees, nb_sauts=5) forms.add_saut_de_ligne(frame_output_options_intermediaire, nb_sauts=1) forms.add_saut_de_ligne(frame_outputID, nb_sauts=1) # file_format.focus_set() b = tk.Button( zone_ok_help_cancel, text="OK", command=lambda: launch( entry_file_list, type_records.get(), correct_record_option.get(), headers.get(), AUTlieesAUT.get(), AUTlieesSUB.get(), AUTlieesWORK.get(), outputID.value.get(), format_records_choice.get(), format_file.get(), xml_encoding_option.options.get(), select_fields.value.get(), master, form, ), width=15, borderwidth=1, pady=20, fg="white", bg=couleur_bouton, ) b.pack() main.form_saut_de_ligne(zone_ok_help_cancel, couleur_fond) call4help = tk.Button(zone_ok_help_cancel, text=main.texte_bouton_help, command=lambda: main.click2url(main.url_online_help), pady=5, padx=5, width=12) call4help.pack() forms.add_saut_de_ligne(zone_ok_help_cancel) forum_button = forms.forum_button(zone_ok_help_cancel) forum_button.pack() tk.Label(zone_ok_help_cancel, text="\n", bg=couleur_fond, font="Arial 4 normal").pack() cancel = tk.Button(zone_ok_help_cancel, text="Annuler", bg=couleur_fond, command=lambda: main.annuler(form), pady=10, padx=5, width=12) cancel.pack() forms.footer(zone_notes, couleur_fond) tk.mainloop()
def formulaire_ark2records(master, access_to_network=True, last_version=[version, False]): couleur_fond = "white" couleur_bouton = "#99182D" [ form, zone_alert_explications, zone_access2programs, zone_actions, zone_ok_help_cancel, zone_notes ] = main.form_generic_frames( master, "Bibliostratus : Récupérer les notices complètes de la BnF à partir d'une liste d'ARK", couleur_fond, couleur_bouton, access_to_network) zone_ok_help_cancel.config(padx=10) frame_input = tk.Frame(zone_actions, bg=couleur_fond, padx=10, pady=10, highlightthickness=2, highlightbackground=couleur_bouton) frame_input.pack(side="left", anchor="w", padx=10, pady=10) frame_input_file = tk.Frame(frame_input, bg=couleur_fond) frame_input_file.pack() frame_input_aut = tk.Frame(frame_input, bg=couleur_fond) frame_input_aut.pack() frame_output = tk.Frame(zone_actions, bg=couleur_fond, padx=10, pady=10, highlightthickness=2, highlightbackground=couleur_bouton) frame_output.pack(side="left", anchor="w") frame_output_options = tk.Frame(frame_output, bg=couleur_fond, padx=10, pady=10) frame_output_options.pack(anchor="w") frame_output_file = tk.Frame(frame_output, bg=couleur_fond, padx=10, pady=10) frame_output_file.pack(anchor="w") frame_output_options_marc = tk.Frame(frame_output_options, bg=couleur_fond) frame_output_options_marc.pack(side="left", anchor="nw") frame_output_options_inter = tk.Frame(frame_output_options, bg=couleur_fond) frame_output_options_inter.pack(side="left") frame_output_options_format = tk.Frame(frame_output_options, bg=couleur_fond) frame_output_options_format.pack(side="left", anchor="nw") zone_notes_message_en_cours = tk.Frame(zone_notes, padx=20, bg=couleur_fond) zone_notes_message_en_cours.pack() #tk.Label(frame_input_file, text="Fichier contenant les ARK\n (1 par ligne) \n\n", # bg=couleur_fond, justify="left").pack(side="left", anchor="w") """entry_filename = tk.Entry(frame_input_file, width=20, bd=2, bg=couleur_fond) entry_filename.pack(side="left") entry_filename.focus_set()""" main.download_zone( frame_input_file, "Sélectionner un fichier contenant\nune liste d'ARK (un ARK par ligne)", entry_file_list, couleur_fond, zone_notes_message_en_cours) tk.Label(frame_input_aut, text="\n", bg=couleur_fond).pack() #ARK de BIB ou d'AUT ? type_records = tk.IntVar() bib2ark.radioButton_lienExample( frame_input_aut, type_records, 1, couleur_fond, "ARK de notices BIB", "", "https://raw.githubusercontent.com/Transition-bibliographique/alignements-donnees-bnf/master/examples/listeARKbib.tsv" ) bib2ark.radioButton_lienExample( frame_input_aut, type_records, 2, couleur_fond, "ARK de notices AUT", "", "https://raw.githubusercontent.com/Transition-bibliographique/alignements-donnees-bnf/master/examples/listeARKaut.tsv" ) type_records.set(1) tk.Label(frame_input_aut, text="-------------------", bg=couleur_fond).pack() #Fichier avec en-têtes ? headers = tk.IntVar() headerButton = tk.Checkbutton(frame_input_aut, text="Mon fichier a des en-têtes de colonne", variable=headers, bg=couleur_fond, justify="left").pack(anchor="w") headers.set(1) #notices d'autorité liées tk.Label(frame_input_aut, text="Récupérer aussi les notices d'autorité liées", bg=couleur_fond, justify="left", font="Arial 9 bold").pack(anchor="w") AUTlieesAUT = tk.IntVar() tk.Checkbutton(frame_input_aut, text="auteurs", variable=AUTlieesAUT, bg=couleur_fond, justify="left").pack(anchor="w", side="left") #tk.Label(frame_input_aut, text="\n", bg=couleur_fond).pack() AUTlieesSUB = tk.IntVar() tk.Checkbutton(frame_input_aut, text="sujets", variable=AUTlieesSUB, bg=couleur_fond, justify="left").pack(anchor="w", side="left") AUTlieesWORK = tk.IntVar() tk.Checkbutton(frame_input_aut, text="oeuvres", variable=AUTlieesWORK, bg=couleur_fond, justify="left").pack(anchor="w", side="left") #Choix du format tk.Label(frame_output_options_marc, text="Notices à récupérer en :").pack(anchor="nw") format_records_choice = tk.IntVar() tk.Radiobutton(frame_output_options_marc, text="Unimarc", variable=format_records_choice, value=1, bg=couleur_fond).pack(anchor="nw") tk.Radiobutton(frame_output_options_marc, text="Intermarc", justify="left", variable=format_records_choice, value=3, bg=couleur_fond).pack(anchor="nw") tk.Radiobutton(frame_output_options_marc, text="Unimarc avec notices analytiques", justify="left", variable=format_records_choice, value=2, bg=couleur_fond).pack(anchor="nw") tk.Radiobutton(frame_output_options_marc, text="Intermarc avec notices analytiques", justify="left", variable=format_records_choice, value=4, bg=couleur_fond).pack(anchor="nw") format_records_choice.set(1) tk.Label(frame_output_options_inter, text="\n", bg=couleur_fond).pack(side="left") #tk.Label(frame_output_options,text="\n\n", justify="left", variable=format_records_choice , value=4, bg=couleur_fond).pack() tk.Label(frame_output_file, text="Préfixe fichier(s) en sortie", bg=couleur_fond).pack(side="left", anchor="w") outputID = tk.Entry(frame_output_file, bg=couleur_fond) outputID.pack(side="left", anchor="w") tk.Label(frame_output_file, text="\n\n\n\n\n\n\n", bg=couleur_fond).pack(side="left") tk.Label(frame_output_options_format, text="Format du fichier :").pack(anchor="nw") format_file = tk.IntVar() tk.Radiobutton(frame_output_options_format, bg=couleur_fond, text="iso2709", variable=format_file, value=1, justify="left").pack(anchor="nw") tk.Radiobutton(frame_output_options_format, bg=couleur_fond, text="Marc XML", variable=format_file, value=2, justify="left").pack(anchor="nw") format_file.set(1) #file_format.focus_set() b = tk.Button(zone_ok_help_cancel, text="OK", command=lambda: callback(master, form, entry_file_list[ 0], type_records.get(), headers.get(), AUTlieesAUT.get( ), AUTlieesSUB.get(), AUTlieesWORK.get(), outputID.get( ), format_records_choice.get(), format_file.get()), width=15, borderwidth=1, pady=20, fg="white", bg=couleur_bouton) b.pack() main.form_saut_de_ligne(zone_ok_help_cancel, couleur_fond) call4help = tk.Button(zone_ok_help_cancel, text=main.texte_bouton_help, command=lambda: main.click2url(main.url_online_help), pady=5, padx=5, width=12) call4help.pack() tk.Label(zone_ok_help_cancel, text="\n", bg=couleur_fond, font="Arial 1 normal").pack() forum_button = tk.Button( zone_ok_help_cancel, text=main.texte_bouton_forum, command=lambda: main.click2url(main.url_forum_aide), pady=5, padx=5, width=12) forum_button.pack() tk.Label(zone_ok_help_cancel, text="\n", bg=couleur_fond, font="Arial 4 normal").pack() cancel = tk.Button(zone_ok_help_cancel, text="Annuler", bg=couleur_fond, command=lambda: main.annuler(form), pady=10, padx=5, width=12) cancel.pack() tk.Label(zone_notes, text="Bibliostratus - Version " + str(main.version) + " - " + main.lastupdate, bg=couleur_fond).pack() """if (main.last_version[1] == True): download_update = tk.Button(zone_notes, text = "Télécharger la version " + str(main.last_version[0]), command=download_last_update) download_update.pack()""" tk.mainloop()