Files
boc/quixzoom-market-pages/_scripts/customize-industry.py
T
Bernt aee0f09db8 landvex: Fixar och tester klara för alla komponenter
- Datafabrik: Dockerfile fix, agentorkestrering fungerar
- Vision: Identify-modell, FAISS, OCR alla testade
- API: Alla 7 integrationstester passerade
- Upplösare: Entitetsupplösning verifierad
2026-07-05 06:41:32 +00:00

145 lines
6.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
"""
Anpassa branschspecifika infographics per undersektor.
Användning: python3 customize-industry.py [industry-dir]
"""
import os
import sys
import re
from pathlib import Path
# Branschspecifika konfigurationer
INDUSTRIES = {
'facade-inspection': {
'name': 'Fasadinspektion',
'step_1_title': 'Hitta fasader nära dig',
'step_1_desc': 'Se tillgängliga fasaduppdrag på kartan. Välj byggnader i ditt område.',
'step_2_title': 'Dokumentera skick',
'step_2_desc': 'Fotografera fasad, fönster och entré enligt instruktionerna i appen.',
'step_3_title': 'Få betalt',
'step_3_desc': 'Ladda upp bilderna. Godkännande inom 24h. Betalt varje måndag.',
'value_1_title': 'Snabbare än traditionell besiktning',
'value_1_desc': 'Få bilddata inom timmar istället för veckor.',
'value_2_title': 'Kvalitetssäkrat',
'value_2_desc': 'Varje submission granskas av AI och valideras mot GPS.',
'cta_subtext': 'Börja tjäna på fasadinspektion idag.',
'cta_button_text': 'Bli Zoomer',
},
'bridge-inspection': {
'name': 'Broinspektion',
'step_1_title': 'Hitta broar i ditt område',
'step_1_desc': 'Se tillgängliga broinspektionsuppdrag. Välj de som passar din rutt.',
'step_2_title': 'Dokumentera broskick',
'step_2_desc': 'Fotografera brokropp, leder, räcken och fundament enligt spec.',
'step_3_title': 'Bidra till säkerhet',
'step_3_desc': 'Dina bilder hjälper kommuner att upptäcka skador tidigt. Betalt varje måndag.',
'value_1_title': 'Kritisk infrastruktur',
'value_1_desc': 'Hjälp till att hålla Sveriges broar säkra.',
'value_2_title': 'Högre ersättning',
'value_2_desc': 'Broinspektion betalar 200500 kr per uppdrag.',
'cta_subtext': 'Bidra till säkrare infrastruktur och tjäna pengar.',
'cta_button_text': 'Bli broinspektör',
},
'storm-damage': {
'name': 'Stormskadebedömning',
'step_1_title': 'Få notis vid storm',
'step_1_desc': 'quiXzoom skickar push-notiser när stormskadeuppdrag aktiveras i ditt område.',
'step_2_title': 'Dokumentera skador',
'step_2_desc': 'Fotografera tak, fasader, träd och vägar. Prioritera säkerheten.',
'step_3_title': 'Snabbast betalt',
'step_3_desc': 'Stormskadeuppdrag har högst prioritet. Godkännande och betalning inom 48h.',
'value_1_title': 'Högst ersättning',
'value_1_desc': '300500 kr per uppdrag. Bonus för snabb insamling.',
'value_2_title': 'Hjälp samhället',
'value_2_desc': 'Dina bilder påskyndar skadebedömning och återställning.',
'cta_subtext': 'Bli först på plats efter stormen.',
'cta_button_text': 'Registrera dig',
},
'property-documentation': {
'name': 'Fastighetsdokumentation',
'step_1_title': 'Hitta fastigheter',
'step_1_desc': 'Se tillgängliga fastighetsuppdrag. Välj bostadsrätter, kontor eller butiker.',
'step_2_title': 'Dokumentera noggrant',
'step_2_desc': 'Fotografera exteriör, interiör och detaljer enligt checklista.',
'step_3_title': 'Få betalt veckovis',
'step_3_desc': 'Godkända uppdrag betalas ut varje måndag. Ingen väntetid.',
'value_1_title': 'Stort utbud',
'value_1_desc': 'Många fastighetsbolag behöver löpande dokumentation.',
'value_2_title': 'Flexibelt',
'value_2_desc': 'Välj uppdrag som passar din dag.',
'cta_subtext': 'Dokumentera fastigheter och tjäna pengar.',
'cta_button_text': 'Bli Zoomer',
},
}
# Default för branscher som inte finns i config
DEFAULT_CONFIG = {
'name': 'Fältdatainsamling',
'step_1_title': 'Hitta uppdrag',
'step_1_desc': 'Se tillgängliga uppdrag nära dig i quiXzoom-appen.',
'step_2_title': 'Dokumentera',
'step_2_desc': 'Följ instruktionerna och ta bilder med din smartphone.',
'step_3_title': 'Få betalt',
'step_3_desc': 'Betalt varje vecka för godkända uppdrag.',
'value_1_title': 'Flexibelt arbete',
'value_1_desc': 'Jobba när du vill, där du vill.',
'value_2_title': 'Snabb betalning',
'value_2_desc': 'Få betalt varje måndag via Stripe.',
'cta_subtext': 'Börja tjäna pengar på fältdatainsamling idag.',
'cta_button_text': 'Bli Zoomer',
}
def customize_industry_page(industry_dir):
"""Anpassa infographic för en specifik bransch."""
industry_name = industry_dir.name
config = INDUSTRIES.get(industry_name, DEFAULT_CONFIG)
# Läs template
template_path = industry_dir.parent / '_components' / 'infographic-industry.html'
if not template_path.exists():
print(f" ❌ Template saknas: {template_path}")
return False
template = template_path.read_text(encoding='utf-8')
# Ersätt placeholders
result = template
for key, value in config.items():
placeholder = '{{' + key.upper() + '}}'
result = result.replace(placeholder, value)
# Ta bort oersatta placeholders (men inte kommentaren)
result = re.sub(r'\{\{([A-Z_]+)\}\}', lambda m: '' if m.group(1) != 'PLACEHOLDERS' else m.group(0), result)
# Skriv till fil
output_path = industry_dir / 'infographic-custom.html'
output_path.write_text(result, encoding='utf-8')
print(f"{industry_name}/infographic-custom.html skapad")
return True
def main():
root = Path(__file__).parent.parent / 'se'
print("=== Branschanpassade Infographics ===\n")
count = 0
for subdir in sorted(root.iterdir()):
if not subdir.is_dir():
continue
if subdir.name.startswith('_'):
continue
if not (subdir / 'index.html').exists():
continue
if customize_industry_page(subdir):
count += 1
print(f"\n=== {count} branschspecifika infographics skapade ===")
print("\nNästa steg:")
print(" 1. Uppdatera integrate.py för att använda custom infographics")
print(" 2. Testa lokalt")
print(" 3. Deploy till S3")
if __name__ == '__main__':
main()