diff --git a/taiga/locale/ca/LC_MESSAGES/django.po b/taiga/locale/ca/LC_MESSAGES/django.po index ed198ff2..da3a1146 100644 --- a/taiga/locale/ca/LC_MESSAGES/django.po +++ b/taiga/locale/ca/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: taiga-back\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-04-01 11:09+0200\n" +"POT-Creation-Date: 2016-04-05 19:23+0200\n" "PO-Revision-Date: 2016-03-30 10:59+0000\n" "Last-Translator: Alejandro Alonso Fernández \n" @@ -185,7 +185,7 @@ msgstr "" "està corrupte." #: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209 -#: taiga/hooks/api.py:68 taiga/projects/api.py:629 +#: taiga/hooks/api.py:68 taiga/projects/api.py:641 #: taiga/projects/issues/api.py:233 taiga/projects/mixins/ordering.py:58 #: taiga/projects/tasks/api.py:152 taiga/projects/tasks/api.py:174 #: taiga/projects/userstories/api.py:218 taiga/projects/userstories/api.py:238 @@ -1176,13 +1176,13 @@ msgstr "" msgid "The user must be already a project member" msgstr "" -#: taiga/projects/api.py:668 +#: taiga/projects/api.py:671 msgid "" "The project must have an owner and at least one of the users must be an " "active admin" msgstr "" -#: taiga/projects/api.py:708 +#: taiga/projects/api.py:705 msgid "You don't have permisions to see that." msgstr "No tens permisos per a veure açò." @@ -2394,6 +2394,14 @@ msgstr "Severitats" msgid "Roles" msgstr "Rols" +#: taiga/projects/services/members.py:147 taiga/users/services.py:625 +msgid "You have reached your current limit of memberships for private projects" +msgstr "" + +#: taiga/projects/services/members.py:151 taiga/users/services.py:634 +msgid "You have reached your current limit of memberships for public projects" +msgstr "" + #: taiga/projects/services/stats.py:196 msgid "Future sprint" msgstr "" @@ -3287,14 +3295,6 @@ msgstr "" msgid "You can't have more public projects" msgstr "" -#: taiga/users/services.py:625 -msgid "You have reached your current limit of memberships for private projects" -msgstr "" - -#: taiga/users/services.py:634 -msgid "You have reached your current limit of memberships for public projects" -msgstr "" - #: taiga/users/templates/emails/change_email-body-html.jinja:4 #, python-format msgid "" diff --git a/taiga/locale/de/LC_MESSAGES/django.po b/taiga/locale/de/LC_MESSAGES/django.po index 2fde1a47..1e58b906 100644 --- a/taiga/locale/de/LC_MESSAGES/django.po +++ b/taiga/locale/de/LC_MESSAGES/django.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: taiga-back\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-04-01 11:09+0200\n" +"POT-Creation-Date: 2016-04-05 19:23+0200\n" "PO-Revision-Date: 2016-03-30 10:59+0000\n" "Last-Translator: Alejandro Alonso Fernández \n" @@ -215,7 +215,7 @@ msgstr "" "haben, ist entweder kein Bild oder defekt." #: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209 -#: taiga/hooks/api.py:68 taiga/projects/api.py:629 +#: taiga/hooks/api.py:68 taiga/projects/api.py:641 #: taiga/projects/issues/api.py:233 taiga/projects/mixins/ordering.py:58 #: taiga/projects/tasks/api.py:152 taiga/projects/tasks/api.py:174 #: taiga/projects/userstories/api.py:218 taiga/projects/userstories/api.py:238 @@ -1366,13 +1366,13 @@ msgstr "" msgid "The user must be already a project member" msgstr "" -#: taiga/projects/api.py:668 +#: taiga/projects/api.py:671 msgid "" "The project must have an owner and at least one of the users must be an " "active admin" msgstr "" -#: taiga/projects/api.py:708 +#: taiga/projects/api.py:705 msgid "You don't have permisions to see that." msgstr "Sie haben keine Berechtigungen für diese Ansicht" @@ -2866,6 +2866,14 @@ msgstr "Gewichtung" msgid "Roles" msgstr "Rollen" +#: taiga/projects/services/members.py:147 taiga/users/services.py:625 +msgid "You have reached your current limit of memberships for private projects" +msgstr "" + +#: taiga/projects/services/members.py:151 taiga/users/services.py:634 +msgid "You have reached your current limit of memberships for public projects" +msgstr "" + #: taiga/projects/services/stats.py:196 msgid "Future sprint" msgstr "Zukünftiger Sprint" @@ -3812,14 +3820,6 @@ msgstr "" msgid "You can't have more public projects" msgstr "" -#: taiga/users/services.py:625 -msgid "You have reached your current limit of memberships for private projects" -msgstr "" - -#: taiga/users/services.py:634 -msgid "You have reached your current limit of memberships for public projects" -msgstr "" - #: taiga/users/templates/emails/change_email-body-html.jinja:4 #, python-format msgid "" diff --git a/taiga/locale/en/LC_MESSAGES/django.po b/taiga/locale/en/LC_MESSAGES/django.po index 6d00fcbd..8bfe1422 100644 --- a/taiga/locale/en/LC_MESSAGES/django.po +++ b/taiga/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: taiga-back\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-04-01 11:09+0200\n" +"POT-Creation-Date: 2016-04-05 19:23+0200\n" "PO-Revision-Date: 2015-03-25 20:09+0100\n" "Last-Translator: Taiga Dev Team \n" "Language-Team: Taiga Dev Team \n" @@ -176,7 +176,7 @@ msgid "" msgstr "" #: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209 -#: taiga/hooks/api.py:68 taiga/projects/api.py:629 +#: taiga/hooks/api.py:68 taiga/projects/api.py:641 #: taiga/projects/issues/api.py:233 taiga/projects/mixins/ordering.py:58 #: taiga/projects/tasks/api.py:152 taiga/projects/tasks/api.py:174 #: taiga/projects/userstories/api.py:218 taiga/projects/userstories/api.py:238 @@ -1148,13 +1148,13 @@ msgstr "" msgid "The user must be already a project member" msgstr "" -#: taiga/projects/api.py:668 +#: taiga/projects/api.py:671 msgid "" "The project must have an owner and at least one of the users must be an " "active admin" msgstr "" -#: taiga/projects/api.py:708 +#: taiga/projects/api.py:705 msgid "You don't have permisions to see that." msgstr "" @@ -2360,6 +2360,14 @@ msgstr "" msgid "Roles" msgstr "" +#: taiga/projects/services/members.py:147 taiga/users/services.py:625 +msgid "You have reached your current limit of memberships for private projects" +msgstr "" + +#: taiga/projects/services/members.py:151 taiga/users/services.py:634 +msgid "You have reached your current limit of memberships for public projects" +msgstr "" + #: taiga/projects/services/stats.py:196 msgid "Future sprint" msgstr "" @@ -3230,14 +3238,6 @@ msgstr "" msgid "You can't have more public projects" msgstr "" -#: taiga/users/services.py:625 -msgid "You have reached your current limit of memberships for private projects" -msgstr "" - -#: taiga/users/services.py:634 -msgid "You have reached your current limit of memberships for public projects" -msgstr "" - #: taiga/users/templates/emails/change_email-body-html.jinja:4 #, python-format msgid "" diff --git a/taiga/locale/es/LC_MESSAGES/django.po b/taiga/locale/es/LC_MESSAGES/django.po index f337481a..00a75a9c 100644 --- a/taiga/locale/es/LC_MESSAGES/django.po +++ b/taiga/locale/es/LC_MESSAGES/django.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: taiga-back\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-04-01 11:09+0200\n" +"POT-Creation-Date: 2016-04-05 19:23+0200\n" "PO-Revision-Date: 2016-03-30 10:59+0000\n" "Last-Translator: Alejandro Alonso Fernández \n" @@ -202,7 +202,7 @@ msgid "" msgstr "Adjunta una imagen válida. El fichero no es una imagen o está dañada." #: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209 -#: taiga/hooks/api.py:68 taiga/projects/api.py:629 +#: taiga/hooks/api.py:68 taiga/projects/api.py:641 #: taiga/projects/issues/api.py:233 taiga/projects/mixins/ordering.py:58 #: taiga/projects/tasks/api.py:152 taiga/projects/tasks/api.py:174 #: taiga/projects/userstories/api.py:218 taiga/projects/userstories/api.py:238 @@ -1346,7 +1346,7 @@ msgstr "El usuario no existe" msgid "The user must be already a project member" msgstr "" -#: taiga/projects/api.py:668 +#: taiga/projects/api.py:671 msgid "" "The project must have an owner and at least one of the users must be an " "active admin" @@ -1354,7 +1354,7 @@ msgstr "" "El proyecto debe tener un dueño y al menos uno de los usuarios debe ser un " "administrador activo" -#: taiga/projects/api.py:708 +#: taiga/projects/api.py:705 msgid "You don't have permisions to see that." msgstr "No tienes suficientes permisos para ver esto." @@ -2801,6 +2801,14 @@ msgstr "Gravedades" msgid "Roles" msgstr "Roles" +#: taiga/projects/services/members.py:147 taiga/users/services.py:625 +msgid "You have reached your current limit of memberships for private projects" +msgstr "" + +#: taiga/projects/services/members.py:151 taiga/users/services.py:634 +msgid "You have reached your current limit of memberships for public projects" +msgstr "" + #: taiga/projects/services/stats.py:196 msgid "Future sprint" msgstr "Sprint futuro" @@ -3750,14 +3758,6 @@ msgstr "No puedes tener más proyectos privados" msgid "You can't have more public projects" msgstr "No puedes tener más proyectos públicos" -#: taiga/users/services.py:625 -msgid "You have reached your current limit of memberships for private projects" -msgstr "" - -#: taiga/users/services.py:634 -msgid "You have reached your current limit of memberships for public projects" -msgstr "" - #: taiga/users/templates/emails/change_email-body-html.jinja:4 #, python-format msgid "" diff --git a/taiga/locale/fi/LC_MESSAGES/django.po b/taiga/locale/fi/LC_MESSAGES/django.po index b8031f95..6f73ebe2 100644 --- a/taiga/locale/fi/LC_MESSAGES/django.po +++ b/taiga/locale/fi/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: taiga-back\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-04-01 11:09+0200\n" +"POT-Creation-Date: 2016-04-05 19:23+0200\n" "PO-Revision-Date: 2016-03-30 10:59+0000\n" "Last-Translator: Alejandro Alonso Fernández \n" @@ -187,7 +187,7 @@ msgstr "" "vioittunut." #: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209 -#: taiga/hooks/api.py:68 taiga/projects/api.py:629 +#: taiga/hooks/api.py:68 taiga/projects/api.py:641 #: taiga/projects/issues/api.py:233 taiga/projects/mixins/ordering.py:58 #: taiga/projects/tasks/api.py:152 taiga/projects/tasks/api.py:174 #: taiga/projects/userstories/api.py:218 taiga/projects/userstories/api.py:238 @@ -1305,13 +1305,13 @@ msgstr "" msgid "The user must be already a project member" msgstr "" -#: taiga/projects/api.py:668 +#: taiga/projects/api.py:671 msgid "" "The project must have an owner and at least one of the users must be an " "active admin" msgstr "" -#: taiga/projects/api.py:708 +#: taiga/projects/api.py:705 msgid "You don't have permisions to see that." msgstr "Sinulla ei ole oikeuksia nähdä tätä." @@ -2763,6 +2763,14 @@ msgstr "Vakavuudet" msgid "Roles" msgstr "Roolit" +#: taiga/projects/services/members.py:147 taiga/users/services.py:625 +msgid "You have reached your current limit of memberships for private projects" +msgstr "" + +#: taiga/projects/services/members.py:151 taiga/users/services.py:634 +msgid "You have reached your current limit of memberships for public projects" +msgstr "" + #: taiga/projects/services/stats.py:196 msgid "Future sprint" msgstr "Tuleva kierros" @@ -3688,14 +3696,6 @@ msgstr "" msgid "You can't have more public projects" msgstr "" -#: taiga/users/services.py:625 -msgid "You have reached your current limit of memberships for private projects" -msgstr "" - -#: taiga/users/services.py:634 -msgid "You have reached your current limit of memberships for public projects" -msgstr "" - #: taiga/users/templates/emails/change_email-body-html.jinja:4 #, python-format msgid "" diff --git a/taiga/locale/fr/LC_MESSAGES/django.po b/taiga/locale/fr/LC_MESSAGES/django.po index c1a5dbd5..67c37f2f 100644 --- a/taiga/locale/fr/LC_MESSAGES/django.po +++ b/taiga/locale/fr/LC_MESSAGES/django.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: taiga-back\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-04-01 11:09+0200\n" +"POT-Creation-Date: 2016-04-05 19:23+0200\n" "PO-Revision-Date: 2016-03-30 10:59+0000\n" "Last-Translator: Alejandro Alonso Fernández \n" @@ -211,7 +211,7 @@ msgstr "" "image ou était une image corrompue." #: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209 -#: taiga/hooks/api.py:68 taiga/projects/api.py:629 +#: taiga/hooks/api.py:68 taiga/projects/api.py:641 #: taiga/projects/issues/api.py:233 taiga/projects/mixins/ordering.py:58 #: taiga/projects/tasks/api.py:152 taiga/projects/tasks/api.py:174 #: taiga/projects/userstories/api.py:218 taiga/projects/userstories/api.py:238 @@ -1318,13 +1318,13 @@ msgstr "L'utilisateur n'existe pas" msgid "The user must be already a project member" msgstr "" -#: taiga/projects/api.py:668 +#: taiga/projects/api.py:671 msgid "" "The project must have an owner and at least one of the users must be an " "active admin" msgstr "" -#: taiga/projects/api.py:708 +#: taiga/projects/api.py:705 msgid "You don't have permisions to see that." msgstr "Vous n'avez pas les permissions pour consulter cet élément" @@ -2560,6 +2560,14 @@ msgstr "Sévérités" msgid "Roles" msgstr "Rôles" +#: taiga/projects/services/members.py:147 taiga/users/services.py:625 +msgid "You have reached your current limit of memberships for private projects" +msgstr "" + +#: taiga/projects/services/members.py:151 taiga/users/services.py:634 +msgid "You have reached your current limit of memberships for public projects" +msgstr "" + #: taiga/projects/services/stats.py:196 msgid "Future sprint" msgstr "Sprint futurs" @@ -3476,14 +3484,6 @@ msgstr "" msgid "You can't have more public projects" msgstr "" -#: taiga/users/services.py:625 -msgid "You have reached your current limit of memberships for private projects" -msgstr "" - -#: taiga/users/services.py:634 -msgid "You have reached your current limit of memberships for public projects" -msgstr "" - #: taiga/users/templates/emails/change_email-body-html.jinja:4 #, python-format msgid "" diff --git a/taiga/locale/it/LC_MESSAGES/django.po b/taiga/locale/it/LC_MESSAGES/django.po index 2f042498..ba84680a 100644 --- a/taiga/locale/it/LC_MESSAGES/django.po +++ b/taiga/locale/it/LC_MESSAGES/django.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: taiga-back\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-04-01 11:09+0200\n" +"POT-Creation-Date: 2016-04-05 19:23+0200\n" "PO-Revision-Date: 2016-03-30 10:59+0000\n" "Last-Translator: Alejandro Alonso Fernández \n" @@ -196,7 +196,7 @@ msgstr "" "o l'immagine potrebbe essere corrotta. " #: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209 -#: taiga/hooks/api.py:68 taiga/projects/api.py:629 +#: taiga/hooks/api.py:68 taiga/projects/api.py:641 #: taiga/projects/issues/api.py:233 taiga/projects/mixins/ordering.py:58 #: taiga/projects/tasks/api.py:152 taiga/projects/tasks/api.py:174 #: taiga/projects/userstories/api.py:218 taiga/projects/userstories/api.py:238 @@ -1439,13 +1439,13 @@ msgstr "" msgid "The user must be already a project member" msgstr "" -#: taiga/projects/api.py:668 +#: taiga/projects/api.py:671 msgid "" "The project must have an owner and at least one of the users must be an " "active admin" msgstr "" -#: taiga/projects/api.py:708 +#: taiga/projects/api.py:705 msgid "You don't have permisions to see that." msgstr "Non hai il permesso di vedere questo elemento." @@ -3038,6 +3038,14 @@ msgstr "Criticità" msgid "Roles" msgstr "Ruoli" +#: taiga/projects/services/members.py:147 taiga/users/services.py:625 +msgid "You have reached your current limit of memberships for private projects" +msgstr "" + +#: taiga/projects/services/members.py:151 taiga/users/services.py:634 +msgid "You have reached your current limit of memberships for public projects" +msgstr "" + #: taiga/projects/services/stats.py:196 msgid "Future sprint" msgstr "Sprint futuri" @@ -3988,14 +3996,6 @@ msgstr "" msgid "You can't have more public projects" msgstr "" -#: taiga/users/services.py:625 -msgid "You have reached your current limit of memberships for private projects" -msgstr "" - -#: taiga/users/services.py:634 -msgid "You have reached your current limit of memberships for public projects" -msgstr "" - #: taiga/users/templates/emails/change_email-body-html.jinja:4 #, python-format msgid "" diff --git a/taiga/locale/nl/LC_MESSAGES/django.po b/taiga/locale/nl/LC_MESSAGES/django.po index c6cc1c9e..b1172cc3 100644 --- a/taiga/locale/nl/LC_MESSAGES/django.po +++ b/taiga/locale/nl/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: taiga-back\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-04-01 11:09+0200\n" +"POT-Creation-Date: 2016-04-05 19:23+0200\n" "PO-Revision-Date: 2016-03-30 10:59+0000\n" "Last-Translator: Alejandro Alonso Fernández \n" @@ -196,7 +196,7 @@ msgstr "" "een afbeelding ofwel een corrupte afbeelding." #: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209 -#: taiga/hooks/api.py:68 taiga/projects/api.py:629 +#: taiga/hooks/api.py:68 taiga/projects/api.py:641 #: taiga/projects/issues/api.py:233 taiga/projects/mixins/ordering.py:58 #: taiga/projects/tasks/api.py:152 taiga/projects/tasks/api.py:174 #: taiga/projects/userstories/api.py:218 taiga/projects/userstories/api.py:238 @@ -1239,13 +1239,13 @@ msgstr "" msgid "The user must be already a project member" msgstr "" -#: taiga/projects/api.py:668 +#: taiga/projects/api.py:671 msgid "" "The project must have an owner and at least one of the users must be an " "active admin" msgstr "" -#: taiga/projects/api.py:708 +#: taiga/projects/api.py:705 msgid "You don't have permisions to see that." msgstr "Je hebt geen toestamming om dat te bekijken." @@ -2483,6 +2483,14 @@ msgstr "Ernstniveaus" msgid "Roles" msgstr "Rollen" +#: taiga/projects/services/members.py:147 taiga/users/services.py:625 +msgid "You have reached your current limit of memberships for private projects" +msgstr "" + +#: taiga/projects/services/members.py:151 taiga/users/services.py:634 +msgid "You have reached your current limit of memberships for public projects" +msgstr "" + #: taiga/projects/services/stats.py:196 msgid "Future sprint" msgstr "Toekomstige sprint" @@ -3381,14 +3389,6 @@ msgstr "" msgid "You can't have more public projects" msgstr "" -#: taiga/users/services.py:625 -msgid "You have reached your current limit of memberships for private projects" -msgstr "" - -#: taiga/users/services.py:634 -msgid "You have reached your current limit of memberships for public projects" -msgstr "" - #: taiga/users/templates/emails/change_email-body-html.jinja:4 #, python-format msgid "" diff --git a/taiga/locale/pl/LC_MESSAGES/django.po b/taiga/locale/pl/LC_MESSAGES/django.po index 69cce377..01eeb2dc 100644 --- a/taiga/locale/pl/LC_MESSAGES/django.po +++ b/taiga/locale/pl/LC_MESSAGES/django.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: taiga-back\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-04-01 11:09+0200\n" +"POT-Creation-Date: 2016-04-05 19:23+0200\n" "PO-Revision-Date: 2016-03-30 10:59+0000\n" "Last-Translator: Alejandro Alonso Fernández \n" @@ -190,7 +190,7 @@ msgstr "" "jest uszkodzony." #: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209 -#: taiga/hooks/api.py:68 taiga/projects/api.py:629 +#: taiga/hooks/api.py:68 taiga/projects/api.py:641 #: taiga/projects/issues/api.py:233 taiga/projects/mixins/ordering.py:58 #: taiga/projects/tasks/api.py:152 taiga/projects/tasks/api.py:174 #: taiga/projects/userstories/api.py:218 taiga/projects/userstories/api.py:238 @@ -1347,13 +1347,13 @@ msgstr "" msgid "The user must be already a project member" msgstr "" -#: taiga/projects/api.py:668 +#: taiga/projects/api.py:671 msgid "" "The project must have an owner and at least one of the users must be an " "active admin" msgstr "" -#: taiga/projects/api.py:708 +#: taiga/projects/api.py:705 msgid "You don't have permisions to see that." msgstr "Nie masz uprawnień by to zobaczyć." @@ -2820,6 +2820,14 @@ msgstr "Ważność" msgid "Roles" msgstr "Role" +#: taiga/projects/services/members.py:147 taiga/users/services.py:625 +msgid "You have reached your current limit of memberships for private projects" +msgstr "" + +#: taiga/projects/services/members.py:151 taiga/users/services.py:634 +msgid "You have reached your current limit of memberships for public projects" +msgstr "" + #: taiga/projects/services/stats.py:196 msgid "Future sprint" msgstr "Przyszły sprint" @@ -3752,14 +3760,6 @@ msgstr "" msgid "You can't have more public projects" msgstr "" -#: taiga/users/services.py:625 -msgid "You have reached your current limit of memberships for private projects" -msgstr "" - -#: taiga/users/services.py:634 -msgid "You have reached your current limit of memberships for public projects" -msgstr "" - #: taiga/users/templates/emails/change_email-body-html.jinja:4 #, python-format msgid "" diff --git a/taiga/locale/pt_BR/LC_MESSAGES/django.po b/taiga/locale/pt_BR/LC_MESSAGES/django.po index 7c9c5270..ca6d64ba 100644 --- a/taiga/locale/pt_BR/LC_MESSAGES/django.po +++ b/taiga/locale/pt_BR/LC_MESSAGES/django.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: taiga-back\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-04-01 11:09+0200\n" +"POT-Creation-Date: 2016-04-05 19:23+0200\n" "PO-Revision-Date: 2016-03-30 10:59+0000\n" "Last-Translator: Alejandro Alonso Fernández \n" @@ -197,7 +197,7 @@ msgstr "" "está corrompido." #: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209 -#: taiga/hooks/api.py:68 taiga/projects/api.py:629 +#: taiga/hooks/api.py:68 taiga/projects/api.py:641 #: taiga/projects/issues/api.py:233 taiga/projects/mixins/ordering.py:58 #: taiga/projects/tasks/api.py:152 taiga/projects/tasks/api.py:174 #: taiga/projects/userstories/api.py:218 taiga/projects/userstories/api.py:238 @@ -1353,13 +1353,13 @@ msgstr "" msgid "The user must be already a project member" msgstr "" -#: taiga/projects/api.py:668 +#: taiga/projects/api.py:671 msgid "" "The project must have an owner and at least one of the users must be an " "active admin" msgstr "" -#: taiga/projects/api.py:708 +#: taiga/projects/api.py:705 msgid "You don't have permisions to see that." msgstr "Você não tem permissão para ver isso" @@ -2804,6 +2804,14 @@ msgstr "Severidades" msgid "Roles" msgstr "Funções" +#: taiga/projects/services/members.py:147 taiga/users/services.py:625 +msgid "You have reached your current limit of memberships for private projects" +msgstr "" + +#: taiga/projects/services/members.py:151 taiga/users/services.py:634 +msgid "You have reached your current limit of memberships for public projects" +msgstr "" + #: taiga/projects/services/stats.py:196 msgid "Future sprint" msgstr "Sprint futuro" @@ -3731,14 +3739,6 @@ msgstr "" msgid "You can't have more public projects" msgstr "" -#: taiga/users/services.py:625 -msgid "You have reached your current limit of memberships for private projects" -msgstr "" - -#: taiga/users/services.py:634 -msgid "You have reached your current limit of memberships for public projects" -msgstr "" - #: taiga/users/templates/emails/change_email-body-html.jinja:4 #, python-format msgid "" diff --git a/taiga/locale/ru/LC_MESSAGES/django.po b/taiga/locale/ru/LC_MESSAGES/django.po index 512d232e..437a2093 100644 --- a/taiga/locale/ru/LC_MESSAGES/django.po +++ b/taiga/locale/ru/LC_MESSAGES/django.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: taiga-back\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-04-01 11:09+0200\n" +"POT-Creation-Date: 2016-04-05 19:23+0200\n" "PO-Revision-Date: 2016-03-30 10:59+0000\n" "Last-Translator: Alejandro Alonso Fernández \n" @@ -200,7 +200,7 @@ msgstr "" "изображение, либо не корректное изображение." #: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209 -#: taiga/hooks/api.py:68 taiga/projects/api.py:629 +#: taiga/hooks/api.py:68 taiga/projects/api.py:641 #: taiga/projects/issues/api.py:233 taiga/projects/mixins/ordering.py:58 #: taiga/projects/tasks/api.py:152 taiga/projects/tasks/api.py:174 #: taiga/projects/userstories/api.py:218 taiga/projects/userstories/api.py:238 @@ -1354,13 +1354,13 @@ msgstr "" msgid "The user must be already a project member" msgstr "" -#: taiga/projects/api.py:668 +#: taiga/projects/api.py:671 msgid "" "The project must have an owner and at least one of the users must be an " "active admin" msgstr "" -#: taiga/projects/api.py:708 +#: taiga/projects/api.py:705 msgid "You don't have permisions to see that." msgstr "У вас нет разрешения на просмотр." @@ -2819,6 +2819,14 @@ msgstr "Степени важности" msgid "Roles" msgstr "Роли" +#: taiga/projects/services/members.py:147 taiga/users/services.py:625 +msgid "You have reached your current limit of memberships for private projects" +msgstr "" + +#: taiga/projects/services/members.py:151 taiga/users/services.py:634 +msgid "You have reached your current limit of memberships for public projects" +msgstr "" + #: taiga/projects/services/stats.py:196 msgid "Future sprint" msgstr "Будущий спринт" @@ -3746,14 +3754,6 @@ msgstr "" msgid "You can't have more public projects" msgstr "" -#: taiga/users/services.py:625 -msgid "You have reached your current limit of memberships for private projects" -msgstr "" - -#: taiga/users/services.py:634 -msgid "You have reached your current limit of memberships for public projects" -msgstr "" - #: taiga/users/templates/emails/change_email-body-html.jinja:4 #, python-format msgid "" diff --git a/taiga/locale/sv/LC_MESSAGES/django.po b/taiga/locale/sv/LC_MESSAGES/django.po index 49e7041c..42b6dac3 100644 --- a/taiga/locale/sv/LC_MESSAGES/django.po +++ b/taiga/locale/sv/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: taiga-back\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-04-01 11:09+0200\n" +"POT-Creation-Date: 2016-04-05 19:23+0200\n" "PO-Revision-Date: 2016-03-30 10:59+0000\n" "Last-Translator: Alejandro Alonso Fernández \n" @@ -189,7 +189,7 @@ msgstr "" "eller en skadad bild." #: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209 -#: taiga/hooks/api.py:68 taiga/projects/api.py:629 +#: taiga/hooks/api.py:68 taiga/projects/api.py:641 #: taiga/projects/issues/api.py:233 taiga/projects/mixins/ordering.py:58 #: taiga/projects/tasks/api.py:152 taiga/projects/tasks/api.py:174 #: taiga/projects/userstories/api.py:218 taiga/projects/userstories/api.py:238 @@ -1194,13 +1194,13 @@ msgstr "" msgid "The user must be already a project member" msgstr "" -#: taiga/projects/api.py:668 +#: taiga/projects/api.py:671 msgid "" "The project must have an owner and at least one of the users must be an " "active admin" msgstr "" -#: taiga/projects/api.py:708 +#: taiga/projects/api.py:705 msgid "You don't have permisions to see that." msgstr "Du har inte behörighet att se det. " @@ -2406,6 +2406,14 @@ msgstr "Allvarsgrad" msgid "Roles" msgstr "Roller" +#: taiga/projects/services/members.py:147 taiga/users/services.py:625 +msgid "You have reached your current limit of memberships for private projects" +msgstr "" + +#: taiga/projects/services/members.py:151 taiga/users/services.py:634 +msgid "You have reached your current limit of memberships for public projects" +msgstr "" + #: taiga/projects/services/stats.py:196 msgid "Future sprint" msgstr "Framtidig sprint" @@ -3296,14 +3304,6 @@ msgstr "" msgid "You can't have more public projects" msgstr "" -#: taiga/users/services.py:625 -msgid "You have reached your current limit of memberships for private projects" -msgstr "" - -#: taiga/users/services.py:634 -msgid "You have reached your current limit of memberships for public projects" -msgstr "" - #: taiga/users/templates/emails/change_email-body-html.jinja:4 #, python-format msgid "" diff --git a/taiga/locale/tr/LC_MESSAGES/django.po b/taiga/locale/tr/LC_MESSAGES/django.po index d5aa3d2a..591cb691 100644 --- a/taiga/locale/tr/LC_MESSAGES/django.po +++ b/taiga/locale/tr/LC_MESSAGES/django.po @@ -10,10 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: taiga-back\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-04-01 11:09+0200\n" -"PO-Revision-Date: 2016-03-30 10:59+0000\n" -"Last-Translator: Alejandro Alonso Fernández \n" +"POT-Creation-Date: 2016-04-05 19:23+0200\n" +"PO-Revision-Date: 2016-04-04 13:40+0000\n" +"Last-Translator: catborise \n" "Language-Team: Turkish (http://www.transifex.com/taiga-agile-llc/taiga-back/" "language/tr/)\n" "MIME-Version: 1.0\n" @@ -197,13 +196,13 @@ msgstr "" "resim dosyası değil." #: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209 -#: taiga/hooks/api.py:68 taiga/projects/api.py:629 +#: taiga/hooks/api.py:68 taiga/projects/api.py:641 #: taiga/projects/issues/api.py:233 taiga/projects/mixins/ordering.py:58 #: taiga/projects/tasks/api.py:152 taiga/projects/tasks/api.py:174 #: taiga/projects/userstories/api.py:218 taiga/projects/userstories/api.py:238 #: taiga/webhooks/api.py:67 msgid "Blocked element" -msgstr "" +msgstr "Engellenmiş nesne" #: taiga/base/api/pagination.py:213 msgid "Page is not 'last', nor can it be converted to an int." @@ -355,7 +354,7 @@ msgstr "Ön şart hatası" #: taiga/base/exceptions.py:217 msgid "No room left for more projects." -msgstr "" +msgstr "Daha fazla proje için yer kalmadı." #: taiga/base/filters.py:79 taiga/base/filters.py:444 msgid "Error in filter params types." @@ -1291,23 +1290,23 @@ msgstr "Geçersiz şablon tanımı" #: taiga/projects/api.py:356 msgid "Invalid user id" -msgstr "" +msgstr "Geçersiz kullanıcı id" #: taiga/projects/api.py:362 msgid "The user doesn't exist" -msgstr "" +msgstr "Kullanıcı mevcut değil" #: taiga/projects/api.py:366 msgid "The user must be already a project member" -msgstr "" +msgstr "Kullanıcı zaten proje üyesi durumunda" -#: taiga/projects/api.py:668 +#: taiga/projects/api.py:671 msgid "" "The project must have an owner and at least one of the users must be an " "active admin" msgstr "" -#: taiga/projects/api.py:708 +#: taiga/projects/api.py:705 msgid "You don't have permisions to see that." msgstr "Görebilmek için yetkiniz yok." @@ -1406,7 +1405,7 @@ msgstr "" #: taiga/projects/choices.py:34 msgid "This project is blocked because the owner left" -msgstr "" +msgstr "Yetkili kalmadığı için proje bloklandı" #: taiga/projects/custom_attributes/choices.py:27 msgid "Text" @@ -1422,7 +1421,7 @@ msgstr "Tarih" #: taiga/projects/custom_attributes/choices.py:30 msgid "Url" -msgstr "" +msgstr "Url" #: taiga/projects/custom_attributes/models.py:39 #: taiga/projects/issues/models.py:47 @@ -1828,7 +1827,7 @@ msgstr "" #: taiga/projects/models.py:225 msgid "blocked code" -msgstr "" +msgstr "engellenmiş kod" #: taiga/projects/models.py:229 taiga/projects/notifications/models.py:65 msgid "updated date time" @@ -2579,6 +2578,14 @@ msgstr "Önem dereceleri" msgid "Roles" msgstr "Roller" +#: taiga/projects/services/members.py:147 taiga/users/services.py:625 +msgid "You have reached your current limit of memberships for private projects" +msgstr "" + +#: taiga/projects/services/members.py:151 taiga/users/services.py:634 +msgid "You have reached your current limit of memberships for public projects" +msgstr "" + #: taiga/projects/services/stats.py:196 msgid "Future sprint" msgstr "Gelecek sprint" @@ -3464,14 +3471,6 @@ msgstr "" msgid "You can't have more public projects" msgstr "" -#: taiga/users/services.py:625 -msgid "You have reached your current limit of memberships for private projects" -msgstr "" - -#: taiga/users/services.py:634 -msgid "You have reached your current limit of memberships for public projects" -msgstr "" - #: taiga/users/templates/emails/change_email-body-html.jinja:4 #, python-format msgid "" diff --git a/taiga/locale/zh-Hant/LC_MESSAGES/django.po b/taiga/locale/zh-Hant/LC_MESSAGES/django.po index 2136848c..86d2219b 100644 --- a/taiga/locale/zh-Hant/LC_MESSAGES/django.po +++ b/taiga/locale/zh-Hant/LC_MESSAGES/django.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: taiga-back\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-04-01 11:09+0200\n" +"POT-Creation-Date: 2016-04-05 19:23+0200\n" "PO-Revision-Date: 2016-03-30 10:59+0000\n" "Last-Translator: Alejandro Alonso Fernández \n" @@ -183,7 +183,7 @@ msgid "" msgstr "上傳有效圖片,你所上傳的檔案非圖檔或已損壞" #: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209 -#: taiga/hooks/api.py:68 taiga/projects/api.py:629 +#: taiga/hooks/api.py:68 taiga/projects/api.py:641 #: taiga/projects/issues/api.py:233 taiga/projects/mixins/ordering.py:58 #: taiga/projects/tasks/api.py:152 taiga/projects/tasks/api.py:174 #: taiga/projects/userstories/api.py:218 taiga/projects/userstories/api.py:238 @@ -1327,13 +1327,13 @@ msgstr "" msgid "The user must be already a project member" msgstr "" -#: taiga/projects/api.py:668 +#: taiga/projects/api.py:671 msgid "" "The project must have an owner and at least one of the users must be an " "active admin" msgstr "" -#: taiga/projects/api.py:708 +#: taiga/projects/api.py:705 msgid "You don't have permisions to see that." msgstr "您無觀看權限" @@ -2789,6 +2789,14 @@ msgstr "嚴重性" msgid "Roles" msgstr "角色" +#: taiga/projects/services/members.py:147 taiga/users/services.py:625 +msgid "You have reached your current limit of memberships for private projects" +msgstr "" + +#: taiga/projects/services/members.py:151 taiga/users/services.py:634 +msgid "You have reached your current limit of memberships for public projects" +msgstr "" + #: taiga/projects/services/stats.py:196 msgid "Future sprint" msgstr "未來之衝刺" @@ -3701,14 +3709,6 @@ msgstr "" msgid "You can't have more public projects" msgstr "" -#: taiga/users/services.py:625 -msgid "You have reached your current limit of memberships for private projects" -msgstr "" - -#: taiga/users/services.py:634 -msgid "You have reached your current limit of memberships for public projects" -msgstr "" - #: taiga/users/templates/emails/change_email-body-html.jinja:4 #, python-format msgid "" diff --git a/taiga/projects/api.py b/taiga/projects/api.py index d32115c4..07aaaab1 100644 --- a/taiga/projects/api.py +++ b/taiga/projects/api.py @@ -615,6 +615,18 @@ class MembershipViewSet(BlockedByProjectMixin, ModelCrudViewSet): else: return self.serializer_class + def _check_if_project_can_have_more_memberships(self, project, total_new_memberships): + (can_add_memberships, error_type) = services.check_if_project_can_have_more_memberships( + project, + total_new_memberships + ) + if not can_add_memberships: + raise exc.NotEnoughSlotsForProject( + project.is_private, + total_new_memberships, + error_type + ) + @list_route(methods=["POST"]) def bulk_create(self, request, **kwargs): serializer = serializers.MembersBulkSerializer(data=request.DATA) @@ -628,18 +640,9 @@ class MembershipViewSet(BlockedByProjectMixin, ModelCrudViewSet): if project.blocked_code is not None: raise exc.Blocked(_("Blocked element")) - # TODO: this should be moved to main exception handler instead - # of handling explicit exception catchin here. - if "bulk_memberships" in data and isinstance(data["bulk_memberships"], list): - members = len(data["bulk_memberships"]) - (enough_slots, not_enough_slots_error) = users_service.has_available_slot_for_project( - project.owner, - project, - members - ) - if not enough_slots: - raise exc.NotEnoughSlotsForProject(project.is_private, members, not_enough_slots_error) + total_new_memberships = len(data["bulk_memberships"]) + self._check_if_project_can_have_more_memberships(project, total_new_memberships) try: members = services.create_members_in_bulk(data["bulk_memberships"], @@ -665,18 +668,12 @@ class MembershipViewSet(BlockedByProjectMixin, ModelCrudViewSet): def pre_delete(self, obj): if obj.user is not None and not services.can_user_leave_project(obj.user, obj.project): - raise exc.BadRequest(_("The project must have an owner and at least one of the users must be an active admin")) + raise exc.BadRequest(_("The project must have an owner and at least one of the users " + "must be an active admin")) def pre_save(self, obj): if not obj.id: - members = 1 - (enough_slots, not_enough_slots_error) = users_service.has_available_slot_for_project( - self.request.user, - obj.project, - members - ) - if not enough_slots: - raise exc.NotEnoughSlotsForProject(obj.project.is_private, members, not_enough_slots_error) + self._check_if_project_can_have_more_memberships(obj.project, 1) if not obj.token: obj.token = str(uuid.uuid1()) diff --git a/taiga/projects/services/__init__.py b/taiga/projects/services/__init__.py index 6227cc54..a4a1d465 100644 --- a/taiga/projects/services/__init__.py +++ b/taiga/projects/services/__init__.py @@ -40,6 +40,7 @@ from .members import get_members_from_bulk from .members import remove_user_from_project, project_has_valid_admins, can_user_leave_project from .members import get_max_memberships_for_project, get_total_project_memberships from .members import check_if_project_privacity_can_be_changed +from .members import check_if_project_can_have_more_memberships from .modules_config import get_modules_config diff --git a/taiga/projects/services/members.py b/taiga/projects/services/members.py index f408d430..1174bdf3 100644 --- a/taiga/projects/services/members.py +++ b/taiga/projects/services/members.py @@ -1,4 +1,22 @@ +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino +# Copyright (C) 2014-2016 David Barragán +# Copyright (C) 2014-2016 Alejandro Alonso +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + from taiga.base.utils import db, text +from django.utils.translation import ugettext as _ from .. import models @@ -120,3 +138,19 @@ def check_if_project_privacity_can_be_changed(project): return {'can_be_updated': False, 'reason': error_project_exceeded} return {'can_be_updated': True, 'reason': None} + + +def check_if_project_can_have_more_memberships(project, total_new_memberships): + if project.is_private: + total_memberships = project.memberships.count() + total_new_memberships + max_memberships = project.owner.max_memberships_private_projects + error_members_exceeded = _("You have reached your current limit of memberships for private projects") + else: + total_memberships = project.memberships.count() + total_new_memberships + max_memberships = project.owner.max_memberships_public_projects + error_members_exceeded = _("You have reached your current limit of memberships for public projects") + + if max_memberships is not None and total_memberships > max_memberships: + return False, error_members_exceeded + + return True, None