0
votes

So we are looking to build a custom app that will show the percentage acceptance for all teams under a group/app. Say i have 10 teams grouped under an app/project (node in the hierarchy tree on the left of Rally), i wish to show team names in one column and the percentage acceptance next to it (for an iteration selected in the combo box). So if I am currently on the parent project (of which the 10 teams are child) then i want my app to show the percentage acceptance for individual teams listed in a Panel.

So far have been successful to do it for one team (if I am in the context of one team) i have code that fetches all the stories for the selected iteration and calculate the percentage acceptance on basis of the state of the stories.

Is there any way i can get the segregated list of stories for each team under the parent node? Currently i am getting a huge list of ALL stories under the parent node/project.

1

1 Answers

0
votes

If you want to group stories by child projects you may use groupField: 'Project' in the store config. Here is an example of stories scheduled for the current iteration grouped by respective child projects under a parent project:

Ext.define('CustomApp', {
    extend: 'Rally.app.App',
    componentCls: 'app',
    launch: function() {
        var today = new Date().toISOString();
        this.add({
            xtype: 'rallygrid',
            columnCfgs: [
                'FormattedID',
                'Name',
                'State',
                'ToDo'
            ],
            context: this.getContext(),
            features: [{
                ftype: 'groupingsummary',
                groupHeaderTpl: '{name} ({rows.length})'
            }],
            storeConfig: {
                model: 'UserStory',
                groupField: 'Project',
                groupDir: 'ASC',
                fetch: ['Project'],
                filters: [
                    {
                        property: 'Iteration.StartDate',
                        operator: '<=',
                        value: today
                    },
                    {
                        property: 'Iteration.EndDate',
                        operator: '>=',
                        value: today
                    }
                ],
                getGroupString: function(record) {
                    var project = record.get('Project');
                    return project._refObjectName;
                }
            }
        });
    }
});

enter image description here