From 856a7fe4911ac38da82ba60bdf64e3a9ac66a4cf Mon Sep 17 00:00:00 2001 From: ydb5755 Date: Sun, 13 Oct 2024 10:11:09 +0300 Subject: [PATCH] create endpoint for updating budget cat of vendors --- app/routes.py | 17 ++++++++++++++++- app/static/vendors.js | 12 +++++++----- instance/site.db | Bin 40960 -> 40960 bytes 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/app/routes.py b/app/routes.py index a58dcd0..d1010df 100644 --- a/app/routes.py +++ b/app/routes.py @@ -155,7 +155,22 @@ def get_month_line_items(month:str, year:str): @app.route('/update_vendors_budget_category//', methods=['POST']) def update_vendors_budget_category(vendor_id, updated_budget_name): - db.session.execute(update(Vendor).values().where(id=vendor_id)) + budget_cat = db.session.execute(select(BudgetCategory).where(BudgetCategory.name == updated_budget_name)).scalar() + vendor = db.session.execute(select(Vendor).where(Vendor.id ==vendor_id)).all() + if budget_cat: + db.session.execute(update(Vendor).values(bc_id=budget_cat.id).where(Vendor.id==vendor_id)) + db.session.commit() + else: + db.session.add(BudgetCategory( + name=updated_budget_name + )) + db.session.commit() + + budget_cat = db.session.execute(select(BudgetCategory).where(BudgetCategory.name == updated_budget_name)).scalar() + db.session.execute(update(Vendor).values(bc_id=budget_cat.id).where(Vendor.id==vendor_id)) + db.session.commit() + + return {"status":'success'} \ No newline at end of file diff --git a/app/static/vendors.js b/app/static/vendors.js index a0de1db..510dab0 100644 --- a/app/static/vendors.js +++ b/app/static/vendors.js @@ -12,12 +12,14 @@ async function updateBudgetCategory(id, updatedName){ var data = await result.json(); } -function startEditMode(id){ + + +async function startEditMode(id){ for(let i = 0; i < reassignButtons.length; i++){ reassignButtons[i].disabled = true; } - const handleKeydown = (e) => { + const handleKeydown = async (e) => { if (e.key === 'Enter') { document.removeEventListener('keydown', handleKeydown); const vendor = document.getElementById(`bc-line-${id}`); @@ -26,7 +28,8 @@ function startEditMode(id){ if (vendorInput.parentNode) { vendorInput.parentNode.removeChild(vendorInput); } - + var result = await fetch(`/update_vendors_budget_category/${id}/${vendor.innerText}`, {method:'POST'}); + var data = await result.json(); for(let i = 0; i < reassignButtons.length; i++){ reassignButtons[i].disabled = false; } @@ -46,8 +49,7 @@ function startEditMode(id){ inputElem.focus() } - -document.addEventListener("DOMContentLoaded", (event) => { +document.addEventListener("DOMContentLoaded", () => { for(let i = 0; i < delButtons.length; i++){ delButtons[i].addEventListener('click', e => { deleteVendor(parseInt(e.target.id)); diff --git a/instance/site.db b/instance/site.db index 974b0074ec3d4ad1af0f42fc07bd98a982dc8c2c..9a84ace7ae8a24e7dd17218b6c2f8b909ad608a9 100644 GIT binary patch delta 151 zcmZoTz|?SnX@WFk(L@<%)*=SIaIcLi3-p<#_>N6xH!x)3yU2HJv!Fm1pAe@MGlOJa zYPoY_39BSCgJ5Ff<{NgJg1r1k86%okwAD=N&$!l21`ecttj*JoT` uaeevq71t+AY>ti1U{YXUU=U_N1>DRm43do3S6-iaeYw=+i}BKn5*z>paDCqOh1X|XUvYi;^%d7AFG_F#0C&MO A8vp