Extending Item’s Advance Read and Write Mechanism to Attributes
An Item Definition can have separate advance levels for reading and writing though the GUI currently assumes they are set to the same value. In addition an Item can choose to override it’s definition’s information allowing the same item in different attributes to have different GUI access.
A request has come in to extend this functionality to attributes and their definitions (similar to what was done with category assignment). Below is a propose approach.
How could this work
Lets assume we have the following:
Here we have 3 attribute Definitions (Def1 - Def3) each with 2 Item Definitions (6 total ID1-ID6).
Def2 is derived from Def1 and Def3 is derived from Def2. Some of these definitions have advance access information (advance read level, advance write level).
Lets also assume that the read access < write access (else it makes no sense)
Lets assume attribute A3 is of type Def3 - what are the advance levels assigned to A3 and its items?
Possible assignment based on above example.
Note ARL = Advance Read Level and AWL=Advance Write Level
Lets give the variables some values
Interpretation - using a file system analogy
- In order to even see any of the information in A3 you need advance level set to 3 (in this case you would see items (1, 2, 3, 5))
- In order to modify any items in A3 you need advance level set to 6 (in this case you would be able to modify items (1, 2, 3, 5 as well)
Note that this behavior holds if the user explicitly overrides the inherited values.
In this case you need levels 2 to read any of the attribute’s info (seeing items 1, 2, 3) and 3 to be able to modify items (1, 3)
The rule seems to be that an item’s advance level for reading = max(it’s reading level, reading level of its parent). The same relationship holds for the advance level for writing.
There were some discussion on whether you needed a do not inherit mechanism similar to category inheritance but based on the above I don’t think that makes sense.
Write access and AttributeViews
- If the current advance level is less than an attribute’s write level then you should not be able to delete the attribute from the view
- If the advance level is less than an attribute’s read level then that attribute would not be in the attribute list
Copying Attributes and Items
The default behavior should probably not copy the explicit advance read/write assigned directly to attributes and/or items