diff --git a/src/backend/core/migrations/0016_recording_options.py b/src/backend/core/migrations/0016_recording_options.py new file mode 100644 index 00000000..96fb1d46 --- /dev/null +++ b/src/backend/core/migrations/0016_recording_options.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.9 on 2025-12-29 15:30 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0015_application_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='recording', + name='options', + field=models.JSONField(blank=True, default=dict, help_text='Recording options', verbose_name='Recording options'), + ), + ] diff --git a/src/backend/core/models.py b/src/backend/core/models.py index b291f7c6..3d97963e 100644 --- a/src/backend/core/models.py +++ b/src/backend/core/models.py @@ -577,6 +577,12 @@ class Recording(BaseModel): verbose_name=_("Recording mode"), help_text=_("Defines the mode of recording being called."), ) + options = models.JSONField( + blank=True, + default=dict, + verbose_name=_("Recording options"), + help_text=_("Recording options"), + ) class Meta: db_table = "meet_recording" diff --git a/src/backend/core/tests/recording/test_api_recordings_list.py b/src/backend/core/tests/recording/test_api_recordings_list.py index f09a2594..2fc3e39d 100644 --- a/src/backend/core/tests/recording/test_api_recordings_list.py +++ b/src/backend/core/tests/recording/test_api_recordings_list.py @@ -82,6 +82,7 @@ def test_api_recordings_list_authenticated_direct(role, settings): "key": recording.key, "created_at": recording.created_at.isoformat().replace("+00:00", "Z"), "mode": recording.mode, + "options": {}, "room": { "access_level": str(room.access_level), "id": str(room.id), diff --git a/src/backend/core/tests/recording/test_api_recordings_retrieve.py b/src/backend/core/tests/recording/test_api_recordings_retrieve.py index 5196b700..827bdd09 100644 --- a/src/backend/core/tests/recording/test_api_recordings_retrieve.py +++ b/src/backend/core/tests/recording/test_api_recordings_retrieve.py @@ -95,6 +95,7 @@ def test_api_recording_retrieve_administrators(settings): "updated_at": recording.updated_at.isoformat().replace("+00:00", "Z"), "status": str(recording.status), "mode": str(recording.mode), + "options": {}, "expired_at": None, "is_expired": False, } @@ -130,6 +131,7 @@ def test_api_recording_retrieve_owners(settings): "updated_at": recording.updated_at.isoformat().replace("+00:00", "Z"), "status": str(recording.status), "mode": str(recording.mode), + "options": {}, "expired_at": None, "is_expired": False, } @@ -169,6 +171,7 @@ def test_api_recording_retrieve_compute_expiration_date_correctly(settings): "updated_at": "2023-01-15T12:00:00Z", "status": str(recording.status), "mode": str(recording.mode), + "options": {}, "expired_at": "2023-01-16T12:00:00Z", "is_expired": False, # Ensure the recording is still valid and hasn't expired } @@ -209,6 +212,7 @@ def test_api_recording_retrieve_expired(settings): "updated_at": "2023-01-15T12:00:00Z", "status": str(recording.status), "mode": str(recording.mode), + "options": {}, "expired_at": "2023-01-17T12:00:00Z", "is_expired": True, # Ensure the recording has expired } diff --git a/src/backend/locale/de_DE/LC_MESSAGES/django.mo b/src/backend/locale/de_DE/LC_MESSAGES/django.mo index 78b8a6c7..fd9e4b59 100644 Binary files a/src/backend/locale/de_DE/LC_MESSAGES/django.mo and b/src/backend/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/src/backend/locale/de_DE/LC_MESSAGES/django.po b/src/backend/locale/de_DE/LC_MESSAGES/django.po index 5dee7071..051db135 100644 --- a/src/backend/locale/de_DE/LC_MESSAGES/django.po +++ b/src/backend/locale/de_DE/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-17 15:12+0000\n" +"POT-Creation-Date: 2025-12-29 15:15+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -315,92 +315,96 @@ msgstr "Aufzeichnungsmodus" msgid "Defines the mode of recording being called." msgstr "Definiert den aufgerufenen Aufzeichnungsmodus." -#: core/models.py:584 +#: core/models.py:583 core/models.py:584 +msgid "Recording options" +msgstr "Aufnahmeoptionen" + +#: core/models.py:590 msgid "Recording" msgstr "Aufzeichnung" -#: core/models.py:585 +#: core/models.py:591 msgid "Recordings" msgstr "Aufzeichnungen" -#: core/models.py:693 +#: core/models.py:699 msgid "Recording/user relation" msgstr "Beziehung Aufzeichnung/Benutzer" -#: core/models.py:694 +#: core/models.py:700 msgid "Recording/user relations" msgstr "Beziehungen Aufzeichnung/Benutzer" -#: core/models.py:700 +#: core/models.py:706 msgid "This user is already in this recording." msgstr "Dieser Benutzer ist bereits Teil dieser Aufzeichnung." -#: core/models.py:706 +#: core/models.py:712 msgid "This team is already in this recording." msgstr "Dieses Team ist bereits Teil dieser Aufzeichnung." -#: core/models.py:712 +#: core/models.py:718 msgid "Either user or team must be set, not both." msgstr "Entweder Benutzer oder Team muss festgelegt werden, nicht beides." -#: core/models.py:729 +#: core/models.py:735 msgid "Create rooms" msgstr "Räume erstellen" -#: core/models.py:730 +#: core/models.py:736 msgid "List rooms" msgstr "Räume auflisten" -#: core/models.py:731 +#: core/models.py:737 msgid "Retrieve room details" msgstr "Raumdetails abrufen" -#: core/models.py:732 +#: core/models.py:738 msgid "Update rooms" msgstr "Räume aktualisieren" -#: core/models.py:733 +#: core/models.py:739 msgid "Delete rooms" msgstr "Räume löschen" -#: core/models.py:746 +#: core/models.py:752 msgid "Application name" msgstr "Anwendungsname" -#: core/models.py:747 +#: core/models.py:753 msgid "Descriptive name for this application." msgstr "Beschreibender Name für diese Anwendung." -#: core/models.py:757 +#: core/models.py:763 msgid "Hashed on Save. Copy it now if this is a new secret." msgstr "" "Beim Speichern gehasht. Jetzt kopieren, wenn dies ein neues Geheimnis ist." -#: core/models.py:768 +#: core/models.py:774 msgid "Application" msgstr "Anwendung" -#: core/models.py:769 +#: core/models.py:775 msgid "Applications" msgstr "Anwendungen" -#: core/models.py:792 +#: core/models.py:798 msgid "Enter a valid domain" msgstr "Geben Sie eine gültige Domain ein" -#: core/models.py:795 +#: core/models.py:801 msgid "Domain" msgstr "Domain" -#: core/models.py:796 +#: core/models.py:802 msgid "Email domain this application can act on behalf of." msgstr "E-Mail-Domain, im Namen der diese Anwendung handeln kann." -#: core/models.py:808 +#: core/models.py:814 msgid "Application domain" msgstr "Anwendungsdomain" -#: core/models.py:809 +#: core/models.py:815 msgid "Application domains" msgstr "Anwendungsdomains" diff --git a/src/backend/locale/en_US/LC_MESSAGES/django.mo b/src/backend/locale/en_US/LC_MESSAGES/django.mo index cdf08bd5..cdd88d17 100644 Binary files a/src/backend/locale/en_US/LC_MESSAGES/django.mo and b/src/backend/locale/en_US/LC_MESSAGES/django.mo differ diff --git a/src/backend/locale/en_US/LC_MESSAGES/django.po b/src/backend/locale/en_US/LC_MESSAGES/django.po index cbf315e5..313f2352 100644 --- a/src/backend/locale/en_US/LC_MESSAGES/django.po +++ b/src/backend/locale/en_US/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-17 15:12+0000\n" +"POT-Creation-Date: 2025-12-29 15:15+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -309,95 +309,99 @@ msgstr "Recording mode" msgid "Defines the mode of recording being called." msgstr "Defines the mode of recording being called." -#: core/models.py:584 +#: core/models.py:583 core/models.py:584 +msgid "Recording options" +msgstr "Recording options" + +#: core/models.py:590 msgid "Recording" msgstr "Recording" -#: core/models.py:585 +#: core/models.py:591 msgid "Recordings" msgstr "Recordings" -#: core/models.py:693 +#: core/models.py:699 msgid "Recording/user relation" msgstr "Recording/user relation" -#: core/models.py:694 +#: core/models.py:700 msgid "Recording/user relations" msgstr "Recording/user relations" -#: core/models.py:700 +#: core/models.py:706 msgid "This user is already in this recording." msgstr "This user is already in this recording." -#: core/models.py:706 +#: core/models.py:712 msgid "This team is already in this recording." msgstr "This team is already in this recording." -#: core/models.py:712 +#: core/models.py:718 msgid "Either user or team must be set, not both." msgstr "Either user or team must be set, not both." -#: core/models.py:729 +#: core/models.py:735 #, fuzzy #| msgid "created on" msgid "Create rooms" msgstr "Create rooms" -#: core/models.py:730 +#: core/models.py:736 msgid "List rooms" msgstr "List rooms" -#: core/models.py:731 +#: core/models.py:737 msgid "Retrieve room details" msgstr "Retrieve room details" -#: core/models.py:732 +#: core/models.py:738 #, fuzzy #| msgid "updated on" msgid "Update rooms" msgstr "Update rooms" -#: core/models.py:733 +#: core/models.py:739 msgid "Delete rooms" msgstr "Delete rooms" -#: core/models.py:746 +#: core/models.py:752 msgid "Application name" msgstr "Application name" -#: core/models.py:747 +#: core/models.py:753 msgid "Descriptive name for this application." msgstr "Descriptive name for this application." -#: core/models.py:757 +#: core/models.py:763 msgid "Hashed on Save. Copy it now if this is a new secret." msgstr "Hashed on Save. Copy it now if this is a new secret." -#: core/models.py:768 +#: core/models.py:774 msgid "Application" msgstr "Application" -#: core/models.py:769 +#: core/models.py:775 msgid "Applications" msgstr "Applications" -#: core/models.py:792 +#: core/models.py:798 msgid "Enter a valid domain" msgstr "Enter a valid domain" -#: core/models.py:795 +#: core/models.py:801 msgid "Domain" msgstr "Domain" -#: core/models.py:796 +#: core/models.py:802 msgid "Email domain this application can act on behalf of." msgstr "Email domain this application can act on behalf of." -#: core/models.py:808 +#: core/models.py:814 msgid "Application domain" msgstr "Application domain" -#: core/models.py:809 +#: core/models.py:815 msgid "Application domains" msgstr "Application domains" diff --git a/src/backend/locale/fr_FR/LC_MESSAGES/django.mo b/src/backend/locale/fr_FR/LC_MESSAGES/django.mo index 61e6f0b6..c76470df 100644 Binary files a/src/backend/locale/fr_FR/LC_MESSAGES/django.mo and b/src/backend/locale/fr_FR/LC_MESSAGES/django.mo differ diff --git a/src/backend/locale/fr_FR/LC_MESSAGES/django.po b/src/backend/locale/fr_FR/LC_MESSAGES/django.po index 6d61f7b3..5f8c16b2 100644 --- a/src/backend/locale/fr_FR/LC_MESSAGES/django.po +++ b/src/backend/locale/fr_FR/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-17 15:12+0000\n" +"POT-Creation-Date: 2025-12-29 15:15+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: antoine.lebaud@mail.numerique.gouv.fr\n" "Language-Team: LANGUAGE \n" @@ -315,93 +315,97 @@ msgstr "Mode d'enregistrement" msgid "Defines the mode of recording being called." msgstr "Définit le mode d'enregistrement appelé." -#: core/models.py:584 +#: core/models.py:583 core/models.py:584 +msgid "Recording options" +msgstr "Options d'enregistrement" + +#: core/models.py:590 msgid "Recording" msgstr "Enregistrement" -#: core/models.py:585 +#: core/models.py:591 msgid "Recordings" msgstr "Enregistrements" -#: core/models.py:693 +#: core/models.py:699 msgid "Recording/user relation" msgstr "Relation enregistrement/utilisateur" -#: core/models.py:694 +#: core/models.py:700 msgid "Recording/user relations" msgstr "Relations enregistrement/utilisateur" -#: core/models.py:700 +#: core/models.py:706 msgid "This user is already in this recording." msgstr "Cet utilisateur est déjà dans cet enregistrement." -#: core/models.py:706 +#: core/models.py:712 msgid "This team is already in this recording." msgstr "Cette équipe est déjà dans cet enregistrement." -#: core/models.py:712 +#: core/models.py:718 msgid "Either user or team must be set, not both." msgstr "Soit l'utilisateur, soit l'équipe doit être défini, pas les deux." -#: core/models.py:729 +#: core/models.py:735 msgid "Create rooms" msgstr "Créer des salles" -#: core/models.py:730 +#: core/models.py:736 msgid "List rooms" msgstr "Lister les salles" -#: core/models.py:731 +#: core/models.py:737 msgid "Retrieve room details" msgstr "Afficher les détails d’une salle" -#: core/models.py:732 +#: core/models.py:738 msgid "Update rooms" msgstr "Mettre à jour les salles" -#: core/models.py:733 +#: core/models.py:739 msgid "Delete rooms" msgstr "Supprimer les salles" -#: core/models.py:746 +#: core/models.py:752 msgid "Application name" msgstr "Nom de l’application" -#: core/models.py:747 +#: core/models.py:753 msgid "Descriptive name for this application." msgstr "Nom descriptif de cette application." -#: core/models.py:757 +#: core/models.py:763 msgid "Hashed on Save. Copy it now if this is a new secret." msgstr "" "Haché lors de l’enregistrement. Copiez-le maintenant s’il s’agit d’un " "nouveau secret." -#: core/models.py:768 +#: core/models.py:774 msgid "Application" msgstr "Application" -#: core/models.py:769 +#: core/models.py:775 msgid "Applications" msgstr "Applications" -#: core/models.py:792 +#: core/models.py:798 msgid "Enter a valid domain" msgstr "Saisissez un domaine valide" -#: core/models.py:795 +#: core/models.py:801 msgid "Domain" msgstr "Domaine" -#: core/models.py:796 +#: core/models.py:802 msgid "Email domain this application can act on behalf of." msgstr "Domaine de messagerie au nom duquel cette application peut agir." -#: core/models.py:808 +#: core/models.py:814 msgid "Application domain" msgstr "Domaine d’application" -#: core/models.py:809 +#: core/models.py:815 msgid "Application domains" msgstr "Domaines d’application" diff --git a/src/backend/locale/nl_NL/LC_MESSAGES/django.mo b/src/backend/locale/nl_NL/LC_MESSAGES/django.mo index 66894f7b..afea428a 100644 Binary files a/src/backend/locale/nl_NL/LC_MESSAGES/django.mo and b/src/backend/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/src/backend/locale/nl_NL/LC_MESSAGES/django.po b/src/backend/locale/nl_NL/LC_MESSAGES/django.po index 1380de7b..160e2240 100644 --- a/src/backend/locale/nl_NL/LC_MESSAGES/django.po +++ b/src/backend/locale/nl_NL/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-17 15:12+0000\n" +"POT-Creation-Date: 2025-12-29 15:15+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -311,92 +311,96 @@ msgstr "Opnamemodus" msgid "Defines the mode of recording being called." msgstr "Definieert de modus van opname die wordt aangeroepen." -#: core/models.py:584 +#: core/models.py:583 core/models.py:584 +msgid "Recording options" +msgstr "Opnameopties" + +#: core/models.py:590 msgid "Recording" msgstr "Opname" -#: core/models.py:585 +#: core/models.py:591 msgid "Recordings" msgstr "Opnames" -#: core/models.py:693 +#: core/models.py:699 msgid "Recording/user relation" msgstr "Opname/gebruiker-relatie" -#: core/models.py:694 +#: core/models.py:700 msgid "Recording/user relations" msgstr "Opname/gebruiker-relaties" -#: core/models.py:700 +#: core/models.py:706 msgid "This user is already in this recording." msgstr "Deze gebruiker is al in deze opname." -#: core/models.py:706 +#: core/models.py:712 msgid "This team is already in this recording." msgstr "Dit team is al in deze opname." -#: core/models.py:712 +#: core/models.py:718 msgid "Either user or team must be set, not both." msgstr "Ofwel gebruiker of team moet worden ingesteld, niet beide." -#: core/models.py:729 +#: core/models.py:735 msgid "Create rooms" msgstr "Ruimtes aanmaken" -#: core/models.py:730 +#: core/models.py:736 msgid "List rooms" msgstr "Ruimtes weergeven" -#: core/models.py:731 +#: core/models.py:737 msgid "Retrieve room details" msgstr "Details van een ruimte ophalen" -#: core/models.py:732 +#: core/models.py:738 msgid "Update rooms" msgstr "Ruimtes bijwerken" -#: core/models.py:733 +#: core/models.py:739 msgid "Delete rooms" msgstr "Ruimtes verwijderen" -#: core/models.py:746 +#: core/models.py:752 msgid "Application name" msgstr "Naam van de applicatie" -#: core/models.py:747 +#: core/models.py:753 msgid "Descriptive name for this application." msgstr "Beschrijvende naam voor deze applicatie." -#: core/models.py:757 +#: core/models.py:763 msgid "Hashed on Save. Copy it now if this is a new secret." msgstr "" "Wordt gehasht bij het opslaan. Kopieer het nu als dit een nieuw geheim is." -#: core/models.py:768 +#: core/models.py:774 msgid "Application" msgstr "Applicatie" -#: core/models.py:769 +#: core/models.py:775 msgid "Applications" msgstr "Applicaties" -#: core/models.py:792 +#: core/models.py:798 msgid "Enter a valid domain" msgstr "Voer een geldig domein in" -#: core/models.py:795 +#: core/models.py:801 msgid "Domain" msgstr "Domein" -#: core/models.py:796 +#: core/models.py:802 msgid "Email domain this application can act on behalf of." msgstr "E-maildomein namens welke deze applicatie kan handelen." -#: core/models.py:808 +#: core/models.py:814 msgid "Application domain" msgstr "Applicatiedomein" -#: core/models.py:809 +#: core/models.py:815 msgid "Application domains" msgstr "Applicatiedomeinen"