from flask import Blueprint, redirect, session, request, jsonify from definitions.models import Asset, db import json from config import item_attributes confirm_save_bp = Blueprint('confirm_save', __name__) @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: # Dynamically create the Asset object using item_attributes asset = Asset(**{ attrib.attrib_name: asset_data[attrib.attrib_name] 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')