-
Notifications
You must be signed in to change notification settings - Fork 0
Adding new building attribute fields
Mike Simpson edited this page Aug 28, 2024
·
1 revision
This document is a checklist for adding a new building attribute to the system. It's split into three sections - actions that apply when adding any field, and additional steps to add a field that will be visualised on the map. The second section would be required when adding a new category or when changing which field should be visualised for a category. The third section would apply to any data which can be amended via the API. When adding a new attribute a set of seed data should be identified, the base data set for many fields is Polly Hudsons PhD data set. This data set is required to;
- Test visualisation elements (map styling)
- Provide some data for users to relate to and encourage them to fill in the field
- Test the API and database elements.
- Add a column to the
buildings
table in the database. - Add any check constraints or foreign key constraints on the column, if necessary (if the foreign key constraint is used to restrict the column to a set of values, the table with the values might need to be created from scratch)
- If a source is being collected for field. Add a column
fieldName_source
to thesources
table. - If verification is being enabled. Add a column
bieldName_verifications
to theverfication
table.
- Add field name to
BUILDING_FIELD_WHITELIST
in the building service to allow saving changes to the field - Add any special domain logic for processing updates to the field in the
processBuildingUpdate()
function
- Add the field description to the
dataFields
object indata_fields.ts
- Add the data entry React component of the appropriate type (text, numeric etc) to the appropriate category view component in the
building/data-containers
folder. Link todataFields
for static string values (field name, description etc)
- Add the field to the select list in the COPY query in
maintenance/extract_data/export_attributes.sql
- Add a description of the field to the
README.txt
file
All steps from the previous section need to be carried out first.
- Add a SQL query for calculating the value to be visualised to
BUILDING_LAYER_DEFINITIONS
inapp/src/tiles/dataDefinition.ts
- Add Mapnik rendering style in
app/map_styles/polygon.xml
- Update the category to field name mapping in the
tilesetByCat
object inside theColouringMap
React component (map.tsx
file) - Add an entry for the field to the
LEGEND_CONFIG
object inlegend.tsx
file
Run tests on staging to confirm;
- Database changes accepted
- API is working and data is getting posted to the database
- Map styling is applied and style is appropriate way to visualise the data