Friday, April 10, 2009

Modifying Content Types With Additional List Fields

One of IntelliGantt's most powerful features is it's 'Workspace Settings', which allows the project manager to add fields to a task list, dynamically update read/write privileges, change their display name and description. When working with some templates, however, you may be flummoxed when you see your fields in the overall view (like Actual Duration and Duration):

But when you go to edit a task, the custom fields are not there:

In fact, it feels like it should just work when you go to the task list's List Settings administration page and see the custom fields there:

The unknown key to this conundrum is that the list is actually using a content type to define its fields. This specific list is from the the 'Change Request' template from the Microsoft 'Fabulous Forty' pack. Other templates from the 'Fabulous Forty' also use content types to define the fields for their Project Tasks, Project Milestones and other lists. In fact, content types are very powerful in that they encourage re-use. The problem here is more with the UI as the fact that a content type is in use is totally hidden.

To add your custom fields to the content type this list is using, first click on Advanced Settings, located in the General Settings group near the top. Clicking on Advanced Settings let's you see this very important setting:

In order to add fields to our content type we will need to manage the content type, so click 'Yes' for this setting. Now when we return to the List Settings page, notice a slight change (helpfully outlined in burgandy):

There's that content type! This Project Tasks list is using a 'Project Task' content type to define the fields. Click on the 'Project Task' entry which takes us to this page where we can refine it:

Select the custom fields you wish to add to the Project Task content type (all of them in this case):

The end result is that now these custom fields will be available when you edit a task:

This isn't specific to task list, but is a general solution for how SharePoint binds lists with content types. The key is the enabling content type management in the Advanced Settings.

Thanks to Jack Hill from Oxbo International for working with us to solve this puzzle.

1 comment:

Noel Walsh said...

Thanks for the info. When I read this I was looking for advice on adding certain column types and the associated functionality from one list type to another.
My example is this...
We have created a contacts list to track all of the sales leads in the company. There have been a few extra columns added to the list to aide filtering and categorising but in general it's a contacts list so the option to 'Link to Outlook' opens a new contacts list in Outlook.
What I want to do is assign taks s to follow up a lead based on a date column type.
I was all set to write a workflow on SPD but then thought about the built-in ability to assign tasks to users and to link those taks s to Outlook.
How can I get a contacts list to take on some of the features of a tasks list?

Thanks in advance.