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
+21
View File
@@ -39,6 +39,11 @@ async def get_settings(
default_lang=settings_obj.default_lang,
theme=settings_obj.theme,
disabled_providers=settings_obj.disabled_providers,
recommendations_filter=getattr(settings_obj, 'recommendations_filter', 'all'),
releases_filter=getattr(settings_obj, 'releases_filter', 'all'),
anime_enabled=getattr(settings_obj, 'anime_enabled', True),
series_enabled=getattr(settings_obj, 'series_enabled', True),
download_dir=getattr(settings_obj, 'download_dir', 'downloads'),
)
@@ -65,6 +70,22 @@ async def update_settings(
settings_obj.theme = update_data.theme
if update_data.disabled_providers is not None:
settings_obj.disabled_providers = update_data.disabled_providers
if update_data.recommendations_filter is not None:
settings_obj.recommendations_filter = update_data.recommendations_filter
if update_data.releases_filter is not None:
settings_obj.releases_filter = update_data.releases_filter
if update_data.anime_enabled is not None:
# Prevent disabling both categories
if not update_data.anime_enabled and not getattr(settings_obj, 'series_enabled', True):
raise HTTPException(status_code=400, detail="Au moins une categorie doit rester active")
settings_obj.anime_enabled = update_data.anime_enabled
if update_data.series_enabled is not None:
# Prevent disabling both categories
if not update_data.series_enabled and not getattr(settings_obj, 'anime_enabled', True):
raise HTTPException(status_code=400, detail="Au moins une categorie doit rester active")
settings_obj.series_enabled = update_data.series_enabled
if update_data.download_dir is not None:
settings_obj.download_dir = update_data.download_dir
session.add(settings_obj)
session.commit()