Merge pull request #296 from DanielGrams/issue/295

Referenz einfacher löschen #295
This commit is contained in:
Daniel Grams 2021-09-08 16:37:35 +02:00 committed by GitHub
commit 4f7edd2378
5 changed files with 16 additions and 52 deletions

View File

@ -49,7 +49,6 @@ describe("Reference", () => {
cy.createAdminUnit().then(function (adminUnitId) {
cy.createIncomingReference(adminUnitId).then(function (referenceId) {
cy.visit("/reference/" + referenceId + "/delete");
cy.get("#name").type("Name");
cy.screenshot("delete");
cy.get("#submit").click();
cy.url().should(

View File

@ -1,6 +1,6 @@
from flask_babelex import lazy_gettext
from flask_wtf import FlaskForm
from wtforms import SelectField, StringField, SubmitField
from wtforms import SelectField, SubmitField
from wtforms.validators import DataRequired
from project.forms.common import event_rating_choices
@ -37,4 +37,3 @@ class UpdateEventReferenceForm(FlaskForm):
class DeleteReferenceForm(FlaskForm):
submit = SubmitField(lazy_gettext("Delete reference"))
name = StringField(lazy_gettext("Name"), validators=[DataRequired()])

View File

@ -7,18 +7,7 @@
<form action="" method="POST">
{{ form.hidden_tag() }}
<div class="card mb-4">
<div class="card-header">
{{ _('Event') }}
</div>
<div class="card-body">
{{ render_field_with_errors(form.name) }}
</div>
</div>
{{ render_field(form.submit) }}
</form>
{% endblock %}

View File

@ -22,12 +22,7 @@ from project.services.reference import (
get_reference_incoming_query,
get_reference_outgoing_query,
)
from project.views.utils import (
flash_errors,
get_pagination_urls,
handleSqlError,
non_match_for_deletion,
)
from project.views.utils import flash_errors, get_pagination_urls, handleSqlError
@app.route("/reference/<int:id>")
@ -158,22 +153,19 @@ def reference_delete(id):
form = DeleteReferenceForm()
if form.validate_on_submit():
if non_match_for_deletion(form.name.data, reference.event.name):
flash(gettext("Entered name does not match event name"), "danger")
else:
try:
db.session.delete(reference)
db.session.commit()
flash(gettext("Reference successfully deleted"), "success")
return redirect(
url_for(
"manage_admin_unit_references_incoming",
id=reference.admin_unit_id,
)
try:
db.session.delete(reference)
db.session.commit()
flash(gettext("Reference successfully deleted"), "success")
return redirect(
url_for(
"manage_admin_unit_references_incoming",
id=reference.admin_unit_id,
)
except SQLAlchemyError as e:
db.session.rollback()
flash(handleSqlError(e), "danger")
)
except SQLAlchemyError as e:
db.session.rollback()
flash(handleSqlError(e), "danger")
else:
flash_errors(form)

View File

@ -123,8 +123,7 @@ def test_update(client, seeder, utils, app, mocker, db_error):
@pytest.mark.parametrize("db_error", [True, False])
@pytest.mark.parametrize("non_match", [True, False])
def test_delete(client, seeder, utils, app, mocker, db_error, non_match):
def test_delete(client, seeder, utils, app, mocker, db_error):
user_id, admin_unit_id = seeder.setup_base()
(
other_user_id,
@ -139,26 +138,12 @@ def test_delete(client, seeder, utils, app, mocker, db_error, non_match):
if db_error:
utils.mock_db_commit(mocker)
form_name = "Name"
if non_match:
form_name = "Falscher Name"
response = utils.post_form(
url,
response,
{
"name": form_name,
},
{},
)
if non_match:
utils.assert_response_error_message(
response,
b"Der eingegebene Name entspricht nicht dem Namen der Veranstaltung",
)
return
if db_error:
utils.assert_response_db_error(response)
return