2

特定のプロジェクト(特定のリリース内)に割り当てられたストーリーを表示するために、RallyでCardboardを作成しようとしています。

プロジェクトフィールドを使用して、3つのスクラムチームのどれが特定のストーリーに取り組んでいるかを特定します。ボードスタイルのディスプレイで、チーム間でストーリーをすばやく移動し、特定のリリースの各チームプレートの内容のリストを表示できるようにしたいと思います。

私は次のカスタムHTMLアプリを思いついた:

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」には変更されません。理由はわかりません...

どんな助けでもいただければ幸いです。

ありがとう。

4

1 に答える 1

0

これには、列を手動で照会する段ボールの少し高度な使用法が必要です。上記のコメントは、プロジェクトのスコーピングの奇妙な動作に遭遇する可能性があるという点で正しいです。

次のアプリは、現在スコープが設定されているプロジェクトのすべての直接の子プロジェクト用のボードを作成します。

次のようなプロジェクト階層があると仮定します。

プロジェクト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>
于 2012-09-13T00:02:10.393 に答える