US #2911: Mixin 'users', 'members' and 'memberships' in ProjectDetailSerializer
parent
b8006b7c0f
commit
a92a0bba51
|
@ -243,7 +243,7 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F
|
|||
loadInitialData: ->
|
||||
promise = @.loadProject()
|
||||
promise.then (project) =>
|
||||
@.fillUsersAndRoles(project.users, project.roles)
|
||||
@.fillUsersAndRoles(project.members, project.roles)
|
||||
@.initializeSubscription()
|
||||
|
||||
return promise.then(=> @.loadBacklog())
|
||||
|
|
|
@ -663,14 +663,14 @@ ListItemAssignedtoDirective = ($template) ->
|
|||
template = $template.get("common/components/list-item-assigned-to-avatar.html", true)
|
||||
|
||||
link = ($scope, $el, $attrs) ->
|
||||
bindOnce $scope, "membersById", (membersById) ->
|
||||
bindOnce $scope, "usersById", (usersById) ->
|
||||
item = $scope.$eval($attrs.tgListitemAssignedto)
|
||||
ctx = {name: "Unassigned", imgurl: "/images/unnamed.png"}
|
||||
|
||||
member = membersById[item.assigned_to]
|
||||
member = usersById[item.assigned_to]
|
||||
if member
|
||||
ctx.imgurl = member.photo
|
||||
ctx.name = member.full_name
|
||||
ctx.name = member.full_name_display
|
||||
|
||||
$el.html(template(ctx))
|
||||
|
||||
|
|
|
@ -41,9 +41,9 @@ class PageMixin
|
|||
@scope.usersById = groupBy(@scope.users, (e) -> e.id)
|
||||
|
||||
@scope.roles = _.sortBy(roles, "order")
|
||||
availableRoles = _(@scope.project.memberships).map("role").uniq().value()
|
||||
computableRoles = _(@scope.project.members).map("role").uniq().value()
|
||||
@scope.computableRoles = _(roles).filter("computable")
|
||||
.filter((x) -> _.contains(availableRoles, x.id))
|
||||
.filter((x) -> _.contains(computableRoles, x.id))
|
||||
.value()
|
||||
loadUsersAndRoles: ->
|
||||
promise = @q.all([
|
||||
|
|
|
@ -120,7 +120,6 @@ class IssueDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
@scope.severityById = groupBy(project.severities, (x) -> x.id)
|
||||
@scope.priorityList = project.priorities
|
||||
@scope.priorityById = groupBy(project.priorities, (x) -> x.id)
|
||||
@scope.membersById = groupBy(project.memberships, (x) -> x.user)
|
||||
return project
|
||||
|
||||
loadIssue: ->
|
||||
|
@ -146,7 +145,7 @@ class IssueDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
loadInitialData: ->
|
||||
promise = @.loadProject()
|
||||
return promise.then (project) =>
|
||||
@.fillUsersAndRoles(project.users, project.roles)
|
||||
@.fillUsersAndRoles(project.members, project.roles)
|
||||
@.loadIssue()
|
||||
|
||||
|
||||
|
|
|
@ -112,7 +112,6 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
|||
@scope.issueTypes = _.sortBy(project.issue_types, "order")
|
||||
@scope.issueTypeById = groupBy(project.issue_types, (x) -> x.id)
|
||||
|
||||
@scope.membersById = groupBy(project.memberships, (x) -> x.user)
|
||||
return project
|
||||
|
||||
getUrlFilters: ->
|
||||
|
@ -278,7 +277,7 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
|||
loadInitialData: ->
|
||||
promise = @.loadProject()
|
||||
return promise.then (project) =>
|
||||
@.fillUsersAndRoles(project.users, project.roles)
|
||||
@.fillUsersAndRoles(project.members, project.roles)
|
||||
@.initializeSubscription()
|
||||
return @q.all([@.loadFilters(), @.loadIssues()])
|
||||
|
||||
|
|
|
@ -209,7 +209,7 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
|||
loadInitialData: ->
|
||||
promise = @.loadProject()
|
||||
return promise.then (project) =>
|
||||
@.fillUsersAndRoles(project.users, project.roles)
|
||||
@.fillUsersAndRoles(project.members, project.roles)
|
||||
@.initializeSubscription()
|
||||
@.loadKanban().then( => @scope.$broadcast("redraw:wip"))
|
||||
|
||||
|
|
|
@ -84,7 +84,6 @@ class SearchController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
@scope.taskStatusById = groupBy(project.task_statuses, (x) -> x.id)
|
||||
@scope.severityById = groupBy(project.severities, (x) -> x.id)
|
||||
@scope.priorityById = groupBy(project.priorities, (x) -> x.id)
|
||||
@scope.membersById = groupBy(project.memberships, (x) -> x.user)
|
||||
@scope.usStatusById = groupBy(project.us_statuses, (x) -> x.id)
|
||||
return project
|
||||
|
||||
|
@ -98,7 +97,7 @@ class SearchController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
loadInitialData: ->
|
||||
return @.loadProject().then (project) =>
|
||||
@scope.projectId = project.id
|
||||
@.fillUsersAndRoles(project.users, project.roles)
|
||||
@.fillUsersAndRoles(project.members, project.roles)
|
||||
|
||||
module.controller("SearchController", SearchController)
|
||||
|
||||
|
|
|
@ -135,7 +135,7 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
|
||||
@scope.$emit('project:loaded', project)
|
||||
|
||||
@.fillUsersAndRoles(project.users, project.roles)
|
||||
@.fillUsersAndRoles(project.members, project.roles)
|
||||
|
||||
return project
|
||||
|
||||
|
|
|
@ -107,7 +107,6 @@ class TaskDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
@scope.$emit('project:loaded', project)
|
||||
@scope.statusList = project.task_statuses
|
||||
@scope.statusById = groupBy(project.task_statuses, (x) -> x.id)
|
||||
@scope.membersById = groupBy(project.memberships, (x) -> x.user)
|
||||
return project
|
||||
|
||||
loadTask: ->
|
||||
|
@ -146,7 +145,7 @@ class TaskDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
loadInitialData: ->
|
||||
promise = @.loadProject()
|
||||
return promise.then (project) =>
|
||||
@.fillUsersAndRoles(project.users, project.roles)
|
||||
@.fillUsersAndRoles(project.members, project.roles)
|
||||
@.loadTask().then(=> @q.all([@.loadSprint(), @.loadUserStory()]))
|
||||
|
||||
module.controller("TaskDetailController", TaskDetailController)
|
||||
|
|
|
@ -138,7 +138,7 @@ class TeamController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
loadInitialData: ->
|
||||
promise = @.loadProject()
|
||||
return promise.then (project) =>
|
||||
@.fillUsersAndRoles(project.users, project.roles)
|
||||
@.fillUsersAndRoles(project.members, project.roles)
|
||||
@.loadMembers()
|
||||
|
||||
return @.loadMemberStats()
|
||||
|
|
|
@ -123,7 +123,6 @@ class UserStoryDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
@scope.statusList = project.us_statuses
|
||||
@scope.statusById = groupBy(project.us_statuses, (x) -> x.id)
|
||||
@scope.taskStatusById = groupBy(project.task_statuses, (x) -> x.id)
|
||||
@scope.membersById = groupBy(project.memberships, (x) -> x.user)
|
||||
@scope.pointsList = _.sortBy(project.points, "order")
|
||||
@scope.pointsById = groupBy(@scope.pointsList, (e) -> e.id)
|
||||
return project
|
||||
|
@ -188,7 +187,7 @@ class UserStoryDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
loadInitialData: ->
|
||||
promise = @.loadProject()
|
||||
return promise.then (project) =>
|
||||
@.fillUsersAndRoles(project.users, project.roles)
|
||||
@.fillUsersAndRoles(project.members, project.roles)
|
||||
@.loadUs().then(=> @q.all([@.loadSprint(), @.loadTasks()]))
|
||||
|
||||
module.controller("UserStoryDetailController", UserStoryDetailController)
|
||||
|
|
|
@ -86,7 +86,6 @@ class WikiDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
@scope.projectId = project.id
|
||||
@scope.project = project
|
||||
@scope.$emit('project:loaded', project)
|
||||
@scope.membersById = groupBy(project.memberships, (x) -> x.user)
|
||||
return project
|
||||
|
||||
loadWiki: ->
|
||||
|
@ -117,7 +116,7 @@ class WikiDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
loadInitialData: ->
|
||||
promise = @.loadProject()
|
||||
return promise.then (project) =>
|
||||
@.fillUsersAndRoles(project.users, project.roles)
|
||||
@.fillUsersAndRoles(project.members, project.roles)
|
||||
@q.all([@.loadWikiLinks(), @.loadWiki()]).then () =>
|
||||
|
||||
|
||||
|
|
|
@ -9,7 +9,8 @@ div.wrapper
|
|||
p.description {{vm.project.get('description')}}
|
||||
|
||||
div.single-project-tags.tags-container(ng-if="::vm.project.get('tags').size")
|
||||
span.tag(style='border-left: 5px solid {{::tag.get("color")}};', tg-repeat="tag in ::vm.project.get('colorized_tags')")
|
||||
span.tag(style='border-left: 5px solid {{::tag.get("color")}};',
|
||||
tg-repeat="tag in ::vm.project.get('colorized_tags')")
|
||||
span.tag-name {{::tag.get('name')}}
|
||||
|
||||
div.project-data
|
||||
|
@ -18,7 +19,9 @@ div.wrapper
|
|||
section.involved-data
|
||||
h2.title {{"PROJECT.SECTION.TEAM" | translate}}
|
||||
ul.involved-team
|
||||
a(tg-nav="user-profile:username=member.get('username')", title="{{::member.get('full_name')}}", tg-repeat="member in ::vm.project.get('memberships')")
|
||||
a(tg-repeat="member in ::vm.project.get('members')",
|
||||
tg-nav="user-profile:username=member.get('username')",
|
||||
title="{{::member.get('full_name')}}")
|
||||
img(ng-src="{{::member.get('photo')}}", alt="{{::member.get('full_name')}}")
|
||||
|
||||
// h2.title Organizations
|
||||
|
|
Loading…
Reference in New Issue