diff --git a/routes/upload.py b/routes/upload.py index ca6d59a..da2e117 100644 --- a/routes/upload.py +++ b/routes/upload.py @@ -1,7 +1,7 @@ -from flask import Blueprint, request, render_template, redirect +from flask import Blueprint, request, render_template, redirect, session import csv from io import TextIOWrapper -from models import Asset +from models import Asset, db from process_csv import get_csv_data # Import the CSV processing function # Create a Blueprint for upload @@ -23,6 +23,7 @@ def upload_file(): try: # Extract data from the CSV file assets = get_csv_data(file) + session['assets'] = assets # Store assets in session # Redirect to preview page with the CSV data return render_template('csv_preview.html', assets=assets) @@ -33,4 +34,21 @@ def upload_file(): return redirect('uploadcsv') # Render the upload page for GET requests - return render_template('upload.html') \ No newline at end of file + return render_template('upload.html') + +# When confirmed, write the csv data to the database +@upload_bp.route('/confirm_save', methods=['POST']) +def confirm_save(): + assets = session.get('assets', []) # Retrieve assets from session + for asset_data in assets: + asset = Asset( + assettag=asset_data['assettag'], + hostname=asset_data['hostname'], + warrantyfrom=asset_data['warrantyfrom'], + status=asset_data['status'], + staffnum=asset_data['staffnum'] + ) + db.session.add(asset) + db.session.commit() + session.pop('assets', None) # Clear session data + return redirect('/viewall') \ No newline at end of file diff --git a/templates/csv_preview.html b/templates/csv_preview.html index b212f0b..947d181 100644 --- a/templates/csv_preview.html +++ b/templates/csv_preview.html @@ -32,7 +32,7 @@ - +