From ce8373f613dd5d2fb1ff53013edf5618d7d64154 Mon Sep 17 00:00:00 2001 From: candifloss Date: Thu, 6 Mar 2025 13:43:35 +0530 Subject: [PATCH] Fixed csv submission and redirection --- routes/confirm_save.py | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/routes/confirm_save.py b/routes/confirm_save.py index db2e892..b6c139e 100644 --- a/routes/confirm_save.py +++ b/routes/confirm_save.py @@ -8,25 +8,23 @@ confirm_save_bp = Blueprint('confirm_save', __name__) @confirm_save_bp.route('/confirm_save', methods=['POST']) def confirm_save(): - # Determine if the operation was 'import' or 'edit' - mode = session.get('csv_mode', 'import') # Default to 'import' if mode is not set - redirect_route = 'uploadcsv.import_from_csv' if mode == 'import' else 'uploadcsv.edit_using_csv' - - + # Retrieve mode from session + mode = session.get('csv_mode') + if mode not in ['import', 'edit']: + flash("Invalid operation mode. Please try again.", "error") + return redirect(url_for('uploadcsv.import_from_csv')) # Check if assets data is present in the request if 'assets' not in request.form: flash("No assets data found in the request.", "error") - #return redirect(url_for('uploadcsv.import_from_csv')) - return redirect(url_for(redirect_route)) + return redirect(url_for('uploadcsv.import_from_csv' if mode == 'import' else 'uploadcsv.edit_using_csv')) try: # Parse the JSON data from the form edited_assets = json.loads(request.form['assets']) except json.JSONDecodeError: flash("Invalid JSON data in the request.", "error") - #return redirect(url_for('uploadcsv.import_from_csv')) - return redirect(url_for(redirect_route)) + return redirect(url_for('uploadcsv.import_from_csv' if mode == 'import' else 'uploadcsv.edit_using_csv')) # Validate each asset errors = [] @@ -39,16 +37,14 @@ def confirm_save(): # If there are validation errors, flash them and redirect back to the preview page for error in errors: flash(error, "error") - #return redirect(url_for('uploadcsv.import_from_csv')) - return redirect(url_for(redirect_route)) + return redirect(url_for('uploadcsv.import_from_csv' if mode == 'import' else 'uploadcsv.edit_using_csv')) # Save validated assets to the database for asset_data in edited_assets: primary_attrib = next((attrib for attrib in item_attributes if attrib.primary), None) if not primary_attrib: flash("Primary attribute not defined in configuration.", "error") - #return redirect(url_for('uploadcsv.import_from_csv')) - return redirect(url_for(redirect_route)) + return redirect(url_for('uploadcsv.import_from_csv' if mode == 'import' else 'uploadcsv.edit_using_csv')) primary_value = asset_data[primary_attrib.attrib_name] asset = Asset.query.filter_by(**{primary_attrib.attrib_name: primary_value}).first() @@ -67,8 +63,7 @@ def confirm_save(): except Exception as e: db.session.rollback() flash(f"Error saving data to the database: {str(e)}", "error") - #return redirect(url_for('uploadcsv.import_from_csv')) - return redirect(url_for(redirect_route)) + return redirect(url_for('uploadcsv.import_from_csv' if mode == 'import' else 'uploadcsv.edit_using_csv')) # Clear session data after successful insertion session.pop('new_entries', None)