feat: Improve search config + rename Dashboard + fix SearXNG

SearXNG:
- Fix tini not found error by calling entrypoint.sh directly
- Keep limiter.toml creation at container startup

UI Changes:
- Rename "Tableau de bord" to "Suivis produits" in navigation
- Move CSS selector configuration from item modal to Settings page
- Add price_selector field to search sites configuration
- Display CSS selector badge on site cards

Backend:
- Add price_selector column to SearchSite model and schemas
- Update init.sql with search_sites table and migration for existing DBs
This commit is contained in:
Claude committed 2025-11-22 13:24:28 +00:00
1 parent e8ccd69bff
commit 933cb2e66f
7 files changed
+59 -31

No files matched your search

+1
View File
@@ -91,5 +91,6 @@ class SearchSite(Base):
is_active: bool = Column(Boolean, default=True) # type: ignore
priority: int = Column(Integer, default=0) # type: ignore # Ordre d'affichage
requires_js: bool = Column(Boolean, default=False) # type: ignore # Force Browserless si True
price_selector: str | None = Column(String, nullable=True) # type: ignore # Sélecteur CSS pour le prix
created_at: datetime = Column(DateTime, default=lambda: datetime.now(UTC)) # type: ignore
updated_at: datetime = Column(DateTime, default=lambda: datetime.now(UTC), onupdate=lambda: datetime.now(UTC)) # type: ignore
+3
View File
@@ -62,6 +62,7 @@ class SearchSiteCreate(BaseModel):
is_active: bool = True
priority: int = 0
requires_js: bool = False
price_selector: str | None = None
class SearchSiteUpdate(BaseModel):
@@ -72,6 +73,7 @@ class SearchSiteUpdate(BaseModel):
is_active: bool | None = None
priority: int | None = None
requires_js: bool | None = None
price_selector: str | None = None
class SearchSiteResponse(BaseModel):
@@ -83,6 +85,7 @@ class SearchSiteResponse(BaseModel):
is_active: bool
priority: int
requires_js: bool
price_selector: str | None = None
created_at: datetime | None = None
updated_at: datetime | None = None
model_config = ConfigDict(from_attributes=True)