我使用 2.0 API 创建了一个应用程序,我需要在其中收集为每个项目做出贡献的团队成员的数量。目前,我计算这个数字的方法是查看该项目中任务的唯一所有者的数量。今天我注意到,当我查看每个项目的权限时,它有一个“团队成员”字段,将我列为我加入的团队的一部分。我很好奇这个字段是否可以通过 API 访问以获取每个项目的团队成员数量,或者它是否仅在逐个用户的基础上可见?
问问题
743 次
1 回答
3
SDK 确实有一种方法可以访问每个项目中的团队成员数量。我这样做的方式是查询所有项目,从那里获取团队成员的数量。
这是我如何做到这一点的代码:
Ext.define('TeamMemberCountApp', {
extend: 'Rally.app.App',
componentCls: 'app',
launch: function() {
Ext.create('Rally.data.WsapiDataStore', {
model: 'Project',
fetch: ['Name', 'TeamMembers', 'FirstName', 'LastName'],
autoLoad: true,
context: this.getContext().getDataContext(),
listeners: {
load: this._onDataLoaded,
scope: this
}
});
},
_onDataLoaded: function(store, data) {
var records = [];
Ext.Array.each(data, function(record) {
var teamName = record.get('Name');
var teamMembersList = record.get('TeamMembers');
records.push({
Name: teamName,
TeamMembers: teamMembersList
});
console.log('Number of members in Team ' + teamName + ' is ' + teamMembersList.Count);
});
}
});
该商店将包含团队成员的数量,这是一个常规的 Javascript 数组。这些对象将保存 User 对象的 _ref 值。
数据存储中的 fetch 属性是递归的,这意味着它可以获取团队成员的名字和姓氏,尽管获取了项目模型。要创建完整的用户模型,我相信您需要使用ModelFactory,尽管我不是 100% 的。
就实际处理用户故事/缺陷/任务的团队成员而言,您查看每个工件所有者的方法似乎很好。上面的代码只会显示项目中的团队成员,无论他们在做什么。
为了将来参考,文档中的此源代码链接包含可以从简单字符串(例如“用户”或“缺陷”)使用的所有模型类型。
于 2013-01-10T01:55:13.990 回答