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_marc2tables(master, access_to_network=True, last_version=[version, False]): # ============================================================================= # Structure du formulaire - Cadres # ============================================================================= couleur_fond = "white" couleur_bouton = "#2D4991" #couleur_bouton = "#99182D" [ form, zone_alert_explications, zone_access2programs, zone_actions, zone_ok_help_cancel, zone_notes ] = main.form_generic_frames( master, "Conversion de fichiers de notices Unimarc en tableaux", couleur_fond, couleur_bouton, access_to_network) cadre_input = tk.Frame(zone_actions, highlightthickness=2, highlightbackground=couleur_bouton, relief="groove", height=150, padx=10, bg=couleur_fond) cadre_input.pack(side="left", anchor="w") cadre_input_header = tk.Frame(cadre_input, bg=couleur_fond) cadre_input_header.pack(anchor="w") cadre_input_file = tk.Frame(cadre_input, bg=couleur_fond) cadre_input_file.pack(anchor="w") cadre_input_file_name = tk.Frame(cadre_input_file, bg=couleur_fond) cadre_input_file_name.pack(side="left") cadre_input_file_browse = tk.Frame(cadre_input_file, bg=couleur_fond) cadre_input_file_browse.pack(side="left") cadre_input_infos_format = tk.Frame(cadre_input, bg=couleur_fond) cadre_input_infos_format.pack(side="left") cadre_input_type_docs_interstice1 = tk.Frame(cadre_input, bg=couleur_fond) cadre_input_type_docs_interstice1.pack(side="left") cadre_input_type_docs = tk.Frame(cadre_input, bg=couleur_fond) cadre_input_type_docs.pack(side="left") cadre_input_type_docs_interstice2 = tk.Frame(cadre_input, bg=couleur_fond) cadre_input_type_docs_interstice2.pack(side="left") cadre_input_type_rec = tk.Frame(cadre_input, bg=couleur_fond) cadre_input_type_rec.pack(side="left") cadre_inter = tk.Frame(zone_actions, borderwidth=0, padx=10, bg=couleur_fond) cadre_inter.pack(side="left") tk.Label(cadre_inter, text=" ", bg=couleur_fond).pack() #============================================================================= # Formulaire - Fichier en entrée # ============================================================================= cadre_output = tk.Frame(zone_actions, highlightthickness=2, highlightbackground=couleur_bouton, relief="groove", height=150, padx=10, bg=couleur_fond) cadre_output.pack(side="left") cadre_output_header = tk.Frame(cadre_output, bg=couleur_fond) cadre_output_header.pack(anchor="w") cadre_output_nom_fichiers = tk.Frame(cadre_output, bg=couleur_fond) cadre_output_nom_fichiers.pack(anchor="w") cadre_output_repertoire = tk.Frame(cadre_output, bg=couleur_fond) cadre_output_repertoire.pack(anchor="w") cadre_output_explications = tk.Frame(cadre_output, padx=20, bg=couleur_fond) cadre_output_explications.pack(anchor="w") cadre_output_message_en_cours = tk.Frame(cadre_output, padx=20, bg=couleur_fond) cadre_output_message_en_cours.pack(anchor="w") cadre_valider = tk.Frame(zone_ok_help_cancel, borderwidth=0, relief="groove", height=150, padx=10, bg=couleur_fond) cadre_valider.pack(side="left") #définition input URL (u) tk.Label(cadre_input_header, bg=couleur_fond, fg=couleur_bouton, text="En entrée :", justify="left", font="bold").pack(anchor="w") tk.Label(cadre_input_file_name, bg=couleur_fond, text="Fichier contenant les notices : ").pack(side="left") """entry_filename = tk.Entry(cadre_input_file, width=40, bd=2) entry_filename.pack(side="left") entry_filename.focus_set()""" main.download_zone(cadre_input_file, "Sélectionner un fichier\nde notices Unimarc", entry_file_list, couleur_fond, cadre_output_message_en_cours) #tk.Button(cadre_input_file_browse, text="Sélectionner le fichier\ncontenant les notices", command=lambda:main.openfile(cadre_input_file_name, popup_filename), width=20).pack() """tk.Label(cadre_input_infos_format,bg=couleur_fond, text="Format MARC", anchor="w", justify="left").pack(anchor="w") marc_format = tk.IntVar() bib2ark.radioButton_lienExample(cadre_input_infos_format,marc_format,1,couleur_fond, "Unimarc", "", "") tk.Radiobutton(cadre_input_infos_format,bg=couleur_fond, text="Marc21", variable=marc_format, value=2, anchor="w", justify="left").pack(anchor="w") marc_format.set(1)""" tk.Label(cadre_input_type_docs_interstice1, bg=couleur_fond, text="\t\t", justify="left").pack() tk.Label(cadre_input_type_docs, bg=couleur_fond, text="Format de fichier", anchor="w", justify="left", font="Arial 9 bold").pack(anchor="w") file_format = tk.IntVar() bib2ark.radioButton_lienExample( cadre_input_type_docs, file_format, 1, couleur_fond, "iso2709 encodé UTF-8", "", "https://github.com/Transition-bibliographique/bibliostratus/blob/master/examples/noticesbib.iso" ) tk.Radiobutton(cadre_input_type_docs, bg=couleur_fond, text="iso2709 encodé ISO-8859-1", variable=file_format, value=3, anchor="w", justify="left").pack(anchor="w") tk.Radiobutton(cadre_input_type_docs, bg=couleur_fond, text="Marc XML encodé UTF-8", variable=file_format, value=2, anchor="w", justify="left").pack(anchor="w") file_format.set(1) tk.Label(cadre_input_type_docs, bg=couleur_fond, text="\n", font="Arial 4", justify="left").pack() lien_help_encodage = tk.Button( cadre_input_type_docs, font="Arial 8 italic", border=0, text="Je ne sais pas / Je ne comprends pas", command=lambda: main.click2openurl( "https://github.com/Transition-bibliographique/bibliostratus/wiki/1-%5BBleu%5D-Pr%C3%A9parer-ses-donn%C3%A9es-pour-l'alignement-%C3%A0-partir-d'un-export-catalogue#lencodage-des-fichiers-en-entr%C3%A9e" ), ) lien_help_encodage.pack() # info_utf8 = tk.Label(cadre_input_type_docs, # bg=couleur_fond,justify="left", font="Arial 7 italic", # text="""Le fichier iso2709 doit être #en UTF-8 sans BOM. #En cas de problème, #convertissez-le en XML #avant de le passer dans ce module""") # info_utf8.pack() tk.Label(cadre_input_type_docs_interstice2, bg=couleur_fond, text="\t", justify="left").pack() tk.Label(cadre_input_type_rec, bg=couleur_fond, text="\nType de notices", anchor="w", justify="left", font="Arial 9 bold").pack(anchor="w") rec_format = tk.IntVar() bib2ark.radioButton_lienExample(cadre_input_type_rec, rec_format, 1, couleur_fond, "bibliographiques", "", "") tk.Radiobutton(cadre_input_type_rec, bg=couleur_fond, text="autorités (personnes)", variable=rec_format, value=2, anchor="w", justify="left").pack(anchor="w") rec_format.set(1) tk.Label(cadre_input_type_rec, text="\n\n\n\n", bg=couleur_fond).pack() # ============================================================================= # Formulaire - Fichiers en sortie # ============================================================================= # #Choix du format tk.Label(cadre_output_header, bg=couleur_fond, fg=couleur_bouton, font="bold", text="En sortie :", justify="left").pack() tk.Label(cadre_output_nom_fichiers, bg=couleur_fond, text="Identifiant des fichiers en sortie : ", justify="left").pack(side="left") output_ID = tk.Entry(cadre_output_nom_fichiers, width=40, bd=2) output_ID.pack(side="left") #Sélection du répertoire en sortie #tk.Label(cadre_output_repertoire,text="\n",bg=couleur_fond).pack() #main.select_directory(cadre_output_repertoire, "Dossier où déposer les fichiers",output_directory_list,couleur_fond) #Ajout (optionnel) d'un identifiant de traitement message_fichiers_en_sortie = """ Le programme va générer plusieurs fichiers, par type de document, en fonction du processus d'alignement avec les données de la BnF et des métadonnées utilisées pour cela : - monographies imprimées - périodiques - audiovisuel (CD/DVD) - autres non identifiés Pour faire cela, il utilise les informations en zones codées dans chaque notice Unimarc """ tk.Label(cadre_output_explications, bg=couleur_fond, text=message_fichiers_en_sortie, justify="left").pack() #explications.pack() #Bouton de validation b = tk.Button( cadre_valider, bg=couleur_bouton, fg="white", font="bold", text="OK", command=lambda: launch(form, entry_file_list[0], file_format.get(), rec_format.get(), output_ID.get(), master), borderwidth=5, padx=10, pady=10, width=10, height=4) b.pack() tk.Label(cadre_valider, font="bold", text="", bg=couleur_fond).pack() call4help = tk.Button( cadre_valider, text=main.texte_bouton_help, command=lambda: main.click2openurl(main.url_online_help), pady=5, padx=5, width=12) call4help.pack() tk.Label(cadre_valider, text="\n", bg=couleur_fond, font="Arial 1 normal").pack() forum_button = tk.Button( cadre_valider, text=main.texte_bouton_forum, command=lambda: main.click2openurl(main.url_forum_aide), pady=5, padx=5, width=12) forum_button.pack() tk.Label(cadre_valider, text="\n", bg=couleur_fond, font="Arial 4 normal").pack() cancel = tk.Button(cadre_valider, 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=[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()