def addorupdate(id_profil): """ Route affichant un formulaire vierge ou non (selon l'url) pour ajouter ou mettre à jour un profil L'envoie du formulaire permet l'ajout ou la maj du profil dans la base Retourne un template accompagné d'un formulaire pré-rempli ou non selon le paramètre id_profil Une fois le formulaire validé on retourne une redirection vers la liste de profil """ form = t_profilsforms.Profil() if id_profil == None: if request.method == "POST": if form.validate() and form.validate_on_submit(): form_profil = pops(form.data) form_profil.pop("id_profil") TProfils.post(form_profil) return redirect(url_for("profils.profils")) return render_template("profil.html", form=form, title="Formulaire Profil") else: profil = TProfils.get_one(id_profil) if request.method == "GET": form = process(form, profil) if request.method == "POST": if form.validate() and form.validate_on_submit(): form_profil = pops(form.data) form_profil["id_profil"] = profil["id_profil"] TProfils.update(form_profil) return redirect(url_for("profils.profils")) return render_template("profil.html", form=form, title="Formulaire Profil")
def users(id_profil): """ Route affichant la liste des users du profil et ceux disponibles. Avec pour paramètre un id de profil Retourne un template avec pour paramètres: - une entête des tableaux --> fLine - le nom des colonnes de la base --> data - liste des profils utilisables --> table - liste des profils non utilisables mais disponibles --> table2 """ users_in_profil = TUsers.get_users_in_profil(id_profil) users_out_profil = TUsers.get_users_out_profil(id_profil) header = ['ID', 'User'] data = ['id_user', 'full_name'] profil = TProfils.get_one(id_profil) if request.method == 'POST': data = request.get_json() new_users = data["tab_add"] delete_users = data["tab_del"] try: CorUserProfil.add_cor(new_users,id_profil) CorUserProfil.del_cor(delete_users,id_profil) return jsonify({"msg":"Enregistrement réussi"}) except (exc.SQLAlchemyError, exc.DBAPIError) as e: return jsonify({"msg":"Quelque chose s'est mal passé :" + e}) return render_template( 'tobelong.html', fLine=header, data=data, table=users_out_profil, table2=users_in_profil, info='Utilisateurs ayant le profil "' + profil['profil_name'] + '"' )