3

我使用 2.0 API 创建了一个应用程序,我需要在其中收集为每个项目做出贡献的团队成员的数量。目前,我计算这个数字的方法是查看该项目中任务的唯一所有者的数量。今天我注意到,当我查看每个项目的权限时,它有一个“团队成员”字段,将我列为我加入的团队的一部分。我很好奇这个字段是否可以通过 API 访问以获取每个项目的团队成员数量,或者它是否仅在逐个用户的基础上可见?

4

1 回答 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 回答