I'm building out a project management/project organization site with Drupal. The basic content types will be:

  1. Projects
  2. Milestones (which belong to a project), and
  3. Tasks (which belong to a milestone)

I've built the Project content type. That was easy. I built the Milestone content type, and using the Node Reference module, I was able to access all of the Projects right in the from. Nice! But now Tasks get a bit tricky. Using the same technique, I could reference all of the Milestones in the Tasks form, but I really only want to see the Milestones that are associated with a specific Project. It seems that I would need to employ some kind of filter. How?

What's the best approach here? I have no module restrictions and am using the most current version of Drupal (7.8).

2 Answers 2


You could populate the second list manually by using the PHP code option to generate the values, the values could be something such as ProjectNid|TaskNid|Task Title.

You could then have a javascript hook so when a project was selected from the dropdown, it reads the nid value and then filters out the tasks where the first element (Project nid) doesn't match.

The other way would be reload the page after the project has been selected, and have the PHP code which populates the task field look at the current active value for Project and pull in the related tasks, or use a view with an argument set to achieve the same result.

  • Thanks... I'm slowly realizing that, while Drupal is extremely flexible, it's probably not the right tool for this job. Thanks!
    – Sam
    Oct 24, 2011 at 12:41

I am not sure precisely what you are trying to accomplish. Milestones generally relate to Projects and Tasks relate to Projects. However, in many Projects, Tasks do not have a direct mapping to Milestones. In fact, in many cases, milestones are effectively tasks of zero duration.

Milestones and tasks usually have dependencies on each other as far as completion and such.

If it were me I would tie everything to the Project. Then when displaying items, I would display in date order.

While Drupal is extremely powerful, I think you are correct in questioning whether it is an appropriate solution for a project management system. Drupal is very good for systems which are developed largely with modules out of its repository. However, to develop the kind of system in which you may be envisioning, you would need to have a very deep understanding of project management, Drupal, and PHP.

I think there are many systems already out there which might be worth a look. Quite a few are cheap or open source. Even if you eventually plan to build your own system (which I would generally recommend against), you would be able to come to a thorough understanding of the functionality.

Also, I might point out that Drupal has almost 9000 modules--several of which relate directly to project management. Depending on your specific needs, you may be able to use existing Drupal modules to accomplish your objectives.

A great place to start is http://drupalmodules.com.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.