I'm looking to solve a problem, and I'd like your feedback on the proposed solution:Situation:
Some CiviCRM installations have large numbers of users who all rely on existing reports to do their work. When those reports aren't just exactly right, users with "access Report Criteria" permission have the option to change the report criteria to modify sort order, filtering, and display columns, but that's only for a one-time use. If they want to save that configuration for later use, the have to get someone with the "administer Reports" permission to re-create the report just as they want it, and save it as a permanently available report.
The problem here is the bottleneck in new report creation. The more users a system has, and the more dynamic their business policies are, the more this bottleneck is felt.
A bad solution would be to give the "administer Reports" permission to everyone who wants it. This is bad because then you have lots of people modifying system-wide reports, so that reports are no longer predictable and reliable. If Bob changes a report's filter criteria in the morning, Alice will easily be confused by the report in the afternoon, because it doesn't contain what she expects.A better solution:
This is something I think will work for a client of ours who's currently feeling some pain from this problem. The basic idea is to give users some space to play with reports without polluting the site-wide report space. We create a new permission called "administer own Reports", and users with that permission can get a little freedom:
- Starting with an existing system-wide report, the user can modify the report criteria and then save this configuration as a new report. Let's call this a "user-private report" for now, and debate a better name later. A user-private report is only visible to the user who created it, and can be modified and saved, or copied again, by that user only.
- Any user with the "administer Reports" permission could then, at his or her discretion, promote any such user-private report to be a system-wide report, which would then behave exactly as any other system-wide report, meaning it would be visible to other users, can't be edited by the user who created it, etc.
I'm pretty sure this client will want to something like this soon, and will probably want to release it to the community, either as a Drupal module or a core patch (if core wants it).
Anybody think this is A) interesting, B) silly, or C) needs improvement in any way? Or of course, there's always D) All of the above.
Thanks for the feedback.