diff doc/design.txt @ 8416:370689471a08 issue2550923_computed_property

merge from default branch accumulated changes since Nov 2023
author John Rouillard <rouilj@ieee.org>
date Sun, 17 Aug 2025 16:12:25 -0400
parents 7b6615fb37fc
children
line wrap: on
line diff
--- a/doc/design.txt	Sun Nov 05 11:38:18 2023 -0500
+++ b/doc/design.txt	Sun Aug 17 16:12:25 2025 -0400
@@ -8,7 +8,9 @@
 Roundup - An Issue-Tracking System for Knowledge Workers
 ========================================================
 
-:Authors: Ka-Ping Yee (original), Richard Jones (implementation)
+:Authors: Ka-Ping Yee (original_), Richard Jones (implementation)
+
+.. _original: spec.html
 
 Contents
 
@@ -1522,6 +1524,7 @@
             - klass (optional)
             - properties (optional)
             - check function (optional)
+            - filter function (optional)
 
             The klass may be unset, indicating that this permission is
             not locked to a particular hyperdb class. There may be
@@ -1534,6 +1537,16 @@
             If check function is set, permission is granted only when
             the function returns value interpreted as boolean true.
             The function is called with arguments db, userid, itemid.
+
+            A filter function complements a check function: It is used
+            when searching for viewable items. The filter function
+            allows to filter in SQL rather than calling the check
+            function for each item after a query. It must return a list
+            of dictionaries containing parameters for the hyperdb.Class.filter
+            method. An empty list indicates no access. The signature of
+            the filter function is::
+
+                def filter(db, userid, klass):
         '''
 
     class Role:

Roundup Issue Tracker: http://roundup-tracker.org/