从LookBack使用UserID检索UserName

时间:2018-02-08 05:03:41

标签: rally

我正在使用LookBack获取历史修订信息。 我得到_User值,这是一个用户ID。 我该如何检索相应的用户名?

我玩过ModelFactories但没有成功。

 //use lookback api to retrieve user story info
 _createRevisionInfo: function(record, item)
 {
  var userStoryID = item.get('FormattedID');
  var userStoryName = item.get('Name');
  var snapShotFilters = this._getSnapShotFilters(userStoryName, userStoryID);

  //create store
  this.snapshotStore = Ext.create('Rally.data.lookback.SnapshotStore',
  {
    fetch: ['ScheduleState', '_ValidFrom', 'PlanEstimate', '_User'],
        autoLoad: true,
        filters: snapShotFilters,
        hydrate: ['ScheduleState'],
        sortOnFilter: true,
        sortonload: true,
        .
        .
     });
},

_onSnapShotStoreLoad: function()
{       
    if(!this.down('#my-grid2'))
    {
    var columnCfgs = [
        {
            width: 175,
            text: 'Date Changed',
        },
        {
            text: 'State Change',
            width: 335,
        },
        {
            text: 'Author', 
            dataIndex: '_User',
            width: 175,
        }];

        this._createGrid(......);
    }
},

1 个答案:

答案 0 :(得分:0)

不幸的是,没有办法用lookback api来保护用户。那将是非常甜蜜的!

现在最好的选择是在回溯数据回来后查询wsapi以获取需要补水的所有用户。像这样的东西?

_onSnapshotStoreLoad: function(store) {
    var userOids = _.uniq(_.map(store.getRange(), function(record) { return record.get('_User'); }));

    Ext.create('Rally.data.wsapi.Store', {
        autoLoad: true,
        model: 'User',
        filters: [{ property: 'ObjectID', operator: 'in', value: userOids.join(',')}]
    });
}

然后当该商店加载时,您可以将数据混合到您的回顾数据中并像您一样创建网格。