Updated comfirm_save.py

This commit is contained in:
Candifloss 2025-02-08 16:01:56 +05:30
parent c0c2276f05
commit 59526aee24
2 changed files with 22 additions and 11 deletions

View File

@ -1,24 +1,35 @@
from flask import Blueprint, redirect, session, request from flask import Blueprint, redirect, session, request, jsonify
from models import Asset, db from models import Asset, db
import json import json
from config import item_attributes # Import the configuration
confirm_save_bp = Blueprint('confirm_save', __name__) confirm_save_bp = Blueprint('confirm_save', __name__)
# When confirmed, write the csv data to the database
@confirm_save_bp.route('/confirm_save', methods=['POST']) @confirm_save_bp.route('/confirm_save', methods=['POST'])
def confirm_save(): def confirm_save():
edited_assets = json.loads(request.form['assets']) if 'assets' not in request.form:
return "No assets data found in the request.", 400
try:
edited_assets = json.loads(request.form['assets'])
except json.JSONDecodeError:
return "Invalid JSON data in the request.", 400
session['assets'] = edited_assets session['assets'] = edited_assets
for asset_data in edited_assets: for asset_data in edited_assets:
asset = Asset( # Dynamically create the Asset object using item_attributes
assettag=asset_data['assettag'], asset = Asset(**{
hostname=asset_data['hostname'], attrib: asset_data[attrib]
warrantyfrom=asset_data['warrantyfrom'], for attrib in item_attributes
status=asset_data['status'], })
staffnum=asset_data['staffnum']
)
db.session.add(asset) db.session.add(asset)
db.session.commit()
try:
db.session.commit()
except Exception as e:
db.session.rollback()
return f"Error saving data to the database: {str(e)}", 500
session.pop('assets', None) # Clear session data session.pop('assets', None) # Clear session data
return redirect('/viewall') return redirect('/viewall')