def gf_edit_genre_film_selected(): if request.method == "GET": try: # OM 2020.04.09 Objet contenant toutes les méthodes pour gérer (CRUD) les données. obj_actions_genres = GestionGenres() # Récupère les données grâce à une requête MySql définie dans la classe GestionGenres() # Fichier data_gestion_genres.py # Pour savoir si la table "t_genres" est vide, ainsi on empêche l’affichage des tags # dans le render_template(genres_films_modifier_tags_dropbox.html) data_genres_all = obj_actions_genres.genres_afficher_data('ASC', 0) # OM 2020.04.09 Objet contenant toutes les méthodes pour gérer (CRUD) les données de la table intermédiaire. obj_actions_genres = GestionGenresFilms() # OM 2020.04.21 Récupère la valeur de "id_film" du formulaire html "genres_films_afficher.html" # l'utilisateur clique sur le lien "Modifier genres de ce film" et on récupère la valeur de "id_film" grâce à la variable "id_film_genres_edit_html" # <a href="{{ url_for('gf_edit_genre_film_selected', id_film_genres_edit_html=row.id_film) }}">Modifier les genres de ce film</a> id_personne = request.values['id_personne'] id_email = request.values['id_email'] # OM 2020.04.21 Mémorise l'id du film dans une variable de session # (ici la sécurité de l'application n'est pas engagée) # il faut éviter de stocker des données sensibles dans des variables de sessions. session['session_id_film_genres_edit'] = id_personne # Constitution d'un dictionnaire pour associer l'id du film sélectionné avec un nom de variable valeur_id_film_selected_dictionnaire = { "value_id_personne": id_personne } # Récupère les données grâce à 3 requêtes MySql définie dans la classe GestionGenresFilms() # 1) Sélection du film choisi # 2) Sélection des genres "déjà" attribués pour le film. # 3) Sélection des genres "pas encore" attribués pour le film choisi. # Fichier data_gestion_genres_films.py # ATTENTION à l'ordre d'assignation des variables retournées par la fonction "genres_films_afficher_data" selected_combo, other_addres, other_films = \ obj_actions_genres.genres_films_afficher_data(id_personne, id_email) # OM 2020.04.09 La ligne ci-dessous permet de donner un sentiment rassurant aux utilisateurs. flash(f"Données genres affichées dans GenresFilms!!", "success") except Exception as erreur: print(f"RGGF Erreur générale.") # OM 2020.04.09 On dérive "Exception" par le "@obj_mon_application.errorhandler(404)" # fichier "run_mon_app.py" # Ainsi on peut avoir un message d'erreur personnalisé. # flash(f"RGG Exception {erreur}") raise Exception(f"RGGF Erreur générale. {erreur}") # raise MaBdErreurOperation(f"RGG Exception {msg_erreurs['ErreurNomBD']['message']} {erreur}") # OM 2020.04.21 Envoie la page "HTML" au serveur. return render_template( "genres_films/genres_films_modifier_tags_dropbox.html", datasourceselected_combo=selected_combo, datasourceother_addres=other_addres, datasourceother_films=other_films)
def genres_afficher(order_by,id_genre_sel): # OM 2020.04.09 Pour savoir si les données d'un formulaire sont un affichage # ou un envoi de donnée par des champs du formulaire HTML. if request.method == "GET": try: # OM 2020.04.09 Objet contenant toutes les méthodes pour gérer (CRUD) les données. obj_actions_genres = GestionGenres() # Récupère les données grâce à une requête MySql définie dans la classe GestionGenres() # Fichier data_gestion_genres.py # "order_by" permet de choisir l'ordre d'affichage des genres. data_genres = obj_actions_genres.genres_afficher_data(order_by,id_genre_sel) # DEBUG bon marché : Pour afficher un message dans la console. print(" data genres", data_genres, "type ", type(data_genres)) # Différencier les messages si la table est vide. if not data_genres and id_genre_sel == 0: flash("""La table "t_genres" est vide. !!""", "warning") elif not data_genres and id_genre_sel > 0: # Si l'utilisateur change l'id_genre dans l'URL et que le genre n'existe pas, flash(f"Le genre demandé n'existe pas !!", "warning") else: # Dans tous les autres cas, c'est que la table "t_genres" est vide. # OM 2020.04.09 La ligne ci-dessous permet de donner un sentiment rassurant aux utilisateurs. flash(f"Données genres affichés !!", "success") except Exception as erreur: print(f"RGG Erreur générale.") # OM 2020.04.09 On dérive "Exception" par le "@obj_mon_application.errorhandler(404)" fichier "run_mon_app.py" # Ainsi on peut avoir un message d'erreur personnalisé. # flash(f"RGG Exception {erreur}") raise Exception(f"RGG Erreur générale. {erreur}") # raise MaBdErreurOperation(f"RGG Exception {msg_erreurs['ErreurNomBD']['message']} {erreur}") # OM 2020.04.07 Envoie la page "HTML" au serveur. return render_template("genres/genres_afficher.html", data=data_genres)