Frontend overhaul: NetBox-style detail pages, selectable columns, data sources

- Cultivar/species detail pages rewritten with two-column card layout, attribute tables, em-dash placeholders
- Column toggle + per-page selector on all list pages (families, species, cultivars, suppliers)
- Species list: table/card view toggle with family, layer, N-fixer, uses columns
- Cultivar detail: supplier links with SKU/price/product URL, species info section
- Data sources page (/sources) with attribution for all 10 data sources
- Fixed Cultivar/Species structs with #[serde(default)] for API compatibility
- Added table_controls component (reusable column toggle + per-page selector)
- Removed max-width constraint on content area for full-width tables
- Fixed route conflicts: merged {slug}/{id} into single {ref} routes
- Removed PostgreSQL enum types (plant_layer, drought_tolerance, etc.) in favor of TEXT
- Fixed API per_page parameter support across all list endpoints
This commit is contained in:
2026-03-15 00:53:06 +01:00
parent 484979ad53
commit 42906efd90
17 changed files with 2130 additions and 276 deletions
+12 -12
View File
@@ -14,28 +14,28 @@ CREATE TABLE species (
description TEXT,
soil_moisture TEXT,
drainage_requirement TEXT,
organic_matter_pct NUMERIC(5,2),
organic_matter_pct DOUBLE PRECISION,
nitrogen_ppm INTEGER,
phosphorus_ppm INTEGER,
potassium_ppm INTEGER,
boron_ppm NUMERIC(8,2),
boron_ppm DOUBLE PRECISION,
calcium_ppm INTEGER,
copper_ppm NUMERIC(8,2),
iron_ppm NUMERIC(8,2),
copper_ppm DOUBLE PRECISION,
iron_ppm DOUBLE PRECISION,
magnesium_ppm INTEGER,
manganese_ppm NUMERIC(8,2),
molybdenum_ppm NUMERIC(8,2),
manganese_ppm DOUBLE PRECISION,
molybdenum_ppm DOUBLE PRECISION,
sulfur_ppm INTEGER,
zinc_ppm NUMERIC(8,2),
ph_min NUMERIC(4,2),
ph_max NUMERIC(4,2),
zinc_ppm DOUBLE PRECISION,
ph_min DOUBLE PRECISION,
ph_max DOUBLE PRECISION,
soil_texture_preference TEXT[],
hardiness_zone_usda TEXT,
hardiness_zone_at TEXT,
min_temp NUMERIC(5,2),
max_temp NUMERIC(5,2),
min_temp DOUBLE PRECISION,
max_temp DOUBLE PRECISION,
drought_tolerance drought_tolerance,
water_requirement_mm_week NUMERIC(5,2),
water_requirement_mm_week DOUBLE PRECISION,
waterlogging_tolerance BOOLEAN,
salt_tolerance salt_tolerance,
edibility_rating SMALLINT,