Rally 带点的拉力累积流程图
我想尝试在rally中用他们较新的API/SDK按故事点做一个累积流程图,并在他们的GitHub页面上找到一些示例代码 因此,经过一些工作,我有它的工作在一定程度上,但不明白或可以找到任何文件,如何配置这个更多。看起来生成的报告正在进行计数,而不是我试图添加到fieldsToSum中的PlanEstimate。我怎样才能让它通过c_KanbanState对PlanEstimate字段求和,而不只是给我一个与c_KanbanState匹配的故事数?下面的示例代码减去GitHub的精简代码Rally 带点的拉力累积流程图,rally,Rally,我想尝试在rally中用他们较新的API/SDK按故事点做一个累积流程图,并在他们的GitHub页面上找到一些示例代码 因此,经过一些工作,我有它的工作在一定程度上,但不明白或可以找到任何文件,如何配置这个更多。看起来生成的报告正在进行计数,而不是我试图添加到fieldsToSum中的PlanEstimate。我怎样才能让它通过c_KanbanState对PlanEstimate字段求和,而不只是给我一个与c_KanbanState匹配的故事数?下面的示例代码减去GitHub的精简代码
var userConfig = {
title: 'Cumulative Flow Diagram',
debug: false,
trace: false,
// asOf: "2012-11-01", // Optional. Only supply if want a specific time frame. Do not send in new Date().toISOString().
granularity: 'week',
fieldsToSum: ['PlanEstimate'],
scopeField: "Project", // Supports Iteration, Release, Tags, Project, _ProjectHierarchy, _ItemHierarchy
scopeValue: 'scope',
scopeData: {
StartDate: new Date("2012-12-01T07:00:00.000Z"),
EndDate: new Date(new Date()),
Name: ""
},
//fieldNames: ['count', 'PlanEstimate']
kanbanStateField: 'c_KanbanState',
chartSeries: [
{name: 'To Do'},
{name: 'Dev Ready'},
{name: 'In Dev'},
{name: 'Peer Review'},
{name: 'QA Ready'},
{name: 'QA Done'},
{name: 'Accepted'}
]
}
(function() {
var charts = {};
var visualizer;
var nameToDisplayNameMap;
createVisualization = function(visualizationData) {
if (typeof visualizationData !== "undefined" && visualizationData !== null) {
categories = visualizationData.categories;
series = visualizationData.series;
charts.lowestValueInLastState = visualizationData.lowestValueInLastState;
charts.chart = new Highcharts.Chart({
chart: {
renderTo: 'chart-container',
defaultSeriesType: 'column',
zoomType: 'x'
},
legend: {
enabled: true
},
credits: {
enabled: false
},
title: {
text: userConfig.title
},
subtitle: {
text: userConfig.scopeData.Name
},
xAxis: {
categories: categories,
tickmarkPlacement: 'on',
tickInterval: Math.floor(categories.length / 12) + 1,
title: {
text: userConfig.granularity.slice(0, 1).toUpperCase() + userConfig.granularity.slice(1) + 's'
}
},
yAxis: [
{
title: {
text: 'Total Points',
},
min: charts.lowestValueInLastState
}
],
tooltip: {
formatter: function() {
point = this.point
s = point.series.name + ': <b>' + point.y + '</b><br \>';
if (point.x == point.series.data.length - 1) {
s += point.category.slice(0, point.category.length - 1) + ' to-date';
} else {
s += point.category;
}
return s;
}
},
plotOptions: {
series: {
events: {
legendItemClick: function(event) {
if (this.chart.series.length == this.index + 1) {
if (!this.visible) {
this.chart.yAxis[0].setExtremes(charts.lowestValueInLastState);
} else {
this.chart.yAxis[0].setExtremes(0);
};
};
return true;
}
}
}
},
series: series
}); // end of chart
} else {
// Put a spinner in the chart containers until first fetch returns
$('#chart-container')
.html('<img height="20px" src="https://rally1.rallydev.com/slm/js-lib/ext/2.2/resources/images/default/grid/loading.gif"></img>')
.attr("style", "text-align:center");
};
};
$(document).ready(function() {
visualizer = new CFDVisualizer(charts, userConfig, createVisualization);
});
})();
var userConfig={
标题:“累积流程图”,
调试:错误,
trace:错,
//asOf:“2012-11-01”,//可选。仅在需要特定时间段时提供。不要发送新日期()。toISOString()。
粒度:“周”,
fieldsToSum:['PlanEstimate'],
scopeField:“项目”,//支持迭代、发布、标记、项目、\u项目层次结构、\u项目层次结构
scopeValue:'范围',
范围数据:{
起始日期:新日期(“2012-12-01T07:00:00.000Z”),
EndDate:新日期(new Date()),
姓名:“
},
//字段名:['count','PlanEstimate']
看板状态字段:“c_看板状态”,
图表系列:[
{name:'要做'},
{name:'Dev Ready'},
{name:'In Dev'},
{name:'同行评审'},
{name:'QA Ready'},
{name:'QA Done'},
{name:'已接受'}
]
}
(功能(){
var图={};
变量可视化工具;
var nameToDisplayNameMap;
createVisualization=函数(visualizationData){
if(visualizationData的类型!==“未定义”&&visualizationData!==null){
类别=visualizationData.categories;
series=visualizationData.series;
charts.lowestValueInLastState=可视化数据。lowestValueInLastState;
charts.chart=新的Highcharts.chart({
图表:{
renderTo:'图表容器',
defaultSeriesType:“列”,
zoomType:'x'
},
图例:{
已启用:true
},
学分:{
已启用:false
},
标题:{
文本:userConfig.title
},
副标题:{
text:userConfig.scopeData.Name
},
xAxis:{
类别:类别,,
勾选位置:“on”,
滴答声间隔:数学地板(categories.length/12)+1,
标题:{
text:userConfig.granularity.slice(0,1).toUpperCase()+userConfig.granularity.slice(1)+'s
}
},
亚克斯:[
{
标题:{
文字:“总分”,
},
最小值:charts.lowerstvalueinlaststate
}
],
工具提示:{
格式化程序:函数(){
点=这个点
s=point.series.name+':'+point.y+'
;
if(point.x==point.series.data.length-1){
s+=point.category.slice(0,point.category.length-1)+“至今”;
}否则{
s+=点类别;
}
返回s;
}
},
打印选项:{
系列:{
活动:{
legendItemClick:函数(事件){
if(this.chart.series.length==this.index+1){
如果(!this.visible){
this.chart.yAxis[0].setextrems(charts.lowestValueInLastState);
}否则{
this.chart.yAxis[0].setextrems(0);
};
};
返回true;
}
}
}
},
系列:系列
});//图表的结尾
}否则{
//在图表容器中放置一个微调器,直到第一次获取返回
$(“#图表容器”)
.html(“”)
.attr(“样式”,“文本对齐:居中”);
};
};
$(文档).ready(函数(){
可视化工具=新的CFDVisualizer(图表、用户配置、createVisualization);
});
})();
您可能正在使用稍旧的版本,因为最新版本的配置中没有fieldsToSum参数,但您可以通过在CFDVisualizer.coffee中更改几行,将图表升级为sum PlaneSimate:
@config.lumenizeCalculatorConfig.metrics = [
{f: 'groupBySum', field: 'PlanEstimate', groupByField: @config.kanbanStateField, allowedValues: allowedValues}
]
发件人:
您可能还应该更改cfd.html中的轴标签
如果这太难实现(CoffeeScript可能不熟悉),请告诉我,我将向GitHub发布一个新版本。我能够在缩小后的部署版本中找到代码。更改这些行使其符合我的需要。谢谢
@config.lumenizeCalculatorConfig.metrics = [
{f: 'groupByCount', groupByField: @config.kanbanStateField, allowedValues: allowedValues}
]