feat: parametres - filtres contenu, categories, repertoire (#9, #10, #11, #12)

- Filtre recommandations (all/anime/series)
- Filtre dernieres sorties (all/anime/series)
- Toggle categories anime/series (min 1 active)
- Repertoire de telechargement personnalisable
- Migration automatique des nouvelles colonnes SQLite
- Template settings avec tous les nouveaux controles
- Validation cote backend (400 si les deux categories desactivees)

Closes #9, Closes #10, Closes #11, Closes #12
This commit is contained in:
root
2026-04-02 22:41:18 +00:00
parent 0af537e032
commit e5b30741fe
4 changed files with 229 additions and 12 deletions
+23
View File
@@ -14,6 +14,19 @@ class AppSettingsBase(SQLModel):
# Store list of disabled providers as a JSON string
disabled_providers_json: str = Field(default="[]", sa_column=Column(String))
# #9: Filter for recommendations section ("all", "anime", "series")
recommendations_filter: str = Field(default="all", sa_column=Column(String))
# #10: Filter for latest releases section ("all", "anime", "series")
releases_filter: str = Field(default="all", sa_column=Column(String))
# #11: Enable/disable categories
anime_enabled: bool = Field(default=True)
series_enabled: bool = Field(default=True)
# #12: Custom download directory
download_dir: str = Field(default="downloads")
@property
def disabled_providers(self) -> List[str]:
@@ -46,6 +59,11 @@ class AppSettings(BaseModel):
default_lang: str = "vostfr"
theme: str = "dark"
disabled_providers: List[str] = []
recommendations_filter: str = "all"
releases_filter: str = "all"
anime_enabled: bool = True
series_enabled: bool = True
download_dir: str = "downloads"
class Config:
from_attributes = True
@@ -56,3 +74,8 @@ class AppSettingsUpdate(BaseModel):
default_lang: Optional[str] = None
theme: Optional[str] = None
disabled_providers: Optional[List[str]] = None
recommendations_filter: Optional[str] = None
releases_filter: Optional[str] = None
anime_enabled: Optional[bool] = None
series_enabled: Optional[bool] = None
download_dir: Optional[str] = None