workflowsitefinitysitefinity-3x

Custom Workflow in SiteFinity 3.7


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?
  3. 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.


Solution

  • To answer question 2 and 3, yes generic content can go through workflows. Have you taken a look at this thread?

    http://www.sitefinity.com/blogs/ivandimitrov/ivanposts/09-12-25/christmas_bonus_-_workflow_with_comments_in_sitefinity_3_x.aspx

    To answer question 1... euhm it makes sense and sounds feasible but I noticed you wanted to link everything through 'tags'. Sitefinity v3.x doesn't support global taxonomy so if you're really set on that, you need to take a look at v4.

    A 2-3 step workflow falls under 'standard' workflow, so you'd be looking at the standard edition v4 at minimum.

    Perhaps extending generic content with a custom (dropdown) field would be a better approach if you want to stick to v3.7 instead of using tags.

    The step 4, modifying the allpageslist.ascx seems like a no go with tags, given it's non global limitation. But since it's Sitefinity and it adherense to .NET, you could program your way around that aswell and link that back to the generic content.

    But essentially you'd be building an entire new custom 'global' taxonomy system to accomplish all that....

    If you want the smart guys to answer, I suggest asking directly on the Sitefinity forums, the Telerik support staff is actively following those and I've personally never had them hang up on the phone yet either :)