YAML definitions of the Digital Marketplace’s procurement frameworks.
- Multiquestion: A multi-question is a question which contains a questions key, which lets us reuse the same summary tables markup so that each row represents a group of related questions (rather than just being limited to one question).
questionname of the question, displayed in forms and summary tables (required)question_advicea note about the question asked, usually giving some more information about what it means and why it is being askedtypetype of the question input, used to find the related toolkit form template (required)nameshort question name to use in summary tables instead of the full question. Also used to generate the URL slug for addressable questionsempty_messagea message to display instead of "Answer required" if question wasn't answeredhinthint text to display after the question, eg advice about how to best format you answeroptionalif set totruemakes the question optionaloptionsa list of possible values for the types that support them. Each option consists of:labeltext displayed on the option label (required)valuevalue submitted to the server when the option is selectedfilter_label[currently unused] text displayed in the buyer frontend filters list instead of labeldescriptionadditional text displayed after the option label (used forlotquestion)
validationsa list of validation errors related to the field. Each validation consists of:namethe error message key that should match the validation error returned by the API (required)messagetext of the message that will be displayed by the frontend app (required)
dependsdescribes the service conditions that must be met for question to be displayed. Right now, only used to list the lots the question applies to. Each depend rule consists of:"on"service data key name to use for comparison (e.g. "lot" for lots)beinga list of acceptable values for the key. If service data key value matches one of the values in thebeingthe question is kept, otherwise the question is removed from the section for the given service
limitsa dictionary of validation/type requirements to limit the possible question values. Available fields:min_valueinteger, sets the minimum value for number questions (default 0)max_valueinteger, sets the maximum value for number questions (default 100)integer_onlyboolean, whentruemakes the number question accept only integer values instead of numbersformatsets JSON schema 'format' property for text questions (egemail,uri)
number_of_itemssets the maximum number of items for list questions (and changes "Add another (N remaining)" list button, defaults to 10)list_item_name[currently unused] text displayed in the "Add another ..." button and item names by the list-entry inputsassuranceApproachcontains the name of the set of possible assurance answers for the question. Assurance answer sets are listed in the supplier frontend.questionsa list of nested questions (only valid formultiquestionquestions)any_ofgroups nested questions for "anyOf" validations and helps us return a helpful validation message (only valid formultiquestionquestions)fieldsa mapping of toolkit form field key to the service data key used for multi-input field types (only valid forpricing)max_length_in_wordssets the limit on question value length in wordssmallerallows for smaller textboxesunita one-character string. The unit for smaller textboxes accepting a unit (ie, pricing or number entry textboxes)unit_in_fullunit name as a stringunit_positionposition of theunitcharacter within the textbox.- Permitted values are
afterorbefore
- Permitted values are
Manifest is a list of sections. Each section contains:
namename of the section (required)editablecontrols whether section allows updates for the questions, boolean valueedit_questionscontrols whether individual questions can be edited separately (only supported bymultiquestionquestions)descriptiontext to display after the section namesummary_page_descriptiontext to display between the summary table heading and the table bodystepdecides how sections are grouped on (brief) overview pagesquestionsa list of section questions (required)
The tests check that the YAML files are valid and that they match a schema.
Setup a VirtualEnv
make virtualenv
Install dependencies
make requirements_for_test
Run the tests
make test
Releases of this project follow semantic versioning, ie
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards-compatible manner, and
- PATCH version when you make backwards-compatible bug fixes.
To make a new version:
- update
VERSION.txtwith the new version number - commit this change; the first line of the commit message must be in the
format
Bump version to X.X.X - create a pull request for the version bump
When the pull request is merged a Jenkins job will be run to tag the new version.