Improving upload.py
This commit is contained in:
		
							parent
							
								
									d4e7c0833b
								
							
						
					
					
						commit
						a3fe6f922b
					
				@ -8,6 +8,12 @@ upload_bp = Blueprint('uploadcsv', __name__)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@upload_bp.route('/uploadcsv', methods=['GET', 'POST'])
 | 
					@upload_bp.route('/uploadcsv', methods=['GET', 'POST'])
 | 
				
			||||||
def upload_file():
 | 
					def upload_file():
 | 
				
			||||||
 | 
					    # Check if primary attribute is defined
 | 
				
			||||||
 | 
					    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(request.url)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if request.method == 'POST':
 | 
					    if request.method == 'POST':
 | 
				
			||||||
        # Check if a file was uploaded
 | 
					        # Check if a file was uploaded
 | 
				
			||||||
        if 'file' not in request.files:
 | 
					        if 'file' not in request.files:
 | 
				
			||||||
@ -22,8 +28,11 @@ def upload_file():
 | 
				
			|||||||
            return redirect(request.url)
 | 
					            return redirect(request.url)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            # Extract and validate CSV data
 | 
					            # Extract CSV data
 | 
				
			||||||
            csvdata = get_csv_data(file)
 | 
					            csvdata = get_csv_data(file)
 | 
				
			||||||
 | 
					        except Exception as e:
 | 
				
			||||||
 | 
					            flash(f"Error reading CSV file: {str(e)}", "error")
 | 
				
			||||||
 | 
					            return redirect(request.url)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Validate each row of data
 | 
					        # Validate each row of data
 | 
				
			||||||
        errors = []
 | 
					        errors = []
 | 
				
			||||||
@ -39,12 +48,6 @@ def upload_file():
 | 
				
			|||||||
                errors=errors
 | 
					                errors=errors
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # Identify the primary attribute
 | 
					 | 
				
			||||||
            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(request.url)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Separate new and existing assets
 | 
					        # Separate new and existing assets
 | 
				
			||||||
        new_assets = []
 | 
					        new_assets = []
 | 
				
			||||||
        existing_assets = []
 | 
					        existing_assets = []
 | 
				
			||||||
@ -56,20 +59,17 @@ def upload_file():
 | 
				
			|||||||
            else:
 | 
					            else:
 | 
				
			||||||
                new_assets.append(row)
 | 
					                new_assets.append(row)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            session['assets'] = new_assets  # Store new assets in session
 | 
					        # Store new assets in session for further processing
 | 
				
			||||||
 | 
					        session['new_assets'] = new_assets
 | 
				
			||||||
 | 
					        session['existing_assets'] = existing_assets
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Redirect to preview page with the CSV data
 | 
					        # Redirect to preview page with the CSV data
 | 
				
			||||||
        return render_template(
 | 
					        return render_template(
 | 
				
			||||||
            'csv_preview.html',
 | 
					            'csv_preview.html',
 | 
				
			||||||
            new_assets=new_assets,
 | 
					            new_assets=new_assets,
 | 
				
			||||||
                existing=existing_assets,
 | 
					            existing_assets=existing_assets,
 | 
				
			||||||
            item_attributes=item_attributes
 | 
					            item_attributes=item_attributes
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        except Exception as e:
 | 
					 | 
				
			||||||
            # Handle errors during file processing
 | 
					 | 
				
			||||||
            flash(f"Error processing CSV file: {str(e)}", "error")
 | 
					 | 
				
			||||||
            return redirect(request.url)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Render the upload page for GET requests
 | 
					    # Render the upload page for GET requests
 | 
				
			||||||
    return render_template('upload.html')
 | 
					    return render_template('upload.html')
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user