Coder Social home page Coder Social logo

childtaskstemplate's People

Contributors

jonathanlascaux avatar jpiquot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

childtaskstemplate's Issues

ability to create Work Item Types other than Task

The one major thing preventing us from being able to use this extension is that we have a number of Custom Work Item Types setup in our Process in Azure Dev Ops and in many cases patterns that require creating work items other than tasks

We would love to switch to this extension as it seems much better than 1-click child tasks, so It would be great if

  • we could indicate in the json the work item type for each child item.
  • we could restrict what kind of work item types are allowed to have each profile. This would help our users to only be able to use profiles that were intended to be used on a Feature for Features and those for Bugs/PBIs

e.g. the following "example" profile would only be available when clicking on "Add tasks" on either a Bug or Product Backlog Item and it would create two standard child items, one Task and one Release Instruction (a custom Work Item Type that we have created in Azure Devops)

{
    "name": "example",
    "onlyFor": ["Bug","Product Backlog Item"]
    "tasks": [
        {
            "name": "Design Task",
            "type": "Task"
            "fields": [
                {
                    "name": "System.Title",
                    "value": "{System.Title} AF:{id}"
                },
                {
                    "name": "System.IterationPath",
                    "value": "{System.IterationPath}"
                },
                {
                    "name": "System.AreaPath",
                    "value": "{System.AreaPath}"
                },
                {
                    "name": "Microsoft.VSTS.Common.Priority",
                    "value": "{Microsoft.VSTS.Common.Priority}"
                },
                {
                    "name": "Microsoft.VSTS.Common.Activity",
                    "value": "Design"
                },
                {
                    "name": "Release has MDS",
                    "type": "Release Instruction",
                    "fields": [
                        {
                            "name": "System.Title",
                            "value": "{System.Title} AF:{id}"
                        }
                    ]
                }
            ]
        }
    ]
}

Perhaps the "tasks" node should be renamed for this as child items may no longer be tasks (perhaps "children" would be the appropriate term) and perhaps this could be combined with the idea from #12

Great software, but seems to have stopped working after release 1.0.5

This was working brilliantly for me on Friday and has been really valuable, we have a selection of tasks added automatically.

After the automatic AzureDevOps update, I can still see the extension and its settings.
I can change the template json.
I can see the "Add tasks" button in the product backlog item menu, BUT when I select it, literally nothing happens.

I have tried from the product backlog list and tried from within the product backlog item.
I have tried different varieties of whether it is the template containing illegal characters etc, but even your example template doesn't work.
I have looked at different states of the story, but it doesn't seem to work for ANY existing product backlog items.
I have tried clearing all local browser caches etc, and reviewed authentication credentials etc.

It typically use Chrome, but when using Edge I get the following error on console when selecting the button

{description: "Assignment to read-only properties is not allowed in strict mode", message: "Assignment to read-only properties is not allowed in strict mode", name: "TypeError", number: -2146823243, stack: "TypeError: Assignment to read-only properties is not allowed in strict mode at u.setFieldValue (https://fiveforty.gallerycdn.vsassets.io/extensions/fiveforty/childtaskstemplate/1.0.5/1607858620668/dist/extension.js:8:12810) at u.setFieldValue (https://fiveforty.gallerycdn.vsassets.io/extensions/fiveforty/childtaskstemplate/1.0.5/1607858620668/dist/extension.js:8:12752) at u.setFieldValue (https://fiveforty.gallerycdn.vsassets.io/extensions/fiveforty/childtaskstemplate/1.0.5/1607858620668/dist/extension.js:8:12752) at u.interpolate (https://fiveforty.gallerycdn.vsassets.io/extensions/fiveforty/childtaskstemplate/1.0.5/1607858620668/dist/extension.js:8:12568) at Anonymous function (https://fiveforty.gallerycdn.vsassets.io/extensions/fiveforty/childtaskstemplate/1.0.5/1607858620668/dist/extension.js:8:12231) at Generator.prototype.next (native code) at s (https://fiveforty.gallerycdn.vsassets.io/extensions/fiveforty/childtaskstemplate/1.0.5/1607858620668/dist/extension.js:8:10980)"...}

Any help diagnosing the problem would be much appreciated

Thanks

Michael

How can I work with custom WorkItemTypes?

I was trying to use the following configuartion
{ name: "System.WorkItemType" value: "Review" }
Review is a custom work item type created in an inherited process.

If I run this configurations, I'm getting the error message that says the Review is not allowed for System.WorkItemType.
I have check the details of a custom type and there the System.WorkItemType has the Review value.

Could you guide me please?
Thanks

make task/child "name" the title [low priority]

To save duplication it would be good if the tasks.name provided the System.Title (if it was missing). I can't imagine why anyone would need a different tasks.name from the System.Title

