如何获得项目的团队成员数量?

时间:2013-01-09 19:48:19

标签: rally

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

1 个答案:

答案 0 :(得分: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%。

对于实际处理用户故事/缺陷/任务的团队成员而言,查看每个工件的所有者的方法似乎很好。上面的代码只会显示项目中的团队成员,无论他们在做什么。

为了将来参考,文档中的this源代码链接包含可以从简单字符串(例如“用户”或“缺陷”)使用的所有模型类型。