Improved users_bindings

remotes/origin/github-import
Jesús Espino 2017-02-14 17:31:45 +01:00 committed by David Barragán Merino
parent ea7187b30d
commit a952d200fc
5 changed files with 24 additions and 4 deletions

View File

@ -26,6 +26,7 @@ from taiga.users.gravatar import get_user_gravatar_id
from taiga.projects.serializers import ProjectSerializer from taiga.projects.serializers import ProjectSerializer
from taiga.importers import permissions, exceptions from taiga.importers import permissions, exceptions
from taiga.importers.services import resolve_users_bindings
from .importer import AsanaImporter from .importer import AsanaImporter
from . import tasks from . import tasks
@ -89,7 +90,7 @@ class AsanaImporterViewSet(viewsets.ViewSet):
"name": request.DATA.get('name', None), "name": request.DATA.get('name', None),
"description": request.DATA.get('description', None), "description": request.DATA.get('description', None),
"template": request.DATA.get('template', "scrum"), "template": request.DATA.get('template', "scrum"),
"users_bindings": request.DATA.get("users_bindings", {}), "users_bindings": resolve_users_bindings(request.DATA.get("users_bindings", {})),
"keep_external_reference": request.DATA.get("keep_external_reference", False), "keep_external_reference": request.DATA.get("keep_external_reference", False),
"is_private": request.DATA.get("is_private", False), "is_private": request.DATA.get("is_private", False),
} }

View File

@ -27,6 +27,7 @@ from taiga.projects.serializers import ProjectSerializer
from taiga.importers import permissions from taiga.importers import permissions
from taiga.importers import exceptions from taiga.importers import exceptions
from taiga.importers.services import resolve_users_bindings
from .importer import GithubImporter from .importer import GithubImporter
from . import tasks from . import tasks
@ -85,7 +86,7 @@ class GithubImporterViewSet(viewsets.ViewSet):
"description": request.DATA.get('description', None), "description": request.DATA.get('description', None),
"template": template, "template": template,
"type": items_type, "type": items_type,
"users_bindings": request.DATA.get("users_bindings", {}), "users_bindings": resolve_users_bindings(request.DATA.get("users_bindings", {})),
"keep_external_reference": request.DATA.get("keep_external_reference", False), "keep_external_reference": request.DATA.get("keep_external_reference", False),
"is_private": request.DATA.get("is_private", False), "is_private": request.DATA.get("is_private", False),
} }

View File

@ -25,6 +25,7 @@ from taiga.users.services import get_user_photo_url
from taiga.users.gravatar import get_user_gravatar_id from taiga.users.gravatar import get_user_gravatar_id
from taiga.importers import permissions from taiga.importers import permissions
from taiga.importers.services import resolve_users_bindings
from .normal import JiraNormalImporter from .normal import JiraNormalImporter
from .agile import JiraAgileImporter from .agile import JiraAgileImporter
from . import tasks from . import tasks
@ -107,7 +108,7 @@ class JiraImporterViewSet(viewsets.ViewSet):
options = { options = {
"name": request.DATA.get('name', None), "name": request.DATA.get('name', None),
"description": request.DATA.get('description', None), "description": request.DATA.get('description', None),
"users_bindings": request.DATA.get("user_bindings", {}), "users_bindings": resolve_users_bindings(request.DATA.get("users_bindings", {})),
"keep_external_reference": request.DATA.get("keep_external_reference", False), "keep_external_reference": request.DATA.get("keep_external_reference", False),
"is_private": request.DATA.get("is_private", False), "is_private": request.DATA.get("is_private", False),
} }

View File

@ -0,0 +1,16 @@
from taiga.users.models import User
def resolve_users_bindings(users_bindings):
new_users_bindings = {}
for key,value in users_bindings.items():
if isinstance(value, str):
try:
new_users_bindings[int(key)] = User.objects.get(email_iexact=value)
except User.MultipleObjectsReturned:
new_users_bindings[int(key)] = User.objects.get(email=value)
except User.DoesNotExists:
new_users_bindings[int(key)] = None
else:
new_users_bindings[int(key)] = User.objects.get(id=value)
return new_users_bindings

View File

@ -29,6 +29,7 @@ from taiga.projects.serializers import ProjectSerializer
from .importer import TrelloImporter from .importer import TrelloImporter
from taiga.importers import permissions from taiga.importers import permissions
from taiga.importers.services import resolve_users_bindings
from . import tasks from . import tasks
@ -86,7 +87,7 @@ class TrelloImporterViewSet(viewsets.ViewSet):
"name": request.DATA.get('name', None), "name": request.DATA.get('name', None),
"description": request.DATA.get('description', None), "description": request.DATA.get('description', None),
"template": request.DATA.get('template', "kanban"), "template": request.DATA.get('template', "kanban"),
"users_bindings": request.DATA.get("users_bindings", {}), "users_bindings": resolve_users_bindings(request.DATA.get("users_bindings", {})),
"keep_external_reference": request.DATA.get("keep_external_reference", False), "keep_external_reference": request.DATA.get("keep_external_reference", False),
"is_private": request.DATA.get("is_private", False), "is_private": request.DATA.get("is_private", False),
} }