So instead of

{
    "version": 2,
    "templates": [
        {
            "name": "Dev - Common",
            "tasks": [
                {
                    "name": "* Ensure requirement is fully understood",
                    "fields": [
                        {
                            "name": "System.Title",
                            "value": "* Ensure requirement is fully understood"
                        },
...

The name could drive the title to save the copy and pasting

{
    "version": 2,
    "templates": [
        {
            "name": "Dev - Common",
            "tasks": [
                {
                    "name": "* Ensure requirement is fully understood",
                    "fields": [
                    ]
...

perhaps this could be implemented alongside the ideas in #12

Great work, some ideas

Hi, ADO desperately needs a way to create child items from master templates so great that someone else is working on this. Right now 1-click-child tasks extension seems to be better suited for us for the following reasons

  1. Easier to setup templates using the templates area rather than creating json from scratch.
  • This also means that the templates are available via the UI templates area also if you want to update existing ones.
  • Don't need to know the system field names etc.
  1. Able to setup seperate teams with seperate stack of templates. We use this to have a release, GetReady and Dev teams all have their own set of default tasks

Things that I would really like to see added would be
A. able to build sets of tasks with a name that can be picked at runtime. I can imagine that some way of indicating in the template description (e.g. #CsharpDevTasks or #PowershellDevTasks could provide the list of groups to select).
B. 1-click-child-links allows you to select which tasks will be created from each different parent type. It even works for Features/PBI's which is really useful.
C. 1 click-child-tasks is flakey unless you run it from the card view, it would be good if this could be done from the list view also

Nested Template configuration

Hi
I desperately need the ability to create a whole Tree of Work Items (Epic (as root Work Item) --> Features as childs, Features --> Stories as childs, Stories --> Tasks as childs)
Is it possible to nest the JSON configuration to achieve the automatic generation of such as Work Item Tree?

UI bugs with the json editor

first off, we love this extension. It serves our needs perfectly. I am reporting a small UI bug i noticed with the json editor.

  • There are some non-english characters in the dropdown that switches from tree to text
  • There are some non-english characters in the breadcrumb after selecting a node

see attached
2021-06-09 10_16_49-Settings · Child Tasks Template (Data) - Settings

Only the first two tasks appear from this json file. What can I do to fix this?

I did run it through a JSON checker, which didn't reveal any errors. Suggestions?

{ "version": 2, "templates": [ { "name": "Development Tasks", "tasks": [ { "name": "UI/UX - Updates", "fields": [ { "name": "System.Title", "value": "UI/UX - Updates" }, { "name": "System.IterationPath", "value": "{System.IterationPath}" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Priority", "value": "{Microsoft.VSTS.Common.Priority}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Design" } ] }, { "name": "Analysis", "fields": [ { "name": "System.Title", "value": "Analysis" }, { "name": "System.IterationPath", "value": "{System.IterationPath}" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Development" } ] }, { "name": "Coding - UI", "fields": [ { "name": "System.Title", "value": "Analysis" }, { "name": "System.IterationPath", "value": "Coding - UI" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Development" } ] }, { "name": "Unit Testing - UI", "fields": [ { "name": "System.Title", "value": "Analysis" }, { "name": "System.IterationPath", "value": "Unit Testing - UI" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Development" } ] }, { "name": "Coding - Backend", "fields": [ { "name": "System.Title", "value": "Analysis" }, { "name": "System.IterationPath", "value": "Coding - Backend" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Development" } ] }, { "name": "Unit Testing - Backend", "fields": [ { "name": "System.Title", "value": "Analysis" }, { "name": "System.IterationPath", "value": "Unit Testing - Backend" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Development" } ] }, { "name": "Data Preparation", "fields": [ { "name": "System.Title", "value": "Analysis" }, { "name": "System.IterationPath", "value": "Data Preparation" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Development" } ] }, { "name": "Code Review", "fields": [ { "name": "System.Title", "value": "Analysis" }, { "name": "System.IterationPath", "value": "Code Review" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Development" } ] }, { "name": "Git Push/Pull", "fields": [ { "name": "System.Title", "value": "Analysis" }, { "name": "System.IterationPath", "value": "Git Push/Pull" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Development" } ] }, { "name": "Deploy", "fields": [ { "name": "System.Title", "value": "Analysis" }, { "name": "System.IterationPath", "value": "Deploy" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Development" } ] }, { "name": "Demo Prep (Dry Run)", "fields": [ { "name": "System.Title", "value": "Analysis" }, { "name": "System.IterationPath", "value": "Demo Prep (Dry Run)" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Development" } ] }, { "name": "Demo", "fields": [ { "name": "System.Title", "value": "Analysis" }, { "name": "System.IterationPath", "value": "Demo" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Development" } ] }, { "name": "Test Task", "fields": [ { "name": "System.Title", "value": "{System.Title} TEST:{id}" }, { "name": "System.IterationPath", "value": "{System.IterationPath}" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Testing" } ] }, { "name": "Create Test Cases", "fields": [ { "name": "System.Title", "value": "Create Test Cases" }, { "name": "System.IterationPath", "value": "{System.IterationPath}" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Testing" } ] }, { "name": "Execute Test Cases", "fields": [ { "name": "System.Title", "value": "Execute Test Cases" }, { "name": "System.IterationPath", "value": "{System.IterationPath}" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Testing" } ] }, { "name": "Data Creation/setup", "fields": [ { "name": "System.Title", "value": "Data Creation/setup" }, { "name": "System.IterationPath", "value": "{System.IterationPath}" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Testing" } ] }, { "name": "Defect Retesting", "fields": [ { "name": "System.Title", "value": "Defect Retesting" }, { "name": "System.IterationPath", "value": "{System.IterationPath}" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Testing" } ] } ] }, { "name": "other", "tasks": [ { "name": "Design Task", "fields": [ { "name": "System.Title", "value": "{System.Title} AF:{id}" }, { "name": "System.IterationPath", "value": "{System.IterationPath}" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Priority", "value": "{Microsoft.VSTS.Common.Priority}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Design" } ] }, { "name": "Dev Task", "fields": [ { "name": "System.Title", "value": "{System.Title} DEV:{id}" }, { "name": "System.IterationPath", "value": "{System.IterationPath}" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Development" } ] }, { "name": "Test Task", "fields": [ { "name": "System.Title", "value": "{System.Title} TEST:{id}" }, { "name": "System.IterationPath", "value": "{System.IterationPath}" }, { "name": "System.AreaPath", "value": "{System.AreaPath}" }, { "name": "Microsoft.VSTS.Common.Activity", "value": "Testing" } ] } ] } ] }

Is there a way to deactivate multi templates? Or enable a default one?

Hey ,
in my project, i just need one template.
When i use the default json file, i have to choose the template which i want to use.
Now i deleted one template, but the dialog still comes up and i have to choose (enable) the only existing template in the list.
Is there a way to Enable a template as default? Or to supress the dialog if there is only one entry in the list?

Allow reusable sets of tasks that maintain ordering [low priority]

One thing that our current "1-click child tasks" component does well (that has a number of other issues and we'd love this to replace it) is allowing us to setup a number of tasks in order

image

i.e we want "heal effect of bug" bug only task to be before shared "orientation and task estimates" and that before bug only task "add PostDeploy to remove DisableDoParameter".

I mentioned this way back in the now closed #1

The problem with the current implementation is that we either have to have

  • 2 separate groups of task e.g. "Bugs", "PBIs" with duplicate tasks for each one where they both need the same. This means that we have to copy and paste the same tasks across which is difficult to maintain.
  • OR we could have 3 separate groups "Shared", "Bug tasks only" and "PBI's tasks only" BUT there is no way to ensure that the "Bug tasks only" are ordered appropriately alongside the "PBIs tasks only". Today it would result in the Bug Only tasks to be grouped together and the Shared tasks to be grouped together incorrectly.

Today our only practical option is the first one with the overhead that this brings

It would be great if we could either

  1. Indicate a constraint on each Task to indicate the "workItemTypes" that this would be created on. This way we would just have a single group "Bugs/Pbis" and then appropriate tasks would be created in the given order
  2. Have a way to indicate ordinal

option 1 is much more preferable as it would be much easier to maintain and intuitive to understand what would happen

"Add Tasks" Button is shown twice but only one does work.

The "Add Tasks" button is shown twice but only one button works.
Our consultants are constantly confused because pressing a button does not work.
I have uninstalled and reinstalled the extension several times but both button remain.
Strangely, this is not the case with every project. What can I do?
image

Cannot copy dates fields over

First I want to thank you for creating this extension and putting it up on the market. It's extremely helpful for my role.

I am able to successfully copy "Text (single line)" fields over successfully with no issue from a user story to a child task created by the child task template.

When I try to copy a "Date/Time" field over from a user story (double checking that I put in the proper "Custom." field and its properly spelled, it doesn't allow me to create any child tasks

Also unrelated, when one of my fields is blank on the user story and I use the child task template, it causes the underlying tasks to populate that field with "undefined". Is it possible to let it populate the field with nothing?

Extension does not work with process template inherited from out-of-the-box Agile process template

I installed version 1.0.6 of your extension on Dec 19, 2020 at 8 pm EST on Azure DevOps Server 2019, Update 1.1, patch 6

Here is my json file:

{
  "tasks": [
    {
      "name": "Design Task",
      "fields": [
        {
          "name": "System.Title",
          "value": "{System.Title} Design FOO"
        }
      ]
    },
    {
      "name": "Dev Task",
      "fields": [
        {
          "name": "System.Title",
          "value": "{System.Title} Dev FOO"
        }
      ]
    },
    {
      "name": "Test Task",
      "fields": [
        {
          "name": "System.Title",
          "value": "{System.Title} Test FOO"
        }
      ]
    }
  ]
}

For a project based on the out-of-the-box Microsoft Agile process template, the template works great

For a project based on a custom process template that I inherited from the out-of-the-box Microsoft Agile process template, it does not work. Note: I created the customized process template using inheritance from the web portal and NOT by exporting/editing XML. Everything works as its supposed to except: When I'm editing a user story and click the Add tasks button, nothing happens, and the Edge console shows the following (see screen shot).

If you want, I'll capture logs and send them to you. Let me know

2020_12_20_12_48_13_User_Story_2786_new_test_Boards_and_1_more_page_Work_Microsoft_Edge

compact json option? [low priority]

the json structure is very verbose and allows duplicate collection and field names which are not desirable.

these could be both solved by using objects instead of arrays, so instead of:

{
    "name": "My Example Tasks",
    "tasks": [
        {
            "name": "My Design Task",
            "fields": [
                {
                    "name": "System.Title",
                    "value": "{System.Title} AF:{id}"
                },
                {
                    "name": "System.IterationPath",
                    "value": "{System.IterationPath}"
                },
                {
                    "name": "System.AreaPath",
                    "value": "{System.AreaPath}"
                },
                {
                    "name": "Microsoft.VSTS.Common.Priority",
                    "value": "{Microsoft.VSTS.Common.Priority}"
                },
                {
                    "name": "Microsoft.VSTS.Common.Activity",
                    "value": "Design"
                }
            ]
        }
    ]
}

how about

{
    "My Example Tasks": {
        "tasks": {
            "My Design Task": {
                "fields": {
                    "System.Title": "{System.Title} AF:{id}",
                    "System.IterationPath": "{System.IterationPath}",
                    "System.AreaPath": "{System.AreaPath}",
                    "Microsoft.VSTS.Common.Priority": "{Microsoft.VSTS.Common.Priority}",
                    "Microsoft.VSTS.Common.Activity": "Design"
                }
            }
        }
    }
}

or to include the idea from #13

{
    "My Example Tasks": {
        "workItems": [
            "Bug",
            "Product Backlog Item"
        ],
        "children": {
            "My Design Task": {
                "workItemType": "Task",
                "fields": {
                    "System.Title": "{System.Title} AF:{id}",
                    "System.IterationPath": "{System.IterationPath}",
                    "System.AreaPath": "{System.AreaPath}",
                    "Microsoft.VSTS.Common.Priority": "{Microsoft.VSTS.Common.Priority}",
                    "Microsoft.VSTS.Common.Activity": "Design"
                }
            }
        }
    }
}

This way it isn't valid json to have duplicate "example Tasks" or duplicate fields inside a single task and autoformat produces more concise code

The collection does not exist

I'm having issues when using the template. The selection modal shows up just fine but when selecting a template the following error shows in the console.

https://extmgmt.dev.azure.com/myorganization/_apis/ExtensionManagement/InstalledExtensions/Fiveforty/ChildTasksTemplate/Data/Scopes/Default/Current/Collections/%24settings/Documents/fiveforty-child-tasks-template-c1a62f9d-49a8-41ab-9405-f6f7a76a8c4c will display the error
{"$id":"1","innerException":null,"message":"%error=\"1660002\";%:The collection does not exist\r\n%error=\"1660002\";%:The collection does not exist","typeName":"Microsoft.VisualStudio.Services.ExtensionManagement.WebApi.DocumentCollectionDoesNotExistException, Microsoft.VisualStudio.Services.ExtensionManagement.WebApi","typeKey":"DocumentCollectionDoesNotExistException","errorCode":0,"eventId":3000}

Checking the https://dev.azure.com/myorganisation/_apis/wit/workItems will display the error
{"count":1,"value":{"Message":"No HTTP resource was found that matches the request URI 'https://dev.azure.com/_apis/wit/workItems'."}}

image

How to easily troubleshoot?

#16 was quite hard to troubleshoot as all I saw was no tasks get created at all, no errors or anything. I had to create a test json and trial and error different combinations of fields.

Any chance of some helpful error output?

Only works when the parent work item is open

I really like this extension - it has been something my teams have asked for for years.

We're on Azure DevOps Server 2020.1

I can see Add tasks via the ... actions item in Backlogs, Boards, and Sprints, but if I try to use it in this scenario, it does not actually add the tasks.

I have to open the work item, then choose Add tasks via the ... actions item.

Add tasks should not be available in the actions if it will not work in that context.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.