From e96605d8318493a6a18604515aaf6a411d2cde9e Mon Sep 17 00:00:00 2001 From: candifloss Date: Wed, 5 Feb 2025 13:56:37 +0530 Subject: [PATCH] Check csv for existing items --- routes/upload.py | 16 +++++++++++++--- templates/csv_preview.html | 35 ++++++++++++++++++++++++++++++++++- 2 files changed, 47 insertions(+), 4 deletions(-) diff --git a/routes/upload.py b/routes/upload.py index 6b98d1b..83d37b3 100644 --- a/routes/upload.py +++ b/routes/upload.py @@ -22,11 +22,21 @@ def upload_file(): try: # Extract data from the CSV file - assets = get_csv_data(file) - session['assets'] = assets # Store assets in session + csvdata = get_csv_data(file) + new_assets = [] + existing_assets = [] + for row in csvdata: + tag = row['assettag'] + asset_exists = Asset.query.filter_by(assettag=tag).first() + if asset_exists: + existing_assets.append(row) + else: + new_assets.append(row) + + session['assets'] = new_assets # Store assets in session # Redirect to preview page with the CSV data - return render_template('csv_preview.html', assets=assets) + return render_template('csv_preview.html', new_assets=new_assets, existing=existing_assets) except Exception as e: # Handle errors during file processing diff --git a/templates/csv_preview.html b/templates/csv_preview.html index f56dbfd..ee7aa02 100644 --- a/templates/csv_preview.html +++ b/templates/csv_preview.html @@ -10,6 +10,8 @@

CSV Preview

+ {% if new_assets %} +

New assets:

@@ -21,7 +23,7 @@ - {% for asset in assets %} + {% for asset in new_assets %} @@ -32,10 +34,41 @@ {% endfor %}
{{ asset.assettag }} {{ asset.hostname }}
+ {% endif %} + + {% if existing %} +

These assets are already in the database:

+ + + + + + + + + + + + {% for asset in existing %} + + + + + + + + {% endfor %} + +
Asset TagHostnameWarranty FromStatusStaff Number
{{ asset.assettag }}{{ asset.hostname }}{{ asset.warrantyfrom }}{{ asset.status }}{{ asset.staffnum }}
+ {% endif %} + {% if new_assets %}
+ {% endif %} + + \ No newline at end of file