- vpc.py: target .wp-caption img for hero image (VPC uses Elementor, not
standard WooCommerce gallery); skip logo and placeholder images by URL pattern
- plant_edit view: pass plant.species as 'species' so the species info
banner (including scientific name) appears on the edit form
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- New plants/services/vpc.py: search VPC (vasteplantencatalogus.nl) by
keyword and scrape full plant detail on select
- Both searches run in parallel via ThreadPoolExecutor
- species_results partial shows results from both sources with colour-coded
source badges (green = Perenual, blue = VPC)
- vpc_select view scrapes the detail page on select, creates Species with
bloom_months, max_height_cm, sunlight from the VPC page
- Species.vpc_slug field (migration 0005) prevents re-importing the same plant
- beautifulsoup4 added to requirements
- Handles VPC unavailability gracefully (empty results, no error shown to user)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>