Workflow / Approval Process in Dashboard

Permalink 3 users found helpful
As not to completely hijack another thread I figured I'd start this thread about potentially adding a robust workflow / page approval process / message center to the dashboard.

Add your ideas and suggestions and we'll see what we can pull together.

Original Post
<Warning: Wall of Text follows>

I have 42+ content contributors. I was thinking of an easy way for all of us to track:
- Pages pending approval (with one-click admin approval)
- Latest site activity (with page version comments + timestamp)
- Internal dashboard messages (like notices of new functionality / new block options / planned downtime etc.)

Some of that I could do by just inserting a block area on the dashboard page and then whipping up some blocks.

Internal dashboard messages could be a simple content-like block with maybe a message priority level attribute.

Latest site activity would be pretty easy to pull from the DB - showing the pages last updated, who updated them, when, and the version comments. I haven't dived in to the page publishing system - but it's conceivable that such a block could also have the pages pending approval shown as well (although they would need top billing and not hidden in a list)

WORKFLOW
But the main thing that I see is missing is an approval and workflow system. At the moment I've just handed out publishing rights like candy because it is too much trouble to put an approval process in place.

Having a way of not only approving a page, but providing feedback on approval rejection would be extremely beneficial. Then when the person that owns the page logs back in, they have a message about why their page didn't get approved and what they need to fix. Having that information tied to the page version would be even more awesome... although now I'm way out into left field.

Now for Project Management Ideas...
I'm thinking for web development... but here goes. Have the ability to create a project and assign tasks to site members would be nice. Then when those users log in they have access to the project list and see the tasks that they are assigned.

So an example is the creation of an "accounting" section of the website. I create a project, create an editable list of tasks and then assign responsibilities (or have others do that). So Jane is responsible for writing web content for page x, y, and z; Bill is responsible for choosing images for those pages; while Sue has to approve and publish the section.

Super-duper wishlist:
*Project creation / modification / deletion / archive functionality.
*Task creation / assignment / deletion / "finished" / etc functionality.
Drag-n-drop task order.
*Task commenting.
*Task due dates / milestones / project gnatt charts
*Project Team assignment (who has access to the project)
*Project task RSS + project/task comment RSS.
*Project resource file set(s), list of project related files shown on project page.

</end wall of text>

glockops
 
Fernandos replied on at Permalink Reply
Fernandos
ijesssup has written something similar to this. It shows Pending pages.
glockops replied on at Permalink Reply
glockops
Have a link? Can't find it with the search.
glockops replied on at Permalink Reply 2 Attachments
glockops
See file attachments.

Concept art for a message center. Allowing site admins to communicate with other users that have dashboard privileges.

Concept art for change tracker. Allowing users with dashboard access to see the latest edits/updates to the website.
Fernandos replied on at Permalink Reply
Fernandos
that's not hard to do, although it some work the good thing is that the database has all those fields that are needed to show these things. Except some that can be added by a blockTable.
dihakz replied on at Permalink Reply
dihakz
Nice ideas... really looking forward to seeing what is produced out of this! Anything I may be able to contribute?
katz515 replied on at Permalink Reply
katz515
Although, it's all in Japanese....

Yamanoi
http://www.concrete5.org/profile/-/4812/...
just made the simple package that will display the list of Unapproved pages, and the pages that are in edit mode.

http://www.yamanoi.org/concrete5/download/sitemap/...
synlag replied on at Permalink Reply
synlag
You can easily search for unapproved pages in the dashboards sitemap search.

just add the attribute 'unapproved' and it will display the pages.
Mnkras replied on at Permalink Best Answer Reply 1 Attachment
Mnkras
Heres the block translated :)
jizzle replied on at Permalink Reply
jizzle
This is a very nice addition. Definitely helps me out a bunch.
duststorm replied on at Permalink Reply
duststorm
Thanks katz515 and Mnkras for the wonderful addition.
Now that change tracker idea by glockops really looks like a good idea, even to be included in concrete5 core :) Is there any implementation of this yet? Else I might have a go at this if I have some time.
glockops replied on at Permalink Reply
glockops
Thank you katz515 and Mnkras! This will definitely help me out!
msglueck replied on at Permalink Reply 1 Attachment
msglueck
removed a typo, added links to allow approving from the "Unapproved pages" tab.

Additionally if you remove these lines from /concrete/tools/check_in.php

<?php  if  ($cp->canApproveCollection()) { ?>
                       <a href="javascript:void(0)" id="ccm-check-in-publish" class="ccm-button-right accept"><span><?php echo t('Publish My Edits')?></span></a>
<?php  } ?>


and change the 'Preview My Edits'-Button to 'Save My Edits'.

Then you have to restrict the access to the "Unapproved Pages"-tab via advanced permissions and sitemap system pages , remove the "Approve" popup from concrete/tools/page_controls_menu_js.php.

And you have a basic approval process... ;)
Inforloja2012 replied on at Permalink Reply
Inforloja2012
Just to fix the link from this approach.

If you site is not on the root of website.

In the file "single_pages\dashboard\sitemap\non_approve.php"

Change
echo "    <a href='/index.php?cID=" . $f[3] . "&ctask=approve-recent" . $token . "' target='_blank'>" . t('Approve') . "</a></li>";


with this

echo "    <a href='" . DIR_REL . "/index.php?cID=" . $f[3] . "&ctask=approve-recent" . $token . "' target='_blank'>" . t('Approve') . "</a></li>";
ministrycrm replied on at Permalink Reply
ministrycrm
Will this work in 5.5?
foster replied on at Permalink Reply 1 Attachment
foster
I am running 5.5.2 on a test site and the package installed successfully on it.
I'm attaching a screenshot - looks like it adds 2 new items under the Sitemap heading: Edited Pages and Unapproved Pages

Maybe I'm missing something, but how do I set up a user with editing rights, but not approval rights?