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
import json
from config import item_attributes # Import the configuration
confirm_save_bp = Blueprint('confirm_save', __name__)
# When confirmed, write the csv data to the database
@confirm_save_bp.route('/confirm_save', methods=['POST'])
def confirm_save():
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
for asset_data in edited_assets:
asset = Asset(
assettag=asset_data['assettag'],
hostname=asset_data['hostname'],
warrantyfrom=asset_data['warrantyfrom'],
status=asset_data['status'],
staffnum=asset_data['staffnum']
)
# Dynamically create the Asset object using item_attributes
asset = Asset(**{
attrib: asset_data[attrib]
for attrib in item_attributes
})
db.session.add(asset)
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
return redirect('/viewall')