Merge pull request #694 from taigaio/issues/4056-and-4075

Fix issue 4056, 4075 and a minor refactor
remotes/origin/issue/4795/notification_even_they_are_disabled
Alejandro 2016-04-08 13:59:13 +02:00
commit 43e41edf0b
24 changed files with 1093 additions and 837 deletions

View File

@ -91,13 +91,18 @@ class ProjectImporterViewSet(mixins.ImportThrottlingPolicyMixin, CreateModelMixi
data = request.DATA.copy()
data['owner'] = data.get('owner', request.user.email)
# Validate if the project can be imported
is_private = data.get('is_private', False)
(enough_slots, not_enough_slots_error) = users_service.has_available_slot_for_project(
total_memberships = len([m for m in data.get("memberships", [])
if m.get("email", None) != data["owner"]])
total_memberships = total_memberships + 1 # 1 is the owner
(enough_slots, error_message) = users_service.has_available_slot_for_import_new_project(
self.request.user,
Project(is_private=is_private, id=None)
is_private,
total_memberships
)
if not enough_slots:
raise exc.NotEnoughSlotsForProject(is_private, 1, not_enough_slots_error)
raise exc.NotEnoughSlotsForProject(is_private, total_memberships, error_message)
# Create Project
project_serialized = service.store_project(data)
@ -115,14 +120,6 @@ class ProjectImporterViewSet(mixins.ImportThrottlingPolicyMixin, CreateModelMixi
# Create memberships
if "memberships" in data:
members = len([m for m in data.get("memberships", []) if m.get("email", None) != data["owner"]])
(enough_slots, not_enough_slots_error) = users_service.has_available_slot_for_project(
self.request.user,
Project(is_private=is_private, id=None),
members
)
if not enough_slots:
raise exc.NotEnoughSlotsForProject(is_private, max(members, 1), not_enough_slots_error)
service.store_memberships(project_serialized.object, data)
try:
@ -200,53 +197,6 @@ class ProjectImporterViewSet(mixins.ImportThrottlingPolicyMixin, CreateModelMixi
headers = self.get_success_headers(response_data)
return response.Created(response_data, headers=headers)
@list_route(methods=["POST"])
@method_decorator(atomic)
def load_dump(self, request):
throttle = throttling.ImportDumpModeRateThrottle()
if not throttle.allow_request(request, self):
self.throttled(request, throttle.wait())
self.check_permissions(request, "load_dump", None)
dump = request.FILES.get('dump', None)
if not dump:
raise exc.WrongArguments(_("Needed dump file"))
reader = codecs.getreader("utf-8")
try:
dump = json.load(reader(dump))
is_private = dump.get("is_private", False)
except Exception:
raise exc.WrongArguments(_("Invalid dump format"))
slug = dump.get('slug', None)
if slug is not None and Project.objects.filter(slug=slug).exists():
del dump['slug']
user = request.user
dump['owner'] = user.email
members = len([m for m in dump.get("memberships", []) if m.get("email", None) != dump["owner"]])
(enough_slots, not_enough_slots_error) = users_service.has_available_slot_for_project(
user,
Project(is_private=is_private, id=None),
members
)
if not enough_slots:
raise exc.NotEnoughSlotsForProject(is_private, max(members, 1), not_enough_slots_error)
if settings.CELERY_ENABLED:
task = tasks.load_project_dump.delay(user, dump)
return response.Accepted({"import_id": task.id})
project = dump_service.dict_to_project(dump, request.user)
response_data = ProjectSerializer(project).data
return response.Created(response_data)
@detail_route(methods=['post'])
@method_decorator(atomic)
def issue(self, request, *args, **kwargs):
@ -342,3 +292,54 @@ class ProjectImporterViewSet(mixins.ImportThrottlingPolicyMixin, CreateModelMixi
headers = self.get_success_headers(wiki_link.data)
return response.Created(wiki_link.data, headers=headers)
@list_route(methods=["POST"])
@method_decorator(atomic)
def load_dump(self, request):
throttle = throttling.ImportDumpModeRateThrottle()
if not throttle.allow_request(request, self):
self.throttled(request, throttle.wait())
self.check_permissions(request, "load_dump", None)
dump = request.FILES.get('dump', None)
if not dump:
raise exc.WrongArguments(_("Needed dump file"))
reader = codecs.getreader("utf-8")
try:
dump = json.load(reader(dump))
except Exception:
raise exc.WrongArguments(_("Invalid dump format"))
slug = dump.get('slug', None)
if slug is not None and Project.objects.filter(slug=slug).exists():
del dump['slug']
user = request.user
dump['owner'] = user.email
# Validate if the project can be imported
is_private = dump.get("is_private", False)
total_memberships = len([m for m in dump.get("memberships", [])
if m.get("email", None) != dump["owner"]])
total_memberships = total_memberships + 1 # 1 is the owner
(enough_slots, error_message) = users_service.has_available_slot_for_import_new_project(
user,
is_private,
total_memberships
)
if not enough_slots:
raise exc.NotEnoughSlotsForProject(is_private, total_memberships, error_message)
if settings.CELERY_ENABLED:
task = tasks.load_project_dump.delay(user, dump)
return response.Accepted({"import_id": task.id})
project = dump_service.dict_to_project(dump, request.user)
response_data = ProjectSerializer(project).data
return response.Created(response_data)

View File

@ -15,6 +15,9 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.db.transaction import atomic
from django.utils.decorators import method_decorator
from django.utils.translation import ugettext as _
from taiga.projects.models import Membership, Project
@ -88,17 +91,23 @@ def store_tags_colors(project, data):
return None
@method_decorator(atomic)
def dict_to_project(data, owner=None):
if owner:
data["owner"] = owner.email
members = len([m for m in data.get("memberships", []) if m.get("email", None) != data["owner"]])
(enough_slots, not_enough_slots_error) = users_service.has_available_slot_for_project(
# Validate if the owner can have this project
is_private = data.get("is_private", False)
total_memberships = len([m for m in data.get("memberships", [])
if m.get("email", None) != data["owner"]])
total_memberships = total_memberships + 1 # 1 is the owner
(enough_slots, error_message) = users_service.has_available_slot_for_import_new_project(
owner,
Project(is_private=data.get("is_private", False), id=None),
members
is_private,
total_memberships
)
if not enough_slots:
raise TaigaImportError(not_enough_slots_error)
raise TaigaImportError(error_message)
project_serialized = service.store_project(data)

View File

@ -9,10 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: taiga-back\n"
"Report-Msgid-Bugs-To: \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 <alejandroalonsofernandez@gmail."
"com>\n"
"POT-Creation-Date: 2016-04-08 13:23+0200\n"
"PO-Revision-Date: 2016-04-08 11:23+0000\n"
"Last-Translator: Taiga Dev Team <support@taiga.io>\n"
"Language-Team: Catalan (http://www.transifex.com/taiga-agile-llc/taiga-back/"
"language/ca/)\n"
"MIME-Version: 1.0\n"
@ -185,7 +184,7 @@ msgstr ""
"està corrupte."
#: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209
#: taiga/hooks/api.py:68 taiga/projects/api.py:641
#: taiga/hooks/api.py:68 taiga/projects/api.py:642
#: 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
@ -469,71 +468,71 @@ msgstr ""
" Comentari: %(comment)s\n"
" "
#: taiga/export_import/api.py:114
#: taiga/export_import/api.py:119
msgid "We needed at least one role"
msgstr ""
#: taiga/export_import/api.py:216
#: taiga/export_import/api.py:309
msgid "Needed dump file"
msgstr "Es necessita arxiu dump."
#: taiga/export_import/api.py:224
#: taiga/export_import/api.py:316
msgid "Invalid dump format"
msgstr "Format d'arxiu dump invàlid"
#: taiga/export_import/dump_service.py:106
#: taiga/export_import/dump_service.py:115
msgid "error importing project data"
msgstr ""
#: taiga/export_import/dump_service.py:119
#: taiga/export_import/dump_service.py:128
msgid "error importing lists of project attributes"
msgstr ""
#: taiga/export_import/dump_service.py:124
#: taiga/export_import/dump_service.py:133
msgid "error importing default project attributes values"
msgstr ""
#: taiga/export_import/dump_service.py:134
#: taiga/export_import/dump_service.py:143
msgid "error importing custom attributes"
msgstr ""
#: taiga/export_import/dump_service.py:139
#: taiga/export_import/dump_service.py:148
msgid "error importing roles"
msgstr ""
#: taiga/export_import/dump_service.py:154
#: taiga/export_import/dump_service.py:163
msgid "error importing memberships"
msgstr ""
#: taiga/export_import/dump_service.py:159
#: taiga/export_import/dump_service.py:168
msgid "error importing sprints"
msgstr ""
#: taiga/export_import/dump_service.py:164
#: taiga/export_import/dump_service.py:173
msgid "error importing wiki pages"
msgstr ""
#: taiga/export_import/dump_service.py:169
#: taiga/export_import/dump_service.py:178
msgid "error importing wiki links"
msgstr ""
#: taiga/export_import/dump_service.py:174
#: taiga/export_import/dump_service.py:183
msgid "error importing issues"
msgstr ""
#: taiga/export_import/dump_service.py:179
#: taiga/export_import/dump_service.py:188
msgid "error importing user stories"
msgstr ""
#: taiga/export_import/dump_service.py:184
#: taiga/export_import/dump_service.py:193
msgid "error importing tasks"
msgstr ""
#: taiga/export_import/dump_service.py:189
#: taiga/export_import/dump_service.py:198
msgid "error importing tags"
msgstr ""
#: taiga/export_import/dump_service.py:193
#: taiga/export_import/dump_service.py:202
msgid "error importing timelines"
msgstr ""
@ -723,7 +722,7 @@ msgstr ""
#: taiga/projects/models.py:536 taiga/projects/models.py:573
#: taiga/projects/models.py:596 taiga/projects/models.py:619
#: taiga/projects/models.py:654 taiga/projects/models.py:677
#: taiga/users/models.py:289 taiga/webhooks/models.py:28
#: taiga/users/models.py:292 taiga/webhooks/models.py:28
msgid "name"
msgstr "Nom"
@ -1176,13 +1175,13 @@ msgstr ""
msgid "The user must be already a project member"
msgstr ""
#: taiga/projects/api.py:671
#: taiga/projects/api.py:672
msgid ""
"The project must have an owner and at least one of the users must be an "
"active admin"
msgstr ""
#: taiga/projects/api.py:705
#: taiga/projects/api.py:706
msgid "You don't have permisions to see that."
msgstr "No tens permisos per a veure açò."
@ -1212,7 +1211,7 @@ msgstr "Amo"
#: taiga/projects/notifications/models.py:73
#: taiga/projects/notifications/models.py:90 taiga/projects/tasks/models.py:42
#: taiga/projects/userstories/models.py:64 taiga/projects/wiki/models.py:30
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:302
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:305
msgid "project"
msgstr "Projecte"
@ -1251,7 +1250,7 @@ msgstr "està obsolet "
#: taiga/projects/models.py:513 taiga/projects/models.py:540
#: taiga/projects/models.py:575 taiga/projects/models.py:598
#: taiga/projects/models.py:623 taiga/projects/models.py:656
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:297
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:300
msgid "order"
msgstr "Ordre"
@ -1531,7 +1530,7 @@ msgstr "Fans"
#: taiga/projects/milestones/models.py:41 taiga/projects/models.py:148
#: taiga/projects/models.py:474 taiga/projects/models.py:538
#: taiga/projects/models.py:621 taiga/projects/models.py:679
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:291
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:294
msgid "slug"
msgstr "slug"
@ -2358,50 +2357,72 @@ msgstr ""
msgid "At least one user must be an active admin for this project."
msgstr ""
#: taiga/projects/serializers.py:394
#: taiga/projects/serializers.py:392
msgid "Default options"
msgstr "Opcions per defecte"
#: taiga/projects/serializers.py:395
#: taiga/projects/serializers.py:393
msgid "User story's statuses"
msgstr "Estatus d'històries d'usuari"
#: taiga/projects/serializers.py:396
#: taiga/projects/serializers.py:394
msgid "Points"
msgstr "Punts"
#: taiga/projects/serializers.py:397
#: taiga/projects/serializers.py:395
msgid "Task's statuses"
msgstr "Estatus de tasques"
#: taiga/projects/serializers.py:398
#: taiga/projects/serializers.py:396
msgid "Issue's statuses"
msgstr "Estatus d'incidéncies"
#: taiga/projects/serializers.py:399
#: taiga/projects/serializers.py:397
msgid "Issue's types"
msgstr "Tipus d'incidéncies"
#: taiga/projects/serializers.py:400
#: taiga/projects/serializers.py:398
msgid "Priorities"
msgstr "Prioritats"
#: taiga/projects/serializers.py:401
#: taiga/projects/serializers.py:399
msgid "Severities"
msgstr "Severitats"
#: taiga/projects/serializers.py:402
#: taiga/projects/serializers.py:400
msgid "Roles"
msgstr "Rols"
#: taiga/projects/services/members.py:147 taiga/users/services.py:625
#: taiga/projects/services/members.py:116
msgid "You have reached your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/members.py:151 taiga/users/services.py:634
#: taiga/projects/services/members.py:120
msgid "You have reached your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/projects.py:69
#: taiga/projects/services/projects.py:106 taiga/users/services.py:582
msgid "You can't have more private projects"
msgstr ""
#: taiga/projects/services/projects.py:73
#: taiga/projects/services/projects.py:110 taiga/users/services.py:585
msgid ""
"This project reaches your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/projects.py:77
#: taiga/projects/services/projects.py:114 taiga/users/services.py:589
msgid "You can't have more public projects"
msgstr ""
#: taiga/projects/services/projects.py:81
#: taiga/projects/services/projects.py:118 taiga/users/services.py:592
msgid ""
"This project reaches your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/stats.py:196
msgid "Future sprint"
msgstr ""
@ -3271,7 +3292,7 @@ msgstr ""
msgid "max number of memberships for each owned public project"
msgstr ""
#: taiga/users/models.py:294
#: taiga/users/models.py:297
msgid "permissions"
msgstr "permissos"
@ -3287,14 +3308,6 @@ msgstr "Nom d'usuari invàlid"
msgid "Username or password does not matches user."
msgstr ""
#: taiga/users/services.py:602
msgid "You can't have more private projects"
msgstr ""
#: taiga/users/services.py:612
msgid "You can't have more public projects"
msgstr ""
#: taiga/users/templates/emails/change_email-body-html.jinja:4
#, python-format
msgid ""

View File

@ -17,10 +17,9 @@ msgid ""
msgstr ""
"Project-Id-Version: taiga-back\n"
"Report-Msgid-Bugs-To: \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 <alejandroalonsofernandez@gmail."
"com>\n"
"POT-Creation-Date: 2016-04-08 13:23+0200\n"
"PO-Revision-Date: 2016-04-08 11:23+0000\n"
"Last-Translator: Taiga Dev Team <support@taiga.io>\n"
"Language-Team: German (http://www.transifex.com/taiga-agile-llc/taiga-back/"
"language/de/)\n"
"MIME-Version: 1.0\n"
@ -215,7 +214,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:641
#: taiga/hooks/api.py:68 taiga/projects/api.py:642
#: 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
@ -524,71 +523,71 @@ msgstr ""
"Kommentar: %(comment)s\n"
" "
#: taiga/export_import/api.py:114
#: taiga/export_import/api.py:119
msgid "We needed at least one role"
msgstr "Es ist mindestens eine Rolle nötig"
#: taiga/export_import/api.py:216
#: taiga/export_import/api.py:309
msgid "Needed dump file"
msgstr "Exportdatei erforderlich"
#: taiga/export_import/api.py:224
#: taiga/export_import/api.py:316
msgid "Invalid dump format"
msgstr "Ungültiges Exportdatei Format"
#: taiga/export_import/dump_service.py:106
#: taiga/export_import/dump_service.py:115
msgid "error importing project data"
msgstr "Fehler beim Importieren der Projektdaten"
#: taiga/export_import/dump_service.py:119
#: taiga/export_import/dump_service.py:128
msgid "error importing lists of project attributes"
msgstr "Fehler beim Importieren der Listen von Projektattributen"
#: taiga/export_import/dump_service.py:124
#: taiga/export_import/dump_service.py:133
msgid "error importing default project attributes values"
msgstr "Fehler beim Importieren der vorgegebenen Projekt Attributwerte "
#: taiga/export_import/dump_service.py:134
#: taiga/export_import/dump_service.py:143
msgid "error importing custom attributes"
msgstr "Fehler beim Importieren der Kundenattribute"
#: taiga/export_import/dump_service.py:139
#: taiga/export_import/dump_service.py:148
msgid "error importing roles"
msgstr "Fehler beim Importieren der Rollen"
#: taiga/export_import/dump_service.py:154
#: taiga/export_import/dump_service.py:163
msgid "error importing memberships"
msgstr "Fehler beim Importieren der Mitgliedschaften"
#: taiga/export_import/dump_service.py:159
#: taiga/export_import/dump_service.py:168
msgid "error importing sprints"
msgstr "Fehler beim Import der Sprints"
#: taiga/export_import/dump_service.py:164
#: taiga/export_import/dump_service.py:173
msgid "error importing wiki pages"
msgstr "Fehler beim Importieren von Wiki Seiten"
#: taiga/export_import/dump_service.py:169
#: taiga/export_import/dump_service.py:178
msgid "error importing wiki links"
msgstr "Fehler beim Importieren von Wiki Links"
#: taiga/export_import/dump_service.py:174
#: taiga/export_import/dump_service.py:183
msgid "error importing issues"
msgstr "Fehler beim Importieren der Tickets"
#: taiga/export_import/dump_service.py:179
#: taiga/export_import/dump_service.py:188
msgid "error importing user stories"
msgstr "Fehler beim Importieren der User-Stories"
#: taiga/export_import/dump_service.py:184
#: taiga/export_import/dump_service.py:193
msgid "error importing tasks"
msgstr "Fehler beim Importieren der Aufgaben"
#: taiga/export_import/dump_service.py:189
#: taiga/export_import/dump_service.py:198
msgid "error importing tags"
msgstr "Fehler beim Importieren der Schlagworte"
#: taiga/export_import/dump_service.py:193
#: taiga/export_import/dump_service.py:202
msgid "error importing timelines"
msgstr "Fehler beim Importieren der Chroniken"
@ -871,7 +870,7 @@ msgstr "Authentifizierung erforderlich"
#: taiga/projects/models.py:536 taiga/projects/models.py:573
#: taiga/projects/models.py:596 taiga/projects/models.py:619
#: taiga/projects/models.py:654 taiga/projects/models.py:677
#: taiga/users/models.py:289 taiga/webhooks/models.py:28
#: taiga/users/models.py:292 taiga/webhooks/models.py:28
msgid "name"
msgstr "Name"
@ -1366,13 +1365,13 @@ msgstr ""
msgid "The user must be already a project member"
msgstr ""
#: taiga/projects/api.py:671
#: taiga/projects/api.py:672
msgid ""
"The project must have an owner and at least one of the users must be an "
"active admin"
msgstr ""
#: taiga/projects/api.py:705
#: taiga/projects/api.py:706
msgid "You don't have permisions to see that."
msgstr "Sie haben keine Berechtigungen für diese Ansicht"
@ -1402,7 +1401,7 @@ msgstr "Besitzer"
#: taiga/projects/notifications/models.py:73
#: taiga/projects/notifications/models.py:90 taiga/projects/tasks/models.py:42
#: taiga/projects/userstories/models.py:64 taiga/projects/wiki/models.py:30
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:302
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:305
msgid "project"
msgstr "Projekt"
@ -1441,7 +1440,7 @@ msgstr "wurde verworfen"
#: taiga/projects/models.py:513 taiga/projects/models.py:540
#: taiga/projects/models.py:575 taiga/projects/models.py:598
#: taiga/projects/models.py:623 taiga/projects/models.py:656
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:297
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:300
msgid "order"
msgstr "Reihenfolge"
@ -1725,7 +1724,7 @@ msgstr "Likes"
#: taiga/projects/milestones/models.py:41 taiga/projects/models.py:148
#: taiga/projects/models.py:474 taiga/projects/models.py:538
#: taiga/projects/models.py:621 taiga/projects/models.py:679
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:291
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:294
msgid "slug"
msgstr "Slug"
@ -2830,50 +2829,72 @@ msgstr ""
msgid "At least one user must be an active admin for this project."
msgstr ""
#: taiga/projects/serializers.py:394
#: taiga/projects/serializers.py:392
msgid "Default options"
msgstr "Voreingestellte Optionen"
#: taiga/projects/serializers.py:395
#: taiga/projects/serializers.py:393
msgid "User story's statuses"
msgstr "Status für User-Stories"
#: taiga/projects/serializers.py:396
#: taiga/projects/serializers.py:394
msgid "Points"
msgstr "Punkte"
#: taiga/projects/serializers.py:397
#: taiga/projects/serializers.py:395
msgid "Task's statuses"
msgstr "Aufgaben Status"
#: taiga/projects/serializers.py:398
#: taiga/projects/serializers.py:396
msgid "Issue's statuses"
msgstr "Ticket Status"
#: taiga/projects/serializers.py:399
#: taiga/projects/serializers.py:397
msgid "Issue's types"
msgstr "Ticket Arten"
#: taiga/projects/serializers.py:400
#: taiga/projects/serializers.py:398
msgid "Priorities"
msgstr "Prioritäten"
#: taiga/projects/serializers.py:401
#: taiga/projects/serializers.py:399
msgid "Severities"
msgstr "Gewichtung"
#: taiga/projects/serializers.py:402
#: taiga/projects/serializers.py:400
msgid "Roles"
msgstr "Rollen"
#: taiga/projects/services/members.py:147 taiga/users/services.py:625
#: taiga/projects/services/members.py:116
msgid "You have reached your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/members.py:151 taiga/users/services.py:634
#: taiga/projects/services/members.py:120
msgid "You have reached your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/projects.py:69
#: taiga/projects/services/projects.py:106 taiga/users/services.py:582
msgid "You can't have more private projects"
msgstr ""
#: taiga/projects/services/projects.py:73
#: taiga/projects/services/projects.py:110 taiga/users/services.py:585
msgid ""
"This project reaches your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/projects.py:77
#: taiga/projects/services/projects.py:114 taiga/users/services.py:589
msgid "You can't have more public projects"
msgstr ""
#: taiga/projects/services/projects.py:81
#: taiga/projects/services/projects.py:118 taiga/users/services.py:592
msgid ""
"This project reaches your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/stats.py:196
msgid "Future sprint"
msgstr "Zukünftiger Sprint"
@ -3796,7 +3817,7 @@ msgstr ""
msgid "max number of memberships for each owned public project"
msgstr ""
#: taiga/users/models.py:294
#: taiga/users/models.py:297
msgid "permissions"
msgstr "Berechtigungen"
@ -3812,14 +3833,6 @@ msgstr "Ungültiger Benutzername. Versuchen Sie es mit einem anderen."
msgid "Username or password does not matches user."
msgstr "Benutzername oder Passwort stimmen mit keinem Benutzer überein."
#: taiga/users/services.py:602
msgid "You can't have more private projects"
msgstr ""
#: taiga/users/services.py:612
msgid "You can't have more public projects"
msgstr ""
#: taiga/users/templates/emails/change_email-body-html.jinja:4
#, python-format
msgid ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: taiga-back\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-05 19:23+0200\n"
"POT-Creation-Date: 2016-04-08 13:23+0200\n"
"PO-Revision-Date: 2015-03-25 20:09+0100\n"
"Last-Translator: Taiga Dev Team <support@taiga.io>\n"
"Language-Team: Taiga Dev Team <support@taiga.io>\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:641
#: taiga/hooks/api.py:68 taiga/projects/api.py:642
#: 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
@ -457,71 +457,71 @@ msgid ""
" "
msgstr ""
#: taiga/export_import/api.py:114
#: taiga/export_import/api.py:119
msgid "We needed at least one role"
msgstr ""
#: taiga/export_import/api.py:216
#: taiga/export_import/api.py:309
msgid "Needed dump file"
msgstr ""
#: taiga/export_import/api.py:224
#: taiga/export_import/api.py:316
msgid "Invalid dump format"
msgstr ""
#: taiga/export_import/dump_service.py:106
#: taiga/export_import/dump_service.py:115
msgid "error importing project data"
msgstr ""
#: taiga/export_import/dump_service.py:119
#: taiga/export_import/dump_service.py:128
msgid "error importing lists of project attributes"
msgstr ""
#: taiga/export_import/dump_service.py:124
#: taiga/export_import/dump_service.py:133
msgid "error importing default project attributes values"
msgstr ""
#: taiga/export_import/dump_service.py:134
#: taiga/export_import/dump_service.py:143
msgid "error importing custom attributes"
msgstr ""
#: taiga/export_import/dump_service.py:139
#: taiga/export_import/dump_service.py:148
msgid "error importing roles"
msgstr ""
#: taiga/export_import/dump_service.py:154
#: taiga/export_import/dump_service.py:163
msgid "error importing memberships"
msgstr ""
#: taiga/export_import/dump_service.py:159
#: taiga/export_import/dump_service.py:168
msgid "error importing sprints"
msgstr ""
#: taiga/export_import/dump_service.py:164
#: taiga/export_import/dump_service.py:173
msgid "error importing wiki pages"
msgstr ""
#: taiga/export_import/dump_service.py:169
#: taiga/export_import/dump_service.py:178
msgid "error importing wiki links"
msgstr ""
#: taiga/export_import/dump_service.py:174
#: taiga/export_import/dump_service.py:183
msgid "error importing issues"
msgstr ""
#: taiga/export_import/dump_service.py:179
#: taiga/export_import/dump_service.py:188
msgid "error importing user stories"
msgstr ""
#: taiga/export_import/dump_service.py:184
#: taiga/export_import/dump_service.py:193
msgid "error importing tasks"
msgstr ""
#: taiga/export_import/dump_service.py:189
#: taiga/export_import/dump_service.py:198
msgid "error importing tags"
msgstr ""
#: taiga/export_import/dump_service.py:193
#: taiga/export_import/dump_service.py:202
msgid "error importing timelines"
msgstr ""
@ -711,7 +711,7 @@ msgstr ""
#: taiga/projects/models.py:536 taiga/projects/models.py:573
#: taiga/projects/models.py:596 taiga/projects/models.py:619
#: taiga/projects/models.py:654 taiga/projects/models.py:677
#: taiga/users/models.py:289 taiga/webhooks/models.py:28
#: taiga/users/models.py:292 taiga/webhooks/models.py:28
msgid "name"
msgstr ""
@ -1148,13 +1148,13 @@ msgstr ""
msgid "The user must be already a project member"
msgstr ""
#: taiga/projects/api.py:671
#: taiga/projects/api.py:672
msgid ""
"The project must have an owner and at least one of the users must be an "
"active admin"
msgstr ""
#: taiga/projects/api.py:705
#: taiga/projects/api.py:706
msgid "You don't have permisions to see that."
msgstr ""
@ -1184,7 +1184,7 @@ msgstr ""
#: taiga/projects/notifications/models.py:73
#: taiga/projects/notifications/models.py:90 taiga/projects/tasks/models.py:42
#: taiga/projects/userstories/models.py:64 taiga/projects/wiki/models.py:30
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:302
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:305
msgid "project"
msgstr ""
@ -1223,7 +1223,7 @@ msgstr ""
#: taiga/projects/models.py:513 taiga/projects/models.py:540
#: taiga/projects/models.py:575 taiga/projects/models.py:598
#: taiga/projects/models.py:623 taiga/projects/models.py:656
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:297
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:300
msgid "order"
msgstr ""
@ -1503,7 +1503,7 @@ msgstr ""
#: taiga/projects/milestones/models.py:41 taiga/projects/models.py:148
#: taiga/projects/models.py:474 taiga/projects/models.py:538
#: taiga/projects/models.py:621 taiga/projects/models.py:679
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:291
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:294
msgid "slug"
msgstr ""
@ -2324,50 +2324,72 @@ msgstr ""
msgid "At least one user must be an active admin for this project."
msgstr ""
#: taiga/projects/serializers.py:394
#: taiga/projects/serializers.py:392
msgid "Default options"
msgstr ""
#: taiga/projects/serializers.py:395
#: taiga/projects/serializers.py:393
msgid "User story's statuses"
msgstr ""
#: taiga/projects/serializers.py:396
#: taiga/projects/serializers.py:394
msgid "Points"
msgstr ""
#: taiga/projects/serializers.py:397
#: taiga/projects/serializers.py:395
msgid "Task's statuses"
msgstr ""
#: taiga/projects/serializers.py:398
#: taiga/projects/serializers.py:396
msgid "Issue's statuses"
msgstr ""
#: taiga/projects/serializers.py:399
#: taiga/projects/serializers.py:397
msgid "Issue's types"
msgstr ""
#: taiga/projects/serializers.py:400
#: taiga/projects/serializers.py:398
msgid "Priorities"
msgstr ""
#: taiga/projects/serializers.py:401
#: taiga/projects/serializers.py:399
msgid "Severities"
msgstr ""
#: taiga/projects/serializers.py:402
#: taiga/projects/serializers.py:400
msgid "Roles"
msgstr ""
#: taiga/projects/services/members.py:147 taiga/users/services.py:625
#: taiga/projects/services/members.py:116
msgid "You have reached your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/members.py:151 taiga/users/services.py:634
#: taiga/projects/services/members.py:120
msgid "You have reached your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/projects.py:69
#: taiga/projects/services/projects.py:106 taiga/users/services.py:582
msgid "You can't have more private projects"
msgstr ""
#: taiga/projects/services/projects.py:73
#: taiga/projects/services/projects.py:110 taiga/users/services.py:585
msgid ""
"This project reaches your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/projects.py:77
#: taiga/projects/services/projects.py:114 taiga/users/services.py:589
msgid "You can't have more public projects"
msgstr ""
#: taiga/projects/services/projects.py:81
#: taiga/projects/services/projects.py:118 taiga/users/services.py:592
msgid ""
"This project reaches your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/stats.py:196
msgid "Future sprint"
msgstr ""
@ -3214,7 +3236,7 @@ msgstr ""
msgid "max number of memberships for each owned public project"
msgstr ""
#: taiga/users/models.py:294
#: taiga/users/models.py:297
msgid "permissions"
msgstr ""
@ -3230,14 +3252,6 @@ msgstr ""
msgid "Username or password does not matches user."
msgstr ""
#: taiga/users/services.py:602
msgid "You can't have more private projects"
msgstr ""
#: taiga/users/services.py:612
msgid "You can't have more public projects"
msgstr ""
#: taiga/users/templates/emails/change_email-body-html.jinja:4
#, python-format
msgid ""

View File

@ -16,10 +16,9 @@ msgid ""
msgstr ""
"Project-Id-Version: taiga-back\n"
"Report-Msgid-Bugs-To: \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 <alejandroalonsofernandez@gmail."
"com>\n"
"POT-Creation-Date: 2016-04-08 13:23+0200\n"
"PO-Revision-Date: 2016-04-08 11:23+0000\n"
"Last-Translator: Taiga Dev Team <support@taiga.io>\n"
"Language-Team: Spanish (http://www.transifex.com/taiga-agile-llc/taiga-back/"
"language/es/)\n"
"MIME-Version: 1.0\n"
@ -202,7 +201,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:641
#: taiga/hooks/api.py:68 taiga/projects/api.py:642
#: 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
@ -511,71 +510,71 @@ msgstr ""
"\n"
"Comentario: %(comment)s"
#: taiga/export_import/api.py:114
#: taiga/export_import/api.py:119
msgid "We needed at least one role"
msgstr "Necesitamos al menos un rol"
#: taiga/export_import/api.py:216
#: taiga/export_import/api.py:309
msgid "Needed dump file"
msgstr "Se necesita el fichero con los datos exportados"
#: taiga/export_import/api.py:224
#: taiga/export_import/api.py:316
msgid "Invalid dump format"
msgstr "Formato de fichero de exportación inválido"
#: taiga/export_import/dump_service.py:106
#: taiga/export_import/dump_service.py:115
msgid "error importing project data"
msgstr "error importando los datos del proyecto"
#: taiga/export_import/dump_service.py:119
#: taiga/export_import/dump_service.py:128
msgid "error importing lists of project attributes"
msgstr "error importando la listados de valores de attributos del proyecto"
#: taiga/export_import/dump_service.py:124
#: taiga/export_import/dump_service.py:133
msgid "error importing default project attributes values"
msgstr "error importando los valores por defecto de los atributos del proyecto"
#: taiga/export_import/dump_service.py:134
#: taiga/export_import/dump_service.py:143
msgid "error importing custom attributes"
msgstr "error importando los atributos personalizados"
#: taiga/export_import/dump_service.py:139
#: taiga/export_import/dump_service.py:148
msgid "error importing roles"
msgstr "error importando los roles"
#: taiga/export_import/dump_service.py:154
#: taiga/export_import/dump_service.py:163
msgid "error importing memberships"
msgstr "error importando los miembros"
#: taiga/export_import/dump_service.py:159
#: taiga/export_import/dump_service.py:168
msgid "error importing sprints"
msgstr "error importando los sprints"
#: taiga/export_import/dump_service.py:164
#: taiga/export_import/dump_service.py:173
msgid "error importing wiki pages"
msgstr "error importando las páginas del wiki"
#: taiga/export_import/dump_service.py:169
#: taiga/export_import/dump_service.py:178
msgid "error importing wiki links"
msgstr "error importando los enlaces del wiki"
#: taiga/export_import/dump_service.py:174
#: taiga/export_import/dump_service.py:183
msgid "error importing issues"
msgstr "error importando las peticiones"
#: taiga/export_import/dump_service.py:179
#: taiga/export_import/dump_service.py:188
msgid "error importing user stories"
msgstr "error importando las historias de usuario"
#: taiga/export_import/dump_service.py:184
#: taiga/export_import/dump_service.py:193
msgid "error importing tasks"
msgstr "error importando las tareas"
#: taiga/export_import/dump_service.py:189
#: taiga/export_import/dump_service.py:198
msgid "error importing tags"
msgstr "error importando las etiquetas"
#: taiga/export_import/dump_service.py:193
#: taiga/export_import/dump_service.py:202
msgid "error importing timelines"
msgstr "error importando los timelines"
@ -853,7 +852,7 @@ msgstr "Se requiere autenticación"
#: taiga/projects/models.py:536 taiga/projects/models.py:573
#: taiga/projects/models.py:596 taiga/projects/models.py:619
#: taiga/projects/models.py:654 taiga/projects/models.py:677
#: taiga/users/models.py:289 taiga/webhooks/models.py:28
#: taiga/users/models.py:292 taiga/webhooks/models.py:28
msgid "name"
msgstr "nombre"
@ -1346,7 +1345,7 @@ msgstr "El usuario no existe"
msgid "The user must be already a project member"
msgstr ""
#: taiga/projects/api.py:671
#: taiga/projects/api.py:672
msgid ""
"The project must have an owner and at least one of the users must be an "
"active admin"
@ -1354,7 +1353,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:705
#: taiga/projects/api.py:706
msgid "You don't have permisions to see that."
msgstr "No tienes suficientes permisos para ver esto."
@ -1384,7 +1383,7 @@ msgstr "Dueño"
#: taiga/projects/notifications/models.py:73
#: taiga/projects/notifications/models.py:90 taiga/projects/tasks/models.py:42
#: taiga/projects/userstories/models.py:64 taiga/projects/wiki/models.py:30
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:302
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:305
msgid "project"
msgstr "Proyecto"
@ -1423,7 +1422,7 @@ msgstr "está desactualizado"
#: taiga/projects/models.py:513 taiga/projects/models.py:540
#: taiga/projects/models.py:575 taiga/projects/models.py:598
#: taiga/projects/models.py:623 taiga/projects/models.py:656
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:297
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:300
msgid "order"
msgstr "orden"
@ -1703,7 +1702,7 @@ msgstr "Likes"
#: taiga/projects/milestones/models.py:41 taiga/projects/models.py:148
#: taiga/projects/models.py:474 taiga/projects/models.py:538
#: taiga/projects/models.py:621 taiga/projects/models.py:679
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:291
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:294
msgid "slug"
msgstr "slug"
@ -2765,50 +2764,72 @@ msgstr ""
msgid "At least one user must be an active admin for this project."
msgstr ""
#: taiga/projects/serializers.py:394
#: taiga/projects/serializers.py:392
msgid "Default options"
msgstr "Opciones por defecto"
#: taiga/projects/serializers.py:395
#: taiga/projects/serializers.py:393
msgid "User story's statuses"
msgstr "Estados de historia de usuario"
#: taiga/projects/serializers.py:396
#: taiga/projects/serializers.py:394
msgid "Points"
msgstr "Puntos"
#: taiga/projects/serializers.py:397
#: taiga/projects/serializers.py:395
msgid "Task's statuses"
msgstr "Estado de tareas"
#: taiga/projects/serializers.py:398
#: taiga/projects/serializers.py:396
msgid "Issue's statuses"
msgstr "Estados de peticion"
#: taiga/projects/serializers.py:399
#: taiga/projects/serializers.py:397
msgid "Issue's types"
msgstr "Tipos de petición"
#: taiga/projects/serializers.py:400
#: taiga/projects/serializers.py:398
msgid "Priorities"
msgstr "Prioridades"
#: taiga/projects/serializers.py:401
#: taiga/projects/serializers.py:399
msgid "Severities"
msgstr "Gravedades"
#: taiga/projects/serializers.py:402
#: taiga/projects/serializers.py:400
msgid "Roles"
msgstr "Roles"
#: taiga/projects/services/members.py:147 taiga/users/services.py:625
#: taiga/projects/services/members.py:116
msgid "You have reached your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/members.py:151 taiga/users/services.py:634
#: taiga/projects/services/members.py:120
msgid "You have reached your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/projects.py:69
#: taiga/projects/services/projects.py:106 taiga/users/services.py:582
msgid "You can't have more private projects"
msgstr "No puedes tener más proyectos privados"
#: taiga/projects/services/projects.py:73
#: taiga/projects/services/projects.py:110 taiga/users/services.py:585
msgid ""
"This project reaches your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/projects.py:77
#: taiga/projects/services/projects.py:114 taiga/users/services.py:589
msgid "You can't have more public projects"
msgstr "No puedes tener más proyectos públicos"
#: taiga/projects/services/projects.py:81
#: taiga/projects/services/projects.py:118 taiga/users/services.py:592
msgid ""
"This project reaches your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/stats.py:196
msgid "Future sprint"
msgstr "Sprint futuro"
@ -3734,7 +3755,7 @@ msgstr "máximo de membresías para cada proyecto privado poseído"
msgid "max number of memberships for each owned public project"
msgstr "máximo de membresías para cada proyecto público poseído"
#: taiga/users/models.py:294
#: taiga/users/models.py:297
msgid "permissions"
msgstr "permisos"
@ -3750,14 +3771,6 @@ msgstr "Nombre de usuario inválido. Prueba con otro."
msgid "Username or password does not matches user."
msgstr "Nombre de usuario o contraseña inválidos."
#: taiga/users/services.py:602
msgid "You can't have more private projects"
msgstr "No puedes tener más proyectos privados"
#: taiga/users/services.py:612
msgid "You can't have more public projects"
msgstr "No puedes tener más proyectos públicos"
#: taiga/users/templates/emails/change_email-body-html.jinja:4
#, python-format
msgid ""

View File

@ -9,10 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: taiga-back\n"
"Report-Msgid-Bugs-To: \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 <alejandroalonsofernandez@gmail."
"com>\n"
"POT-Creation-Date: 2016-04-08 13:23+0200\n"
"PO-Revision-Date: 2016-04-08 11:23+0000\n"
"Last-Translator: Taiga Dev Team <support@taiga.io>\n"
"Language-Team: Finnish (http://www.transifex.com/taiga-agile-llc/taiga-back/"
"language/fi/)\n"
"MIME-Version: 1.0\n"
@ -187,7 +186,7 @@ msgstr ""
"vioittunut."
#: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209
#: taiga/hooks/api.py:68 taiga/projects/api.py:641
#: taiga/hooks/api.py:68 taiga/projects/api.py:642
#: 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
@ -494,71 +493,71 @@ msgstr ""
"\n"
"Kommentti: %(comment)s"
#: taiga/export_import/api.py:114
#: taiga/export_import/api.py:119
msgid "We needed at least one role"
msgstr ""
#: taiga/export_import/api.py:216
#: taiga/export_import/api.py:309
msgid "Needed dump file"
msgstr "Tarvitaan tiedosto"
#: taiga/export_import/api.py:224
#: taiga/export_import/api.py:316
msgid "Invalid dump format"
msgstr "Virheellinen tiedostomuoto"
#: taiga/export_import/dump_service.py:106
#: taiga/export_import/dump_service.py:115
msgid "error importing project data"
msgstr "virhe projektidatan tuonnissa"
#: taiga/export_import/dump_service.py:119
#: taiga/export_import/dump_service.py:128
msgid "error importing lists of project attributes"
msgstr "virhe atribuuttilistan tuonnissa"
#: taiga/export_import/dump_service.py:124
#: taiga/export_import/dump_service.py:133
msgid "error importing default project attributes values"
msgstr "virhe oletusarvojen tuonnissa"
#: taiga/export_import/dump_service.py:134
#: taiga/export_import/dump_service.py:143
msgid "error importing custom attributes"
msgstr "virhe omien arvojen tuonnissa"
#: taiga/export_import/dump_service.py:139
#: taiga/export_import/dump_service.py:148
msgid "error importing roles"
msgstr "virhe roolien tuonnissa"
#: taiga/export_import/dump_service.py:154
#: taiga/export_import/dump_service.py:163
msgid "error importing memberships"
msgstr "virhe jäsenyyksien tuonnissa"
#: taiga/export_import/dump_service.py:159
#: taiga/export_import/dump_service.py:168
msgid "error importing sprints"
msgstr "virhe kierroksien tuonnissa"
#: taiga/export_import/dump_service.py:164
#: taiga/export_import/dump_service.py:173
msgid "error importing wiki pages"
msgstr "virhe wiki-sivujen tuonnissa"
#: taiga/export_import/dump_service.py:169
#: taiga/export_import/dump_service.py:178
msgid "error importing wiki links"
msgstr "virhe viki-linkkien tuonnissa"
#: taiga/export_import/dump_service.py:174
#: taiga/export_import/dump_service.py:183
msgid "error importing issues"
msgstr "virhe pyyntöjen tuonnissa"
#: taiga/export_import/dump_service.py:179
#: taiga/export_import/dump_service.py:188
msgid "error importing user stories"
msgstr "virhe käyttäjätarinoiden tuonnissa"
#: taiga/export_import/dump_service.py:184
#: taiga/export_import/dump_service.py:193
msgid "error importing tasks"
msgstr "virhe tehtävien tuonnissa"
#: taiga/export_import/dump_service.py:189
#: taiga/export_import/dump_service.py:198
msgid "error importing tags"
msgstr "virhe avainsanojen sisäänlukemisessa"
#: taiga/export_import/dump_service.py:193
#: taiga/export_import/dump_service.py:202
msgid "error importing timelines"
msgstr "virhe aikajanojen tuonnissa"
@ -833,7 +832,7 @@ msgstr ""
#: taiga/projects/models.py:536 taiga/projects/models.py:573
#: taiga/projects/models.py:596 taiga/projects/models.py:619
#: taiga/projects/models.py:654 taiga/projects/models.py:677
#: taiga/users/models.py:289 taiga/webhooks/models.py:28
#: taiga/users/models.py:292 taiga/webhooks/models.py:28
msgid "name"
msgstr "nimi"
@ -1305,13 +1304,13 @@ msgstr ""
msgid "The user must be already a project member"
msgstr ""
#: taiga/projects/api.py:671
#: taiga/projects/api.py:672
msgid ""
"The project must have an owner and at least one of the users must be an "
"active admin"
msgstr ""
#: taiga/projects/api.py:705
#: taiga/projects/api.py:706
msgid "You don't have permisions to see that."
msgstr "Sinulla ei ole oikeuksia nähdä tätä."
@ -1341,7 +1340,7 @@ msgstr "omistaja"
#: taiga/projects/notifications/models.py:73
#: taiga/projects/notifications/models.py:90 taiga/projects/tasks/models.py:42
#: taiga/projects/userstories/models.py:64 taiga/projects/wiki/models.py:30
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:302
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:305
msgid "project"
msgstr "projekti"
@ -1380,7 +1379,7 @@ msgstr "on poistettu"
#: taiga/projects/models.py:513 taiga/projects/models.py:540
#: taiga/projects/models.py:575 taiga/projects/models.py:598
#: taiga/projects/models.py:623 taiga/projects/models.py:656
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:297
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:300
msgid "order"
msgstr "order"
@ -1660,7 +1659,7 @@ msgstr ""
#: taiga/projects/milestones/models.py:41 taiga/projects/models.py:148
#: taiga/projects/models.py:474 taiga/projects/models.py:538
#: taiga/projects/models.py:621 taiga/projects/models.py:679
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:291
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:294
msgid "slug"
msgstr "hukka-aika"
@ -2727,50 +2726,72 @@ msgstr ""
msgid "At least one user must be an active admin for this project."
msgstr ""
#: taiga/projects/serializers.py:394
#: taiga/projects/serializers.py:392
msgid "Default options"
msgstr "Oletusoptiot"
#: taiga/projects/serializers.py:395
#: taiga/projects/serializers.py:393
msgid "User story's statuses"
msgstr "Käyttäjätarinatilat"
#: taiga/projects/serializers.py:396
#: taiga/projects/serializers.py:394
msgid "Points"
msgstr "Pisteet"
#: taiga/projects/serializers.py:397
#: taiga/projects/serializers.py:395
msgid "Task's statuses"
msgstr "Tehtävien tilat"
#: taiga/projects/serializers.py:398
#: taiga/projects/serializers.py:396
msgid "Issue's statuses"
msgstr "Pyyntöjen tilat"
#: taiga/projects/serializers.py:399
#: taiga/projects/serializers.py:397
msgid "Issue's types"
msgstr "pyyntötyypit"
#: taiga/projects/serializers.py:400
#: taiga/projects/serializers.py:398
msgid "Priorities"
msgstr "Kiireellisyydet"
#: taiga/projects/serializers.py:401
#: taiga/projects/serializers.py:399
msgid "Severities"
msgstr "Vakavuudet"
#: taiga/projects/serializers.py:402
#: taiga/projects/serializers.py:400
msgid "Roles"
msgstr "Roolit"
#: taiga/projects/services/members.py:147 taiga/users/services.py:625
#: taiga/projects/services/members.py:116
msgid "You have reached your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/members.py:151 taiga/users/services.py:634
#: taiga/projects/services/members.py:120
msgid "You have reached your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/projects.py:69
#: taiga/projects/services/projects.py:106 taiga/users/services.py:582
msgid "You can't have more private projects"
msgstr ""
#: taiga/projects/services/projects.py:73
#: taiga/projects/services/projects.py:110 taiga/users/services.py:585
msgid ""
"This project reaches your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/projects.py:77
#: taiga/projects/services/projects.py:114 taiga/users/services.py:589
msgid "You can't have more public projects"
msgstr ""
#: taiga/projects/services/projects.py:81
#: taiga/projects/services/projects.py:118 taiga/users/services.py:592
msgid ""
"This project reaches your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/stats.py:196
msgid "Future sprint"
msgstr "Tuleva kierros"
@ -3672,7 +3693,7 @@ msgstr ""
msgid "max number of memberships for each owned public project"
msgstr ""
#: taiga/users/models.py:294
#: taiga/users/models.py:297
msgid "permissions"
msgstr "oikeudet"
@ -3688,14 +3709,6 @@ msgstr "Tuntematon käyttäjänimi, yritä uudelleen."
msgid "Username or password does not matches user."
msgstr "Käyttäjätunnus tai salasana eivät ole oikein."
#: taiga/users/services.py:602
msgid "You can't have more private projects"
msgstr ""
#: taiga/users/services.py:612
msgid "You can't have more public projects"
msgstr ""
#: taiga/users/templates/emails/change_email-body-html.jinja:4
#, python-format
msgid ""

View File

@ -22,10 +22,9 @@ msgid ""
msgstr ""
"Project-Id-Version: taiga-back\n"
"Report-Msgid-Bugs-To: \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 <alejandroalonsofernandez@gmail."
"com>\n"
"POT-Creation-Date: 2016-04-08 13:23+0200\n"
"PO-Revision-Date: 2016-04-08 11:23+0000\n"
"Last-Translator: Taiga Dev Team <support@taiga.io>\n"
"Language-Team: French (http://www.transifex.com/taiga-agile-llc/taiga-back/"
"language/fr/)\n"
"MIME-Version: 1.0\n"
@ -211,7 +210,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:641
#: taiga/hooks/api.py:68 taiga/projects/api.py:642
#: 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
@ -528,72 +527,72 @@ msgstr ""
" Commentaire : %(comment)s\n"
" "
#: taiga/export_import/api.py:114
#: taiga/export_import/api.py:119
msgid "We needed at least one role"
msgstr "Veuillez sélectionner au moins un rôle."
#: taiga/export_import/api.py:216
#: taiga/export_import/api.py:309
msgid "Needed dump file"
msgstr "Fichier de dump obligatoire"
#: taiga/export_import/api.py:224
#: taiga/export_import/api.py:316
msgid "Invalid dump format"
msgstr "Format de dump invalide"
#: taiga/export_import/dump_service.py:106
#: taiga/export_import/dump_service.py:115
msgid "error importing project data"
msgstr "Erreur lors de l'importation de données"
#: taiga/export_import/dump_service.py:119
#: taiga/export_import/dump_service.py:128
msgid "error importing lists of project attributes"
msgstr "erreur lors de l'importation des listes des attributs de projet"
#: taiga/export_import/dump_service.py:124
#: taiga/export_import/dump_service.py:133
msgid "error importing default project attributes values"
msgstr ""
"erreur lors de l'importation des valeurs par défaut des attributs de projet"
#: taiga/export_import/dump_service.py:134
#: taiga/export_import/dump_service.py:143
msgid "error importing custom attributes"
msgstr "Erreur à l'importation des champs personnalisés"
#: taiga/export_import/dump_service.py:139
#: taiga/export_import/dump_service.py:148
msgid "error importing roles"
msgstr "Erreur à l'importation des rôles"
#: taiga/export_import/dump_service.py:154
#: taiga/export_import/dump_service.py:163
msgid "error importing memberships"
msgstr "Erreur à l'importation des groupes d'utilisateurs"
#: taiga/export_import/dump_service.py:159
#: taiga/export_import/dump_service.py:168
msgid "error importing sprints"
msgstr "Erreur lors de l'importation des sprints."
#: taiga/export_import/dump_service.py:164
#: taiga/export_import/dump_service.py:173
msgid "error importing wiki pages"
msgstr "Erreur à l'importation des pages Wiki"
#: taiga/export_import/dump_service.py:169
#: taiga/export_import/dump_service.py:178
msgid "error importing wiki links"
msgstr "Erreur à l'importation des liens Wiki"
#: taiga/export_import/dump_service.py:174
#: taiga/export_import/dump_service.py:183
msgid "error importing issues"
msgstr "erreur à l'importation des problèmes"
#: taiga/export_import/dump_service.py:179
#: taiga/export_import/dump_service.py:188
msgid "error importing user stories"
msgstr "erreur à l'importation des histoires utilisateur"
#: taiga/export_import/dump_service.py:184
#: taiga/export_import/dump_service.py:193
msgid "error importing tasks"
msgstr "Erreur lors de l'importation des tâches."
#: taiga/export_import/dump_service.py:189
#: taiga/export_import/dump_service.py:198
msgid "error importing tags"
msgstr "erreur lors de l'importation des mots-clés"
#: taiga/export_import/dump_service.py:193
#: taiga/export_import/dump_service.py:202
msgid "error importing timelines"
msgstr "erreur lors de l'import des timelines"
@ -857,7 +856,7 @@ msgstr "Authentification requise"
#: taiga/projects/models.py:536 taiga/projects/models.py:573
#: taiga/projects/models.py:596 taiga/projects/models.py:619
#: taiga/projects/models.py:654 taiga/projects/models.py:677
#: taiga/users/models.py:289 taiga/webhooks/models.py:28
#: taiga/users/models.py:292 taiga/webhooks/models.py:28
msgid "name"
msgstr "nom"
@ -1318,13 +1317,13 @@ msgstr "L'utilisateur n'existe pas"
msgid "The user must be already a project member"
msgstr ""
#: taiga/projects/api.py:671
#: taiga/projects/api.py:672
msgid ""
"The project must have an owner and at least one of the users must be an "
"active admin"
msgstr ""
#: taiga/projects/api.py:705
#: taiga/projects/api.py:706
msgid "You don't have permisions to see that."
msgstr "Vous n'avez pas les permissions pour consulter cet élément"
@ -1354,7 +1353,7 @@ msgstr "propriétaire"
#: taiga/projects/notifications/models.py:73
#: taiga/projects/notifications/models.py:90 taiga/projects/tasks/models.py:42
#: taiga/projects/userstories/models.py:64 taiga/projects/wiki/models.py:30
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:302
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:305
msgid "project"
msgstr "projet"
@ -1393,7 +1392,7 @@ msgstr "est obsolète"
#: taiga/projects/models.py:513 taiga/projects/models.py:540
#: taiga/projects/models.py:575 taiga/projects/models.py:598
#: taiga/projects/models.py:623 taiga/projects/models.py:656
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:297
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:300
msgid "order"
msgstr "ordre"
@ -1673,7 +1672,7 @@ msgstr "Aime"
#: taiga/projects/milestones/models.py:41 taiga/projects/models.py:148
#: taiga/projects/models.py:474 taiga/projects/models.py:538
#: taiga/projects/models.py:621 taiga/projects/models.py:679
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:291
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:294
msgid "slug"
msgstr "slug"
@ -2524,50 +2523,72 @@ msgstr ""
msgid "At least one user must be an active admin for this project."
msgstr ""
#: taiga/projects/serializers.py:394
#: taiga/projects/serializers.py:392
msgid "Default options"
msgstr "Options par défaut"
#: taiga/projects/serializers.py:395
#: taiga/projects/serializers.py:393
msgid "User story's statuses"
msgstr "Etats de la User Story"
#: taiga/projects/serializers.py:396
#: taiga/projects/serializers.py:394
msgid "Points"
msgstr "Points"
#: taiga/projects/serializers.py:397
#: taiga/projects/serializers.py:395
msgid "Task's statuses"
msgstr "Etats des tâches"
#: taiga/projects/serializers.py:398
#: taiga/projects/serializers.py:396
msgid "Issue's statuses"
msgstr "Statuts des problèmes"
#: taiga/projects/serializers.py:399
#: taiga/projects/serializers.py:397
msgid "Issue's types"
msgstr "Types de problèmes"
#: taiga/projects/serializers.py:400
#: taiga/projects/serializers.py:398
msgid "Priorities"
msgstr "Priorités"
#: taiga/projects/serializers.py:401
#: taiga/projects/serializers.py:399
msgid "Severities"
msgstr "Sévérités"
#: taiga/projects/serializers.py:402
#: taiga/projects/serializers.py:400
msgid "Roles"
msgstr "Rôles"
#: taiga/projects/services/members.py:147 taiga/users/services.py:625
#: taiga/projects/services/members.py:116
msgid "You have reached your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/members.py:151 taiga/users/services.py:634
#: taiga/projects/services/members.py:120
msgid "You have reached your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/projects.py:69
#: taiga/projects/services/projects.py:106 taiga/users/services.py:582
msgid "You can't have more private projects"
msgstr ""
#: taiga/projects/services/projects.py:73
#: taiga/projects/services/projects.py:110 taiga/users/services.py:585
msgid ""
"This project reaches your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/projects.py:77
#: taiga/projects/services/projects.py:114 taiga/users/services.py:589
msgid "You can't have more public projects"
msgstr ""
#: taiga/projects/services/projects.py:81
#: taiga/projects/services/projects.py:118 taiga/users/services.py:592
msgid ""
"This project reaches your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/stats.py:196
msgid "Future sprint"
msgstr "Sprint futurs"
@ -3460,7 +3481,7 @@ msgstr ""
msgid "max number of memberships for each owned public project"
msgstr ""
#: taiga/users/models.py:294
#: taiga/users/models.py:297
msgid "permissions"
msgstr "permissions"
@ -3476,14 +3497,6 @@ msgstr "Nom d'utilisateur invalide. Essayez avec un autre nom."
msgid "Username or password does not matches user."
msgstr "Aucun utilisateur avec ce nom ou ce mot de passe."
#: taiga/users/services.py:602
msgid "You can't have more private projects"
msgstr ""
#: taiga/users/services.py:612
msgid "You can't have more public projects"
msgstr ""
#: taiga/users/templates/emails/change_email-body-html.jinja:4
#, python-format
msgid ""

View File

@ -14,10 +14,9 @@ msgid ""
msgstr ""
"Project-Id-Version: taiga-back\n"
"Report-Msgid-Bugs-To: \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 <alejandroalonsofernandez@gmail."
"com>\n"
"POT-Creation-Date: 2016-04-08 13:23+0200\n"
"PO-Revision-Date: 2016-04-08 11:23+0000\n"
"Last-Translator: Taiga Dev Team <support@taiga.io>\n"
"Language-Team: Italian (http://www.transifex.com/taiga-agile-llc/taiga-back/"
"language/it/)\n"
"MIME-Version: 1.0\n"
@ -196,7 +195,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:641
#: taiga/hooks/api.py:68 taiga/projects/api.py:642
#: 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
@ -518,72 +517,72 @@ msgstr ""
"\n"
"Commento: %(comment)s"
#: taiga/export_import/api.py:114
#: taiga/export_import/api.py:119
msgid "We needed at least one role"
msgstr "C'è bisogno di almeno un ruolo"
#: taiga/export_import/api.py:216
#: taiga/export_import/api.py:309
msgid "Needed dump file"
msgstr "E' richiesto un file di dump"
#: taiga/export_import/api.py:224
#: taiga/export_import/api.py:316
msgid "Invalid dump format"
msgstr "Formato di dump invalido"
#: taiga/export_import/dump_service.py:106
#: taiga/export_import/dump_service.py:115
msgid "error importing project data"
msgstr "Errore nell'importazione del progetto dati"
#: taiga/export_import/dump_service.py:119
#: taiga/export_import/dump_service.py:128
msgid "error importing lists of project attributes"
msgstr "Errore nell'importazione della lista degli attributi di progetto"
#: taiga/export_import/dump_service.py:124
#: taiga/export_import/dump_service.py:133
msgid "error importing default project attributes values"
msgstr ""
"Errore nell'importazione dei valori predefiniti degli attributi del progetto."
#: taiga/export_import/dump_service.py:134
#: taiga/export_import/dump_service.py:143
msgid "error importing custom attributes"
msgstr "Errore nell'importazione degli attributi personalizzati"
#: taiga/export_import/dump_service.py:139
#: taiga/export_import/dump_service.py:148
msgid "error importing roles"
msgstr "Errore nell'importazione i ruoli"
#: taiga/export_import/dump_service.py:154
#: taiga/export_import/dump_service.py:163
msgid "error importing memberships"
msgstr "Errore nell'importazione delle iscrizioni"
#: taiga/export_import/dump_service.py:159
#: taiga/export_import/dump_service.py:168
msgid "error importing sprints"
msgstr "errore nell'importazione degli sprints"
#: taiga/export_import/dump_service.py:164
#: taiga/export_import/dump_service.py:173
msgid "error importing wiki pages"
msgstr "Errore nell'importazione delle pagine wiki"
#: taiga/export_import/dump_service.py:169
#: taiga/export_import/dump_service.py:178
msgid "error importing wiki links"
msgstr "Errore nell'importazione dei link di wiki"
#: taiga/export_import/dump_service.py:174
#: taiga/export_import/dump_service.py:183
msgid "error importing issues"
msgstr "errore nell'importazione dei problemi"
#: taiga/export_import/dump_service.py:179
#: taiga/export_import/dump_service.py:188
msgid "error importing user stories"
msgstr "Errore nell'importazione delle user story"
#: taiga/export_import/dump_service.py:184
#: taiga/export_import/dump_service.py:193
msgid "error importing tasks"
msgstr "Errore nell'importazione dei compiti "
#: taiga/export_import/dump_service.py:189
#: taiga/export_import/dump_service.py:198
msgid "error importing tags"
msgstr "Errore nell'importazione dei tags"
#: taiga/export_import/dump_service.py:193
#: taiga/export_import/dump_service.py:202
msgid "error importing timelines"
msgstr "Errore nell'importazione delle timelines"
@ -920,7 +919,7 @@ msgstr "E' richiesta l'autenticazione"
#: taiga/projects/models.py:536 taiga/projects/models.py:573
#: taiga/projects/models.py:596 taiga/projects/models.py:619
#: taiga/projects/models.py:654 taiga/projects/models.py:677
#: taiga/users/models.py:289 taiga/webhooks/models.py:28
#: taiga/users/models.py:292 taiga/webhooks/models.py:28
msgid "name"
msgstr "nome"
@ -1439,13 +1438,13 @@ msgstr ""
msgid "The user must be already a project member"
msgstr ""
#: taiga/projects/api.py:671
#: taiga/projects/api.py:672
msgid ""
"The project must have an owner and at least one of the users must be an "
"active admin"
msgstr ""
#: taiga/projects/api.py:705
#: taiga/projects/api.py:706
msgid "You don't have permisions to see that."
msgstr "Non hai il permesso di vedere questo elemento."
@ -1475,7 +1474,7 @@ msgstr "proprietario"
#: taiga/projects/notifications/models.py:73
#: taiga/projects/notifications/models.py:90 taiga/projects/tasks/models.py:42
#: taiga/projects/userstories/models.py:64 taiga/projects/wiki/models.py:30
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:302
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:305
msgid "project"
msgstr "progetto"
@ -1514,7 +1513,7 @@ msgstr "non approvato"
#: taiga/projects/models.py:513 taiga/projects/models.py:540
#: taiga/projects/models.py:575 taiga/projects/models.py:598
#: taiga/projects/models.py:623 taiga/projects/models.py:656
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:297
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:300
msgid "order"
msgstr "ordine"
@ -1794,7 +1793,7 @@ msgstr "Piaciuto"
#: taiga/projects/milestones/models.py:41 taiga/projects/models.py:148
#: taiga/projects/models.py:474 taiga/projects/models.py:538
#: taiga/projects/models.py:621 taiga/projects/models.py:679
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:291
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:294
msgid "slug"
msgstr "lumaca"
@ -3002,50 +3001,72 @@ msgstr ""
msgid "At least one user must be an active admin for this project."
msgstr ""
#: taiga/projects/serializers.py:394
#: taiga/projects/serializers.py:392
msgid "Default options"
msgstr "Opzioni predefinite"
#: taiga/projects/serializers.py:395
#: taiga/projects/serializers.py:393
msgid "User story's statuses"
msgstr "Stati della storia utente"
#: taiga/projects/serializers.py:396
#: taiga/projects/serializers.py:394
msgid "Points"
msgstr "Punti"
#: taiga/projects/serializers.py:397
#: taiga/projects/serializers.py:395
msgid "Task's statuses"
msgstr "Stati del compito"
#: taiga/projects/serializers.py:398
#: taiga/projects/serializers.py:396
msgid "Issue's statuses"
msgstr "Stati del problema"
#: taiga/projects/serializers.py:399
#: taiga/projects/serializers.py:397
msgid "Issue's types"
msgstr "Tipologie del problema"
#: taiga/projects/serializers.py:400
#: taiga/projects/serializers.py:398
msgid "Priorities"
msgstr "Priorità"
#: taiga/projects/serializers.py:401
#: taiga/projects/serializers.py:399
msgid "Severities"
msgstr "Criticità"
#: taiga/projects/serializers.py:402
#: taiga/projects/serializers.py:400
msgid "Roles"
msgstr "Ruoli"
#: taiga/projects/services/members.py:147 taiga/users/services.py:625
#: taiga/projects/services/members.py:116
msgid "You have reached your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/members.py:151 taiga/users/services.py:634
#: taiga/projects/services/members.py:120
msgid "You have reached your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/projects.py:69
#: taiga/projects/services/projects.py:106 taiga/users/services.py:582
msgid "You can't have more private projects"
msgstr ""
#: taiga/projects/services/projects.py:73
#: taiga/projects/services/projects.py:110 taiga/users/services.py:585
msgid ""
"This project reaches your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/projects.py:77
#: taiga/projects/services/projects.py:114 taiga/users/services.py:589
msgid "You can't have more public projects"
msgstr ""
#: taiga/projects/services/projects.py:81
#: taiga/projects/services/projects.py:118 taiga/users/services.py:592
msgid ""
"This project reaches your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/stats.py:196
msgid "Future sprint"
msgstr "Sprint futuri"
@ -3972,7 +3993,7 @@ msgstr ""
msgid "max number of memberships for each owned public project"
msgstr ""
#: taiga/users/models.py:294
#: taiga/users/models.py:297
msgid "permissions"
msgstr "permessi"
@ -3988,14 +4009,6 @@ msgstr "Nome utente non valido. Provane uno diverso."
msgid "Username or password does not matches user."
msgstr "Il nome utente o la password non corrispondono all'utente."
#: taiga/users/services.py:602
msgid "You can't have more private projects"
msgstr ""
#: taiga/users/services.py:612
msgid "You can't have more public projects"
msgstr ""
#: taiga/users/templates/emails/change_email-body-html.jinja:4
#, python-format
msgid ""

View File

@ -9,10 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: taiga-back\n"
"Report-Msgid-Bugs-To: \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 <alejandroalonsofernandez@gmail."
"com>\n"
"POT-Creation-Date: 2016-04-08 13:23+0200\n"
"PO-Revision-Date: 2016-04-08 11:23+0000\n"
"Last-Translator: Taiga Dev Team <support@taiga.io>\n"
"Language-Team: Dutch (http://www.transifex.com/taiga-agile-llc/taiga-back/"
"language/nl/)\n"
"MIME-Version: 1.0\n"
@ -196,7 +195,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:641
#: taiga/hooks/api.py:68 taiga/projects/api.py:642
#: 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
@ -507,71 +506,71 @@ msgstr ""
" Commentaar: %(comment)s\n"
" "
#: taiga/export_import/api.py:114
#: taiga/export_import/api.py:119
msgid "We needed at least one role"
msgstr "We hadden minstens één rol nodig"
#: taiga/export_import/api.py:216
#: taiga/export_import/api.py:309
msgid "Needed dump file"
msgstr "Dump file nodig"
#: taiga/export_import/api.py:224
#: taiga/export_import/api.py:316
msgid "Invalid dump format"
msgstr "Ongeldig dump formaat"
#: taiga/export_import/dump_service.py:106
#: taiga/export_import/dump_service.py:115
msgid "error importing project data"
msgstr "fout bij het importeren van project data"
#: taiga/export_import/dump_service.py:119
#: taiga/export_import/dump_service.py:128
msgid "error importing lists of project attributes"
msgstr "fout bij importeren van project attributenlijst"
#: taiga/export_import/dump_service.py:124
#: taiga/export_import/dump_service.py:133
msgid "error importing default project attributes values"
msgstr "fout bij importeren van standaard projectattributen waarden"
#: taiga/export_import/dump_service.py:134
#: taiga/export_import/dump_service.py:143
msgid "error importing custom attributes"
msgstr "fout bij importeren eigen attributen"
#: taiga/export_import/dump_service.py:139
#: taiga/export_import/dump_service.py:148
msgid "error importing roles"
msgstr "fout bij importeren rollen"
#: taiga/export_import/dump_service.py:154
#: taiga/export_import/dump_service.py:163
msgid "error importing memberships"
msgstr "fout bij importeren lidmaatschappen"
#: taiga/export_import/dump_service.py:159
#: taiga/export_import/dump_service.py:168
msgid "error importing sprints"
msgstr "fout bij importeren sprints"
#: taiga/export_import/dump_service.py:164
#: taiga/export_import/dump_service.py:173
msgid "error importing wiki pages"
msgstr "fout bij importeren wiki pagina's"
#: taiga/export_import/dump_service.py:169
#: taiga/export_import/dump_service.py:178
msgid "error importing wiki links"
msgstr "fout bij importeren wiki links"
#: taiga/export_import/dump_service.py:174
#: taiga/export_import/dump_service.py:183
msgid "error importing issues"
msgstr "fout bij importeren issues"
#: taiga/export_import/dump_service.py:179
#: taiga/export_import/dump_service.py:188
msgid "error importing user stories"
msgstr "fout bij importeren user stories"
#: taiga/export_import/dump_service.py:184
#: taiga/export_import/dump_service.py:193
msgid "error importing tasks"
msgstr "fout bij importeren taken"
#: taiga/export_import/dump_service.py:189
#: taiga/export_import/dump_service.py:198
msgid "error importing tags"
msgstr "fout bij importeren tags"
#: taiga/export_import/dump_service.py:193
#: taiga/export_import/dump_service.py:202
msgid "error importing timelines"
msgstr "fout bij importeren tijdlijnen"
@ -783,7 +782,7 @@ msgstr ""
#: taiga/projects/models.py:536 taiga/projects/models.py:573
#: taiga/projects/models.py:596 taiga/projects/models.py:619
#: taiga/projects/models.py:654 taiga/projects/models.py:677
#: taiga/users/models.py:289 taiga/webhooks/models.py:28
#: taiga/users/models.py:292 taiga/webhooks/models.py:28
msgid "name"
msgstr "naam"
@ -1239,13 +1238,13 @@ msgstr ""
msgid "The user must be already a project member"
msgstr ""
#: taiga/projects/api.py:671
#: taiga/projects/api.py:672
msgid ""
"The project must have an owner and at least one of the users must be an "
"active admin"
msgstr ""
#: taiga/projects/api.py:705
#: taiga/projects/api.py:706
msgid "You don't have permisions to see that."
msgstr "Je hebt geen toestamming om dat te bekijken."
@ -1275,7 +1274,7 @@ msgstr "eigenaar"
#: taiga/projects/notifications/models.py:73
#: taiga/projects/notifications/models.py:90 taiga/projects/tasks/models.py:42
#: taiga/projects/userstories/models.py:64 taiga/projects/wiki/models.py:30
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:302
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:305
msgid "project"
msgstr "project"
@ -1314,7 +1313,7 @@ msgstr "is verouderd"
#: taiga/projects/models.py:513 taiga/projects/models.py:540
#: taiga/projects/models.py:575 taiga/projects/models.py:598
#: taiga/projects/models.py:623 taiga/projects/models.py:656
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:297
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:300
msgid "order"
msgstr "volgorde"
@ -1596,7 +1595,7 @@ msgstr "Personen die dit leuk vinden"
#: taiga/projects/milestones/models.py:41 taiga/projects/models.py:148
#: taiga/projects/models.py:474 taiga/projects/models.py:538
#: taiga/projects/models.py:621 taiga/projects/models.py:679
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:291
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:294
msgid "slug"
msgstr "slug"
@ -2447,50 +2446,72 @@ msgstr ""
msgid "At least one user must be an active admin for this project."
msgstr ""
#: taiga/projects/serializers.py:394
#: taiga/projects/serializers.py:392
msgid "Default options"
msgstr "Standaard opties"
#: taiga/projects/serializers.py:395
#: taiga/projects/serializers.py:393
msgid "User story's statuses"
msgstr "Status van User story"
#: taiga/projects/serializers.py:396
#: taiga/projects/serializers.py:394
msgid "Points"
msgstr "Punten"
#: taiga/projects/serializers.py:397
#: taiga/projects/serializers.py:395
msgid "Task's statuses"
msgstr "Statussen van taken"
#: taiga/projects/serializers.py:398
#: taiga/projects/serializers.py:396
msgid "Issue's statuses"
msgstr "Statussen van Issues"
#: taiga/projects/serializers.py:399
#: taiga/projects/serializers.py:397
msgid "Issue's types"
msgstr "Types van issue"
#: taiga/projects/serializers.py:400
#: taiga/projects/serializers.py:398
msgid "Priorities"
msgstr "Prioriteiten"
#: taiga/projects/serializers.py:401
#: taiga/projects/serializers.py:399
msgid "Severities"
msgstr "Ernstniveaus"
#: taiga/projects/serializers.py:402
#: taiga/projects/serializers.py:400
msgid "Roles"
msgstr "Rollen"
#: taiga/projects/services/members.py:147 taiga/users/services.py:625
#: taiga/projects/services/members.py:116
msgid "You have reached your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/members.py:151 taiga/users/services.py:634
#: taiga/projects/services/members.py:120
msgid "You have reached your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/projects.py:69
#: taiga/projects/services/projects.py:106 taiga/users/services.py:582
msgid "You can't have more private projects"
msgstr ""
#: taiga/projects/services/projects.py:73
#: taiga/projects/services/projects.py:110 taiga/users/services.py:585
msgid ""
"This project reaches your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/projects.py:77
#: taiga/projects/services/projects.py:114 taiga/users/services.py:589
msgid "You can't have more public projects"
msgstr ""
#: taiga/projects/services/projects.py:81
#: taiga/projects/services/projects.py:118 taiga/users/services.py:592
msgid ""
"This project reaches your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/stats.py:196
msgid "Future sprint"
msgstr "Toekomstige sprint"
@ -3365,7 +3386,7 @@ msgstr ""
msgid "max number of memberships for each owned public project"
msgstr ""
#: taiga/users/models.py:294
#: taiga/users/models.py:297
msgid "permissions"
msgstr "toestemmingen"
@ -3381,14 +3402,6 @@ msgstr "Ongeldige gebruikersnaam. Probeer met een andere."
msgid "Username or password does not matches user."
msgstr "Gebruikersnaam of wachtwoord stemt niet overeen met gebruiker."
#: taiga/users/services.py:602
msgid "You can't have more private projects"
msgstr ""
#: taiga/users/services.py:612
msgid "You can't have more public projects"
msgstr ""
#: taiga/users/templates/emails/change_email-body-html.jinja:4
#, python-format
msgid ""

View File

@ -10,10 +10,9 @@ msgid ""
msgstr ""
"Project-Id-Version: taiga-back\n"
"Report-Msgid-Bugs-To: \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 <alejandroalonsofernandez@gmail."
"com>\n"
"POT-Creation-Date: 2016-04-08 13:23+0200\n"
"PO-Revision-Date: 2016-04-08 11:23+0000\n"
"Last-Translator: Taiga Dev Team <support@taiga.io>\n"
"Language-Team: Polish (http://www.transifex.com/taiga-agile-llc/taiga-back/"
"language/pl/)\n"
"MIME-Version: 1.0\n"
@ -190,7 +189,7 @@ msgstr ""
"jest uszkodzony."
#: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209
#: taiga/hooks/api.py:68 taiga/projects/api.py:641
#: taiga/hooks/api.py:68 taiga/projects/api.py:642
#: 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
@ -508,71 +507,71 @@ msgstr ""
" Komentarz: %(comment)s\n"
" "
#: taiga/export_import/api.py:114
#: taiga/export_import/api.py:119
msgid "We needed at least one role"
msgstr "Potrzeba conajmiej jednej roli"
#: taiga/export_import/api.py:216
#: taiga/export_import/api.py:309
msgid "Needed dump file"
msgstr "Wymagany plik zrzutu"
#: taiga/export_import/api.py:224
#: taiga/export_import/api.py:316
msgid "Invalid dump format"
msgstr "Nieprawidłowy format zrzutu"
#: taiga/export_import/dump_service.py:106
#: taiga/export_import/dump_service.py:115
msgid "error importing project data"
msgstr "błąd w trakcie importu danych projektu"
#: taiga/export_import/dump_service.py:119
#: taiga/export_import/dump_service.py:128
msgid "error importing lists of project attributes"
msgstr "błąd w trakcie importu atrybutów projektu"
#: taiga/export_import/dump_service.py:124
#: taiga/export_import/dump_service.py:133
msgid "error importing default project attributes values"
msgstr "błąd w trakcie importu domyślnych atrybutów projektu"
#: taiga/export_import/dump_service.py:134
#: taiga/export_import/dump_service.py:143
msgid "error importing custom attributes"
msgstr "błąd w trakcie importu niestandardowych atrybutów"
#: taiga/export_import/dump_service.py:139
#: taiga/export_import/dump_service.py:148
msgid "error importing roles"
msgstr "błąd w trakcie importu ról"
#: taiga/export_import/dump_service.py:154
#: taiga/export_import/dump_service.py:163
msgid "error importing memberships"
msgstr "błąd w trakcie importu członkostw"
#: taiga/export_import/dump_service.py:159
#: taiga/export_import/dump_service.py:168
msgid "error importing sprints"
msgstr "błąd w trakcie importu sprintów"
#: taiga/export_import/dump_service.py:164
#: taiga/export_import/dump_service.py:173
msgid "error importing wiki pages"
msgstr "błąd w trakcie importu stron Wiki"
#: taiga/export_import/dump_service.py:169
#: taiga/export_import/dump_service.py:178
msgid "error importing wiki links"
msgstr "błąd w trakcie importu linków Wiki"
#: taiga/export_import/dump_service.py:174
#: taiga/export_import/dump_service.py:183
msgid "error importing issues"
msgstr "błąd w trakcie importu zgłoszeń"
#: taiga/export_import/dump_service.py:179
#: taiga/export_import/dump_service.py:188
msgid "error importing user stories"
msgstr "błąd w trakcie importu historyjek użytkownika"
#: taiga/export_import/dump_service.py:184
#: taiga/export_import/dump_service.py:193
msgid "error importing tasks"
msgstr "błąd w trakcie importu zadań"
#: taiga/export_import/dump_service.py:189
#: taiga/export_import/dump_service.py:198
msgid "error importing tags"
msgstr "błąd w trakcie importu tagów"
#: taiga/export_import/dump_service.py:193
#: taiga/export_import/dump_service.py:202
msgid "error importing timelines"
msgstr "błąd w trakcie importu osi czasu"
@ -851,7 +850,7 @@ msgstr ""
#: taiga/projects/models.py:536 taiga/projects/models.py:573
#: taiga/projects/models.py:596 taiga/projects/models.py:619
#: taiga/projects/models.py:654 taiga/projects/models.py:677
#: taiga/users/models.py:289 taiga/webhooks/models.py:28
#: taiga/users/models.py:292 taiga/webhooks/models.py:28
msgid "name"
msgstr "nazwa"
@ -1347,13 +1346,13 @@ msgstr ""
msgid "The user must be already a project member"
msgstr ""
#: taiga/projects/api.py:671
#: taiga/projects/api.py:672
msgid ""
"The project must have an owner and at least one of the users must be an "
"active admin"
msgstr ""
#: taiga/projects/api.py:705
#: taiga/projects/api.py:706
msgid "You don't have permisions to see that."
msgstr "Nie masz uprawnień by to zobaczyć."
@ -1383,7 +1382,7 @@ msgstr "właściciel"
#: taiga/projects/notifications/models.py:73
#: taiga/projects/notifications/models.py:90 taiga/projects/tasks/models.py:42
#: taiga/projects/userstories/models.py:64 taiga/projects/wiki/models.py:30
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:302
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:305
msgid "project"
msgstr "projekt"
@ -1422,7 +1421,7 @@ msgstr "jest przestarzałe"
#: taiga/projects/models.py:513 taiga/projects/models.py:540
#: taiga/projects/models.py:575 taiga/projects/models.py:598
#: taiga/projects/models.py:623 taiga/projects/models.py:656
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:297
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:300
msgid "order"
msgstr "kolejność"
@ -1702,7 +1701,7 @@ msgstr ""
#: taiga/projects/milestones/models.py:41 taiga/projects/models.py:148
#: taiga/projects/models.py:474 taiga/projects/models.py:538
#: taiga/projects/models.py:621 taiga/projects/models.py:679
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:291
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:294
msgid "slug"
msgstr "slug"
@ -2784,50 +2783,72 @@ msgstr ""
msgid "At least one user must be an active admin for this project."
msgstr ""
#: taiga/projects/serializers.py:394
#: taiga/projects/serializers.py:392
msgid "Default options"
msgstr "Domyślne opcje"
#: taiga/projects/serializers.py:395
#: taiga/projects/serializers.py:393
msgid "User story's statuses"
msgstr "Statusy historyjek użytkownika"
#: taiga/projects/serializers.py:396
#: taiga/projects/serializers.py:394
msgid "Points"
msgstr "Punkty"
#: taiga/projects/serializers.py:397
#: taiga/projects/serializers.py:395
msgid "Task's statuses"
msgstr "Statusy zadań"
#: taiga/projects/serializers.py:398
#: taiga/projects/serializers.py:396
msgid "Issue's statuses"
msgstr "Statusy zgłoszeń"
#: taiga/projects/serializers.py:399
#: taiga/projects/serializers.py:397
msgid "Issue's types"
msgstr "Typu zgłoszeń"
#: taiga/projects/serializers.py:400
#: taiga/projects/serializers.py:398
msgid "Priorities"
msgstr "Priorytety"
#: taiga/projects/serializers.py:401
#: taiga/projects/serializers.py:399
msgid "Severities"
msgstr "Ważność"
#: taiga/projects/serializers.py:402
#: taiga/projects/serializers.py:400
msgid "Roles"
msgstr "Role"
#: taiga/projects/services/members.py:147 taiga/users/services.py:625
#: taiga/projects/services/members.py:116
msgid "You have reached your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/members.py:151 taiga/users/services.py:634
#: taiga/projects/services/members.py:120
msgid "You have reached your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/projects.py:69
#: taiga/projects/services/projects.py:106 taiga/users/services.py:582
msgid "You can't have more private projects"
msgstr ""
#: taiga/projects/services/projects.py:73
#: taiga/projects/services/projects.py:110 taiga/users/services.py:585
msgid ""
"This project reaches your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/projects.py:77
#: taiga/projects/services/projects.py:114 taiga/users/services.py:589
msgid "You can't have more public projects"
msgstr ""
#: taiga/projects/services/projects.py:81
#: taiga/projects/services/projects.py:118 taiga/users/services.py:592
msgid ""
"This project reaches your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/stats.py:196
msgid "Future sprint"
msgstr "Przyszły sprint"
@ -3736,7 +3757,7 @@ msgstr ""
msgid "max number of memberships for each owned public project"
msgstr ""
#: taiga/users/models.py:294
#: taiga/users/models.py:297
msgid "permissions"
msgstr "uprawnienia"
@ -3752,14 +3773,6 @@ msgstr "Niepoprawna nazwa użytkownika. Spróbuj podać inną."
msgid "Username or password does not matches user."
msgstr "Nazwa użytkownika lub hasło są nieprawidłowe"
#: taiga/users/services.py:602
msgid "You can't have more private projects"
msgstr ""
#: taiga/users/services.py:612
msgid "You can't have more public projects"
msgstr ""
#: taiga/users/templates/emails/change_email-body-html.jinja:4
#, python-format
msgid ""

View File

@ -19,10 +19,9 @@ msgid ""
msgstr ""
"Project-Id-Version: taiga-back\n"
"Report-Msgid-Bugs-To: \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 <alejandroalonsofernandez@gmail."
"com>\n"
"POT-Creation-Date: 2016-04-08 13:23+0200\n"
"PO-Revision-Date: 2016-04-08 11:23+0000\n"
"Last-Translator: Taiga Dev Team <support@taiga.io>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/taiga-agile-llc/"
"taiga-back/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
@ -197,7 +196,7 @@ msgstr ""
"está corrompido."
#: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209
#: taiga/hooks/api.py:68 taiga/projects/api.py:641
#: taiga/hooks/api.py:68 taiga/projects/api.py:642
#: 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
@ -516,71 +515,71 @@ msgstr ""
" Comentário: %(comment)s\n"
" "
#: taiga/export_import/api.py:114
#: taiga/export_import/api.py:119
msgid "We needed at least one role"
msgstr "Nós precisamos de pelo menos uma função"
#: taiga/export_import/api.py:216
#: taiga/export_import/api.py:309
msgid "Needed dump file"
msgstr "Necessário de arquivo de restauração"
#: taiga/export_import/api.py:224
#: taiga/export_import/api.py:316
msgid "Invalid dump format"
msgstr "Formato de aquivo de restauração inválido"
#: taiga/export_import/dump_service.py:106
#: taiga/export_import/dump_service.py:115
msgid "error importing project data"
msgstr "erro ao importar informações de projeto"
#: taiga/export_import/dump_service.py:119
#: taiga/export_import/dump_service.py:128
msgid "error importing lists of project attributes"
msgstr "erro importando lista de atributos do projeto"
#: taiga/export_import/dump_service.py:124
#: taiga/export_import/dump_service.py:133
msgid "error importing default project attributes values"
msgstr "erro importando valores de atributos do projeto padrão"
#: taiga/export_import/dump_service.py:134
#: taiga/export_import/dump_service.py:143
msgid "error importing custom attributes"
msgstr "erro importando atributos personalizados"
#: taiga/export_import/dump_service.py:139
#: taiga/export_import/dump_service.py:148
msgid "error importing roles"
msgstr "erro importando funcões"
#: taiga/export_import/dump_service.py:154
#: taiga/export_import/dump_service.py:163
msgid "error importing memberships"
msgstr "erro importando filiações"
#: taiga/export_import/dump_service.py:159
#: taiga/export_import/dump_service.py:168
msgid "error importing sprints"
msgstr "erro importando sprints"
#: taiga/export_import/dump_service.py:164
#: taiga/export_import/dump_service.py:173
msgid "error importing wiki pages"
msgstr "erro importando páginas wiki"
#: taiga/export_import/dump_service.py:169
#: taiga/export_import/dump_service.py:178
msgid "error importing wiki links"
msgstr "erro importando wiki links"
#: taiga/export_import/dump_service.py:174
#: taiga/export_import/dump_service.py:183
msgid "error importing issues"
msgstr "erro importando casos"
#: taiga/export_import/dump_service.py:179
#: taiga/export_import/dump_service.py:188
msgid "error importing user stories"
msgstr "erro importando user stories"
#: taiga/export_import/dump_service.py:184
#: taiga/export_import/dump_service.py:193
msgid "error importing tasks"
msgstr "erro importando tarefas"
#: taiga/export_import/dump_service.py:189
#: taiga/export_import/dump_service.py:198
msgid "error importing tags"
msgstr "erro importando tags"
#: taiga/export_import/dump_service.py:193
#: taiga/export_import/dump_service.py:202
msgid "error importing timelines"
msgstr "erro importando linha do tempo"
@ -858,7 +857,7 @@ msgstr "Autenticação necessária"
#: taiga/projects/models.py:536 taiga/projects/models.py:573
#: taiga/projects/models.py:596 taiga/projects/models.py:619
#: taiga/projects/models.py:654 taiga/projects/models.py:677
#: taiga/users/models.py:289 taiga/webhooks/models.py:28
#: taiga/users/models.py:292 taiga/webhooks/models.py:28
msgid "name"
msgstr "Nome"
@ -1353,13 +1352,13 @@ msgstr ""
msgid "The user must be already a project member"
msgstr ""
#: taiga/projects/api.py:671
#: taiga/projects/api.py:672
msgid ""
"The project must have an owner and at least one of the users must be an "
"active admin"
msgstr ""
#: taiga/projects/api.py:705
#: taiga/projects/api.py:706
msgid "You don't have permisions to see that."
msgstr "Você não tem permissão para ver isso"
@ -1389,7 +1388,7 @@ msgstr "dono"
#: taiga/projects/notifications/models.py:73
#: taiga/projects/notifications/models.py:90 taiga/projects/tasks/models.py:42
#: taiga/projects/userstories/models.py:64 taiga/projects/wiki/models.py:30
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:302
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:305
msgid "project"
msgstr "projeto"
@ -1428,7 +1427,7 @@ msgstr "está obsoleto"
#: taiga/projects/models.py:513 taiga/projects/models.py:540
#: taiga/projects/models.py:575 taiga/projects/models.py:598
#: taiga/projects/models.py:623 taiga/projects/models.py:656
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:297
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:300
msgid "order"
msgstr "ordem"
@ -1708,7 +1707,7 @@ msgstr "Curtidas"
#: taiga/projects/milestones/models.py:41 taiga/projects/models.py:148
#: taiga/projects/models.py:474 taiga/projects/models.py:538
#: taiga/projects/models.py:621 taiga/projects/models.py:679
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:291
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:294
msgid "slug"
msgstr "slug"
@ -2768,50 +2767,72 @@ msgstr ""
msgid "At least one user must be an active admin for this project."
msgstr ""
#: taiga/projects/serializers.py:394
#: taiga/projects/serializers.py:392
msgid "Default options"
msgstr "Opções padrão"
#: taiga/projects/serializers.py:395
#: taiga/projects/serializers.py:393
msgid "User story's statuses"
msgstr "Status de user story"
#: taiga/projects/serializers.py:396
#: taiga/projects/serializers.py:394
msgid "Points"
msgstr "Pontos"
#: taiga/projects/serializers.py:397
#: taiga/projects/serializers.py:395
msgid "Task's statuses"
msgstr "Status de tarefas"
#: taiga/projects/serializers.py:398
#: taiga/projects/serializers.py:396
msgid "Issue's statuses"
msgstr "Status de casos"
#: taiga/projects/serializers.py:399
#: taiga/projects/serializers.py:397
msgid "Issue's types"
msgstr "Tipos de casos"
#: taiga/projects/serializers.py:400
#: taiga/projects/serializers.py:398
msgid "Priorities"
msgstr "Prioridades"
#: taiga/projects/serializers.py:401
#: taiga/projects/serializers.py:399
msgid "Severities"
msgstr "Severidades"
#: taiga/projects/serializers.py:402
#: taiga/projects/serializers.py:400
msgid "Roles"
msgstr "Funções"
#: taiga/projects/services/members.py:147 taiga/users/services.py:625
#: taiga/projects/services/members.py:116
msgid "You have reached your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/members.py:151 taiga/users/services.py:634
#: taiga/projects/services/members.py:120
msgid "You have reached your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/projects.py:69
#: taiga/projects/services/projects.py:106 taiga/users/services.py:582
msgid "You can't have more private projects"
msgstr ""
#: taiga/projects/services/projects.py:73
#: taiga/projects/services/projects.py:110 taiga/users/services.py:585
msgid ""
"This project reaches your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/projects.py:77
#: taiga/projects/services/projects.py:114 taiga/users/services.py:589
msgid "You can't have more public projects"
msgstr ""
#: taiga/projects/services/projects.py:81
#: taiga/projects/services/projects.py:118 taiga/users/services.py:592
msgid ""
"This project reaches your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/stats.py:196
msgid "Future sprint"
msgstr "Sprint futuro"
@ -3715,7 +3736,7 @@ msgstr ""
msgid "max number of memberships for each owned public project"
msgstr ""
#: taiga/users/models.py:294
#: taiga/users/models.py:297
msgid "permissions"
msgstr "permissões"
@ -3731,14 +3752,6 @@ msgstr "Usuário inválido. Tente com um diferente."
msgid "Username or password does not matches user."
msgstr "Usuário ou senha não correspondem ao usuário"
#: taiga/users/services.py:602
msgid "You can't have more private projects"
msgstr ""
#: taiga/users/services.py:612
msgid "You can't have more public projects"
msgstr ""
#: taiga/users/templates/emails/change_email-body-html.jinja:4
#, python-format
msgid ""

View File

@ -15,10 +15,9 @@ msgid ""
msgstr ""
"Project-Id-Version: taiga-back\n"
"Report-Msgid-Bugs-To: \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 <alejandroalonsofernandez@gmail."
"com>\n"
"POT-Creation-Date: 2016-04-08 13:23+0200\n"
"PO-Revision-Date: 2016-04-08 11:23+0000\n"
"Last-Translator: Taiga Dev Team <support@taiga.io>\n"
"Language-Team: Russian (http://www.transifex.com/taiga-agile-llc/taiga-back/"
"language/ru/)\n"
"MIME-Version: 1.0\n"
@ -200,7 +199,7 @@ msgstr ""
"изображение, либо не корректное изображение."
#: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209
#: taiga/hooks/api.py:68 taiga/projects/api.py:641
#: taiga/hooks/api.py:68 taiga/projects/api.py:642
#: 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
@ -518,71 +517,71 @@ msgstr ""
" Комментарий: %(comment)s\n"
" "
#: taiga/export_import/api.py:114
#: taiga/export_import/api.py:119
msgid "We needed at least one role"
msgstr "Нам была нужна хотя бы одна роль"
#: taiga/export_import/api.py:216
#: taiga/export_import/api.py:309
msgid "Needed dump file"
msgstr "Необходим дамп-файл"
#: taiga/export_import/api.py:224
#: taiga/export_import/api.py:316
msgid "Invalid dump format"
msgstr "Неправильный формат дампа"
#: taiga/export_import/dump_service.py:106
#: taiga/export_import/dump_service.py:115
msgid "error importing project data"
msgstr "ошибка при импорте данных проекта"
#: taiga/export_import/dump_service.py:119
#: taiga/export_import/dump_service.py:128
msgid "error importing lists of project attributes"
msgstr "ошибка при импорте списков свойств проекта"
#: taiga/export_import/dump_service.py:124
#: taiga/export_import/dump_service.py:133
msgid "error importing default project attributes values"
msgstr "ошибка при импорте значений по умолчанию свойств проекта"
#: taiga/export_import/dump_service.py:134
#: taiga/export_import/dump_service.py:143
msgid "error importing custom attributes"
msgstr "ошибка при импорте пользовательских свойств"
#: taiga/export_import/dump_service.py:139
#: taiga/export_import/dump_service.py:148
msgid "error importing roles"
msgstr "ошибка при импорте ролей"
#: taiga/export_import/dump_service.py:154
#: taiga/export_import/dump_service.py:163
msgid "error importing memberships"
msgstr "ошибка при импорте членства"
#: taiga/export_import/dump_service.py:159
#: taiga/export_import/dump_service.py:168
msgid "error importing sprints"
msgstr "ошибка при импорте спринтов"
#: taiga/export_import/dump_service.py:164
#: taiga/export_import/dump_service.py:173
msgid "error importing wiki pages"
msgstr "ошибка при импорте вики-страниц"
#: taiga/export_import/dump_service.py:169
#: taiga/export_import/dump_service.py:178
msgid "error importing wiki links"
msgstr "ошибка при импорте вики-ссылок"
#: taiga/export_import/dump_service.py:174
#: taiga/export_import/dump_service.py:183
msgid "error importing issues"
msgstr "ошибка при импорте запросов"
#: taiga/export_import/dump_service.py:179
#: taiga/export_import/dump_service.py:188
msgid "error importing user stories"
msgstr "ошибка импорта историй от пользователей"
#: taiga/export_import/dump_service.py:184
#: taiga/export_import/dump_service.py:193
msgid "error importing tasks"
msgstr "ошибка импорта задач"
#: taiga/export_import/dump_service.py:189
#: taiga/export_import/dump_service.py:198
msgid "error importing tags"
msgstr "ошибка импорта тэгов"
#: taiga/export_import/dump_service.py:193
#: taiga/export_import/dump_service.py:202
msgid "error importing timelines"
msgstr "ошибка импорта хронологии проекта"
@ -858,7 +857,7 @@ msgstr "Необходима аутентификация"
#: taiga/projects/models.py:536 taiga/projects/models.py:573
#: taiga/projects/models.py:596 taiga/projects/models.py:619
#: taiga/projects/models.py:654 taiga/projects/models.py:677
#: taiga/users/models.py:289 taiga/webhooks/models.py:28
#: taiga/users/models.py:292 taiga/webhooks/models.py:28
msgid "name"
msgstr "имя"
@ -1354,13 +1353,13 @@ msgstr ""
msgid "The user must be already a project member"
msgstr ""
#: taiga/projects/api.py:671
#: taiga/projects/api.py:672
msgid ""
"The project must have an owner and at least one of the users must be an "
"active admin"
msgstr ""
#: taiga/projects/api.py:705
#: taiga/projects/api.py:706
msgid "You don't have permisions to see that."
msgstr "У вас нет разрешения на просмотр."
@ -1390,7 +1389,7 @@ msgstr "владелец"
#: taiga/projects/notifications/models.py:73
#: taiga/projects/notifications/models.py:90 taiga/projects/tasks/models.py:42
#: taiga/projects/userstories/models.py:64 taiga/projects/wiki/models.py:30
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:302
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:305
msgid "project"
msgstr "проект"
@ -1429,7 +1428,7 @@ msgstr "устаревшее"
#: taiga/projects/models.py:513 taiga/projects/models.py:540
#: taiga/projects/models.py:575 taiga/projects/models.py:598
#: taiga/projects/models.py:623 taiga/projects/models.py:656
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:297
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:300
msgid "order"
msgstr "порядок"
@ -1713,7 +1712,7 @@ msgstr "Лайки"
#: taiga/projects/milestones/models.py:41 taiga/projects/models.py:148
#: taiga/projects/models.py:474 taiga/projects/models.py:538
#: taiga/projects/models.py:621 taiga/projects/models.py:679
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:291
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:294
msgid "slug"
msgstr "ссылочное имя"
@ -2783,50 +2782,72 @@ msgstr ""
msgid "At least one user must be an active admin for this project."
msgstr ""
#: taiga/projects/serializers.py:394
#: taiga/projects/serializers.py:392
msgid "Default options"
msgstr "Параметры по умолчанию"
#: taiga/projects/serializers.py:395
#: taiga/projects/serializers.py:393
msgid "User story's statuses"
msgstr "Статусу пользовательских историй"
#: taiga/projects/serializers.py:396
#: taiga/projects/serializers.py:394
msgid "Points"
msgstr "Очки"
#: taiga/projects/serializers.py:397
#: taiga/projects/serializers.py:395
msgid "Task's statuses"
msgstr "Статусы задачи"
#: taiga/projects/serializers.py:398
#: taiga/projects/serializers.py:396
msgid "Issue's statuses"
msgstr "Статусы запроса"
#: taiga/projects/serializers.py:399
#: taiga/projects/serializers.py:397
msgid "Issue's types"
msgstr "Типы запроса"
#: taiga/projects/serializers.py:400
#: taiga/projects/serializers.py:398
msgid "Priorities"
msgstr "Приоритеты"
#: taiga/projects/serializers.py:401
#: taiga/projects/serializers.py:399
msgid "Severities"
msgstr "Степени важности"
#: taiga/projects/serializers.py:402
#: taiga/projects/serializers.py:400
msgid "Roles"
msgstr "Роли"
#: taiga/projects/services/members.py:147 taiga/users/services.py:625
#: taiga/projects/services/members.py:116
msgid "You have reached your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/members.py:151 taiga/users/services.py:634
#: taiga/projects/services/members.py:120
msgid "You have reached your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/projects.py:69
#: taiga/projects/services/projects.py:106 taiga/users/services.py:582
msgid "You can't have more private projects"
msgstr ""
#: taiga/projects/services/projects.py:73
#: taiga/projects/services/projects.py:110 taiga/users/services.py:585
msgid ""
"This project reaches your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/projects.py:77
#: taiga/projects/services/projects.py:114 taiga/users/services.py:589
msgid "You can't have more public projects"
msgstr ""
#: taiga/projects/services/projects.py:81
#: taiga/projects/services/projects.py:118 taiga/users/services.py:592
msgid ""
"This project reaches your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/stats.py:196
msgid "Future sprint"
msgstr "Будущий спринт"
@ -3730,7 +3751,7 @@ msgstr ""
msgid "max number of memberships for each owned public project"
msgstr ""
#: taiga/users/models.py:294
#: taiga/users/models.py:297
msgid "permissions"
msgstr "разрешения"
@ -3746,14 +3767,6 @@ msgstr "Неверное имя пользователя. Попробуйте
msgid "Username or password does not matches user."
msgstr "Имя пользователя или пароль не соответствуют пользователю."
#: taiga/users/services.py:602
msgid "You can't have more private projects"
msgstr ""
#: taiga/users/services.py:612
msgid "You can't have more public projects"
msgstr ""
#: taiga/users/templates/emails/change_email-body-html.jinja:4
#, python-format
msgid ""

View File

@ -8,10 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: taiga-back\n"
"Report-Msgid-Bugs-To: \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 <alejandroalonsofernandez@gmail."
"com>\n"
"POT-Creation-Date: 2016-04-08 13:23+0200\n"
"PO-Revision-Date: 2016-04-08 11:23+0000\n"
"Last-Translator: Taiga Dev Team <support@taiga.io>\n"
"Language-Team: Swedish (http://www.transifex.com/taiga-agile-llc/taiga-back/"
"language/sv/)\n"
"MIME-Version: 1.0\n"
@ -189,7 +188,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:641
#: taiga/hooks/api.py:68 taiga/projects/api.py:642
#: 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
@ -492,71 +491,71 @@ msgid ""
" "
msgstr ""
#: taiga/export_import/api.py:114
#: taiga/export_import/api.py:119
msgid "We needed at least one role"
msgstr "Vi behöver minst en roll"
#: taiga/export_import/api.py:216
#: taiga/export_import/api.py:309
msgid "Needed dump file"
msgstr "Behöver en hämtningsfil"
#: taiga/export_import/api.py:224
#: taiga/export_import/api.py:316
msgid "Invalid dump format"
msgstr "Invalid hämtningsfilformat"
#: taiga/export_import/dump_service.py:106
#: taiga/export_import/dump_service.py:115
msgid "error importing project data"
msgstr "fel vid import av projektdata"
#: taiga/export_import/dump_service.py:119
#: taiga/export_import/dump_service.py:128
msgid "error importing lists of project attributes"
msgstr "fel vid import av en lista på projektegenskaper"
#: taiga/export_import/dump_service.py:124
#: taiga/export_import/dump_service.py:133
msgid "error importing default project attributes values"
msgstr "fel vid import av standard projektegenskapsvärden"
#: taiga/export_import/dump_service.py:134
#: taiga/export_import/dump_service.py:143
msgid "error importing custom attributes"
msgstr "fel vid import av anpassade egenskaper"
#: taiga/export_import/dump_service.py:139
#: taiga/export_import/dump_service.py:148
msgid "error importing roles"
msgstr "fel vid importering av roller"
#: taiga/export_import/dump_service.py:154
#: taiga/export_import/dump_service.py:163
msgid "error importing memberships"
msgstr "fel vid import av medlemskap"
#: taiga/export_import/dump_service.py:159
#: taiga/export_import/dump_service.py:168
msgid "error importing sprints"
msgstr "felaktig import av sprintar"
#: taiga/export_import/dump_service.py:164
#: taiga/export_import/dump_service.py:173
msgid "error importing wiki pages"
msgstr "vel vid import av wiki-sidor"
#: taiga/export_import/dump_service.py:169
#: taiga/export_import/dump_service.py:178
msgid "error importing wiki links"
msgstr "fel vid import av wiki-länkar"
#: taiga/export_import/dump_service.py:174
#: taiga/export_import/dump_service.py:183
msgid "error importing issues"
msgstr "fel vid import av ärenden"
#: taiga/export_import/dump_service.py:179
#: taiga/export_import/dump_service.py:188
msgid "error importing user stories"
msgstr "fel vid import av användarhistorier"
#: taiga/export_import/dump_service.py:184
#: taiga/export_import/dump_service.py:193
msgid "error importing tasks"
msgstr "fel vid import av uppgifter"
#: taiga/export_import/dump_service.py:189
#: taiga/export_import/dump_service.py:198
msgid "error importing tags"
msgstr "fel vid importering av taggar"
#: taiga/export_import/dump_service.py:193
#: taiga/export_import/dump_service.py:202
msgid "error importing timelines"
msgstr "fel vid importering av tidslinje"
@ -746,7 +745,7 @@ msgstr "Verifiering krävs"
#: taiga/projects/models.py:536 taiga/projects/models.py:573
#: taiga/projects/models.py:596 taiga/projects/models.py:619
#: taiga/projects/models.py:654 taiga/projects/models.py:677
#: taiga/users/models.py:289 taiga/webhooks/models.py:28
#: taiga/users/models.py:292 taiga/webhooks/models.py:28
msgid "name"
msgstr "namn"
@ -1194,13 +1193,13 @@ msgstr ""
msgid "The user must be already a project member"
msgstr ""
#: taiga/projects/api.py:671
#: taiga/projects/api.py:672
msgid ""
"The project must have an owner and at least one of the users must be an "
"active admin"
msgstr ""
#: taiga/projects/api.py:705
#: taiga/projects/api.py:706
msgid "You don't have permisions to see that."
msgstr "Du har inte behörighet att se det. "
@ -1230,7 +1229,7 @@ msgstr "ägare"
#: taiga/projects/notifications/models.py:73
#: taiga/projects/notifications/models.py:90 taiga/projects/tasks/models.py:42
#: taiga/projects/userstories/models.py:64 taiga/projects/wiki/models.py:30
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:302
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:305
msgid "project"
msgstr "projekt"
@ -1269,7 +1268,7 @@ msgstr "undviks"
#: taiga/projects/models.py:513 taiga/projects/models.py:540
#: taiga/projects/models.py:575 taiga/projects/models.py:598
#: taiga/projects/models.py:623 taiga/projects/models.py:656
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:297
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:300
msgid "order"
msgstr "sortera"
@ -1549,7 +1548,7 @@ msgstr "Gillar"
#: taiga/projects/milestones/models.py:41 taiga/projects/models.py:148
#: taiga/projects/models.py:474 taiga/projects/models.py:538
#: taiga/projects/models.py:621 taiga/projects/models.py:679
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:291
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:294
msgid "slug"
msgstr "slugg"
@ -2370,50 +2369,72 @@ msgstr ""
msgid "At least one user must be an active admin for this project."
msgstr ""
#: taiga/projects/serializers.py:394
#: taiga/projects/serializers.py:392
msgid "Default options"
msgstr "Standardval"
#: taiga/projects/serializers.py:395
#: taiga/projects/serializers.py:393
msgid "User story's statuses"
msgstr "Status för användarhistorien"
#: taiga/projects/serializers.py:396
#: taiga/projects/serializers.py:394
msgid "Points"
msgstr "Poäng"
#: taiga/projects/serializers.py:397
#: taiga/projects/serializers.py:395
msgid "Task's statuses"
msgstr "Status för uppgifter"
#: taiga/projects/serializers.py:398
#: taiga/projects/serializers.py:396
msgid "Issue's statuses"
msgstr "Status för ärenden"
#: taiga/projects/serializers.py:399
#: taiga/projects/serializers.py:397
msgid "Issue's types"
msgstr "Ärendetyper"
#: taiga/projects/serializers.py:400
#: taiga/projects/serializers.py:398
msgid "Priorities"
msgstr "Prioritet"
#: taiga/projects/serializers.py:401
#: taiga/projects/serializers.py:399
msgid "Severities"
msgstr "Allvarsgrad"
#: taiga/projects/serializers.py:402
#: taiga/projects/serializers.py:400
msgid "Roles"
msgstr "Roller"
#: taiga/projects/services/members.py:147 taiga/users/services.py:625
#: taiga/projects/services/members.py:116
msgid "You have reached your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/members.py:151 taiga/users/services.py:634
#: taiga/projects/services/members.py:120
msgid "You have reached your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/projects.py:69
#: taiga/projects/services/projects.py:106 taiga/users/services.py:582
msgid "You can't have more private projects"
msgstr ""
#: taiga/projects/services/projects.py:73
#: taiga/projects/services/projects.py:110 taiga/users/services.py:585
msgid ""
"This project reaches your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/projects.py:77
#: taiga/projects/services/projects.py:114 taiga/users/services.py:589
msgid "You can't have more public projects"
msgstr ""
#: taiga/projects/services/projects.py:81
#: taiga/projects/services/projects.py:118 taiga/users/services.py:592
msgid ""
"This project reaches your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/stats.py:196
msgid "Future sprint"
msgstr "Framtidig sprint"
@ -3280,7 +3301,7 @@ msgstr ""
msgid "max number of memberships for each owned public project"
msgstr ""
#: taiga/users/models.py:294
#: taiga/users/models.py:297
msgid "permissions"
msgstr "behörigheter"
@ -3296,14 +3317,6 @@ msgstr "Felaktigt användarnamn. Försök med ett annat användarnamn."
msgid "Username or password does not matches user."
msgstr "Användarnamn eller lösenord passar inte."
#: taiga/users/services.py:602
msgid "You can't have more private projects"
msgstr ""
#: taiga/users/services.py:612
msgid "You can't have more public projects"
msgstr ""
#: taiga/users/templates/emails/change_email-body-html.jinja:4
#, python-format
msgid ""

View File

@ -10,9 +10,9 @@ msgid ""
msgstr ""
"Project-Id-Version: taiga-back\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-05 19:23+0200\n"
"PO-Revision-Date: 2016-04-04 13:40+0000\n"
"Last-Translator: catborise <muhammetalisag@gmail.com>\n"
"POT-Creation-Date: 2016-04-08 13:23+0200\n"
"PO-Revision-Date: 2016-04-08 11:23+0000\n"
"Last-Translator: Taiga Dev Team <support@taiga.io>\n"
"Language-Team: Turkish (http://www.transifex.com/taiga-agile-llc/taiga-back/"
"language/tr/)\n"
"MIME-Version: 1.0\n"
@ -196,7 +196,7 @@ 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:641
#: taiga/hooks/api.py:68 taiga/projects/api.py:642
#: 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
@ -501,71 +501,71 @@ msgstr ""
"\n"
"Yorumlar: %(comment)s"
#: taiga/export_import/api.py:114
#: taiga/export_import/api.py:119
msgid "We needed at least one role"
msgstr "En azından bir role ihtiyacımız var"
#: taiga/export_import/api.py:216
#: taiga/export_import/api.py:309
msgid "Needed dump file"
msgstr "İhtiyaç duyulan döküm dosyası"
#: taiga/export_import/api.py:224
#: taiga/export_import/api.py:316
msgid "Invalid dump format"
msgstr "Geçersiz döküm biçemi"
#: taiga/export_import/dump_service.py:106
#: taiga/export_import/dump_service.py:115
msgid "error importing project data"
msgstr "İçeri aktarılan proje verisinde hata"
#: taiga/export_import/dump_service.py:119
#: taiga/export_import/dump_service.py:128
msgid "error importing lists of project attributes"
msgstr "proje öznitelikleri listesi içeriye aktarılırken hata oluştu"
#: taiga/export_import/dump_service.py:124
#: taiga/export_import/dump_service.py:133
msgid "error importing default project attributes values"
msgstr "varsayılan proje öznitelikleri değerlerinin içeriye aktarımında hata"
#: taiga/export_import/dump_service.py:134
#: taiga/export_import/dump_service.py:143
msgid "error importing custom attributes"
msgstr "özel öznitelikler içeri aktarılırken hata"
#: taiga/export_import/dump_service.py:139
#: taiga/export_import/dump_service.py:148
msgid "error importing roles"
msgstr "İçeri aktarılan rollerde hata"
#: taiga/export_import/dump_service.py:154
#: taiga/export_import/dump_service.py:163
msgid "error importing memberships"
msgstr "İçeri aktarılan üyeliklerde hata"
#: taiga/export_import/dump_service.py:159
#: taiga/export_import/dump_service.py:168
msgid "error importing sprints"
msgstr "İçeri aktarılan sprintlerde hata"
#: taiga/export_import/dump_service.py:164
#: taiga/export_import/dump_service.py:173
msgid "error importing wiki pages"
msgstr "İçeri aktarılan wiki sayfalarında hata"
#: taiga/export_import/dump_service.py:169
#: taiga/export_import/dump_service.py:178
msgid "error importing wiki links"
msgstr "İçeri aktarılan wiki bağlantılarında hata"
#: taiga/export_import/dump_service.py:174
#: taiga/export_import/dump_service.py:183
msgid "error importing issues"
msgstr "İçeri aktarılan taleplerde hata"
#: taiga/export_import/dump_service.py:179
#: taiga/export_import/dump_service.py:188
msgid "error importing user stories"
msgstr "İçeri aktarılan kullanıcı hikayelerinde hata"
#: taiga/export_import/dump_service.py:184
#: taiga/export_import/dump_service.py:193
msgid "error importing tasks"
msgstr "İçeri aktarılan görevlerde hata"
#: taiga/export_import/dump_service.py:189
#: taiga/export_import/dump_service.py:198
msgid "error importing tags"
msgstr "İçeri aktarılan etiketlerde hata"
#: taiga/export_import/dump_service.py:193
#: taiga/export_import/dump_service.py:202
msgid "error importing timelines"
msgstr "zaman çizelgesi içeri aktarılırken hata"
@ -840,7 +840,7 @@ msgstr "Kimlik doğrulama gerekli"
#: taiga/projects/models.py:536 taiga/projects/models.py:573
#: taiga/projects/models.py:596 taiga/projects/models.py:619
#: taiga/projects/models.py:654 taiga/projects/models.py:677
#: taiga/users/models.py:289 taiga/webhooks/models.py:28
#: taiga/users/models.py:292 taiga/webhooks/models.py:28
msgid "name"
msgstr "isim"
@ -1300,13 +1300,13 @@ msgstr "Kullanıcı mevcut değil"
msgid "The user must be already a project member"
msgstr "Kullanıcı zaten proje üyesi durumunda"
#: taiga/projects/api.py:671
#: taiga/projects/api.py:672
msgid ""
"The project must have an owner and at least one of the users must be an "
"active admin"
msgstr ""
#: taiga/projects/api.py:705
#: taiga/projects/api.py:706
msgid "You don't have permisions to see that."
msgstr "Görebilmek için yetkiniz yok."
@ -1336,7 +1336,7 @@ msgstr "sahip"
#: taiga/projects/notifications/models.py:73
#: taiga/projects/notifications/models.py:90 taiga/projects/tasks/models.py:42
#: taiga/projects/userstories/models.py:64 taiga/projects/wiki/models.py:30
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:302
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:305
msgid "project"
msgstr "proje"
@ -1375,7 +1375,7 @@ msgstr "kaldırıldı"
#: taiga/projects/models.py:513 taiga/projects/models.py:540
#: taiga/projects/models.py:575 taiga/projects/models.py:598
#: taiga/projects/models.py:623 taiga/projects/models.py:656
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:297
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:300
msgid "order"
msgstr "sıra"
@ -1655,7 +1655,7 @@ msgstr "Beğeniler"
#: taiga/projects/milestones/models.py:41 taiga/projects/models.py:148
#: taiga/projects/models.py:474 taiga/projects/models.py:538
#: taiga/projects/models.py:621 taiga/projects/models.py:679
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:291
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:294
msgid "slug"
msgstr "satır"
@ -2542,50 +2542,72 @@ msgstr ""
msgid "At least one user must be an active admin for this project."
msgstr ""
#: taiga/projects/serializers.py:394
#: taiga/projects/serializers.py:392
msgid "Default options"
msgstr "Varsayılan ayarlar"
#: taiga/projects/serializers.py:395
#: taiga/projects/serializers.py:393
msgid "User story's statuses"
msgstr "Kullanıcı hikayelerinin durumları"
#: taiga/projects/serializers.py:396
#: taiga/projects/serializers.py:394
msgid "Points"
msgstr "Puanlar"
#: taiga/projects/serializers.py:397
#: taiga/projects/serializers.py:395
msgid "Task's statuses"
msgstr "Görevlerin durumları"
#: taiga/projects/serializers.py:398
#: taiga/projects/serializers.py:396
msgid "Issue's statuses"
msgstr "Taleplerin durumları"
#: taiga/projects/serializers.py:399
#: taiga/projects/serializers.py:397
msgid "Issue's types"
msgstr "Taleplerin tipleri"
#: taiga/projects/serializers.py:400
#: taiga/projects/serializers.py:398
msgid "Priorities"
msgstr "Öncelikler"
#: taiga/projects/serializers.py:401
#: taiga/projects/serializers.py:399
msgid "Severities"
msgstr "Önem dereceleri"
#: taiga/projects/serializers.py:402
#: taiga/projects/serializers.py:400
msgid "Roles"
msgstr "Roller"
#: taiga/projects/services/members.py:147 taiga/users/services.py:625
#: taiga/projects/services/members.py:116
msgid "You have reached your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/members.py:151 taiga/users/services.py:634
#: taiga/projects/services/members.py:120
msgid "You have reached your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/projects.py:69
#: taiga/projects/services/projects.py:106 taiga/users/services.py:582
msgid "You can't have more private projects"
msgstr ""
#: taiga/projects/services/projects.py:73
#: taiga/projects/services/projects.py:110 taiga/users/services.py:585
msgid ""
"This project reaches your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/projects.py:77
#: taiga/projects/services/projects.py:114 taiga/users/services.py:589
msgid "You can't have more public projects"
msgstr ""
#: taiga/projects/services/projects.py:81
#: taiga/projects/services/projects.py:118 taiga/users/services.py:592
msgid ""
"This project reaches your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/stats.py:196
msgid "Future sprint"
msgstr "Gelecek sprint"
@ -3447,7 +3469,7 @@ msgstr ""
msgid "max number of memberships for each owned public project"
msgstr ""
#: taiga/users/models.py:294
#: taiga/users/models.py:297
msgid "permissions"
msgstr "izinler"
@ -3463,14 +3485,6 @@ msgstr "Geçersiz kullanıcı adı. Farklı birşeyle yeniden deneyin."
msgid "Username or password does not matches user."
msgstr "Kullanıcı adı veya parola kullanıcıyla uyuşmuyor"
#: taiga/users/services.py:602
msgid "You can't have more private projects"
msgstr ""
#: taiga/users/services.py:612
msgid "You can't have more public projects"
msgstr ""
#: taiga/users/templates/emails/change_email-body-html.jinja:4
#, python-format
msgid ""

View File

@ -11,10 +11,9 @@ msgid ""
msgstr ""
"Project-Id-Version: taiga-back\n"
"Report-Msgid-Bugs-To: \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 <alejandroalonsofernandez@gmail."
"com>\n"
"POT-Creation-Date: 2016-04-08 13:23+0200\n"
"PO-Revision-Date: 2016-04-08 11:23+0000\n"
"Last-Translator: Taiga Dev Team <support@taiga.io>\n"
"Language-Team: Chinese Traditional (http://www.transifex.com/taiga-agile-llc/"
"taiga-back/language/zh-Hant/)\n"
"MIME-Version: 1.0\n"
@ -183,7 +182,7 @@ msgid ""
msgstr "上傳有效圖片,你所上傳的檔案非圖檔或已損壞"
#: taiga/base/api/mixins.py:255 taiga/base/exceptions.py:209
#: taiga/hooks/api.py:68 taiga/projects/api.py:641
#: taiga/hooks/api.py:68 taiga/projects/api.py:642
#: 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
@ -499,71 +498,71 @@ msgstr ""
"\n"
"評論: %(comment)s"
#: taiga/export_import/api.py:114
#: taiga/export_import/api.py:119
msgid "We needed at least one role"
msgstr "我們至少需要一個角色"
#: taiga/export_import/api.py:216
#: taiga/export_import/api.py:309
msgid "Needed dump file"
msgstr "需要的堆存檔案"
#: taiga/export_import/api.py:224
#: taiga/export_import/api.py:316
msgid "Invalid dump format"
msgstr "無效堆存格式"
#: taiga/export_import/dump_service.py:106
#: taiga/export_import/dump_service.py:115
msgid "error importing project data"
msgstr "滙入重要專案資料出錯"
#: taiga/export_import/dump_service.py:119
#: taiga/export_import/dump_service.py:128
msgid "error importing lists of project attributes"
msgstr "滙入標籤出錯"
#: taiga/export_import/dump_service.py:124
#: taiga/export_import/dump_service.py:133
msgid "error importing default project attributes values"
msgstr "滙入預設專案屬性數值出錯"
#: taiga/export_import/dump_service.py:134
#: taiga/export_import/dump_service.py:143
msgid "error importing custom attributes"
msgstr "滙入客制性屬出錯"
#: taiga/export_import/dump_service.py:139
#: taiga/export_import/dump_service.py:148
msgid "error importing roles"
msgstr "滙入角色出錯"
#: taiga/export_import/dump_service.py:154
#: taiga/export_import/dump_service.py:163
msgid "error importing memberships"
msgstr "滙入成員資格出錯"
#: taiga/export_import/dump_service.py:159
#: taiga/export_import/dump_service.py:168
msgid "error importing sprints"
msgstr "滙入衝刺任務出錯"
#: taiga/export_import/dump_service.py:164
#: taiga/export_import/dump_service.py:173
msgid "error importing wiki pages"
msgstr "滙入維基頁出錯"
#: taiga/export_import/dump_service.py:169
#: taiga/export_import/dump_service.py:178
msgid "error importing wiki links"
msgstr "滙入維基連結出錯"
#: taiga/export_import/dump_service.py:174
#: taiga/export_import/dump_service.py:183
msgid "error importing issues"
msgstr "滙入問題出錯"
#: taiga/export_import/dump_service.py:179
#: taiga/export_import/dump_service.py:188
msgid "error importing user stories"
msgstr "滙入使用者故事出錯"
#: taiga/export_import/dump_service.py:184
#: taiga/export_import/dump_service.py:193
msgid "error importing tasks"
msgstr "滙入任務出錯"
#: taiga/export_import/dump_service.py:189
#: taiga/export_import/dump_service.py:198
msgid "error importing tags"
msgstr "滙入標籤出錯"
#: taiga/export_import/dump_service.py:193
#: taiga/export_import/dump_service.py:202
msgid "error importing timelines"
msgstr "滙入時間軸出錯"
@ -838,7 +837,7 @@ msgstr "要求取得授權"
#: taiga/projects/models.py:536 taiga/projects/models.py:573
#: taiga/projects/models.py:596 taiga/projects/models.py:619
#: taiga/projects/models.py:654 taiga/projects/models.py:677
#: taiga/users/models.py:289 taiga/webhooks/models.py:28
#: taiga/users/models.py:292 taiga/webhooks/models.py:28
msgid "name"
msgstr "姓名"
@ -1327,13 +1326,13 @@ msgstr ""
msgid "The user must be already a project member"
msgstr ""
#: taiga/projects/api.py:671
#: taiga/projects/api.py:672
msgid ""
"The project must have an owner and at least one of the users must be an "
"active admin"
msgstr ""
#: taiga/projects/api.py:705
#: taiga/projects/api.py:706
msgid "You don't have permisions to see that."
msgstr "您無觀看權限"
@ -1363,7 +1362,7 @@ msgstr "所有者"
#: taiga/projects/notifications/models.py:73
#: taiga/projects/notifications/models.py:90 taiga/projects/tasks/models.py:42
#: taiga/projects/userstories/models.py:64 taiga/projects/wiki/models.py:30
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:302
#: taiga/projects/wiki/models.py:68 taiga/users/models.py:305
msgid "project"
msgstr "專案"
@ -1402,7 +1401,7 @@ msgstr "棄用"
#: taiga/projects/models.py:513 taiga/projects/models.py:540
#: taiga/projects/models.py:575 taiga/projects/models.py:598
#: taiga/projects/models.py:623 taiga/projects/models.py:656
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:297
#: taiga/projects/wiki/models.py:73 taiga/users/models.py:300
msgid "order"
msgstr "次序"
@ -1682,7 +1681,7 @@ msgstr "喜歡"
#: taiga/projects/milestones/models.py:41 taiga/projects/models.py:148
#: taiga/projects/models.py:474 taiga/projects/models.py:538
#: taiga/projects/models.py:621 taiga/projects/models.py:679
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:291
#: taiga/projects/wiki/models.py:32 taiga/users/models.py:294
msgid "slug"
msgstr "代稱"
@ -2753,50 +2752,72 @@ msgstr ""
msgid "At least one user must be an active admin for this project."
msgstr ""
#: taiga/projects/serializers.py:394
#: taiga/projects/serializers.py:392
msgid "Default options"
msgstr "預設選項"
#: taiga/projects/serializers.py:395
#: taiga/projects/serializers.py:393
msgid "User story's statuses"
msgstr "使用者故事狀態"
#: taiga/projects/serializers.py:396
#: taiga/projects/serializers.py:394
msgid "Points"
msgstr "點數"
#: taiga/projects/serializers.py:397
#: taiga/projects/serializers.py:395
msgid "Task's statuses"
msgstr "任務狀態"
#: taiga/projects/serializers.py:398
#: taiga/projects/serializers.py:396
msgid "Issue's statuses"
msgstr "問題狀態"
#: taiga/projects/serializers.py:399
#: taiga/projects/serializers.py:397
msgid "Issue's types"
msgstr "問題類型"
#: taiga/projects/serializers.py:400
#: taiga/projects/serializers.py:398
msgid "Priorities"
msgstr "優先性"
#: taiga/projects/serializers.py:401
#: taiga/projects/serializers.py:399
msgid "Severities"
msgstr "嚴重性"
#: taiga/projects/serializers.py:402
#: taiga/projects/serializers.py:400
msgid "Roles"
msgstr "角色"
#: taiga/projects/services/members.py:147 taiga/users/services.py:625
#: taiga/projects/services/members.py:116
msgid "You have reached your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/members.py:151 taiga/users/services.py:634
#: taiga/projects/services/members.py:120
msgid "You have reached your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/projects.py:69
#: taiga/projects/services/projects.py:106 taiga/users/services.py:582
msgid "You can't have more private projects"
msgstr ""
#: taiga/projects/services/projects.py:73
#: taiga/projects/services/projects.py:110 taiga/users/services.py:585
msgid ""
"This project reaches your current limit of memberships for private projects"
msgstr ""
#: taiga/projects/services/projects.py:77
#: taiga/projects/services/projects.py:114 taiga/users/services.py:589
msgid "You can't have more public projects"
msgstr ""
#: taiga/projects/services/projects.py:81
#: taiga/projects/services/projects.py:118 taiga/users/services.py:592
msgid ""
"This project reaches your current limit of memberships for public projects"
msgstr ""
#: taiga/projects/services/stats.py:196
msgid "Future sprint"
msgstr "未來之衝刺"
@ -3685,7 +3706,7 @@ msgstr ""
msgid "max number of memberships for each owned public project"
msgstr ""
#: taiga/users/models.py:294
#: taiga/users/models.py:297
msgid "permissions"
msgstr "許可"
@ -3701,14 +3722,6 @@ msgstr "無效使用者名稱,請重試其它名稱 "
msgid "Username or password does not matches user."
msgstr "用戶名稱與密碼不符"
#: taiga/users/services.py:602
msgid "You can't have more private projects"
msgstr ""
#: taiga/users/services.py:612
msgid "You can't have more public projects"
msgstr ""
#: taiga/users/templates/emails/change_email-body-html.jinja:4
#, python-format
msgid ""

View File

@ -378,13 +378,13 @@ class ProjectViewSet(LikedResourceMixin, HistoryResourceMixin,
project = self.get_object()
self.check_permissions(request, "transfer_accept", project)
(enough_slots, not_enough_slots_error) = users_service.has_available_slot_for_project(
request.user,
(can_transfer, error_message) = services.check_if_project_can_be_transfered(
project,
request.user,
)
if not enough_slots:
if not can_transfer:
members = project.memberships.count()
raise exc.NotEnoughSlotsForProject(project.is_private, members, not_enough_slots_error)
raise exc.NotEnoughSlotsForProject(project.is_private, members, error_message)
reason = request.DATA.get('reason', None)
services.accept_project_transfer(project, request.user, token, reason)
@ -422,12 +422,13 @@ class ProjectViewSet(LikedResourceMixin, HistoryResourceMixin,
obj.owner = self.request.user
obj.template = self.request.QUERY_PARAMS.get('template', None)
# Validate if the owner have enought slots to create or update the project
# TODO: Move to the ProjectAdminSerializer
(enough_slots, not_enough_slots_error) = users_service.has_available_slot_for_project(obj.owner, obj)
if not enough_slots:
if not obj.id or self.get_object().is_private != obj.is_private:
# Validate if the owner have enought slots to create the project
# or if you are changing the privacity
(can_create_or_update, error_message) = services.check_if_project_can_be_created_or_updated(obj)
if not can_create_or_update:
members = max(obj.memberships.count(), 1)
raise exc.NotEnoughSlotsForProject(obj.is_private, members, not_enough_slots_error)
raise exc.NotEnoughSlotsForProject(obj.is_private, members, error_message)
self._set_base_permissions(obj)
super().pre_save(obj)

View File

@ -373,8 +373,6 @@ class ProjectDetailAdminSerializer(ProjectDetailSerializer):
return services.get_max_memberships_for_project(obj)
######################################################
## Liked
######################################################

View File

@ -39,17 +39,19 @@ from .members import create_members_in_bulk
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
from .projects import check_if_project_privacity_can_be_changed
from .projects import check_if_project_can_be_created_or_updated
from .projects import check_if_project_can_be_transfered
from .stats import get_stats_for_project_issues
from .stats import get_stats_for_project
from .stats import get_member_stats_for_project
from .tags_colors import update_project_tags_colors_handler
from .modules_config import get_modules_config
from .transfer import request_project_transfer, start_project_transfer
from .transfer import accept_project_transfer, reject_project_transfer

View File

@ -102,45 +102,14 @@ def get_total_project_memberships(project):
return project.memberships.count()
ERROR_MAX_PUBLIC_PROJECTS_MEMBERSHIPS = 'max_public_projects_memberships'
ERROR_MAX_PRIVATE_PROJECTS_MEMBERSHIPS = 'max_private_projects_memberships'
ERROR_MAX_PUBLIC_PROJECTS = 'max_public_projects'
ERROR_MAX_PRIVATE_PROJECTS = 'max_private_projects'
def check_if_project_privacity_can_be_changed(project):
"""Return if the project privacity can be changed from private to public or viceversa.
def check_if_project_can_have_more_memberships(project, total_new_memberships):
"""Return if a project can have more n new memberships.
:param project: A project object.
:param total_new_memberships: the total of new memberships to add (int).
:return: True if it can be changed or False if can't.
:return: {bool, error_mesage} return a tuple (can add new members?, error message).
"""
if project.is_private:
current_memberships = project.memberships.count()
max_memberships = project.owner.max_memberships_public_projects
error_members_exceeded = ERROR_MAX_PUBLIC_PROJECTS_MEMBERSHIPS
current_projects = project.owner.owned_projects.filter(is_private=False).count()
max_projects = project.owner.max_public_projects
error_project_exceeded = ERROR_MAX_PUBLIC_PROJECTS
else:
current_memberships = project.memberships.count()
max_memberships = project.owner.max_memberships_private_projects
error_members_exceeded = ERROR_MAX_PRIVATE_PROJECTS_MEMBERSHIPS
current_projects = project.owner.owned_projects.filter(is_private=True).count()
max_projects = project.owner.max_private_projects
error_project_exceeded = ERROR_MAX_PRIVATE_PROJECTS
if max_memberships is not None and current_memberships > max_memberships:
return {'can_be_updated': False, 'reason': error_members_exceeded}
if max_projects is not None and current_projects >= max_projects:
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

View File

@ -0,0 +1,126 @@
# Copyright (C) 2014-2016 Andrey Antukh <niwi@niwi.nz>
# Copyright (C) 2014-2016 Jesús Espino <jespinog@gmail.com>
# Copyright (C) 2014-2016 David Barragán <bameda@dbarragan.com>
# Copyright (C) 2014-2016 Alejandro Alonso <alejandro.alonso@kaleidos.net>
# 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 <http://www.gnu.org/licenses/>.
from django.utils.translation import ugettext as _
ERROR_MAX_PUBLIC_PROJECTS_MEMBERSHIPS = 'max_public_projects_memberships'
ERROR_MAX_PRIVATE_PROJECTS_MEMBERSHIPS = 'max_private_projects_memberships'
ERROR_MAX_PUBLIC_PROJECTS = 'max_public_projects'
ERROR_MAX_PRIVATE_PROJECTS = 'max_private_projects'
def check_if_project_privacity_can_be_changed(project):
"""Return if the project privacity can be changed from private to public or viceversa.
:param project: A project object.
:return: A dict like this {'can_be_updated': bool, 'reason': error message}.
"""
if project.is_private:
current_memberships = project.memberships.count()
max_memberships = project.owner.max_memberships_public_projects
error_memberships_exceeded = ERROR_MAX_PUBLIC_PROJECTS_MEMBERSHIPS
current_projects = project.owner.owned_projects.filter(is_private=False).count()
max_projects = project.owner.max_public_projects
error_project_exceeded = ERROR_MAX_PUBLIC_PROJECTS
else:
current_memberships = project.memberships.count()
max_memberships = project.owner.max_memberships_private_projects
error_memberships_exceeded = ERROR_MAX_PRIVATE_PROJECTS_MEMBERSHIPS
current_projects = project.owner.owned_projects.filter(is_private=True).count()
max_projects = project.owner.max_private_projects
error_project_exceeded = ERROR_MAX_PRIVATE_PROJECTS
if max_memberships is not None and current_memberships > max_memberships:
return {'can_be_updated': False, 'reason': error_memberships_exceeded}
if max_projects is not None and current_projects >= max_projects:
return {'can_be_updated': False, 'reason': error_project_exceeded}
return {'can_be_updated': True, 'reason': None}
def check_if_project_can_be_created_or_updated(project):
"""Return if the project can be create or update (the privacity).
:param project: A project object.
:return: {bool, error_mesage} return a tuple (can be created or updated, error message).
"""
if project.is_private:
current_projects = project.owner.owned_projects.filter(is_private=True).count()
max_projects = project.owner.max_private_projects
error_project_exceeded = _("You can't have more private projects")
current_memberships = project.memberships.count() or 1
max_memberships = project.owner.max_memberships_private_projects
error_memberships_exceeded = _("This project reaches your current limit of memberships for private projects")
else:
current_projects = project.owner.owned_projects.filter(is_private=False).count()
max_projects = project.owner.max_public_projects
error_project_exceeded = _("You can't have more public projects")
current_memberships = project.memberships.count() or 1
max_memberships = project.owner.max_memberships_public_projects
error_memberships_exceeded = _("This project reaches your current limit of memberships for public projects")
if max_projects is not None and current_projects >= max_projects:
return (False, error_project_exceeded)
if max_memberships is not None and current_memberships > max_memberships:
return (False, error_memberships_exceeded)
return (True, None)
def check_if_project_can_be_transfered(project, new_owner):
"""Return if the project can be transfered to another member.
:param project: A project object.
:param new_owner: The new owner.
:return: {bool, error_mesage} return a tuple (can be transfered?, error message).
"""
if project.owner == new_owner:
return (True, None)
if project.is_private:
current_projects = new_owner.owned_projects.filter(is_private=True).count()
max_projects = new_owner.max_private_projects
error_project_exceeded = _("You can't have more private projects")
current_memberships = project.memberships.count()
max_memberships = new_owner.max_memberships_private_projects
error_memberships_exceeded = _("This project reaches your current limit of memberships for private projects")
else:
current_projects = new_owner.owned_projects.filter(is_private=False).count()
max_projects = new_owner.max_public_projects
error_project_exceeded = _("You can't have more public projects")
current_memberships = project.memberships.count()
max_memberships = new_owner.max_memberships_public_projects
error_memberships_exceeded = _("This project reaches your current limit of memberships for public projects")
if max_projects is not None and current_projects >= max_projects:
return (False, error_project_exceeded)
if max_memberships is not None and current_memberships > max_memberships:
return (False, error_memberships_exceeded)
return (True, None)

View File

@ -575,60 +575,26 @@ def get_voted_list(for_user, from_user, type=None, q=None):
]
def has_available_slot_for_project(user, project, new_members=0):
# TODO: Refactor: Create one service for every type of action and move to project services
#
# - has_available_slot_to_create_new_project()
# - has_available_slot_to_update_this_project()
# - has_available_slot_to_transfer_this_project()
# - has_available_slot_to_import_this_project()
# - has_available_slot_to_add_members_to_this_project()
(enough, error) = _has_available_slot_for_project_type(user, project)
if not enough:
return (enough, error)
return _has_available_slot_for_project_members(user, project, new_members)
def _has_available_slot_for_project_type(user, project):
if project.is_private:
if user.max_private_projects is None:
return (True, None)
current_private_projects = user.owned_projects.filter(is_private=True).exclude(id=project.id).count()
if current_private_projects < user.max_private_projects:
return (True, None)
return (False, _("You can't have more private projects"))
def has_available_slot_for_import_new_project(owner, is_private, total_memberships):
if is_private:
current_projects = owner.owned_projects.filter(is_private=True).count()
max_projects = owner.max_private_projects
error_project_exceeded = _("You can't have more private projects")
max_memberships = owner.max_memberships_private_projects
error_memberships_exceeded = _("This project reaches your current limit of memberships for private projects")
else:
if user.max_public_projects is None:
current_projects = owner.owned_projects.filter(is_private=False).count()
max_projects = owner.max_public_projects
error_project_exceeded = _("You can't have more public projects")
max_memberships = owner.max_memberships_public_projects
error_memberships_exceeded = _("This project reaches your current limit of memberships for public projects")
if max_projects is not None and current_projects >= max_projects:
return (False, error_project_exceeded)
if max_memberships is not None and total_memberships > max_memberships:
return (False, error_memberships_exceeded)
return (True, None)
current_public_project = user.owned_projects.filter(is_private=False).exclude(id=project.id).count()
if current_public_project < user.max_public_projects:
return (True, None)
return (False, _("You can't have more public projects"))
def _has_available_slot_for_project_members(user, project, new_members):
current_memberships = max(project.memberships.count(), 1)
if project.is_private:
if user.max_memberships_private_projects is None:
return (True, None)
if current_memberships + new_members <= user.max_memberships_private_projects:
return (True, None)
return (False, _("You have reached your current limit of memberships for private projects"))
else:
if user.max_memberships_public_projects is None:
return (True, None)
if current_memberships + new_members <= user.max_memberships_public_projects:
return (True, None)
return (False, _("You have reached your current limit of memberships for public projects"))

View File

@ -1061,7 +1061,7 @@ def test_dict_to_project_with_no_members_private_project_slots_available(client)
with pytest.raises(TaigaImportError) as excinfo:
project = dict_to_project(data, owner=user)
assert "reached your current limit of memberships for private" in str(excinfo.value)
assert "reaches your current limit of memberships for private" in str(excinfo.value)
def test_dict_to_project_with_no_members_public_project_slots_available(client):
@ -1096,7 +1096,7 @@ def test_dict_to_project_with_no_members_public_project_slots_available(client):
with pytest.raises(TaigaImportError) as excinfo:
project = dict_to_project(data, owner=user)
assert "reached your current limit of memberships for public" in str(excinfo.value)
assert "reaches your current limit of memberships for public" in str(excinfo.value)
def test_invalid_dump_import(client):
@ -1322,7 +1322,7 @@ def test_valid_dump_import_without_enough_membership_private_project_slots_one_p
response = client.post(url, {'dump': data})
assert response.status_code == 400
assert "reached your current limit of memberships for private" in response.data["_error_message"]
assert "reaches your current limit of memberships for private" in response.data["_error_message"]
assert Project.objects.filter(slug="project-without-memberships-slots").count() == 0
@ -1369,7 +1369,7 @@ def test_valid_dump_import_without_enough_membership_public_project_slots_one_pr
response = client.post(url, {'dump': data})
assert response.status_code == 400
assert "reached your current limit of memberships for public" in response.data["_error_message"]
assert "reaches your current limit of memberships for public" in response.data["_error_message"]
assert Project.objects.filter(slug="project-without-memberships-slots").count() == 0

View File

@ -1423,10 +1423,10 @@ def test_project_transfer_validate_token_from_no_admin_member_with_valid_token(c
####################################################################################
# Test taiga.projects.services.members.check_if_project_privacity_can_be_changed
# Test taiga.projects.services.projects.check_if_project_privacity_can_be_changed
####################################################################################
from taiga.projects.services.members import (
from taiga.projects.services.projects import (
check_if_project_privacity_can_be_changed,
ERROR_MAX_PUBLIC_PROJECTS_MEMBERSHIPS,
ERROR_MAX_PUBLIC_PROJECTS,