Loading README.md +15 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,21 @@ par l'utilisateur jacques. L'utilisateur comme le projet doivet exister préalab (venv) code/jama: uv run jama newjamaproject "mon projet" Projet "mon projet" créé avec le compte administrateur "admin_mon_projet" et la clef d'API "EOwy6laNTMBDUvH6pGuOvGdMEpYM2F9M" ### Interface d'administration en terminal Une interface TUI permet d'administrer Jama depuis un terminal sans passer par les méthodes RPC : uv run jama adminui Elle permet notamment de gérer les projets, utilisateurs, rôles, permissions, métadonnées, résultats de tâches, types de fichiers, snapshots, caches et le fichier de configuration `$JAMA_VAR_DIR/env`. L'interface est en français par défaut. Pour l'utiliser en anglais : uv run jama adminui --language en ### Snapshot et restauration d'un projet Jama peut exporter un projet sous forme de snapshot réimportable. Le snapshot Loading pyproject.toml +1 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ dependencies = [ "python-dotenv>=1.0.0", "pyvips>=2.2.1", "rich>=14.0.0", "textual>=6.0.0", "Unidecode>=1.3.4", ] Loading src/jama/__init__.py +1 −1 Original line number Diff line number Diff line __version__ = "0.6.11" __version__ = "0.7.0" src/jama/admin_services/__init__.py 0 → 100644 +3 −0 Original line number Diff line number Diff line """Administrative helpers shared by commands and the TUI.""" # Put non-resource-specific admin operations here so management commands stay thin. src/jama/admin_services/cache.py 0 → 100644 +29 −0 Original line number Diff line number Diff line from dataclasses import dataclass from django.conf import settings from django.core.cache import caches @dataclass class CacheClearResult: alias: str cleared: bool | None def configured_cache_aliases() -> list[str]: return sorted(settings.CACHES) def clear_cache_aliases(aliases: list[str] | None = None) -> list[CacheClearResult]: configured_aliases = set(settings.CACHES) selected_aliases = aliases or configured_cache_aliases() unknown_aliases = sorted(set(selected_aliases) - configured_aliases) if unknown_aliases: # Fail before clearing anything so command-line and TUI runs are all-or-none. raise ValueError( "Unknown cache alias(es): {}".format(", ".join(unknown_aliases)) ) return [ CacheClearResult(alias=alias, cleared=caches[alias].clear()) for alias in selected_aliases ] Loading
README.md +15 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,21 @@ par l'utilisateur jacques. L'utilisateur comme le projet doivet exister préalab (venv) code/jama: uv run jama newjamaproject "mon projet" Projet "mon projet" créé avec le compte administrateur "admin_mon_projet" et la clef d'API "EOwy6laNTMBDUvH6pGuOvGdMEpYM2F9M" ### Interface d'administration en terminal Une interface TUI permet d'administrer Jama depuis un terminal sans passer par les méthodes RPC : uv run jama adminui Elle permet notamment de gérer les projets, utilisateurs, rôles, permissions, métadonnées, résultats de tâches, types de fichiers, snapshots, caches et le fichier de configuration `$JAMA_VAR_DIR/env`. L'interface est en français par défaut. Pour l'utiliser en anglais : uv run jama adminui --language en ### Snapshot et restauration d'un projet Jama peut exporter un projet sous forme de snapshot réimportable. Le snapshot Loading
pyproject.toml +1 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ dependencies = [ "python-dotenv>=1.0.0", "pyvips>=2.2.1", "rich>=14.0.0", "textual>=6.0.0", "Unidecode>=1.3.4", ] Loading
src/jama/__init__.py +1 −1 Original line number Diff line number Diff line __version__ = "0.6.11" __version__ = "0.7.0"
src/jama/admin_services/__init__.py 0 → 100644 +3 −0 Original line number Diff line number Diff line """Administrative helpers shared by commands and the TUI.""" # Put non-resource-specific admin operations here so management commands stay thin.
src/jama/admin_services/cache.py 0 → 100644 +29 −0 Original line number Diff line number Diff line from dataclasses import dataclass from django.conf import settings from django.core.cache import caches @dataclass class CacheClearResult: alias: str cleared: bool | None def configured_cache_aliases() -> list[str]: return sorted(settings.CACHES) def clear_cache_aliases(aliases: list[str] | None = None) -> list[CacheClearResult]: configured_aliases = set(settings.CACHES) selected_aliases = aliases or configured_cache_aliases() unknown_aliases = sorted(set(selected_aliases) - configured_aliases) if unknown_aliases: # Fail before clearing anything so command-line and TUI runs are all-or-none. raise ValueError( "Unknown cache alias(es): {}".format(", ".join(unknown_aliases)) ) return [ CacheClearResult(alias=alias, cleared=caches[alias].clear()) for alias in selected_aliases ]