def edit_preferences(master_frame, prefs_file_name, access_to_network, last_version): couleur_fond = "white" couleur_bouton = "#5F7C88" [ form, zone_alert_explications, zone_access2programs, zone_actions, zone_ok_help_cancel, zone_notes ] = main.form_generic_frames(master_frame, "Editer les préférences", couleur_fond, couleur_bouton, True) zone_alert_explications.pack(anchor="w") tk.Label(zone_alert_explications, text="Editer les préférences\n", font="Arial 12 bold", fg=couleur_bouton, bg=couleur_fond).pack(side="left") liste_frame = tk.Frame(zone_actions, bg=couleur_fond) liste_frame.pack() footer = tk.Frame(zone_notes, bg=couleur_fond) prefs = {} dic_frames = {} i = 0 with open(prefs_file_name, "r", encoding="utf-8") as prefs_file: prefs = json.load(prefs_file) for pref in prefs: pref_frame = tk.Frame(liste_frame, bg=couleur_fond) pref_frame.pack(anchor="w") dic_frames[i] = {} dic_frames[i]["name"] = pref dic_frames[i]["description"] = prefs[pref]["description"] dic_frames[i]['frame'] = pref_frame i += 1 i = 0 for pref in prefs: dic_frames[i]["value"] = pref2fields(dic_frames[i]["frame"], pref, prefs, couleur_fond, couleur_bouton) i += 1 save = tk.Button( zone_notes, bg=couleur_bouton, fg="white", text="Enregistrer mes préférences", pady=10, padx=10, font="Arial 10 bold", command=lambda: save_preferences(dic_frames, prefs_file_name, form)) save.pack(side="left") tk.Label(zone_notes, bg=couleur_fond, text=" " * 30).pack(side="left") reset_default = tk.Button(zone_notes, text="Restaurer les paramètres par défaut", pady=12, command=lambda: reset(prefs_file_name, form)) reset_default.pack(side="left") 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_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 MARC 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(anchor="w") cadre_input_type_docs = tk.Frame(cadre_input, bg=couleur_fond) cadre_input_type_docs.pack(anchor="w") 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_explications = tk.Frame(cadre_output, padx=20, bg=couleur_fond) cadre_output_explications.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() #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_type_docs, bg=couleur_fond, text="\nFormat", anchor="w", justify="left").pack(anchor="w") file_format = tk.IntVar() tk.Radiobutton(cadre_input_type_docs, bg=couleur_fond, text="iso2709", variable=file_format, value=1, anchor="w", justify="left").pack(anchor="w") tk.Radiobutton(cadre_input_type_docs, bg=couleur_fond, text="Marc XML", variable=file_format, value=2, anchor="w", justify="left").pack(anchor="w") file_format.set(1) tk.Label(cadre_input_type_docs, text="\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") #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_filename.get( ), file_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="Besoin d'aide ?", command=lambda: main.click2openurl( "https://github.com/Transition-bibliographique/alignements-donnees-bnf/" ), padx=10, pady=1, width=15) call4help.pack() cancel = tk.Button(cadre_valider, bg=couleur_fond, text="Annuler", command=lambda: main.annuler(form), padx=10, pady=1, width=15) cancel.pack() tk.Label(zone_notes, text="Version " + str(main.version) + " - " + 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_marc2tables(master, access_to_network=True, last_version=[0.0, 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) frame_input = tk.Frame(zone_actions, highlightthickness=2, highlightbackground=couleur_bouton, relief="groove", height=150, padx=10, bg=couleur_fond) frame_input.pack(side="left", anchor="w") 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(anchor="w") frame_input_file_name = tk.Frame(frame_input_file, bg=couleur_fond) frame_input_file_name.pack(side="left") frame_input_file_browse = tk.Frame(frame_input_file, bg=couleur_fond) frame_input_file_browse.pack(side="left") frame_input_infos_format = tk.Frame(frame_input, bg=couleur_fond) frame_input_infos_format.pack(side="left") frame_input_type_docs = tk.Frame(frame_input, bg=couleur_fond) frame_input_type_docs.pack(anchor="w") frame_input_type_rec = tk.Frame(frame_input, bg=couleur_fond) frame_input_type_rec.pack(anchor="w") frame_inter = tk.Frame(zone_actions, borderwidth=0, padx=10, bg=couleur_fond) frame_inter.pack(side="left") # ============================================================================= # Formulaire - Fichier en entrée # ============================================================================= frame_output = tk.Frame(zone_actions, highlightthickness=2, highlightbackground=couleur_bouton, relief="groove", height=120, padx=10, bg=couleur_fond) frame_output.pack(side="left") frame_output_header = tk.Frame(frame_output, bg=couleur_fond) frame_output_header.pack(anchor="w") frame_output_nom_fichiers = tk.Frame(frame_output, bg=couleur_fond) frame_output_nom_fichiers.pack(anchor="w") frame_output_directory = tk.Frame(frame_output, bg=couleur_fond) frame_output_directory.pack(anchor="w") frame_outputID = tk.Frame(frame_output, bg=couleur_fond) frame_outputID.pack(anchor="w") frame_output_explications = tk.Frame(frame_output, bg=couleur_fond) frame_output_explications.pack(anchor="w") frame_output_message_en_cours = tk.Frame(zone_notes, padx=20, bg=couleur_fond) frame_output_message_en_cours.pack(anchor="w") frame_valider = tk.Frame(zone_ok_help_cancel, borderwidth=0, relief="groove", height=150, padx=10, bg=couleur_fond) frame_valider.pack(side="left") # définition input URL (u) tk.Label(frame_inter, text=" ", bg=couleur_fond).pack() tk.Label(frame_input_header, bg=couleur_fond, fg=couleur_bouton, text="En entrée\n", justify="left", font="bold").pack(anchor="w") main.download_zone(frame_input_file, "Sélectionner un fichier de notices Unimarc", entry_file_list, couleur_fond, frame_output_message_en_cours) tk.Label(frame_output_header, bg=couleur_fond, fg=couleur_bouton, font="bold", text="En sortie", justify="left").pack() main.download_zone(frame_output_directory, "Sélectionner un dossier de destination", main.output_directory, couleur_fond, type_action="askdirectory", widthb=[40, 1]) # Format du fichier file_format = tk.IntVar() file_format.set(1) # Type de notices rec_format = tk.IntVar() rec_format.set(1) outputID = forms.Entry( frame_outputID, forms.form_ark2records["frame_outputID"]["outputID"]["title"], forms.form_ark2records["frame_outputID"]["outputID"]["params"]) frame2var = [{ "frame": frame_input_type_docs, "name": "frame_input_type_docs", "variables": [["file_format", file_format]] }, { "frame": frame_input_type_rec, "name": "frame_input_type_rec", "variables": [["rec_format", rec_format]] }] forms.display_options(frame2var, forms.form_marc2tables) #forms.add_saut_de_ligne(frame_input_type_docs) lien_help_encodage = tk.Button( frame_input_type_docs, font="Arial 8 italic", border=0, text="Je ne sais pas / Je ne comprends pas", command=lambda: main.click2url( "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" # noqa ), ).pack() forms.add_saut_de_ligne(frame_input_type_docs) #forms.add_saut_de_ligne(frame_input_type_docs_interstice2) #forms.add_saut_de_ligne(frame_input_type_rec, 11) 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 : - code TEX : monographies - code VID : audiovisuel (CD/DVD) - code PER : périodiques - autres non prévus pour le module d'alignement (blanc) Les codes indiquent l'option d'alignement à choisir dans le module blanc S'il n'y a pas de code, le fichier ne peut être chargé tel quel dans le module blanc : il faut au moins reprendre les colonnes. Pour répartir les notices en fichiers, le programme utilise les informations présentes dans les zones codées de chaque notice Unimarc """ tk.Label(frame_output_explications, bg=couleur_fond, text=message_fichiers_en_sortie, justify="left").pack() # explications.pack() # Bouton de validation b = tk.Button(frame_valider, bg=couleur_bouton, fg="white", font="bold", text="OK", command=lambda: launch(entry_file_list, file_format.get( ), rec_format.get(), outputID.value.get(), master, form), borderwidth=5, padx=10, pady=10, width=10, height=4) b.pack() tk.Label(frame_valider, font="bold", text="", bg=couleur_fond).pack() call4help = tk.Button(frame_valider, text=main.texte_bouton_help, command=lambda: main.click2url(main.url_online_help), pady=5, padx=5, width=12) call4help.pack() tk.Label(frame_valider, text="\n", bg=couleur_fond, font="Arial 1 normal").pack() forum_button = forms.forum_button(frame_valider) forum_button.pack() tk.Label(frame_valider, text="\n", bg=couleur_fond, font="Arial 4 normal").pack() cancel = tk.Button(frame_valider, 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_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=[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()