feat(Explorer): Enhance metric extraction, source transparency, and UI display

- **Standardization & Formula Logic:** Fixed NameError/SyntaxError in formula parser; added support for comments and capitalized placeholders.
- **Source URL Tracking:** Extended DB schema and cascade logic to store and track specific source URLs.
- **Frontend & UI:**
  - Added 'Standardized Potential' display in Inspector.
  - Added clickable source link with icon.
  - Fixed Settings tab layout collapse (flex-shrink-0).
- **Export Capabilities:**
  - Single-company JSON export now includes full quantitative metadata.
  - New global CSV export endpoint /api/companies/export.
- **System Integrity:**
  - Fixed Notion sync typo ('Stanardization').
  - Corrected Nginx proxy routing and FastAPI route ordering.
  - Ensured DB persistence via explicit docker-compose volume mapping.
This commit is contained in:
2026-01-24 09:56:59 +00:00
parent 127aadb85a
commit 5670660907
11 changed files with 304 additions and 380 deletions

View File

@@ -60,7 +60,8 @@ def migrate_tables():
"calculated_metric_unit": "TEXT",
"standardized_metric_value": "FLOAT",
"standardized_metric_unit": "TEXT",
"metric_source": "TEXT"
"metric_source": "TEXT",
"metric_source_url": "TEXT"
}
for col, col_type in comp_migrations.items():

View File

@@ -146,7 +146,7 @@ def sync_industries(token, session):
industry.proxy_factor = extract_number(props.get("Proxy Factor"))
industry.scraper_search_term = extract_select(props.get("Scraper Search Term")) # <-- FIXED HERE
industry.scraper_keywords = extract_rich_text(props.get("Scraper Keywords"))
industry.standardization_logic = extract_rich_text(props.get("Stanardization Logic"))
industry.standardization_logic = extract_rich_text(props.get("Standardization Logic"))
# Relation: Primary Product Category
relation = props.get("Primary Product Category", {}).get("relation", [])