From fb9b43aadee67319542172749451b8c57f4a9057 Mon Sep 17 00:00:00 2001 From: Jakub Kadlčík Date: Dec 16 2015 17:26:29 +0000 Subject: [frontend] show flash messages when editing packages --- diff --git a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_packages.py b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_packages.py index de185a1..55f3639 100644 --- a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_packages.py +++ b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_packages.py @@ -1,6 +1,7 @@ import flask import json +from flask import url_for from coprs import db from coprs import forms from coprs import helpers @@ -9,6 +10,8 @@ from coprs.views.coprs_ns.coprs_builds import render_add_build_tito, render_add_ from coprs.views.misc import login_required, page_not_found, req_with_copr, req_with_copr from coprs.logic.complex_logic import ComplexLogic from coprs.logic.packages_logic import PackagesLogic +from coprs.exceptions import (ActionInProgressException, + InsufficientRightsException,) @coprs_ns.route("///packages/") @@ -79,14 +82,21 @@ def render_edit_package(copr, package_name, view, form_tito=None, form_mock=None @login_required @req_with_copr def copr_edit_package_post(copr, package_name): - return process_edit_package(copr, package_name, view="coprs_ns.copr_edit_package") + url_on_success = url_for("coprs_ns.copr_packages", + username=copr.owner_name, + coprname=copr.name) + return process_edit_package(copr, package_name, view="coprs_ns.copr_edit_package", url_on_success=url_on_success) @coprs_ns.route("/g///package//edit", methods=["POST"]) @login_required @req_with_copr def group_copr_edit_package_post(copr, package_name): - return process_edit_package(copr, package_name, view="coprs_ns.copr_edit_package") + url_on_success = url_for("coprs_ns.group_copr_packages", + group_name=copr.group.name, + coprname=copr.name) + return process_edit_package(copr, package_name, view="coprs_ns.copr_edit_package", url_on_success=url_on_success) + def process_edit_package(copr, package_name, view): @@ -117,10 +127,18 @@ def process_edit_package(copr, package_name, view): "scm_branch": form.scm_branch.data, "spec": form.spec.data}) - db.session.add(package) - db.session.commit() + try: + db.session.add(package) + db.session.commit() + except (ActionInProgressException, InsufficientRightsException) as e: + db.session.rollback() + flask.flash(str(e), "error") + else: + flask.flash("Package successfully saved" if package_name else "New package has been created.") + + return flask.redirect(url_on_success) - return render_edit_package(copr, package_name, view, **{form_var: form}) + return view_method(copr, package_name, view, **{form_var: form}) @coprs_ns.route("///package//rebuild")