We will be re-working the history functionality:
We tracked down multiple requests for this feature:
- Feature - Make item history available in item reports
- Feature - improve history and restores
- Feature - review process of risks, policies and assets - #2 by kisero
- Feature - Emptying Trash
Also some Github stuff:
- https://github.com/eramba/eramba/issues/4186
- https://github.com/eramba/eramba/issues/4173
- https://github.com/eramba/eramba/issues/3457
- https://github.com/eramba/eramba/issues/3431
- https://github.com/eramba/eramba/issues/3246
- https://github.com/eramba/eramba/issues/3189
- https://github.com/eramba/eramba/issues/3100
- https://github.com/eramba/eramba/issues/3100
- https://github.com/eramba/eramba/issues/3045
- https://github.com/eramba/eramba/issues/2864
- https://github.com/eramba/eramba/issues/2452
General
We will need to build a new history functionality. We want to call this Activity Log because we want to log all activities on ant item:
- changes on the fields of the item
- changes on the stats of the item
- notifications triggered by the item
I’m thinking this feature will be called “Activity Log” and will become a new sub-tab on all modules OR one more “Common Feature”, most likely from a UI perspective, i think is better if we think of this as a common feature (right next to trash).
We will keep the item “History” button, but that will just redirect you to the activity log with a filter that shows log entries for that item.
Special Attention
- changes on custom fields must be logged
- changes on risk score must be logged
- changes on risk classifications must be logged
- changes on “Content” policy must be logged and easily displayed
Leverage Existing Features
When you load this new common feature we need the standard features for any module, in particular:
- Filters: search anything across changes on any item
- Reports: build reports about changes done in the module
- Dynamic Status: label changes you want to know about
- Notifications: send emails when certain conditions happen
Current History Button
The “History” item functionality we have today will be a modal (or just load the index) as today that will load the tab Activity Log module data (filter) with a parameter to this single item.
Default Columns (Index)
The filter will show the following columns (I MIGHT BE MISSING THINGS!)
- General: Who (is a users or groups)
- General: When (is a date picker with (-10, etc) too)
- General: Activity Type (drop down with the following options Add, Edit, Delete, Restore, Status Change, Comment, Attachment, Notification)
- Item ID: we need to know the id we are tracking, we do not have always a name for the item so we need the id here
- Parent ID: we are sometimes tracking reviews or child items, then we also need this. Because when you load the reviews changes you will need to know what changes happened on the parent id.
- Old Field Value:
- New Field Value: Name (this will list all fields and you can search changes for a specific field)
- Dynamic Status: Name (you can search against a dynamic status)
- Notification: Type (you can select by notification type)
- Notification: Recipient (search by who sent this)
ref: https://docs.google.com/spreadsheets/d/1eJGyTzPHdCJ5K7KycptWnjDDdOUo1nbkvGX4uw2udDE/edit#gid=0
Retention
We need to keep an eye on the number of records this creates, for that we need a new system setting where for every module we define:
- Retention (100 rows) or time (last 50 days, no retention, Etc)
by default, i would disable logging in multiple modules.
Parent/Child Relationship
A policy has one or more reviews, both type of items need an activity log. The review needs to be able to tell what changes its parent went through at any time. This is a key new functionality.