Commit c6db5d5c authored by Mickaël Desfrênes's avatar Mickaël Desfrênes
Browse files

fix metadatas key binding in TUI

parent 5b7f359b
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -593,7 +593,7 @@ class JamaAdminApp(App):
        ("enter", "open_selected", "Open"),
        ("escape", "back", "Back"),
        ("ctrl+r", "roles", "Roles"),
        ("ctrl+m", "metadata", "Metadata"),
        ("m", "metadata", "Metadata"),
        ("ctrl+u", "members", "Members"),
        ("s", "delete_successful_tasks", "Delete successful"),
        ("f", "delete_failed_tasks", "Delete failed"),
@@ -613,7 +613,7 @@ class JamaAdminApp(App):
            FooterCommand("A add project", "add"),
            FooterCommand("E edit project", "edit"),
            FooterCommand("Ctrl+R roles", "roles"),
            FooterCommand("Ctrl+M metadata", "metadata"),
            FooterCommand("M metadata", "metadata"),
            FooterCommand("Ctrl+U members", "members"),
            FooterCommand("R refresh", "refresh"),
            FooterCommand("Q quit", "quit"),
@@ -621,7 +621,7 @@ class JamaAdminApp(App):
        "project_stats": [
            FooterCommand("Esc back", "back"),
            FooterCommand("Ctrl+R roles", "roles"),
            FooterCommand("Ctrl+M metadata", "metadata"),
            FooterCommand("M metadata", "metadata"),
            FooterCommand("Ctrl+U members", "members"),
            FooterCommand("R refresh", "refresh"),
            FooterCommand("Q quit", "quit"),
@@ -1090,7 +1090,7 @@ class JamaAdminApp(App):
                ],
            )
        self.set_status(
            "Enter stats, Ctrl+R roles, Ctrl+M metadata, Ctrl+U members. Project deletion is intentionally unavailable."
            "Enter stats, Ctrl+R roles, M metadata, Ctrl+U members. Project deletion is intentionally unavailable."
        )
        table.focus()

@@ -1169,7 +1169,7 @@ class JamaAdminApp(App):
        stats = project_services.project_statistics(project)
        for key, value in stats.items():
            self.add_row(key, (key, value), [key, value])
        self.set_status("Esc back. Ctrl+R roles, Ctrl+M metadata, Ctrl+U members.")
        self.set_status("Esc back. Ctrl+R roles, M metadata, Ctrl+U members.")

    def load_project_roles(self) -> None:
        project = get_object_or_404(
+3 −3
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ FR_TRANSLATIONS = {
    "A add project": "A ajouter projet",
    "E edit project": "E modifier projet",
    "Ctrl+R roles": "Ctrl+R rôles",
    "Ctrl+M metadata": "Ctrl+M métadonnées",
    "M metadata": "M métadonnées",
    "Ctrl+U members": "Ctrl+U membres",
    "R refresh": "R actualiser",
    "Q quit": "Q quitter",
@@ -201,8 +201,8 @@ FR_TRANSLATIONS = {
    "Value": "Valeur",
    "Caches": "Caches",
    "Effective scalar settings": "Paramètres scalaires effectifs",
    "Enter stats, Ctrl+R roles, Ctrl+M metadata, Ctrl+U members. Project deletion is intentionally unavailable.": "Entrée stats, Ctrl+R rôles, Ctrl+M métadonnées, Ctrl+U membres. La suppression de projet est volontairement indisponible.",
    "Esc back. Ctrl+R roles, Ctrl+M metadata, Ctrl+U members.": "Esc retour. Ctrl+R rôles, Ctrl+M métadonnées, Ctrl+U membres.",
    "Enter stats, Ctrl+R roles, M metadata, Ctrl+U members. Project deletion is intentionally unavailable.": "Entrée stats, Ctrl+R rôles, M métadonnées, Ctrl+U membres. La suppression de projet est volontairement indisponible.",
    "Esc back. Ctrl+R roles, M metadata, Ctrl+U members.": "Esc retour. Ctrl+R rôles, M métadonnées, Ctrl+U membres.",
    "Enter edits permission matrix. A add, E rename, D delete.": "Entrée modifie la matrice de permissions. A ajouter, E renommer, D supprimer.",
    "Space/Enter toggles selected CRUD cell. E edits whole row.": "Espace/Entrée bascule la case CRUD sélectionnée. E modifie toute la ligne.",
    "A adds Resource/Collection permission. Space/Enter toggles CRUD cell. E edits row. D deletes scoped row.": "A ajoute une permission ressource/collection. Espace/Entrée bascule la case CRUD. E modifie la ligne. D supprime la ligne ciblée.",
+17 −0
Original line number Diff line number Diff line
@@ -379,6 +379,23 @@ class AdminUiAppTestCase(TransactionTestCase):
        with patch.dict(os.environ, {"DJANGO_ALLOW_ASYNC_UNSAFE": "true"}):
            asyncio.run(run_app())

    def test_m_on_project_opens_metadata_sets(self):
        project = Project.objects.create(label="Metadata project", description="")

        async def run_app():
            from jama.adminui.app import JamaAdminApp

            app = JamaAdminApp()
            async with app.run_test() as pilot:
                await pilot.pause()
                await pilot.press("m")
                await pilot.pause()
                self.assertEqual(app.mode_name, "metadata_sets")
                self.assertEqual(app.context["project_id"], project.pk)

        with patch.dict(os.environ, {"DJANGO_ALLOW_ASYNC_UNSAFE": "true"}):
            asyncio.run(run_app())

    def test_task_status_filter_uses_choice_list(self):
        project = Project.objects.create(label="Task project", description="")