Compare commits
No commits in common. "1a1e41211b0557c523beaed9cd1586779c6d7fef" and "0e0a4d1e6b6278614d7e4d47165081e0f7731f5b" have entirely different histories.
1a1e41211b
...
0e0a4d1e6b
|
@ -30,7 +30,7 @@ API_PATHS = {
|
||||||
'mailbox-detail': 'mailboxes/{pk}/',
|
'mailbox-detail': 'mailboxes/{pk}/',
|
||||||
'mailbox-password': 'mailboxes/{pk}/set_password/',
|
'mailbox-password': 'mailboxes/{pk}/set_password/',
|
||||||
'mailinglist-list': 'lists/',
|
'mailinglist-list': 'lists/',
|
||||||
# 'saas-list': 'saas/',
|
'saas-list': 'saas/',
|
||||||
'website-list': 'websites/',
|
'website-list': 'websites/',
|
||||||
|
|
||||||
# other
|
# other
|
||||||
|
|
Binary file not shown.
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-11-18 10:57+0000\n"
|
"POT-Creation-Date: 2024-11-08 10:19+0000\n"
|
||||||
"PO-Revision-Date: 2021-11-25 12:53+0100\n"
|
"PO-Revision-Date: 2021-11-25 12:53+0100\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
|
@ -30,19 +30,19 @@ msgstr "No trobem cap objecte que coincideixi amb la teva consulta"
|
||||||
msgid "No mailbox found matching the query"
|
msgid "No mailbox found matching the query"
|
||||||
msgstr "No trobem cap bústia que coincideixi amb la teva consulta"
|
msgstr "No trobem cap bústia que coincideixi amb la teva consulta"
|
||||||
|
|
||||||
#: forms.py:42 forms.py:111 saas/forms.py:100
|
#: forms.py:42 forms.py:111
|
||||||
msgid "The two password fields didn’t match."
|
msgid "The two password fields didn’t match."
|
||||||
msgstr "Les contrasenyes introduïdes no coincideixen."
|
msgstr "Les contrasenyes introduïdes no coincideixen."
|
||||||
|
|
||||||
#: forms.py:45 forms.py:115 saas/forms.py:103
|
#: forms.py:45 forms.py:115
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Contrasenya"
|
msgstr "Contrasenya"
|
||||||
|
|
||||||
#: forms.py:50 forms.py:120 saas/forms.py:108
|
#: forms.py:50 forms.py:120
|
||||||
msgid "Password confirmation"
|
msgid "Password confirmation"
|
||||||
msgstr "Confirma la contrasenya"
|
msgstr "Confirma la contrasenya"
|
||||||
|
|
||||||
#: forms.py:53 forms.py:123 saas/forms.py:111
|
#: forms.py:53 forms.py:123
|
||||||
msgid "Enter the same password as before, for verification."
|
msgid "Enter the same password as before, for verification."
|
||||||
msgstr "Introdueix la mateixa contrasenya per verificar-la."
|
msgstr "Introdueix la mateixa contrasenya per verificar-la."
|
||||||
|
|
||||||
|
@ -141,60 +141,57 @@ msgstr ""
|
||||||
"Si tens algun servei SaaS (Software as a Service) contractat, aquí trobaràs "
|
"Si tens algun servei SaaS (Software as a Service) contractat, aquí trobaràs "
|
||||||
"els seus detalls de configuració."
|
"els seus detalls de configuració."
|
||||||
|
|
||||||
#: saas/forms.py:17
|
#: saas/forms.py:16
|
||||||
msgid "Site URL"
|
msgid "Site URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: saas/forms.py:51
|
#: saas/forms.py:50
|
||||||
msgid ""
|
msgid ""
|
||||||
"ID of this blog used by WordPress, the only attribute that doesn't change."
|
"ID of this blog used by WordPress, the only attribute that doesn't change."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ID d'aquest blog utilitzat per WordPress, l'únic atribut que no canvia."
|
"ID d'aquest blog utilitzat per WordPress, l'únic atribut que no canvia."
|
||||||
|
|
||||||
#: saas/forms.py:52 templates/musician/address_list.html:25
|
#: saas/forms.py:51 templates/musician/address_list.html:25
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Correu electrònic"
|
msgstr "Correu electrònic"
|
||||||
|
|
||||||
#: saas/forms.py:53
|
#: saas/forms.py:52
|
||||||
msgid ""
|
msgid ""
|
||||||
"A new user will be created if the above email address is not in the database."
|
"A new user will be created if the above email address is not in the database."
|
||||||
"<br>The username and password will be mailed to this email address."
|
"<br>The username and password will be mailed to this email address."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Es crearà un nou usuari si l'adreça de correu electrònic anterior no és a la "
|
"Es crearà un nou usuari si l'adreça de correu electrònic anterior no és a la base de dades."
|
||||||
"base de dades.<br>El nom d'usuari i la contrasenya s'enviaran a aquesta "
|
"<br>El nom d'usuari i la contrasenya s'enviaran a aquesta adreça de correu electrònic."
|
||||||
"adreça de correu electrònic."
|
|
||||||
|
|
||||||
#: saas/forms.py:90 saas/forms.py:124
|
#: saas/forms.py:89
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Suggestion: %s"
|
msgid "Suggestion: %s"
|
||||||
msgstr "Suggerimet: %s"
|
msgstr "Suggerimet: %s"
|
||||||
|
|
||||||
#. Translators: This message appears on the page title
|
#. Translators: This message appears on the page title
|
||||||
#: saas/views.py:26 saas/views.py:40 templates/musician/domain_list.html:51
|
#: saas/views.py:24 saas/views.py:38 templates/musician/domain_list.html:51
|
||||||
msgid "Software as a Service"
|
msgid "Software as a Service"
|
||||||
msgstr "Software as a Service"
|
msgstr "Software as a Service"
|
||||||
|
|
||||||
#: saas/views.py:27
|
#: saas/views.py:25
|
||||||
msgid "Nextcloud Service"
|
msgid "Nextcloud Service"
|
||||||
msgstr "Servei Nextcloud"
|
msgstr "Servei Nextcloud"
|
||||||
|
|
||||||
#: saas/views.py:28
|
#: saas/views.py:26
|
||||||
msgid "Members can manage their Nextcloud users in this section."
|
msgid "Members can manage their Nextcloud users in this section."
|
||||||
msgstr ""
|
msgstr "Els socis/ies poden gestionar els seus usuaris de Nextcloud en aquesta secció."
|
||||||
"Els socis/ies poden gestionar els seus usuaris de Nextcloud en aquesta "
|
|
||||||
"secció."
|
|
||||||
|
|
||||||
#: saas/views.py:41
|
#: saas/views.py:39
|
||||||
msgid "Community WordPress"
|
msgid "Community WordPress"
|
||||||
msgstr "WordPress comunitari"
|
msgstr "WordPress comunitari"
|
||||||
|
|
||||||
#: saas/views.py:42
|
#: saas/views.py:40
|
||||||
msgid ""
|
msgid ""
|
||||||
"Pangea's multisite WordPress service. Members can have their WordPress on "
|
"Pangea's multisite WordPress service. Members can have their WordPress on "
|
||||||
"this community WordPress hosted and maintained by Pangea."
|
"this community WordPress hosted and maintained by Pangea."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Servei de Wordpress multisite de Pangea. Els socis/ies poden tenir el seu WP "
|
"Servei de Wordpress multisite de Pangea. "
|
||||||
"en aquest WP comunitari alltijat i mantigut per Pangea."
|
"Els socis/ies poden tenir el seu WP en aquest WP comunitari alltijat i mantigut per Pangea."
|
||||||
|
|
||||||
#: templates/auth/login.html:59
|
#: templates/auth/login.html:59
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
|
@ -244,7 +241,7 @@ msgstr "AVÍS: Aquesta acció es irreversible."
|
||||||
#: templates/musician/record_check_delete.html:11
|
#: templates/musician/record_check_delete.html:11
|
||||||
#: templates/musician/record_form.html:16
|
#: templates/musician/record_form.html:16
|
||||||
#: templates/musician/saas_check_delete.html:9
|
#: templates/musician/saas_check_delete.html:9
|
||||||
#: templates/musician/saas_nextcloud_form.html:36
|
#: templates/musician/saas_nextcloud_form.html:30
|
||||||
#: templates/musician/saas_wordpress_form.html:31
|
#: templates/musician/saas_wordpress_form.html:31
|
||||||
#: templates/musician/systemuser_change_password.html:11
|
#: templates/musician/systemuser_change_password.html:11
|
||||||
#: templates/musician/webapps/webapp_form.html:11
|
#: templates/musician/webapps/webapp_form.html:11
|
||||||
|
@ -266,7 +263,7 @@ msgstr "Cancel·lar"
|
||||||
#: templates/musician/record_check_delete.html:10
|
#: templates/musician/record_check_delete.html:10
|
||||||
#: templates/musician/record_form.html:20
|
#: templates/musician/record_form.html:20
|
||||||
#: templates/musician/saas_check_delete.html:10
|
#: templates/musician/saas_check_delete.html:10
|
||||||
#: templates/musician/saas_nextcloud_form.html:41
|
#: templates/musician/saas_nextcloud_form.html:35
|
||||||
#: templates/musician/saas_wordpress_form.html:35
|
#: templates/musician/saas_wordpress_form.html:35
|
||||||
#: templates/musician/webapps/webapp_form.html:15
|
#: templates/musician/webapps/webapp_form.html:15
|
||||||
#: templates/musician/webapps/webappoption_check_delete.html:10
|
#: templates/musician/webapps/webappoption_check_delete.html:10
|
||||||
|
@ -280,7 +277,7 @@ msgstr "Esborrar"
|
||||||
#: templates/musician/mailinglist_form.html:31
|
#: templates/musician/mailinglist_form.html:31
|
||||||
#: templates/musician/nextcloud_change_password.html:12
|
#: templates/musician/nextcloud_change_password.html:12
|
||||||
#: templates/musician/record_form.html:17
|
#: templates/musician/record_form.html:17
|
||||||
#: templates/musician/saas_nextcloud_form.html:37
|
#: templates/musician/saas_nextcloud_form.html:31
|
||||||
#: templates/musician/saas_wordpress_form.html:32
|
#: templates/musician/saas_wordpress_form.html:32
|
||||||
#: templates/musician/systemuser_change_password.html:12
|
#: templates/musician/systemuser_change_password.html:12
|
||||||
#: templates/musician/webapps/webapp_form.html:12
|
#: templates/musician/webapps/webapp_form.html:12
|
||||||
|
@ -570,7 +567,7 @@ msgstr "Adreces de correu"
|
||||||
#: templates/musician/mailbox_change_password.html:5
|
#: templates/musician/mailbox_change_password.html:5
|
||||||
#: templates/musician/mailbox_form.html:24
|
#: templates/musician/mailbox_form.html:24
|
||||||
#: templates/musician/nextcloud_change_password.html:5
|
#: templates/musician/nextcloud_change_password.html:5
|
||||||
#: templates/musician/saas_nextcloud_form.html:40
|
#: templates/musician/saas_nextcloud_form.html:34
|
||||||
#: templates/musician/systemuser_change_password.html:5
|
#: templates/musician/systemuser_change_password.html:5
|
||||||
#: templates/musician/webapps/webappuser_change_password.html:5
|
#: templates/musician/webapps/webappuser_change_password.html:5
|
||||||
msgid "Change password"
|
msgid "Change password"
|
||||||
|
@ -588,7 +585,6 @@ msgstr ""
|
||||||
"Tots els missatges <strong>s'esborraran i no es podran recuperar</strong>."
|
"Tots els missatges <strong>s'esborraran i no es podran recuperar</strong>."
|
||||||
|
|
||||||
#: templates/musician/mailbox_form.html:9
|
#: templates/musician/mailbox_form.html:9
|
||||||
#: templates/musician/saas_nextcloud_form.html:28
|
|
||||||
msgid "Warning!"
|
msgid "Warning!"
|
||||||
msgstr "Atenció!"
|
msgstr "Atenció!"
|
||||||
|
|
||||||
|
@ -743,23 +739,10 @@ msgstr "Actualitzar SaaS"
|
||||||
|
|
||||||
#: templates/musician/saas_nextcloud_form.html:22
|
#: templates/musician/saas_nextcloud_form.html:22
|
||||||
#: templates/musician/saas_wordpress_form.html:22
|
#: templates/musician/saas_wordpress_form.html:22
|
||||||
|
|
||||||
msgid "Create SaaS"
|
msgid "Create SaaS"
|
||||||
msgstr "Crear SaaS"
|
msgstr "Crear SaaS"
|
||||||
|
|
||||||
#: templates/musician/saas_nextcloud_form.html:28
|
|
||||||
msgid ""
|
|
||||||
"You have reached the limit of Nextcloud users of your subscription so "
|
|
||||||
"<strong>extra fees</strong> may apply."
|
|
||||||
msgstr ""
|
|
||||||
"Has assolit el límit d'usuaris Nextcloud de la teva subscripció, els nous "
|
|
||||||
"usuaris poden implicar <strong>costos addicionals</strong>."
|
|
||||||
|
|
||||||
#: templates/musician/saas_nextcloud_list.html:57
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "SFTP user"
|
|
||||||
msgid "New user"
|
|
||||||
msgstr "Usuari SFTP"
|
|
||||||
|
|
||||||
#: templates/musician/systemuser_list.html:6
|
#: templates/musician/systemuser_list.html:6
|
||||||
msgid ""
|
msgid ""
|
||||||
"The main user is your system's main user on each server. You'll be able to "
|
"The main user is your system's main user on each server. You'll be able to "
|
||||||
|
|
Binary file not shown.
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-11-18 11:01+0000\n"
|
"POT-Creation-Date: 2024-11-08 09:37+0000\n"
|
||||||
"PO-Revision-Date: 2021-11-25 12:53+0100\n"
|
"PO-Revision-Date: 2021-11-25 12:53+0100\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
|
@ -30,19 +30,19 @@ msgstr "No hay objetos que coincidan con tu búsqueda"
|
||||||
msgid "No mailbox found matching the query"
|
msgid "No mailbox found matching the query"
|
||||||
msgstr "No hay buzones de correo que coincidan con tu búsqueda"
|
msgstr "No hay buzones de correo que coincidan con tu búsqueda"
|
||||||
|
|
||||||
#: forms.py:42 forms.py:111 saas/forms.py:100
|
#: forms.py:42 forms.py:111
|
||||||
msgid "The two password fields didn’t match."
|
msgid "The two password fields didn’t match."
|
||||||
msgstr "Las contraseñas introducidas no coinciden."
|
msgstr "Las contraseñas introducidas no coinciden."
|
||||||
|
|
||||||
#: forms.py:45 forms.py:115 saas/forms.py:103
|
#: forms.py:45 forms.py:115
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Contraseña"
|
msgstr "Contraseña"
|
||||||
|
|
||||||
#: forms.py:50 forms.py:120 saas/forms.py:108
|
#: forms.py:50 forms.py:120
|
||||||
msgid "Password confirmation"
|
msgid "Password confirmation"
|
||||||
msgstr "Confirma la contraseña"
|
msgstr "Confirma la contraseña"
|
||||||
|
|
||||||
#: forms.py:53 forms.py:123 saas/forms.py:111
|
#: forms.py:53 forms.py:123
|
||||||
msgid "Enter the same password as before, for verification."
|
msgid "Enter the same password as before, for verification."
|
||||||
msgstr "Introduce la misma contraseña para verificarla"
|
msgstr "Introduce la misma contraseña para verificarla"
|
||||||
|
|
||||||
|
@ -143,59 +143,57 @@ msgstr ""
|
||||||
"Si tienes algún servicio SaaS (Software as a Service) contratado, aquí "
|
"Si tienes algún servicio SaaS (Software as a Service) contratado, aquí "
|
||||||
"encontrarás sus detalles de configuración."
|
"encontrarás sus detalles de configuración."
|
||||||
|
|
||||||
#: saas/forms.py:17
|
#: saas/forms.py:16
|
||||||
msgid "Site URL"
|
msgid "Site URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: saas/forms.py:51
|
#: saas/forms.py:50
|
||||||
msgid ""
|
msgid ""
|
||||||
"ID of this blog used by WordPress, the only attribute that doesn't change."
|
"ID of this blog used by WordPress, the only attribute that doesn't change."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ID de este blog utilizado por WordPress, el único atributo que no cambia."
|
"ID de este blog utilizado por WordPress, el único atributo que no cambia."
|
||||||
|
|
||||||
#: saas/forms.py:52 templates/musician/address_list.html:25
|
#: saas/forms.py:51 templates/musician/address_list.html:25
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Correo electrónico"
|
msgstr "Correo electrónico"
|
||||||
|
|
||||||
#: saas/forms.py:53
|
#: saas/forms.py:52
|
||||||
msgid ""
|
msgid ""
|
||||||
"A new user will be created if the above email address is not in the database."
|
"A new user will be created if the above email address is not in the database."
|
||||||
"<br>The username and password will be mailed to this email address."
|
"<br>The username and password will be mailed to this email address."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Se creará un nuevo usuario si la dirección de correo electrónico anterior no "
|
"Se creará un nuevo usuario si la dirección de correo electrónico anterior no está en la base de datos."
|
||||||
"está en la base de datos.<br>El nombre de usuario y la contraseña se "
|
"<br>El nombre de usuario y la contraseña se enviarán a esta dirección de correo electrónico."
|
||||||
"enviarán a esta dirección de correo electrónico."
|
|
||||||
|
|
||||||
#: saas/forms.py:90 saas/forms.py:124
|
#: saas/forms.py:89
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Suggestion: %s"
|
msgid "Suggestion: %s"
|
||||||
msgstr "Sugerencia: %s"
|
msgstr "Sugerencia: %s"
|
||||||
|
|
||||||
#. Translators: This message appears on the page title
|
#. Translators: This message appears on the page title
|
||||||
#: saas/views.py:26 saas/views.py:40 templates/musician/domain_list.html:51
|
#: saas/views.py:24 saas/views.py:38 templates/musician/domain_list.html:51
|
||||||
msgid "Software as a Service"
|
msgid "Software as a Service"
|
||||||
msgstr "Software as a Service"
|
msgstr "Software as a Service"
|
||||||
|
|
||||||
#: saas/views.py:27
|
#: saas/views.py:25
|
||||||
msgid "Nextcloud Service"
|
msgid "Nextcloud Service"
|
||||||
msgstr "Servicio Nextcloud"
|
msgstr "Servicio Nextcloud"
|
||||||
|
|
||||||
#: saas/views.py:28
|
#: saas/views.py:26
|
||||||
msgid "Members can manage their Nextcloud users in this section."
|
msgid "Members can manage their Nextcloud users in this section."
|
||||||
msgstr ""
|
msgstr "Los miembros pueden gestionar sus usuarios de Nextcloud en esta sección."
|
||||||
"Los miembros pueden gestionar sus usuarios de Nextcloud en esta sección."
|
|
||||||
|
|
||||||
#: saas/views.py:41
|
#: saas/views.py:39
|
||||||
msgid "Community WordPress"
|
msgid "Community WordPress"
|
||||||
msgstr "WordPress Comunitario"
|
msgstr "WordPress Comunitario"
|
||||||
|
|
||||||
#: saas/views.py:42
|
#: saas/views.py:40
|
||||||
msgid ""
|
msgid ""
|
||||||
"Pangea's multisite WordPress service. Members can have their WordPress on "
|
"Pangea's multisite WordPress service. Members can have their WordPress on "
|
||||||
"this community WordPress hosted and maintained by Pangea."
|
"this community WordPress hosted and maintained by Pangea."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Servicio de WordPress multisitio de Pangea. Los socios pueden tener su "
|
"Servicio de WordPress multisitio de Pangea. "
|
||||||
"WordPress en este WordPress comunitario alojado y mantenido por Pangea."
|
"Los socios pueden tener su WordPress en este WordPress comunitario alojado y mantenido por Pangea."
|
||||||
|
|
||||||
#: templates/auth/login.html:59
|
#: templates/auth/login.html:59
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
|
@ -246,7 +244,7 @@ msgstr "AVISO: Esta acción es irreversible."
|
||||||
#: templates/musician/record_check_delete.html:11
|
#: templates/musician/record_check_delete.html:11
|
||||||
#: templates/musician/record_form.html:16
|
#: templates/musician/record_form.html:16
|
||||||
#: templates/musician/saas_check_delete.html:9
|
#: templates/musician/saas_check_delete.html:9
|
||||||
#: templates/musician/saas_nextcloud_form.html:36
|
#: templates/musician/saas_nextcloud_form.html:30
|
||||||
#: templates/musician/saas_wordpress_form.html:31
|
#: templates/musician/saas_wordpress_form.html:31
|
||||||
#: templates/musician/systemuser_change_password.html:11
|
#: templates/musician/systemuser_change_password.html:11
|
||||||
#: templates/musician/webapps/webapp_form.html:11
|
#: templates/musician/webapps/webapp_form.html:11
|
||||||
|
@ -268,7 +266,7 @@ msgstr "Cancelar"
|
||||||
#: templates/musician/record_check_delete.html:10
|
#: templates/musician/record_check_delete.html:10
|
||||||
#: templates/musician/record_form.html:20
|
#: templates/musician/record_form.html:20
|
||||||
#: templates/musician/saas_check_delete.html:10
|
#: templates/musician/saas_check_delete.html:10
|
||||||
#: templates/musician/saas_nextcloud_form.html:41
|
#: templates/musician/saas_nextcloud_form.html:35
|
||||||
#: templates/musician/saas_wordpress_form.html:35
|
#: templates/musician/saas_wordpress_form.html:35
|
||||||
#: templates/musician/webapps/webapp_form.html:15
|
#: templates/musician/webapps/webapp_form.html:15
|
||||||
#: templates/musician/webapps/webappoption_check_delete.html:10
|
#: templates/musician/webapps/webappoption_check_delete.html:10
|
||||||
|
@ -282,7 +280,7 @@ msgstr "Borrar"
|
||||||
#: templates/musician/mailinglist_form.html:31
|
#: templates/musician/mailinglist_form.html:31
|
||||||
#: templates/musician/nextcloud_change_password.html:12
|
#: templates/musician/nextcloud_change_password.html:12
|
||||||
#: templates/musician/record_form.html:17
|
#: templates/musician/record_form.html:17
|
||||||
#: templates/musician/saas_nextcloud_form.html:37
|
#: templates/musician/saas_nextcloud_form.html:31
|
||||||
#: templates/musician/saas_wordpress_form.html:32
|
#: templates/musician/saas_wordpress_form.html:32
|
||||||
#: templates/musician/systemuser_change_password.html:12
|
#: templates/musician/systemuser_change_password.html:12
|
||||||
#: templates/musician/webapps/webapp_form.html:12
|
#: templates/musician/webapps/webapp_form.html:12
|
||||||
|
@ -573,7 +571,7 @@ msgstr "Direcciones de correo"
|
||||||
#: templates/musician/mailbox_change_password.html:5
|
#: templates/musician/mailbox_change_password.html:5
|
||||||
#: templates/musician/mailbox_form.html:24
|
#: templates/musician/mailbox_form.html:24
|
||||||
#: templates/musician/nextcloud_change_password.html:5
|
#: templates/musician/nextcloud_change_password.html:5
|
||||||
#: templates/musician/saas_nextcloud_form.html:40
|
#: templates/musician/saas_nextcloud_form.html:34
|
||||||
#: templates/musician/systemuser_change_password.html:5
|
#: templates/musician/systemuser_change_password.html:5
|
||||||
#: templates/musician/webapps/webappuser_change_password.html:5
|
#: templates/musician/webapps/webappuser_change_password.html:5
|
||||||
msgid "Change password"
|
msgid "Change password"
|
||||||
|
@ -591,7 +589,6 @@ msgstr ""
|
||||||
"Todos los mensajes <strong>se borrarán y no se podrán recuperar</strong>."
|
"Todos los mensajes <strong>se borrarán y no se podrán recuperar</strong>."
|
||||||
|
|
||||||
#: templates/musician/mailbox_form.html:9
|
#: templates/musician/mailbox_form.html:9
|
||||||
#: templates/musician/saas_nextcloud_form.html:28
|
|
||||||
msgid "Warning!"
|
msgid "Warning!"
|
||||||
msgstr "¡Aviso!"
|
msgstr "¡Aviso!"
|
||||||
|
|
||||||
|
@ -751,20 +748,6 @@ msgstr "Actualizar SaaS"
|
||||||
msgid "Create SaaS"
|
msgid "Create SaaS"
|
||||||
msgstr "Crear SaaS"
|
msgstr "Crear SaaS"
|
||||||
|
|
||||||
#: templates/musician/saas_nextcloud_form.html:28
|
|
||||||
msgid ""
|
|
||||||
"You have reached the limit of Nextcloud users of your subscription so "
|
|
||||||
"<strong>extra fees</strong> may apply."
|
|
||||||
msgstr ""
|
|
||||||
"Has alcanzado el límite de usuarios Nextcloud de tu suscripción, los nuevos "
|
|
||||||
"usuarios pueden suponer <strong>costes adicionales</strong>."
|
|
||||||
|
|
||||||
#: templates/musician/saas_nextcloud_list.html:57
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "SFTP user"
|
|
||||||
msgid "New user"
|
|
||||||
msgstr "Usuario SFTP"
|
|
||||||
|
|
||||||
#: templates/musician/systemuser_list.html:6
|
#: templates/musician/systemuser_list.html:6
|
||||||
msgid ""
|
msgid ""
|
||||||
"The main user is your system's main user on each server. You'll be able to "
|
"The main user is your system's main user on each server. You'll be able to "
|
||||||
|
|
|
@ -6,7 +6,6 @@ from django.views.generic.base import ContextMixin
|
||||||
from orchestra import get_version
|
from orchestra import get_version
|
||||||
|
|
||||||
from . import api
|
from . import api
|
||||||
from .settings import LANGUAGES
|
|
||||||
from .auth import SESSION_KEY_TOKEN
|
from .auth import SESSION_KEY_TOKEN
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,8 +29,7 @@ class CustomContextMixin(ContextMixin):
|
||||||
context.update({
|
context.update({
|
||||||
'services_menu': services_menu,
|
'services_menu': services_menu,
|
||||||
'version': get_version(),
|
'version': get_version(),
|
||||||
# 'languages': settings.LANGUAGES,
|
'languages': settings.LANGUAGES,
|
||||||
'languages': LANGUAGES,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return context
|
return context
|
||||||
|
|
|
@ -4,7 +4,6 @@ from orchestra.forms.widgets import SpanWidget
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from orchestra.utils.python import random_ascii
|
from orchestra.utils.python import random_ascii
|
||||||
from django.core.exceptions import ValidationError
|
|
||||||
|
|
||||||
from django.forms.widgets import HiddenInput
|
from django.forms.widgets import HiddenInput
|
||||||
|
|
||||||
|
@ -93,50 +92,3 @@ class NextcloudChangePasswordForm(ChangePasswordForm):
|
||||||
password = self.cleaned_data.get("password")
|
password = self.cleaned_data.get("password")
|
||||||
self.fields['password'] = password
|
self.fields['password'] = password
|
||||||
self.instance.set_password(password)
|
self.instance.set_password(password)
|
||||||
|
|
||||||
|
|
||||||
class NextcloudCreateForm(forms.ModelForm):
|
|
||||||
error_messages = {
|
|
||||||
'password_mismatch': _('The two password fields didn’t match.'),
|
|
||||||
}
|
|
||||||
password = forms.CharField(
|
|
||||||
label=_("Password"),
|
|
||||||
strip=False,
|
|
||||||
widget=forms.PasswordInput(attrs={'autocomplete': 'new-password'}),
|
|
||||||
)
|
|
||||||
password2 = forms.CharField(
|
|
||||||
label=_("Password confirmation"),
|
|
||||||
widget=forms.PasswordInput(attrs={'autocomplete': 'new-password'}),
|
|
||||||
strip=False,
|
|
||||||
help_text=_("Enter the same password as before, for verification."),
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
fields = ("service", "name", "password", "password2", "account")
|
|
||||||
model = SaaS
|
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
user = kwargs.pop('user')
|
|
||||||
super().__init__(*args, **kwargs)
|
|
||||||
self.fields['account'].initial = user
|
|
||||||
self.fields['account'].widget = HiddenInput()
|
|
||||||
self.fields['service'].choices = [("nextcloud","nextCloud")]
|
|
||||||
self.fields['password'].help_text = _("Suggestion: %s") % random_ascii(20)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def clean_password2(self):
|
|
||||||
password = self.cleaned_data.get("password")
|
|
||||||
password2 = self.cleaned_data.get("password2")
|
|
||||||
if password and password2 and password != password2:
|
|
||||||
raise ValidationError(
|
|
||||||
self.error_messages['password_mismatch'],
|
|
||||||
code='password_mismatch',
|
|
||||||
)
|
|
||||||
return password
|
|
||||||
|
|
||||||
def clean_password(self):
|
|
||||||
password = self.cleaned_data.get("password")
|
|
||||||
self.fields['password'] = password
|
|
||||||
self.instance.set_password(password)
|
|
||||||
|
|
||||||
|
|
|
@ -12,11 +12,9 @@ from orchestra.contrib.musician.mixins import (CustomContextMixin, ExtendedPagin
|
||||||
UserTokenRequiredMixin)
|
UserTokenRequiredMixin)
|
||||||
|
|
||||||
from .forms import ( NextcloudChangePasswordForm, SaasNextcloudUpdateForm,
|
from .forms import ( NextcloudChangePasswordForm, SaasNextcloudUpdateForm,
|
||||||
SaasWordpressUpdateForm, NextcloudCreateForm )
|
SaasWordpressUpdateForm )
|
||||||
from orchestra.contrib.saas.models import SaaS
|
from orchestra.contrib.saas.models import SaaS
|
||||||
|
|
||||||
from orchestra.contrib.musician.settings import ALLOWED_RESOURCES
|
|
||||||
|
|
||||||
|
|
||||||
class SaasNextcloudListView(CustomContextMixin, UserTokenRequiredMixin, ListView):
|
class SaasNextcloudListView(CustomContextMixin, UserTokenRequiredMixin, ListView):
|
||||||
model = SaaS
|
model = SaaS
|
||||||
|
@ -90,36 +88,10 @@ class NextcloudChangePasswordView(CustomContextMixin, UserTokenRequiredMixin, Up
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return self.model.objects.filter(account=self.request.user)
|
return self.model.objects.filter(account=self.request.user)
|
||||||
|
|
||||||
|
|
||||||
class SaasDeleteView(CustomContextMixin, UserTokenRequiredMixin, DeleteView):
|
class SaasDeleteView(CustomContextMixin, UserTokenRequiredMixin, DeleteView):
|
||||||
template_name = "musician/saas_check_delete.html"
|
template_name = "musician/saas_check_delete.html"
|
||||||
model = SaaS
|
model = SaaS
|
||||||
success_url = reverse_lazy("musician:saas-nextcloud-list")
|
success_url = reverse_lazy("musician:saas-nextcloud-list")
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return self.model.objects.filter(account=self.request.user)
|
return self.model.objects.filter(account=self.request.user)
|
||||||
|
|
||||||
|
|
||||||
class NextcloudCreateView(CustomContextMixin, UserTokenRequiredMixin, CreateView):
|
|
||||||
model = SaaS
|
|
||||||
template_name = "musician/saas_nextcloud_form.html"
|
|
||||||
form_class = NextcloudCreateForm
|
|
||||||
success_url = reverse_lazy("musician:saas-nextcloud-list")
|
|
||||||
|
|
||||||
def get_form_kwargs(self):
|
|
||||||
kwargs = super().get_form_kwargs()
|
|
||||||
kwargs['user'] = self.request.user
|
|
||||||
return kwargs
|
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
|
||||||
context = super().get_context_data(**kwargs)
|
|
||||||
context.update({
|
|
||||||
'extra_user': self.is_extra_user(context['profile']),
|
|
||||||
})
|
|
||||||
return context
|
|
||||||
|
|
||||||
def is_extra_user(self, profile):
|
|
||||||
qs = SaaS.objects.filter(account=profile, service="nextcloud")
|
|
||||||
number_of_users = len(qs)
|
|
||||||
allowed_users = ALLOWED_RESOURCES[profile.type]['nextcloud']
|
|
||||||
return number_of_users >= allowed_users
|
|
|
@ -70,9 +70,3 @@ MUSICIAN_WEBSITES_ENABLE_GROUP_DIRECTIVE = Setting('MUSICIAN_WEBSITES_ENABLE_GRO
|
||||||
),
|
),
|
||||||
help_text="Valid groups: HTTPD, ModSecurity, SSL, SaaS"
|
help_text="Valid groups: HTTPD, ModSecurity, SSL, SaaS"
|
||||||
)
|
)
|
||||||
|
|
||||||
LANGUAGES = [
|
|
||||||
('en', 'English'),
|
|
||||||
('es', 'Spanish'),
|
|
||||||
('ca', 'Catalan'),
|
|
||||||
]
|
|
|
@ -23,12 +23,6 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
{% if extra_user %}
|
|
||||||
<div class="alert alert-warning alert-dismissible fade show" role="alert">
|
|
||||||
<strong>{% trans "Warning!" %}</strong> {% trans "You have reached the limit of Nextcloud users of your subscription so <strong>extra fees</strong> may apply." %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<form method="post">
|
<form method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% bootstrap_form form %}
|
{% bootstrap_form form %}
|
||||||
|
|
|
@ -54,5 +54,4 @@
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<a class="btn btn-primary mt-4 mb-4" href="{% url 'musician:saas-nextcloud-create' %}">{% trans "New user" %}</a>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -53,7 +53,6 @@ urlpatterns = [
|
||||||
path('saas/nextcloud/', views.SaasNextcloudListView.as_view(), name='saas-nextcloud-list'),
|
path('saas/nextcloud/', views.SaasNextcloudListView.as_view(), name='saas-nextcloud-list'),
|
||||||
path('saas/nextcloud/<int:pk>/', views.SaasNextcloudUpdateView.as_view(), name='saas-nextcloud-update'),
|
path('saas/nextcloud/<int:pk>/', views.SaasNextcloudUpdateView.as_view(), name='saas-nextcloud-update'),
|
||||||
path('saas/<int:pk>/nextcloud-change-password/', views.NextcloudChangePasswordView.as_view(), name='nextcloud-password'),
|
path('saas/<int:pk>/nextcloud-change-password/', views.NextcloudChangePasswordView.as_view(), name='nextcloud-password'),
|
||||||
path('saas/nextcloud/new/', views.NextcloudCreateView.as_view(), name='saas-nextcloud-create'),
|
|
||||||
path('saas/wordpress/', views.SaasWordpressListView.as_view(), name='saas-wordpress-list'),
|
path('saas/wordpress/', views.SaasWordpressListView.as_view(), name='saas-wordpress-list'),
|
||||||
path('saas/wordpress/<int:pk>/', views.SaasWordpressUpdateView.as_view(), name='saas-wordpress-update'),
|
path('saas/wordpress/<int:pk>/', views.SaasWordpressUpdateView.as_view(), name='saas-wordpress-update'),
|
||||||
path('saas/<int:pk>/delete/', views.SaasDeleteView.as_view(), name='saas-delete'),
|
path('saas/<int:pk>/delete/', views.SaasDeleteView.as_view(), name='saas-delete'),
|
||||||
|
|
Loading…
Reference in New Issue