1

I have a document library with document sets in it. Each document set represents a project.

On the welcome page of each document set I want to show a tasks list (in Gantt chart view) that will be that project's project schedule.

There are 3 things that need to be done here:

  1. Create a new tasks list when a new document set is created - I know how to do this.
  2. Edit the default document set home page so a tasks list is shown on the page - I know how to do this.
  3. The tasks list web part on the document set home page should dynamically point to the newly created tasks list as soon as the document set is created - how do I do this?

Follow-up:

What if I want every document set (i.e. every project) to have its own tasks list, risks list, site feed, etc. - is this even possible?

5
+50

I don't know how many projects will be created throughout the span of your application or the background of your requirement , but i would suggest an alternative plan of considering to make your Project as a sub site instead of Document Set, since you need a separate task list,risk list, site feed etc for each project.

So alternative way would be :

  1. Create a site template with all the lists/libraries/welcome page/site feed etc you need.
  2. Configure welcome page to show Task list of the sub site.
  3. Create sub sites for each project with those site template.

Advantages:

  1. You can use OOTB features to achieve your task 1,2 & 3.
  2. Site feed web part will show only feed for that specific sub-site.
  3. Better isolation of project data.

This will give you a lot flexibility to build your application.

  • Thanks for your suggestions. A couple of questions: 1. How can I display a list of all projects, and allow the user to filter that list of projects by their current status or by customer? Document sets make this easy. 2. The customer has reporting requirements as well, e.g. to be able to see an overall view of budget across all projects, grouped into "programmes", to be able to see how many projects are in "initiation", "in progress" phases, etc. How can I achieve this if project data is spread across individual sites? – Submits Nov 2 '15 at 14:11
  • 1. You can utilize SharePoint search with some basic display template customization ( if required) + refinement panel for filtering. 2. You can have one central list in the root site collection to store the budget and common information of all the projects. The main pitfall i see for the Document Set approach is that the whole project data is not inside the document set but it's in multiple lists and some customizations been done to link those to document set and SharePoint offers OOTB site templates for Projects which you can consider. – Unnie Nov 2 '15 at 15:09
  • Hmm I feel like it wouldn't be ideal to maintain a separate list of project information (like budgets, customers, etc) when this data is already available in the meta data for each project. Am I missing something? – Submits Nov 3 '15 at 9:17
  • So in the end I decided to go with your approach of having a separate sub-web for every project. I only came to this decision once I was happy that it was possible to relatively easily amalgamate the data from each sub-web into a single place for reporting purposes. Thanks for your input. – Submits Nov 10 '15 at 9:43
1

I doubt if it would be possible to do so if you want to use the out-of-the-box webparts. If I would have to solve something like this a the moment, I would build a small AngularJS app, add that app to the document set page and call the rest endpoint of the task list(s) to get the data. Depending on the context of the Angular app you could set a filter on the rest call, or you can go to a specific url.

For the last option you could, for example, add a property to the document set with the relevant url of the task list.

Another option might be updating the webpart properties of the task list on the document set page on page load. I don't know if this would actually work, since it is not rendered on the client side. If you want to try this approach, this is a good starting point: http://almondlabs.com/blog/update-web-part-properties-csom/

  • Thanks for your ideas. The last one is an interesting one indeed. I'll give it a shot and get back. – Submits Nov 2 '15 at 14:06
  • Ok so with your first approach how can I display a tasks list so it looks like a standard tasks list web part, with sorting and filtering features? – Submits Nov 3 '15 at 9:08
  • Rather than going the Angular approach could I just develop a custom web part (I know how) and make it look like a standard tasks list (I don't know how) and in the code behind ensure the appropriate web part property is set so it points to the correct tasks list (i don't know how)? – Submits Nov 3 '15 at 9:14
  • Making it look and work like an out-of-the-box list might be the hardest part. Look at the Office-UI-Fabric (github.com/OfficeDev/Office-UI-Fabric) for a framework to help you with the visuals. Sorting and filtering shouldn't be that hard with Angular (or any other suitable JS framework). I do agree with Unnie on thinking about the structure of your solution, expecially if you're looking into things like a site feed for every project. – Oak3 Nov 3 '15 at 10:46
  • Having individual project sites doesn't feel like the right solution for us. Pulling project data from all sites and reporting on it would be also be more of a challenge. I'm just investigating the possibility of creating a custom document set home page where the code behind changes the task lists' ListViewWebPart property so it points to this particular project's task list. Looking at the API this should be possible. Won't know for sure until I've tried it though. – Submits Nov 4 '15 at 13:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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