pracro:post-commit-hook
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| pracro:post-commit-hook [2011/12/02 10:33] – deva | pracro:post-commit-hook [2011/12/02 13:35] (current) – deva | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ======Post-Commit-Hook design====== | ======Post-Commit-Hook design====== | ||
| A method for running a script on session data is needed on session-commit (possibly also discard?) in order to for example be able to post data to external databases when the data are commit to the pracro database. | A method for running a script on session data is needed on session-commit (possibly also discard?) in order to for example be able to post data to external databases when the data are commit to the pracro database. | ||
| + | The post-commit-hook scripts are to be executed //after// the commit has been performed successfully to the database. | ||
| + | |||
| The mechanism should be designed so that it is also able to handle journal commits to pcpraxis (currently handled in c++ via upload server) and thereby replacing part of the functionality in the existing ''< | The mechanism should be designed so that it is also able to handle journal commits to pcpraxis (currently handled in c++ via upload server) and thereby replacing part of the functionality in the existing ''< | ||
| <code xml> | <code xml> | ||
| Line 20: | Line 22: | ||
| All generated resume texts must equally be available in order for the script to be able to commit data to the pcpraxis journal. | All generated resume texts must equally be available in order for the script to be able to commit data to the pcpraxis journal. | ||
| The data can therefore be made available in a preloaded map hierarchy of macros/ | The data can therefore be made available in a preloaded map hierarchy of macros/ | ||
| - | < | + | < |
| value = vars[' | value = vars[' | ||
| </ | </ | ||
| All resume texts are stored with the ''' | All resume texts are stored with the ''' | ||
| An important feature of this list is that the native order of the macros are the same as in the template - **NOT** sorted alphabetically or similar!. | An important feature of this list is that the native order of the macros are the same as in the template - **NOT** sorted alphabetically or similar!. | ||
| - | + | ||
| + | It is considered to read out value fields using a function instead in order to prevent setting the values: | ||
| + | <code lua> | ||
| + | value = getValue(' | ||
| + | </ | ||
| + | This method will also require a function to retrieve the macro list as well as field list from a specific macro since the above function also prevents macro iteration: | ||
| + | <code lua> | ||
| + | macrolist = getMacroList() | ||
| + | fieldlist = getFieldList(' | ||
| + | </ | ||
| + | This solution is however fairly ugly. Setting the map from the first method to read-only (or const if you will) would much be prefered. | ||
| =====Script placement===== | =====Script placement===== | ||
| Line 50: | Line 62: | ||
| </ | </ | ||
| + | A similar solution is to be used in the individual macros (ie. oncommit/ | ||
| + | Each macros scripts are to be loaded in turn in a clean namespace containing only the values of the current macro (again to avoid naming conflicts) and executed in the same order in which they occur in the template. | ||
| + | |||
| + | The template scripts are to be executed //before// the macro scripts. | ||
| + | |||
| + | <code xml> | ||
| + | <?xml version=' | ||
| + | <macro name=" | ||
| + | < | ||
| + | < | ||
| + | function func1() | ||
| + | -- do something useful | ||
| + | end | ||
| + | |||
| + | function func2() | ||
| + | -- do something useful | ||
| + | end | ||
| + | </ | ||
| + | </ | ||
| + | . | ||
| + | . | ||
| + | . | ||
| + | </ | ||
| =====Resume scripts===== | =====Resume scripts===== | ||
| The resume scripts cannot directly be replaced by a single on-commit script since the resumes are used dynamically while the template is being edited (to show resumes in collapsed macros). | The resume scripts cannot directly be replaced by a single on-commit script since the resumes are used dynamically while the template is being edited (to show resumes in collapsed macros). | ||
pracro/post-commit-hook.1322818390.txt.gz · Last modified: by deva
