This is a web-based interface to the relational registry. ... TODO: developer docs ... Adding new constraint types --------------------------- To add a constraint, (1) in main.html, add templates for the any new operator or operand you may require. See operator-contains and operand-waveband as examples (2) in static/wirr.js, add a _CONSTRAINTDEF. The key you use there is the constraint name, the values are the templates for the operand and the operator(s), respectively. (3) in bin/dbadapter.py, add a _CONSTRAINTDEF with the constraint name as key. The value is a function makeConstraint(constraint, sqlPars, addTables) -> sql-fragment. There is some documentation on what all that means. In particular, there are some factory functions that may save you the work of defining a function of your own. (4) back in main.html, locate the constraint-selector element (and ul/li hierarchy). Find an appropriate place for your new constraint and put its name in there. The human-readable label will be taken from the _CONSTRAINTDEF in wirr.js. Adding a capability type ------------------------ (1) in res/main.html, locate operand-capabilities, and add an option giving the stanard id (pattern) of the new standard. (2) in static/wirr.js, amend the STDID_TO_CAP_INFO dicts with a map from the standard id to a suitable array (see comment). (3) if there's a SAMP message for that result type, amennd _MTYPES_FOR_CAPABILITIES in wirr.js, and provide a corresponding button.