Quote:
	
	
		| 
					Originally Posted by BetterRed  I have a vague memory of someone writing a plugin that recorded the date & time a book was last viewed in a custom column, I think it's in the Library Management sub-forum.  The author wasn't inclined to make it official because of the maintenance burden. | 
	
 It's actually an option in Job Spy. However, I found it a bit annoying that it activated for 
every view action (clicking on a format in the details or Edit Metadata), so:
	Quote:
	
	
		| However, perhaps the same thing could be done with the Action Chains plugin, see ==>> Index of plugins 
 BR
 | 
	
 I actually have it in Action Chains, bound to the V key and on a conditional for one book to prevent mass-opening accidents:
	Code:
	{
  "ActionsChainMenus": {
    "Menus": [
      {
        "active": true,
        "chain_settings": {
          "chain_links": [
            {
              "action_name": "Calibre Actions",
              "action_settings": {
                "disable_busy_cursor": false,
                "selection": [
                  {
                    "display": "View",
                    "path": [
                      "View",
                      "View"
                    ],
                    "paths_text": "View"
                  }
                ],
                "wait_jobs": false,
                "wait_progress": false
              },
              "comment": "Open book",
              "condition_settings": {
                "affect_validation": false,
                "cmp_type": "!=",
                "datatype": "text",
                "icon": "",
                "template": "{formats}",
                "tooltip": "",
                "value": "PAPERBOOK"
              }
            },
            {
              "action_name": "Single Field Edit",
              "action_settings": {
                "col_name": "#read",
                "template": "program:\n\n\tif and(check_yes_no('#read', '', '', 1),) then \t'No'\n\telse $#read\n\tfi",
                "value_type": "template"
              },
              "comment": "Set #read column (TEMPLATE)"
            },
            {
              "action_name": "Single Field Edit",
              "action_settings": {
                "col_name": "#percentread",
                "template": "program:\n\tif raw_field('#percentread', '1') ==# '0' then '1'\n\telse raw_field('#percentread')\n\tfi",
                "value_type": "template"
              },
              "comment": "Set #percentread to 1 (TEMPLATE)"
            },
            {
              "action_name": "Single Field Edit",
              "action_settings": {
                "col_name": "#lastread",
                "value": [
                  {
                    "__class__": "datetime.datetime",
                    "__value__": "2021-03-30T00:13:43.637933+00:00"
                  },
                  true
                ],
                "value_type": "predefined"
              },
              "comment": "Set #lastread to current time"
            },
            {
              "action_name": "Refresh View",
              "action_settings": {},
              "comment": "Refresh view"
            }
          ],
          "refresh_gui": true
        },
        "condition_settings": {
          "affect_menu": false,
          "cmp_type": "=",
          "datatype": "number",
          "icon": "",
          "template": "program: selection_count()",
          "tooltip": "",
          "value": 1.0
        },
        "image": "",
        "menuText": "View",
        "subMenu": "Invisible"
      }
    ]
  },
  "schemaVersion": 1.5
}