示例#1
0
文件: route.py 项目: ouidou/UsersHub
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"],
    )
示例#2
0
文件: route.py 项目: ouidou/UsersHub
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,
        )