def profils_for_app(id_application): """ Route affichant la liste des profils utilisables par l'application et ceux disponibles. Avec pour paramètre un id d'application 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 """ profils_in_app = TProfils.get_profils_in_app(id_application) profils_out_app = TProfils.get_profils_out_app(id_application) header = ["ID", "Profil"] data = ["id_profil", "nom_profil"] app = TApplications.get_one(id_application) if request.method == "POST": data = request.get_json() new_profils = data["tab_add"] delete_profils = data["tab_del"] try: CorProfilForApp.add_cor(id_application, new_profils) CorProfilForApp.del_cor(id_application, delete_profils) except Exception as e: return jsonify(str(e)), 500 return jsonify({"redirect": url_for("application.applications")}), 200 return render_template( "app_profils.html", fLine=header, data=data, table=profils_out_app, table2=profils_in_app, info="Profils utilisables dans l'application " + app["nom_application"], )
def addorupdate(id_application): """ Route affichant un formulaire vierge ou non (selon l'url) pour ajouter ou mettre à jour une application L'envoie du formulaire permet l'ajout ou la maj d'une application dans la base Retourne un template accompagné d'un formulaire pré-rempli ou non selon le paramètre id_application Une fois le formulaire validé on retourne une redirection vers la liste d'application """ form = t_applicationsforms.Application() form.id_parent.choices = TApplications.choixSelect( "id_application", "nom_application", 1, order_by="nom_application") if id_application == None: form.id_parent.process_data(-1) if request.method == "POST": if form.validate() and form.validate_on_submit(): form_app = pops(form.data) if form.id_parent.data == -1: form_app["id_parent"] = None form_app.pop("id_application") TApplications.post(form_app) return redirect(url_for("application.applications")) return render_template("application.html", form=form, title="Formulaire Application") else: application = TApplications.get_one(id_application) form.id_parent.choices.remove( (application["id_application"], application["nom_application"])) if request.method == "GET": if application["id_parent"] == None: form.id_parent.process_data(-1) else: form.id_parent.process_data(application["id_parent"]) form_app = process(form, application) profils_in_app = TProfils.get_profils_in_app(id_application) if request.method == "POST": if form.validate_on_submit() and form.validate(): form_app = pops(form.data) if form.id_parent.data == -1: form_app["id_parent"] = None form_app["id_application"] = application["id_application"] TApplications.update(form_app) return redirect(url_for("application.applications")) return render_template( "application.html", form=form, title="Formulaire Application", profils=profils_in_app, id_application=id_application, )