diff --git a/controllers/lied.py b/controllers/lied.py index 6695bc7..da82ce9 100644 --- a/controllers/lied.py +++ b/controllers/lied.py @@ -115,7 +115,7 @@ def lied_edit(): item_to_edit_details = item_to_edit_details_query.\ filter(LiedKuenstler.LiedId == edit_lied_id).\ order_by(LiedKuenstler.KuenstlerId).all() - + if request.method == 'POST': print("Post") if edit_lied_form.validate_on_submit(): @@ -133,8 +133,9 @@ def lied_edit(): edit_lied_form.Kuenstleranzahl.data = item_to_edit.Kuenstleranzahl edit_lied_form.Liedname.data = item_to_edit.Liedname edit_lied_form.Erscheinungsdatum.data = item_to_edit.Erscheinungsdatum + return render_template( "lieder/editlieder.html", headline="Edit Lieder", - lieder=item_to_edit_details, + kuenstlers_lied=item_to_edit_details, form=edit_lied_form) diff --git a/controllers/liedkuenstler.py b/controllers/liedkuenstler.py index 2fb03cd..db36a4f 100644 --- a/controllers/liedkuenstler.py +++ b/controllers/liedkuenstler.py @@ -1,11 +1,10 @@ -from unittest import expectedFailure from flask import redirect, request from flask.templating import render_template from flask import Blueprint import sqlalchemy import sqlalchemy.orm -from forms.lied_kuenstler import LiedKuenstlerForm ,deleteLiedKuenstlerForm -from model.models import Kuenstler, db, LiedKuenstler +from forms.lied_kuenstler import LiedKuenstlerForm, deleteLiedKuenstlerForm +from model.models import Kuenstler, db, LiedKuenstler lied_kuenstler_blueprint = Blueprint('lied_kuenstler_blueprint', __name__) @@ -25,49 +24,55 @@ def Lied_kuenstler_add(): session: sqlalchemy.orm.scoping.scoped_session = db.session item_to_attach_id = request.args["itemid"] add_lied_kuenstler_form = LiedKuenstlerForm() - connected_kuenstler = session.query(LiedKuenstler).filter(LiedKuenstler.LiedId == item_to_attach_id).all() - all_kuenstler = session.query(Kuenstler).order_by(Kuenstler.KuenstlerId).all() + connected_kuenstler = session.query(LiedKuenstler).filter( + LiedKuenstler.LiedId == item_to_attach_id).all() + all_kuenstler = session.query(Kuenstler).order_by( + Kuenstler.KuenstlerId).all() kuenstler = [] - try: + try: for n in all_kuenstler: + is_connected = 0 for i in connected_kuenstler: - if n == i: - kuenstler.append(session.query(Kuenstler).filter(not(Kuenstler.KuenstlerId == i.KuenstlerId)).first()) + if n.KuenstlerId == i.KuenstlerId: + is_connected = 1 + + if is_connected == 0: + kuenstler.append(n) except AttributeError: - kuenstler = session.query(Kuenstler).order_by(Kuenstler.KuenstlerId).all() + kuenstler = session.query(Kuenstler).order_by( + Kuenstler.KuenstlerId).all() if request.method == 'POST': print("f") if add_lied_kuenstler_form.validate_on_submit(): print(add_lied_kuenstler_form.CheckedCheckboxes.data) - kuenstler_ids_to_add = add_lied_kuenstler_form.CheckedCheckboxes.data - - new_Lied_Kuenstler = LiedKuenstler() - + kuenstler_ids_to_add = list(add_lied_kuenstler_form.CheckedCheckboxes.data.split(",")) print("data is valid") # new_manager.ManagerId = add_manager_form.ManagerID.data - for i in kuenstler_ids_to_add: - new_Lied_Kuenstler.KuenstlerId = int(i) - new_Lied_Kuenstler.LiedId = item_to_attach_id - db.session.add(new_Lied_Kuenstler) - - db.session.commit() - + try: + for i in kuenstler_ids_to_add: + new_Lied_Kuenstler = LiedKuenstler() + new_Lied_Kuenstler.KuenstlerId = int(i) + new_Lied_Kuenstler.LiedId = item_to_attach_id + db.session.add(new_Lied_Kuenstler) + db.session.commit() + except ValueError: + print("value error") return redirect("/lieder/edit?itemid=" + item_to_attach_id) else: return render_template( - "liedkuenstler/liedkuenstleradd.html", - headline="Add Lieder", - kuenstlers = kuenstler, - form = add_lied_kuenstler_form) + "liedkuenstler/liedkuenstleradd.html", + headline="Add Lieder", + kuenstlers=kuenstler, + form=add_lied_kuenstler_form) else: return render_template( "liedkuenstler/liedkuenstleradd.html", headline="Add Lieder", - kuenstlers = kuenstler, - form = add_lied_kuenstler_form) + kuenstlers=kuenstler, + form=add_lied_kuenstler_form) @lied_kuenstler_blueprint.route('/lied_kuenstler/delete', methods=["Get", "Post"]) @@ -75,13 +80,16 @@ def lied_kuenstler_delete(): session: sqlalchemy.orm.scoping.scoped_session = db.session item_to_attach_id = request.args["itemid"] - connected_kuenstler = session.query(LiedKuenstler).filter(LiedKuenstler.LiedId == item_to_attach_id).all() + connected_kuenstler = session.query(LiedKuenstler).filter( + LiedKuenstler.LiedId == item_to_attach_id).all() kuenstler = [] - try: + try: for i in connected_kuenstler: - kuenstler.append(session.query(Kuenstler).filter(Kuenstler.KuenstlerId == i.KuenstlerId).first()) + kuenstler.append(session.query(Kuenstler).filter( + Kuenstler.KuenstlerId == i.KuenstlerId).first()) except AttributeError: - kuenstler = session.query(Kuenstler).order_by(Kuenstler.KuenstlerId).all() + kuenstler = session.query(Kuenstler).order_by( + Kuenstler.KuenstlerId).all() del_form = deleteLiedKuenstlerForm() @@ -94,67 +102,22 @@ def lied_kuenstler_delete(): print(del_form.CheckedCheckboxes.data) for i in delete_id_list: print("deleting now data with id " + i) - itemToDelete = db.session.query(Lied).filter(Lied.LiedId == i) + itemToDelete = db.session.query(LiedKuenstler).filter(sqlalchemy.and_(LiedKuenstler.LiedId == item_to_attach_id, LiedKuenstler.KuenstlerId == i)) itemToDelete.delete() db.session.commit() print("deleted data with id " + i) - lied = session.query(Lied).order_by(Lied.LiedId).all() - return render_template( - "lieder/viewlieder.html", - lieder=lied, - headline="Lieder", - form=del_form) + return redirect("/lieder/edit?itemid=" + item_to_attach_id) else: - print("invalide Form") return render_template( - "lieder/deletelieder.html", - lieder=lied, - headline="Delete Lieder", + "liedkuenstler/liedkuenstlerdelete.html", + headline="Add Lieder", + kuenstlers=kuenstler, form=del_form) else: return render_template( "liedkuenstler/liedkuenstlerdelete.html", headline="Add Lieder", - kuenstlers = kuenstler, - form = del_form) - - -@lied_kuenstler_blueprint.route('/lied_kuenstler/edit', methods=["Get", "Post"]) -def lied_edit(): - session: sqlalchemy.orm.scoping.scoped_session = db.session - edit_lied_id = request.args["itemid"] - edit_lied_form = EditLiedForm() - - item_to_edit = db.session.query(Lied).filter( - Lied.LiedId == edit_lied_id).first() - - item_to_edit_details_query: sqlalchemy.orm.query.Query = session.query(LiedKuenstler) - - item_to_edit_details = item_to_edit_details_query.\ - filter(LiedKuenstler.LiedId == edit_lied_id).\ - order_by(LiedKuenstler.KuenstlerId).all() - - if request.method == 'POST': - print("Post") - if edit_lied_form.validate_on_submit(): - print("is validate") - - item_to_edit.LiedId = edit_lied_form.LiedId.data - item_to_edit.Kuenstleranzahl = edit_lied_form.Kuenstleranzahl.data - item_to_edit.Liedname = edit_lied_form.Liedname.data - item_to_edit.Erscheinungsdatum = edit_lied_form.Erscheinungsdatum.data - db.session.commit() - return redirect("/lieder") - else: - - edit_lied_form.LiedId.data = item_to_edit.LiedId - edit_lied_form.Kuenstleranzahl.data = item_to_edit.Kuenstleranzahl - edit_lied_form.Liedname.data = item_to_edit.Liedname - edit_lied_form.Erscheinungsdatum.data = item_to_edit.Erscheinungsdatum - return render_template( - "lieder/editlieder.html", - headline="Edit Lieder", - lieder=item_to_edit_details, - form=edit_lied_form) + kuenstlers=kuenstler, + form=del_form) diff --git a/templates/lieder/editlieder.html b/templates/lieder/editlieder.html index cd3f77a..50ddce5 100644 --- a/templates/lieder/editlieder.html +++ b/templates/lieder/editlieder.html @@ -38,22 +38,25 @@ - - - - + + + + + + - {% for lied in lieder %} + {% for kuenstler_lied in kuenstlers_lied %} - - - - - + + + + + + {% endfor %} diff --git a/templates/liedkuenstler/liedkuenstleradd.html b/templates/liedkuenstler/liedkuenstleradd.html index 3670850..9704bd7 100644 --- a/templates/liedkuenstler/liedkuenstleradd.html +++ b/templates/liedkuenstler/liedkuenstleradd.html @@ -66,6 +66,6 @@ - + {%endblock%} \ No newline at end of file
LiedIdKuenstleranzahlLiednameErscheinungsdatumKuenstlerIdManagerIDVornameNachnameHerkunftslandGehalt
{{lied.LiedId}}{{lied.Kuenstleranzahl}}{{lied.Liedname}}{{lied.Erscheinungsdatum}}{{kuenstler_lied.kuenstler.KuenstlerId}}{{kuenstler_lied.kuenstler.ManagerId}}{{kuenstler_lied.kuenstler.Vorname}}{{kuenstler_lied.kuenstler.Nachname}}{{kuenstler_lied.kuenstler.Herkunftsland}}{{kuenstler_lied.kuenstler.Gehalt}}