ผลต่างระหว่างรุ่นของ "Multi-component Page"
บรรทัดที่ 34: | บรรทัดที่ 34: | ||
* '''proceed_lock_seq''' | * '''proceed_lock_seq''' | ||
* '''searchers''' | * '''searchers''' | ||
==== Page Sequence and Master Object ==== | |||
=== Additional Document Context Keys === | === Additional Document Context Keys === |
รุ่นแก้ไขเมื่อ 10:42, 28 มิถุนายน 2567
While CuneiForms and CuneiTables on each of their own can create functional pages for several purposes, most accounting and transaction records require both to be displayed and manipulated in a meaningful manner. And while it is possible for such pages to be perfectly functional by stringing stad-alone forms and tables together, the numbers of requests and database accesses are unnecessarily high.
In the CuneiFox framework, inter-related forms and tables can be linked together via the use of Document Context. Below are the key functions of Document Context:
- Control page-level permissions and operations.
- Perform a document-lock/unlock upon entering entering/exiting the page's edit mode.
- Consolidate populating request for all forms and tables on the page.
- String together page edit sequence.
Define a Document Context
Document Context is a dict fed to the Flask render_template
function. Most of the keys in the dict are handled (with default values assigned, if not given) by a separate Python function prep_mainseq
. We shall begin with these so-called Main Sequence keys, then we will discuss a few additional keys.
Main Sequence Keys
- page_perm
- mainseq
- mainseq_name
- mainseq_add
- mainseq_del
- mainseq_modaldel
- mainseq_proceed
- mainseq_beacon
- mainseq_search
- mainseq_schprmpt
- mainseq_copy
- mainseq_attach
- mainseq_print
- mainseq_modalprint
- mainseq_qr
- mainseq_vouch
- mainseq_upload
- mainseq_export
- proceed_lock_seq
- searchers
Page Sequence and Master Object
Additional Document Context Keys
- btn_set (bool): Whether the page button sets should be rendered.
- doccount (bool): Whether the document counter elements should be rendered.
- docverify (dict): The specifications for the document verification blocks. Each key-value pair corresponds to a single block:
- The key is a string used for internal referencing.
- The value is a list ([str, str, str (optional)]):
- A short human-readable description of the verification. This value is the popover text when the mouse cursor hovers above the block.
- Pill text, a highly abbreviated shorthand string that appears on the block at all time.
- (Optional) The name of the function to run when the verification is not an all-out pass. Usually the function serves to highlight the elements where attention is needed.
# Example from Accounting Journal (w/ Input VAT) page
doc_context = {"btn_set": True,
"doccount": True,
"docverify": {"incomp": ["INCOMPLETE", "INCOMP", "blip_vouch_tab"],
"iwht": ["INPUT WITHHOLDING TAX", "IN-WHT", "blip_wht_tab"],
"owht": ["OUTPUT WITHHOLDING TAX", "WHT", "blip_wht_tab"],
"bvat": ["TAX INVOICE", "VAT", "blip_vat_tab"],
"editting": ["EDITTING", "EDIT"]},
**mainseq_args)
More render_template
Arguments
Arguments discussed under this final sub-section are not parts of the Document Context, and are to be fed directly to the render_template
function. However, they are commonly utilized in tandem with Document Context, so it seems fit to list them here as well.
- mass_populate
- pin_args
- back_route
- perm_to_show