A developer at our company implemented a page expiry system that mails owners of out-of-date pages. Details below. I posted this in response to the discussion at ShowPageAgeVisually to see if there is interest in getting this posted at twiki.org. Note there is no code here, this is just a description of the way our implementation works.
Document Expiry
One of the major reasons for going with TWiki as the document system was the promise of expiry dates, documents getting flagged as out of date, people getting notified when their docs get out of date etc.
Usage
- New pages will have a two field form available: ExpiryDate and PageOwner:
| Name: |
Values: |
| ExpiryDate |
OneWeek, OneMonth, SixMonths, OneYear, DocUnderConstruction, DocHistorical, DocObsolete (default is 1 week) |
| PageOwner (email) |
USERNAME (if none entered, page creator is considered owner) |
Guidelines
- ExpiryDate:
- OneWeek is 7 days, the document is "active".
- OneMonth is 30 days, the document is "active".
- SixMonths is 182 days, the document is "active".
- One Year is 365 days, the document is "active".
- DocUnderConstruction: Only the author should be reading this; it really isn't ready for the public consumption. It will expire every 7 days.
- DocHistorical: There is no active updating of this document, but it contains information that is still correct, though may not be relevant. It expires every 10 years.
- DocObsolete: Kept for historical reasons, this page may very well contain obsolete, irrelevant or plain wrong information. There is no active updating of this document. It expires every 10 years.
- PageOwner:
- This needs to be a valid email address. Can be left blank, in which case last editor gets the mail.
What happens
- Each page with the document status has a small table at the bottom listing the current values.
- If the page expires, you will get red banner at the top of the page announcing this and pointing you to the bottom of the page to get more information. The information at the bottom of the page will let you see when the doc expired and who the owner and the last author/editor are.
- Archived, obsolete and otherwise "interesting expiry info" pages will have a small comment at the top right of the page announcing them as such.
- The owner (and in the absence of the owner the last author) will get the e-mail once the page expires and once in a week after that until the page is not out of date any more. At that point, that person (or anybody else could):
- Edit and save the page, thus extending the expiry date by the original or newly set expiry term.
- Change the document to be archived or obsolete, in which case the expiry date is ignored, but the document is identified as archived or obsolete.
- Assign somebody else to be the owner and thus get the e-mail instead.
- Optional behaviour (variables set in your WebPreferences page)
- If WARNEXPIRESOON is set to 1, pages close to expiring will be rendered as such. Not as nasty as the expired ones, but you should be able to see it.
- If INDEXSHOWEXPIRY is set to 1, the WebIndex page will have expiry information listed next to the pages that have expired, will soon expire, are archived, obsolete, never expiring, etc.
Under the hood
- Right now, the E-mail notification is done manually with an expire.pl script.
- The E-mail subject is "Automatic TWiki Expiry Notification".
--
MartinWatt - 07 Aug 2003
I'd be very interested in a system like this.
--
DavidBright - 07 Aug 2003
Yes. Note that it is a beginning of a kind of "Workflow". You may want for example to say:
- If this page has not changed status (from FeatureBrainstorming to either FeatureRequest or FeatureRejected) in a month, mail the CoreTeam and change status to FeatureRequestingApproval
etc... The goal is to be able to not code in fixed rules of "workflow", but have the rules
be definable in some TWiki topics somewhere implementing a policy, but... how?
You may want to have a look at the features of
the
Galaxia workflow engine of
TikiWiki to get an idea of the kind of features useful.
(direct links for convenience, PDF docs:
http://tikiwiki.sourceforge.net/Galaxia_introduction.pdf
http://tikiwiki.sourceforge.net/Galaxia_manual.pdf
)
PS: this is not a negative comment, just a suggestion to look on what features could be easily
implemented. The addon you describe seems
very useful, even without additionnal features.
Now, we need some form/tag/workflow system on Codev to signal to others (and the core team) that
an interesting subject has appeared
--
ColasNahaboo - 07 Aug 2003
I also would find this very useful for our TWiki implimentation. I'm always finding out of date documentation that has been forgotten about. If I can automatically bug someone to update their page all the better!
--
MattMillard - 08 Aug 2003
Ok, I'll see what I can pull together. One problem is that the implementation is somewhat tied in with the skin we use -
KoalaSkin - because it was hard to extend the default TWiki to customise the way pages are displayed. There are topics at twiki.org that discuss modularising TWiki to make it more extendable, and that will certainly help here too. But I think the main features should be fairly skin-independent. It's also only been tried on UNIX systems (Linux and IRIX) so I don't know how well it will work on Windows. But I'm sure some enterprising person here could fix it up if there are problems.
--
MartinWatt - 08 Aug 2003
Any chance you have looked at pulling this together or if anyone else has any ideas on page expiration notifications that would be great. We have a huge need for assigning updates to people. Thanks!
--
MattMillard - 26 Oct 2004
You probably want to mail him if you are in any hurry. As it can be days|weeks|months|(in this case)years|never before a poster comes back. If only the
InterestedParties field meant something.
--
MartinCleaver - 26 Oct 2004
I would
really like this, too. I sent Matt Millard a mail almost a month ago, but I have not heard from him. If anyone have any other suggestions for how to achieve this, please let me know.
--
PeterFjelsten - 05 Jan 2005
Did you mail
MartinWatt? He's the one who said he could put something together.
If the interested parties field worked we could mail everyone on the topic.
--
MartinCleaver - 05 Jan 2005
Sorry, my bad - I had misunderstood it. I will mail Martin and see if he is interested in putting something together. Would be very nice if he is...
I don't know how to work with this "interested parties" field - I am pretty new to
TWiKi.
--
PeterFjelsten - 06 Jan 2005
Ok, I finally got around to pulling what I have together for posting. A warning though - this will need considerable work to get going. Firstly it was written for the Dec2001 twiki which we are still using at present. Secondly it may make assumptions about ths skin being used (we use the Koala skin.) Finally, there were changes made to core scripts like render.pl and view.pl, which will undoubtedly have evolved since Dec 2001. So I'm offering this up in the hope that some brave and enterprising soul will be willing to step up and try to get it working with the latest version of twiki, and rework it to be a proper addon/plugin. I am certainly willing to help with this and answer any questions anyone may have.
I've attached a zip file. Brief description:
- bin/render.pl - modified to allow display of expiry information
- bin/view.pl - modified to allow display of expiry information
- data/Main/* - all the pages that define the different expirty categories, and some documentation
- lib/TWiki.pm - more hacking to core scripts to add support for page expiry
- bin/expire.pl - this is the script to run that parses the pages and sends out email to people whose pages have expired.
data/Main/AwDocumentExpiry is a good place to start in understanding what is in here.
Hope this is useful to someone, and sorry it took so long to get my act together and post it.
--
MartinWatt - 14 Jan 2005
Thanks a lot, Martin. What say ye o! conquerors of TWiki - is anyone game on getting this up to speed?
--
PeterFjelsten - 14 Jan 2005
It would be much easier to do this as a Plugin, I suspect. You might even extend, or derive from, the
ActionTrackerPlugin which does pretty much the same sort of thing. FOr example, if I write:
%ACTION{who="CharonTheBoatman" due="22 Jan 2006"}%
the plugin will notify
CharonTheBoatman on a schedule you decide. It's not much of a stretch to imagine a page expiry token such as
%ON_EXPIRY{due="22 Jan 06" notify="AsclepiusTheHealer,MightyZeus,PantheonGroup"}%
that could be processed by the same plugin and use the existing notification technology to notify on expiry.
Just a thought.
--
CrawfordCurrie - 14 Jan 2005
We were toying with this feature, and didnt know how to code it for
YetAnotherNotifySystem, but one user told us "I just want a list of the oldest pages, it will be sufficient for me to do cleanup". So we just made the opposite of
WebChanges and it appears that this low-tech solution was what user expected (we made something with expiry dates for another group but they end up not using it, they felt it was too complex).
See it in action:
http://wikix.ilog.fr/wiki/bin/view/Koala_Skin/WebUnchangeds
(The table formatting was requested by users - the
WebChanges format was confusing for them)
Sometimes simple solutions are best as they are simpler to understand by users.
--
ColasNahaboo - 16 Jan 2005
Could this functionality be folded into webchanges by adding a (reverse) sort on the date columm?
--
MartinCleaver - 16 Jan 2005
Crawford, the solution you have given seems quite good. I wasn't aware that it was possible to use the Action Tracker plug-in this way. What I hear you say is that it's already possible to notify/mail certain people on certain dates set on the page. This is good.
This would soft-of serve our purpose. The functionality is needed for us to make sure that certain documents/pages do not get out-dated. However, it would probably be nice if it was possible to set an "expiry time", i.e. that if a certain page has not been edited for n days or months, person a, b, c should get a mail.
This is not possible now, is it?
BTW. I had expected this Page Expiry to be a plug-in, not a part of a standard system.
Thanks for all your thoughts.
--
PeterFjelsten - 18 Jan 2005