Please could I have some suggestions on how to meet this requirement:
I need to be able to add a support plan to a contact. The support plan has an indeterminate number of goals. Each goal has a type, a description and also an indeterminate number of objectives, each of which has a type, a description and some dates. The whole support plan must be visible on the screen at one time, not just while viewing but also while editing.
Civicase (mapping cases to goals) was my original thought but it does not fulfil the requirement of having it all on one screen. EDIT Also, I am not sure how I would record this data in CiviCase because a goal has to have an indeterminate number of objectives and it is not possible to create a repeating set of custom fields against a case. /EDIT
Custom fields, as they stand, do not provide what we need because although you can have repeating sets of fields, you cannot have repeating sets of fields within them.
I am an experienced PHP coder and Drupal dev so taking a custom-code approach is within reach, however the project does not have a huge timescale so I would like to keep it to a minimum or avoid if at all possible.
Here's what I've thought of so far:
Submit a pull request to core, allowing for nested sets of custom fields (I think this would take a long time, both the coding and the administrative process).
Use a Drupal page, so that I can utilise field collections. The problem with this though is that we would not be able to use CiviCRM reporting tools to report on the data. There would also be questions about how to link the drupal page to the contact (logically and visually).
Any ideas? Thanks!