Rally 按项目为故事收集硬纸板
我试图在Rally中创建一个硬纸板来显示分配给特定项目的故事(在给定版本中) 我们使用project字段来确定我们的三个scrum团队中的哪一个正在处理一个特定的故事。我想要一个董事会风格的显示,让我能够从一个团队到另一个团队快速移动故事,并显示一个给定版本的每个团队板块上的内容列表 我开发了以下自定义HTML应用程序:Rally 按项目为故事收集硬纸板,rally,Rally,我试图在Rally中创建一个硬纸板来显示分配给特定项目的故事(在给定版本中) 我们使用project字段来确定我们的三个scrum团队中的哪一个正在处理一个特定的故事。我想要一个董事会风格的显示,让我能够从一个团队到另一个团队快速移动故事,并显示一个给定版本的每个团队板块上的内容列表 我开发了以下自定义HTML应用程序: function cardboardOnLoad(cardboard, args) { var items = args.items; var itemsByT
function cardboardOnLoad(cardboard, args) {
var items = args.items;
var itemsByType = cardboard.getItems(null, "Defect");
var itemsByState = cardboard.getItems("Accepted");
var itemsByTypeAndState = cardboard.getItems("Backlog", "Defect");
}
function onLoad() {
var rallyDataSource = new rally.sdk.data.RallyDataSource('__WORKSPACE_OID__',
'__PROJECT_OID__', '__PROJECT_SCOPING_DOWN__');
var cardboardConfig = {
types : ["Defect", "HierarchicalRequirement"],
attribute: "Project",
fetch : "Name,FormattedID,Owner,ObjectID",
query : 'Release.Name = "RI 3.1.0"',
order : 'Rank'
};
var cardboard = new rally.sdk.ui.CardBoard(cardboardConfig, rallyDataSource);
cardboard.addEventListener(cardboard.getValidEvents().onLoad, cardboardOnLoad);
cardboard.display("cardboard");
}
rally.addOnLoad(onLoad);
唯一的问题是它实际上没有显示我的故事。。。只有项目列名
如果我将属性值更改为“ScheduleState”,但不更改为“Project”,则会显示一些故事,我不知道为什么
任何帮助都将不胜感激
谢谢。这需要稍微高级地使用硬纸板,手动查询列。上面的评论是正确的,否则您可能会遇到一些奇怪的项目范围界定行为 以下应用程序将为当前范围内项目的所有直接子项目构建一个板 假设您有这样一个项目层次结构: 项目1
+--项目2
+--项目3
+--项目4 当范围为项目1时,委员会将包含项目2、项目3和项目4列
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Release Project Board</title>
<meta name="Name" content="Release Project Board" />
<script type="text/javascript" src="/apps/1.32/sdk.js"></script>
<script type="text/javascript">
var rallyDataSource;
var cardBoard;
var releaseDropdown;
function onLoad() {
rallyDataSource = new rally.sdk.data.RallyDataSource('__WORKSPACE_OID__',
'__PROJECT_OID__',
'__PROJECT_SCOPING_UP__',
'__PROJECT_SCOPING_DOWN__');
releaseDropdown = new rally.sdk.ui.ReleaseDropdown({}, rallyDataSource);
releaseDropdown.addEventListener("onLoad", findProjects);
releaseDropdown.addEventListener("onChange", onReleaseChanged);
releaseDropdown.display("release");
}
function onReleaseChanged(rd, args) {
var config = cardboard.getConfiguration();
config.query = releaseDropdown.getQueryFromSelected();
cardboard.refresh(config);
}
function findProjects() {
rallyDataSource.find({
key: "projects",
type: "project",
query: new rally.sdk.util.Query('Parent = /project/__PROJECT_OID__'),
fetch: true
}, onProjectsRetrieved);
}
function onProjectsRetrieved(results) {
var columns = {};
rally.forEach(results.projects, function(project) {
columns[rally.sdk.util.Ref.getRelativeRef(project)] = {
displayValue: project.Name
};
});
var cardboardConfig = {
types : ["Defect", "HierarchicalRequirement"],
attribute: "Project",
fetch : "Name,FormattedID,Owner,ObjectID,Project",
query: releaseDropdown.getQueryFromSelected(),
columns: columns
};
cardboard = new rally.sdk.ui.CardBoard(cardboardConfig, rallyDataSource);
cardboard.display("cardboard");
}
rally.addOnLoad(onLoad);
</script>
</head>
<body>
<div id="release"></div>
<div id="cardboard"></div>
</body>
</html>
发布项目板
var rallyDataSource;
var纸板;
var释放下拉列表;
函数onLoad(){
RALLYDATASOUCE=新的rally.sdk.data.RALLYDATASOUCE(“\uuuu工作区\uu OID”,
'项目''OID'',
“项目、范围界定、向上”,
"项目"范围界定",;
releaseDropdown=new rally.sdk.ui.releaseDropdown({},rallyDataSource);
releaseDropdown.addEventListener(“onLoad”,FindProject);
releaseDropdown.addEventListener(“onChange”,onReleaseChanged);
显示(“释放”);
}
函数onReleaseChanged(rd,args){
var config=carboard.getConfiguration();
config.query=releaseDropdown.getQueryFromSelected();
更新(配置);
}
函数findProjects(){
rallyDataSource.find({
关键:“项目”,
类型:“项目”,
query:new rally.sdk.util.query('Parent=/project/\uuuu project\u OID\uuu'),
fetch:对
},已检索项目);
}
已检索项目上的函数(结果){
var列={};
rally.forEach(结果、项目、功能(项目){
列[rally.sdk.util.Ref.getRelativeRef(项目)]={
displayValue:project.Name
};
});
var cardboardConfig={
类型:[“缺陷”、“层次要求”],
属性:“项目”,
fetch:“名称、格式ID、所有者、对象ID、项目”,
查询:releaseDropdown.getQueryFromSelected(),
列:列
};
cardboard=新的rally.sdk.ui.cardboard(cardboardConfig,rallyDataSource);
纸板。展示(“纸板”);
}
拉力。加载(加载);
这需要稍微高级地使用硬纸板,手动查询列。上面的评论是正确的,否则您可能会遇到一些奇怪的项目范围界定行为
以下应用程序将为当前范围内项目的所有直接子项目构建一个板
假设您有这样一个项目层次结构:
项目1+--项目2
+--项目3
+--项目4 当范围为项目1时,委员会将包含项目2、项目3和项目4列
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Release Project Board</title>
<meta name="Name" content="Release Project Board" />
<script type="text/javascript" src="/apps/1.32/sdk.js"></script>
<script type="text/javascript">
var rallyDataSource;
var cardBoard;
var releaseDropdown;
function onLoad() {
rallyDataSource = new rally.sdk.data.RallyDataSource('__WORKSPACE_OID__',
'__PROJECT_OID__',
'__PROJECT_SCOPING_UP__',
'__PROJECT_SCOPING_DOWN__');
releaseDropdown = new rally.sdk.ui.ReleaseDropdown({}, rallyDataSource);
releaseDropdown.addEventListener("onLoad", findProjects);
releaseDropdown.addEventListener("onChange", onReleaseChanged);
releaseDropdown.display("release");
}
function onReleaseChanged(rd, args) {
var config = cardboard.getConfiguration();
config.query = releaseDropdown.getQueryFromSelected();
cardboard.refresh(config);
}
function findProjects() {
rallyDataSource.find({
key: "projects",
type: "project",
query: new rally.sdk.util.Query('Parent = /project/__PROJECT_OID__'),
fetch: true
}, onProjectsRetrieved);
}
function onProjectsRetrieved(results) {
var columns = {};
rally.forEach(results.projects, function(project) {
columns[rally.sdk.util.Ref.getRelativeRef(project)] = {
displayValue: project.Name
};
});
var cardboardConfig = {
types : ["Defect", "HierarchicalRequirement"],
attribute: "Project",
fetch : "Name,FormattedID,Owner,ObjectID,Project",
query: releaseDropdown.getQueryFromSelected(),
columns: columns
};
cardboard = new rally.sdk.ui.CardBoard(cardboardConfig, rallyDataSource);
cardboard.display("cardboard");
}
rally.addOnLoad(onLoad);
</script>
</head>
<body>
<div id="release"></div>
<div id="cardboard"></div>
</body>
</html>
发布项目板
var rallyDataSource;
var纸板;
var释放下拉列表;
函数onLoad(){
RALLYDATASOUCE=新的rally.sdk.data.RALLYDATASOUCE(“\uuuu工作区\uu OID”,
'项目''OID'',
“项目、范围界定、向上”,
"项目"范围界定",;
releaseDropdown=new rally.sdk.ui.releaseDropdown({},rallyDataSource);
releaseDropdown.addEventListener(“onLoad”,FindProject);
releaseDropdown.addEventListener(“onChange”,onReleaseChanged);
显示(“释放”);
}
函数onReleaseChanged(rd,args){
var config=carboard.getConfiguration();
config.query=releaseDropdown.getQueryFromSelected();
更新(配置);
}
函数findProjects(){
rallyDataSource.find({
关键:“项目”,
类型:“项目”,
query:new rally.sdk.util.query('Parent=/project/\uuuu project\u OID\uuu'),
fetch:对
},已检索项目);
}
已检索项目上的函数(结果){
var列={};
rally.forEach(结果、项目、功能(项目){
列[rally.sdk.util.Ref.getRelativeRef(项目)]={
displayValue:project.Name
};
});
var cardboardConfig={
类型:[“缺陷”、“层次要求”],
属性:“项目”,
fetch:“名称、格式ID、所有者、对象ID、项目”,
查询:releaseDropdown.getQueryFromSelected(),
列:列
};