Rilegrid集团由里程碑组成

时间:2016-08-23 16:03:27

标签: rally

您好我正在尝试按照分配到的里程碑对US / Defects进行分组。有谁知道这样做的方法? 我可以按所有者或项目进行分组,但可以按里程碑进行分组。



this.add({
                        xtype: 'rallygrid',
                        columnCfgs: [
                            'FormattedID',
                            'Name',
                            'State',
                            'Owner',
                            'Milestones'
                        ],
                        context: this.getContext(),
                        features: [{
                            ftype: 'groupingsummary',
                            groupHeaderTpl: '{name} ({rows.length})'
                        }],
                        storeConfig: {
                            models: ['User Story', 'Defect'],
                            groupField: 'Milestones',
                            groupDir: 'ASC',
                         /*  filters : [
                                {
                                  property : 'State',
                                  operator : '!=',
                                  value : 'Closed'
                                }
                            ],*/
                            fetch: ['Milestones'],
                            getGroupString: function(record) {
                                var Milestones = record.get('Milestones');
                                return (Milestones && Milestones._refObjectName) || 'No Milestones';
                            }
                        }
                    });




谢谢!

1 个答案:

答案 0 :(得分:1)

这是一个棘手的问题。这就是我想出的:

this.add({
    xtype: 'rallygrid',
    columnCfgs: [
        'FormattedID',
        'Name',
        'State',
        'Owner',
        'Milestones'
    ],
    context: this.getContext(),
    features: [{
        ftype: 'groupingsummary',
        groupHeaderTpl: '{name} ({rows.length})'
    }],
    storeConfig: {
        model: 'userstory',
        groupField: 'Milestones',
        listeners: {
            beforeload: function(store) {
                //remove the Milestones sorter, since Milestones
                //is not a sortable field
                var sorter = store.sorters.first();
                if (sorter && sorter.property === store.groupField) {
                    store.sorters.remove(sorter);
                }
            }
        },
        getGroupString: function(record) {
            var milestones = record.get('Milestones');

            //grab the Name field from each object in the _tagsNameArray
            return _.pluck(milestones._tagsNameArray, 'Name').join(',') || 'None';
        }
    }
});

与您的代码有两个主要区别。第一个是storeConfig中的beforeload处理程序。存储的默认行为是将groupField添加到分拣机数组中。这通常是我们想要的,但在这种情况下,里程碑不是WSAPI中的可排序字段,因此请求失败。所以我们只是删除那个分拣机。

第二个更改是在getGroupString函数中。里程碑是一个集合,因此您不能像对象或父对象一样直接使用_refObjectName。

希望有所帮助!