23 Jul 2011
25 Jul 2011
Link to this post
I have the following requirements for a workflow in SiteFinity 3.7. I believe that some of the requirements are not possible, so I'd like to clarify which (if any) aren't and analyze if there are workarounds for these or if they're supported in SiteFinity 4.x.
The basic use case would be this:
1. A piece of generic content is created.
2. The content is sent through a workflow based on tag. So content tagged to "environment" would go through a different workflow / approval process that something tagged "legal".
3. Each workflow would require a 3-step approval process. So when content is submitted for approval, first User A would approve it. Once User A had approved it, User B could. Then user C. Finally after all necessary approval, an admin (or some other role) could publish it.
4. Comments should be made for both approvals or declines.
5. Notifications should be sent to pertinent groups/roles on approval or decline.
I don't believe that SiteFinity supports a lot of this out of the box. So far my plan is basically this:
1. Create a lot of different roles to support the various workflows.
2. Modify the approval page to support comments in a method similar to what is found here: http://www.sitefinity.com/devnet/forums/sitefinity-3-x/developing-with-sitefinity/sitefinity-3-7-decline-email-with-comments.aspx. The difference is instead of just including the comments in the e-mail, I'd save them off to a new table in our database. The goal would be to display them on the page and be able to view comments made by other users. Notifications could also be handled here.
3. Further extend the approval page to include custom accept/decline buttons. Basically these would function outside of the actual workflow and update another new table in our database. I believe this could be a way to achieve a multi-step approval process. Basically User C in the example above would be the only user with actual Approve permissions. Users A and B could have view-only permissions but could use these 2 buttons to trigger notifications and simulate part of the desired workflow.
4. Modify the AllPagesList.ascx control to filter the list of pages a user sees by role/content tags, so that users only see pages that they should.
I do have a few questions:
1. Does everything I said above make sense and seem feasible / is there a better approach?
2. Can generic content be sent through workflows or only the pages that use the content?
2.1 If only pages can go through a workflow, how do we handle the case where a page is approved and published, then later the content is updated? Restrict users to only be able to edit generic content blocks through the Pages section and not in the Modules section? Or is this automatically handled?
I'm relatively new to SiteFinity, so any help/direction/code/etc. would be greatly appreciated. I'm also happy to try to clarify things if anything I've said thus far isn't clear.