As you probably know (or don’t care), Sharepoint 2007 does not allow for list data to be easily ported across site boundaries. I think this is silly, especially not being able to share list data from a parent site to a child site. I’ve been obsessed lately with finding the supposed holy grail of Sharepoint 2007: the Master Calendar. There are commercial solutions to to this (BambooSolutions supposedly has the best list roll-up and master calendar web parts), but I wanted to find a way to do this for free. Much to my surprise, there are some solutions that even a neophyte like me can digest. As a result, I have been able to create a master calendar (note: not a roll-up calendar) for our MOSS site structure. It was doable pretty much out of the box, with the exception of needing SharePoint Designer for customizing views and filtering the DataForm WebPart.
I’m not a Sharepoint Guru by any stretch of the imagination. I did a lot of research to find a solution for this, and happened upon a small amount of information I could actually understand. My particular take on the Master Calendar is simply a combination of different solutions:
- Created a “Team Calendar” on the parent site.
- Created a series of filtered views (based off of event types and other specific columns) for each of the different regions and teams. Note, you will need to remove the “_hidden” flag from the event content types to filter in the manner.
- Remove all calendar lists from each of the sub-sites.
- Link to the specific filtered master calendar view lists on each of the sub-sites.
Endusersharepoint.com has an interesting take on this strategy, using LyteBox to display a pop-up of the Master Calendar. Unfortunately, I don’t care for the LyteBox interface (too processor consuming on older systems), and would prefer to have something I could just look at by going to a main page (rather than clicking on a link). Mark Miller did host a pretty good online class on the LyteBox solution, that wasn’t particularly expensive. He explains event type content filtering extensively, and hooks you up with the LyteBox java script. If you are new to this, it might be worth the $70 (provided that they are still hosting the classes).
Rather than using LyteBox, I opted to use the DataForm WebPart, and just filter the views of the different pages. Ironically, in my search to find different ways to filter the list data, I ran across Susan’s Blog. This is similar to what I set up, and she has some very easy to follow instructions and screen shots.
An alternate to this would be to merge several different calendars together, and view the list in a DataForm. Corro’ll Driskell has a simple to follow page on this. The only downside is that the data from the multiple lists is just merged into a data source, rather than updating each other. So, it’s not really a “Calendar Roll-Up” solution, but would allow one to poll specific calendar data from multiple sources. Might be good enough to appease a manager somewhere.
The only thing I’m not really satisfied with is the default List View of the DataForm. Due to amount of data we port into our team calendar, it’s actually a good view for the main page of the parent site. However, I would prefer the standard “Calendar View” for the main pages of the team sub-sites. By default, this is not an option unless you link the SharePoint List Toolbar to the DataView WebPart. This doesn’t work, though, if you are pulling a list from a parent to a sub-site. You’ll get some “error rendering control” messages where the toolbar should appear. This effectively kills your site until you remove the toolbar.
Neil Richards apparently discovered the cause of this issue, and has isolated a simple solution. Unfortunately, I have no idea what he is talking about.
It’s simple enough to copy the parameter from the subsite dataview into the masterpage dataview.
<WebPartPages:DataFormParameter Name=”WebURL” ParameterKey=”WebURL” PropertyName=”ParameterValues” DefaultValue=”/”/>
Can any of you interweb eggheads out there make sense of this? Where does one find the elusive “masterpage dataview?” Search as I may, I cannot find it. Alternatively, could one convert a standard list view into a calendar view? I’m assuming you could apply the correct css stylesheets, but I’m not smart enough to figure this out on my own. I will reward 40 virgins to the first person that can come up with an acceptable solution (that I can comprehend).