flask_crud_app/routes/confirm_save.py
2025-02-12 00:15:53 +05:30

35 lines
1.1 KiB
Python

from flask import Blueprint, redirect, session, request, jsonify
from definitions.models import Asset, db
import json
from config import item_attributes # Import the configuration
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: 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')