diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9e24a9f4e..27f98892a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -80,11 +80,11 @@ jobs: - name: Run javascript unit tests run: node_modules/karma/bin/karma start karma.conf.js --single-run --browsers ChromeHeadless - - name: Run MERIT functional tests - run: ./src/main/scripts/runFunctionalTests.sh - env: - GPR_USER: ${{env.GITHUB_ACTOR}} - GPR_TOKEN: ${{secrets.GITHUB_TOKEN}} +# - name: Run MERIT functional tests +# run: ./src/main/scripts/runFunctionalTests.sh +# env: +# GPR_USER: ${{env.GITHUB_ACTOR}} +# GPR_TOKEN: ${{secrets.GITHUB_TOKEN}} - name: Clean to remove clover instrumentation uses: gradle/gradle-build-action@v2.4.2 diff --git a/forms/nht/grantsAndOthersFinalReport.json b/forms/nht/grantsAndOthersFinalReport.json new file mode 100644 index 000000000..3b51f033e --- /dev/null +++ b/forms/nht/grantsAndOthersFinalReport.json @@ -0,0 +1,586 @@ +{ + "name": "Grants and Others Final Report", + "type": "Report", + "sections": [ + { + "name": "Grants and Others Final Report", + "optionalQuestionText": null, + "optional": false, + "collapsedByDefault": false, + "templateName": "grants_and_others_final_report", + "template": { + "modelName": "Grants and Others Final Report", + "dataModel": [ + { + "dataType": "list", + "name": "projectOutcomes", + "allowRowDelete": true, + "columns": [ + { + "dataType": "text", + "name": "code" + }, + { + "dataType": "text", + "name": "outcomeStatement", + "validate": "required" + }, + { + "dataType": "text", + "name": "achievement", + "validate": "required,maxSize[500]" + }, + { + "dataType": "text", + "name": "basedRating", + "constraints": [ + "Achieved (100%)", + "Significantly achieved (76-99%)", + "Satisfactorily achieved (51-75%)", + "Partially achieved (26-50%)", + "Inadequately achieved (1-25%)", + "Not achieved (0%)", + "Unable to rate" + ], + "validate": "required" + } + ] + }, + { + "dataType": "text", + "name": "achievedOutcomesSummary", + "validate": "required,maxSize[500]" + }, + { + "dataType": "text", + "name": "howOutcomesMaintain", + "validate": "maxSize[400]" + }, + { + "dataType": "stringList", + "name": "achievementLevel", + "validate": "required", + "description": "A measure of the extent to which a program, project or initiative has attained, or is expected to attain, its relevant objectives efficiently and in a sustainable way.", + "constraints": [ + "Achieved (100%)", + "Significantly achieved (76-99%)", + "Satisfactorily achieved (51-75%)", + "Partially achieved (26-50%)", + "Inadequately achieved (1-25%)", + "Not achieved (0%)", + "Unable to rate" + ] + }, + { + "dataType": "stringList", + "name": "isTargetAchieved", + "constraints": [ + "Yes", + "No" + ] + }, + { + "columns": [ + { + "dataType": "text", + "name": "serviceName" + }, + { + "dataType": "text", + "name": "targetMeasure", + "description": "The output target measure to be adjusted." + }, + { + "dataType": "text", + "name": "scoreId", + "description": "Identifier for the target measure" + }, + { + "dataType": "text", + "name": "projectTarget" + }, + { + "dataType": "text", + "name": "delivered" + }, + { + "dataType": "text", + "name": "actualTotalDeliveredIfDifferent", + "behaviour": [ + { + "condition": "delivered > projectTarget", + "type": "enable_and_clear" + } + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "reasonTargetNotMet", + "behaviour": [ + { + "condition": "delivered < projectTarget", + "type": "enable_and_clear" + } + ], + "validate": "required,maxSize[500]" + } + ], + "dataType": "list", + "allowRowDelete": true, + "name": "projectTargets" + }, + { + "dataType": "stringList", + "name": "projectEngagement", + "validate": "required", + "constraints": [ + "Yes", + "No", + "Not applicable" + ] + }, + { + "dataType": "text", + "name": "yesProjectEngagement", + "validate": "required,maxSize[300]", + "behaviour": [ + { + "condition": "projectEngagement == \"Yes\"", + "type": "enable" + } + ] + }, + { + "dataType": "stringList", + "name": "unexpectedChanges", + "validate": "required", + "constraints": [ + "Yes", + "No", + "Not applicable" + ] + }, + { + "dataType": "text", + "name": "yesUnexpectedChanges", + "validate": "required,maxSize[300]", + "behaviour": [ + { + "condition": "unexpectedChanges == \"Yes\"", + "type": "enable" + } + ] + }, + { + "dataType": "stringList", + "name": "outcomesMaintenance", + "validate": "required", + "constraints": [ + "Significantly", + "Satisfactorily", + "Partially", + "Not at all", + "Not applicable" + ] + }, + { + "columns": [ + { + "dataType": "stringList", + "name": "summaryName", + "validate": "required", + "constraints": [ + "Monitoring", + "Evaluation", + "Activity changes", + "Risk management", + "Lesson/s learnt" + ] + }, + { + "dataType": "text", + "name": "summaryProgress", + "description": "", + "validate": "required,maxSize[1250]" + } + ], + "dataType": "list", + "allowRowDelete": true, + "name": "projectLearningsSummary" + }, + { + "dataType": "text", + "name": "documentAdditionalInformation", + "validate": "required,maxSize[1250]" + } + ], + "viewModel": [ + { + "items": [ + { + "source": "achievementLevel", + "preLabel": "1. To what extent did you achieve your project outcomes and project services?
Please select the one of the levels of achievement you have reached e.g. Achieved (100%), Partially achieved (26-50%)", + "type": "selectOne" + } + ], + "type": "row" + }, + { + "items": [ + { + "source": "

2. Project Outputs

", + "type": "literal" + } + ], + "type": "row" + }, + { + "items": [ + { + "source": "isTargetAchieved", + "preLabel": "2.1 Did you achieve the target for each activity listed in the MERI Plan?", + "type": "selectOne" + } + ], + "type": "row" + }, + { + "disableTableUpload": true, + "columns": [ + { + "source": "", + "type": "literal", + "width": "5%", + "preLabel": { + "computed": "\\'No. \\' || (index + 1)" + }, + "title": "Activity No." + }, + { + "readonly": true, + "width": "20%", + "source": "serviceName", + "type": "textarea", + "rows": 3, + "title": "Activity" + }, + { + "readonly": true, + "width": "20%", + "source": "targetMeasure", + "type": "textarea", + "rows": 3, + "title": "Target measure" + }, + { + "readonly": true, + "width": "15%", + "source": "projectTarget", + "type": "text", + "title": "Total to be delivered" + }, + { + "readonly": true, + "width": "15%", + "source": "delivered", + "type": "text", + "title": "Total delivered", + "helpText": "please refer to the Dashboard for your project for this figure. The dashboard automatically adds the figures from each of your progress reports (as a cumulative figure)." + }, + { + "width": "25%", + "source": "reasonTargetNotMet", + "type": "textarea", + "rows": 3, + "title": "Explain why the target measure was not fully delivered or over delivered. (500 characters [approx. 100 words] limit)" + } + ], + "userAddedRows": false, + "source": "projectTargets", + "title": "2.2 Report on and explain any activities that have been under or significantly over delivered (50% above target)", + "type": "table" + }, + { + "items": [ + { + "source": "

3. Project Outcomes

", + "type": "literal" + } + ], + "type": "row" + }, + { + "items": [ + { + "source": "3.1 Briefly describe the achievements that have been made against each outcome statement in the MERI Plan including details of any enablers and/or barriers throughout the life of the project.

Please provide supporting information (e.g. report, photos), where this has not been previously supplied, as attachments to this report via the Admin tab > Documents sub-tab of MERIT. Where supporting evidence contains sensitive or confidential information, please send to the department Project Manager (DCCEW) by email.", + "type": "literal" + } + ], + "type": "row" + }, + { + "source": "projectOutcomes", + "type": "table", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "source": "code", + "type": "readonlyText", + "title": "Outcome No." + }, + { + "type": "textarea", + "readonly": true, + "source": "outcomeStatement", + "title": "Outcome", + "rows": 5, + "width": "35%" + }, + { + "type": "textarea", + "source": "achievement", + "title": "Achievement/s", + "rows": 5, + "width": "35%" + }, + { + "width": "25%", + "source": "basedRating", + "title": "Rating based on the effectiveness evaluation criteria", + "type": "select2" + } + ] + }, + { + "items": [ + { + "source": "projectEngagement", + "preLabel": "3.2 Did your project engage with traditional owners, landholders and local community?", + "type": "selectOne" + } + ], + "type": "row" + }, + { + "type": "row", + "items": [ + { + "source": "yesProjectEngagement", + "type": "textarea", + "rows": 5, + "preLabel": "3.2.1 If yes, which group/s and how?" + } + ] + }, + { + "items": [ + { + "source": "unexpectedChanges", + "preLabel": "3.3 Were there any unexpected or unintended (positive or negative) changes or other outcomes delivered by this project?", + "type": "selectOne" + } + ], + "type": "row" + }, + { + "type": "row", + "items": [ + { + "source": "yesUnexpectedChanges", + "type": "textarea", + "rows": 5, + "preLabel": "3.3.1 If yes, what were they?" + } + ] + }, + { + "items": [ + { + "source": "outcomesMaintenance", + "preLabel": "3.4 To what extent will the outcomes achieved by this project be maintained after the project has been completed?", + "type": "selectOne" + } + ], + "type": "row" + }, + { + "type": "row", + "items": [ + { + "source": "howOutcomesMaintain", + "type": "textarea", + "rows": 5, + "preLabel": "3.5 If they will be maintained, how and who will do this?" + } + ] + }, + { + "items": [ + { + "source": "

4. Monitoring, Evaluation and Project Learnings

", + "type": "literal" + } + ], + "type": "row" + }, + { + "items": [ + { + "source": "4.1 Summarise how the project progressed in the areas of Monitoring, Evaluation, Activity changes, Risk management and lessons learnt in project delivery towards the investment priority.", + "type": "literal" + } + ], + "type": "row" + }, + { + "disableTableUpload": true, + "columns": [ + { + "width": "25%", + "source": "summaryName", + "type": "selectOne", + "title": "Name" + }, + { + "width": "75%", + "source": "summaryProgress", + "type": "text", + "title": "Summarised progress", + "helpText": "" + } + ], + "userAddedRows": true, + "source": "projectLearningsSummary", + "title": "Monitoring/Evaluation/Activity changes/Risk management/Lesson/s learnt", + "type": "table" + }, + { + "type": "row", + "items": [ + { + "source": "documentAdditionalInformation", + "type": "textarea", + "rows": 5, + "preLabel": "5. Please document any additional information relating to the project." + } + ] + } + ], + "pre-populate": [ + { + "source": { + "context-path": "owner" + }, + "merge": { + "projectOutcomes": { + "deleteUnmatchedExistingRows": true, + "addUnmatchedNewRows": true, + "keys": [ + "outcomeStatement" + ] + } + }, + "mapping": [ + { + "target": "projectOutcomes", + "mapping": [ + { + "target": "code", + "source-path": "code" + }, + { + "target": "outcomeStatement", + "source-path": "description" + } + ], + "source-path": "custom.details.outcomes.shortTermOutcomes" + } + ] + }, + { + "mapping": [ + { + "mapping": [ + { + "source-path": "service", + "target": "serviceName" + }, + { + "source-path": "targetMeasure", + "target": "targetMeasure" + }, + { + "source-path": "scoreId", + "target": "scoreId" + }, + { + "source-path": "projectTarget", + "target": "projectTarget" + }, + { + "source-path": "result", + "target": "delivered" + } + ], + "source-path": "targets", + "target": "projectTargets" + } + ], + "merge": { + "projectTargets": { + "keys": [ + "serviceName", + "targetMeasure" + ], + "projectTarget": { + "replaceExisting": true + }, + "delivered": { + "replaceExisting": true + }, + "sort": [ + "service", + "outputTargetMeasure" + ], + "addUnmatchedNewRows": true, + "deleteUnmatchedExistingRows": true + } + }, + "source": { + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + }, + { + "name": "missedTargetsOnly", + "value": false + }, + { + "name": "onlyNonZeroTargets", + "value": true + }, + { + "name": "approvedDataOnly", + "value": false + } + ], + "url": "/project/projectTargetsAndScores/" + } + } + ], + "title": "Project Final Report" + } + } + ], + "formVersion": 1, + "category": null, + "status": "active", + "gmsId": null, + "supportsSites": false, + "supportsPhotoPoints": false, + "minOptionalSectionsCompleted": 1 +} \ No newline at end of file diff --git a/forms/nht/grantsAndOthersProgressReport.json b/forms/nht/grantsAndOthersProgressReport.json index 26d0971e4..2bf3e8968 100644 --- a/forms/nht/grantsAndOthersProgressReport.json +++ b/forms/nht/grantsAndOthersProgressReport.json @@ -27,7 +27,7 @@ "deleteUnmatchedExistingRows": true, "addUnmatchedNewRows": true, "keys": [ - "outcomeStatement" + "code" ] } }, @@ -35,6 +35,10 @@ { "target": "projectOutcomes", "mapping": [ + { + "target": "code", + "source-path": "code" + }, { "target": "outcomeStatement", "source-path": "description" @@ -64,11 +68,16 @@ { "dataType": "list", "name": "projectOutcomes", + "allowRowDelete": "false", "columns": [ + { + "dataType": "text", + "name": "code" + }, { "dataType": "text", "name": "outcomeStatement", - "validate": "required,maxSize[500]" + "validate": "required" }, { "dataType": "text", @@ -288,21 +297,19 @@ { "source": "projectOutcomes", "type": "table", - "userAddedRows": true, + "userAddedRows": false, + "disableTableUpload": true, "columns": [ { - "source": "", - "type": "literal", - "width": "5%", - "preLabel": { - "computed": "\\'No. \\' || (index + 1)" - }, + "source": "code", + "type": "readonlyText", "title": "Outcome No." }, { "type": "textarea", "source": "outcomeStatement", - "title": "Outcome", + "title": "Short Term Outcome", + "readonly": true, "rows": 5, "width": "45%" }, @@ -984,6 +991,7 @@ { "dataType": "number", "name": "totalCaptiveBreedingEstablished", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -993,6 +1001,7 @@ { "dataType": "number", "name": "totalCaptiveBreedingMaintained", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -1790,6 +1799,7 @@ { "dataType": "number", "name": "totalMaterialsPublished", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "defaultValue": 1, @@ -2298,7 +2308,20 @@ "Grazing", "Fisheries", "Aquaculture", - "Environmental" + "Environmental", + "First Nations Organisation", + "First Nations Rangers", + "Traditional Owners", + "Individual", + "Community", + "School", + "Academic/Research Institution", + "Not for profit", + "Commercial entity", + "Australian Government Department", + "Local Government", + "State and Territory Government", + "Other" ], "validate": "required" }, @@ -2345,6 +2368,7 @@ { "dataType": "number", "name": "totalNumberEngagementHeld", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "defaultValue": 1, @@ -3014,6 +3038,7 @@ { "dataType": "number", "name": "totalStructuresInstalled", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "decimalPlaces": 0, "validate": "min[0]", "computed": { @@ -3023,6 +3048,7 @@ { "dataType": "number", "name": "totalLengthStructuresInstalled", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "decimalPlaces": 3, "validate": "min[0]", "computed": { @@ -3032,6 +3058,7 @@ { "dataType": "number", "name": "totalAreaStructuresInstalled", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "decimalPlaces": 3, "validate": "min[0]", "computed": { @@ -3848,6 +3875,7 @@ { "dataType": "number", "name": "totalAreaPestAnimalsTreatedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "decimalPlaces": 3, "computed": { "expression": "sum(areasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" @@ -3856,6 +3884,7 @@ { "dataType": "number", "name": "totalAreaPestAnimalsTreatedFollowUp", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -3865,6 +3894,7 @@ { "dataType": "number", "name": "totalLengthPestAnimalsTreatedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -3874,6 +3904,7 @@ { "dataType": "number", "name": "totalLengthPestAnimalsTreatedFollowUp", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -4661,6 +4692,7 @@ { "dataType": "number", "name": "totalAreaDebrisRemovedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -4670,6 +4702,7 @@ { "dataType": "number", "name": "totalLengthDebrisRemovedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -4679,6 +4712,7 @@ { "dataType": "number", "name": "totalAreaDebrisRemovedFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -4688,6 +4722,7 @@ { "dataType": "number", "name": "totalLengthDebrisRemovedFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -5265,57 +5300,76 @@ } ], "dataType": "list", - "name": "participationInformationTableErm" + "name": "participationInformationTableDmp" }, { "columns": [ { + "name": "relatedOutcomes", "dataType": "text", - "name": "initialOrFollowup", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, + { + "dataType": "text", + "name": "invoicingThisActivity", "constraints": [ - "Initial", - "Follow-up" + "Yes", + "No" ], "validate": "required" }, - { - "dataType": "number", - "name": "numberInstalled", - "validate": "required,min[0]" - }, { "dataType": "feature", - "name": "sitesOfErosionControl", - "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + "name": "sitesDevelopingManagementPlans", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping.", + "validate": "required" }, { "computed": { - "expression": "$geom.areaHa(sitesOfErosionControl)" + "expression": "$geom.areaHa(sitesDevelopingManagementPlans)" }, "dataType": "number", "name": "calculatedAreaTreatedHa", "units": "ha", "decimalPlaces": 3 }, - { - "computed": { - "expression": "$geom.lengthKm(sitesOfErosionControl)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKm", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKm > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, { "defaultValue": { "type": "computed", @@ -5338,7 +5392,7 @@ "validate": "required", "behaviour": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", "type": "if" } ] @@ -5361,213 +5415,149 @@ "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", "behaviour": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", "type": "if" } ] }, + { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKm" - }, "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 - }, - { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "outcomes" - } + "name": "areaInvoicedHa", + "units": "ha", + "decimalPlaces": 3, + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "areaTreatedHa", + "type": "computed" + }, + "rule": "max" } - } + ] }, { - "name": "investmentPriorities2", "dataType": "text", - "description": "", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.investmentPriorities" - } + "name": "invoicedNotActualReason", + "behaviour": [ + { + "condition": "roundTo(areaTreatedHa, 2) != roundTo(areaInvoicedHa, 2)", + "type": "visible" } - } + ], + "constraints": [ + "Work was undertaken over a greater area than will be invoiced for", + "Other" + ], + "validate": "required" }, { "dataType": "text", - "name": "otherInvestmentPriority", + "name": "invoicedNotActualComments", "behaviour": [ { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" + "condition": "\"Other\" == invoicedNotActualReason", + "type": "visible" } - ] + ], + "validate": "required,maxSize[300]" }, + { "columns": [ { - "dataType": "date", - "name": "dateFrom", - "validate": "required" - }, - { - "dataType": "date", - "name": "dateTo", - "validate": [ - { - "rule": "required" - }, - { - "rule": "future", - "param": { - "expression": "formatDateForValidation(dateFrom)", - "type": "computed" - } - } - ] + "dataType": "text", + "name": "managementPlanName", + "description": "", + "validate": "required,maxSize[100]" }, { "dataType": "text", - "name": "treatmentObjective", - "validate": "required,maxSize[300]" + "name": "newOrRevisedPlan", + "constraints": [ + "New", + "Revised" + ], + "validate": "required" }, { "dataType": "text", - "name": "erosionManagementMethod", + "name": "managementPlan", "constraints": [ - "Alternative watering point", - "Erosion control structures", - "Farming practice change", - "Fencing", - "Revegetation", - "Terracing", - "Vegetated waterway (bioswale)", - "Windbreaks", - "Other" + "Administrative areas (e.g. LGA)", + "Catchments", + "Culturally important sites", + "Farms", + "Heritage Sites", + "Projects and Project Sites, including project logics", + "Ramsar Sites", + "Reserves, Parks, or other protected areas", + "Threatened Ecological Communities", + "Threatened Species", + "Other entities as agreed to by the Department" ], "validate": "required" }, { "dataType": "text", - "name": "otherErosionManagementMethod", + "name": "otherManagementPlan", + "description": "", "behaviour": [ { - "condition": "erosionManagementMethod == \"Other\"", + "condition": "managementPlan == \"Other entities as agreed to by the Department\"", "type": "enable" } ], - "validate": "required,max[300]" - }, - { - "dataType": "number", - "name": "numberDaysCollecting", - "validate": "required,min[0]" + "validate": "required,maxSize[200]" }, { "dataType": "text", - "name": "threatenedEcologicalCommunity", - "validate": "maxSize[300]" + "name": "speciesSiteCovered", + "description": "This free text field allows multiple species and/or TECs to be entered. For Species: Use Scientific names with (common name in brackets), TECs should be written as listed in EPBC. Species or TECs should be separated by commas.", + "validate": "required,maxSize[300]" } ], "dataType": "list", - "name": "erosionManagementDetails", - "minSize": 0 + "allowRowDelete": "false", + "name": "managementPlansDetails" + }, + { + "dataType": "number", + "name": "numberOfPlanDevelopedForOutcome", + "decimalPlaces": 0, + "computed": { + "expression": "sum(managementPlansDetails, \"newOrRevisedPlan ? 1 : 0\")" + } } ], "dataType": "list", - "name": "erosionManagementAreasControlled" + "name": "managementPlansByOutcome" }, { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "outcomes" - } - } + "dataType": "number", + "name": "numberOfPlansDeveloped", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "defaultValue": 1, + "computed": { + "expression": "sum(managementPlansByOutcome, \"numberOfPlanDevelopedForOutcome\")" } }, { - "name": "investmentPriorities2", - "dataType": "text", - "description": "", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.investmentPriorities" - } - } - } - }, - { - "dataType": "text", - "name": "otherInvestmentPriority", - "behaviour": [ - { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" - } - ] - }, - { - "dataType": "number", - "name": "totalLengthStreamCoastlineInitial", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(erosionManagementAreasControlled, \"initialOrFollowup == 'Initial' ? lengthTreatedKm : 0\")" - } - }, - { - "dataType": "number", - "name": "totalLengthStreamCoastlineFollowup", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(erosionManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? lengthTreatedKm : 0\")" - } - }, - { - "dataType": "number", - "name": "totalAreaErosionControlInitial", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(erosionManagementAreasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" - } - }, - { - "dataType": "number", - "name": "totalAreaErosionControlFollowup", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(erosionManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? areaTreatedHa : 0\")" + "dataType": "number", + "name": "totalAreaPlansDeveloped", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(managementPlansByOutcome, \"areaTreatedHa\")" } }, { @@ -5587,7 +5577,7 @@ { "name": "projectAssuranceDetails", "dataType": "text", - "validate": "maxSize[5000]" + "validate": "required,maxSize[5000]" }, { "dataType": "list", @@ -5601,8 +5591,8 @@ ] } ], - "modelName": "NHT - Erosion Management", - "title": "Erosion Management", + "modelName": "Management plan development", + "title": "Developing Management Plans", "viewModel": [ { "type": "row", @@ -5663,7 +5653,7 @@ "type": "textarea" } ], - "source": "participationInformationTableErm", + "source": "participationInformationTableDmp", "type": "table" }, { @@ -5686,40 +5676,8 @@ "type": "row", "items": [ { - "preLabel": "(i) Total area (ha) of erosion control (initial) for this reporting period", - "source": "totalAreaErosionControlInitial", - "type": "number" - } - ] - } - ] - }, - { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(ii) Total area (ha) of erosion control (follow up) for this reporting period", - "source": "totalAreaErosionControlFollowup", - "type": "number" - } - ] - } - ] - }, - { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(iii) Total length (km) of stream/coastline treated for erosion (initial) for this reporting period", - "source": "totalLengthStreamCoastlineInitial", + "preLabel": "(i) Total number of management plans developed for this reporting period", + "source": "numberOfPlansDeveloped", "type": "number" } ] @@ -5734,8 +5692,8 @@ "type": "row", "items": [ { - "preLabel": "(iv) Total length (km) of stream/coastline treated for erosion (follow up) for this reporting period", - "source": "totalLengthStreamCoastlineFollowup", + "preLabel": "(ii) Total area (ha) covered by management plan for this reporting period", + "source": "totalAreaPlansDeveloped", "type": "number" } ] @@ -5745,9 +5703,9 @@ ] }, { - "addRowText": "Add a new erosion control area", + "addRowText": "Add a new management plan", "userAddedRows": true, - "source": "erosionManagementAreasControlled", + "source": "managementPlansByOutcome", "type": "repeat", "items": [ { @@ -5799,46 +5757,8 @@ "type": "row", "items": [ { - "source": "initialOrFollowup", - "preLabel": "Initial or follow-up control?", - "type": "selectOne" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "numberInstalled", - "preLabel": "Number of erosion control structures installed", - "type": "number" - } - ] - } - ] - } - ] - }, - { - "type": "row", - "css": "border-bottom", - "items": [ - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Site/s where erosion has been controlled", - "source": "sitesOfErosionControl", + "preLabel": "Site/s covered by management plan/s", + "source": "sitesDevelopingManagementPlans", "type": "feature" } ] @@ -5856,19 +5776,6 @@ } ] }, - { - "type": "row", - "items": [ - { - "source": "calculatedLengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, { "type": "row", "items": [ @@ -5889,7 +5796,7 @@ "type": "row", "items": [ { - "preLabel": "Actual area (ha) / length (km) of erosion control", + "preLabel": "Actual area (ha) covered by management plan/s", "source": "areaTreatedHa", "type": "number", "displayOptions": { @@ -5898,18 +5805,6 @@ } ] }, - { - "type": "row", - "items": [ - { - "source": "lengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, { "type": "row", "items": [ @@ -5932,39 +5827,30 @@ ] } ] - } - ] - }, - { - "columns": [ - { - "title": "Date from", - "source": "dateFrom", - "type": "date", - "width": "15%" - }, - { - "title": "Date to", - "source": "dateTo", - "type": "date", - "width": "15%" - }, - { - "width": "20%", - "source": "treatmentObjective", - "title": "Treatment objective", - "type": "textarea" }, { - "width": "20%", "type": "col", - "title": "Type of treatment being used", + "css": "span3 col-border-right", "items": [ { "type": "row", "items": [ { - "source": "erosionManagementMethod", + "preLabel": "Invoiced area (ha) covered by the plan/s", + "source": "areaInvoicedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for invoiced amount being different to actual amount", + "source": "invoicedNotActualReason", "type": "selectOne" } ] @@ -5973,30 +5859,75 @@ "type": "row", "items": [ { - "source": "otherErosionManagementMethod", - "placeholder": "Type of treatment method", - "type": "textarea" + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "invoicedNotActualComments", + "type": "textarea", + "rows": 5 } ] } ] - }, - { - "width": "10%", - "source": "numberDaysCollecting", - "title": "Number of days collecting seeds/propagating plants ", - "type": "number" - }, + } + ] + }, + { + "type": "section", + "items": [ { - "width": "20%", - "source": "threatenedEcologicalCommunity", - "title": "Threatened Ecological Community (TEC) benefitting from this activity", - "type": "textarea" + "columns": [ + { + "width": "25%", + "source": "managementPlanName", + "title": "Name of management plan", + "type": "text" + }, + { + "width": "10%", + "source": "newOrRevisedPlan", + "title": "New or revised plan", + "type": "selectOne" + }, + { + "width": "25%", + "title": "Type of management plan*", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "managementPlan", + "type": "select2" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Type of management plan, if other", + "source": "otherManagementPlan", + "type": "textarea" + } + ] + } + ] + }, + { + "width": "30%", + "source": "speciesSiteCovered", + "title": "Species/Threatened ecological communities/Ramsar Sites/Heritage Sites covered in plan", + "type": "textarea" + } + ], + "userAddedRows": false, + "disableTableUpload": true, + "addRowText": "Add a new management plan", + "source": "managementPlansDetails", + "title": "Each plan must be reported as a new section.", + "type": "table" } - ], - "userAddedRows": true, - "source": "erosionManagementDetails", - "type": "table" + ] } ] }, @@ -6028,7 +5959,7 @@ "items": [ { "type": "literal", - "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." + "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" }, { "preLabel": "Data have been uploaded", @@ -6065,12 +5996,12 @@ ] }, "modelName": null, - "templateName": "nhtErosionManagement", + "templateName": "nhtManagementPlanDevelopment", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Erosion Management", + "name": "Management plan development", "description": null }, { @@ -6184,39 +6115,32 @@ } ], "dataType": "list", - "name": "participationInformationTableEmp" + "name": "participationInformationTableErm" }, { "columns": [ { "dataType": "text", - "name": "newOrMaintained", + "name": "initialOrFollowup", "constraints": [ "Initial", - "Maintained" + "Follow-up" ], "validate": "required" }, { "dataType": "number", - "name": "numberOfPestFreeEnclosures", - "validate": "required" - }, - { - "dataType": "number", - "name": "daysSpentOnMaintenanceOfEnclosures", - "description": "Number of days should be calculated as number of days by number of people (eg. 4.5 days by 3 people is 13.5 days).", - "validate": "required, min[0]" + "name": "numberInstalled", + "validate": "required,min[0]" }, { "dataType": "feature", - "name": "sitesOfPestAnimalFreeEnclosure", - "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping.", - "validate": "required" + "name": "sitesOfErosionControl", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." }, { "computed": { - "expression": "$geom.areaHa(sitesOfPestAnimalFreeEnclosure)" + "expression": "$geom.areaHa(sitesOfErosionControl)" }, "dataType": "number", "name": "calculatedAreaTreatedHa", @@ -6225,7 +6149,7 @@ }, { "computed": { - "expression": "$geom.lengthKm(sitesOfPestAnimalFreeEnclosure)" + "expression": "$geom.lengthKm(sitesOfErosionControl)" }, "dataType": "number", "name": "calculatedLengthTreatedKm", @@ -6264,7 +6188,7 @@ "validate": "required", "behaviour": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", "type": "if" } ] @@ -6287,7 +6211,7 @@ "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", "behaviour": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", "type": "if" } ] @@ -6302,40 +6226,6 @@ "units": "km", "decimalPlaces": 3 }, - { - "columns": [ - { - "dataType": "species", - "name": "protectedSpecies", - "dwcAttribute": "scientificName", - "description": "The threatened species protected by the enclosure.", - "validate": "required" - }, - { - "dataType": "species", - "name": "targetFeralSpecies", - "dwcAttribute": "scientificName", - "description": "", - "validate": "required" - }, - { - "dataType": "text", - "name": "individualsOrPopulations", - "constraints": [ - "Individuals", - "Populations" - ], - "validate": "required" - }, - { - "dataType": "number", - "name": "numberOfPopulationsOrIndividualsProtected", - "validate": "required,min[0]" - } - ], - "dataType": "list", - "name": "speciesProtected" - }, { "name": "relatedOutcomes", "dataType": "text", @@ -6377,48 +6267,159 @@ "condition": "\"Other\" in investmentPriorities2" } ] + }, + { + "columns": [ + { + "dataType": "date", + "name": "dateFrom", + "validate": "required" + }, + { + "dataType": "date", + "name": "dateTo", + "validate": [ + { + "rule": "required" + }, + { + "rule": "future", + "param": { + "expression": "formatDateForValidation(dateFrom)", + "type": "computed" + } + } + ] + }, + { + "dataType": "text", + "name": "treatmentObjective", + "validate": "required,maxSize[300]" + }, + { + "dataType": "text", + "name": "erosionManagementMethod", + "constraints": [ + "Alternative watering point", + "Erosion control structures", + "Farming practice change", + "Fencing", + "Revegetation", + "Terracing", + "Vegetated waterway (bioswale)", + "Windbreaks", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "otherErosionManagementMethod", + "behaviour": [ + { + "condition": "erosionManagementMethod == \"Other\"", + "type": "enable" + } + ], + "validate": "required,max[300]" + }, + { + "dataType": "number", + "name": "numberDaysCollecting", + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "threatenedEcologicalCommunity", + "validate": "maxSize[300]" + } + ], + "dataType": "list", + "name": "erosionManagementDetails", + "minSize": 0 } ], "dataType": "list", - "name": "enclosureDetails" + "name": "erosionManagementAreasControlled" + }, + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] }, { "dataType": "number", - "name": "totalNoPestFreeSurveyEstablished", + "name": "totalLengthStreamCoastlineInitial", "validate": "min[0]", - "decimalPlaces": 0, - "defaultValue": 0, + "decimalPlaces": 3, "computed": { - "expression": "sum(enclosureDetails, \"newOrMaintained == 'Initial' ? numberOfPestFreeEnclosures : 0\")" + "expression": "sum(erosionManagementAreasControlled, \"initialOrFollowup == 'Initial' ? lengthTreatedKm : 0\")" } }, { "dataType": "number", - "name": "totalNoPestFreeSurveyMaintained", - "validate": "required,min[0]", - "decimalPlaces": 0, - "defaultValue": 0, + "name": "totalLengthStreamCoastlineFollowup", + "validate": "min[0]", + "decimalPlaces": 3, "computed": { - "expression": "sum(enclosureDetails, \"newOrMaintained == 'Maintained' ? numberOfPestFreeEnclosures : 0\")" + "expression": "sum(erosionManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? lengthTreatedKm : 0\")" } }, { "dataType": "number", - "name": "totalNoDaysMaintainingPestFree", + "name": "totalAreaErosionControlInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 0, + "decimalPlaces": 3, "computed": { - "expression": "sum(enclosureDetails, \"daysSpentOnMaintenanceOfEnclosures\")" + "expression": "sum(erosionManagementAreasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" } }, { "dataType": "number", - "name": "totalAreaPestFreeSurveyInitial", + "name": "totalAreaErosionControlFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, - "defaultValue": 0, "computed": { - "expression": "sum(enclosureDetails, \"areaTreatedHa\")" + "expression": "sum(erosionManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? areaTreatedHa : 0\")" } }, { @@ -6452,8 +6453,8 @@ ] } ], - "modelName": "NHT - Maintaining feral free enclosures", - "title": "Establishing and Maintaining Pest Animal-free Enclosures", + "modelName": "NHT - Erosion Management", + "title": "Erosion Management", "viewModel": [ { "type": "row", @@ -6514,7 +6515,7 @@ "type": "textarea" } ], - "source": "participationInformationTableEmp", + "source": "participationInformationTableErm", "type": "table" }, { @@ -6537,8 +6538,8 @@ "type": "row", "items": [ { - "preLabel": "(i) Total number of pest animal-free enclosures (initial) for this reporting period", - "source": "totalNoPestFreeSurveyEstablished", + "preLabel": "(i) Total area (ha) of erosion control (initial) for this reporting period", + "source": "totalAreaErosionControlInitial", "type": "number" } ] @@ -6553,8 +6554,8 @@ "type": "row", "items": [ { - "preLabel": "(ii) Total number of pest animal-free enclosures (maintained) for this reporting period", - "source": "totalNoPestFreeSurveyMaintained", + "preLabel": "(ii) Total area (ha) of erosion control (follow up) for this reporting period", + "source": "totalAreaErosionControlFollowup", "type": "number" } ] @@ -6569,8 +6570,8 @@ "type": "row", "items": [ { - "preLabel": "(iii) Total number of days maintaining pest animal-free enclosures for this reporting period", - "source": "totalNoDaysMaintainingPestFree", + "preLabel": "(iii) Total length (km) of stream/coastline treated for erosion (initial) for this reporting period", + "source": "totalLengthStreamCoastlineInitial", "type": "number" } ] @@ -6585,8 +6586,8 @@ "type": "row", "items": [ { - "preLabel": "(iv) Total area (ha) of pest animal-free enclosures for this reporting period", - "source": "totalAreaPestFreeSurveyInitial", + "preLabel": "(iv) Total length (km) of stream/coastline treated for erosion (follow up) for this reporting period", + "source": "totalLengthStreamCoastlineFollowup", "type": "number" } ] @@ -6596,266 +6597,332 @@ ] }, { - "type": "section", + "addRowText": "Add a new erosion control area", + "userAddedRows": true, + "source": "erosionManagementAreasControlled", + "type": "repeat", "items": [ { - "addRowText": "Add a new pest animal free area", - "userAddedRows": true, - "source": "enclosureDetails", - "type": "repeat", + "type": "row", "items": [ { - "type": "row", + "css": "span3", + "type": "col", "items": [ { - "css": "span3", - "type": "col", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "source": "relatedOutcomes", - "type": "selectOne", - "preLabel": "Which outcome statement/s does this activity relate to?" - } - ] + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s does this activity relate to?" } ] - }, - { - "type": "col", - "css": "span3 col-border-right", + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" - } - ] + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" } ] } ] - }, + } + ] + }, + { + "type": "row", + "css": "border-bottom", + "items": [ { - "css": "border-bottom", - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "preLabel": "Initial or maintained feral free enclosure?", - "css": "span3", - "source": "newOrMaintained", - "type": "selectOne" - }, - { - "preLabel": "Number of pest animal-free enclosures", - "css": "span3", - "source": "numberOfPestFreeEnclosures", - "type": "number" - }, - { - "preLabel": "Number of days maintaining pest animal-free enclosures", - "css": "span3", - "source": "daysSpentOnMaintenanceOfEnclosures", - "type": "number" + "type": "row", + "items": [ + { + "source": "initialOrFollowup", + "preLabel": "Initial or follow-up control?", + "type": "selectOne" + } + ] } ] }, { - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Site/s of pest animal-free enclosure", - "source": "sitesOfPestAnimalFreeEnclosure", - "type": "feature" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedAreaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, + "source": "numberInstalled", + "preLabel": "Number of erosion control structures installed", + "type": "number" + } + ] + } + ] + } + ] + }, + { + "type": "row", + "css": "border-bottom", + "items": [ + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetails", - "type": "document" - } - ] + "preLabel": "Site/s where erosion has been controlled", + "source": "sitesOfErosionControl", + "type": "feature" } ] }, { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Actual area (ha) of pest animal-free enclosure", - "source": "areaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", - "type": "selectOne" - } - ] - }, + "source": "calculatedLengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "row", - "items": [ - { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 - } - ] + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" } ] } ] }, { - "addRowText": "Add a species", - "columns": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ { - "width": "30%", - "source": "protectedSpecies", - "title": "Targeted species being protected", - "type": "speciesSelect" + "type": "row", + "items": [ + { + "preLabel": "Actual area (ha) / length (km) of erosion control", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] }, { - "width": "30%", - "source": "targetFeralSpecies", - "title": "Targeted pest animal species being controlled", - "type": "speciesSelect" + "type": "row", + "items": [ + { + "source": "lengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] }, { - "width": "20%", - "source": "individualsOrPopulations", - "title": "Individuals or populations of species being protected?", - "type": "selectOne" + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" + } + ] }, { - "width": "20%", - "source": "numberOfPopulationsOrIndividualsProtected", - "title": "Number of populations (or individuals) within pest animal-free enclosures", - "type": "number" + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 + } + ] } - ], - "userAddedRows": true, - "source": "speciesProtected", - "type": "table" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" + ] } ] }, { - "type": "row", - "items": [ + "columns": [ { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" - } - ] - }, - { - "type": "row", - "items": [ + "title": "Date from", + "source": "dateFrom", + "type": "date", + "width": "15%" + }, { - "type": "literal", - "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." + "title": "Date to", + "source": "dateTo", + "type": "date", + "width": "15%" }, { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] - }, - { - "type": "row", - "items": [ + "width": "20%", + "source": "treatmentObjective", + "title": "Treatment objective", + "type": "textarea" + }, { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + "width": "20%", + "type": "col", + "title": "Type of treatment being used", + "items": [ + { + "type": "row", + "items": [ + { + "source": "erosionManagementMethod", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "otherErosionManagementMethod", + "placeholder": "Type of treatment method", + "type": "textarea" + } + ] + } + ] + }, + { + "width": "10%", + "source": "numberDaysCollecting", + "title": "Number of days collecting seeds/propagating plants ", + "type": "number" + }, + { + "width": "20%", + "source": "threatenedEcologicalCommunity", + "title": "Threatened Ecological Community (TEC) benefitting from this activity", + "type": "textarea" } - ] + ], + "userAddedRows": true, + "source": "erosionManagementDetails", + "type": "table" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." }, { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ - { - "title": "Attached documents", - "source": "attachments", - "type": "document" - } - ] + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" } ] } ] }, "modelName": null, - "templateName": "nhtFeralFreeEnclosures", + "templateName": "nhtErosionManagement", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Maintaining feral free enclosures", + "name": "NHT - Erosion Management", "description": null }, { @@ -6969,81 +7036,39 @@ } ], "dataType": "list", - "name": "participationInformationTableEsa" + "name": "participationInformationTableEmp" }, { "columns": [ { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "label", - "type": "pre-populated", - "config": { - "source": { - "url": "/project/outcomesByScores", - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - }, - { - "expression": "scores", - "name": "scoreIds", - "type": "computed" - } - ] - } - } - } - }, - { - "name": "investmentPriorities2", "dataType": "text", - "description": "", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.investmentPriorities" - } - } - } + "name": "newOrMaintained", + "constraints": [ + "Initial", + "Maintained" + ], + "validate": "required" }, { - "dataType": "text", - "name": "otherInvestmentPriority", - "behaviour": [ - { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" - } - ] + "dataType": "number", + "name": "numberOfPestFreeEnclosures", + "validate": "required" }, { - "dataType": "text", - "name": "establishedOrImplementation", - "constraints": [ - "Established", - "Implementation" - ], - "validate": "required" + "dataType": "number", + "name": "daysSpentOnMaintenanceOfEnclosures", + "description": "Number of days should be calculated as number of days by number of people (eg. 4.5 days by 3 people is 13.5 days).", + "validate": "required, min[0]" }, { "dataType": "feature", - "name": "sitesAgreementsEstablished", - "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." + "name": "sitesOfPestAnimalFreeEnclosure", + "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping.", + "validate": "required" }, { "computed": { - "expression": "$geom.areaHa(sitesAgreementsEstablished)" + "expression": "$geom.areaHa(sitesOfPestAnimalFreeEnclosure)" }, "dataType": "number", "name": "calculatedAreaTreatedHa", @@ -7052,7 +7077,7 @@ }, { "computed": { - "expression": "$geom.lengthKm(sitesAgreementsEstablished)" + "expression": "$geom.lengthKm(sitesOfPestAnimalFreeEnclosure)" }, "dataType": "number", "name": "calculatedLengthTreatedKm", @@ -7132,104 +7157,124 @@ { "columns": [ { - "dataType": "text", - "name": "agreementType", + "dataType": "species", + "name": "protectedSpecies", + "dwcAttribute": "scientificName", + "description": "The threatened species protected by the enclosure.", + "validate": "required" + }, + { + "dataType": "species", + "name": "targetFeralSpecies", + "dwcAttribute": "scientificName", "description": "", - "constraints": [ - "On title in perpetuity (e.g. conservation convenant)", - "Binding agreement not on title in perpetuity (e.g. property vegetation plan)", - "Termed agreement not on title - binding (e.g. land management agreement)", - "Not on title - non-binding (e.g. Wildlife Refuge)", - "No protection mechanism applicable", - "Other" - ], "validate": "required" }, { "dataType": "text", - "name": "otherAgreementType", - "description": "", - "behaviour": [ - { - "condition": "agreementType == \"Other\"", - "type": "enable" - } - ], - "validate": "required,maxSize[300]" - }, - { - "dataType": "number", - "name": "numberOfAgreements", - "validate": "required,min[0]" - }, - { - "dataType": "number", - "name": "numberOfDaysMaintainingAgreements", - "description": "Number of days should be calculated as number of days by number of people (eg. 4.5 days by 3 people is 13.5 days).", - "validate": "required,min[0]" - }, - { - "dataType": "number", - "name": "yearsOfTheAgreement", - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "agreementPurpose", - "validate": "required,maxSize[300]" - }, - { - "dataType": "text", - "name": "agreementMadeWith", - "validate": "required,maxSize[300]" - }, - { - "dataType": "text", - "name": "implementationType", + "name": "individualsOrPopulations", "constraints": [ - "Managing Sward Height", - "Native Herbivore Management", - "Pest Animal Management", - "Weed Removal/Management", - "Biomass Control", - "Revegetation (including planting and seeding)", - "Regeneration", - "Restoration of Habitat Features", - "Improving Land Management Practices", - "Other (explanation of the activity required)" + "Individuals", + "Populations" ], "validate": "required" }, { - "dataType": "text", - "name": "otherImplementationType", - "description": "", - "validate": "maxSize[300]" + "dataType": "number", + "name": "numberOfPopulationsOrIndividualsProtected", + "validate": "required,min[0]" } ], "dataType": "list", - "name": "agreementsTable" + "name": "speciesProtected" + }, + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] } ], "dataType": "list", - "name": "conservationAgreementsControlled" + "name": "enclosureDetails" }, { "dataType": "number", - "name": "totalAreaConservationAgreements", + "name": "totalNoPestFreeSurveyEstablished", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 3, + "decimalPlaces": 0, + "defaultValue": 0, "computed": { - "expression": "sum(conservationAgreementsControlled, \"establishedOrImplementation == 'Established' ? areaTreatedHa : 0\")" + "expression": "sum(enclosureDetails, \"newOrMaintained == 'Initial' ? numberOfPestFreeEnclosures : 0\")" } }, { "dataType": "number", - "name": "totalAreaActivitiesConducted", + "name": "totalNoPestFreeSurveyMaintained", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "required,min[0]", + "decimalPlaces": 0, + "defaultValue": 0, + "computed": { + "expression": "sum(enclosureDetails, \"newOrMaintained == 'Maintained' ? numberOfPestFreeEnclosures : 0\")" + } + }, + { + "dataType": "number", + "name": "totalNoDaysMaintainingPestFree", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(enclosureDetails, \"daysSpentOnMaintenanceOfEnclosures\")" + } + }, + { + "dataType": "number", + "name": "totalAreaPestFreeSurveyInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, + "defaultValue": 0, "computed": { - "expression": "sum(conservationAgreementsControlled, \"establishedOrImplementation == 'Implementation' ? areaTreatedHa : 0\")" + "expression": "sum(enclosureDetails, \"areaTreatedHa\")" } }, { @@ -7263,8 +7308,8 @@ ] } ], - "modelName": "NHT - Establishing Agreements", - "title": "Establishing and Implementing Conservation Agreements", + "modelName": "NHT - Maintaining feral free enclosures", + "title": "Establishing and Maintaining Pest Animal-free Enclosures", "viewModel": [ { "type": "row", @@ -7325,7 +7370,7 @@ "type": "textarea" } ], - "source": "participationInformationTableEsa", + "source": "participationInformationTableEmp", "type": "table" }, { @@ -7348,8 +7393,8 @@ "type": "row", "items": [ { - "preLabel": "(i) Total area (ha) covered by conservation agreements during this reporting period (Established)", - "source": "totalAreaConservationAgreements", + "preLabel": "(i) Total number of pest animal-free enclosures (initial) for this reporting period", + "source": "totalNoPestFreeSurveyEstablished", "type": "number" } ] @@ -7364,8 +7409,40 @@ "type": "row", "items": [ { - "preLabel": "(ii) Total area (ha) where implementation activities conducted during this reporting period (Implementation/Stewardship)", - "source": "totalAreaActivitiesConducted", + "preLabel": "(ii) Total number of pest animal-free enclosures (maintained) for this reporting period", + "source": "totalNoPestFreeSurveyMaintained", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(iii) Total number of days maintaining pest animal-free enclosures for this reporting period", + "source": "totalNoDaysMaintainingPestFree", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(iv) Total area (ha) of pest animal-free enclosures for this reporting period", + "source": "totalAreaPestFreeSurveyInitial", "type": "number" } ] @@ -7378,9 +7455,9 @@ "type": "section", "items": [ { - "addRowText": "Add a new agreement area", + "addRowText": "Add a new pest animal free area", "userAddedRows": true, - "source": "conservationAgreementsControlled", + "source": "enclosureDetails", "type": "repeat", "items": [ { @@ -7421,30 +7498,31 @@ ] }, { - "type": "row", "css": "border-bottom", + "type": "row", "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "establishedOrImplementation", - "type": "selectOne", - "preLabel": "Established or implementation?" - } - ] - } - ] + "preLabel": "Initial or maintained feral free enclosure?", + "css": "span3", + "source": "newOrMaintained", + "type": "selectOne" + }, + { + "preLabel": "Number of pest animal-free enclosures", + "css": "span3", + "source": "numberOfPestFreeEnclosures", + "type": "number" + }, + { + "preLabel": "Number of days maintaining pest animal-free enclosures", + "css": "span3", + "source": "daysSpentOnMaintenanceOfEnclosures", + "type": "number" } ] }, { "type": "row", - "css": "border-bottom", "items": [ { "type": "col", @@ -7454,8 +7532,8 @@ "type": "row", "items": [ { - "preLabel": "Site/s where agreements were established", - "source": "sitesAgreementsEstablished", + "preLabel": "Site/s of pest animal-free enclosure", + "source": "sitesOfPestAnimalFreeEnclosure", "type": "feature" } ] @@ -7493,7 +7571,7 @@ "type": "row", "items": [ { - "preLabel": "Actual area (ha) of site/s agreements", + "preLabel": "Actual area (ha) of pest animal-free enclosure", "source": "areaTreatedHa", "type": "number", "displayOptions": { @@ -7528,96 +7606,39 @@ ] }, { + "addRowText": "Add a species", "columns": [ { - "width": "15%", - "title": "Type of agreement", - "type": "col", - "items": [ - { - "type": "row", - "items": [ - { - "source": "agreementType", - "type": "selectOne" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "otherAgreementType", - "title": "Type of Agreement (if other)", - "type": "textarea" - } - ] - } - ] + "width": "30%", + "source": "protectedSpecies", + "title": "Targeted species being protected", + "type": "speciesSelect" }, { - "width": "10%", - "source": "numberOfAgreements", - "type": "number", - "title": "Number of conservation agreements established" - }, - { - "width": "10%", - "source": "numberOfDaysMaintainingAgreements", - "type": "number", - "title": "Number of days maintaining agreements (if applicable)" - }, - { - "width": "10%", - "source": "yearsOfTheAgreement", - "type": "number", - "title": "Length (years of the agreement)" + "width": "30%", + "source": "targetFeralSpecies", + "title": "Targeted pest animal species being controlled", + "type": "speciesSelect" }, { "width": "20%", - "source": "agreementPurpose", - "title": "Purpose of agreement", - "type": "textarea" + "source": "individualsOrPopulations", + "title": "Individuals or populations of species being protected?", + "type": "selectOne" }, { "width": "20%", - "source": "agreementMadeWith", - "title": "Who the agreement was made with?", - "type": "textarea" - }, - { - "width": "10%", - "title": "Types of implementation/stewardship activities undertaken", - "type": "col", - "items": [ - { - "type": "row", - "items": [ - { - "source": "implementationType", - "type": "select2Many" - } - ] - }, - { - "source": "otherImplementationType", - "placeholder": "If Other was selected", - "type": "text" - } - ] + "source": "numberOfPopulationsOrIndividualsProtected", + "title": "Number of populations (or individuals) within pest animal-free enclosures", + "type": "number" } ], "userAddedRows": true, - "source": "agreementsTable", + "source": "speciesProtected", "type": "table" } ] - } - ] - }, - { - "type": "section", - "items": [ + }, { "type": "row", "items": [ @@ -7685,12 +7706,12 @@ ] }, "modelName": null, - "templateName": "nhtEstablishingAgreements", + "templateName": "nhtFeralFreeEnclosures", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Establishing Agreements", + "name": "NHT - Maintaining feral free enclosures", "description": null }, { @@ -7804,12 +7825,9 @@ } ], "dataType": "list", - "name": "participationInformationTableFms" + "name": "participationInformationTableEsa" }, { - "name": "farmManagementSurveys", - "dataType": "list", - "minSize": 1, "columns": [ { "name": "relatedOutcomes", @@ -7818,372 +7836,258 @@ "validate": "required", "constraints": { "textProperty": "label", - "valueProperty": "value", + "valueProperty": "label", "type": "pre-populated", "config": { "source": { - "context-path": "outcomes" + "url": "/project/outcomesByScores", + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + }, + { + "expression": "scores", + "name": "scoreIds", + "type": "computed" + } + ] } } } }, { + "name": "investmentPriorities2", "dataType": "text", - "name": "baselineOrIndicatorSurvey", "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, + { + "dataType": "text", + "name": "establishedOrImplementation", "constraints": [ - "Baseline", - "Indicator" + "Established", + "Implementation" ], "validate": "required" }, + { + "dataType": "feature", + "name": "sitesAgreementsEstablished", + "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesAgreementsEstablished)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesAgreementsEstablished)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, { "dataType": "text", - "name": "surveyObjective", - "description": "What the survey aim to capture? How will the information obtained from the survey be used?", - "validate": "required,maxSize[3000]" + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKm" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 }, { - "dataType": "list", - "name": "farmManagementDataSets", "columns": [ { - "name": "dataSetId", - "entityType": "au.org.ala.ecodata.DataSetSummary", "dataType": "text", - "description": "This section will require the Data Set Name so the Metadata fields in the Data Set Summary tab should be filled out before the Outcome Report is due. More than one dataset if relevant for this Project Baseline could be selected.", - "validate": "required", - "constraints": { - "textProperty": "name", - "valueProperty": "dataSetId", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.custom.dataSets" - }, - "filter": { - "namespace": "dataSet", - "expression": "dataSet.serviceId == 12 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" - } - } - }, + "name": "agreementType", + "description": "", + "constraints": [ + "On title in perpetuity (e.g. conservation convenant)", + "Binding agreement not on title in perpetuity (e.g. property vegetation plan)", + "Termed agreement not on title - binding (e.g. land management agreement)", + "Not on title - non-binding (e.g. Wildlife Refuge)", + "No protection mechanism applicable", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "otherAgreementType", + "description": "", "behaviour": [ { - "type": "pre_populate", - "config": { - "waitForInitialisation": true, - "source": { - "url": "/site/geojson", - "params": [ - { - "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.siteId", - "name": "id", - "type": "computed", - "required": true - } - ] - }, - "target": { - "type": "singleValue", - "name": "sitesTreated" - } - } - }, - { - "type": "pre_populate", - "config": { - "waitForInitialisation": true, - "source": { - "url": "/project/getSpeciesRecordsFromActivity", - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - }, - { - "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.activityId", - "name": "activityId", - "type": "computed", - "required": true - } - ] - }, - "mapping": [ - { - "source-path": "species", - "target": "species" - }, - { - "source-path": "threatenedEcologicalCommunity", - "target": "threatenedEcologicalCommunity" - }, - { - "source-path": "individualsOrGroups", - "target": "individualsOrGroups" - }, - { - "source-path": "individualCount", - "target": "numberOfIndividualsOrGroups" - } - ], - "target": { - "type": "singleLoad", - "name": "farmManagementSurveySpeciesTable" - } - } - } - ] - }, - { - "columns": [ - { - "dataType": "species", - "name": "species", - "validate": "required" - }, - { - "dataType": "text", - "name": "threatenedEcologicalCommunity", - "validate": "maxSize[300]" - }, - { - "dataType": "text", - "name": "individualsOrGroups", - "constraints": [ - "Individuals", - "Groups" - ], - "validate": "required" - }, - { - "dataType": "number", - "name": "numberOfIndividualsOrGroups", - "validate": "required,min[0]" + "condition": "agreementType == \"Other\"", + "type": "enable" } ], - "dataType": "list", - "name": "farmManagementSurveySpeciesTable" - }, - { - "name": "projectBaselines", - "dataType": "stringList", - "description": "Select the relevant Project Baseline as listed in the Monitoring Methodology section of the MERI Plan.", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.baselines" - }, - "constraints": { - "textProperty": "baseline", - "valueProperty": "code", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.custom.details.baseline.rows" - } - } - } - }, - { - "name": "investmentPriorities2", - "dataType": "stringList", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.investmentPriorities" - }, - "constraints": { - "type": "pre-populated", - "config": { - "source": { - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - } - ], - "url": "/project/listProjectInvestmentPriorities/" - } - } - } - }, - { - "dataType": "text", - "name": "otherInvestmentPriority", - "behaviour": [ - { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" - } - ] - }, - { - "dataType": "date", - "name": "activitiesStartDate", - "description": "Specific the dates these events were held on.", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.startDate" - } - }, - { - "dataType": "date", - "name": "activitiesEndDate", - "description": "Specific the dates these events were held on.", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.endDate" - } - }, - { - "dataType": "feature", - "name": "sitesCoveredForFarmSurvey", - "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + "validate": "required,maxSize[300]" }, { - "computed": { - "expression": "$geom.areaHa(sitesCoveredForFarmSurvey)" - }, "dataType": "number", - "name": "calculatedAreaTreatedHa", - "units": "ha", - "decimalPlaces": 3 + "name": "numberOfAgreements", + "validate": "required,min[0]" }, { - "computed": { - "expression": "$geom.lengthKm(sitesCoveredForFarmSurvey)" - }, "dataType": "number", - "name": "calculatedLengthTreatedKm", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKm > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] + "name": "numberOfDaysMaintainingAgreements", + "description": "Number of days should be calculated as number of days by number of people (eg. 4.5 days by 3 people is 13.5 days).", + "validate": "required,min[0]" }, { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHa" - }, "dataType": "number", - "name": "areaTreatedHa", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, + "name": "yearsOfTheAgreement", "validate": "required,min[0]" }, { "dataType": "text", - "name": "mappingNotAlignedReason", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] + "name": "agreementPurpose", + "validate": "required,maxSize[300]" }, { "dataType": "text", - "name": "mappingNotAlignedComments", - "validate": "required,maxSize[100]", - "behaviour": [ - { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReason" - } - ] - }, - { - "dataType": "document", - "name": "extraMappingDetails", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] + "name": "agreementMadeWith", + "validate": "required,maxSize[300]" }, { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKm" - }, - "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 + "dataType": "text", + "name": "implementationType", + "constraints": [ + "Managing Sward Height", + "Native Herbivore Management", + "Pest Animal Management", + "Weed Removal/Management", + "Biomass Control", + "Revegetation (including planting and seeding)", + "Regeneration", + "Restoration of Habitat Features", + "Improving Land Management Practices", + "Other (explanation of the activity required)" + ], + "validate": "required" }, { "dataType": "text", - "description": "Select the technique used to conduct the survey. If the EMSA Application tool was not used, you should select 'Other'.", - "name": "emsaProtocol", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.protocol" - }, - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.protocols" - } - } - } - }, - { - "dataType": "stringList", - "description": "Describe the technique (if Other) was selected.", - "name": "otherEmsaProtocol", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methods" - } - }, - { - "dataType": "text", - "name": "surveyMethodology", - "description": "Provide more details on what is being done.", - "validate": "required,maxSize[3000]", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methodDescription" - } + "name": "otherImplementationType", + "description": "", + "validate": "maxSize[300]" } ], - "minSize": 1 + "dataType": "list", + "name": "agreementsTable" } - ] + ], + "dataType": "list", + "name": "conservationAgreementsControlled" }, { "dataType": "number", - "name": "totalSurveyBaseline", + "name": "totalAreaConservationAgreements", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 0, + "decimalPlaces": 3, "computed": { - "expression": "sum(farmManagementSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" + "expression": "sum(conservationAgreementsControlled, \"establishedOrImplementation == 'Established' ? areaTreatedHa : 0\")" } }, { "dataType": "number", - "name": "totalSurveyIndicator", + "name": "totalAreaActivitiesConducted", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 0, + "decimalPlaces": 3, "computed": { - "expression": "sum(farmManagementSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" + "expression": "sum(conservationAgreementsControlled, \"establishedOrImplementation == 'Implementation' ? areaTreatedHa : 0\")" } }, { @@ -8198,12 +8102,11 @@ { "dataType": "boolean", "name": "dataUploaded", - "description": "" + "description": "" }, { - "dataType": "text", "name": "projectAssuranceDetails", - "description": "", + "dataType": "text", "validate": "maxSize[5000]" }, { @@ -8218,415 +8121,361 @@ ] } ], - "modelName": "NHT - Farm Management Survey", - "title": "Farm Management Survey", + "modelName": "NHT - Establishing Agreements", + "title": "Establishing and Implementing Conservation Agreements", "viewModel": [ { - "type": "section", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Participation information

" - } - ] - }, + "type": "literal", + "source": "

Participation information

" + } + ] + }, + { + "disableTableUpload": true, + "columns": [ { - "disableTableUpload": true, - "columns": [ - { - "width": "10%", - "source": "participationIndividualsOrGroups", - "title": "Are individuals or groups delivering this service?", - "type": "selectOne" - }, - { - "width": "20%", - "type": "col", - "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ - { - "source": "participationIndividualNumber", - "type": "number" - }, - { - "source": "participationGroupNumber", - "type": "selectOne" - } - ] - }, - { - "type": "col", - "width": "20%", - "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ - { - "source": "firstNationIndividualNumber", - "type": "number" - }, - { - "source": "firstNationGroupNumber", - "type": "selectOne" - } - ] - }, - { - "width": "20%", - "source": "participationDetails", - "rows": 4, - "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", - "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", - "type": "textarea" - } - ], - "source": "participationInformationTableFms", - "type": "table" + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" }, { - "type": "row", + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", "items": [ { - "type": "literal", - "source": "

Survey information

Before completing this section, please ensure you have created a Data Set Summary information for every data set produced by the surveys you intend to report

" + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" } ] }, { - "type": "row", + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", "items": [ { - "type": "literal", - "source": "

Totals Summary

" + "source": "firstNationIndividualNumber", + "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" } ] }, { - "type": "row", + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } + ], + "source": "participationInformationTableEsa", + "type": "table" + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span4 col-border-right", "items": [ { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "(i) Total Number of baseline farm management surveys completed for this reporting period", - "source": "totalSurveyBaseline", - "type": "number" - } - ] + "preLabel": "(i) Total area (ha) covered by conservation agreements during this reporting period (Established)", + "source": "totalAreaConservationAgreements", + "type": "number" } ] - }, + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "(ii) Total Number of indicator farm management surveys completed for this reporting period", - "source": "totalSurveyIndicator", - "type": "number" - } - ] + "preLabel": "(ii) Total area (ha) where implementation activities conducted during this reporting period (Implementation/Stewardship)", + "source": "totalAreaActivitiesConducted", + "type": "number" } ] } ] - }, + } + ] + }, + { + "type": "section", + "items": [ { - "addRowText": "Add survey", - "removeRowText": "Delete this survey", + "addRowText": "Add a new agreement area", "userAddedRows": true, - "source": "farmManagementSurveys", + "source": "conservationAgreementsControlled", "type": "repeat", "items": [ { "type": "row", "items": [ { + "css": "span3", "type": "col", "items": [ { - "source": "relatedOutcomes", - "type": "selectOne", - "preLabel": "Which outcome statement/s relates to this survey?" + "type": "row", + "items": [ + { + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s does this activity relate to?" + } + ] } ] }, { "type": "col", + "css": "span3 col-border-right", "items": [ { - "source": "baselineOrIndicatorSurvey", - "type": "selectOne", - "preLabel": "Baseline survey or indicator (follow-up) survey?" - } - ] - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "surveyObjective", - "preLabel": "Survey objective", - "type": "text" + "type": "row", + "items": [ + { + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" + } + ] + } + ] } ] }, { - "type": "repeat", - "source": "farmManagementDataSets", - "userAddedRows": true, - "addRowText": "New data set", - "removeRowText": "Delete this data set", + "type": "row", + "css": "border-bottom", "items": [ { - "type": "row", - "css": "border-bottom", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "type": "col", + "type": "row", "items": [ { - "source": "dataSetId", + "source": "establishedOrImplementation", "type": "selectOne", - "preLabel": "Please select the data set produced by this survey. Note it must have already been entered on the Data Set Summary tab." + "preLabel": "Established or implementation?" } ] } ] - }, + } + ] + }, + { + "type": "row", + "css": "border-bottom", + "items": [ { - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "source": "projectBaselines", - "type": "selectMany", - "preLabel": "Which project baseline/s relate to this survey?", - "readonly": "readonly" - } - ] + "preLabel": "Site/s where agreements were established", + "source": "sitesAgreementsEstablished", + "type": "feature" } ] }, { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" - } - ] + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" } ] }, { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Activity start date", - "source": "activitiesStartDate", - "type": "date" - } - ] + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" } ] - }, + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Activity end date", - "source": "activitiesEndDate", - "type": "date" - } - ] + "preLabel": "Actual area (ha) of site/s agreements", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } } ] }, { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Sites covered by farm management survey", - "source": "sitesCoveredForFarmSurvey", - "type": "feature" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedAreaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedLengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetails", - "type": "document" - } - ] + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" } ] }, { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Actual area (ha) / length (km) covered by farm management survey", - "source": "areaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "lengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", - "type": "selectOne" - } - ] - }, - { - "type": "row", - "items": [ - { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 - } - ] + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 } ] - }, + } + ] + } + ] + }, + { + "columns": [ + { + "width": "15%", + "title": "Type of agreement", + "type": "col", + "items": [ { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Survey technique", - "source": "emsaProtocol", - "type": "selectOne", - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Survey technique (if Other)", - "source": "otherEmsaProtocol", - "type": "select2Many" - } - ] + "source": "agreementType", + "type": "selectOne" } ] }, { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "source": "surveyMethodology", - "preLabel": "Survey methodology", - "type": "text" - } - ] + "source": "otherAgreementType", + "title": "Type of Agreement (if other)", + "type": "textarea" + } + ] + } + ] + }, + { + "width": "10%", + "source": "numberOfAgreements", + "type": "number", + "title": "Number of conservation agreements established" + }, + { + "width": "10%", + "source": "numberOfDaysMaintainingAgreements", + "type": "number", + "title": "Number of days maintaining agreements (if applicable)" + }, + { + "width": "10%", + "source": "yearsOfTheAgreement", + "type": "number", + "title": "Length (years of the agreement)" + }, + { + "width": "20%", + "source": "agreementPurpose", + "title": "Purpose of agreement", + "type": "textarea" + }, + { + "width": "20%", + "source": "agreementMadeWith", + "title": "Who the agreement was made with?", + "type": "textarea" + }, + { + "width": "10%", + "title": "Types of implementation/stewardship activities undertaken", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "implementationType", + "type": "select2Many" } ] + }, + { + "source": "otherImplementationType", + "placeholder": "If Other was selected", + "type": "text" } ] } - ] + ], + "userAddedRows": true, + "source": "agreementsTable", + "type": "table" } ] - }, + } + ] + }, + { + "type": "section", + "items": [ { "type": "row", "items": [ @@ -8694,12 +8543,12 @@ ] }, "modelName": null, - "templateName": "nhtFarmManagementSurvey", + "templateName": "nhtEstablishingAgreements", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Farm Management Survey", + "name": "NHT - Establishing Agreements", "description": null }, { @@ -8707,7 +8556,116 @@ "template": { "dataModel": [ { - "name": "faunaSurveys", + "allowRowDelete": "false", + "columns": [ + { + "dataType": "text", + "name": "participationIndividualsOrGroups", + "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "participationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "participationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ] + }, + { + "dataType": "number", + "name": "firstNationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "participationIndividualNumber", + "type": "computed" + }, + "rule": "max" + } + ] + }, + { + "dataType": "text", + "name": "firstNationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ], + "validate": [ + { + "rule": "required" + }, + { + "param": { + "expression": "participationGroupNumber", + "type": "computed" + }, + "rule": "max", + "message": "The number of first nation participants cannot be greater than the total number of participants" + } + ] + }, + { + "dataType": "text", + "name": "participationDetails", + "validate": "required, maxSize[3000]" + } + ], + "dataType": "list", + "name": "participationInformationTableFms" + }, + { + "name": "farmManagementSurveys", "dataType": "list", "minSize": 1, "columns": [ @@ -8745,7 +8703,7 @@ }, { "dataType": "list", - "name": "faunaDataSets", + "name": "farmManagementDataSets", "columns": [ { "name": "dataSetId", @@ -8763,7 +8721,7 @@ }, "filter": { "namespace": "dataSet", - "expression": "dataSet.serviceId == 13 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" + "expression": "dataSet.serviceId == 12 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" } } }, @@ -8785,7 +8743,7 @@ }, "target": { "type": "singleValue", - "name": "sitesCoveredForFaunaSurvey" + "name": "sitesTreated" } } }, @@ -8814,6 +8772,10 @@ "source-path": "species", "target": "species" }, + { + "source-path": "threatenedEcologicalCommunity", + "target": "threatenedEcologicalCommunity" + }, { "source-path": "individualsOrGroups", "target": "individualsOrGroups" @@ -8825,7 +8787,7 @@ ], "target": { "type": "singleLoad", - "name": "faunaSurveySpeciesTable" + "name": "farmManagementSurveySpeciesTable" } } } @@ -8838,6 +8800,11 @@ "name": "species", "validate": "required" }, + { + "dataType": "text", + "name": "threatenedEcologicalCommunity", + "validate": "maxSize[300]" + }, { "dataType": "text", "name": "individualsOrGroups", @@ -8854,7 +8821,7 @@ } ], "dataType": "list", - "name": "faunaSurveySpeciesTable" + "name": "farmManagementSurveySpeciesTable" }, { "name": "projectBaselines", @@ -8927,12 +8894,12 @@ }, { "dataType": "feature", - "name": "sitesCoveredForFaunaSurvey", + "name": "sitesCoveredForFarmSurvey", "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." }, { "computed": { - "expression": "$geom.areaHa(sitesCoveredForFaunaSurvey)" + "expression": "$geom.areaHa(sitesCoveredForFarmSurvey)" }, "dataType": "number", "name": "calculatedAreaTreatedHa", @@ -8941,7 +8908,7 @@ }, { "computed": { - "expression": "$geom.lengthKm(sitesCoveredForFaunaSurvey)" + "expression": "$geom.lengthKm(sitesCoveredForFarmSurvey)" }, "dataType": "number", "name": "calculatedLengthTreatedKm", @@ -9060,155 +9027,48 @@ ] }, { - "allowRowDelete": "false", - "columns": [ - { - "dataType": "text", - "name": "participationIndividualsOrGroups", - "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", - "constraints": [ - "Individuals", - "Groups" - ], - "validate": "required" - }, - { - "dataType": "number", - "name": "participationIndividualNumber", - "defaultValue": 0, - "behaviour": [ - { - "condition": "participationIndividualsOrGroups == \"Individuals\"", - "type": "enable" - } - ], - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "participationGroupNumber", - "behaviour": [ - { - "condition": "participationIndividualsOrGroups == \"Groups\"", - "type": "enable" - } - ], - "constraints": [ - "0", - "1-10", - "11-20", - "21-30", - "31-40", - "41-50" - ] - }, - { - "dataType": "number", - "name": "firstNationIndividualNumber", - "defaultValue": 0, - "behaviour": [ - { - "condition": "participationIndividualsOrGroups == \"Individuals\"", - "type": "enable" - } - ], - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - }, - { - "param": { - "expression": "participationIndividualNumber", - "type": "computed" - }, - "rule": "max" - } - ] - }, - { - "dataType": "text", - "name": "firstNationGroupNumber", - "behaviour": [ - { - "condition": "participationIndividualsOrGroups == \"Groups\"", - "type": "enable" - } - ], - "constraints": [ - "0", - "1-10", - "11-20", - "21-30", - "31-40", - "41-50" - ], - "validate": [ - { - "rule": "required" - }, - { - "param": { - "expression": "participationGroupNumber", - "type": "computed" - }, - "rule": "max", - "message": "The number of first nation participants cannot be greater than the total number of participants" - } - ] - }, - { - "dataType": "text", - "name": "participationDetails", - "validate": "required, maxSize[3000]" - } - ], - "dataType": "list", - "name": "participationInformationTableFau" - }, - { - "dataType": "number", - "name": "totalSurveyBaseline", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(faunaSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" - } - }, - { - "dataType": "number", - "name": "totalSurveyIndicator", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(faunaSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" - } - }, - { - "dataType": "text", - "name": "comments", - "validate": "maxSize[1500]" - }, - { - "dataType": "image", - "name": "photographicEvidence" - }, - { - "dataType": "boolean", - "name": "dataUploaded", - "description": "" - }, - { - "dataType": "text", - "name": "projectAssuranceDetails", - "description": "", - "validate": "maxSize[5000]" - }, - { - "dataType": "list", - "name": "assuranceDocuments", + "dataType": "number", + "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(farmManagementSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" + } + }, + { + "dataType": "number", + "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(farmManagementSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" + } + }, + { + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" + }, + { + "dataType": "image", + "name": "photographicEvidence" + }, + { + "dataType": "boolean", + "name": "dataUploaded", + "description": "" + }, + { + "dataType": "text", + "name": "projectAssuranceDetails", + "description": "", + "validate": "maxSize[5000]" + }, + { + "dataType": "list", + "name": "assuranceDocuments", "columns": [ { "dataType": "document", @@ -9218,8 +9078,8 @@ ] } ], - "modelName": "NHT - Fauna survey", - "title": "Fauna Survey", + "modelName": "NHT - Farm Management Survey", + "title": "Farm Management Survey", "viewModel": [ { "type": "section", @@ -9283,7 +9143,7 @@ "type": "textarea" } ], - "source": "participationInformationTableFau", + "source": "participationInformationTableFms", "type": "table" }, { @@ -9315,7 +9175,7 @@ "type": "row", "items": [ { - "preLabel": "(i) Total Number of baseline fauna surveys completed for this reporting period", + "preLabel": "(i) Total Number of baseline farm management surveys completed for this reporting period", "source": "totalSurveyBaseline", "type": "number" } @@ -9331,7 +9191,7 @@ "type": "row", "items": [ { - "preLabel": "(ii) Total Number of indicator fauna surveys completed for this reporting period", + "preLabel": "(ii) Total Number of indicator farm management surveys completed for this reporting period", "source": "totalSurveyIndicator", "type": "number" } @@ -9345,7 +9205,7 @@ "addRowText": "Add survey", "removeRowText": "Delete this survey", "userAddedRows": true, - "source": "faunaSurveys", + "source": "farmManagementSurveys", "type": "repeat", "items": [ { @@ -9385,7 +9245,7 @@ }, { "type": "repeat", - "source": "faunaDataSets", + "source": "farmManagementDataSets", "userAddedRows": true, "addRowText": "New data set", "removeRowText": "Delete this data set", @@ -9482,8 +9342,8 @@ "type": "row", "items": [ { - "preLabel": "Sites covered by fauna survey", - "source": "sitesCoveredForFaunaSurvey", + "preLabel": "Sites covered by farm management survey", + "source": "sitesCoveredForFarmSurvey", "type": "feature" } ] @@ -9534,7 +9394,7 @@ "type": "row", "items": [ { - "preLabel": "Actual area (ha) / length (km) covered by fauna survey", + "preLabel": "Actual area (ha) / length (km) covered by farm management survey", "source": "areaTreatedHa", "type": "number", "displayOptions": { @@ -9622,31 +9482,6 @@ ] } ] - }, - { - "columns": [ - { - "width": "55%", - "source": "species", - "title": "Target species recorded", - "type": "speciesSelect" - }, - { - "width": "25%", - "source": "individualsOrGroups", - "title": "Individuals or groups?", - "type": "selectOne" - }, - { - "width": "20%", - "source": "numberOfIndividualsOrGroups", - "title": "Number of individuals / groups in fauna survey", - "type": "number" - } - ], - "userAddedRows": true, - "source": "faunaSurveySpeciesTable", - "type": "table" } ] } @@ -9719,12 +9554,12 @@ ] }, "modelName": null, - "templateName": "nhtFaunaSurvey", + "templateName": "nhtFarmManagementSurvey", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Fauna survey", + "name": "NHT - Farm Management Survey", "description": null }, { @@ -9732,150 +9567,389 @@ "template": { "dataModel": [ { - "allowRowDelete": "false", + "name": "faunaSurveys", + "dataType": "list", + "minSize": 1, "columns": [ { + "name": "relatedOutcomes", "dataType": "text", - "name": "participationIndividualsOrGroups", - "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", - "constraints": [ - "Individuals", - "Groups" - ], - "validate": "required" + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } }, { - "dataType": "number", - "name": "participationIndividualNumber", - "defaultValue": 0, - "behaviour": [ - { - "condition": "participationIndividualsOrGroups == \"Individuals\"", - "type": "enable" - } + "dataType": "text", + "name": "baselineOrIndicatorSurvey", + "description": "", + "constraints": [ + "Baseline", + "Indicator" ], - "validate": "required,min[0]" + "validate": "required" }, { "dataType": "text", - "name": "participationGroupNumber", - "behaviour": [ - { - "condition": "participationIndividualsOrGroups == \"Groups\"", - "type": "enable" - } - ], - "constraints": [ - "0", - "1-10", - "11-20", - "21-30", - "31-40", - "41-50" - ] + "name": "surveyObjective", + "description": "What the survey aim to capture? How will the information obtained from the survey be used?", + "validate": "required,maxSize[3000]" }, { - "dataType": "number", - "name": "firstNationIndividualNumber", - "defaultValue": 0, - "behaviour": [ + "dataType": "list", + "name": "faunaDataSets", + "columns": [ { - "condition": "participationIndividualsOrGroups == \"Individuals\"", - "type": "enable" - } - ], - "validate": [ + "name": "dataSetId", + "entityType": "au.org.ala.ecodata.DataSetSummary", + "dataType": "text", + "description": "This section will require the Data Set Name so the Metadata fields in the Data Set Summary tab should be filled out before the Outcome Report is due. More than one dataset if relevant for this Project Baseline could be selected.", + "validate": "required", + "constraints": { + "textProperty": "name", + "valueProperty": "dataSetId", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.custom.dataSets" + }, + "filter": { + "namespace": "dataSet", + "expression": "dataSet.serviceId == 13 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" + } + } + }, + "behaviour": [ + { + "type": "pre_populate", + "config": { + "waitForInitialisation": true, + "source": { + "url": "/site/geojson", + "params": [ + { + "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.siteId", + "name": "id", + "type": "computed", + "required": true + } + ] + }, + "target": { + "type": "singleValue", + "name": "sitesCoveredForFaunaSurvey" + } + } + }, + { + "type": "pre_populate", + "config": { + "waitForInitialisation": true, + "source": { + "url": "/project/getSpeciesRecordsFromActivity", + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + }, + { + "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.activityId", + "name": "activityId", + "type": "computed", + "required": true + } + ] + }, + "mapping": [ + { + "source-path": "species", + "target": "species" + }, + { + "source-path": "individualsOrGroups", + "target": "individualsOrGroups" + }, + { + "source-path": "individualCount", + "target": "numberOfIndividualsOrGroups" + } + ], + "target": { + "type": "singleLoad", + "name": "faunaSurveySpeciesTable" + } + } + } + ] + }, { - "rule": "required" + "columns": [ + { + "dataType": "species", + "name": "species", + "validate": "required" + }, + { + "dataType": "text", + "name": "individualsOrGroups", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "numberOfIndividualsOrGroups", + "validate": "required,min[0]" + } + ], + "dataType": "list", + "name": "faunaSurveySpeciesTable" }, { - "rule": "min[0]" + "name": "projectBaselines", + "dataType": "stringList", + "description": "Select the relevant Project Baseline as listed in the Monitoring Methodology section of the MERI Plan.", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.baselines" + }, + "constraints": { + "textProperty": "baseline", + "valueProperty": "code", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.custom.details.baseline.rows" + } + } + } }, { - "param": { - "expression": "participationIndividualNumber", - "type": "computed" + "name": "investmentPriorities2", + "dataType": "stringList", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.investmentPriorities" }, - "rule": "max" - } - ] - }, - { - "dataType": "text", - "name": "firstNationGroupNumber", - "behaviour": [ + "constraints": { + "type": "pre-populated", + "config": { + "source": { + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + } + ], + "url": "/project/listProjectInvestmentPriorities/" + } + } + } + }, { - "condition": "participationIndividualsOrGroups == \"Groups\"", - "type": "enable" - } - ], - "constraints": [ - "0", - "1-10", - "11-20", - "21-30", - "31-40", - "41-50" - ], - "validate": [ + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, { - "rule": "required" + "dataType": "date", + "name": "activitiesStartDate", + "description": "Specific the dates these events were held on.", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.startDate" + } }, { - "param": { - "expression": "participationGroupNumber", - "type": "computed" - }, - "rule": "max", - "message": "The number of first nation participants cannot be greater than the total number of participants" - } - ] - }, - { - "dataType": "text", - "name": "participationDetails", - "validate": "required, maxSize[3000]" - } - ], - "dataType": "list", - "name": "participationInformationTableFna" - }, - { - "columns": [ - { - "dataType": "number", - "name": "noDaysConductingCulturalPractices", - "description": "", - "validate": "required" - }, - { - "dataType": "text", - "name": "individualsOrGroups", - "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", - "constraints": [ - "Individuals", - "Groups" - ], - "validate": "required" - }, - { - "dataType": "number", - "name": "noOfParticipants", - "defaultValue": 0, - "behaviour": [ + "dataType": "date", + "name": "activitiesEndDate", + "description": "Specific the dates these events were held on.", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.endDate" + } + }, { - "condition": "individualsOrGroups == \"Individuals\"", - "type": "enable" - } - ], - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "groupParticipants", - "behaviour": [ + "dataType": "feature", + "name": "sitesCoveredForFaunaSurvey", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + }, { - "condition": "individualsOrGroups == \"Groups\"", + "computed": { + "expression": "$geom.areaHa(sitesCoveredForFaunaSurvey)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesCoveredForFaunaSurvey)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKm" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "text", + "description": "Select the technique used to conduct the survey. If the EMSA Application tool was not used, you should select 'Other'.", + "name": "emsaProtocol", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.protocol" + }, + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.protocols" + } + } + } + }, + { + "dataType": "stringList", + "description": "Describe the technique (if Other) was selected.", + "name": "otherEmsaProtocol", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methods" + } + }, + { + "dataType": "text", + "name": "surveyMethodology", + "description": "Provide more details on what is being done.", + "validate": "required,maxSize[3000]", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methodDescription" + } + } + ], + "minSize": 1 + } + ] + }, + { + "allowRowDelete": "false", + "columns": [ + { + "dataType": "text", + "name": "participationIndividualsOrGroups", + "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "participationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "participationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", "type": "enable" } ], @@ -9890,11 +9964,11 @@ }, { "dataType": "number", - "name": "noOfFirstNationsParticipants", + "name": "firstNationIndividualNumber", "defaultValue": 0, "behaviour": [ { - "condition": "individualsOrGroups == \"Individuals\"", + "condition": "participationIndividualsOrGroups == \"Individuals\"", "type": "enable" } ], @@ -9907,7 +9981,7 @@ }, { "param": { - "expression": "noOfParticipants", + "expression": "participationIndividualNumber", "type": "computed" }, "rule": "max" @@ -9916,10 +9990,10 @@ }, { "dataType": "text", - "name": "groupFirstNationsParticipants", + "name": "firstNationGroupNumber", "behaviour": [ { - "condition": "individualsOrGroups == \"Groups\"", + "condition": "participationIndividualsOrGroups == \"Groups\"", "type": "enable" } ], @@ -9937,7 +10011,7 @@ }, { "param": { - "expression": "groupParticipants", + "expression": "participationGroupNumber", "type": "computed" }, "rule": "max", @@ -9945,578 +10019,252 @@ } ] }, - { - "dataType": "date", - "name": "activitiesStartDate", - "description": "Specific the dates these events were held on.", - "validate": "required" - }, - { - "dataType": "date", - "name": "activitiesEndDate", - "description": "", - "validate": [ - { - "rule": "required" - }, - { - "rule": "future", - "param": { - "expression": "formatDateForValidation(activitiesStartDate)", - "type": "computed" - } - } - ] - }, { "dataType": "text", - "name": "siteVisit", - "constraints": [ - "Single", - "Multiple" - ], - "validate": "required" - }, + "name": "participationDetails", + "validate": "required, maxSize[3000]" + } + ], + "dataType": "list", + "name": "participationInformationTableFau" + }, + { + "dataType": "number", + "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(faunaSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" + } + }, + { + "dataType": "number", + "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(faunaSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" + } + }, + { + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" + }, + { + "dataType": "image", + "name": "photographicEvidence" + }, + { + "dataType": "boolean", + "name": "dataUploaded", + "description": "" + }, + { + "dataType": "text", + "name": "projectAssuranceDetails", + "description": "", + "validate": "maxSize[5000]" + }, + { + "dataType": "list", + "name": "assuranceDocuments", + "columns": [ { - "dataType": "number", - "name": "noOfSitesActivityOccurred", - "description": "", - "validate": "required" - }, - { - "dataType": "text", - "name": "typeOfSite", - "constraints": [ - "Sacred", - "Food source", - "Ceremonial", - "Other" - ], - "validate": "required" - }, + "dataType": "document", + "name": "attachments", + "description": "Please attach any Evidence of Service Delivery here." + } + ] + } + ], + "modelName": "NHT - Fauna survey", + "title": "Fauna Survey", + "viewModel": [ + { + "type": "section", + "items": [ { - "dataType": "text", - "name": "otherTypeOfSite", - "description": "", - "behaviour": [ + "type": "row", + "items": [ { - "condition": "typeOfSite == \"Other\"", - "type": "enable" + "type": "literal", + "source": "

Participation information

" } - ], - "validate": "required,maxSize[100]" - }, - { - "dataType": "feature", - "name": "sitesUndertakeForFirstNations", - "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." - }, - { - "computed": { - "expression": "$geom.areaHa(sitesUndertakeForFirstNations)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHa", - "units": "ha", - "decimalPlaces": 3 + ] }, { - "computed": { - "expression": "$geom.lengthKm(sitesUndertakeForFirstNations)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKm", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ + "disableTableUpload": true, + "columns": [ { - "condition": "lengthTreatedKm > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" + }, + { + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "firstNationIndividualNumber", + "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHa" - }, - "dataType": "number", - "name": "areaTreatedHa", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "min[0]" + ], + "source": "participationInformationTableFau", + "type": "table" }, { - "dataType": "text", - "name": "mappingNotAlignedReason", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ + "type": "row", + "items": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" + "type": "literal", + "source": "

Survey information

Before completing this section, please ensure you have created a Data Set Summary information for every data set produced by the surveys you intend to report

" } ] }, { - "dataType": "text", - "name": "mappingNotAlignedComments", - "validate": "required,maxSize[100]", - "behaviour": [ + "type": "row", + "items": [ { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReason" + "type": "literal", + "source": "

Totals Summary

" } ] }, { - "dataType": "document", - "name": "extraMappingDetails", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ + "type": "row", + "items": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(i) Total Number of baseline fauna surveys completed for this reporting period", + "source": "totalSurveyBaseline", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(ii) Total Number of indicator fauna surveys completed for this reporting period", + "source": "totalSurveyIndicator", + "type": "number" + } + ] + } + ] } ] }, { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKm" - }, - "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 - }, - { - "columns": [ + "addRowText": "Add survey", + "removeRowText": "Delete this survey", + "userAddedRows": true, + "source": "faunaSurveys", + "type": "repeat", + "items": [ { - "dataType": "text", - "name": "activityTypeUndertaken", - "constraints": [ - "Survey", - "Site management", - "Assessment", - "Cultural event", - "Curation", - "Other" + "type": "row", + "items": [ + { + "type": "col", + "items": [ + { + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s relates to this survey?" + } + ] + }, + { + "type": "col", + "items": [ + { + "source": "baselineOrIndicatorSurvey", + "type": "selectOne", + "preLabel": "Baseline survey or indicator (follow-up) survey?" + } + ] + } ] }, { - "dataType": "text", - "name": "otherActivityTypeUndertaken", - "description": "", - "behaviour": [ + "type": "row", + "items": [ { - "condition": "activityTypeUndertaken == \"Other\"", - "type": "enable" + "source": "surveyObjective", + "preLabel": "Survey objective", + "type": "text" } - ], - "validate": "required,maxSize[100]" + ] }, { - "dataType": "text", - "name": "purposeOfActivity", - "description": "", - "validate": "required,maxSize[300]" - }, - { - "dataType": "text", - "name": "activityDescription", - "description": "", - "validate": "maxSize[300]" - }, - { - "dataType": "text", - "name": "surveyObjective", - "description": "", - "validate": "maxSize[300]" - }, - { - "dataType": "text", - "name": "surveyTechnique", - "description": "", - "validate": "maxSize[300]" - }, - { - "dataType": "text", - "name": "siteCondition", - "constraints": [ - "Poor", - "Fair", - "Good", - "Excellent" - ], - "validate": "" - }, - { - "dataType": "text", - "name": "siteConditionDetails", - "description": "", - "validate": "maxSize[300]" - } - ], - "dataType": "list", - "name": "firstNationsDetails" - }, - { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "label", - "type": "pre-populated", - "config": { - "source": { - "url": "/project/outcomesByScores", - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - }, - { - "expression": "scores", - "name": "scoreIds", - "type": "computed" - } - ] - } - } - } - }, - { - "name": "investmentPriorities2", - "dataType": "text", - "description": "", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.investmentPriorities" - } - } - } - }, - { - "dataType": "text", - "name": "otherInvestmentPriority", - "description": "Describe the investment priority (if Other) was selected", - "behaviour": [ - { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" - } - ] - } - ], - "dataType": "list", - "name": "firstNationAreasControlled" - }, - { - "name": "sitePrepCountHeader", - "type": "number", - "decimalPlaces": 0, - "computed": { - "expression": "count(firstNationAreasControlled, \"threatenedEcologicalCommunity\")" - } - }, - { - "dataType": "number", - "name": "totalNoDaysCulturalPractices", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(firstNationAreasControlled, \"noDaysConductingCulturalPractices\")" - } - }, - { - "dataType": "text", - "name": "comments", - "validate": "maxSize[1500]" - }, - { - "dataType": "image", - "name": "photographicEvidence" - }, - { - "dataType": "boolean", - "name": "dataUploaded", - "description": "" - }, - { - "name": "projectAssuranceDetails", - "dataType": "text", - "validate": "maxSize[5000]" - }, - { - "dataType": "list", - "name": "assuranceDocuments", - "columns": [ - { - "dataType": "document", - "name": "attachments", - "description": "Please attach any Evidence of Service Delivery here." - } - ] - } - ], - "modelName": "NHT - First nations australians cultural practices", - "title": "First Nations Australians Cultural Practices", - "viewModel": [ - { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Participation information

" - } - ] - }, - { - "disableTableUpload": true, - "columns": [ - { - "width": "10%", - "source": "participationIndividualsOrGroups", - "title": "Are individuals or groups delivering this service?", - "type": "selectOne" - }, - { - "width": "20%", - "type": "col", - "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ - { - "source": "participationIndividualNumber", - "type": "number" - }, - { - "source": "participationGroupNumber", - "type": "selectOne" - } - ] - }, - { - "type": "col", - "width": "20%", - "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ - { - "source": "firstNationIndividualNumber", - "type": "number" - }, - { - "source": "firstNationGroupNumber", - "type": "selectOne" - } - ] - }, - { - "width": "20%", - "source": "participationDetails", - "rows": 4, - "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", - "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", - "type": "textarea" - } - ], - "source": "participationInformationTableFna", - "type": "table" - }, - { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Totals Summary

" - } - ] - }, - { - "type": "row", - "items": [ - { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", + "type": "repeat", + "source": "faunaDataSets", + "userAddedRows": true, + "addRowText": "New data set", + "removeRowText": "Delete this data set", "items": [ - { - "preLabel": "(i) Total number of days conducting cultural practices during this reporting period", - "source": "totalNoDaysCulturalPractices", - "type": "number" - } - ] - } - ] - } - ] - }, - { - "addRowText": "Add new First Nations Cultural Practice", - "userAddedRows": true, - "source": "firstNationAreasControlled", - "type": "repeat", - "items": [ - { - "type": "row", - "items": [ - { - "css": "span3", - "type": "col", - "items": [ - { - "type": "row", - "items": [ - { - "source": "relatedOutcomes", - "type": "selectOne", - "preLabel": "Which outcome statement/s does this activity relate to?" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" - } - ] - } - ] - } - ] - }, - { - "type": "row", - "css": "border-bottom", - "items": [ - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Number of days conducting cultural practices", - "source": "noDaysConductingCulturalPractices", - "type": "number" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Site Visit", - "source": "siteVisit", - "type": "selectOne" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Number of sites where activity occurred", - "source": "noOfSitesActivityOccurred", - "type": "number" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Type of site", - "source": "typeOfSite", - "type": "selectOne" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Type of site (If Other)", - "source": "otherTypeOfSite", - "type": "text" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Site/s where activity was undertaken", - "source": "sitesUndertakeForFirstNations", - "type": "feature" - } - ] - }, { "type": "row", + "css": "border-bottom", "items": [ { - "source": "calculatedAreaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" + "type": "col", + "items": [ + { + "source": "dataSetId", + "type": "selectOne", + "preLabel": "Please select the data set produced by this survey. Note it must have already been entered on the Data Set Summary tab." + } + ] } ] }, @@ -10524,321 +10272,321 @@ "type": "row", "items": [ { - "source": "calculatedLengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "projectBaselines", + "type": "selectMany", + "preLabel": "Which project baseline/s relate to this survey?", + "readonly": "readonly" + } + ] + } + ] + }, { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetails", - "type": "document" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" + } + ] + } + ] + }, { - "preLabel": "Actual area (ha) / length (km) where activity has been undertaken", - "source": "areaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Activity start date", + "source": "activitiesStartDate", + "type": "date" + } + ] + } + ] + }, { - "source": "lengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Activity end date", + "source": "activitiesEndDate", + "type": "date" + } + ] + } + ] + }, { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", - "type": "selectOne" - } - ] - }, - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Sites covered by fauna survey", + "source": "sitesCoveredForFaunaSurvey", + "type": "feature" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedLengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" + } + ] + } + ] + }, { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Actual area (ha) / length (km) covered by fauna survey", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "lengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 + } + ] + } + ] + }, { - "preLabel": "Activity start date", - "source": "activitiesStartDate", - "type": "date" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Survey technique", + "source": "emsaProtocol", + "type": "selectOne", + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Survey technique (if Other)", + "source": "otherEmsaProtocol", + "type": "select2Many" + } + ] + } + ] + }, { - "preLabel": "Activity end date", - "source": "activitiesEndDate", - "type": "date" + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "surveyMethodology", + "preLabel": "Survey methodology", + "type": "text" + } + ] + } + ] } ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ + }, { - "type": "row", - "items": [ + "columns": [ { - "preLabel": "Individuals or groups?", + "width": "55%", + "source": "species", + "title": "Target species recorded", + "type": "speciesSelect" + }, + { + "width": "25%", "source": "individualsOrGroups", + "title": "Individuals or groups?", "type": "selectOne" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ + }, { - "preLabel": "Number of participants", - "source": "noOfParticipants", + "width": "20%", + "source": "numberOfIndividualsOrGroups", + "title": "Number of individuals / groups in fauna survey", "type": "number" } - ] - }, - { - "type": "row", - "items": [ - { - "source": "groupParticipants", - "type": "selectOne" - } - ] + ], + "userAddedRows": true, + "source": "faunaSurveySpeciesTable", + "type": "table" } ] - }, + } + ] + }, + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Number of First Nations participants", - "source": "noOfFirstNationsParticipants", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "groupFirstNationsParticipants", - "type": "selectOne" - } - ] - } - ] + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" } ] }, { - "columns": [ - { - "width": "15%", - "title": "Type of activity undertaken", - "type": "col", - "items": [ - { - "type": "row", - "items": [ - { - "source": "activityTypeUndertaken", - "type": "selectOne" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "otherActivityTypeUndertaken", - "title": "Type of activity (if other)", - "type": "textarea" - } - ] - } - ] - }, - { - "width": "15%", - "source": "purposeOfActivity", - "title": "Purpose of activity", - "type": "textarea" - }, - { - "width": "15%", - "source": "activityDescription", - "title": "Detailed description of activity", - "type": "textarea" - }, - { - "width": "15%", - "source": "surveyObjective", - "title": "Survey/assessment objective (if applicable)", - "type": "textarea" - }, + "type": "row", + "items": [ { - "width": "15%", - "source": "surveyTechnique", - "title": "Survey/assessment technique (if applicable)", - "type": "textarea" - }, + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ { - "width": "10%", - "source": "siteCondition", - "title": "Site condition (if applicable)", - "type": "selectOne" + "type": "literal", + "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." }, { - "width": "15%", - "source": "siteConditionDetails", - "title": "Site condition further details (if applicable)", - "type": "textarea" + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" } - ], - "userAddedRows": true, - "source": "firstNationsDetails", - "type": "table" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" - } - ] - }, - { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." + ] }, { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." - } - ] - }, - { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, { - "title": "Attached documents", - "source": "attachments", - "type": "document" + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" + } + ] } ] } ] }, "modelName": null, - "templateName": "nhtFirstNation", + "templateName": "nhtFaunaSurvey", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - First nations australians cultural practices", + "name": "NHT - Fauna survey", "description": null }, { @@ -10846,394 +10594,139 @@ "template": { "dataModel": [ { - "name": "floraSurveys", - "dataType": "list", - "minSize": 1, + "allowRowDelete": "false", "columns": [ - { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "outcomes" - } - } - } - }, { "dataType": "text", - "name": "baselineOrIndicatorSurvey", - "description": "", + "name": "participationIndividualsOrGroups", + "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", "constraints": [ - "Baseline", - "Indicator" + "Individuals", + "Groups" ], "validate": "required" }, { - "dataType": "text", - "name": "surveyObjective", - "description": "What the survey aim to capture? How will the information obtained from the survey be used?", - "validate": "required,maxSize[3000]" + "dataType": "number", + "name": "participationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": "required,min[0]" }, { - "dataType": "number", - "name": "numberOfSurveys", - "validate": "required,min[1],max[1]", - "defaultValue": 1, - "readonly": true + "dataType": "text", + "name": "participationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ] }, { - "dataType": "list", - "name": "floraDataSets", - "columns": [ + "dataType": "number", + "name": "firstNationIndividualNumber", + "defaultValue": 0, + "behaviour": [ { - "name": "dataSetId", - "entityType": "au.org.ala.ecodata.DataSetSummary", - "dataType": "text", - "description": "This section will require the Data Set Name so the Metadata fields in the Data Set Summary tab should be filled out before the Outcome Report is due. More than one dataset if relevant for this Project Baseline could be selected.", - "validate": "required", - "constraints": { - "textProperty": "name", - "valueProperty": "dataSetId", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.custom.dataSets" - }, - "filter": { - "namespace": "dataSet", - "expression": "dataSet.serviceId == 15 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" - } - } - }, - "behaviour": [ - { - "type": "pre_populate", - "config": { - "waitForInitialisation": true, - "source": { - "url": "/project/getSpeciesRecordsFromActivity", - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - }, - { - "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.activityId", - "name": "activityId", - "type": "computed", - "required": true - } - ] - }, - "mapping": [ - { - "source-path": "species", - "target": "species" - }, - { - "source-path": "threatenedEcologicalCommunity", - "target": "threatenedEcologicalCommunity" - }, - { - "source-path": "individualsOrGroups", - "target": "individualsOrGroups" - }, - { - "source-path": "individualCount", - "target": "numberOfIndividualsOrGroups" - } - ], - "target": { - "type": "singleLoad", - "name": "floraSurveySpeciesTable" - } - } - }, - { - "type": "pre_populate", - "config": { - "waitForInitialisation": true, - "source": { - "url": "/site/geojson", - "params": [ - { - "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.siteId", - "name": "id", - "type": "computed", - "required": true - } - ] - }, - "target": { - "type": "singleValue", - "name": "sitesCoveredForFloraSurvey" - } - } - } - ] - }, + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": [ { - "columns": [ - { - "dataType": "species", - "name": "species", - "validate": "required" - }, - { - "dataType": "text", - "name": "threatenedEcologicalCommunity", - "validate": "maxSize[300]" - }, - { - "dataType": "text", - "name": "individualsOrGroups", - "constraints": [ - "Individuals", - "Groups" - ], - "validate": "required" - }, - { - "dataType": "number", - "name": "numberOfIndividualsOrGroups", - "validate": "required,min[0]" - } - ], - "dataType": "list", - "name": "floraSurveySpeciesTable" + "rule": "required" }, { - "name": "projectBaselines", - "dataType": "stringList", - "description": "Select the relevant Project Baseline as listed in the Monitoring Methodology section of the MERI Plan.", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.baselines" - }, - "constraints": { - "textProperty": "baseline", - "valueProperty": "code", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.custom.details.baseline.rows" - } - } - } + "rule": "min[0]" }, { - "name": "investmentPriorities2", - "dataType": "stringList", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.investmentPriorities" + "param": { + "expression": "participationIndividualNumber", + "type": "computed" }, - "constraints": { - "type": "pre-populated", - "config": { - "source": { - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - } - ], - "url": "/project/listProjectInvestmentPriorities/" - } - } - } - }, - { - "dataType": "text", - "name": "otherInvestmentPriority", - "behaviour": [ - { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" - } - ] - }, - { - "dataType": "date", - "name": "activitiesStartDate", - "description": "Specific the dates these events were held on.", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.startDate" - } - }, + "rule": "max" + } + ] + }, + { + "dataType": "text", + "name": "firstNationGroupNumber", + "behaviour": [ { - "dataType": "date", - "name": "activitiesEndDate", - "description": "Specific the dates these events were held on.", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.endDate" - } - }, + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ], + "validate": [ { - "dataType": "feature", - "name": "sitesCoveredForFloraSurvey", - "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + "rule": "required" }, { - "computed": { - "expression": "$geom.areaHa(sitesCoveredForFloraSurvey)" + "param": { + "expression": "participationGroupNumber", + "type": "computed" }, - "dataType": "number", - "name": "calculatedAreaTreatedHa", - "units": "ha", - "decimalPlaces": 3 - }, + "rule": "max", + "message": "The number of first nation participants cannot be greater than the total number of participants" + } + ] + }, + { + "dataType": "text", + "name": "participationDetails", + "validate": "required, maxSize[3000]" + } + ], + "dataType": "list", + "name": "participationInformationTableFna" + }, + { + "columns": [ + { + "dataType": "number", + "name": "noDaysConductingCulturalPractices", + "description": "", + "validate": "required" + }, + { + "dataType": "text", + "name": "individualsOrGroups", + "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "noOfParticipants", + "defaultValue": 0, + "behaviour": [ { - "computed": { - "expression": "$geom.lengthKm(sitesCoveredForFloraSurvey)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKm", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKm > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHa" - }, - "dataType": "number", - "name": "areaTreatedHa", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "mappingNotAlignedReason", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, - { - "dataType": "text", - "name": "mappingNotAlignedComments", - "validate": "required,maxSize[100]", - "behaviour": [ - { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReason" - } - ] - }, - { - "dataType": "document", - "name": "extraMappingDetails", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "$geom.lengthKm(sitesCoveredForFloraSurvey)" - }, - "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 - }, - { - "dataType": "text", - "description": "Select the technique used to conduct the survey. If the EMSA Application tool was not used, you should select 'Other'.", - "name": "emsaProtocol", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.protocol" - }, - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.protocols" - } - } - } - }, - { - "dataType": "stringList", - "description": "Describe the technique (if Other) was selected.", - "name": "otherEmsaProtocol", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methods" - } - }, - { - "dataType": "text", - "name": "surveyMethodology", - "description": "Provide more details on what is being done.", - "validate": "required,maxSize[3000]", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methodDescription" - } - } - ], - "minSize": 1 - } - ] - }, - { - "allowRowDelete": "false", - "columns": [ - { - "dataType": "text", - "name": "participationIndividualsOrGroups", - "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", - "constraints": [ - "Individuals", - "Groups" - ], - "validate": "required" - }, - { - "dataType": "number", - "name": "participationIndividualNumber", - "defaultValue": 0, - "behaviour": [ - { - "condition": "participationIndividualsOrGroups == \"Individuals\"", + "condition": "individualsOrGroups == \"Individuals\"", "type": "enable" } ], @@ -11241,10 +10734,10 @@ }, { "dataType": "text", - "name": "participationGroupNumber", + "name": "groupParticipants", "behaviour": [ { - "condition": "participationIndividualsOrGroups == \"Groups\"", + "condition": "individualsOrGroups == \"Groups\"", "type": "enable" } ], @@ -11259,11 +10752,11 @@ }, { "dataType": "number", - "name": "firstNationIndividualNumber", + "name": "noOfFirstNationsParticipants", "defaultValue": 0, "behaviour": [ { - "condition": "participationIndividualsOrGroups == \"Individuals\"", + "condition": "individualsOrGroups == \"Individuals\"", "type": "enable" } ], @@ -11276,7 +10769,7 @@ }, { "param": { - "expression": "participationIndividualNumber", + "expression": "noOfParticipants", "type": "computed" }, "rule": "max" @@ -11285,10 +10778,10 @@ }, { "dataType": "text", - "name": "firstNationGroupNumber", + "name": "groupFirstNationsParticipants", "behaviour": [ { - "condition": "participationIndividualsOrGroups == \"Groups\"", + "condition": "individualsOrGroups == \"Groups\"", "type": "enable" } ], @@ -11306,7 +10799,7 @@ }, { "param": { - "expression": "participationGroupNumber", + "expression": "groupParticipants", "type": "computed" }, "rule": "max", @@ -11315,583 +10808,3121 @@ ] }, { - "dataType": "text", - "name": "participationDetails", - "validate": "required, maxSize[3000]" - } - ], - "dataType": "list", - "name": "participationInformationTableFls" - }, - { - "dataType": "number", - "name": "totalSurveyBaseline", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(floraSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" - } - }, - { - "dataType": "number", - "name": "totalSurveyIndicator", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(floraSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" - } - }, - { - "dataType": "text", - "name": "comments", - "validate": "maxSize[1500]" - }, - { - "dataType": "image", - "name": "photographicEvidence" - }, - { - "dataType": "boolean", - "name": "dataUploaded", - "description": "" - }, - { - "dataType": "text", - "name": "projectAssuranceDetails", - "description": "", - "validate": "maxSize[5000]" - }, - { - "dataType": "list", - "name": "assuranceDocuments", - "columns": [ - { - "dataType": "document", - "name": "attachments", - "description": "Please attach any Evidence of Service Delivery here." - } - ] - } - ], - "modelName": "NHT - Flora survey", - "title": "Flora Survey", - "viewModel": [ - { - "type": "section", - "items": [ + "dataType": "date", + "name": "activitiesStartDate", + "description": "Specific the dates these events were held on.", + "validate": "required" + }, { - "type": "row", - "items": [ + "dataType": "date", + "name": "activitiesEndDate", + "description": "", + "validate": [ { - "type": "literal", - "source": "

Participation information

" + "rule": "required" + }, + { + "rule": "future", + "param": { + "expression": "formatDateForValidation(activitiesStartDate)", + "type": "computed" + } } ] }, { - "disableTableUpload": true, - "columns": [ - { - "width": "10%", - "source": "participationIndividualsOrGroups", - "title": "Are individuals or groups delivering this service?", - "type": "selectOne" - }, - { - "width": "20%", - "type": "col", - "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ - { - "source": "participationIndividualNumber", - "type": "number" - }, - { - "source": "participationGroupNumber", - "type": "selectOne" - } - ] - }, - { - "type": "col", - "width": "20%", - "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ - { - "source": "firstNationIndividualNumber", - "type": "number" - }, - { - "source": "firstNationGroupNumber", - "type": "selectOne" - } - ] - }, + "dataType": "text", + "name": "siteVisit", + "constraints": [ + "Single", + "Multiple" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "noOfSitesActivityOccurred", + "description": "", + "validate": "required" + }, + { + "dataType": "text", + "name": "typeOfSite", + "constraints": [ + "Sacred", + "Food source", + "Ceremonial", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "otherTypeOfSite", + "description": "", + "behaviour": [ { - "width": "20%", - "source": "participationDetails", - "rows": 4, - "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", - "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", - "type": "textarea" + "condition": "typeOfSite == \"Other\"", + "type": "enable" } ], - "source": "participationInformationTableFls", - "type": "table" + "validate": "required,maxSize[100]" }, { - "type": "row", - "items": [ + "dataType": "feature", + "name": "sitesUndertakeForFirstNations", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesUndertakeForFirstNations)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesUndertakeForFirstNations)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ { - "type": "literal", - "source": "

Survey information

Before completing this section, please ensure you have created a Data Set Summary information for every data set produced by the surveys you intend to report

" + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } } ] }, { - "type": "row", - "items": [ + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ { - "type": "literal", - "source": "

Totals Summary

" + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" } ] }, { - "type": "row", - "items": [ + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(i) Total Number of baseline flora surveys completed for this reporting period", - "source": "totalSurveyBaseline", - "type": "number" - } - ] - } - ] - }, + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(ii) Total Number of indicator flora surveys completed for this reporting period", - "source": "totalSurveyIndicator", - "type": "number" - } - ] - } - ] + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" } ] }, { - "addRowText": "Add survey", - "removeRowText": "Delete this survey", - "userAddedRows": true, - "source": "floraSurveys", - "type": "repeat", - "items": [ + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKm" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + }, + { + "columns": [ { - "type": "row", - "items": [ - { - "type": "col", - "items": [ - { - "source": "relatedOutcomes", - "type": "selectOne", - "preLabel": "Which outcome statement/s relates to this survey?" - } - ] - }, - { - "type": "col", - "items": [ - { - "source": "baselineOrIndicatorSurvey", - "type": "selectOne", - "preLabel": "Baseline survey or indicator (follow-up) survey?" - } - ] - } + "dataType": "text", + "name": "activityTypeUndertaken", + "constraints": [ + "Survey", + "Site management", + "Assessment", + "Cultural event", + "Curation", + "Other" ] }, { - "type": "row", - "items": [ + "dataType": "text", + "name": "otherActivityTypeUndertaken", + "description": "", + "behaviour": [ { - "source": "surveyObjective", - "preLabel": "Survey objective", - "type": "text" + "condition": "activityTypeUndertaken == \"Other\"", + "type": "enable" } - ] + ], + "validate": "required,maxSize[100]" }, { - "type": "repeat", - "source": "floraDataSets", - "userAddedRows": true, - "addRowText": "New data set", - "removeRowText": "Delete this data set", - "items": [ - { - "type": "row", - "css": "border-bottom", - "items": [ - { - "type": "col", - "items": [ - { - "source": "dataSetId", - "type": "selectOne", - "preLabel": "Please select the data set produced by this survey. Note it must have already been entered on the Data Set Summary tab." - } - ] - } - ] - }, - { + "dataType": "text", + "name": "purposeOfActivity", + "description": "", + "validate": "required,maxSize[300]" + }, + { + "dataType": "text", + "name": "activityDescription", + "description": "", + "validate": "maxSize[300]" + }, + { + "dataType": "text", + "name": "surveyObjective", + "description": "", + "validate": "maxSize[300]" + }, + { + "dataType": "text", + "name": "surveyTechnique", + "description": "", + "validate": "maxSize[300]" + }, + { + "dataType": "text", + "name": "siteCondition", + "constraints": [ + "Poor", + "Fair", + "Good", + "Excellent" + ], + "validate": "" + }, + { + "dataType": "text", + "name": "siteConditionDetails", + "description": "", + "validate": "maxSize[300]" + } + ], + "dataType": "list", + "name": "firstNationsDetails" + }, + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "label", + "type": "pre-populated", + "config": { + "source": { + "url": "/project/outcomesByScores", + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + }, + { + "expression": "scores", + "name": "scoreIds", + "type": "computed" + } + ] + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "description": "Describe the investment priority (if Other) was selected", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + } + ], + "dataType": "list", + "name": "firstNationAreasControlled" + }, + { + "name": "sitePrepCountHeader", + "type": "number", + "decimalPlaces": 0, + "computed": { + "expression": "count(firstNationAreasControlled, \"threatenedEcologicalCommunity\")" + } + }, + { + "dataType": "number", + "name": "totalNoDaysCulturalPractices", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(firstNationAreasControlled, \"noDaysConductingCulturalPractices\")" + } + }, + { + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" + }, + { + "dataType": "image", + "name": "photographicEvidence" + }, + { + "dataType": "boolean", + "name": "dataUploaded", + "description": "" + }, + { + "name": "projectAssuranceDetails", + "dataType": "text", + "validate": "maxSize[5000]" + }, + { + "dataType": "list", + "name": "assuranceDocuments", + "columns": [ + { + "dataType": "document", + "name": "attachments", + "description": "Please attach any Evidence of Service Delivery here." + } + ] + } + ], + "modelName": "NHT - First nations australians cultural practices", + "title": "First Nations Australians Cultural Practices", + "viewModel": [ + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Participation information

" + } + ] + }, + { + "disableTableUpload": true, + "columns": [ + { + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" + }, + { + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "firstNationIndividualNumber", + "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } + ], + "source": "participationInformationTableFna", + "type": "table" + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(i) Total number of days conducting cultural practices during this reporting period", + "source": "totalNoDaysCulturalPractices", + "type": "number" + } + ] + } + ] + } + ] + }, + { + "addRowText": "Add new First Nations Cultural Practice", + "userAddedRows": true, + "source": "firstNationAreasControlled", + "type": "repeat", + "items": [ + { + "type": "row", + "items": [ + { + "css": "span3", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s does this activity relate to?" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" + } + ] + } + ] + } + ] + }, + { + "type": "row", + "css": "border-bottom", + "items": [ + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Number of days conducting cultural practices", + "source": "noDaysConductingCulturalPractices", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Site Visit", + "source": "siteVisit", + "type": "selectOne" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Number of sites where activity occurred", + "source": "noOfSitesActivityOccurred", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Type of site", + "source": "typeOfSite", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Type of site (If Other)", + "source": "otherTypeOfSite", + "type": "text" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Site/s where activity was undertaken", + "source": "sitesUndertakeForFirstNations", + "type": "feature" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedLengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Actual area (ha) / length (km) where activity has been undertaken", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "lengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Activity start date", + "source": "activitiesStartDate", + "type": "date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Activity end date", + "source": "activitiesEndDate", + "type": "date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Individuals or groups?", + "source": "individualsOrGroups", + "type": "selectOne" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Number of participants", + "source": "noOfParticipants", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "groupParticipants", + "type": "selectOne" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Number of First Nations participants", + "source": "noOfFirstNationsParticipants", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "groupFirstNationsParticipants", + "type": "selectOne" + } + ] + } + ] + } + ] + }, + { + "columns": [ + { + "width": "15%", + "title": "Type of activity undertaken", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "activityTypeUndertaken", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "otherActivityTypeUndertaken", + "title": "Type of activity (if other)", + "type": "textarea" + } + ] + } + ] + }, + { + "width": "15%", + "source": "purposeOfActivity", + "title": "Purpose of activity", + "type": "textarea" + }, + { + "width": "15%", + "source": "activityDescription", + "title": "Detailed description of activity", + "type": "textarea" + }, + { + "width": "15%", + "source": "surveyObjective", + "title": "Survey/assessment objective (if applicable)", + "type": "textarea" + }, + { + "width": "15%", + "source": "surveyTechnique", + "title": "Survey/assessment technique (if applicable)", + "type": "textarea" + }, + { + "width": "10%", + "source": "siteCondition", + "title": "Site condition (if applicable)", + "type": "selectOne" + }, + { + "width": "15%", + "source": "siteConditionDetails", + "title": "Site condition further details (if applicable)", + "type": "textarea" + } + ], + "userAddedRows": true, + "source": "firstNationsDetails", + "type": "table" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." + }, + { + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" + } + ] + } + ] + }, + "modelName": null, + "templateName": "nhtFirstNation", + "optional": true, + "optionalQuestionText": null, + "title": null, + "collapsibleHeading": null, + "name": "NHT - First nations australians cultural practices", + "description": null + }, + { + "collapsedByDefault": false, + "template": { + "dataModel": [ + { + "name": "floraSurveys", + "dataType": "list", + "minSize": 1, + "columns": [ + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "dataType": "text", + "name": "baselineOrIndicatorSurvey", + "description": "", + "constraints": [ + "Baseline", + "Indicator" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "surveyObjective", + "description": "What the survey aim to capture? How will the information obtained from the survey be used?", + "validate": "required,maxSize[3000]" + }, + { + "dataType": "number", + "name": "numberOfSurveys", + "validate": "required,min[1],max[1]", + "defaultValue": 1, + "readonly": true + }, + { + "dataType": "list", + "name": "floraDataSets", + "columns": [ + { + "name": "dataSetId", + "entityType": "au.org.ala.ecodata.DataSetSummary", + "dataType": "text", + "description": "This section will require the Data Set Name so the Metadata fields in the Data Set Summary tab should be filled out before the Outcome Report is due. More than one dataset if relevant for this Project Baseline could be selected.", + "validate": "required", + "constraints": { + "textProperty": "name", + "valueProperty": "dataSetId", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.custom.dataSets" + }, + "filter": { + "namespace": "dataSet", + "expression": "dataSet.serviceId == 15 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" + } + } + }, + "behaviour": [ + { + "type": "pre_populate", + "config": { + "waitForInitialisation": true, + "source": { + "url": "/project/getSpeciesRecordsFromActivity", + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + }, + { + "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.activityId", + "name": "activityId", + "type": "computed", + "required": true + } + ] + }, + "mapping": [ + { + "source-path": "species", + "target": "species" + }, + { + "source-path": "threatenedEcologicalCommunity", + "target": "threatenedEcologicalCommunity" + }, + { + "source-path": "individualsOrGroups", + "target": "individualsOrGroups" + }, + { + "source-path": "individualCount", + "target": "numberOfIndividualsOrGroups" + } + ], + "target": { + "type": "singleLoad", + "name": "floraSurveySpeciesTable" + } + } + }, + { + "type": "pre_populate", + "config": { + "waitForInitialisation": true, + "source": { + "url": "/site/geojson", + "params": [ + { + "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.siteId", + "name": "id", + "type": "computed", + "required": true + } + ] + }, + "target": { + "type": "singleValue", + "name": "sitesCoveredForFloraSurvey" + } + } + } + ] + }, + { + "columns": [ + { + "dataType": "species", + "name": "species", + "validate": "required" + }, + { + "dataType": "text", + "name": "threatenedEcologicalCommunity", + "validate": "maxSize[300]" + }, + { + "dataType": "text", + "name": "individualsOrGroups", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "numberOfIndividualsOrGroups", + "validate": "required,min[0]" + } + ], + "dataType": "list", + "name": "floraSurveySpeciesTable" + }, + { + "name": "projectBaselines", + "dataType": "stringList", + "description": "Select the relevant Project Baseline as listed in the Monitoring Methodology section of the MERI Plan.", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.baselines" + }, + "constraints": { + "textProperty": "baseline", + "valueProperty": "code", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.custom.details.baseline.rows" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "stringList", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.investmentPriorities" + }, + "constraints": { + "type": "pre-populated", + "config": { + "source": { + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + } + ], + "url": "/project/listProjectInvestmentPriorities/" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, + { + "dataType": "date", + "name": "activitiesStartDate", + "description": "Specific the dates these events were held on.", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.startDate" + } + }, + { + "dataType": "date", + "name": "activitiesEndDate", + "description": "Specific the dates these events were held on.", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.endDate" + } + }, + { + "dataType": "feature", + "name": "sitesCoveredForFloraSurvey", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesCoveredForFloraSurvey)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesCoveredForFloraSurvey)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "$geom.lengthKm(sitesCoveredForFloraSurvey)" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "text", + "description": "Select the technique used to conduct the survey. If the EMSA Application tool was not used, you should select 'Other'.", + "name": "emsaProtocol", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.protocol" + }, + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.protocols" + } + } + } + }, + { + "dataType": "stringList", + "description": "Describe the technique (if Other) was selected.", + "name": "otherEmsaProtocol", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methods" + } + }, + { + "dataType": "text", + "name": "surveyMethodology", + "description": "Provide more details on what is being done.", + "validate": "required,maxSize[3000]", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methodDescription" + } + } + ], + "minSize": 1 + } + ] + }, + { + "allowRowDelete": "false", + "columns": [ + { + "dataType": "text", + "name": "participationIndividualsOrGroups", + "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "participationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "participationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ] + }, + { + "dataType": "number", + "name": "firstNationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "participationIndividualNumber", + "type": "computed" + }, + "rule": "max" + } + ] + }, + { + "dataType": "text", + "name": "firstNationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ], + "validate": [ + { + "rule": "required" + }, + { + "param": { + "expression": "participationGroupNumber", + "type": "computed" + }, + "rule": "max", + "message": "The number of first nation participants cannot be greater than the total number of participants" + } + ] + }, + { + "dataType": "text", + "name": "participationDetails", + "validate": "required, maxSize[3000]" + } + ], + "dataType": "list", + "name": "participationInformationTableFls" + }, + { + "dataType": "number", + "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(floraSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" + } + }, + { + "dataType": "number", + "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(floraSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" + } + }, + { + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" + }, + { + "dataType": "image", + "name": "photographicEvidence" + }, + { + "dataType": "boolean", + "name": "dataUploaded", + "description": "" + }, + { + "dataType": "text", + "name": "projectAssuranceDetails", + "description": "", + "validate": "maxSize[5000]" + }, + { + "dataType": "list", + "name": "assuranceDocuments", + "columns": [ + { + "dataType": "document", + "name": "attachments", + "description": "Please attach any Evidence of Service Delivery here." + } + ] + } + ], + "modelName": "NHT - Flora survey", + "title": "Flora Survey", + "viewModel": [ + { + "type": "section", + "items": [ + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Participation information

" + } + ] + }, + { + "disableTableUpload": true, + "columns": [ + { + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" + }, + { + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "firstNationIndividualNumber", + "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } + ], + "source": "participationInformationTableFls", + "type": "table" + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Survey information

Before completing this section, please ensure you have created a Data Set Summary information for every data set produced by the surveys you intend to report

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(i) Total Number of baseline flora surveys completed for this reporting period", + "source": "totalSurveyBaseline", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(ii) Total Number of indicator flora surveys completed for this reporting period", + "source": "totalSurveyIndicator", + "type": "number" + } + ] + } + ] + } + ] + }, + { + "addRowText": "Add survey", + "removeRowText": "Delete this survey", + "userAddedRows": true, + "source": "floraSurveys", + "type": "repeat", + "items": [ + { + "type": "row", + "items": [ + { + "type": "col", + "items": [ + { + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s relates to this survey?" + } + ] + }, + { + "type": "col", + "items": [ + { + "source": "baselineOrIndicatorSurvey", + "type": "selectOne", + "preLabel": "Baseline survey or indicator (follow-up) survey?" + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "surveyObjective", + "preLabel": "Survey objective", + "type": "text" + } + ] + }, + { + "type": "repeat", + "source": "floraDataSets", + "userAddedRows": true, + "addRowText": "New data set", + "removeRowText": "Delete this data set", + "items": [ + { + "type": "row", + "css": "border-bottom", + "items": [ + { + "type": "col", + "items": [ + { + "source": "dataSetId", + "type": "selectOne", + "preLabel": "Please select the data set produced by this survey. Note it must have already been entered on the Data Set Summary tab." + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "projectBaselines", + "type": "selectMany", + "preLabel": "Which project baseline/s relate to this survey?", + "readonly": "readonly" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Activity start date", + "source": "activitiesStartDate", + "type": "date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Activity end date", + "source": "activitiesEndDate", + "type": "date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Sites covered by flora survey", + "source": "sitesCoveredForFloraSurvey", + "type": "feature" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedLengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Actual area (ha) / length (km) covered by flora survey", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "lengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Survey technique", + "source": "emsaProtocol", + "type": "selectOne", + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Survey technique (if Other)", + "source": "otherEmsaProtocol", + "type": "select2Many" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "surveyMethodology", + "preLabel": "Survey methodology", + "type": "text" + } + ] + } + ] + } + ] + }, + { + "columns": [ + { + "width": "40%", + "source": "species", + "title": "Target species recorded", + "type": "speciesSelect" + }, + { + "width": "35%", + "source": "threatenedEcologicalCommunity", + "title": "Threatened ecological communities (if applicable)", + "type": "text" + }, + { + "width": "15%", + "source": "individualsOrGroups", + "title": "Individuals or groups?", + "type": "selectOne" + }, + { + "width": "10%", + "source": "numberOfIndividualsOrGroups", + "title": "Number of groups / individuals in flora survey", + "type": "number" + } + ], + "userAddedRows": true, + "source": "floraSurveySpeciesTable", + "type": "table" + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." + }, + { + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" + } + ] + } + ] + } + ] + }, + "modelName": null, + "templateName": "nhtFloraSurvey", + "optional": true, + "optionalQuestionText": null, + "title": null, + "collapsibleHeading": null, + "name": "NHT - Flora survey", + "description": null + }, + { + "collapsedByDefault": false, + "template": { + "dataModel": [ + { + "allowRowDelete": "false", + "columns": [ + { + "dataType": "text", + "name": "participationIndividualsOrGroups", + "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "participationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "participationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ] + }, + { + "dataType": "number", + "name": "firstNationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "participationIndividualNumber", + "type": "computed" + }, + "rule": "max" + } + ] + }, + { + "dataType": "text", + "name": "firstNationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ], + "validate": [ + { + "rule": "required" + }, + { + "param": { + "expression": "participationGroupNumber", + "type": "computed" + }, + "rule": "max", + "message": "The number of first nation participants cannot be greater than the total number of participants" + } + ] + }, + { + "dataType": "text", + "name": "participationDetails", + "validate": "required, maxSize[3000]" + } + ], + "dataType": "list", + "name": "participationInformationTableHaa" + }, + { + "columns": [ + { + "dataType": "text", + "name": "initialOrMaintained", + "constraints": [ + "Initial", + "Maintained" + ], + "validate": "required" + }, + { + "dataType": "feature", + "name": "sitesOfHabitatAugmentation", + "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesOfHabitatAugmentation)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesOfHabitatAugmentation)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKm" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "number", + "name": "noStructuresInstalled", + "validate": "required" + }, + { + "columns": [ + { + "dataType": "date", + "name": "activitiesStartDate", + "description": "Specific the dates these events were held on.", + "validate": "required" + }, + { + "dataType": "date", + "name": "activitiesEndDate", + "description": "Specific the dates these events were held on.", + "validate": [ + { + "rule": "required" + }, + { + "rule": "future", + "param": { + "expression": "formatDateForValidation(activitiesStartDate)", + "type": "computed" + } + } + ] + }, + { + "dataType": "text", + "name": "habitatAugmentationType", + "description": "", + "constraints": [ + "Artificial fauna movement devices", + "Artificial nesting or roosting habitat (incl. tiles, fence posts)", + "Environmental thinning", + "Improving fish passage", + "Natural features (rocks, logs)", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "otherHabitatAugmentationType", + "description": "Please specify the habitat augmentation type if Other (specify in notes) was selected in the Type of habitat augmentation column.", + "behaviour": [ + { + "condition": "habitatAugmentationType == \"Other\"", + "type": "enable" + } + ], + "validate": "required,maxSize[100]" + }, + { + "dataType": "text", + "name": "habitatAugmentationObjective", + "description": "", + "validate": "required,maxSize[300]" + } + ], + "dataType": "list", + "name": "habitatAugmentationDetails" + }, + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + } + ], + "dataType": "list", + "name": "habitatAugmentationAreas" + }, + { + "dataType": "number", + "name": "totalAreaAugmentationInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(habitatAugmentationAreas, \"initialOrMaintained == 'Initial' ? areaTreatedHa : 0\")" + } + }, + { + "dataType": "number", + "name": "totalAreaAugmentationMaintained", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(habitatAugmentationAreas, \"initialOrMaintained == 'Maintained' ? areaTreatedHa : 0\")" + } + }, + { + "dataType": "number", + "name": "totalStructuresInstalledInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(habitatAugmentationAreas, \"initialOrMaintained == 'Initial' ? noStructuresInstalled : 0\")" + } + }, + { + "dataType": "number", + "name": "totalStructuresInstalledMaintained", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(habitatAugmentationAreas, \"initialOrMaintained == 'Maintained' ? noStructuresInstalled : 0\")" + } + }, + { + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" + }, + { + "dataType": "image", + "name": "photographicEvidence" + }, + { + "dataType": "boolean", + "name": "dataUploaded", + "description": "" + }, + { + "name": "projectAssuranceDetails", + "dataType": "text", + "validate": "maxSize[5000]" + }, + { + "dataType": "list", + "name": "assuranceDocuments", + "columns": [ + { + "dataType": "document", + "name": "attachments", + "description": "Please attach any Evidence of Service Delivery here." + } + ] + } + ], + "modelName": "NHT - Habitat augmentation", + "title": "Habitat Augmentation", + "viewModel": [ + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Participation information

" + } + ] + }, + { + "disableTableUpload": true, + "columns": [ + { + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" + }, + { + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "firstNationIndividualNumber", + "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } + ], + "source": "participationInformationTableHaa", + "type": "table" + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(i) Total area (ha) of augmentation (initial) during this reporting period", + "source": "totalAreaAugmentationInitial", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(ii) Total area (ha) of augmentation (maintained) during this reporting period", + "source": "totalAreaAugmentationMaintained", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(iii) Number of locations where structures installed (initial) during this reporting period", + "source": "totalStructuresInstalledInitial", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(iv) Number of locations where structures installed (maintained) during this reporting period", + "source": "totalStructuresInstalledMaintained", + "type": "number" + } + ] + } + ] + } + ] + }, + { + "addRowText": "Add new area of habitat augmentation", + "userAddedRows": true, + "source": "habitatAugmentationAreas", + "type": "repeat", + "items": [ + { + "type": "row", + "items": [ + { + "css": "span3 col-border-right", + "type": "col", + "items": [ + { "type": "row", "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "projectBaselines", - "type": "selectMany", - "preLabel": "Which project baseline/s relate to this survey?", - "readonly": "readonly" - } - ] - } - ] - }, + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s does this activity relate to?" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" - } - ] - } - ] - }, + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" + } + ] + } + ] + } + ] + }, + { + "type": "row", + "css": "border-bottom", + "items": [ + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Activity start date", - "source": "activitiesStartDate", - "type": "date" - } - ] - } - ] - }, + "source": "initialOrMaintained", + "preLabel": "Initial or Maintenance Treatment?", + "type": "selectOne" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Activity end date", - "source": "activitiesEndDate", - "type": "date" - } - ] - } - ] - }, + "source": "noStructuresInstalled", + "preLabel": "Number of locations where structures installed/maintained", + "type": "number" + } + ] + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Sites covered by flora survey", - "source": "sitesCoveredForFloraSurvey", - "type": "feature" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedAreaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedLengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetails", - "type": "document" - } - ] - } - ] - }, + "preLabel": "Site/s of habitat augmentation", + "source": "sitesOfHabitatAugmentation", + "type": "feature" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Actual area (ha) of habitat augmentation", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Actual area (ha) / length (km) covered by flora survey", - "source": "areaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "lengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", - "type": "selectOne" - } - ] - }, - { - "type": "row", - "items": [ - { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 - } - ] - } - ] - }, + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 + } + ] + } + ] + } + ] + }, + { + "columns": [ + { + "title": "Activity start date", + "source": "activitiesStartDate", + "type": "date", + "width": "20%" + }, + { + "title": "Activity end date", + "source": "activitiesEndDate", + "type": "date", + "width": "20%" + }, + { + "width": "25%", + "title": "Type of habitat augmentation / installed", + "type": "col", + "items": [ + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Survey technique", - "source": "emsaProtocol", - "type": "selectOne", - "readonly": "readonly" - } - ] - }, + "source": "habitatAugmentationType", + "type": "select2" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "otherHabitatAugmentationType", + "type": "textarea" + } + ] + } + ] + }, + { + "width": "35%", + "source": "habitatAugmentationObjective", + "title": "Purpose of habitat augmentation", + "type": "textarea" + } + ], + "userAddedRows": true, + "source": "habitatAugmentationDetails", + "type": "table" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." + }, + { + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" + } + ] + } + ] + }, + "modelName": null, + "templateName": "nhtHabitatAugmentation", + "optional": true, + "optionalQuestionText": null, + "title": null, + "collapsibleHeading": null, + "name": "NHT - Habitat augmentation", + "description": null + }, + { + "collapsedByDefault": false, + "template": { + "dataModel": [ + { + "name": "habitatConditionSurveys", + "dataType": "list", + "minSize": 1, + "columns": [ + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "dataType": "text", + "name": "baselineOrIndicatorSurvey", + "description": "", + "constraints": [ + "Baseline", + "Indicator" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "surveyObjective", + "description": "What the survey aim to capture? How will the information obtained from the survey be used?", + "validate": "required,maxSize[3000]" + }, + { + "dataType": "number", + "name": "numberOfSurveys", + "validate": "required,min[1],max[1]", + "defaultValue": 1, + "readonly": true + }, + { + "dataType": "list", + "name": "habitatConditionDataSets", + "columns": [ + { + "name": "dataSetId", + "entityType": "au.org.ala.ecodata.DataSetSummary", + "dataType": "text", + "description": "This section will require the Data Set Name so the Metadata fields in the Data Set Summary tab should be filled out before the Outcome Report is due. More than one dataset if relevant for this Project Baseline could be selected.", + "validate": "required", + "constraints": { + "textProperty": "name", + "valueProperty": "dataSetId", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.custom.dataSets" + }, + "filter": { + "namespace": "dataSet", + "expression": "dataSet.serviceId == 42 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" + } + } + }, + "behaviour": [ + { + "type": "pre_populate", + "config": { + "waitForInitialisation": true, + "source": { + "url": "/site/geojson", + "params": [ { - "type": "row", - "items": [ - { - "preLabel": "Survey technique (if Other)", - "source": "otherEmsaProtocol", - "type": "select2Many" - } - ] + "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.siteId", + "name": "id", + "type": "computed", + "required": true } ] }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "surveyMethodology", - "preLabel": "Survey methodology", - "type": "text" - } - ] - } - ] + "target": { + "type": "singleValue", + "name": "sitesCoveredForHabitatConditionSurvey" } - ] - }, + } + } + ] + }, + { + "name": "projectBaselines", + "dataType": "stringList", + "description": "Select the relevant Project Baseline as listed in the Monitoring Methodology section of the MERI Plan.", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.baselines" + }, + "constraints": { + "textProperty": "baseline", + "valueProperty": "code", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.custom.details.baseline.rows" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "stringList", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.investmentPriorities" + }, + "constraints": { + "type": "pre-populated", + "config": { + "source": { + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + } + ], + "url": "/project/listProjectInvestmentPriorities/" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ { - "columns": [ - { - "width": "40%", - "source": "species", - "title": "Target species recorded", - "type": "speciesSelect" - }, - { - "width": "35%", - "source": "threatenedEcologicalCommunity", - "title": "Threatened ecological communities (if applicable)", - "type": "text" - }, - { - "width": "15%", - "source": "individualsOrGroups", - "title": "Individuals or groups?", - "type": "selectOne" - }, - { - "width": "10%", - "source": "numberOfIndividualsOrGroups", - "title": "Number of groups / individuals in flora survey", - "type": "number" - } - ], - "userAddedRows": true, - "source": "floraSurveySpeciesTable", - "type": "table" + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" } ] - } - ] - }, - { - "type": "row", - "items": [ + }, { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" - } - ] - }, - { - "type": "row", - "items": [ + "dataType": "date", + "name": "activitiesStartDate", + "description": "Specific the dates these events were held on.", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.startDate" + } + }, + { + "dataType": "date", + "name": "activitiesEndDate", + "description": "Specific the dates these events were held on.", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.endDate" + } + }, + { + "dataType": "feature", + "name": "sitesCoveredForHabitatConditionSurvey", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesCoveredForHabitatConditionSurvey)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "areaInvoicedTreatedHa > 0", + "type": "conditional_validation", + "value": { + "message": "The managed area must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesCoveredForHabitatConditionSurvey)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" - } - ] - }, - { - "type": "row", - "items": [ + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKm" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + }, { - "type": "literal", - "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." + "dataType": "text", + "description": "Select the technique used to conduct the survey. If the EMSA Application tool was not used, you should select 'Other'.", + "name": "emsaProtocol", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.protocol" + }, + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.protocols" + } + } + } }, { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] - }, - { - "type": "row", - "items": [ + "dataType": "stringList", + "description": "Describe the technique (if Other) was selected.", + "name": "otherEmsaProtocol", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methods" + } + }, { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." - } - ] - }, - { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ + "dataType": "text", + "name": "surveyMethodology", + "description": "Provide more details on what is being done.", + "validate": "required,maxSize[3000]", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methodDescription" + } + }, { - "title": "Attached documents", - "source": "attachments", - "type": "document" + "columns": [ + { + "dataType": "text", + "name": "typesOfHabitat", + "description": "", + "constraints": [ + "Desert", + "Grassland/Savanna", + "Bush/Forest", + "Subterranean", + "Marsh/Swamps", + "Rivers/Streams/Wetlands", + "Coastal areas", + "Marine areas", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "habitatCondition", + "validate": "maxSize[300]" + } + ], + "dataType": "list", + "name": "habitatConditionSurveySpeciesTable" } - ] + ], + "minSize": 1 } ] - } - ] - }, - "modelName": null, - "templateName": "nhtFloraSurvey", - "optional": true, - "optionalQuestionText": null, - "title": null, - "collapsibleHeading": null, - "name": "NHT - Flora survey", - "description": null - }, - { - "collapsedByDefault": false, - "template": { - "dataModel": [ + }, { "allowRowDelete": "false", "columns": [ @@ -11990,1070 +14021,1487 @@ "rule": "max", "message": "The number of first nation participants cannot be greater than the total number of participants" } - ] - }, - { - "dataType": "text", - "name": "participationDetails", - "validate": "required, maxSize[3000]" - } - ], - "dataType": "list", - "name": "participationInformationTableHaa" - }, - { - "columns": [ - { - "dataType": "text", - "name": "initialOrMaintained", - "constraints": [ - "Initial", - "Maintained" + ] + }, + { + "dataType": "text", + "name": "participationDetails", + "validate": "required, maxSize[3000]" + } + ], + "dataType": "list", + "name": "participationInformationTableHca" + }, + { + "dataType": "number", + "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(habitatConditionSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" + } + }, + { + "dataType": "number", + "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(habitatConditionSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" + } + }, + { + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" + }, + { + "dataType": "image", + "name": "photographicEvidence" + }, + { + "dataType": "boolean", + "name": "dataUploaded", + "description": "" + }, + { + "dataType": "text", + "name": "projectAssuranceDetails", + "description": "", + "validate": "maxSize[5000]" + }, + { + "dataType": "list", + "name": "assuranceDocuments", + "columns": [ + { + "dataType": "document", + "name": "attachments", + "description": "Please attach any Evidence of Service Delivery here." + } + ] + } + ], + "modelName": "NHT - Habitat condition assessment survey", + "title": "Habitat Condition Assessment Survey", + "viewModel": [ + { + "type": "section", + "items": [ + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Participation information

" + } + ] + }, + { + "disableTableUpload": true, + "columns": [ + { + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" + }, + { + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "firstNationIndividualNumber", + "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } ], - "validate": "required" - }, - { - "dataType": "feature", - "name": "sitesOfHabitatAugmentation", - "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." - }, - { - "computed": { - "expression": "$geom.areaHa(sitesOfHabitatAugmentation)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHa", - "units": "ha", - "decimalPlaces": 3 + "source": "participationInformationTableHca", + "type": "table" }, { - "computed": { - "expression": "$geom.lengthKm(sitesOfHabitatAugmentation)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKm", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ + "type": "row", + "items": [ { - "condition": "lengthTreatedKm > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } + "type": "literal", + "source": "

Survey information

Before completing this section, please ensure you have created a Data Set Summary information for every data set produced by the surveys you intend to report

" } ] }, { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHa" - }, - "dataType": "number", - "name": "areaTreatedHa", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "required,min[0]" + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] }, { - "dataType": "text", - "name": "mappingNotAlignedReason", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ + "type": "row", + "items": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", - "type": "if" + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(i) Total Number of baseline habitat condition assessment surveys completed for this reporting period", + "source": "totalSurveyBaseline", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(ii) Total Number of indicator habitat condition assessment surveys completed for this reporting period", + "source": "totalSurveyIndicator", + "type": "number" + } + ] + } + ] } ] }, { - "dataType": "text", - "name": "mappingNotAlignedComments", - "validate": "required,maxSize[100]", - "behaviour": [ + "addRowText": "Add survey", + "removeRowText": "Delete this survey", + "userAddedRows": true, + "source": "habitatConditionSurveys", + "type": "repeat", + "items": [ { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReason" + "type": "row", + "items": [ + { + "type": "col", + "items": [ + { + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s relates to this survey?" + } + ] + }, + { + "type": "col", + "items": [ + { + "source": "baselineOrIndicatorSurvey", + "type": "selectOne", + "preLabel": "Baseline survey or indicator (follow-up) survey?" + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "surveyObjective", + "preLabel": "Survey objective", + "type": "text" + } + ] + }, + { + "type": "repeat", + "source": "habitatConditionDataSets", + "userAddedRows": true, + "addRowText": "New data set", + "removeRowText": "Delete this data set", + "items": [ + { + "type": "row", + "css": "border-bottom", + "items": [ + { + "type": "col", + "items": [ + { + "source": "dataSetId", + "type": "selectOne", + "preLabel": "Please select the data set produced by this survey. Note it must have already been entered on the Data Set Summary tab." + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "projectBaselines", + "type": "selectMany", + "preLabel": "Which project baseline/s relate to this survey?", + "readonly": "readonly" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Activity start date", + "source": "activitiesStartDate", + "type": "date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Activity end date", + "source": "activitiesEndDate", + "type": "date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Sites covered by habitat condition assessment survey", + "source": "sitesCoveredForHabitatConditionSurvey", + "type": "feature" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedLengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Actual area (ha) / length (km) covered by habitat condition assessment survey", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "lengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Survey technique", + "source": "emsaProtocol", + "type": "selectOne", + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Survey technique (if Other)", + "source": "otherEmsaProtocol", + "type": "select2Many" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "surveyMethodology", + "preLabel": "Survey methodology", + "type": "text" + } + ] + } + ] + } + ] + }, + { + "columns": [ + { + "width": "40%", + "source": "typesOfHabitat", + "title": "Types of habitat", + "type": "selectOne" + }, + { + "width": "60%", + "source": "habitatCondition", + "title": "Condition of habitat", + "type": "text" + } + ], + "userAddedRows": true, + "source": "habitatConditionSurveySpeciesTable", + "type": "table" + } + ] } ] }, { - "dataType": "document", - "name": "extraMappingDetails", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ + "type": "row", + "items": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", - "type": "if" + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" } ] }, { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKm" - }, - "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 - }, - { - "dataType": "number", - "name": "noStructuresInstalled", - "validate": "required" - }, - { - "columns": [ - { - "dataType": "date", - "name": "activitiesStartDate", - "description": "Specific the dates these events were held on.", - "validate": "required" - }, - { - "dataType": "date", - "name": "activitiesEndDate", - "description": "Specific the dates these events were held on.", - "validate": [ - { - "rule": "required" - }, - { - "rule": "future", - "param": { - "expression": "formatDateForValidation(activitiesStartDate)", - "type": "computed" - } - } - ] - }, - { - "dataType": "text", - "name": "habitatAugmentationType", - "description": "", - "constraints": [ - "Artificial fauna movement devices", - "Artificial nesting or roosting habitat (incl. tiles, fence posts)", - "Environmental thinning", - "Improving fish passage", - "Natural features (rocks, logs)", - "Other" - ], - "validate": "required" - }, - { - "dataType": "text", - "name": "otherHabitatAugmentationType", - "description": "Please specify the habitat augmentation type if Other (specify in notes) was selected in the Type of habitat augmentation column.", - "behaviour": [ - { - "condition": "habitatAugmentationType == \"Other\"", - "type": "enable" - } - ], - "validate": "required,maxSize[100]" - }, + "type": "row", + "items": [ { - "dataType": "text", - "name": "habitatAugmentationObjective", - "description": "", - "validate": "required,maxSize[300]" + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" } - ], - "dataType": "list", - "name": "habitatAugmentationDetails" + ] }, { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "outcomes" - } + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." + }, + { + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" } - } + ] }, { - "name": "investmentPriorities2", - "dataType": "text", - "description": "", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.investmentPriorities" - } + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." } - } + ] }, { - "dataType": "text", - "name": "otherInvestmentPriority", - "behaviour": [ + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" + "title": "Attached documents", + "source": "attachments", + "type": "document" } ] } - ], - "dataType": "list", - "name": "habitatAugmentationAreas" - }, - { - "dataType": "number", - "name": "totalAreaAugmentationInitial", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(habitatAugmentationAreas, \"initialOrMaintained == 'Initial' ? areaTreatedHa : 0\")" - } - }, - { - "dataType": "number", - "name": "totalAreaAugmentationMaintained", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(habitatAugmentationAreas, \"initialOrMaintained == 'Maintained' ? areaTreatedHa : 0\")" - } - }, - { - "dataType": "number", - "name": "totalStructuresInstalledInitial", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(habitatAugmentationAreas, \"initialOrMaintained == 'Initial' ? noStructuresInstalled : 0\")" - } - }, - { - "dataType": "number", - "name": "totalStructuresInstalledMaintained", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(habitatAugmentationAreas, \"initialOrMaintained == 'Maintained' ? noStructuresInstalled : 0\")" - } - }, - { - "dataType": "text", - "name": "comments", - "validate": "maxSize[1500]" - }, - { - "dataType": "image", - "name": "photographicEvidence" - }, - { - "dataType": "boolean", - "name": "dataUploaded", - "description": "" - }, - { - "name": "projectAssuranceDetails", - "dataType": "text", - "validate": "maxSize[5000]" - }, - { - "dataType": "list", - "name": "assuranceDocuments", - "columns": [ - { - "dataType": "document", - "name": "attachments", - "description": "Please attach any Evidence of Service Delivery here." - } ] } - ], - "modelName": "NHT - Habitat augmentation", - "title": "Habitat Augmentation", - "viewModel": [ - { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Participation information

" - } - ] - }, + ] + }, + "modelName": null, + "templateName": "nhtHabitatConditionAssessmentSurvey", + "optional": true, + "optionalQuestionText": null, + "title": null, + "collapsibleHeading": null, + "name": "NHT - Habitat condition assessment", + "description": null + }, + { + "collapsedByDefault": false, + "template": { + "title": "Identifying and Prioritising the Location of Potential Sites", + "modelName": "NHT - Identifying sites", + "dataModel": [ { - "disableTableUpload": true, + "allowRowDelete": "false", "columns": [ { - "width": "10%", - "source": "participationIndividualsOrGroups", - "title": "Are individuals or groups delivering this service?", - "type": "selectOne" + "dataType": "text", + "name": "participationIndividualsOrGroups", + "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" }, { - "width": "20%", - "type": "col", - "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ + "dataType": "number", + "name": "participationIndividualNumber", + "defaultValue": 0, + "behaviour": [ { - "source": "participationIndividualNumber", - "type": "number" + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "participationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ] + }, + { + "dataType": "number", + "name": "firstNationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": [ + { + "rule": "required" }, { - "source": "participationGroupNumber", - "type": "selectOne" + "rule": "min[0]" + }, + { + "param": { + "expression": "participationIndividualNumber", + "type": "computed" + }, + "rule": "max" } ] }, { - "type": "col", - "width": "20%", - "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ + "dataType": "text", + "name": "firstNationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ], + "validate": [ { - "source": "firstNationIndividualNumber", - "type": "number" + "rule": "required" }, { - "source": "firstNationGroupNumber", - "type": "selectOne" + "param": { + "expression": "participationGroupNumber", + "type": "computed" + }, + "rule": "max", + "message": "The number of first nation participants cannot be greater than the total number of participants" } ] }, { - "width": "20%", - "source": "participationDetails", - "rows": 4, - "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", - "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", - "type": "textarea" + "dataType": "text", + "name": "participationDetails", + "validate": "required, maxSize[3000]" } ], - "source": "participationInformationTableHaa", - "type": "table" + "dataType": "list", + "name": "participationInformationTableIpl" }, { - "type": "row", - "items": [ + "columns": [ { - "type": "literal", - "source": "

Totals Summary

" - } - ] - }, - { - "type": "row", - "items": [ + "dataType": "text", + "name": "sitesHaveBeenIdentified", + "description": "", + "validate": "required,maxSize[300]" + }, { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(i) Total area (ha) of augmentation (initial) during this reporting period", - "source": "totalAreaAugmentationInitial", - "type": "number" - } - ] - } - ] + "dataType": "text", + "name": "methodsUsedToIdentify", + "description": "", + "validate": "required,maxSize[300]" }, { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(ii) Total area (ha) of augmentation (maintained) during this reporting period", - "source": "totalAreaAugmentationMaintained", - "type": "number" - } - ] + "dataType": "text", + "name": "outcomesAchievement", + "description": "", + "validate": "required,maxSize[300]" + }, + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "label", + "type": "pre-populated", + "config": { + "source": { + "url": "/project/outcomesByScores", + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + }, + { + "expression": "scores", + "name": "scoreIds", + "type": "computed" + } + ] + } } - ] + } }, { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(iii) Number of locations where structures installed (initial) during this reporting period", - "source": "totalStructuresInstalledInitial", - "type": "number" - } - ] + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } } - ] + } }, { - "type": "col", - "css": "span4 col-border-right", - "items": [ + "dataType": "text", + "name": "otherInvestmentPriority", + "description": "Describe the investment priority (if Other) was selected", + "behaviour": [ { - "type": "row", - "items": [ - { - "preLabel": "(iv) Number of locations where structures installed (maintained) during this reporting period", - "source": "totalStructuresInstalledMaintained", - "type": "number" - } - ] + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" } ] - } - ] - }, - { - "addRowText": "Add new area of habitat augmentation", - "userAddedRows": true, - "source": "habitatAugmentationAreas", - "type": "repeat", - "items": [ + }, { - "type": "row", - "items": [ + "columns": [ { - "css": "span3 col-border-right", - "type": "col", - "items": [ + "dataType": "feature", + "name": "sitesAssessed", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping.", + "validate": "required" + }, + { + "computed": { + "expression": "$geom.areaHa(sitesAssessed)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHaAssessed", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesAssessed)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKmAssessed", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ { - "type": "row", - "items": [ - { - "source": "relatedOutcomes", - "type": "selectOne", - "preLabel": "Which outcome statement/s does this activity relate to?" - } - ] + "condition": "lengthTreatedKmAssessed > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } } ] }, { - "type": "col", - "css": "span3 col-border-right", - "items": [ + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHaAssessed" + }, + "dataType": "number", + "name": "areaTreatedHaAssessed", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReasonAssessed", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ { - "type": "row", - "items": [ - { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" - } - ] + "condition": "not (within(areaTreatedHaAssessed, calculatedAreaTreatedHaAssessed, 0.1) and within(lengthTreatedKmAssessed, calculatedLengthTreatedKmAssessed, 0.1))", + "type": "visible" } ] - } - ] - }, - { - "type": "row", - "css": "border-bottom", - "items": [ + }, { - "type": "col", - "css": "span3 col-border-right", - "items": [ + "dataType": "text", + "name": "mappingNotAlignedCommentsAssessed", + "validate": "required,maxSize[100]", + "behaviour": [ { - "type": "row", - "items": [ - { - "source": "initialOrMaintained", - "preLabel": "Initial or Maintenance Treatment?", - "type": "selectOne" - } - ] + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReasonAssessed" } ] }, { - "type": "col", - "css": "span3 col-border-right", - "items": [ + "dataType": "document", + "name": "extraMappingDetailsAssessed", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ { - "type": "row", - "items": [ - { - "source": "noStructuresInstalled", - "preLabel": "Number of locations where structures installed/maintained", - "type": "number" - } - ] + "condition": "not (within(areaTreatedHaAssessed, calculatedAreaTreatedHaAssessed, 0.1) and within(lengthTreatedKmAssessed, calculatedLengthTreatedKmAssessed, 0.1))", + "type": "visible" } ] - } - ] - }, - { - "type": "row", - "items": [ + }, { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Site/s of habitat augmentation", - "source": "sitesOfHabitatAugmentation", - "type": "feature" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedAreaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, + "defaultValue": { + "type": "computed", + "expression": "$geom.lengthKm(sitesAssessed)" + }, + "dataType": "number", + "name": "lengthTreatedKmAssessed", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "text", + "name": "assessedSitesName", + "description": "", + "validate": "required,maxSize[300]" + }, + { + "dataType": "feature", + "name": "sitesIdentified", + "validate": [ { - "type": "row", - "items": [ - { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetails", - "type": "document" - } - ] + "rule": "required" } ] }, { - "type": "col", - "css": "span3 col-border-right", - "items": [ + "computed": { + "expression": "$geom.areaHa(sitesIdentified)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHaIdentified", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesIdentified)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKmIdentified", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ { - "type": "row", - "items": [ - { - "preLabel": "Actual area (ha) of habitat augmentation", - "source": "areaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, + "condition": "lengthTreatedKmIdentified > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHaIdentified" + }, + "dataType": "number", + "name": "areaTreatedHaIdentified", + "units": "ha", + "decimalPlaces": 3, + "validate": [ { - "type": "row", - "items": [ - { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", - "type": "selectOne" - } - ] + "rule": "required" }, { - "type": "row", - "items": [ - { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 - } - ] + "rule": "min[0]" } ] - } - ] - }, - { - "columns": [ - { - "title": "Activity start date", - "source": "activitiesStartDate", - "type": "date", - "width": "20%" }, { - "title": "Activity end date", - "source": "activitiesEndDate", - "type": "date", - "width": "20%" + "dataType": "text", + "name": "mappingNotAlignedReasonIdentified", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHaIdentified, calculatedAreaTreatedHaIdentified, 0.1) and within(lengthTreatedKmIdentified, calculatedLengthTreatedKmIdentified, 0.1))", + "type": "visible" + } + ] }, { - "width": "25%", - "title": "Type of habitat augmentation / installed", - "type": "col", - "items": [ + "dataType": "text", + "name": "mappingNotAlignedCommentsIdentified", + "validate": "required,maxSize[100]", + "behaviour": [ { - "type": "row", - "items": [ - { - "source": "habitatAugmentationType", - "type": "select2" - } - ] - }, + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReasonIdentified" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetailsIdentified", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ { - "type": "row", - "items": [ - { - "source": "otherHabitatAugmentationType", - "type": "textarea" - } - ] + "condition": "not (within(areaTreatedHaIdentified, calculatedAreaTreatedHaIdentified, 0.1) and within(lengthTreatedKmIdentified, calculatedLengthTreatedKmIdentified, 0.1))", + "type": "visible" } ] }, { - "width": "35%", - "source": "habitatAugmentationObjective", - "title": "Purpose of habitat augmentation", - "type": "textarea" + "defaultValue": { + "type": "computed", + "expression": "$geom.lengthKm(sitesIdentified)" + }, + "dataType": "number", + "name": "lengthTreatedKmIdentified", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "text", + "name": "identifiedSitesName", + "description": "", + "validate": "maxSize[300]" } ], - "userAddedRows": true, - "source": "habitatAugmentationDetails", - "type": "table" + "dataType": "list", + "name": "potentialSitesSurveyBaselineTable" + }, + { + "dataType": "number", + "name": "rowCount", + "decimalPlaces": 0, + "computed": { + "expression": "sum(potentialSitesSurveyBaselineTable, \"assessedSitesName ? 1 : 0\")" + } } - ] + ], + "dataType": "list", + "name": "potentialSiteSurveys", + "minSize": 1 + }, + { + "dataType": "number", + "name": "totalPotentialSites", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(potentialSiteSurveys, \"rowCount\")" + } }, { - "type": "row", - "items": [ - { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" - } - ] + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" }, { - "type": "row", - "items": [ - { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" - } - ] + "dataType": "image", + "name": "photographicEvidence" }, { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." - }, - { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] + "dataType": "boolean", + "name": "dataUploaded", + "description": "" }, { - "type": "row", - "items": [ - { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." - } - ] + "name": "projectAssuranceDetails", + "dataType": "text", + "validate": "maxSize[5000]" }, { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, + "dataType": "list", + "name": "assuranceDocuments", "columns": [ { - "title": "Attached documents", - "source": "attachments", - "type": "document" + "dataType": "document", + "name": "attachments", + "description": "Please attach any Evidence of Service Delivery here." } ] } - ] - }, - "modelName": null, - "templateName": "nhtHabitatAugmentation", - "optional": true, - "optionalQuestionText": null, - "title": null, - "collapsibleHeading": null, - "name": "NHT - Habitat augmentation", - "description": null - }, - { - "collapsedByDefault": false, - "template": { - "dataModel": [ + ], + "viewModel": [ { - "name": "habitatConditionSurveys", - "dataType": "list", - "minSize": 1, - "columns": [ + "type": "section", + "items": [ { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "outcomes" - } + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Participation information

" } - } + ] }, { - "dataType": "text", - "name": "baselineOrIndicatorSurvey", - "description": "", - "constraints": [ - "Baseline", - "Indicator" + "disableTableUpload": true, + "columns": [ + { + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" + }, + { + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "firstNationIndividualNumber", + "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } ], - "validate": "required" + "source": "participationInformationTableIpl", + "type": "table" }, { - "dataType": "text", - "name": "surveyObjective", - "description": "What the survey aim to capture? How will the information obtained from the survey be used?", - "validate": "required,maxSize[3000]" + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] }, { - "dataType": "number", - "name": "numberOfSurveys", - "validate": "required,min[1],max[1]", - "defaultValue": 1, - "readonly": true + "type": "row", + "items": [ + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(i) Total number of potential sites assessed during this reporting period", + "source": "totalPotentialSites", + "type": "number" + } + ] + } + ] + } + ] }, { - "dataType": "list", - "name": "habitatConditionDataSets", - "columns": [ + "addRowText": "Add a new outcome statement and assessed sites", + "userAddedRows": true, + "source": "potentialSiteSurveys", + "type": "repeat", + "items": [ { - "name": "dataSetId", - "entityType": "au.org.ala.ecodata.DataSetSummary", - "dataType": "text", - "description": "This section will require the Data Set Name so the Metadata fields in the Data Set Summary tab should be filled out before the Outcome Report is due. More than one dataset if relevant for this Project Baseline could be selected.", - "validate": "required", - "constraints": { - "textProperty": "name", - "valueProperty": "dataSetId", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.custom.dataSets" - }, - "filter": { - "namespace": "dataSet", - "expression": "dataSet.serviceId == 42 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" - } - } - }, - "behaviour": [ + "type": "row", + "items": [ { - "type": "pre_populate", - "config": { - "waitForInitialisation": true, - "source": { - "url": "/site/geojson", - "params": [ + "css": "span3", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s does this activity relate to?" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.siteId", - "name": "id", - "type": "computed", - "required": true + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" } ] - }, - "target": { - "type": "singleValue", - "name": "sitesCoveredForHabitatConditionSurvey" } - } + ] } ] }, { - "name": "projectBaselines", - "dataType": "stringList", - "description": "Select the relevant Project Baseline as listed in the Monitoring Methodology section of the MERI Plan.", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.baselines" - }, - "constraints": { - "textProperty": "baseline", - "valueProperty": "code", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.custom.details.baseline.rows" - } - } - } - }, - { - "name": "investmentPriorities2", - "dataType": "stringList", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.investmentPriorities" - }, - "constraints": { - "type": "pre-populated", - "config": { - "source": { - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - } - ], - "url": "/project/listProjectInvestmentPriorities/" - } - } - } - }, - { - "dataType": "text", - "name": "otherInvestmentPriority", - "behaviour": [ + "type": "row", + "items": [ { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" + "css": "span3", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "sitesHaveBeenIdentified", + "preLabel": "What have the sites identified for?", + "type": "text" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "methodsUsedToIdentify", + "preLabel": "What method/s were used to identify and prioritise?", + "type": "text" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "outcomesAchievement", + "preLabel": "How do they contribute to the achievement of the outcome statement/s?", + "type": "textarea" + } + ] + } + ] } ] }, { - "dataType": "date", - "name": "activitiesStartDate", - "description": "Specific the dates these events were held on.", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.startDate" - } - }, - { - "dataType": "date", - "name": "activitiesEndDate", - "description": "Specific the dates these events were held on.", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.endDate" - } - }, - { - "dataType": "feature", - "name": "sitesCoveredForHabitatConditionSurvey", - "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." - }, - { - "computed": { - "expression": "$geom.areaHa(sitesCoveredForHabitatConditionSurvey)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHa", - "units": "ha", - "decimalPlaces": 3, - "behaviour": [ + "columns": [ + { + "width": "15%", + "title": "Site/s assessed*", + "helpText": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping.", + "type": "col", + "items": [ + { + "source": "sitesAssessed", + "type": "feature" + }, + { + "source": "calculatedAreaTreatedHaAssessed", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + }, + { + "source": "calculatedLengthTreatedKmAssessed", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetailsAssessed", + "type": "document" + } + ] + } + ] + }, + { + "width": "15%", + "type": "col", + "title": "Actual area (ha) / length (km) of assessed site*", + "helpText": "Manually enter correct figure for this reporting period if different to mapped value.", + "items": [ + { + "source": "areaTreatedHaAssessed", + "type": "number", + "displayOptions": { + "displayUnits": true + } + }, + { + "source": "lengthTreatedKmAssessed", + "type": "number", + "displayOptions": { + "displayUnits": true + } + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReasonAssessed", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedCommentsAssessed", + "type": "textarea", + "rows": 5 + } + ] + } + ] + }, + { + "width": "20%", + "source": "assessedSitesName", + "title": "Name of assessed site", + "type": "text" + }, + { + "width": "15%", + "title": "Site/s identified and prioritised", + "helpText": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping.", + "type": "col", + "items": [ + { + "source": "sitesIdentified", + "type": "feature" + }, + { + "source": "calculatedAreaTreatedHaIdentified", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + }, + { + "source": "calculatedLengthTreatedKmIdentified", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetailsIdentified", + "type": "document" + } + ] + } + ] + }, { - "condition": "areaInvoicedTreatedHa > 0", - "type": "conditional_validation", - "value": { - "message": "The managed area must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, - { - "computed": { - "expression": "$geom.lengthKm(sitesCoveredForHabitatConditionSurvey)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKm", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ + "width": "15%", + "type": "col", + "title": "Actual area (ha) / length (km) of identified and prioritised site", + "helpText": "Manually enter correct figure for this reporting period if different to mapped value.", + "items": [ + { + "source": "areaTreatedHaIdentified", + "type": "number", + "displayOptions": { + "displayUnits": true + } + }, + { + "source": "lengthTreatedKmIdentified", + "type": "number", + "displayOptions": { + "displayUnits": true + } + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReasonIdentified", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedCommentsIdentified", + "type": "textarea", + "rows": 5 + } + ] + } + ] + }, { - "condition": "lengthTreatedKm > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } + "width": "20%", + "source": "identifiedSitesName", + "title": "Name of identified and prioritised site", + "type": "textarea" } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHa" - }, - "dataType": "number", - "name": "areaTreatedHa", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "mappingNotAlignedReason", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" ], - "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, - { - "dataType": "text", - "name": "mappingNotAlignedComments", - "validate": "required,maxSize[100]", - "behaviour": [ - { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReason" - } - ] - }, + "addRowText": "Add a new assessed site to this outcome", + "userAddedRows": true, + "disableTableUpload": true, + "source": "potentialSitesSurveyBaselineTable", + "type": "table" + } + ] + }, + { + "type": "row", + "items": [ { - "dataType": "document", - "name": "extraMappingDetails", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKm" - }, - "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 - }, + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ { - "dataType": "text", - "description": "Select the technique used to conduct the survey. If the EMSA Application tool was not used, you should select 'Other'.", - "name": "emsaProtocol", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.protocol" - }, - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.protocols" - } - } - } + "type": "literal", + "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." }, { - "dataType": "stringList", - "description": "Describe the technique (if Other) was selected.", - "name": "otherEmsaProtocol", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methods" - } - }, + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ { - "dataType": "text", - "name": "surveyMethodology", - "description": "Provide more details on what is being done.", - "validate": "required,maxSize[3000]", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methodDescription" - } - }, + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ { - "columns": [ - { - "dataType": "text", - "name": "typesOfHabitat", - "description": "", - "constraints": [ - "Desert", - "Grassland/Savanna", - "Bush/Forest", - "Subterranean", - "Marsh/Swamps", - "Rivers/Streams/Wetlands", - "Coastal areas", - "Marine areas", - "Other" - ], - "validate": "required" - }, - { - "dataType": "text", - "name": "habitatCondition", - "validate": "maxSize[300]" - } - ], - "dataType": "list", - "name": "habitatConditionSurveySpeciesTable" + "title": "Attached documents", + "source": "attachments", + "type": "document" } - ], - "minSize": 1 + ] } ] - }, + } + ] + }, + "modelName": null, + "templateName": "nhtIdentifyingSites", + "optional": true, + "optionalQuestionText": null, + "title": null, + "collapsibleHeading": null, + "name": "NHT - Identifying sites", + "description": null + }, + { + "collapsedByDefault": false, + "template": { + "dataModel": [ { "allowRowDelete": "false", "columns": [ @@ -13121,64 +15569,282 @@ }, "rule": "max" } - ] + ] + }, + { + "dataType": "text", + "name": "firstNationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ], + "validate": [ + { + "rule": "required" + }, + { + "param": { + "expression": "participationGroupNumber", + "type": "computed" + }, + "rule": "max", + "message": "The number of first nation participants cannot be greater than the total number of participants" + } + ] + }, + { + "dataType": "text", + "name": "participationDetails", + "validate": "required, maxSize[3000]" + } + ], + "dataType": "list", + "name": "participationInformationTableIfm" + }, + { + "columns": [ + { + "columns": [ + { + "dataType": "feature", + "name": "sitesBenefittedByFireAction" + }, + { + "computed": { + "expression": "$geom.areaHa(sitesBenefittedByFireAction)" + }, + "dataType": "number", + "name": "areaBenefittedByFireActionHa" + }, + { + "dataType": "text", + "name": "evidenceOfBenefit", + "validate": "maxSize[300]" + } + ], + "dataType": "list", + "name": "fireManagementDetails" + }, + { + "dataType": "text", + "name": "initialOrFollowup", + "constraints": [ + "Initial", + "Follow-up" + ], + "validate": "required" + }, + { + "dataType": "feature", + "name": "sitesTreatedByFireManagement", + "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesTreatedByFireManagement)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesTreatedByFireManagement)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKm" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "text", + "name": "fireManagementType", + "description": "", + "constraints": [ + "Cultural burn", + "Ecological burn", + "Grading", + "Hazard reduction burn", + "Herbicide", + "Slashing", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "otherFireManagementType", + "behaviour": [ + { + "condition": "fireManagementType == \"Other\"", + "type": "enable" + } + ], + "validate": "required,maxSize[100]" + }, + { + "dataType": "feature", + "name": "sitesBenefittedByFireAction" + }, + { + "computed": { + "expression": "$geom.areaHa(sitesBenefittedByFireAction)" + }, + "dataType": "number", + "name": "areaBenefittedByFireActionHa2", + "units": "ha", + "decimalPlaces": 3 + }, + { + "dataType": "text", + "name": "evidenceOfBenefit", + "validate": "maxSize[300]" + }, + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } }, { "dataType": "text", - "name": "firstNationGroupNumber", + "name": "otherInvestmentPriority", "behaviour": [ { - "condition": "participationIndividualsOrGroups == \"Groups\"", - "type": "enable" - } - ], - "constraints": [ - "0", - "1-10", - "11-20", - "21-30", - "31-40", - "41-50" - ], - "validate": [ - { - "rule": "required" - }, - { - "param": { - "expression": "participationGroupNumber", - "type": "computed" - }, - "rule": "max", - "message": "The number of first nation participants cannot be greater than the total number of participants" + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" } ] - }, - { - "dataType": "text", - "name": "participationDetails", - "validate": "required, maxSize[3000]" } ], "dataType": "list", - "name": "participationInformationTableHca" + "name": "fireManagementAreasControlled" }, { "dataType": "number", - "name": "totalSurveyBaseline", + "name": "totalAreaTreatedFireMgmtInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 0, + "decimalPlaces": 3, "computed": { - "expression": "sum(habitatConditionSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" + "expression": "sum(fireManagementAreasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" } }, { "dataType": "number", - "name": "totalSurveyIndicator", + "name": "totalAreaTreatedFireMgmtFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 0, + "decimalPlaces": 3, "computed": { - "expression": "sum(habitatConditionSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" + "expression": "sum(fireManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? areaTreatedHa : 0\")" } }, { @@ -13193,12 +15859,11 @@ { "dataType": "boolean", "name": "dataUploaded", - "description": "" + "description": "" }, { - "dataType": "text", "name": "projectAssuranceDetails", - "description": "", + "dataType": "text", "validate": "maxSize[5000]" }, { @@ -13213,429 +15878,155 @@ ] } ], - "modelName": "NHT - Habitat condition assessment survey", - "title": "Habitat Condition Assessment Survey", + "modelName": "NHT - Fire management", + "title": "Implementing Fire Management Actions", "viewModel": [ { - "type": "section", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Participation information

" - } - ] - }, + "type": "literal", + "source": "

Participation information

" + } + ] + }, + { + "disableTableUpload": true, + "columns": [ { - "disableTableUpload": true, - "columns": [ - { - "width": "10%", - "source": "participationIndividualsOrGroups", - "title": "Are individuals or groups delivering this service?", - "type": "selectOne" - }, - { - "width": "20%", - "type": "col", - "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ - { - "source": "participationIndividualNumber", - "type": "number" - }, - { - "source": "participationGroupNumber", - "type": "selectOne" - } - ] - }, - { - "type": "col", - "width": "20%", - "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ - { - "source": "firstNationIndividualNumber", - "type": "number" - }, - { - "source": "firstNationGroupNumber", - "type": "selectOne" - } - ] - }, - { - "width": "20%", - "source": "participationDetails", - "rows": 4, - "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", - "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", - "type": "textarea" - } - ], - "source": "participationInformationTableHca", - "type": "table" + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" }, { - "type": "row", + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", "items": [ { - "type": "literal", - "source": "

Survey information

Before completing this section, please ensure you have created a Data Set Summary information for every data set produced by the surveys you intend to report

" + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" } ] }, { - "type": "row", + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", "items": [ { - "type": "literal", - "source": "

Totals Summary

" + "source": "firstNationIndividualNumber", + "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" } ] }, { - "type": "row", + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } + ], + "source": "participationInformationTableIfm", + "type": "table" + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span4 col-border-right", "items": [ { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(i) Total Number of baseline habitat condition assessment surveys completed for this reporting period", - "source": "totalSurveyBaseline", - "type": "number" - } - ] - } - ] - }, - { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "(ii) Total Number of indicator habitat condition assessment surveys completed for this reporting period", - "source": "totalSurveyIndicator", - "type": "number" - } - ] + "preLabel": "(i) Total area (ha) treated by fire management action/s (initial) during this reporting period", + "source": "totalAreaTreatedFireMgmtInitial", + "type": "number" } ] } ] }, { - "addRowText": "Add survey", - "removeRowText": "Delete this survey", - "userAddedRows": true, - "source": "habitatConditionSurveys", - "type": "repeat", + "type": "col", + "css": "span4 col-border-right", "items": [ { "type": "row", "items": [ - { - "type": "col", - "items": [ - { - "source": "relatedOutcomes", - "type": "selectOne", - "preLabel": "Which outcome statement/s relates to this survey?" - } - ] - }, - { - "type": "col", - "items": [ - { - "source": "baselineOrIndicatorSurvey", - "type": "selectOne", - "preLabel": "Baseline survey or indicator (follow-up) survey?" - } - ] - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "surveyObjective", - "preLabel": "Survey objective", - "type": "text" + { + "preLabel": "(ii) Total area (ha) treated by fire management action/s (follow up) during this reporting period", + "source": "totalAreaTreatedFireMgmtFollowup", + "type": "number" } ] - }, + } + ] + } + ] + }, + { + "addRowText": "Add a new area of fire management actions", + "userAddedRows": true, + "source": "fireManagementAreasControlled", + "type": "repeat", + "items": [ + { + "type": "row", + "items": [ { - "type": "repeat", - "source": "habitatConditionDataSets", - "userAddedRows": true, - "addRowText": "New data set", - "removeRowText": "Delete this data set", + "css": "span3", + "type": "col", "items": [ - { - "type": "row", - "css": "border-bottom", - "items": [ - { - "type": "col", - "items": [ - { - "source": "dataSetId", - "type": "selectOne", - "preLabel": "Please select the data set produced by this survey. Note it must have already been entered on the Data Set Summary tab." - } - ] - } - ] - }, { "type": "row", "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "projectBaselines", - "type": "selectMany", - "preLabel": "Which project baseline/s relate to this survey?", - "readonly": "readonly" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Activity start date", - "source": "activitiesStartDate", - "type": "date" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Activity end date", - "source": "activitiesEndDate", - "type": "date" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Sites covered by habitat condition assessment survey", - "source": "sitesCoveredForHabitatConditionSurvey", - "type": "feature" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedAreaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedLengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetails", - "type": "document" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Actual area (ha) / length (km) covered by habitat condition assessment survey", - "source": "areaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "lengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", - "type": "selectOne" - } - ] - }, - { - "type": "row", - "items": [ - { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Survey technique", - "source": "emsaProtocol", - "type": "selectOne", - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Survey technique (if Other)", - "source": "otherEmsaProtocol", - "type": "select2Many" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "surveyMethodology", - "preLabel": "Survey methodology", - "type": "text" - } - ] - } - ] + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s does this activity relate to?" } ] - }, + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ { - "columns": [ - { - "width": "40%", - "source": "typesOfHabitat", - "title": "Types of habitat", - "type": "selectOne" - }, + "type": "row", + "items": [ { - "width": "60%", - "source": "habitatCondition", - "title": "Condition of habitat", - "type": "text" + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" } - ], - "userAddedRows": true, - "source": "habitatConditionSurveySpeciesTable", - "type": "table" + ] } ] } @@ -13643,84 +16034,260 @@ }, { "type": "row", + "css": "border-bottom", "items": [ { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" - } - ] - }, - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "initialOrFollowup", + "preLabel": "Initial or follow-up?", + "type": "selectOne" + } + ] + } + ] + }, { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Site/s treated by fire management action", + "source": "sitesTreatedByFireManagement", + "type": "feature" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Actual area (ha) treated by fire management action", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 + } + ] + } + ] } ] }, { "type": "row", + "css": "border-bottom", "items": [ { - "type": "literal", - "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "fireManagementType", + "preLabel": "Type of fire management action", + "type": "select2" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "otherFireManagementType", + "preLabel": "", + "type": "text" + } + ] + } + ] }, { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] - }, - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "sitesBenefittedByFireAction", + "type": "feature", + "preLabel": "Please map any off-site area/s if they benefitted from this fire management action" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "areaBenefittedByFireActionHa2", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + } + ] + }, { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "evidenceOfBenefit", + "type": "textarea", + "preLabel": "If off-site area was mapped please provide a description on the evidence available to reflect this benefit" + } + ] + } + ] } ] + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." }, { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ - { - "title": "Attached documents", - "source": "attachments", - "type": "document" - } - ] + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" } ] } ] }, "modelName": null, - "templateName": "nhtHabitatConditionAssessmentSurvey", + "templateName": "nhtFireManagement", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Habitat condition assessment", + "name": "NHT - Fire management", "description": null }, { "collapsedByDefault": false, "template": { - "title": "Identifying and Prioritising the Location of Potential Sites", - "modelName": "NHT - Identifying sites", "dataModel": [ { "allowRowDelete": "false", @@ -13829,27 +16396,18 @@ } ], "dataType": "list", - "name": "participationInformationTableIpl" + "name": "participationInformationTableHyd" }, { "columns": [ { "dataType": "text", - "name": "sitesHaveBeenIdentified", - "description": "", - "validate": "required,maxSize[300]" - }, - { - "dataType": "text", - "name": "methodsUsedToIdentify", - "description": "", - "validate": "required,maxSize[300]" - }, - { - "dataType": "text", - "name": "outcomesAchievement", - "description": "", - "validate": "required,maxSize[300]" + "name": "initialOrFollowup", + "constraints": [ + "Initial", + "Follow-up" + ], + "validate": "required" }, { "name": "relatedOutcomes", @@ -13858,23 +16416,11 @@ "validate": "required", "constraints": { "textProperty": "label", - "valueProperty": "label", + "valueProperty": "value", "type": "pre-populated", "config": { "source": { - "url": "/project/outcomesByScores", - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - }, - { - "expression": "scores", - "name": "scoreIds", - "type": "computed" - } - ] + "context-path": "outcomes" } } } @@ -13898,7 +16444,6 @@ { "dataType": "text", "name": "otherInvestmentPriority", - "description": "Describe the investment priority (if Other) was selected", "behaviour": [ { "type": "enable", @@ -13907,240 +16452,167 @@ ] }, { - "columns": [ - { - "dataType": "feature", - "name": "sitesAssessed", - "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping.", - "validate": "required" - }, - { - "computed": { - "expression": "$geom.areaHa(sitesAssessed)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHaAssessed", - "units": "ha", - "decimalPlaces": 3 - }, - { - "computed": { - "expression": "$geom.lengthKm(sitesAssessed)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKmAssessed", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKmAssessed > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHaAssessed" - }, - "dataType": "number", - "name": "areaTreatedHaAssessed", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "mappingNotAlignedReasonAssessed", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHaAssessed, calculatedAreaTreatedHaAssessed, 0.1) and within(lengthTreatedKmAssessed, calculatedLengthTreatedKmAssessed, 0.1))", - "type": "visible" - } - ] - }, - { - "dataType": "text", - "name": "mappingNotAlignedCommentsAssessed", - "validate": "required,maxSize[100]", - "behaviour": [ - { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReasonAssessed" - } - ] - }, - { - "dataType": "document", - "name": "extraMappingDetailsAssessed", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHaAssessed, calculatedAreaTreatedHaAssessed, 0.1) and within(lengthTreatedKmAssessed, calculatedLengthTreatedKmAssessed, 0.1))", - "type": "visible" - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "$geom.lengthKm(sitesAssessed)" - }, - "dataType": "number", - "name": "lengthTreatedKmAssessed", - "units": "km", - "decimalPlaces": 3 - }, - { - "dataType": "text", - "name": "assessedSitesName", - "description": "", - "validate": "required,maxSize[300]" - }, - { - "dataType": "feature", - "name": "sitesIdentified", - "validate": [ - { - "rule": "required" - } - ] - }, - { - "computed": { - "expression": "$geom.areaHa(sitesIdentified)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHaIdentified", - "units": "ha", - "decimalPlaces": 3 - }, - { - "computed": { - "expression": "$geom.lengthKm(sitesIdentified)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKmIdentified", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKmIdentified > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHaIdentified" - }, - "dataType": "number", - "name": "areaTreatedHaIdentified", - "units": "ha", - "decimalPlaces": 3, - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - } - ] - }, + "dataType": "feature", + "name": "sitesOfHydrological", + "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesOfHydrological)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesOfHydrological)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ { - "dataType": "text", - "name": "mappingNotAlignedReasonIdentified", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHaIdentified, calculatedAreaTreatedHaIdentified, 0.1) and within(lengthTreatedKmIdentified, calculatedLengthTreatedKmIdentified, 0.1))", - "type": "visible" - } - ] - }, + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ { - "dataType": "text", - "name": "mappingNotAlignedCommentsIdentified", - "validate": "required,maxSize[100]", - "behaviour": [ - { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReasonIdentified" - } - ] - }, + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ { - "dataType": "document", - "name": "extraMappingDetailsIdentified", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHaIdentified, calculatedAreaTreatedHaIdentified, 0.1) and within(lengthTreatedKmIdentified, calculatedLengthTreatedKmIdentified, 0.1))", - "type": "visible" - } - ] - }, + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ { - "defaultValue": { - "type": "computed", - "expression": "$geom.lengthKm(sitesIdentified)" - }, - "dataType": "number", - "name": "lengthTreatedKmIdentified", - "units": "km", - "decimalPlaces": 3 - }, + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKm" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "number", + "name": "noTreatments", + "defaultValue": "", + "validate": "required,min[0]" + }, + { + "dataType": "number", + "name": "waterVolume", + "defaultValue": "", + "validate": "required,min[0]" + }, + { + "dataType": "number", + "name": "stormWaterVolume", + "defaultValue": "", + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "treatmentType", + "description": "", + "constraints": [ + "Removing barriers (e.g fish barriers)", + "Structure instalment or modification (e.g. weirs, flow gauging stations, fords, culverts)", + "Resnagging", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "otherTreatmentType", + "behaviour": [ { - "dataType": "text", - "name": "identifiedSitesName", - "description": "", - "validate": "maxSize[300]" + "condition": "treatmentType == \"Other\"", + "type": "enable" } ], - "dataType": "list", - "name": "potentialSitesSurveyBaselineTable" + "validate": "required,maxSize[300]" }, { - "dataType": "number", - "name": "rowCount", - "decimalPlaces": 0, - "computed": { - "expression": "sum(potentialSitesSurveyBaselineTable, \"assessedSitesName ? 1 : 0\")" - } + "dataType": "text", + "name": "treatmentObjective", + "description": "Aim of the action - e.g. hydrological regime change from X to Y.", + "validate": "required,maxSize[300]" } ], "dataType": "list", - "name": "potentialSiteSurveys", - "minSize": 1 + "name": "hydroAreasControlled" }, { "dataType": "number", - "name": "totalPotentialSites", + "name": "totalHydroTreatmentsInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { - "expression": "sum(potentialSiteSurveys, \"rowCount\")" + "expression": "sum(hydroAreasControlled, \"initialOrFollowup == 'Initial' ? noTreatments : 0\")" + } + }, + { + "dataType": "number", + "name": "totalHydroTreatmentsFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(hydroAreasControlled, \"initialOrFollowup == 'Follow-up' ? noTreatments : 0\")" } }, { @@ -14174,456 +16646,435 @@ ] } ], + "modelName": "NHT - Improving hydrological regimes", + "title": "Improving Hydrological Regimes for Site Eco-hydrology", "viewModel": [ { - "type": "section", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Participation information

" - } - ] + "type": "literal", + "source": "

Participation information

" + } + ] + }, + { + "disableTableUpload": true, + "columns": [ + { + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" }, { - "disableTableUpload": true, - "columns": [ - { - "width": "10%", - "source": "participationIndividualsOrGroups", - "title": "Are individuals or groups delivering this service?", - "type": "selectOne" - }, - { - "width": "20%", - "type": "col", - "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ - { - "source": "participationIndividualNumber", - "type": "number" - }, - { - "source": "participationGroupNumber", - "type": "selectOne" - } - ] - }, + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ { - "type": "col", - "width": "20%", - "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ - { - "source": "firstNationIndividualNumber", - "type": "number" - }, - { - "source": "firstNationGroupNumber", - "type": "selectOne" - } - ] + "source": "participationIndividualNumber", + "type": "number" }, { - "width": "20%", - "source": "participationDetails", - "rows": 4, - "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", - "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", - "type": "textarea" + "source": "participationGroupNumber", + "type": "selectOne" } - ], - "source": "participationInformationTableIpl", - "type": "table" + ] }, { - "type": "row", + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", "items": [ { - "type": "literal", - "source": "

Totals Summary

" + "source": "firstNationIndividualNumber", + "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" } ] }, { - "type": "row", + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } + ], + "source": "participationInformationTableHyd", + "type": "table" + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span4 col-border-right", "items": [ { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "(i) Total number of potential sites assessed during this reporting period", - "source": "totalPotentialSites", - "type": "number" - } - ] + "preLabel": "(i) Total number of treatments implemented to improve site eco-hydrology (initial) for this reporting period", + "source": "totalHydroTreatmentsInitial", + "type": "number" } ] } ] }, { - "addRowText": "Add a new outcome statement and assessed sites", - "userAddedRows": true, - "source": "potentialSiteSurveys", - "type": "repeat", + "type": "col", + "css": "span4 col-border-right", "items": [ { "type": "row", "items": [ { - "css": "span3", - "type": "col", - "items": [ - { - "type": "row", - "items": [ - { - "source": "relatedOutcomes", - "type": "selectOne", - "preLabel": "Which outcome statement/s does this activity relate to?" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" - } - ] - } - ] + "preLabel": "(iii) Total number of treatments implemented to improve site eco-hydrology (follow up) for this reporting period", + "source": "totalHydroTreatmentsFollowup", + "type": "number" } ] - }, + } + ] + } + ] + }, + { + "addRowText": "Add a new area treated to improve hydrological regimes", + "userAddedRows": true, + "source": "hydroAreasControlled", + "type": "repeat", + "items": [ + { + "type": "row", + "items": [ { - "type": "row", + "css": "span3 col-border-right", + "type": "col", "items": [ { - "css": "span3", - "type": "col", - "items": [ - { - "type": "row", - "items": [ - { - "source": "sitesHaveBeenIdentified", - "preLabel": "What have the sites identified for?", - "type": "text" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "methodsUsedToIdentify", - "preLabel": "What method/s were used to identify and prioritise?", - "type": "text" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "source": "outcomesAchievement", - "preLabel": "How do they contribute to the achievement of the outcome statement/s?", - "type": "textarea" - } - ] + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s does this activity relate to?" } ] } ] }, { - "columns": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ { - "width": "15%", - "title": "Site/s assessed*", - "helpText": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping.", - "type": "col", + "type": "row", "items": [ { - "source": "sitesAssessed", - "type": "feature" - }, - { - "source": "calculatedAreaTreatedHaAssessed", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - }, - { - "source": "calculatedLengthTreatedKmAssessed", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - }, - { - "type": "row", - "items": [ - { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetailsAssessed", - "type": "document" - } - ] + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" } ] - }, + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span3 col-border-right", + "items": [ { - "width": "15%", - "type": "col", - "title": "Actual area (ha) / length (km) of assessed site*", - "helpText": "Manually enter correct figure for this reporting period if different to mapped value.", + "type": "row", "items": [ { - "source": "areaTreatedHaAssessed", - "type": "number", - "displayOptions": { - "displayUnits": true - } - }, - { - "source": "lengthTreatedKmAssessed", - "type": "number", - "displayOptions": { - "displayUnits": true - } - }, - { - "type": "row", - "items": [ - { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReasonAssessed", - "type": "selectOne" - } - ] - }, - { - "type": "row", - "items": [ - { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedCommentsAssessed", - "type": "textarea", - "rows": 5 - } - ] + "source": "initialOrFollowup", + "preLabel": "Initial or Follow-up?", + "type": "selectOne" } ] - }, - { - "width": "20%", - "source": "assessedSitesName", - "title": "Name of assessed site", - "type": "text" - }, + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ { - "width": "15%", - "title": "Site/s identified and prioritised", - "helpText": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping.", - "type": "col", + "type": "row", "items": [ { - "source": "sitesIdentified", + "preLabel": "Site/s where hydrological regimes have been improved", + "source": "sitesOfHydrological", "type": "feature" - }, - { - "source": "calculatedAreaTreatedHaIdentified", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - }, + } + ] + }, + { + "type": "row", + "items": [ { - "source": "calculatedLengthTreatedKmIdentified", + "source": "calculatedAreaTreatedHa", "type": "number", "displayOptions": { "displayUnits": true }, "readonly": "readonly" - }, - { - "type": "row", - "items": [ - { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetailsIdentified", - "type": "document" - } - ] } ] }, { - "width": "15%", - "type": "col", - "title": "Actual area (ha) / length (km) of identified and prioritised site", - "helpText": "Manually enter correct figure for this reporting period if different to mapped value.", + "type": "row", "items": [ { - "source": "areaTreatedHaIdentified", - "type": "number", - "displayOptions": { - "displayUnits": true - } - }, + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "source": "lengthTreatedKmIdentified", + "preLabel": "Actual area (ha) where the hydrological regimes have been improved", + "source": "areaTreatedHa", "type": "number", "displayOptions": { "displayUnits": true } - }, - { - "type": "row", - "items": [ - { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReasonIdentified", - "type": "selectOne" - } - ] - }, + } + ] + }, + { + "type": "row", + "items": [ { - "type": "row", - "items": [ - { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedCommentsIdentified", - "type": "textarea", - "rows": 5 - } - ] + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" } ] }, { - "width": "20%", - "source": "identifiedSitesName", - "title": "Name of identified and prioritised site", - "type": "textarea" + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 + } + ] } - ], - "addRowText": "Add a new assessed site to this outcome", - "userAddedRows": true, - "disableTableUpload": true, - "source": "potentialSitesSurveyBaselineTable", - "type": "table" + ] } ] }, { "type": "row", + "css": "border-bottom", "items": [ { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" - } - ] - }, - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "noTreatments", + "preLabel": "Number of treatments implemented to improve site eco-hydrology", + "type": "number" + } + ] + } + ] + }, { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "waterVolume", + "type": "number", + "preLabel": "Volume of water (in megalitres) introduced as a result of the intervention" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "stormWaterVolume", + "type": "number", + "preLabel": "Volume of stormwater (in megalitres) redirected or removed" + } + ] + } + ] } ] }, { "type": "row", + "css": "border-bottom", "items": [ { - "type": "literal", - "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "treatmentType", + "preLabel": "Type of treatment implemented to improve eco-hydrological treatment", + "type": "select2" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "otherTreatmentType", + "placeholder": "Type of treatment implemented (if Other)", + "type": "text" + } + ] + } + ] }, { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "treatmentObjective", + "type": "textarea", + "preLabel": "Treatment objective" + } + ] + } + ] } ] - }, + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "row", - "items": [ - { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." - } - ] + "type": "literal", + "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." }, { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ - { - "title": "Attached documents", - "source": "attachments", - "type": "document" - } - ] + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" } ] } ] }, "modelName": null, - "templateName": "nhtIdentifyingSites", + "templateName": "nhtImprovingHydrologicalRegimes", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Identifying sites", + "name": "NHT - Improving hydrological regimes", "description": null }, { @@ -14737,31 +17188,81 @@ } ], "dataType": "list", - "name": "participationInformationTableIfm" + "name": "participationInformationTableIlm" }, { + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" + }, + { + "dataType": "image", + "name": "photographicEvidence" + }, + { + "dataType": "boolean", + "name": "dataUploaded", + "description": "" + }, + { + "name": "projectAssuranceDetails", + "dataType": "text", + "validate": "maxSize[5000]" + }, + { + "dataType": "list", + "name": "assuranceDocuments", "columns": [ { - "columns": [ - { - "dataType": "feature", - "name": "sitesBenefittedByFireAction" - }, - { - "computed": { - "expression": "$geom.areaHa(sitesBenefittedByFireAction)" - }, - "dataType": "number", - "name": "areaBenefittedByFireActionHa" - }, + "dataType": "document", + "name": "attachments", + "description": "Please attach any Evidence of Service Delivery here." + } + ] + }, + { + "columns": [ + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ { - "dataType": "text", - "name": "evidenceOfBenefit", - "validate": "maxSize[300]" + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" } - ], - "dataType": "list", - "name": "fireManagementDetails" + ] }, { "dataType": "text", @@ -14774,12 +17275,12 @@ }, { "dataType": "feature", - "name": "sitesTreatedByFireManagement", + "name": "sitesCoveredByPracticeChange", "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." }, { "computed": { - "expression": "$geom.areaHa(sitesTreatedByFireManagement)" + "expression": "$geom.areaHa(sitesCoveredByPracticeChange)" }, "dataType": "number", "name": "calculatedAreaTreatedHa", @@ -14788,7 +17289,7 @@ }, { "computed": { - "expression": "$geom.lengthKm(sitesTreatedByFireManagement)" + "expression": "$geom.lengthKm(sitesCoveredByPracticeChange)" }, "dataType": "number", "name": "calculatedLengthTreatedKm", @@ -14822,190 +17323,147 @@ "name": "mappingNotAlignedReason", "constraints": [ "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, - { - "dataType": "text", - "name": "mappingNotAlignedComments", - "validate": "required,maxSize[100]", - "behaviour": [ - { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReason" - } - ] - }, - { - "dataType": "document", - "name": "extraMappingDetails", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKm" - }, - "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 - }, - { - "dataType": "text", - "name": "fireManagementType", - "description": "", - "constraints": [ - "Cultural burn", - "Ecological burn", - "Grading", - "Hazard reduction burn", - "Herbicide", - "Slashing", - "Other" - ], - "validate": "required" - }, - { - "dataType": "text", - "name": "otherFireManagementType", - "behaviour": [ - { - "condition": "fireManagementType == \"Other\"", - "type": "enable" - } - ], - "validate": "required,maxSize[100]" - }, - { - "dataType": "feature", - "name": "sitesBenefittedByFireAction" - }, - { - "computed": { - "expression": "$geom.areaHa(sitesBenefittedByFireAction)" - }, - "dataType": "number", - "name": "areaBenefittedByFireActionHa2", - "units": "ha", - "decimalPlaces": 3 - }, - { - "dataType": "text", - "name": "evidenceOfBenefit", - "validate": "maxSize[300]" - }, - { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "outcomes" - } + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "type": "if" } - } + ] }, { - "name": "investmentPriorities2", "dataType": "text", - "description": "", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.investmentPriorities" - } + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" } - } + ] }, { - "dataType": "text", - "name": "otherInvestmentPriority", + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", "behaviour": [ { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "type": "if" } ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKm" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + }, + { + "columns": [ + { + "dataType": "text", + "name": "practiceChangeType", + "description": "", + "constraints": [ + "Fencing", + "Stocking rates", + "Watering arrangements", + "Paddock design", + "Rotation grazing", + "Permaculture", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "otherPracticeChangeType", + "description": "Please specify the type of land management practice change if Other (specify in notes) was selected in the Type of land management practice change.", + "behaviour": [ + { + "condition": "practiceChangeType == \"Other\"", + "type": "enable" + } + ], + "validate": "required,maxSize[100]" + }, + { + "dataType": "text", + "name": "industryType", + "constraints": [ + "Broad acre cropping", + "Dairy", + "Horticulture", + "Grazing", + "Fisheries", + "Aquaculture", + "Environment" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "practiceChangeObjective", + "description": "How will the practice change/s contribute to the area?", + "validate": "required,maxSize[300]" + }, + { + "dataType": "feature", + "name": "offSiteBenefitSites" + }, + { + "computed": { + "expression": "$geom.areaHa(offSiteBenefitSites)" + }, + "dataType": "number", + "name": "offSiteBenefitAreaHa2", + "units": "ha", + "decimalPlaces": 3 + }, + { + "dataType": "text", + "name": "evidenceOfBenefit", + "validate": "maxSize[300]" + } + ], + "dataType": "list", + "name": "landManagementDetails" } ], "dataType": "list", - "name": "fireManagementAreasControlled" + "name": "landManagementAreasControlled" }, { "dataType": "number", - "name": "totalAreaTreatedFireMgmtInitial", + "name": "totalAreaPracticeChangeInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { - "expression": "sum(fireManagementAreasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" + "expression": "sum(landManagementAreasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" } }, { "dataType": "number", - "name": "totalAreaTreatedFireMgmtFollowup", + "name": "totalAreaPracticeChangeFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { - "expression": "sum(fireManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? areaTreatedHa : 0\")" + "expression": "sum(landManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? areaTreatedHa : 0\")" } - }, - { - "dataType": "text", - "name": "comments", - "validate": "maxSize[1500]" - }, - { - "dataType": "image", - "name": "photographicEvidence" - }, - { - "dataType": "boolean", - "name": "dataUploaded", - "description": "" - }, - { - "name": "projectAssuranceDetails", - "dataType": "text", - "validate": "maxSize[5000]" - }, - { - "dataType": "list", - "name": "assuranceDocuments", - "columns": [ - { - "dataType": "document", - "name": "attachments", - "description": "Please attach any Evidence of Service Delivery here." - } - ] } ], - "modelName": "NHT - Fire management", - "title": "Implementing Fire Management Actions", + "modelName": "NHT - Improving land management practices", + "title": "Improving Land Management Practices", "viewModel": [ { "type": "row", @@ -15066,7 +17524,7 @@ "type": "textarea" } ], - "source": "participationInformationTableIfm", + "source": "participationInformationTableIlm", "type": "table" }, { @@ -15089,8 +17547,8 @@ "type": "row", "items": [ { - "preLabel": "(i) Total area (ha) treated by fire management action/s (initial) during this reporting period", - "source": "totalAreaTreatedFireMgmtInitial", + "preLabel": "(i) Total area (ha) covered by practice change (initial) during this reporting period", + "source": "totalAreaPracticeChangeInitial", "type": "number" } ] @@ -15105,8 +17563,8 @@ "type": "row", "items": [ { - "preLabel": "(ii) Total area (ha) treated by fire management action/s (follow up) during this reporting period", - "source": "totalAreaTreatedFireMgmtFollowup", + "preLabel": "(ii) Total area (ha) covered by practice change (follow up) during this reporting period", + "source": "totalAreaPracticeChangeFollowup", "type": "number" } ] @@ -15116,9 +17574,9 @@ ] }, { - "addRowText": "Add a new area of fire management actions", + "addRowText": "Add a new area of improved land management", "userAddedRows": true, - "source": "fireManagementAreasControlled", + "source": "landManagementAreasControlled", "type": "repeat", "items": [ { @@ -15177,7 +17635,13 @@ ] } ] - }, + } + ] + }, + { + "type": "row", + "css": "border-bottom", + "items": [ { "type": "col", "css": "span3 col-border-right", @@ -15186,8 +17650,8 @@ "type": "row", "items": [ { - "preLabel": "Site/s treated by fire management action", - "source": "sitesTreatedByFireManagement", + "preLabel": "Sites covered by practice change", + "source": "sitesCoveredByPracticeChange", "type": "feature" } ] @@ -15225,7 +17689,7 @@ "type": "row", "items": [ { - "preLabel": "Actual area (ha) treated by fire management action", + "preLabel": "Actual area (ha) covered by practice change", "source": "areaTreatedHa", "type": "number", "displayOptions": { @@ -15260,155 +17724,152 @@ ] }, { - "type": "row", - "css": "border-bottom", - "items": [ + "columns": [ { + "width": "20%", + "title": "Type of action", "type": "col", - "css": "span3 col-border-right", "items": [ { "type": "row", "items": [ { - "source": "fireManagementType", - "preLabel": "Type of fire management action", - "type": "select2" + "source": "practiceChangeType", + "type": "selectOne" } ] }, { - "type": "row", - "items": [ - { - "source": "otherFireManagementType", - "preLabel": "", - "type": "text" - } - ] + "source": "otherPracticeChangeType", + "title": "Type of action (if Other)", + "type": "text" } ] }, { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "sitesBenefittedByFireAction", - "type": "feature", - "preLabel": "Please map any off-site area/s if they benefitted from this fire management action" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "areaBenefittedByFireActionHa2", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - } - ] + "width": "20%", + "source": "industryType", + "title": "Industry type", + "type": "selectOne" + }, + { + "width": "35%", + "source": "practiceChangeObjective", + "title": "Purpose of improving land management practice", + "type": "textarea" }, { + "width": "25%", + "title": "Please map any off-site area/s if they benefitted from this practice change", "type": "col", - "css": "span3 col-border-right", "items": [ + { + "source": "offSiteBenefitSites", + "type": "feature" + }, { "type": "row", "items": [ { - "source": "evidenceOfBenefit", - "type": "textarea", - "preLabel": "If off-site area was mapped please provide a description on the evidence available to reflect this benefit" + "source": "offSiteBenefitAreaHa2", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" } ] + }, + { + "source": "evidenceOfBenefit", + "placeholder": "If off-site area was mapped please provide a description on the evidence available to reflect this benefit", + "type": "textarea" } ] } - ] - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" + ], + "userAddedRows": true, + "source": "landManagementDetails", + "type": "table" } ] }, { - "type": "row", + "type": "section", "items": [ { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" - } - ] - }, - { - "type": "row", - "items": [ + "type": "row", + "items": [ + { + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, { - "type": "literal", - "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." + "type": "row", + "items": [ + { + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] }, { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] - }, - { - "type": "row", - "items": [ + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." + }, + { + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." - } - ] - }, - { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, { - "title": "Attached documents", - "source": "attachments", - "type": "document" + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" + } + ] } ] } ] }, "modelName": null, - "templateName": "nhtFireManagement", + "templateName": "nhtLandManagementPractices", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Fire management", + "name": "NHT - Improving land management practices", "description": null }, { @@ -15522,7 +17983,7 @@ } ], "dataType": "list", - "name": "participationInformationTableHyd" + "name": "participationInformationTableMad" }, { "columns": [ @@ -15535,6 +17996,52 @@ ], "validate": "required" }, + { + "columns": [ + { + "dataType": "text", + "name": "targetDisease", + "description": "", + "validate": "required,maxSize[100]" + }, + { + "dataType": "text", + "name": "managementMethod", + "dwcAttribute": "treatmentMethod", + "constraints": [ + "Biological control agents", + "Fumigation", + "Host destruction", + "Plant disease management - quarantine", + "Plant disease management - treatment", + "Plant disease management - hygiene", + "Positive competition", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "otherManagementMethod", + "description": "Please specify the management method used if Other (specify in notes) was selected in the Management Method column.", + "behaviour": [ + { + "condition": "managementMethod == \"Other\"", + "type": "enable" + } + ], + "validate": "required,maxSize[100]" + }, + { + "dataType": "text", + "name": "treatmentObjective", + "description": "Please start with either part of the field heading [dash]. If reporting on both separate the information with a ';'. (eg. 'Management method -' and a brief description of method being used to fix the area; 'Treatment objective -' and a brief description of how the work will contribute to the area.", + "validate": "required,maxSize[300]" + } + ], + "dataType": "list", + "name": "diseaseManagementDetails" + }, { "name": "relatedOutcomes", "dataType": "text", @@ -15579,12 +18086,12 @@ }, { "dataType": "feature", - "name": "sitesOfHydrological", - "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." + "name": "sitesDiseaseManaged", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." }, { "computed": { - "expression": "$geom.areaHa(sitesOfHydrological)" + "expression": "$geom.areaHa(sitesDiseaseManaged)" }, "dataType": "number", "name": "calculatedAreaTreatedHa", @@ -15593,7 +18100,7 @@ }, { "computed": { - "expression": "$geom.lengthKm(sitesOfHydrological)" + "expression": "$geom.lengthKm(sitesDiseaseManaged)" }, "dataType": "number", "name": "calculatedLengthTreatedKm", @@ -15632,111 +18139,86 @@ "validate": "required", "behaviour": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", - "type": "if" - } - ] - }, - { - "dataType": "text", - "name": "mappingNotAlignedComments", - "validate": "required,maxSize[100]", - "behaviour": [ - { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReason" - } - ] - }, - { - "dataType": "document", - "name": "extraMappingDetails", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", - "type": "if" - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKm" - }, - "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 - }, - { - "dataType": "number", - "name": "noTreatments", - "defaultValue": "", - "validate": "required,min[0]" - }, - { - "dataType": "number", - "name": "waterVolume", - "defaultValue": "", - "validate": "required,min[0]" - }, - { - "dataType": "number", - "name": "stormWaterVolume", - "defaultValue": "", - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "treatmentType", - "description": "", - "constraints": [ - "Removing barriers (e.g fish barriers)", - "Structure instalment or modification (e.g. weirs, flow gauging stations, fords, culverts)", - "Resnagging", - "Other" - ], - "validate": "required" + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] }, { "dataType": "text", - "name": "otherTreatmentType", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", "behaviour": [ { - "condition": "treatmentType == \"Other\"", - "type": "enable" + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" } - ], - "validate": "required,maxSize[300]" + ] }, { - "dataType": "text", - "name": "treatmentObjective", - "description": "Aim of the action - e.g. hydrological regime change from X to Y.", - "validate": "required,maxSize[300]" + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKm" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 } ], "dataType": "list", - "name": "hydroAreasControlled" + "name": "diseaseManagementAreasControlled" }, { "dataType": "number", - "name": "totalHydroTreatmentsInitial", + "name": "totalAreaDiseaseManagementInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 0, + "decimalPlaces": 3, "computed": { - "expression": "sum(hydroAreasControlled, \"initialOrFollowup == 'Initial' ? noTreatments : 0\")" + "expression": "sum(diseaseManagementAreasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" } }, { "dataType": "number", - "name": "totalHydroTreatmentsFollowup", + "name": "totalAreaDiseaseManagementFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 0, + "decimalPlaces": 3, "computed": { - "expression": "sum(hydroAreasControlled, \"initialOrFollowup == 'Follow-up' ? noTreatments : 0\")" + "expression": "sum(diseaseManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? areaTreatedHa : 0\")" + } + }, + { + "dataType": "number", + "name": "totalLengthDiseaseManagementInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(diseaseManagementAreasControlled, \"initialOrFollowup == 'Initial' ? lengthTreatedKm : 0\")" + } + }, + { + "dataType": "number", + "name": "totalLengthDiseaseManagementFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(diseaseManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? lengthTreatedKm : 0\")" } }, { @@ -15770,8 +18252,8 @@ ] } ], - "modelName": "NHT - Improving hydrological regimes", - "title": "Improving Hydrological Regimes for Site Eco-hydrology", + "modelName": "NHT - Disease management", + "title": "Managing Disease", "viewModel": [ { "type": "row", @@ -15832,7 +18314,7 @@ "type": "textarea" } ], - "source": "participationInformationTableHyd", + "source": "participationInformationTableMad", "type": "table" }, { @@ -15855,8 +18337,8 @@ "type": "row", "items": [ { - "preLabel": "(i) Total number of treatments implemented to improve site eco-hydrology (initial) for this reporting period", - "source": "totalHydroTreatmentsInitial", + "preLabel": "(i) Total area (ha) for disease treatment/prevention (initial) for this reporting period", + "source": "totalAreaDiseaseManagementInitial", "type": "number" } ] @@ -15871,8 +18353,40 @@ "type": "row", "items": [ { - "preLabel": "(iii) Total number of treatments implemented to improve site eco-hydrology (follow up) for this reporting period", - "source": "totalHydroTreatmentsFollowup", + "preLabel": "(ii) Total area (ha) for disease treatment/prevention (follow up) for this reporting period", + "source": "totalAreaDiseaseManagementFollowup", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(iii) Total length (km) for disease treatment/prevention (initial) for this reporting period", + "source": "totalLengthDiseaseManagementInitial", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(iv) Total length (km) for disease treatment/prevention (follow up) for this reporting period", + "source": "totalLengthDiseaseManagementFollowup", "type": "number" } ] @@ -15882,16 +18396,16 @@ ] }, { - "addRowText": "Add a new area treated to improve hydrological regimes", + "addRowText": "Add a new area where disease is being managed", "userAddedRows": true, - "source": "hydroAreasControlled", + "source": "diseaseManagementAreasControlled", "type": "repeat", "items": [ { "type": "row", "items": [ { - "css": "span3 col-border-right", + "css": "span3", "type": "col", "items": [ { @@ -15926,6 +18440,19 @@ }, { "type": "row", + "css": "border-bottom", + "items": [ + { + "preLabel": "Initial or Follow-up?", + "css": "span3", + "source": "initialOrFollowup", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "css": "border-bottom", "items": [ { "type": "col", @@ -15935,25 +18462,22 @@ "type": "row", "items": [ { - "source": "initialOrFollowup", - "preLabel": "Initial or Follow-up?", - "type": "selectOne" + "preLabel": "Site/s where disease managed", + "source": "sitesDiseaseManaged", + "type": "feature" } ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ + }, { "type": "row", "items": [ { - "preLabel": "Site/s where hydrological regimes have been improved", - "source": "sitesOfHydrological", - "type": "feature" + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" } ] }, @@ -15961,7 +18485,7 @@ "type": "row", "items": [ { - "source": "calculatedAreaTreatedHa", + "source": "calculatedLengthTreatedKm", "type": "number", "displayOptions": { "displayUnits": true @@ -15990,7 +18514,7 @@ "type": "row", "items": [ { - "preLabel": "Actual area (ha) where the hydrological regimes have been improved", + "preLabel": "Actual area (ha) / length (km) where disease has been managed", "source": "areaTreatedHa", "type": "number", "displayOptions": { @@ -16003,128 +18527,79 @@ "type": "row", "items": [ { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", - "type": "selectOne" - } - ] - }, - { - "type": "row", - "items": [ - { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 - } - ] - } - ] - } - ] - }, - { - "type": "row", - "css": "border-bottom", - "items": [ - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "noTreatments", - "preLabel": "Number of treatments implemented to improve site eco-hydrology", - "type": "number" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "waterVolume", - "type": "number", - "preLabel": "Volume of water (in megalitres) introduced as a result of the intervention" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "stormWaterVolume", + "source": "lengthTreatedKm", "type": "number", - "preLabel": "Volume of stormwater (in megalitres) redirected or removed" + "displayOptions": { + "displayUnits": true + } } ] - } - ] - } - ] - }, - { - "type": "row", - "css": "border-bottom", - "items": [ - { - "type": "col", - "css": "span3 col-border-right", - "items": [ + }, { "type": "row", "items": [ { - "source": "treatmentType", - "preLabel": "Type of treatment implemented to improve eco-hydrological treatment", - "type": "select2" + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" } ] }, { "type": "row", "items": [ - { - "source": "otherTreatmentType", - "placeholder": "Type of treatment implemented (if Other)", - "type": "text" + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 } ] } ] + } + ] + }, + { + "columns": [ + { + "width": "30%", + "source": "targetDisease", + "title": "Disease treated", + "type": "textarea" }, { + "width": "20%", "type": "col", - "css": "span3 col-border-right", + "title": "Type of management method / treatment", "items": [ { "type": "row", "items": [ { - "source": "treatmentObjective", - "type": "textarea", - "preLabel": "Treatment objective" + "source": "managementMethod", + "type": "selectOne" } ] + }, + { + "source": "otherManagementMethod", + "placeholder": "Type of management method / treatment (if other)", + "type": "text" } ] + }, + { + "width": "50%", + "source": "treatmentObjective", + "title": "Management method / treatment objective", + "type": "textarea" } - ] + ], + "userAddedRows": true, + "addRowText": "Add a new disease being managed in this area", + "source": "diseaseManagementDetails", + "type": "table" } ] }, @@ -16193,12 +18668,12 @@ ] }, "modelName": null, - "templateName": "nhtImprovingHydrologicalRegimes", + "templateName": "nhtDiseaseManagement", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Improving hydrological regimes", + "name": "NHT - Disease management", "description": null }, { @@ -16312,39 +18787,11 @@ } ], "dataType": "list", - "name": "participationInformationTableIlm" - }, - { - "dataType": "text", - "name": "comments", - "validate": "maxSize[1500]" - }, - { - "dataType": "image", - "name": "photographicEvidence" - }, - { - "dataType": "boolean", - "name": "dataUploaded", - "description": "" - }, - { - "name": "projectAssuranceDetails", - "dataType": "text", - "validate": "maxSize[5000]" + "name": "participationInformationTableCom" }, { "dataType": "list", - "name": "assuranceDocuments", - "columns": [ - { - "dataType": "document", - "name": "attachments", - "description": "Please attach any Evidence of Service Delivery here." - } - ] - }, - { + "name": "approvalsByOutcome", "columns": [ { "name": "relatedOutcomes", @@ -16390,130 +18837,53 @@ }, { "dataType": "text", - "name": "initialOrFollowup", + "name": "invoicingThisActivity", "constraints": [ - "Initial", - "Follow-up" + "Yes", + "No" ], "validate": "required" }, { - "dataType": "feature", - "name": "sitesCoveredByPracticeChange", - "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." - }, - { - "computed": { - "expression": "$geom.areaHa(sitesCoveredByPracticeChange)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHa", - "units": "ha", - "decimalPlaces": 3 - }, - { - "computed": { - "expression": "$geom.lengthKm(sitesCoveredByPracticeChange)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKm", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKm > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHa" - }, - "dataType": "number", - "name": "areaTreatedHa", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "mappingNotAlignedReason", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ + "columns": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", - "type": "if" - } - ] - }, - { - "dataType": "text", - "name": "mappingNotAlignedComments", - "validate": "required,maxSize[100]", - "behaviour": [ + "dataType": "date", + "name": "approvalGivenDate", + "validate": "required" + }, { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReason" - } - ] - }, - { - "dataType": "document", - "name": "extraMappingDetails", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ + "dataType": "text", + "name": "approvalId", + "validate": "required,maxSize[100]", + "description": "" + }, { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", - "type": "if" - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKm" - }, - "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 - }, - { - "columns": [ + "dataType": "text", + "name": "approvingOrg", + "validate": "required,maxSize[200]", + "description": "" + }, { "dataType": "text", - "name": "practiceChangeType", + "name": "approvalType", "description": "", "constraints": [ - "Fencing", - "Stocking rates", - "Watering arrangements", - "Paddock design", - "Rotation grazing", - "Permaculture", - "Other" + "Access to protected species and ecological communities", + "Animal/Human Ethics Approvals", + "Access to private land/sea", + "Access to public land/sea (e.g. protected areas)", + "Access to First Nations Australians land/sea", + "The use of specialised and regulated equipment (e.g. drones, firearms, vessels, vehicles)", + "Other purposes as agreed to by the Department" ], "validate": "required" }, { "dataType": "text", - "name": "otherPracticeChangeType", - "description": "Please specify the type of land management practice change if Other (specify in notes) was selected in the Type of land management practice change.", + "name": "otherApprovalType", "behaviour": [ { - "condition": "practiceChangeType == \"Other\"", + "condition": "approvalType == \"Other purposes as agreed to by the Department\"", "type": "enable" } ], @@ -16521,71 +18891,90 @@ }, { "dataType": "text", - "name": "industryType", - "constraints": [ - "Broad acre cropping", - "Dairy", - "Horticulture", - "Grazing", - "Fisheries", - "Aquaculture", - "Environment" - ], - "validate": "required" - }, - { - "dataType": "text", - "name": "practiceChangeObjective", - "description": "How will the practice change/s contribute to the area?", - "validate": "required,maxSize[300]" + "name": "approvalPurpose", + "validate": "required,maxSize[200]", + "description": "" }, { - "dataType": "feature", - "name": "offSiteBenefitSites" - }, - { - "computed": { - "expression": "$geom.areaHa(offSiteBenefitSites)" - }, - "dataType": "number", - "name": "offSiteBenefitAreaHa2", - "units": "ha", - "decimalPlaces": 3 + "dataType": "date", + "name": "approvalValidateDateFrom", + "validate": "required" }, { - "dataType": "text", - "name": "evidenceOfBenefit", - "validate": "maxSize[300]" + "dataType": "date", + "name": "approvalValidateDateTo", + "validate": [ + { + "rule": "required" + }, + { + "rule": "future", + "param": { + "expression": "formatDateForValidation(approvalValidateDateFrom)", + "type": "computed" + } + } + ] } ], "dataType": "list", - "name": "landManagementDetails" + "allowRowDelete": true, + "name": "approvalTableDetails" + }, + { + "dataType": "number", + "name": "approvalsForOutcome", + "decimalPlaces": 0, + "computed": { + "expression": "sum(approvalTableDetails, \"approvalType ? 1 : 0\")" + } } - ], - "dataType": "list", - "name": "landManagementAreasControlled" - }, - { - "dataType": "number", - "name": "totalAreaPracticeChangeInitial", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(landManagementAreasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" - } + ] }, { "dataType": "number", - "name": "totalAreaPracticeChangeFollowup", + "name": "numberApprovalsObtained", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 3, + "decimalPlaces": 0, + "defaultValue": 1, "computed": { - "expression": "sum(landManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? areaTreatedHa : 0\")" + "expression": "sum(approvalsByOutcome, \"approvalsForOutcome\")" } + }, + { + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" + }, + { + "dataType": "image", + "name": "photographicEvidence" + }, + { + "dataType": "boolean", + "name": "dataUploaded", + "description": "" + }, + { + "name": "projectAssuranceDetails", + "dataType": "text", + "validate": "required,maxSize[5000]" + }, + { + "dataType": "list", + "name": "assuranceDocuments", + "columns": [ + { + "dataType": "document", + "name": "attachments", + "description": "Please attach any Evidence of Service Delivery here." + } + ] } ], - "modelName": "NHT - Improving land management practices", - "title": "Improving Land Management Practices", + "modelName": "Obtaining approvals", + "title": "Obtain Relevant Approvals", "viewModel": [ { "type": "row", @@ -16646,7 +19035,7 @@ "type": "textarea" } ], - "source": "participationInformationTableIlm", + "source": "participationInformationTableCom", "type": "table" }, { @@ -16662,342 +19051,586 @@ "type": "row", "items": [ { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(i) Total area (ha) covered by practice change (initial) during this reporting period", - "source": "totalAreaPracticeChangeInitial", - "type": "number" - } - ] - } - ] + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(i) Total number of relevant approvals obtained", + "source": "numberApprovalsObtained", + "type": "number" + } + ] + } + ] + } + ] + }, + { + "type": "repeat", + "source": "approvalsByOutcome", + "userAddedRows": false, + "addRowText": "", + "items": [ + { + "type": "row", + "items": [ + { + "css": "span3", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s does this activity relate to?" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" + } + ] + } + ] + } + ] + }, + { + "type": "section", + "items": [ + { + "columns": [ + { + "width": "10%", + "source": "approvalGivenDate", + "title": "Date approval given", + "type": "date" + }, + { + "width": "10%", + "source": "approvalId", + "title": "Approval ID reference", + "type": "text" + }, + { + "width": "20%", + "source": "approvingOrg", + "title": "Organization/Body that gave the approval", + "type": "textarea" + }, + { + "width": "20%", + "title": "Type of approval*", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "approvalType", + "type": "select2" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Type of approval, if other", + "source": "otherApprovalType", + "type": "textarea" + } + ] + } + ] + }, + { + "width": "20%", + "source": "approvalPurpose", + "title": "Purpose of approval", + "type": "textarea" + }, + { + "width": "10%", + "source": "approvalValidateDateFrom", + "title": "Date approval valid from", + "type": "date" + }, + { + "width": "10%", + "source": "approvalValidateDateTo", + "title": "Date approval valid to", + "type": "date" + } + + ], + "userAddedRows": true, + "disableTableUpload": false, + "source": "approvalTableDetails", + "title": "Each approval must be reported as a new row.", + "type": "table" + } + ] + }]}, + { + "type": "row", + "items": [ + { + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" + }, + { + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" + } + ] + } + ] + }, + "modelName": null, + "templateName": "nhtObtainingRelevantApprovals", + "optional": true, + "optionalQuestionText": null, + "title": null, + "collapsibleHeading": null, + "name": "Obtaining approvals", + "description": null + }, + { + "collapsedByDefault": false, + "template": { + "dataModel": [ + { + "name": "pestAnimalSurveys", + "dataType": "list", + "minSize": 1, + "columns": [ + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "dataType": "text", + "name": "baselineOrIndicatorSurvey", + "description": "", + "constraints": [ + "Baseline", + "Indicator" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "surveyObjective", + "description": "What the survey aim to capture? How will the information obtained from the survey be used?", + "validate": "required,maxSize[3000]" + }, + { + "dataType": "number", + "name": "numberOfSurveys", + "validate": "required,min[1],max[1]", + "defaultValue": 1, + "readonly": true }, { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(ii) Total area (ha) covered by practice change (follow up) during this reporting period", - "source": "totalAreaPracticeChangeFollowup", - "type": "number" - } - ] - } - ] - } - ] - }, - { - "addRowText": "Add a new area of improved land management", - "userAddedRows": true, - "source": "landManagementAreasControlled", - "type": "repeat", - "items": [ + "dataType": "number", + "name": "numberOfSurveysInvoiced", + "validate": "required,min[0]", + "defaultValue": 1 + }, { - "type": "row", - "items": [ + "dataType": "list", + "name": "pestAnimalDataSets", + "columns": [ { - "css": "span3", - "type": "col", - "items": [ - { - "type": "row", - "items": [ - { - "source": "relatedOutcomes", - "type": "selectOne", - "preLabel": "Which outcome statement/s does this activity relate to?" - } - ] + "name": "dataSetId", + "entityType": "au.org.ala.ecodata.DataSetSummary", + "dataType": "text", + "description": "This section will require the Data Set Name so the Metadata fields in the Data Set Summary tab should be filled out before the Outcome Report is due. More than one dataset if relevant for this Project Baseline could be selected.", + "validate": "required", + "constraints": { + "textProperty": "name", + "valueProperty": "dataSetId", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.custom.dataSets" + }, + "filter": { + "namespace": "dataSet", + "expression": "dataSet.serviceId == 23 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" + } } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ + }, + "behaviour": [ { - "type": "row", - "items": [ - { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" + "type": "pre_populate", + "config": { + "waitForInitialisation": true, + "source": { + "url": "/site/geojson", + "params": [ + { + "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.siteId", + "name": "id", + "type": "computed", + "required": true + } + ] + }, + "target": { + "type": "singleValue", + "name": "sitesCoveredForPestAnimal" } - ] - } - ] - } - ] - }, - { - "type": "row", - "css": "border-bottom", - "items": [ - { - "type": "col", - "css": "span3 col-border-right", - "items": [ + } + }, { - "type": "row", - "items": [ - { - "source": "initialOrFollowup", - "preLabel": "Initial or follow-up?", - "type": "selectOne" + "type": "pre_populate", + "config": { + "waitForInitialisation": true, + "source": { + "url": "/project/getSpeciesRecordsFromActivity", + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + }, + { + "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.activityId", + "name": "activityId", + "type": "computed", + "required": true + } + ] + }, + "mapping": [ + { + "source-path": "species", + "target": "species" + }, + { + "source-path": "individualCount", + "target": "individualsOrGroups" + }, + { + "source-path": "numberOfIndividualsOrGroups", + "target": "numberOfIndividualsOrGroups" + } + ], + "target": { + "type": "singleLoad", + "name": "pestAnimalSurveySpeciesTable" } - ] + } } ] - } - ] - }, - { - "type": "row", - "css": "border-bottom", - "items": [ + }, { - "type": "col", - "css": "span3 col-border-right", - "items": [ + "columns": [ { - "type": "row", - "items": [ - { - "preLabel": "Sites covered by practice change", - "source": "sitesCoveredByPracticeChange", - "type": "feature" - } - ] + "dataType": "species", + "name": "species", + "validate": "required" }, { - "type": "row", - "items": [ - { - "source": "calculatedAreaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] + "dataType": "text", + "name": "individualsOrGroups", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" }, { - "type": "row", - "items": [ - { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetails", - "type": "document" - } - ] + "dataType": "number", + "name": "numberOfIndividualsOrGroups", + "validate": "required,min[0]" + } + ], + "dataType": "list", + "name": "pestAnimalSurveySpeciesTable" + }, + { + "name": "projectBaselines", + "dataType": "stringList", + "description": "Select the relevant Project Baseline as listed in the Monitoring Methodology section of the MERI Plan.", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.baselines" + }, + "constraints": { + "textProperty": "baseline", + "valueProperty": "code", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.custom.details.baseline.rows" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "stringList", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.investmentPriorities" + }, + "constraints": { + "type": "pre-populated", + "config": { + "source": { + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + } + ], + "url": "/project/listProjectInvestmentPriorities/" + } } - ] + } }, { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Actual area (ha) covered by practice change", - "source": "areaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", - "type": "selectOne" - } - ] - }, + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ { - "type": "row", - "items": [ - { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 - } - ] + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" } ] - } - ] - }, - { - "columns": [ + }, { - "width": "20%", - "title": "Type of action", - "type": "col", - "items": [ - { - "type": "row", - "items": [ - { - "source": "practiceChangeType", - "type": "selectOne" - } - ] - }, + "dataType": "date", + "name": "activitiesStartDate", + "description": "Specific the dates these events were held on.", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.startDate" + } + }, + { + "dataType": "date", + "name": "activitiesEndDate", + "description": "Specific the dates these events were held on.", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.endDate" + } + }, + { + "dataType": "feature", + "name": "sitesCoveredForPestAnimal", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesCoveredForPestAnimal)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesCoveredForPestAnimal)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ { - "source": "otherPracticeChangeType", - "title": "Type of action (if Other)", - "type": "text" + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } } ] }, { - "width": "20%", - "source": "industryType", - "title": "Industry type", - "type": "selectOne" + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" }, { - "width": "35%", - "source": "practiceChangeObjective", - "title": "Purpose of improving land management practice", - "type": "textarea" + "dataType": "text", + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] }, { - "width": "25%", - "title": "Please map any off-site area/s if they benefitted from this practice change", - "type": "col", - "items": [ - { - "source": "offSiteBenefitSites", - "type": "feature" - }, - { - "type": "row", - "items": [ - { - "source": "offSiteBenefitAreaHa2", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ { - "source": "evidenceOfBenefit", - "placeholder": "If off-site area was mapped please provide a description on the evidence available to reflect this benefit", - "type": "textarea" + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" } ] - } - ], - "userAddedRows": true, - "source": "landManagementDetails", - "type": "table" - } - ] - }, - { - "type": "section", - "items": [ - { - "type": "row", - "items": [ + }, { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" - } - ] - }, - { - "type": "row", - "items": [ + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" - } - ] - }, - { - "type": "row", - "items": [ + "defaultValue": { + "type": "computed", + "expression": "$geom.lengthKm(sitesCoveredForPestAnimal)" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + }, { - "type": "literal", - "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." + "dataType": "text", + "description": "Select the technique used to conduct the survey. If the EMSA Application tool was not used, you should select 'Other'.", + "name": "emsaProtocol", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.protocol" + }, + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.protocols" + } + } + } }, { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." - } - ] - }, - { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ + "dataType": "stringList", + "description": "Describe the technique (if Other) was selected.", + "name": "otherEmsaProtocol", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methods" + } + }, { - "title": "Attached documents", - "source": "attachments", - "type": "document" + "dataType": "text", + "name": "surveyMethodology", + "description": "Provide more details on what is being done.", + "validate": "required,maxSize[3000]", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methodDescription" + } } - ] + ], + "minSize": 1 } ] - } - ] - }, - "modelName": null, - "templateName": "nhtLandManagementPractices", - "optional": true, - "optionalQuestionText": null, - "title": null, - "collapsibleHeading": null, - "name": "NHT - Improving land management practices", - "description": null - }, - { - "collapsedByDefault": false, - "template": { - "dataModel": [ + }, { "allowRowDelete": "false", "columns": [ @@ -17094,249 +19727,37 @@ "type": "computed" }, "rule": "max", - "message": "The number of first nation participants cannot be greater than the total number of participants" - } - ] - }, - { - "dataType": "text", - "name": "participationDetails", - "validate": "required, maxSize[3000]" - } - ], - "dataType": "list", - "name": "participationInformationTableMad" - }, - { - "columns": [ - { - "dataType": "text", - "name": "initialOrFollowup", - "constraints": [ - "Initial", - "Follow-up" - ], - "validate": "required" - }, - { - "columns": [ - { - "dataType": "text", - "name": "targetDisease", - "description": "", - "validate": "required,maxSize[100]" - }, - { - "dataType": "text", - "name": "managementMethod", - "dwcAttribute": "treatmentMethod", - "constraints": [ - "Biological control agents", - "Fumigation", - "Host destruction", - "Plant disease management - quarantine", - "Plant disease management - treatment", - "Plant disease management - hygiene", - "Positive competition", - "Other" - ], - "validate": "required" - }, - { - "dataType": "text", - "name": "otherManagementMethod", - "description": "Please specify the management method used if Other (specify in notes) was selected in the Management Method column.", - "behaviour": [ - { - "condition": "managementMethod == \"Other\"", - "type": "enable" - } - ], - "validate": "required,maxSize[100]" - }, - { - "dataType": "text", - "name": "treatmentObjective", - "description": "Please start with either part of the field heading [dash]. If reporting on both separate the information with a ';'. (eg. 'Management method -' and a brief description of method being used to fix the area; 'Treatment objective -' and a brief description of how the work will contribute to the area.", - "validate": "required,maxSize[300]" - } - ], - "dataType": "list", - "name": "diseaseManagementDetails" - }, - { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "outcomes" - } - } - } - }, - { - "name": "investmentPriorities2", - "dataType": "text", - "description": "", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.investmentPriorities" - } - } - } - }, - { - "dataType": "text", - "name": "otherInvestmentPriority", - "behaviour": [ - { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" - } - ] - }, - { - "dataType": "feature", - "name": "sitesDiseaseManaged", - "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." - }, - { - "computed": { - "expression": "$geom.areaHa(sitesDiseaseManaged)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHa", - "units": "ha", - "decimalPlaces": 3 - }, - { - "computed": { - "expression": "$geom.lengthKm(sitesDiseaseManaged)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKm", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKm > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHa" - }, - "dataType": "number", - "name": "areaTreatedHa", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "mappingNotAlignedReason", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, - { - "dataType": "text", - "name": "mappingNotAlignedComments", - "validate": "required,maxSize[100]", - "behaviour": [ - { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReason" - } - ] - }, - { - "dataType": "document", - "name": "extraMappingDetails", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" + "message": "The number of first nation participants cannot be greater than the total number of participants" } ] }, { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKm" - }, - "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 + "dataType": "text", + "name": "participationDetails", + "validate": "required, maxSize[3000]" } ], "dataType": "list", - "name": "diseaseManagementAreasControlled" - }, - { - "dataType": "number", - "name": "totalAreaDiseaseManagementInitial", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(diseaseManagementAreasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" - } - }, - { - "dataType": "number", - "name": "totalAreaDiseaseManagementFollowup", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(diseaseManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? areaTreatedHa : 0\")" - } + "name": "participationInformationTablePas" }, { "dataType": "number", - "name": "totalLengthDiseaseManagementInitial", + "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 3, + "decimalPlaces": 0, "computed": { - "expression": "sum(diseaseManagementAreasControlled, \"initialOrFollowup == 'Initial' ? lengthTreatedKm : 0\")" + "expression": "sum(pestAnimalSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" } }, { "dataType": "number", - "name": "totalLengthDiseaseManagementFollowup", + "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 3, + "decimalPlaces": 0, "computed": { - "expression": "sum(diseaseManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? lengthTreatedKm : 0\")" + "expression": "sum(pestAnimalSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" } }, { @@ -17351,11 +19772,12 @@ { "dataType": "boolean", "name": "dataUploaded", - "description": "" + "description": "" }, { - "name": "projectAssuranceDetails", "dataType": "text", + "name": "projectAssuranceDetails", + "description": "", "validate": "maxSize[5000]" }, { @@ -17370,187 +19792,435 @@ ] } ], - "modelName": "NHT - Disease management", - "title": "Managing Disease", + "modelName": "NHT - Pest animal survey", + "title": "Pest Animal Survey", "viewModel": [ { - "type": "row", + "type": "section", "items": [ { - "type": "literal", - "source": "

Participation information

" - } - ] - }, - { - "disableTableUpload": true, - "columns": [ - { - "width": "10%", - "source": "participationIndividualsOrGroups", - "title": "Are individuals or groups delivering this service?", - "type": "selectOne" - }, - { - "width": "20%", - "type": "col", - "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "type": "row", "items": [ { - "source": "participationIndividualNumber", - "type": "number" - }, - { - "source": "participationGroupNumber", - "type": "selectOne" + "type": "literal", + "source": "

Participation information

" } ] }, { - "type": "col", - "width": "20%", - "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ - { - "source": "firstNationIndividualNumber", - "type": "number" - }, + "disableTableUpload": true, + "columns": [ { - "source": "firstNationGroupNumber", + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", "type": "selectOne" - } - ] - }, - { - "width": "20%", - "source": "participationDetails", - "rows": 4, - "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", - "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", - "type": "textarea" - } - ], - "source": "participationInformationTableMad", - "type": "table" - }, - { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Totals Summary

" - } - ] - }, - { - "type": "row", - "items": [ - { - "type": "col", - "css": "span4 col-border-right", - "items": [ + }, { - "type": "row", + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", "items": [ { - "preLabel": "(i) Total area (ha) for disease treatment/prevention (initial) for this reporting period", - "source": "totalAreaDiseaseManagementInitial", + "source": "participationIndividualNumber", "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" } ] - } - ] - }, - { - "type": "col", - "css": "span4 col-border-right", - "items": [ + }, { - "type": "row", + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", "items": [ { - "preLabel": "(ii) Total area (ha) for disease treatment/prevention (follow up) for this reporting period", - "source": "totalAreaDiseaseManagementFollowup", + "source": "firstNationIndividualNumber", "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" } ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } + ], + "source": "participationInformationTablePas", + "type": "table" + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Survey information

Before completing this section, please ensure you have created a Data Set Summary information for every data set produced by the surveys you intend to report

" } ] }, { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "(iii) Total length (km) for disease treatment/prevention (initial) for this reporting period", - "source": "totalLengthDiseaseManagementInitial", - "type": "number" - } - ] + "type": "literal", + "source": "

Totals Summary

" } ] }, { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", + "type": "col", + "css": "span4 col-border-right", "items": [ { - "preLabel": "(iv) Total length (km) for disease treatment/prevention (follow up) for this reporting period", - "source": "totalLengthDiseaseManagementFollowup", - "type": "number" + "type": "row", + "items": [ + { + "preLabel": "(i) Total Number of baseline pest animal surveys completed for this reporting period", + "source": "totalSurveyBaseline", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(ii) Total Number of indicator pest animal surveys completed for this reporting period", + "source": "totalSurveyIndicator", + "type": "number" + } + ] } ] } ] - } - ] - }, - { - "addRowText": "Add a new area where disease is being managed", - "userAddedRows": true, - "source": "diseaseManagementAreasControlled", - "type": "repeat", - "items": [ + }, { - "type": "row", + "addRowText": "Add survey", + "removeRowText": "Delete this survey", + "userAddedRows": true, + "source": "pestAnimalSurveys", + "type": "repeat", "items": [ { - "css": "span3", - "type": "col", + "type": "row", "items": [ { - "type": "row", + "type": "col", + "items": [ + { + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s relates to this survey?" + } + ] + }, + { + "type": "col", "items": [ { - "source": "relatedOutcomes", + "source": "baselineOrIndicatorSurvey", "type": "selectOne", - "preLabel": "Which outcome statement/s does this activity relate to?" + "preLabel": "Baseline survey or indicator (follow-up) survey?" } ] } ] }, { - "type": "col", - "css": "span3 col-border-right", + "type": "row", + "items": [ + { + "source": "surveyObjective", + "preLabel": "Survey objective", + "type": "text" + } + ] + }, + { + "type": "repeat", + "source": "pestAnimalDataSets", + "userAddedRows": true, + "addRowText": "New data set", + "removeRowText": "Delete this data set", "items": [ + { + "type": "row", + "css": "border-bottom", + "items": [ + { + "type": "col", + "items": [ + { + "source": "dataSetId", + "type": "selectOne", + "preLabel": "Please select the data set produced by this survey. Note it must have already been entered on the Data Set Summary tab." + } + ] + } + ] + }, { "type": "row", "items": [ { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "projectBaselines", + "type": "selectMany", + "preLabel": "Which project baseline/s relate to this survey?", + "readonly": "readonly" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Activity start date", + "source": "activitiesStartDate", + "type": "date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Activity end date", + "source": "activitiesEndDate", + "type": "date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Sites covered by pest animal survey", + "source": "sitesCoveredForPestAnimal", + "type": "feature" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedLengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Actual area (ha) / length (km) covered by pest animal survey", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "lengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Survey technique", + "source": "emsaProtocol", + "type": "selectOne", + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Survey technique (if Other)", + "source": "otherEmsaProtocol", + "type": "select2Many" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "surveyMethodology", + "preLabel": "Survey methodology", + "type": "text" + } + ] + } + ] + } + ] + }, + { + "columns": [ + { + "width": "55%", + "source": "species", + "title": "Target species recorded", + "type": "speciesSelect" + }, + { + "width": "25%", + "source": "individualsOrGroups", + "title": "Individuals or groups?", + "type": "selectOne" + }, + { + "width": "20%", + "source": "numberOfIndividualsOrGroups", + "title": "Number of individuals / groups in pest animal survey", + "type": "number" } - ] + ], + "userAddedRows": true, + "source": "pestAnimalSurveySpeciesTable", + "type": "table" } ] } @@ -17558,240 +20228,77 @@ }, { "type": "row", - "css": "border-bottom", "items": [ { - "preLabel": "Initial or Follow-up?", - "css": "span3", - "source": "initialOrFollowup", - "type": "selectOne" + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" } ] }, { "type": "row", - "css": "border-bottom", "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Site/s where disease managed", - "source": "sitesDiseaseManaged", - "type": "feature" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedAreaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedLengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetails", - "type": "document" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Actual area (ha) / length (km) where disease has been managed", - "source": "areaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "lengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", - "type": "selectOne" - } - ] - }, - { - "type": "row", - "items": [ - { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 - } - ] - } - ] + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" } ] }, { - "columns": [ - { - "width": "30%", - "source": "targetDisease", - "title": "Disease treated", - "type": "textarea" - }, + "type": "row", + "items": [ { - "width": "20%", - "type": "col", - "title": "Type of management method / treatment", - "items": [ - { - "type": "row", - "items": [ - { - "source": "managementMethod", - "type": "selectOne" - } - ] - }, - { - "source": "otherManagementMethod", - "placeholder": "Type of management method / treatment (if other)", - "type": "text" - } - ] + "type": "literal", + "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." }, { - "width": "50%", - "source": "treatmentObjective", - "title": "Management method / treatment objective", - "type": "textarea" + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" } - ], - "userAddedRows": true, - "addRowText": "Add a new disease being managed in this area", - "source": "diseaseManagementDetails", - "type": "table" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" - } - ] - }, - { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." + ] }, { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." - } - ] - }, - { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, { - "title": "Attached documents", - "source": "attachments", - "type": "document" + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" + } + ] } ] } ] }, "modelName": null, - "templateName": "nhtDiseaseManagement", + "templateName": "nhtPestAnimalSurvey", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Disease management", + "name": "NHT - Pest animal survey", "description": null }, { @@ -17799,496 +20306,502 @@ "template": { "dataModel": [ { - "name": "pestAnimalSurveys", - "dataType": "list", - "minSize": 1, + "allowRowDelete": "false", "columns": [ - { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "outcomes" - } - } - } - }, { "dataType": "text", - "name": "baselineOrIndicatorSurvey", - "description": "", + "name": "participationIndividualsOrGroups", + "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", "constraints": [ - "Baseline", - "Indicator" + "Individuals", + "Groups" ], "validate": "required" }, - { - "dataType": "text", - "name": "surveyObjective", - "description": "What the survey aim to capture? How will the information obtained from the survey be used?", - "validate": "required,maxSize[3000]" - }, { "dataType": "number", - "name": "numberOfSurveys", - "validate": "required,min[1],max[1]", - "defaultValue": 1, - "readonly": true + "name": "participationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": "required,min[0]" }, { - "dataType": "number", - "name": "numberOfSurveysInvoiced", - "validate": "required,min[0]", - "defaultValue": 1 + "dataType": "text", + "name": "participationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ] }, { - "dataType": "list", - "name": "pestAnimalDataSets", - "columns": [ - { - "name": "dataSetId", - "entityType": "au.org.ala.ecodata.DataSetSummary", - "dataType": "text", - "description": "This section will require the Data Set Name so the Metadata fields in the Data Set Summary tab should be filled out before the Outcome Report is due. More than one dataset if relevant for this Project Baseline could be selected.", - "validate": "required", - "constraints": { - "textProperty": "name", - "valueProperty": "dataSetId", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.custom.dataSets" - }, - "filter": { - "namespace": "dataSet", - "expression": "dataSet.serviceId == 23 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" - } - } - }, - "behaviour": [ - { - "type": "pre_populate", - "config": { - "waitForInitialisation": true, - "source": { - "url": "/site/geojson", - "params": [ - { - "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.siteId", - "name": "id", - "type": "computed", - "required": true - } - ] - }, - "target": { - "type": "singleValue", - "name": "sitesCoveredForPestAnimal" - } - } - }, - { - "type": "pre_populate", - "config": { - "waitForInitialisation": true, - "source": { - "url": "/project/getSpeciesRecordsFromActivity", - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - }, - { - "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.activityId", - "name": "activityId", - "type": "computed", - "required": true - } - ] - }, - "mapping": [ - { - "source-path": "species", - "target": "species" - }, - { - "source-path": "individualCount", - "target": "individualsOrGroups" - }, - { - "source-path": "numberOfIndividualsOrGroups", - "target": "numberOfIndividualsOrGroups" - } - ], - "target": { - "type": "singleLoad", - "name": "pestAnimalSurveySpeciesTable" - } - } - } - ] - }, - { - "columns": [ - { - "dataType": "species", - "name": "species", - "validate": "required" - }, - { - "dataType": "text", - "name": "individualsOrGroups", - "constraints": [ - "Individuals", - "Groups" - ], - "validate": "required" - }, - { - "dataType": "number", - "name": "numberOfIndividualsOrGroups", - "validate": "required,min[0]" - } - ], - "dataType": "list", - "name": "pestAnimalSurveySpeciesTable" - }, - { - "name": "projectBaselines", - "dataType": "stringList", - "description": "Select the relevant Project Baseline as listed in the Monitoring Methodology section of the MERI Plan.", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.baselines" - }, - "constraints": { - "textProperty": "baseline", - "valueProperty": "code", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.custom.details.baseline.rows" - } - } - } - }, - { - "name": "investmentPriorities2", - "dataType": "stringList", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.investmentPriorities" - }, - "constraints": { - "type": "pre-populated", - "config": { - "source": { - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - } - ], - "url": "/project/listProjectInvestmentPriorities/" - } - } - } - }, - { - "dataType": "text", - "name": "otherInvestmentPriority", - "behaviour": [ - { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" - } - ] - }, - { - "dataType": "date", - "name": "activitiesStartDate", - "description": "Specific the dates these events were held on.", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.startDate" - } - }, + "dataType": "number", + "name": "firstNationIndividualNumber", + "defaultValue": 0, + "behaviour": [ { - "dataType": "date", - "name": "activitiesEndDate", - "description": "Specific the dates these events were held on.", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.endDate" - } - }, + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": [ { - "dataType": "feature", - "name": "sitesCoveredForPestAnimal", - "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + "rule": "required" }, { - "computed": { - "expression": "$geom.areaHa(sitesCoveredForPestAnimal)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHa", - "units": "ha", - "decimalPlaces": 3 + "rule": "min[0]" }, { - "computed": { - "expression": "$geom.lengthKm(sitesCoveredForPestAnimal)" + "param": { + "expression": "participationIndividualNumber", + "type": "computed" }, - "dataType": "number", - "name": "calculatedLengthTreatedKm", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKm > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, + "rule": "max" + } + ] + }, + { + "dataType": "text", + "name": "firstNationGroupNumber", + "behaviour": [ { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHa" - }, - "dataType": "number", - "name": "areaTreatedHa", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "required,min[0]" - }, + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ], + "validate": [ { - "dataType": "text", - "name": "mappingNotAlignedReason", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] + "rule": "required" }, { - "dataType": "text", - "name": "mappingNotAlignedComments", - "validate": "required,maxSize[100]", - "behaviour": [ - { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReason" - } - ] - }, + "param": { + "expression": "participationGroupNumber", + "type": "computed" + }, + "rule": "max", + "message": "The number of first nation participants cannot be greater than the total number of participants" + } + ] + }, + { + "dataType": "text", + "name": "participationDetails", + "validate": "required, maxSize[3000]" + } + ], + "dataType": "list", + "name": "participationInformationTableRem" + }, + { + "columns": [ + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ { - "dataType": "document", - "name": "extraMappingDetails", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, + { + "dataType": "text", + "name": "initialOrFollowup", + "constraints": [ + "Initial", + "Follow-up" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "noRemediationInterventions", + "validate": "required" + }, + { + "dataType": "feature", + "name": "sitesRemediated", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesRemediated)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHaRemediated", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesRemediated)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKmRemediated", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ { - "defaultValue": { - "type": "computed", - "expression": "$geom.lengthKm(sitesCoveredForPestAnimal)" - }, - "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 - }, + "condition": "lengthTreatedKmRemediated > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHaRemediated" + }, + "dataType": "number", + "name": "areaTreatedHaRemediated", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReasonRemediated", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHaRemediated, calculatedAreaTreatedHaRemediated, 0.1) and within(lengthTreatedKmRemediated, calculatedLengthTreatedKmRemediated, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedCommentsRemediated", + "validate": "required,maxSize[100]", + "behaviour": [ { - "dataType": "text", - "description": "Select the technique used to conduct the survey. If the EMSA Application tool was not used, you should select 'Other'.", - "name": "emsaProtocol", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.protocol" - }, - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.protocols" - } - } - } - }, + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReasonRemediated" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetailsRemediated", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ { - "dataType": "stringList", - "description": "Describe the technique (if Other) was selected.", - "name": "otherEmsaProtocol", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methods" - } + "condition": "not (within(areaTreatedHaRemediated, calculatedAreaTreatedHaRemediated, 0.1) and within(lengthTreatedKmRemediated, calculatedLengthTreatedKmRemediated, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKmRemediated" + }, + "dataType": "number", + "name": "lengthTreatedKmRemediated", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "date", + "name": "activitiesStartDate", + "description": "Specific the dates these events were held on.", + "validate": "required" + }, + { + "dataType": "date", + "name": "activitiesEndDate", + "description": "Specific the dates these events were held on.", + "validate": [ + { + "rule": "required" }, { - "dataType": "text", - "name": "surveyMethodology", - "description": "Provide more details on what is being done.", - "validate": "required,maxSize[3000]", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methodDescription" + "rule": "future", + "param": { + "expression": "formatDateForValidation(activitiesStartDate)", + "type": "computed" } } - ], - "minSize": 1 - } - ] - }, - { - "allowRowDelete": "false", - "columns": [ + ] + }, { "dataType": "text", - "name": "participationIndividualsOrGroups", - "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", + "name": "typesOfRemediationInstalled", + "description": "", "constraints": [ - "Individuals", - "Groups" + "Access control", + "Bank grooming", + "Flow gauging stations", + "Fords", + "Culverts", + "Revegetation", + "Weirs", + "Other" ], "validate": "required" }, { - "dataType": "number", - "name": "participationIndividualNumber", - "defaultValue": 0, + "dataType": "text", + "name": "otherRemediationType", "behaviour": [ { - "condition": "participationIndividualsOrGroups == \"Individuals\"", + "condition": "typesOfRemediationInstalled == \"Other\"", "type": "enable" } ], - "validate": "required,min[0]" + "validate": "required,maxSize[100]" }, { "dataType": "text", - "name": "participationGroupNumber", + "name": "remediationType", + "description": "", + "constraints": [ + "Access control", + "Bank grooming", + "Flow gauging stations", + "Fords", + "Culverts", + "Revegetation", + "Weirs", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "otherAquaticOrRemediationType", "behaviour": [ { - "condition": "participationIndividualsOrGroups == \"Groups\"", + "condition": "remediationType == \"Other\"", "type": "enable" } ], - "constraints": [ - "0", - "1-10", - "11-20", - "21-30", - "31-40", - "41-50" - ] + "validate": "required,maxSize[100]" + }, + { + "dataType": "feature", + "name": "sitesBenefitted", + "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesBenefitted)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHaBenefitted", + "units": "ha", + "decimalPlaces": 3 }, { + "computed": { + "expression": "$geom.lengthKm(sitesBenefitted)" + }, "dataType": "number", - "name": "firstNationIndividualNumber", - "defaultValue": 0, + "name": "calculatedLengthTreatedKmBenefitted", + "units": "km", + "decimalPlaces": 3, "behaviour": [ { - "condition": "participationIndividualsOrGroups == \"Individuals\"", - "type": "enable" + "condition": "lengthTreatedKmBenefitted > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHaBenefitted" + }, + "dataType": "number", + "name": "areaTreatedHaBenefitted", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReasonBenefitted", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" ], - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - }, + "validate": "required", + "behaviour": [ { - "param": { - "expression": "participationIndividualNumber", - "type": "computed" - }, - "rule": "max" + "condition": "not (within(areaTreatedHaBenefitted, calculatedAreaTreatedHaBenefitted, 0.1))", + "type": "if" } ] }, { "dataType": "text", - "name": "firstNationGroupNumber", + "name": "mappingNotAlignedCommentsBenefitted", + "validate": "required,maxSize[100]", "behaviour": [ { - "condition": "participationIndividualsOrGroups == \"Groups\"", - "type": "enable" + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReasonBenefitted" } - ], - "constraints": [ - "0", - "1-10", - "11-20", - "21-30", - "31-40", - "41-50" - ], - "validate": [ - { - "rule": "required" - }, + ] + }, + { + "dataType": "document", + "name": "extraMappingDetailsBenefitted", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ { - "param": { - "expression": "participationGroupNumber", - "type": "computed" - }, - "rule": "max", - "message": "The number of first nation participants cannot be greater than the total number of participants" + "condition": "not (within(areaTreatedHaBenefitted, calculatedAreaTreatedHaBenefitted, 0.1) and within(lengthTreatedKmBenefitted, calculatedLengthTreatedKmBenefitted, 0.1))", + "type": "if" } ] }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKmBenefitted" + }, + "dataType": "number", + "name": "lengthTreatedKmBenefitted", + "units": "km", + "decimalPlaces": 3 + }, { "dataType": "text", - "name": "participationDetails", - "validate": "required, maxSize[3000]" + "name": "evidenceOfBenefit", + "validate": "maxSize[100]" } ], "dataType": "list", - "name": "participationInformationTablePas" + "name": "remediatingAreas" }, { "dataType": "number", - "name": "totalSurveyBaseline", + "name": "totalAreaRemediationInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Initial' ? areaTreatedHaRemediated : 0\")" + } + }, + { + "dataType": "number", + "name": "totalAreaRemediationFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Follow-up' ? areaTreatedHaRemediated : 0\")" + } + }, + { + "dataType": "number", + "name": "totalLengthRemediationInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Initial' ? lengthTreatedKmRemediated : 0\")" + } + }, + { + "dataType": "number", + "name": "totalLengthRemediationFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Follow-up' ? lengthTreatedKmRemediated : 0\")" + } + }, + { + "dataType": "number", + "name": "totalStructuresInstalled", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { - "expression": "sum(pestAnimalSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" + "expression": "sum(remediatingAreas, \"noRemediationInterventions\")" } }, { "dataType": "number", - "name": "totalSurveyIndicator", + "name": "totalStructuresInstalledFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { - "expression": "sum(pestAnimalSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" + "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Follow-up' ? noRemediationInterventions : 0\")" } }, { @@ -18303,12 +20816,11 @@ { "dataType": "boolean", "name": "dataUploaded", - "description": "" + "description": "" }, { - "dataType": "text", "name": "projectAssuranceDetails", - "description": "", + "dataType": "text", "validate": "maxSize[5000]" }, { @@ -18323,89 +20835,205 @@ ] } ], - "modelName": "NHT - Pest animal survey", - "title": "Pest Animal Survey", + "modelName": "NHT - Remediating riparian and aquatic areas", + "title": "Remediating Riparian and Aquatic Areas", "viewModel": [ { - "type": "section", + "type": "row", "items": [ { - "type": "row", + "type": "literal", + "source": "

Participation information

" + } + ] + }, + { + "disableTableUpload": true, + "columns": [ + { + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" + }, + { + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", "items": [ { - "type": "literal", - "source": "

Participation information

" + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" } ] }, { - "disableTableUpload": true, - "columns": [ + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ { - "width": "10%", - "source": "participationIndividualsOrGroups", - "title": "Are individuals or groups delivering this service?", - "type": "selectOne" + "source": "firstNationIndividualNumber", + "type": "number" }, { - "width": "20%", - "type": "col", - "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "source": "firstNationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } + ], + "source": "participationInformationTableRem", + "type": "table" + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", "items": [ { - "source": "participationIndividualNumber", + "preLabel": "(i) Total area (ha) of remediation of riparian/aquatic areas (initial) during this reporting period", + "source": "totalAreaRemediationInitial", "type": "number" - }, - { - "source": "participationGroupNumber", - "type": "selectOne" } ] - }, + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ { - "type": "col", - "width": "20%", - "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "type": "row", "items": [ { - "source": "firstNationIndividualNumber", + "preLabel": "(ii) Total area (ha) of remediation of riparian/aquatic areas (follow - up) during this reporting period", + "source": "totalAreaRemediationFollowup", "type": "number" - }, - { - "source": "firstNationGroupNumber", - "type": "selectOne" } ] - }, + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ { - "width": "20%", - "source": "participationDetails", - "rows": 4, - "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", - "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", - "type": "textarea" + "type": "row", + "items": [ + { + "preLabel": "(iii) Total length (km) of remediation of riparian/aquatic areas (initial) during this reporting period", + "source": "totalLengthRemediationInitial", + "type": "number" + } + ] } - ], - "source": "participationInformationTablePas", - "type": "table" + ] }, { - "type": "row", + "type": "col", + "css": "span4 col-border-right", "items": [ { - "type": "literal", - "source": "

Survey information

Before completing this section, please ensure you have created a Data Set Summary information for every data set produced by the surveys you intend to report

" + "type": "row", + "items": [ + { + "preLabel": "(iv) Total length (km) of remediation of riparian/aquatic areas (follow-up) during this reporting period", + "source": "totalLengthRemediationFollowup", + "type": "number" + } + ] } ] }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(v) Number of remediation interventions applied to promote aquatic health during this reporting period", + "source": "totalStructuresInstalled", + "type": "number" + } + ] + } + ] + } + ] + }, + { + "addRowText": "Add a new remediated area", + "userAddedRows": true, + "source": "remediatingAreas", + "type": "repeat", + "items": [ { "type": "row", "items": [ { - "type": "literal", - "source": "

Totals Summary

" + "css": "span3 col-border-right", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s does this activity relate to?" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" + } + ] + } + ] } ] }, @@ -18414,14 +21042,14 @@ "items": [ { "type": "col", - "css": "span4 col-border-right", + "css": "span3 col-border-right", "items": [ { "type": "row", "items": [ { - "preLabel": "(i) Total Number of baseline pest animal surveys completed for this reporting period", - "source": "totalSurveyBaseline", + "source": "noRemediationInterventions", + "preLabel": "Number of remediation interventions installed", "type": "number" } ] @@ -18430,84 +21058,86 @@ }, { "type": "col", - "css": "span4 col-border-right", + "css": "span3 col-border-right", "items": [ { "type": "row", "items": [ { - "preLabel": "(ii) Total Number of indicator pest animal surveys completed for this reporting period", - "source": "totalSurveyIndicator", - "type": "number" + "source": "initialOrFollowup", + "preLabel": "Initial or follow-up treatment?", + "type": "selectOne" } ] } ] - } - ] - }, - { - "addRowText": "Add survey", - "removeRowText": "Delete this survey", - "userAddedRows": true, - "source": "pestAnimalSurveys", - "type": "repeat", - "items": [ + }, { - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "type": "col", + "type": "row", "items": [ { - "source": "relatedOutcomes", - "type": "selectOne", - "preLabel": "Which outcome statement/s relates to this survey?" + "preLabel": "Site/s covered by remediation", + "source": "sitesRemediated", + "type": "feature" } ] }, { - "type": "col", + "type": "row", "items": [ { - "source": "baselineOrIndicatorSurvey", - "type": "selectOne", - "preLabel": "Baseline survey or indicator (follow-up) survey?" + "source": "calculatedAreaTreatedHaRemediated", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" } ] - } - ] - }, - { - "type": "row", - "items": [ + }, { - "source": "surveyObjective", - "preLabel": "Survey objective", - "type": "text" + "type": "row", + "items": [ + { + "source": "calculatedLengthTreatedKmRemediated", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetailsRemediated", + "type": "document" + } + ] } ] }, { - "type": "repeat", - "source": "pestAnimalDataSets", - "userAddedRows": true, - "addRowText": "New data set", - "removeRowText": "Delete this data set", + "type": "col", + "css": "span3 col-border-right", "items": [ { "type": "row", - "css": "border-bottom", "items": [ { - "type": "col", - "items": [ - { - "source": "dataSetId", - "type": "selectOne", - "preLabel": "Please select the data set produced by this survey. Note it must have already been entered on the Data Set Summary tab." - } - ] + "preLabel": "Actual area (ha) / length (km) being remediated", + "source": "areaTreatedHaRemediated", + "type": "number", + "displayOptions": { + "displayUnits": true + } } ] }, @@ -18515,248 +21145,193 @@ "type": "row", "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "projectBaselines", - "type": "selectMany", - "preLabel": "Which project baseline/s relate to this survey?", - "readonly": "readonly" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Activity start date", - "source": "activitiesStartDate", - "type": "date" - } - ] - } - ] - }, + "source": "lengthTreatedKmRemediated", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Activity end date", - "source": "activitiesEndDate", - "type": "date" - } - ] - } - ] - }, + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReasonRemediated", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Sites covered by pest animal survey", - "source": "sitesCoveredForPestAnimal", - "type": "feature" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedAreaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedLengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetails", - "type": "document" - } - ] - } - ] - }, + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedCommentsRemediated", + "type": "textarea", + "rows": 5 + } + ] + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span3", + "type": "col", + "items": [ + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Actual area (ha) / length (km) covered by pest animal survey", - "source": "areaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "lengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", - "type": "selectOne" - } - ] - }, - { - "type": "row", - "items": [ - { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 - } - ] - } - ] - }, + "source": "activitiesStartDate", + "type": "date", + "preLabel": "Activity start date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Survey technique", - "source": "emsaProtocol", - "type": "selectOne", - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Survey technique (if Other)", - "source": "otherEmsaProtocol", - "type": "select2Many" - } - ] - } - ] - }, + "source": "activitiesEndDate", + "preLabel": "Activity end date", + "type": "date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "surveyMethodology", - "preLabel": "Survey methodology", - "type": "text" - } - ] - } - ] + "preLabel": "Type of remediation intervention", + "source": "typesOfRemediationInstalled", + "type": "select2" } ] }, { - "columns": [ + "type": "row", + "items": [ { - "width": "55%", - "source": "species", - "title": "Target species recorded", - "type": "speciesSelect" - }, + "source": "otherRemediationType", + "placeholder": "Type of remediation intervention (if Other)", + "type": "text" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "width": "25%", - "source": "individualsOrGroups", - "title": "Individuals or groups?", - "type": "selectOne" - }, + "preLabel": "Type of aquatic or riparian remediation", + "source": "remediationType", + "type": "select2" + } + ] + }, + { + "type": "row", + "items": [ { - "width": "20%", - "source": "numberOfIndividualsOrGroups", - "title": "Number of individuals / groups in pest animal survey", - "type": "number" + "source": "otherAquaticOrRemediationType", + "placeholder": "Type of aquatic or riparian remediation (if Other)", + "type": "text" } - ], - "userAddedRows": true, - "source": "pestAnimalSurveySpeciesTable", - "type": "table" + ] } ] } ] }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Please identify any off-site area/s that may benefit from this service", + "source": "sitesBenefitted", + "type": "feature" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedAreaTreatedHaBenefitted", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetailsBenefitted", + "type": "document" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "evidenceOfBenefit", + "preLabel": "Please provide a description on the evidence available to reflect this benefit", + "type": "textarea" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "section", + "items": [ { "type": "row", "items": [ @@ -18824,12 +21399,12 @@ ] }, "modelName": null, - "templateName": "nhtPestAnimalSurvey", + "templateName": "nhtRemediatingRiparianAndAquaticAreas", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Pest animal survey", + "name": "NHT - Remediating riparian and aquatic areas", "description": null }, { @@ -18943,7 +21518,7 @@ } ], "dataType": "list", - "name": "participationInformationTableRem" + "name": "participationInformationTableDmp" }, { "columns": [ @@ -18991,43 +21566,38 @@ }, { "dataType": "text", - "name": "initialOrFollowup", + "name": "invoicingThisActivity", "constraints": [ - "Initial", - "Follow-up" + "Yes", + "No" ], "validate": "required" }, - { - "dataType": "number", - "name": "noRemediationInterventions", - "validate": "required" - }, { "dataType": "feature", - "name": "sitesRemediated", + "name": "sitesResearchAndDevelopment", "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." }, { "computed": { - "expression": "$geom.areaHa(sitesRemediated)" + "expression": "$geom.areaHa(sitesResearchAndDevelopment)" }, "dataType": "number", - "name": "calculatedAreaTreatedHaRemediated", + "name": "calculatedAreaTreatedHa", "units": "ha", "decimalPlaces": 3 }, { "computed": { - "expression": "$geom.lengthKm(sitesRemediated)" + "expression": "$geom.lengthKm(sitesResearchAndDevelopment)" }, "dataType": "number", - "name": "calculatedLengthTreatedKmRemediated", + "name": "calculatedLengthTreatedKm", "units": "km", "decimalPlaces": 3, "behaviour": [ { - "condition": "lengthTreatedKmRemediated > 0", + "condition": "lengthTreatedKm > 0", "type": "conditional_validation", "value": { "message": "The managed length must be mapped", @@ -19039,10 +21609,10 @@ { "defaultValue": { "type": "computed", - "expression": "calculatedAreaTreatedHaRemediated" + "expression": "calculatedAreaTreatedHa" }, "dataType": "number", - "name": "areaTreatedHaRemediated", + "name": "areaTreatedHa", "description": "Manually enter correct figure for this reporting period if different to mapped value.", "units": "ha", "decimalPlaces": 3, @@ -19050,7 +21620,7 @@ }, { "dataType": "text", - "name": "mappingNotAlignedReasonRemediated", + "name": "mappingNotAlignedReason", "constraints": [ "Mapped area simplifies more complex area/s where work was undertaken during this period", "Other" @@ -19058,30 +21628,30 @@ "validate": "required", "behaviour": [ { - "condition": "not (within(areaTreatedHaRemediated, calculatedAreaTreatedHaRemediated, 0.1) and within(lengthTreatedKmRemediated, calculatedLengthTreatedKmRemediated, 0.1))", + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", "type": "if" } ] }, { "dataType": "text", - "name": "mappingNotAlignedCommentsRemediated", + "name": "mappingNotAlignedComments", "validate": "required,maxSize[100]", "behaviour": [ { "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReasonRemediated" + "condition": "\"Other\" == mappingNotAlignedReason" } ] }, { "dataType": "document", - "name": "extraMappingDetailsRemediated", + "name": "extraMappingDetails", "validate": "required", "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", "behaviour": [ { - "condition": "not (within(areaTreatedHaRemediated, calculatedAreaTreatedHaRemediated, 0.1) and within(lengthTreatedKmRemediated, calculatedLengthTreatedKmRemediated, 0.1))", + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", "type": "if" } ] @@ -19089,267 +21659,3509 @@ { "defaultValue": { "type": "computed", - "expression": "calculatedLengthTreatedKmRemediated" + "expression": "calculatedLengthTreatedKm" }, "dataType": "number", - "name": "lengthTreatedKmRemediated", + "name": "lengthTreatedKm", "units": "km", "decimalPlaces": 3 }, { - "dataType": "date", - "name": "activitiesStartDate", - "description": "Specific the dates these events were held on.", + "dataType": "text", + "name": "researchOrDevelopment", + "constraints": [ + "New research", + "New development", + "New research and development", + "Continuing research", + "Continuing development", + "Continuing research and development" + ], "validate": "required" }, { - "dataType": "date", - "name": "activitiesEndDate", - "description": "Specific the dates these events were held on.", - "validate": [ + "dataType": "number", + "name": "numberOfDaysConducted", + "validate": "required,min[0]" + }, + { + "columns": [ { - "rule": "required" + "dataType": "date", + "name": "resAndDevStartDate", + "description": "Specific the dates these events were held on.", + "validate": "required" }, { - "rule": "future", - "param": { - "expression": "formatDateForValidation(activitiesStartDate)", + "dataType": "date", + "name": "resAndDevFinishDate", + "description": "Specific the dates these events were held on.", + "validate": [ + { + "rule": "required" + }, + { + "rule": "future", + "param": { + "expression": "formatDateForValidation(resAndDevStartDate)", + "type": "computed" + } + } + ] + }, + { + "dataType": "text", + "name": "anzsrcDivision", + "constraints": [ + "AGRICULTURAL, VETERINARY AND FOOD SCIENCES", + "BIOLOGICAL SCIENCES", + "BIOMEDICAL AND CLINICAL SCIENCES", + "BUILT ENVIRONMENT AND DESIGN", + "CHEMICAL SCIENCES", + "COMMERCE, MANAGEMENT, TOURISM AND SERVICES", + "CREATIVE ARTS AND WRITING", + "EARTH SCIENCES", + "ECONOMICS", + "EDUCATION", + "ENGINEERING", + "ENVIRONMENTAL SCIENCES", + "HEALTH SCIENCES", + "HISTORY, HERITAGE AND ARCHAEOLOGY", + "HUMAN SOCIETY", + "INDIGENOUS STUDIES", + "INFORMATION AND COMPUTING SCIENCES", + "LANGUAGE, COMMUNICATION AND CULTURE", + "LAW AND LEGAL STUDIES", + "MATHEMATICAL SCIENCES", + "PHILOSOPHY AND RELIGIOUS STUDIES", + "PHYSICAL SCIENCES", + "PSYCHOLOGY" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "anzsrcGroup", + "validate": "required", + "constraints": { + "default": [], + "options": [ + { + "condition": "anzsrcDivision == \"AGRICULTURAL, VETERINARY AND FOOD SCIENCES\"", + "value": [ + "Agricultural biotechnology", + "Agriculture, land and farm management", + "Animal production", + "Crop and pasture production", + "Fisheries sciences", + "Food sciences", + "Forestry sciences", + "Horticultural production", + "Veterinary sciences", + "Other agricultural, veterinary and food sciences" + ] + }, + { + "condition": "anzsrcDivision == \"BIOLOGICAL SCIENCES\"", + "value": [ + "Biochemistry and cell biology", + "Bioinformatics and computational biology", + "Ecology", + "Evolutionary biology", + "Genetics", + "Industrial biotechnology", + "Microbiology", + "Plant biology", + "Zoology", + "Other biological sciences" + ] + }, + { + "condition": "anzsrcDivision == \"BIOMEDICAL AND CLINICAL SCIENCES\"", + "value": [ + "Cardiovascular medicine and haematology", + "Clinical sciences", + "Dentistry", + "Immunology", + "Medical biochemistry and metabolomics", + "Medical biotechnology", + "Medical microbiology", + "Medical physiology", + "Neurosciences", + "Nutrition and dietetics", + "Oncology and carcinogenesis", + "Ophthalmology and optometry", + "Paediatrics", + "Pharmacology and pharmaceutical sciences", + "Reproductive medicine", + "Other biomedical and clinical sciences" + ] + }, + { + "condition": "anzsrcDivision == \"BUILT ENVIRONMENT AND DESIGN\"", + "value": [ + "Architecture", + "Building", + "Design", + "Urban and regional planning", + "Other built environment and design" + ] + }, + { + "condition": "anzsrcDivision == \"CHEMICAL SCIENCES\"", + "value": [ + "Analytical chemistry", + "Inorganic chemistry", + "Macromolecular and materials chemistry", + "Medicinal and biomolecular chemistry", + "Organic chemistry", + "Physical chemistry", + "Theoretical and computational chemistry", + "Other chemical sciences" + ] + }, + { + "condition": "anzsrcDivision == \"COMMERCE, MANAGEMENT, TOURISM AND SERVICES\"", + "value": [ + "Accounting, auditing and accountability", + "Banking, finance and investment", + "Business systems in context", + "Commercial services", + "Human resources and industrial relations", + "Marketing", + "Strategy, management and organisational behaviour", + "Tourism", + "Transportation, logistics and supply chains", + "Other commerce, management, tourism and services" + ] + }, + { + "condition": "anzsrcDivision == \"CREATIVE ARTS AND WRITING\"", + "value": [ + "Art history, theory and criticism", + "Creative and professional writing", + "Music", + "Performing arts", + "Screen and digital media", + "Visual arts", + "Other creative arts and writing" + ] + }, + { + "condition": "anzsrcDivision == \"EARTH SCIENCES\"", + "value": [ + "Atmospheric sciences", + "Climate change science", + "Geochemistry", + "Geoinformatics", + "Geology", + "Geophysics", + "Hydrology", + "Oceanography", + "Physical geography and environmental geoscience", + "Other earth sciences" + ] + }, + { + "condition": "anzsrcDivision == \"ECONOMICS\"", + "value": [ + "Applied economics", + "Econometrics", + "Economic theory", + "Other economics" + ] + }, + { + "condition": "anzsrcDivision == \"EDUCATION\"", + "value": [ + "Curriculum and pedagogy", + "Education policy, sociology and philosophy", + "Education systems", + "Specialist studies in education", + "Other education" + ] + }, + { + "condition": "anzsrcDivision == \"ENGINEERING\"", + "value": [ + "Aerospace engineering", + "Automotive engineering", + "Biomedical engineering", + "Chemical engineering", + "Civil engineering", + "Communications engineering", + "Control engineering, mechatronics and robotics", + "Electrical engineering", + "Electronics, sensors and digital hardware", + "Engineering practice and education", + "Environmental engineering", + "Fluid mechanics and thermal engineering", + "Geomatic engineering", + "Manufacturing engineering", + "Maritime engineering", + "Materials engineering", + "Mechanical engineering", + "Nanotechnology", + "Resources engineering and extractive metallurgy", + "Other engineering" + ] + }, + { + "condition": "anzsrcDivision == \"ENVIRONMENTAL SCIENCES\"", + "value": [ + "Climate change impacts and adaptation", + "Ecological applications", + "Environmental biotechnology", + "Environmental management", + "Pollution and contamination", + "Soil sciences", + "Other environmental sciences" + ] + }, + { + "condition": "anzsrcDivision == \"HEALTH SCIENCES\"", + "value": [ + "Allied health and rehabilitation science", + "Epidemiology", + "Health services and systems", + "Midwifery", + "Nursing", + "Public health", + "Sports science and exercise", + "Traditional, complementary and integrative medicine", + "Other health sciences" + ] + }, + { + "condition": "anzsrcDivision == \"HISTORY, HERITAGE AND ARCHAEOLOGY\"", + "value": [ + "Archaeology", + "Heritage, archive and museum studies", + "Historical studies", + "Other history, heritage and archaeology" + ] + }, + { + "condition": "anzsrcDivision == \"HUMAN SOCIETY\"", + "value": [ + "Anthropology", + "Criminology", + "Demography", + "Development studies", + "Gender studies", + "Human geography", + "Policy and administration", + "Political science", + "Social work", + "Sociology", + "Other human society" + ] + }, + { + "condition": "anzsrcDivision == \"INDIGENOUS STUDIES\"", + "value": [ + "Aboriginal and Torres Strait Islander culture, language and history", + "Aboriginal and Torres Strait Islander education", + "Aboriginal and Torres Strait Islander environmental knowledges and management", + "Aboriginal and Torres Strait Islander health and wellbeing", + "Aboriginal and Torres Strait Islander peoples, society and community", + "Aboriginal and Torres Strait Islander sciences", + "Te ahurea, reo me te hītori o te Māori (Māori culture, language and history)", + "Mātauranga Māori (Māori education)", + "Ngā mātauranga taiao o te Māori (Māori environmental knowledges)", + "Te hauora me te oranga o te Māori (Māori health and wellbeing)", + "Ngā tāngata, te porihanga me ngā hapori o te Māori (Māori peoples, society and community)", + "Ngā pūtaiao Māori (Māori sciences)", + "Pacific Peoples culture, language and history", + "Pacific Peoples education", + "Pacific Peoples environmental knowledges", + "Pacific Peoples health and wellbeing", + "Pacific Peoples sciences", + "Pacific Peoples society and community", + "Other Indigenous data, methodologies and global Indigenous studies", + "Other Indigenous studies" + ] + }, + { + "condition": "anzsrcDivision == \"INFORMATION AND COMPUTING SCIENCES\"", + "value": [ + "Applied computing", + "Artificial intelligence", + "Computer vision and multimedia computation", + "Cybersecurity and privacy", + "Data management and data science", + "Distributed computing and systems software", + "Graphics, augmented reality and games", + "Human-centred computing", + "Information systems", + "Library and information studies", + "Machine learning", + "Software engineering", + "Theory of computation", + "Other information and computing sciences" + ] + }, + { + "condition": "anzsrcDivision == \"LANGUAGE, COMMUNICATION AND CULTURE\"", + "value": [ + "Communication and media studies", + "Cultural studies", + "Language studies", + "Linguistics", + "Literary studies", + "Other language, communication and culture" + ] + }, + { + "condition": "anzsrcDivision == \"LAW AND LEGAL STUDIES\"", + "value": [ + "Commercial law", + "Environmental and resources law", + "International and comparative law", + "Law in context", + "Legal systems", + "Private law and civil obligations", + "Public law", + "Other law and legal studies" + ] + }, + { + "condition": "anzsrcDivision == \"MATHEMATICAL SCIENCES\"", + "value": [ + "Applied mathematics", + "Mathematical physics", + "Numerical and computational mathematics", + "Pure mathematics", + "Statistics", + "Other mathematical sciences" + ] + }, + { + "condition": "anzsrcDivision == \"PHILOSOPHY AND RELIGIOUS STUDIES\"", + "value": [ + "Applied ethics", + "History and philosophy of specific fields", + "Philosophy", + "Religious studies", + "Theology", + "Other philosophy and religious studies" + ] + }, + { + "condition": "anzsrcDivision == \"PHYSICAL SCIENCES\"", + "value": [ + "Astronomical sciences", + "Atomic, molecular and optical physics", + "Classical physics", + "Condensed matter physics", + "Medical and biological physics", + "Nuclear and plasma physics", + "Particle and high energy physics", + "Quantum physics", + "Space sciences", + "Synchrotrons and accelerators", + "Other physical sciences" + ] + }, + { + "condition": "anzsrcDivision == \"PSYCHOLOGY\"", + "value": [ + "Applied and developmental psychology", + "Biological psychology", + "Clinical and health psychology", + "Cognitive and computational psychology", + "Social and personality psychology", + "Other psychology" + ] + } + ], + "type": "computed" + } + }, + { + "dataType": "text", + "name": "anzsrcFields", + "validate": "required", + "constraints": { + "default": [], + "options": [ + { + "condition": "anzsrcGroup == \"Agricultural biotechnology\"", + "value": [ + "Agricultural biotechnology diagnostics (incl. biosensors)", + "Agricultural marine biotechnology", + "Agricultural molecular engineering of nucleic acids and proteins", + "Genetically modified animals", + "Genetically modified field crops and pasture", + "Genetically modified horticulture plants", + "Genetically modified trees", + "Livestock cloning", + "Non-genetically modified uses of biotechnology", + "Transgenesis", + "Agricultural biotechnology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Agriculture, land and farm management\"", + "value": [ + "Agricultural hydrology", + "Agricultural land management", + "Agricultural land planning", + "Agricultural management of nutrients", + "Agricultural production systems simulation", + "Agricultural spatial analysis and modelling", + "Agricultural systems analysis and modelling", + "Farm management, rural management and agribusiness", + "Germplasm management", + "Sustainable agricultural development", + "Agriculture, land and farm management not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Animal production\"", + "value": [ + "Animal growth and development", + "Animal management", + "Animal nutrition", + "Animal protection (incl. pests and pathogens)", + "Animal reproduction and breeding", + "Animal welfare", + "Environmental studies in animal production", + "Animal production not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Crop and pasture production\"", + "value": [ + "Agrochemicals and biocides (incl. application)", + "Agro-ecosystem function and prediction", + "Agronomy", + "Crop and pasture biochemistry and physiology", + "Crop and pasture biomass and bioproducts", + "Crop and pasture improvement (incl. selection and breeding)", + "Crop and pasture nutrition", + "Crop and pasture post harvest technologies (incl. transportation and storage)", + "Crop and pasture protection (incl. pests, diseases and weeds)", + "Crop and pasture waste water use", + "Fertilisers (incl. application)", + "Organic and low chemical input crop production", + "Pollination biology and systems", + "Crop and pasture production not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Fisheries sciences\"", + "value": [ + "Aquaculture", + "Aquaculture and fisheries stock assessment", + "Fish pests and diseases", + "Fish physiology and genetics", + "Fisheries management", + "Post-harvest fisheries technologies (incl. transportation)", + "Fisheries sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Food sciences\"", + "value": [ + "Beverage chemistry and beverage sensory science", + "Food chemistry and food sensory science", + "Food nutritional balance", + "Food packaging, preservation and processing", + "Food safety, traceability, certification and authenticity", + "Food sustainability", + "Food technology", + "Food sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Forestry sciences\"", + "value": [ + "Agroforestry", + "Forest biodiversity", + "Forest ecosystems", + "Forest health and pathology", + "Forestry biomass and bioproducts", + "Forestry fire management", + "Forestry management and environment", + "Forestry product quality assessment", + "Tree improvement (incl. selection and breeding)", + "Tree nutrition and physiology", + "Wood fibre processing", + "Wood processing", + "Forestry sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Horticultural production\"", + "value": [ + "Field organic and low chemical input horticulture", + "Horticultural crop growth and development", + "Horticultural crop improvement (incl. selection and breeding)", + "Horticultural crop protection (incl. pests, diseases and weeds)", + "Oenology and viticulture", + "Post harvest horticultural technologies (incl. transportation and storage)", + "Horticultural production not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Veterinary sciences\"", + "value": [ + "Veterinary anaesthesiology and intensive care", + "Veterinary anatomy and physiology", + "Veterinary bacteriology", + "Veterinary diagnosis and diagnostics", + "Veterinary epidemiology", + "Veterinary immunology", + "Veterinary medicine (excl. urology)", + "Veterinary mycology", + "Veterinary parasitology", + "Veterinary pathology", + "Veterinary pharmacology", + "Veterinary surgery", + "Veterinary urology", + "Veterinary virology", + "Veterinary sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other agricultural, veterinary and food sciences\"", + "value": [ + "Other agricultural, veterinary and food sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Biochemistry and cell biology\"", + "value": [ + "Analytical biochemistry", + "Cell development, proliferation and death", + "Cell metabolism", + "Cell neurochemistry", + "Cellular interactions (incl. adhesion, matrix, cell wall)", + "Enzymes", + "Glycobiology", + "Protein trafficking", + "Proteomics and intermolecular interactions (excl. medical proteomics)", + "Receptors and membrane biology", + "Signal transduction", + "Structural biology (incl. macromolecular modelling)", + "Synthetic biology", + "Systems biology", + "Biochemistry and cell biology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Bioinformatics and computational biology\"", + "value": [ + "Bioinformatic methods development", + "Biological network analysis", + "Computational ecology and phylogenetics", + "Genomics and transcriptomics", + "Proteomics and metabolomics", + "Sequence analysis", + "Statistical and quantitative genetics", + "Translational and applied bioinformatics", + "Bioinformatics and computational biology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Ecology\"", + "value": [ + "Behavioural ecology", + "Community ecology (excl. invasive species ecology)", + "Ecological physiology", + "Freshwater ecology", + "Marine and estuarine ecology (incl. marine ichthyology)", + "Palaeoecology", + "Population ecology", + "Terrestrial ecology", + "Ecology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Evolutionary biology\"", + "value": [ + "Animal systematics and taxonomy", + "Biogeography and phylogeography", + "Biological adaptation", + "Evolution of developmental systems", + "Evolutionary ecology", + "Evolutionary impacts of climate change", + "Host-parasite interactions", + "Life histories", + "Microbial taxonomy", + "Phylogeny and comparative analysis", + "Plant and fungus systematics and taxonomy", + "Speciation and extinction", + "Evolutionary biology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Genetics\"", + "value": [ + "Anthropological genetics", + "Cell and nuclear division", + "Developmental genetics (incl. sex determination)", + "Epigenetics (incl. genome methylation and epigenomics)", + "Gene expression (incl. microarray and other genome-wide approaches)", + "Gene mapping", + "Genetic immunology", + "Genome structure and regulation", + "Genomics", + "Molecular evolution", + "Neurogenetics", + "Genetics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Industrial biotechnology\"", + "value": [ + "Biocatalysis and enzyme technology", + "Bioprocessing, bioproduction and bioproducts", + "Fermentation", + "Industrial biotechnology diagnostics (incl. biosensors)", + "Industrial microbiology (incl. biofeedstocks)", + "Industrial molecular engineering of nucleic acids and proteins", + "Nanobiotechnology", + "Industrial biotechnology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Microbiology\"", + "value": [ + "Bacteriology", + "Infectious agents", + "Microbial ecology", + "Microbial genetics", + "Mycology", + "Virology", + "Microbiology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Plant biology\"", + "value": [ + "Phycology (incl. marine grasses)", + "Plant biochemistry", + "Plant cell and molecular biology", + "Plant developmental and reproductive biology", + "Plant pathology", + "Plant physiology", + "Plant biology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Zoology\"", + "value": [ + "Animal behaviour", + "Animal cell and molecular biology", + "Animal developmental and reproductive biology", + "Animal diet and nutrition", + "Animal immunology", + "Animal neurobiology", + "Animal physiological ecology", + "Animal physiology - biophysics", + "Animal physiology - cell", + "Animal physiology - systems", + "Animal structure and function", + "Comparative physiology", + "Invertebrate biology", + "Vertebrate biology", + "Zoology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other biological sciences\"", + "value": [ + "Forensic biology", + "Global change biology", + "Other biological sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Cardiovascular medicine and haematology\"", + "value": [ + "Cardiology (incl. cardiovascular diseases)", + "Haematology", + "Respiratory diseases", + "Cardiovascular medicine and haematology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Clinical sciences\"", + "value": [ + "Anaesthesiology", + "Clinical chemistry (incl. diagnostics)", + "Clinical microbiology", + "Clinimetrics", + "Dermatology", + "Diagnostic radiography", + "Emergency medicine", + "Endocrinology", + "Gastroenterology and hepatology", + "Geriatrics and gerontology", + "Infectious diseases", + "Intensive care", + "Medical genetics (excl. cancer genetics)", + "Nephrology and urology", + "Nuclear medicine", + "Orthopaedics", + "Otorhinolaryngology", + "Pain", + "Paramedicine", + "Pathology (excl. oral pathology)", + "Psychiatry (incl. psychotherapy)", + "Radiology and organ imaging", + "Rheumatology and arthritis", + "Rural clinical health", + "Sports medicine", + "Surgery", + "Venereology", + "Clinical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Dentistry\"", + "value": [ + "Craniofacial biology", + "Dental materials and equipment", + "Dental therapeutics, pharmacology and toxicology", + "Endodontics", + "Oral and maxillofacial surgery", + "Oral implantology", + "Oral medicine and pathology", + "Orthodontics and dentofacial orthopaedics", + "Paedodontics", + "Periodontics", + "Prosthodontics", + "Special needs dentistry", + "Dentistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Immunology\"", + "value": [ + "Allergy", + "Applied immunology (incl. antibody engineering, xenotransplantation and t-cell therapies)", + "Autoimmunity", + "Cellular immunology", + "Humoural immunology and immunochemistry", + "Immunogenetics (incl. genetic immunology)", + "Innate immunity", + "Transplantation immunology", + "Tumour immunology", + "Immunology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medical biochemistry and metabolomics\"", + "value": [ + "Medical biochemistry - amino acids and metabolites", + "Medical biochemistry - carbohydrates", + "Medical biochemistry - inorganic elements and compounds", + "Medical biochemistry - lipids", + "Medical biochemistry - nucleic acids", + "Medical biochemistry - proteins and peptides (incl. medical proteomics)", + "Metabolic medicine", + "Medical biochemistry and metabolomics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medical biotechnology\"", + "value": [ + "Gene and molecular therapy", + "Medical biotechnology diagnostics (incl. biosensors)", + "Medical molecular engineering of nucleic acids and proteins", + "Nanomedicine", + "Nanotoxicology, health and safety", + "Regenerative medicine (incl. stem cells)", + "Medical biotechnology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medical microbiology\"", + "value": [ + "Medical bacteriology", + "Medical infection agents (incl. prions)", + "Medical mycology", + "Medical parasitology", + "Medical virology", + "Medical microbiology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medical physiology\"", + "value": [ + "Cell physiology", + "Human biophysics", + "Systems physiology", + "Medical physiology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Neurosciences\"", + "value": [ + "Autonomic nervous system", + "Cellular nervous system", + "Central nervous system", + "Computational neuroscience (incl. mathematical neuroscience and theoretical neuroscience)", + "Neurology and neuromuscular diseases", + "Peripheral nervous system", + "Sensory systems", + "Neurosciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Nutrition and dietetics\"", + "value": [ + "Clinical nutrition", + "Food properties (incl. characteristics and health benefits)", + "Nutrigenomics and personalised nutrition", + "Nutritional science", + "Public health nutrition", + "Sport and exercise nutrition", + "Nutrition and dietetics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Oncology and carcinogenesis\"", + "value": [ + "Cancer cell biology", + "Cancer diagnosis", + "Cancer genetics", + "Cancer therapy (excl. chemotherapy and radiation therapy)", + "Chemotherapy", + "Haematological tumours", + "Liquid biopsies", + "Molecular targets", + "Predictive and prognostic markers", + "Radiation therapy", + "Solid tumours", + "Oncology and carcinogenesis not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Ophthalmology and optometry\"", + "value": [ + "Ophthalmology", + "Optical technology", + "Optometry", + "Vision science", + "Ophthalmology and optometry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Paediatrics\"", + "value": [ + "Adolescent health", + "Infant and child health", + "Neonatology", + "Paediatrics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pharmacology and pharmaceutical sciences\"", + "value": [ + "Basic pharmacology", + "Clinical pharmacology and therapeutics", + "Clinical pharmacy and pharmacy practice", + "Pharmaceutical delivery technologies", + "Pharmaceutical sciences", + "Pharmacogenomics", + "Toxicology (incl. clinical toxicology)", + "Pharmacology and pharmaceutical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Reproductive medicine\"", + "value": [ + "Foetal development and medicine", + "Obstetrics and gynaecology", + "Reproduction", + "Reproductive medicine not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other biomedical and clinical sciences\"", + "value": [ + "Other biomedical and clinical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Architecture\"", + "value": [ + "Architectural computing and visualisation methods", + "Architectural design", + "Architectural heritage and conservation", + "Architectural history, theory and criticism", + "Architectural science and technology", + "Architecture for disaster relief", + "Architecture management", + "Interior design", + "Landscape architecture", + "Sustainable architecture", + "Architecture not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Building\"", + "value": [ + "Automation and technology in building and construction", + "Building construction management and project planning", + "Building industry studies", + "Building information modelling and management", + "Building organisational studies", + "Building science, technologies and systems", + "Quantity surveying", + "Building not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Design\"", + "value": [ + "Data visualisation and computational (incl. parametric and generative) design", + "Design anthropology", + "Design for disaster relief", + "Design history, theory and criticism", + "Design management", + "Design practice and methods", + "Ergonomics design", + "Fire safety design", + "Industrial and product design", + "Interaction and experience design", + "Models and simulations of design", + "Service design", + "Social design", + "Sustainable design", + "Textile and fashion design", + "Visual communication design (incl. graphic design)", + "Design not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Urban and regional planning\"", + "value": [ + "Community planning", + "History and theory of the built environment (excl. architecture)", + "Housing markets, development and management", + "Land use and environmental planning", + "Public participation and community engagement", + "Regional analysis and development", + "Regulatory planning and development assessment", + "Strategic, metropolitan and regional planning", + "Transport planning", + "Urban analysis and development", + "Urban design", + "Urban informatics", + "Urban planning and health", + "Urban and regional planning not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other built environment and design\"", + "value": [ + "Other built environment and design not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Analytical chemistry\"", + "value": [ + "Analytical spectrometry", + "Bioassays", + "Electroanalytical chemistry", + "Flow analysis", + "Instrumental methods (excl. immunological and bioassay methods)", + "Metabolomic chemistry", + "Quality assurance, chemometrics, traceability and metrological chemistry", + "Sensor technology (incl. chemical aspects)", + "Separation science", + "Analytical chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Inorganic chemistry\"", + "value": [ + "Bioinorganic chemistry", + "Crystallography", + "F-block chemistry", + "Inorganic green chemistry", + "Main group metal chemistry", + "Metal cluster chemistry", + "Metal organic frameworks", + "Non-metal chemistry", + "Organometallic chemistry", + "Solid state chemistry", + "Transition metal chemistry", + "Inorganic chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Macromolecular and materials chemistry\"", + "value": [ + "Inorganic materials (incl. nanomaterials)", + "Macromolecular materials", + "Nanochemistry", + "Optical properties of materials", + "Physical properties of materials", + "Polymerisation mechanisms", + "Structure and dynamics of materials", + "Supramolecular chemistry", + "Theory and design of materials", + "Macromolecular and materials chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medicinal and biomolecular chemistry\"", + "value": [ + "Biologically active molecules", + "Biomolecular modelling and design", + "Characterisation of biological macromolecules", + "Cheminformatics and quantitative structure-activity relationships", + "Glycoconjugates", + "Molecular medicine", + "Proteins and peptides", + "Medicinal and biomolecular chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Organic chemistry\"", + "value": [ + "Free radical chemistry", + "Natural products and bioactive compounds", + "Organic chemical synthesis", + "Organic green chemistry", + "Physical organic chemistry", + "Organic chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Physical chemistry\"", + "value": [ + "Catalysis and mechanisms of reactions", + "Chemical thermodynamics and energetics", + "Colloid and surface chemistry", + "Electrochemistry", + "Molecular imaging (incl. electron microscopy and neutron diffraction)", + "Photochemistry", + "Reaction kinetics and dynamics", + "Solution chemistry", + "Transport properties and non-equilibrium processes", + "Physical chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Theoretical and computational chemistry\"", + "value": [ + "Computational chemistry", + "Radiation and matter", + "Statistical mechanics in chemistry", + "Theoretical quantum chemistry", + "Theoretical and computational chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other chemical sciences\"", + "value": [ + "Forensic chemistry", + "Other chemical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other chemical sciences\"", + "value": [ + "Forensic chemistry", + "Other chemical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Accounting, auditing and accountability\"", + "value": [ + "Accounting theory and standards", + "Auditing and accountability", + "Financial accounting", + "International accounting", + "Management accounting", + "Not-for-profit accounting and accountability", + "Sustainability accounting and reporting", + "Taxation accounting", + "Accounting, auditing and accountability not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Banking, finance and investment\"", + "value": [ + "Environment and climate finance", + "Finance", + "Financial econometrics", + "Financial institutions (incl. banking)", + "Household finance and financial literacy", + "Insurance studies", + "International finance", + "Investment and risk management", + "Not-for-profit finance and risk", + "Banking, finance and investment not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Business systems in context\"", + "value": [ + "Business analytics", + "Business information management (incl. records, knowledge and intelligence)", + "Business information systems", + "Business systems in context", + "Forensic intelligence", + "Forensic science and management", + "Technology management", + "Business systems in context not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Commercial services\"", + "value": [ + "Food and hospitality services", + "Hospitality management", + "Real estate and valuation services", + "Retail", + "Sport and leisure management", + "Commercial services not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Human resources and industrial relations\"", + "value": [ + "Business and labour history", + "Employment equity and diversity", + "Human resources management", + "Industrial and employee relations", + "Occupational and workplace health and safety", + "Workforce planning", + "Workplace wellbeing and quality of working life", + "Human resources and industrial relations not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Marketing\"", + "value": [ + "Consumer behaviour", + "Consumer-oriented product or service development", + "Industrial marketing", + "Marketing communications", + "Marketing management (incl. strategy and customer relations)", + "Marketing research methodology", + "Marketing technology", + "Marketing theory", + "Not-for-profit marketing", + "Pricing (incl. consumer value estimation)", + "Service marketing", + "Social marketing", + "Marketing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Strategy, management and organisational behaviour\"", + "value": [ + "Corporate governance", + "Corporate social responsibility", + "Disaster and emergency management", + "Entrepreneurship", + "Innovation management", + "International business", + "Leadership", + "Not-for-profit business and management", + "Organisation and management theory", + "Organisational behaviour", + "Organisational planning and management", + "Production and operations management", + "Project management", + "Public sector organisation and management", + "Quality management", + "Small business organisation and management", + "Stakeholder engagement", + "Strategy", + "Strategy, management and organisational behaviour not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Tourism\"", + "value": [ + "Impacts of tourism", + "Tourism forecasting", + "Tourism management", + "Tourism marketing", + "Tourism resource appraisal", + "Tourist behaviour and visitor experience", + "Tourism not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Transportation, logistics and supply chains\"", + "value": [ + "Air transportation and freight services", + "Intelligent mobility", + "Logistics", + "Maritime transportation and freight services", + "Passenger needs", + "Public transport", + "Rail transportation and freight services", + "Road transportation and freight services", + "Supply chains", + "Transportation, logistics and supply chains not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other commerce, management, tourism and services\"", + "value": [ + "Other commerce, management, tourism and services not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Art history, theory and criticism\"", + "value": [ + "Art criticism", + "Art history", + "Art theory", + "Visual cultures", + "Art history, theory and criticism not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Creative and professional writing\"", + "value": [ + "Creative writing (incl. scriptwriting)", + "Digital writing", + "Professional writing and journalism practice", + "Site-based writing", + "Technical writing", + "Creative and professional writing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Music\"", + "value": [ + "Music cognition", + "Music composition and improvisation", + "Music education", + "Music performance", + "Music technology and recording", + "Musicology and ethnomusicology", + "Music not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Performing arts\"", + "value": [ + "Applied theatre", + "Dance and dance studies", + "Drama, theatre and performance studies", + "Performing arts not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Screen and digital media\"", + "value": [ + "Cinema studies", + "Computer gaming and animation", + "Digital and electronic media art", + "Interactive media", + "Screen media", + "Visual effects", + "Screen and digital media not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Visual arts\"", + "value": [ + "Crafts", + "Fine arts", + "Performance art", + "Photography, video and lens-based practice", + "Visual arts not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other creative arts and writing\"", + "value": [ + "Other creative arts and writing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Climate change science\"", + "value": [ + "Climate change processes", + "Climatology", + "Greenhouse gas inventories and fluxes", + "Climate change science not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Geochemistry\"", + "value": [ + "Exploration geochemistry", + "Inorganic geochemistry", + "Isotope geochemistry", + "Organic geochemistry", + "Geochemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Geoinformatics\"", + "value": [ + "Computational modelling and simulation in earth sciences", + "Earth and space science informatics", + "Geoscience data visualisation", + "Geoinformatics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Geology\"", + "value": [ + "Biomineralisation", + "Geochronology", + "Igneous and metamorphic petrology", + "Marine geoscience", + "Mineralogy and crystallography", + "Palaeontology (incl. palynology)", + "Planetary geology", + "Resource geoscience", + "Sedimentology", + "Stratigraphy (incl. biostratigraphy, sequence stratigraphy and basin analysis)", + "Structural geology and tectonics", + "Volcanology", + "Geology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Geophysics\"", + "value": [ + "Applied geophysics", + "Electrical and electromagnetic methods in geophysics", + "Geodesy", + "Geodynamics", + "Geothermics and radiometrics", + "Gravimetrics", + "Magnetism and palaeomagnetism", + "Petrophysics and rock mechanics", + "Seismology and seismic exploration", + "Geophysics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Hydrology\"", + "value": [ + "Contaminant hydrology", + "Ecohydrology", + "Groundwater hydrology", + "Surface water hydrology", + "Urban hydrology", + "Hydrology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Oceanography\"", + "value": [ + "Biological oceanography", + "Chemical oceanography", + "Physical oceanography", + "Oceanography not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Physical geography and environmental geoscience\"", + "value": [ + "Geomorphology and earth surface processes", + "Glaciology", + "Natural hazards", + "Palaeoclimatology", + "Quaternary environments", + "Regolith and landscape evolution", + "Physical geography and environmental geoscience not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other earth sciences\"", + "value": [ + "Earth system sciences", + "Other earth sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Applied economics\"", + "value": [ + "Agricultural economics", + "Behavioural economics", + "Economic history", + "Economics of education", + "Environment and resource economics", + "Experimental economics", + "Financial economics", + "Health economics", + "Industry economics and industrial organisation", + "International economics", + "Labour economics", + "Macroeconomics (incl. monetary and fiscal theory)", + "Public economics - public choice", + "Public economics - publicly provided goods", + "Public economics - taxation and revenue", + "Tourism economics", + "Transport economics", + "Urban and regional economics", + "Welfare economics", + "Applied economics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Econometrics\"", + "value": [ + "Cross-sectional analysis", + "Econometric and statistical methods", + "Economic models and forecasting", + "Panel data analysis", + "Time-series analysis", + "Econometrics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Economic theory\"", + "value": [ + "History of economic thought", + "Macroeconomic theory", + "Mathematical economics", + "Microeconomic theory", + "Economic theory not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other economics\"", + "value": [ + "Comparative economic systems", + "Ecological economics", + "Heterodox economics", + "Other economics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Curriculum and pedagogy\"", + "value": [ + "Creative arts, media and communication curriculum and pedagogy", + "Curriculum and pedagogy theory and development", + "Economics, business and management curriculum and pedagogy", + "English and literacy curriculum and pedagogy (excl. LOTE, ESL and TESOL)", + "Environmental education curriculum and pedagogy", + "Geography education curriculum and pedagogy", + "Humanities and social sciences curriculum and pedagogy (excl. economics, business and management)", + "LOTE, ESL and TESOL curriculum and pedagogy", + "Mathematics and numeracy curriculum and pedagogy", + "Medicine, nursing and health curriculum and pedagogy", + "Physical education and development curriculum and pedagogy", + "Religion curriculum and pedagogy", + "Science, technology and engineering curriculum and pedagogy", + "Vocational education and training curriculum and pedagogy", + "Work integrated learning (incl. internships)", + "Curriculum and pedagogy not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Education policy, sociology and philosophy\"", + "value": [ + "Education policy", + "History and philosophy of education", + "Sociology of education", + "Education policy, sociology and philosophy not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Education systems\"", + "value": [ + "Continuing and community education", + "Early childhood education", + "Higher education", + "Primary education", + "Professional education and training", + "Secondary education", + "Teacher education and professional development of educators", + "Technical, further and workplace education", + "Education systems not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Specialist studies in education\"", + "value": [ + "Comparative and cross-cultural education", + "Education assessment and evaluation", + "Educational administration, management and leadership", + "Educational counselling", + "Educational technology and computing", + "Gender, sexuality and education", + "Inclusive education", + "Learning analytics", + "Learning sciences", + "Multicultural education (excl. Aboriginal and Torres Strait Islander, Māori and Pacific Peoples)", + "Special education and disability", + "Teacher and student wellbeing", + "Specialist studies in education not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other Education\"", + "value": [ + "Other education not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aerospace engineering\"", + "value": [ + "Aerospace materials", + "Aerospace structures", + "Aircraft performance and flight control systems", + "Avionics", + "Flight dynamics", + "Hypersonic propulsion and hypersonic aerothermodynamics", + "Satellite, space vehicle and missile design and testing", + "Aerospace engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Automotive engineering\"", + "value": [ + "Automotive combustion and fuel engineering", + "Automotive engineering materials", + "Automotive mechatronics and autonomous systems", + "Automotive safety engineering", + "Hybrid and electric vehicles and powertrains", + "Automotive engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Biomedical engineering\"", + "value": [ + "Biofabrication", + "Biomaterials", + "Biomechanical engineering", + "Biomedical imaging", + "Biomedical instrumentation", + "Computational physiology", + "Mechanobiology", + "Medical devices", + "Neural engineering", + "Rehabilitation engineering", + "Tissue engineering", + "Biomedical engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Chemical engineering\"", + "value": [ + "Carbon capture engineering (excl. sequestration)", + "Chemical and thermal processes in energy and combustion", + "Chemical engineering design", + "Electrochemical energy storage and conversion", + "Food engineering", + "Powder and particle technology", + "Process control and simulation", + "Reaction engineering (excl. nuclear reactions)", + "Separation technologies", + "Wastewater treatment processes", + "Water treatment processes", + "Chemical engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Civil engineering\"", + "value": [ + "Architectural engineering", + "Civil geotechnical engineering", + "Complex civil systems", + "Construction engineering", + "Construction materials", + "Earthquake engineering", + "Fire safety engineering", + "Infrastructure engineering and asset management", + "Structural dynamics", + "Structural engineering", + "Timber engineering", + "Transport engineering", + "Water resources engineering", + "Civil engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Communications engineering\"", + "value": [ + "Antennas and propagation", + "Data communications", + "Molecular, biological, and multi-scale communications", + "Network engineering", + "Optical fibre communication systems and technologies", + "Satellite communications", + "Signal processing", + "Wireless communication systems and technologies (incl. microwave and millimetrewave)", + "Communications engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Control engineering, mechatronics and robotics\"", + "value": [ + "Assistive robots and technology", + "Automation engineering", + "Autonomous vehicle systems", + "Biomechatronics", + "Control engineering", + "Field robotics", + "Manufacturing robotics", + "Mechatronics hardware design and architecture", + "Medical robotics", + "Micro-manipulation", + "Simulation, modelling, and programming of mechatronics systems", + "Control engineering, mechatronics and robotics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Electrical engineering\"", + "value": [ + "Circuits and systems", + "Electrical circuits and systems", + "Electrical energy generation (incl. renewables, excl. photovoltaics)", + "Electrical energy storage", + "Electrical energy transmission, networks and systems", + "Electrical machines and drives", + "Engineering electromagnetics", + "Photovoltaic power systems", + "Electrical engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Electronics, sensors and digital hardware\"", + "value": [ + "Analog electronics and interfaces", + "Digital electronic devices", + "Digital processor architectures", + "Electronic device and system performance evaluation, testing and simulation", + "Electronic instrumentation", + "Electronic sensors", + "Industrial electronics", + "Microelectronics", + "Photonic and electro-optical devices, sensors and systems (excl. communications)", + "Photovoltaic devices (solar cells)", + "Power electronics", + "Quantum engineering systems (incl. computing and communications)", + "Radio frequency engineering", + "Electronics, sensors and digital hardware not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Engineering practice and education\"", + "value": [ + "Engineering design", + "Engineering education", + "Engineering practice", + "Humanitarian engineering", + "Risk engineering", + "Systems engineering", + "Engineering practice and education not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Environmental engineering\"", + "value": [ + "Air pollution modelling and control", + "Environmentally sustainable engineering", + "Global and planetary environmental engineering", + "Health and ecological risk assessment", + "Life cycle assessment and industrial ecology", + "Waste management, reduction, reuse and recycling", + "Environmental engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Fluid mechanics and thermal engineering\"", + "value": [ + "Aerodynamics (excl. hypersonic aerodynamics)", + "Bio-fluids", + "Biomedical fluid mechanics", + "Computational methods in fluid flow, heat and mass transfer (incl. computational fluid dynamics)", + "Experimental methods in fluid flow, heat and mass transfer", + "Fluid-structure interaction and aeroacoustics", + "Fundamental and theoretical fluid dynamics", + "Geophysical and environmental fluid flows", + "Hydrodynamics and hydraulic engineering", + "Microfluidics and nanofluidics", + "Multiphysics flows (incl. multiphase and reacting flows)", + "Non-Newtonian fluid flows (incl. rheology)", + "Turbulent flows", + "Fluid mechanics and thermal engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Geomatic engineering\"", + "value": [ + "Cartography and digital mapping", + "Geospatial information systems and geospatial data modelling", + "Navigation and position fixing", + "Photogrammetry and remote sensing", + "Satellite-based positioning", + "Surveying (incl. hydrographic surveying)", + "Geomatic engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Manufacturing engineering\"", + "value": [ + "Additive manufacturing", + "CAD/CAM systems", + "Flexible manufacturing systems", + "Industrial engineering", + "Machine tools", + "Machining", + "Manufacturing management", + "Manufacturing processes and technologies (excl. textiles)", + "Manufacturing safety and quality", + "Microtechnology", + "Packaging, storage and transportation (excl. food and agricultural products)", + "Precision engineering", + "Textile technology", + "Manufacturing engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Maritime engineering\"", + "value": [ + "Marine engineering", + "Naval architecture", + "Ocean engineering", + "Ship and platform structures (incl. maritime hydrodynamics)", + "Special vehicles", + "Maritime engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Materials engineering\"", + "value": [ + "Ceramics", + "Composite and hybrid materials", + "Compound semiconductors", + "Elemental semiconductors", + "Functional materials", + "Glass", + "Metals and alloy materials", + "Organic semiconductors", + "Polymers and plastics", + "Timber, pulp and paper", + "Wearable materials", + "Materials engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Mechanical engineering\"", + "value": [ + "Acoustics and noise control (excl. architectural acoustics)", + "Dynamics, vibration and vibration control", + "Energy generation, conversion and storage (excl. chemical and electrical)", + "Mechanical engineering asset management", + "Microelectromechanical systems (MEMS)", + "Numerical modelling and mechanical characterisation", + "Solid mechanics", + "Tribology", + "Mechanical engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Nanotechnology\"", + "value": [ + "Micro- and nanosystems", + "Molecular and organic electronics", + "Nanoelectromechanical systems", + "Nanoelectronics", + "Nanofabrication, growth and self assembly", + "Nanomanufacturing", + "Nanomaterials", + "Nanometrology", + "Nanophotonics", + "Nanoscale characterisation", + "Nanotechnology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Resources engineering and extractive metallurgy\"", + "value": [ + "Electrometallurgy", + "Geomechanics and resources geotechnical engineering", + "Hydrometallurgy", + "Mineral processing/beneficiation", + "Mining engineering", + "Nuclear engineering (incl. fuel enrichment and waste processing and storage)", + "Petroleum and reservoir engineering", + "Pyrometallurgy", + "Resources engineering and extractive metallurgy not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other engineering\"", + "value": [ + "Agricultural engineering", + "Engineering instrumentation", + "Granular mechanics", + "Other engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Climate change impacts and adaptation\"", + "value": [ + "Carbon sequestration science", + "Ecological impacts of climate change and ecological adaptation", + "Human impacts of climate change and human adaptation", + "Climate change impacts and adaptation not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Ecological applications\"", + "value": [ + "Bioavailability and ecotoxicology", + "Biosecurity science and invasive species ecology", + "Ecosystem function", + "Ecosystem services (incl. pollination)", + "Fire ecology", + "Landscape ecology", + "Ecological applications not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Environmental biotechnology\"", + "value": [ + "Biodiscovery", + "Biological control", + "Bioremediation", + "Environmental biotechnology diagnostics (incl. biosensors)", + "Environmental marine biotechnology", + "Environmental nanotechnology and nanometrology", + "Environmental biotechnology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Environmental management\"", + "value": [ + "Conservation and biodiversity", + "Environmental assessment and monitoring", + "Environmental education and extension", + "Environmental management", + "Environmental rehabilitation and restoration", + "Natural resource management", + "Wildlife and habitat management", + "Environmental management not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pollution and contamination\"", + "value": [ + "Environmental biogeochemistry", + "Noise and wave pollution processes and measurement", + "Groundwater quality processes and contaminated land assessment", + "Surface water quality processes and contaminated sediment assessment", + "Pollution and contamination not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Soil sciences\"", + "value": [ + "Land capability and soil productivity", + "Pedology and pedometrics", + "Soil biology", + "Soil chemistry and soil carbon sequestration (excl. carbon sequestration science)", + "Soil physics", + "Soil sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other environmental sciences\"", + "value": [ + "Other environmental sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Allied health and rehabilitation science\"", + "value": [ + "Arts therapy", + "Audiology", + "Music therapy", + "Occupational therapy", + "Orthoptics", + "Physiotherapy", + "Podiatry", + "Prosthetics and orthotics", + "Rehabilitation", + "Speech pathology", + "Allied health and rehabilitation science not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Epidemiology\"", + "value": [ + "Behavioural epidemiology", + "Disease surveillance", + "Environmental epidemiology", + "Epidemiological methods", + "Epidemiological modelling", + "Forensic epidemiology", + "Major global burdens of disease", + "Nutritional epidemiology", + "Occupational epidemiology", + "Social epidemiology", + "Epidemiology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Health services and systems\"", + "value": [ + "Aged health care", + "Digital health", + "Family care", + "General practice", + "Health and community services", + "Health care administration", + "Health counselling", + "Health informatics and information systems", + "Health management", + "Health surveillance", + "Health systems", + "Implementation science and evaluation", + "Mental health services", + "Multimorbidity", + "One health", + "Palliative care", + "Patient safety", + "People with disability", + "Primary health care", + "Residential client care", + "Rural and remote health services", + "Health services and systems not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Midwifery\"", + "value": [ + "Clinical midwifery", + "Models of care and place of birth", + "Psychosocial aspects of childbirth and perinatal mental health", + "Midwifery not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Nursing\"", + "value": [ + "Acute care", + "Aged care nursing", + "Community and primary care", + "Mental health nursing", + "Nursing workforce", + "Sub-acute care", + "Nursing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Public health\"", + "value": [ + "Community child health", + "Health equity", + "Health promotion", + "Injury prevention", + "Preventative health care", + "Social determinants of health", + "Public health not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Sports science and exercise\"", + "value": [ + "Biomechanics", + "Exercise physiology", + "Motor control", + "Sports science and exercise not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Traditional, complementary and integrative medicine\"", + "value": [ + "Chiropractic", + "Naturopathy", + "Traditional Chinese medicine and treatments", + "Traditional, complementary and integrative medicine not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other health sciences\"", + "value": [ + "Other health sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Archaeology\"", + "value": [ + "Archaeological science", + "Archaeology of Asia, Africa and the Americas", + "Archaeology of Australia (excl. Aboriginal and Torres Strait Islander)", + "Archaeology of Europe, the Mediterranean and the Levant", + "Archaeology of New Zealand (excl. Māori)", + "Digital archaeology", + "Historical archaeology (incl. industrial archaeology)", + "Maritime archaeology", + "Archaeology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Heritage, archive and museum studies\"", + "value": [ + "Archival, repository and related studies", + "Critical heritage, museum and archive studies", + "Cultural heritage management (incl. world heritage)", + "Digital heritage", + "Heritage and cultural conservation", + "Heritage collections and interpretations", + "Heritage tourism, visitor and audience studies", + "Intangible heritage", + "Materials conservation", + "Heritage, archive and museum studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Historical studies\"", + "value": [ + "Asian history", + "Australian history", + "Biography", + "British history", + "Classical Greek and Roman history", + "Digital history", + "Environmental history", + "European history (excl. British, classical Greek and Roman)", + "Gender history", + "Global and world history", + "Historical studies of crime", + "Histories of race", + "History of empires, imperialism and colonialism", + "History of religion", + "History of the pacific", + "International history", + "Latin and South American history", + "Middle Eastern and North African history", + "Migration history", + "New Zealand history", + "North American history", + "Sub-Saharan African history", + "Transnational history", + "Historical studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other history, heritage and archaeology\"", + "value": [ + "Other history, heritage and archaeology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Anthropology\"", + "value": [ + "Anthropology of development", + "Anthropology of gender and sexuality", + "Biological (physical) anthropology", + "Environmental anthropology", + "Linguistic anthropology", + "Medical anthropology", + "Social and cultural anthropology", + "Anthropology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Criminology\"", + "value": [ + "Causes and prevention of crime", + "Correctional theory, offender treatment and rehabilitation", + "Courts and sentencing", + "Crime and social justice", + "Criminological theories", + "Critical approaches to crime", + "Cybercrime", + "Environmental crime", + "Gender and crime", + "Organised crime", + "Police administration, procedures and practice", + "Private policing and security services", + "Race/ethnicity and crime", + "Sociological studies of crime", + "State crime", + "Technology, crime and surveillance", + "Terrorism", + "Victims", + "White collar crime", + "Criminology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Demography\"", + "value": [ + "Family and household studies", + "Fertility", + "Migration", + "Mortality", + "Population trends and policies", + "Demography not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Development studies\"", + "value": [ + "Development cooperation", + "Humanitarian disasters, conflict and peacebuilding", + "Labour, migration and development", + "Political economy and social change", + "Poverty, inclusivity and wellbeing", + "Rural community development", + "Socio-economic development", + "Urban community development", + "Development studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Gender studies\"", + "value": [ + "Feminist and queer theory", + "Feminist methodologies", + "Feminist theory", + "Gender relations", + "Intersectional studies", + "Sexualities", + "Studies of men and masculinities", + "Transgender studies", + "Women's studies (incl. girls' studies)", + "Gender studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Human geography\"", + "value": [ + "Cultural geography", + "Development geography", + "Economic geography", + "Environmental geography", + "Health geography", + "Political geography", + "Population geography", + "Recreation, leisure and tourism geography", + "Rural and regional geography", + "Social geography", + "Transport geography", + "Urban geography", + "Human geography not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Policy and administration\"", + "value": [ + "Communications and media policy", + "Crime policy", + "Economic development policy", + "Environment policy", + "Gender, policy and administration", + "Health policy", + "Housing policy", + "Public administration", + "Public policy", + "Research, science and technology policy", + "Risk policy", + "Social policy", + "Tourism policy", + "Urban policy", + "Policy and administration not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Political science\"", + "value": [ + "Australian government and politics", + "Citizenship", + "Comparative government and politics", + "Defence studies", + "Environmental politics", + "Gender and politics", + "Government and politics of Asia and the Pacific", + "International relations", + "New Zealand government and politics", + "Peace studies", + "Political theory and political philosophy", + "Political science not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Social work\"", + "value": [ + "Clinical social work practice", + "Counselling, wellbeing and community services", + "Social program evaluation", + "Social work not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Sociology\"", + "value": [ + "Applied sociology, program evaluation and social impact assessment", + "Environmental sociology", + "Rural sociology", + "Social change", + "Social theory", + "Sociological methodology and research methods", + "Sociology and social studies of science and technology", + "Sociology of culture", + "Sociology of family and relationships", + "Sociology of gender", + "Sociology of health", + "Sociology of inequalities", + "Sociology of migration, ethnicity and multiculturalism", + "Sociology of religion", + "Sociology of the life course", + "Urban sociology and community studies", + "Sociology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other human society\"", + "value": [ + "Studies of Asian society", + "Other human society not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander culture, language and history\"", + "value": [ + "Aboriginal and Torres Strait Islander archaeology", + "Aboriginal and Torres Strait Islander artefacts", + "Aboriginal and Torres Strait Islander cultural history", + "Aboriginal and Torres Strait Islander culture", + "Aboriginal and Torres Strait Islander curatorial, archives and museum studies", + "Aboriginal and Torres Strait Islander ethics", + "Aboriginal and Torres Strait Islander history", + "Aboriginal and Torres Strait Islander linguistics and languages", + "Aboriginal and Torres Strait Islander literature, journalism and professional writing", + "Aboriginal and Torres Strait Islander media, film, animation and photography", + "Aboriginal and Torres Strait Islander music and performing arts", + "Aboriginal and Torres Strait Islander philosophy", + "Aboriginal and Torres Strait Islander religion and religious studies", + "Aboriginal and Torres Strait Islander repatriation", + "Aboriginal and Torres Strait Islander research methods", + "Aboriginal and Torres Strait Islander visual arts and crafts", + "Aboriginal and Torres Strait Islander ways of knowing, being and doing", + "Conservation of Aboriginal and Torres Strait Islander heritage", + "Aboriginal and Torres Strait Islander culture, language and history not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander education\"", + "value": [ + "Aboriginal and Torres Strait Islander curriculum and pedagogy", + "Aboriginal and Torres Strait Islander early childhood education", + "Aboriginal and Torres Strait Islander educational methods", + "Aboriginal and Torres Strait Islander technical, further, continuing and community education", + "Aboriginal and Torres Strait Islander higher education", + "Aboriginal and Torres Strait Islander language education", + "Aboriginal and Torres Strait Islander men’s education", + "Aboriginal and Torres Strait Islander primary education", + "Aboriginal and Torres Strait Islander secondary education", + "Aboriginal and Torres Strait Islander student engagement and teaching", + "Aboriginal and Torres Strait Islander women’s education", + "Cultural responsiveness and working with Aboriginal and Torres Strait Islander communities education", + "Embedding Aboriginal and Torres Strait Islander knowledges, histories, culture, country, perspectives and ethics in education", + "Aboriginal and Torres Strait Islander education not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander environmental knowledges and management\"", + "value": [ + "Aboriginal and Torres Strait Islander agriculture and forestry", + "Aboriginal and Torres Strait Islander earth sciences", + "Aboriginal and Torres Strait Islander environmental conservation", + "Aboriginal and Torres Strait Islander environmental knowledges", + "Aboriginal and Torres Strait Islander fisheries and customary fisheries", + "Aboriginal and Torres Strait Islander land and water management", + "Aboriginal and Torres Strait Islander marine environment science", + "Aboriginal and Torres Strait Islander environmental knowledges and management not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander health and wellbeing\"", + "value": [ + "Aboriginal and Torres Strait Islander and disability", + "Aboriginal and Torres Strait Islander biomedical and clinical sciences", + "Aboriginal and Torres Strait Islander child health and wellbeing", + "Aboriginal and Torres Strait Islander cultural determinants of health", + "Aboriginal and Torres Strait Islander diet and nutrition", + "Aboriginal and Torres Strait Islander epidemiology", + "Aboriginal and Torres Strait Islander health policy", + "Aboriginal and Torres Strait Islander health promotion", + "Aboriginal and Torres Strait Islander health services", + "Aboriginal and Torres Strait Islander lifecourse", + "Aboriginal and Torres Strait Islander medicine and treatments", + "Aboriginal and Torres Strait Islander men’s health and wellbeing", + "Aboriginal and Torres Strait Islander midwifery and paediatrics", + "Aboriginal and Torres Strait Islander mothers and babies health and wellbeing", + "Aboriginal and Torres Strait Islander nursing", + "Aboriginal and Torres Strait Islander psychology", + "Aboriginal and Torres Strait Islander public health and wellbeing", + "Aboriginal and Torres Strait Islander remote health", + "Aboriginal and Torres Strait Islander social determinants of health", + "Aboriginal and Torres Strait Islander social, emotional, cultural and spiritual wellbeing", + "Aboriginal and Torres Strait Islander sport and physical activity", + "Aboriginal and Torres Strait Islander theory of change models for health", + "Aboriginal and Torres Strait Islander youth and family social and emotional wellbeing", + "Aboriginal and Torres Strait Islander health and wellbeing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander peoples, society and community\"", + "value": [ + "Aboriginal and Torres Strait Islander accounting", + "Aboriginal and Torres Strait Islander anthropology", + "Aboriginal and Torres Strait Islander architecture", + "Aboriginal and Torres Strait Islander commerce", + "Aboriginal and Torres Strait Islander community and regional development", + "Aboriginal and Torres Strait Islander community governance and decision making", + "Aboriginal and Torres Strait Islander community-based research", + "Aboriginal and Torres Strait Islander criminology", + "Aboriginal and Torres Strait Islander customary law", + "Aboriginal and Torres Strait Islander design practice and management", + "Aboriginal and Torres Strait Islander economics", + "Aboriginal and Torres Strait Islander finance", + "Aboriginal and Torres Strait Islander human geography and demography", + "Aboriginal and Torres Strait Islander legislation", + "Aboriginal and Torres Strait Islander management", + "Aboriginal and Torres Strait Islander marketing", + "Aboriginal and Torres Strait Islander not-for-profit social enterprises", + "Aboriginal and Torres Strait Islander peoples and the law", + "Aboriginal and Torres Strait Islander perspectives", + "Aboriginal and Torres Strait Islander political participation and representation", + "Aboriginal and Torres Strait Islander politics", + "Aboriginal and Torres Strait Islander social impact and program evaluation", + "Aboriginal and Torres Strait Islander social work and social justice", + "Aboriginal and Torres Strait Islander sociological studies", + "Aboriginal and Torres Strait Islander sociology", + "Aboriginal and Torres Strait Islander tourism", + "Aboriginal and Torres Strait Islander urban and regional planning", + "Aboriginal and Torres Strait Islander peoples, society and community not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander sciences\"", + "value": [ + "Aboriginal and Torres Strait Islander astronomy and cosmology", + "Aboriginal and Torres Strait Islander biological sciences", + "Aboriginal and Torres Strait Islander computing technology use and design", + "Aboriginal and Torres Strait Islander engineering", + "Aboriginal and Torres Strait Islander genomics", + "Aboriginal and Torres Strait Islander information and knowledge management systems", + "Aboriginal and Torres Strait Islander innovation", + "Aboriginal and Torres Strait Islander knowledge management methods", + "Aboriginal and Torres Strait Islander mathematical, physical and chemical sciences (excl. astronomy and cosmology)", + "Aboriginal and Torres Strait Islander sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Te ahurea, reo me te hītori o te Māori (Māori culture, language and history)\"", + "value": [ + "Te whāomoomo i te tuku ihotanga Māori (conservation of Māori heritage)", + "Te mana wahine (female status)", + "Te mana tāne (male status)", + "Te mātai whaipara Māori (Māori archaeology)", + "Ngā taonga Māori nō mua (Māori artefacts)", + "Te hītori ahurea Māori (Māori cultural history)", + "Te ahurea Māori (Māori culture)", + "Ngā mātai kaitiaki, pūranga me ngā whare tongarewa o te Māori (Māori curatorial, archives and museum studies)", + "Ngā matatika o te Māori (Māori ethics)", + "Te hītori Māori (Māori history)", + "Te whenua, ahurea me te tuakiri o te Māori (Māori land, culture and identity)", + "Te mātai i te reo Māori me te reo Māori (Māori linguistics and languages)", + "Te mātākōrero, te kawe kōrero me te tuhituhi ngaio o te Māori (Māori literature, journalism and professional writing)", + "Ngā arapāho, ngā kiriata, te hākoritanga me te hopu whakaahua o te Māori (Māori media, film, animation and photography)", + "Te puoro me ngā mahi a te rēhia o te Māori (Māori music and performing arts)", + "Te rapunga whakaaro o te Māori (Māori philosophy)", + "Ngā Kaupapa Māori (Māori projects)", + "Te whakapono me te mātai whakapono o te Māori (Māori religion and religious studies)", + "Te whakahoki taonga a te Māori ki te kāinga (Māori repatriation)", + "Ngā tikanga rangahau o te Māori (Māori research methods)", + "Ngā toi ataata ngā mahi ā-rehe o te Māori (Māori visual arts and crafts)", + "Te ahurea, reo, me te hītori o te Māori kāore anō kia whakarōpūtia i wāhi kē (Māori culture, language and history not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Mātauranga Māori (Māori education)\"", + "value": [ + "Ngā kōhanga reo (Māori curriculum and pedagogy)", + "Te Whāriki - te mātauranga kōhungahunga Māori (Māori early childhood education)", + "Ngā tikanga mātauranga o te Māori (Māori educational methods)", + "Te mātauranga kura tuatoru Māori (Māori higher education)", + "Te mātauranga reo Māori (Māori language education)", + "Ngā kura kaupapa Māori (Māori primary education)", + "Te urupare me te whai wāhi Māori ki te mātauranga (Māori responsiveness and engaged education)", + "Te mātauranga kura tuarua Māori (Māori secondary education)", + "Te whai wāhi ākonga me ngā mahi whakaako o te Māori (Māori student engagement and teaching)", + "Tō te Māori mātauranga hangarau, mātauranga atu anō, mātauranga haere tonu, me te mātauranga hapori (Māori technical, further, continuing and community education)", + "Te mātauranga Māori i roto i te mātauranga (Mātauranga Māori in education)", + "Te mātauranga Māori kāore anō kia whakarōpūtia i wāhi kē (Māori education not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Ngā mātauranga taiao o te Māori (Māori environmental knowledges)\"", + "value": [ + "Te ahuwhenua me ngā mahi ngahere o te Māori (Māori agriculture and forestry)", + "Ngā pūtaiao-ā-nuku o te Māori (Māori earth sciences)", + "Te whāomoomo taiao o te Māori (Māori environmental conservation)", + "Ngā mātauranga taiao o te Māori (Māori environmental knowledges)", + "Te ahumoana me te ahumoana tuku iho o te Māori (Māori fisheries and customary fisheries)", + "Te whakahaere whenua me te wai o te Māori (Māori land and water management)", + "Te pūtaiao taiao moana o te Māori (Māori marine environment science)", + "Ngā mātauranga taiao o te Māori kāore anō kia whakarōpūtia i wāhi kē (Māori environmental knowledges not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Te hauora me te oranga o te Māori (Māori health and wellbeing)\"", + "value": [ + "Te whaikaha me te Māori (Māori and disability)", + "Ngā pūtaiao koiora-hauora, haumanu hoki o te Māori (Māori biomedical and clinical sciences)", + "Ngā tokoingoa ahurea o te hauora o te Māori (Māori cultural determinants of health)", + "Te horakai me ngā kai o te Māori (Māori diet and nutrition)", + "Te mātai tahumaero o te Māori (Māori epidemiology)", + "Ngā kaupapahere hauora o te Māori (Māori health policy)", + "Te whakatairanga hauora o te Māori (Māori health promotion)", + "Ngā wāhanga ora o te Māori (Māori life course)", + "Ngā rongoā me ngā whakamaimoa o te Māori (Māori medicine and treatments)", + "Ngā kaiwhakawhānau me te mātai mate tamariki o te Māori (Māori midwifery and paediatrics)", + "Te hauora me te oranga ā-whaea, ā-pēpi o te Māori (Māori mothers and babies health and wellbeing)", + "Te mahi tapuhi o te Māori (Māori nursing)", + "Mātauranga hinengaro kaupapa Māori (Māori psychology)", + "Ngā pūnaha mātauranga hinengaro o te Māori (Māori psychology knowledge systems)", + "Te hauora me te oranga tūmatanui o te Māori (Māori public health and wellbeing)", + "Te hauora mamao o te Māori (Māori remote health)", + "Te oranga ā-pāpori, ā-hinengaro, ā-ahurea, ā-wairua o te Māori (Māori social, cultural, emotional and spiritual wellbeing)", + "Ngā tokoingoa pāpori o te hauora o te Māori (Māori social determinants of health)", + "Ngā hākinakina me te korikori tinana o te Māori (Māori sport and physical activity)", + "Te ariā o ngā tauira panoni hauora o te Māori (Māori theory of change models for health)", + "Ngā taiohi me ngā whānau Māori (Māori youth and family)", + "Te hauora me te oranga o te Māori kāore anō kia whakarōpūhia i wāhi kē (Māori health and wellbeing not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Ngā tāngata, te porihanga me ngā hapori o te Māori (Māori peoples, society and community)\"", + "value": [ + "Te mahi kaute o te Māori (Māori accounting)", + "Te mātauranga tikanga Māori (Māori anthropology)", + "Te hoahoanga whare o te Māori (Māori architecture)", + "Ngā mahi tauhokohoko o te Māori (Māori commerce)", + "Te whanaketanga ā-hapori, ā-rohe o te Māori (Māori community and regional development)", + "Te rangahau kei rō hapori o te Māori (Māori community-based research)", + "Te kāwana ā-hapori, whakatau take hoki o te Māori (Māori community governance and decision making)", + "Te mātauranga taihara Māori (Māori criminology)", + "Ngā tikanga Māori (Māori customary law)", + "Te whakaharatau me te whakahaere hoahoa o te Māori (Māori design practice and management)", + "Te mātauranga ōhanga o te Māori (Māori economics)", + "Te ahumoni Māori (Māori finance)", + "Te mātauranga matawhenua ā-iwi me te tatauranga ā-iwi o te Māori (Māori human geography and demography)", + "Te ture Whenua (Māori land law)", + "Te ture me te tika Māori (Māori law and justice)", + "Ngā ture Māori (Māori legislation)", + "Te whakahaere o te Māori (Māori management)", + "Te whakamākete o te Māori (Māori marketing)", + "Ngā hinonga pāpori kaupapa atawhai o te Māori (Māori not-for-profit social enterprises)", + "Ngā iwi Māori me te ture (Māori peoples and the law)", + "Ngā tirohanga Māori (Māori perspectives)", + "Te whai wāhi me te whakakanohi taha tōrāngapū o te Māori (Māori political participation and representation)", + "Ngā mahi tōrangapū Māori (Māori politics)", + "Ngā ture rawa Māori (Māori resource law)", + "Te pāpātanga pāpori me te aromātai hōtaka o te Māori (Māori social impact and program evaluation)", + "Ngā mahi tauwhiro me te tika pāpori o te Māori (Māori social work and social justice)", + "Ngā mātai tikanga ā-iwi o te Māori (Māori sociological studies)", + "Te mātauranga pāpori o te Māori (Māori sociology)", + "Te mahi tāpoi Māori (Māori tourism)", + "Te Tiriti o Waitangi (The Treaty of Waitangi)", + "Te whakamahere ā-tāone, ā-rohe o te Māori (Māori urban and regional planning)", + "Ngā tāngata, te porihanga me ngā hapori o te Māori kāore anō kia whakarōpūtia i wāhi kē (Māori peoples, society and community not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Ngā pūtaiao Māori (Māori sciences)\"", + "value": [ + "Te mātai arorangi me te mātai tuarangi o te Māori (Māori astronomy and cosmology)", + "Ngā pūtaiao koiora o te Māori (Māori biological sciences)", + "Te whakamahi me te hoahoa o te hangarau rorohiko o te Māori (Māori computing technology use and design)", + "Te mana motuhake o ngā raraunga Māori (Māori data sovereignty)", + "Te mātauranga pūkaha o te Māori (Māori engineering)", + "Te mātai huingaira o te Māori (Māori genomics)", + "Ngā pūnaha whakahaere mōhiohio me te mātauranga o te Māori (Māori information and knowledge management systems)", + "Te wairua auaha o te Māori (Māori innovation)", + "Ngā tikanga whakahaere mōhiotanga Māori (Māori knowledge management methods)", + "Ngā pūtaiao pāngarau, ōkiko, matū hoki - hāunga te mātai arorangi me te mātai tuarangi o te Māori (Māori mathematical, physical and chemical sciences - excl. astronomy and cosmology)", + "Te tukatuka reo noa o te Māori (Māori natural language processing)", + "Ngā pūtaiao Māori kāore anō kia whakarōpūhia i wāhi kē (Māori sciences not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples culture, language and history\"", + "value": [ + "Archaeology of New Guinea and Pacific Islands (excl. New Zealand)", + "Conservation of Pacific Peoples heritage", + "Pacific Peoples artefacts", + "Pacific Peoples cultural history", + "Pacific Peoples culture", + "Pacific Peoples curatorial, archives and museum studies", + "Pacific Peoples ethics", + "Pacific Peoples history", + "Pacific Peoples land, culture and identity", + "Pacific Peoples linguistics and languages", + "Pacific Peoples literature, journalism and professional writing", + "Pacific Peoples media, film, animation and photography", + "Pacific Peoples music and performing arts", + "Pacific Peoples philosophy", + "Pacific Peoples religion and religious studies", + "Pacific Peoples repatriation", + "Pacific Peoples research methods", + "Pacific Peoples visual arts and crafts", + "Pacific Peoples ways of knowing, being and doing", + "Pacific Peoples culture, language and history not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples education\"", + "value": [ + "Cultural responsiveness and working with Pacific Peoples communities education", + "Embedding Pacific Peoples knowledges, histories, culture, country, perspectives and ethics in education", + "Pacific Peoples curriculum and pedagogy", + "Pacific Peoples early childhood education", + "Pacific Peoples educational methods", + "Pacific Peoples technical, further, continuing and community education", + "Pacific Peoples higher education", + "Pacific Peoples language education", + "Pacific Peoples men’s education", + "Pacific Peoples primary education", + "Pacific Peoples secondary education", + "Pacific Peoples student engagement and teaching", + "Pacific Peoples women’s education", + "Pacific Peoples education not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples environmental knowledges\"", + "value": [ + "Pacific Peoples agriculture and forestry", + "Pacific Peoples earth sciences", + "Pacific Peoples environmental conservation", + "Pacific Peoples environmental knowledges", + "Pacific Peoples fisheries and customary fisheries", + "Pacific Peoples land and water management", + "Pacific Peoples marine environment science", + "Pacific Peoples environmental knowledges not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples health and wellbeing\"", + "value": [ + "Pacific Peoples and disability", + "Pacific Peoples biomedical and clinical science", + "Pacific Peoples cultural determinants of health", + "Pacific Peoples diet and nutrition", + "Pacific Peoples epidemiology", + "Pacific Peoples health policy", + "Pacific Peoples health promotion", + "Pacific Peoples life course", + "Pacific Peoples medicine and treatments", + "Pacific Peoples midwifery and paediatrics", + "Pacific Peoples mothers and babies health and wellbeing", + "Pacific Peoples nursing", + "Pacific Peoples psychology", + "Pacific Peoples public health and wellbeing", + "Pacific Peoples remote health", + "Pacific Peoples social determinants of health", + "Pacific Peoples social, cultural, emotional and spiritual wellbeing", + "Pacific Peoples sport and physical activity", + "Pacific Peoples theory of change models for health", + "Pacific Peoples youth and family", + "Pacific Peoples health and wellbeing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples sciences\"", + "value": [ + "Pacific Peoples astronomy and cosmology", + "Pacific Peoples biological sciences", + "Pacific Peoples computing technology use and design", + "Pacific Peoples engineering", + "Pacific Peoples genomics", + "Pacific Peoples information and knowledge management systems", + "Pacific Peoples innovation", + "Pacific Peoples knowledge management methods", + "Pacific Peoples mathematical, physical and chemical sciences (excl. astronomy and cosmology)", + "Pacific Peoples sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples society and community\"", + "value": [ + "Pacific Peoples and the law", + "Pacific Peoples anthropology", + "Pacific Peoples architecture", + "Pacific Peoples commerce", + "Pacific Peoples community and regional development", + "Pacific Peoples community governance and decision making", + "Pacific Peoples community-based research", + "Pacific Peoples criminology", + "Pacific Peoples customary law", + "Pacific Peoples design practice and management", + "Pacific Peoples economics", + "Pacific Peoples finance", + "Pacific Peoples human geography and demography", + "Pacific Peoples legislation", + "Pacific Peoples management", + "Pacific Peoples marketing", + "Pacific Peoples not-for-profit social enterprises", + "Pacific Peoples perspectives", + "Pacific Peoples political participation and representation", + "Pacific Peoples politics", + "Pacific Peoples social impact and program evaluation", + "Pacific Peoples social work and social justice", + "Pacific Peoples sociological studies", + "Pacific Peoples sociology", + "Pacific Peoples tourism", + "Pacific Peoples urban and regional planning", + "Pacific Peoples, society and community not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other Indigenous data, methodologies and global Indigenous studies\"", + "value": [ + "Global Indigenous studies culture, language and history", + "Global Indigenous studies environmental knowledges and management", + "Global Indigenous studies health and wellbeing", + "Global Indigenous studies peoples, society and community", + "Global Indigenous studies sciences", + "Indigenous data and data technologies", + "Indigenous methodologies", + "Other Indigenous data, methodologies and global Indigenous studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other Indigenous studies\"", + "value": [ + "Other Indigenous studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Applied computing\"", + "value": [ + "Applications in arts and humanities", + "Applications in health", + "Applications in life sciences", + "Applications in physical sciences", + "Applications in social sciences and education", + "Spatial data and applications", + "Applied computing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Artificial intelligence\"", + "value": [ + "Artificial life and complex adaptive systems", + "Autonomous agents and multiagent systems", + "Evolutionary computation", + "Fuzzy computation", + "Intelligent robotics", + "Knowledge representation and reasoning", + "Modelling and simulation", + "Natural language processing", + "Planning and decision making", + "Satisfiability and optimisation", + "Speech production", + "Speech recognition", + "Artificial intelligence not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Computer vision and multimedia computation\"", + "value": [ + "Active sensing", + "Audio processing", + "Computational imaging", + "Computer vision", + "Image and video coding", + "Image processing", + "Multimodal analysis and synthesis", + "Pattern recognition", + "Video processing", + "Computer vision and multimedia computation not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Cybersecurity and privacy\"", + "value": [ + "Cryptography", + "Data and information privacy", + "Data security and protection", + "Digital forensics", + "Hardware security", + "Software and application security", + "System and network security", + "Cybersecurity and privacy not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Data management and data science\"", + "value": [ + "Data engineering and data science", + "Data mining and knowledge discovery", + "Data models, storage and indexing", + "Data quality", + "Database systems", + "Graph, social and multimedia data", + "Information extraction and fusion", + "Information retrieval and web search", + "Query processing and optimisation", + "Recommender systems", + "Stream and sensor data", + "Data management and data science not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Distributed computing and systems software\"", + "value": [ + "Cloud computing", + "Concurrent/parallel systems and technologies", + "Cyberphysical systems and internet of things", + "Dependable systems", + "Distributed systems and algorithms", + "Energy-efficient computing", + "High performance computing", + "Mobile computing", + "Networking and communications", + "Operating systems", + "Performance evaluation", + "Service oriented computing", + "Distributed computing and systems software not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Graphics, augmented reality and games\"", + "value": [ + "Computer aided design", + "Computer graphics", + "Entertainment and gaming", + "Interactive narrative", + "Procedural content generation", + "Serious games", + "Sound and music computing", + "Virtual and mixed reality", + "Graphics, augmented reality and games not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Human-centred computing\"", + "value": [ + "Accessible computing", + "Affective computing", + "Collaborative and social computing", + "Computing education", + "Fairness, accountability, transparency, trust and ethics of computer systems", + "Human-computer interaction", + "Information visualisation", + "Mixed initiative and human-in-the-loop", + "Pervasive computing", + "Social robotics", + "Human-centred computing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Information systems\"", + "value": [ + "Business process management", + "Decision support and group support systems", + "Information modelling, management and ontologies", + "Information security management", + "Information systems development methodologies and practice", + "Information systems education", + "Information systems for sustainable development and the public good", + "Information systems organisation and management", + "Information systems philosophy, research methods and theory", + "Information systems user experience design and development", + "Inter-organisational, extra-organisational and global information systems", + "Knowledge and information management", + "Information systems not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Library and information studies\"", + "value": [ + "Digital curation and preservation", + "Human information behaviour", + "Human information interaction and retrieval", + "Information governance, policy and ethics", + "Informetrics", + "Library studies", + "Open access", + "Organisation of information and knowledge resources", + "Recordkeeping informatics", + "Social and community informatics", + "Library and information studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Machine learning\"", + "value": [ + "Adversarial machine learning", + "Context learning", + "Deep learning", + "Neural networks", + "Reinforcement learning", + "Semi- and unsupervised learning", + "Machine learning not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Software engineering\"", + "value": [ + "Automated software engineering", + "Empirical software engineering", + "Formal methods for software", + "Programming languages", + "Requirements engineering", + "Software architecture", + "Software quality, processes and metrics", + "Software testing, verification and validation", + "Software engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Theory of computation\"", + "value": [ + "Coding, information theory and compression", + "Computational complexity and computability", + "Computational logic and formal languages", + "Concurrency theory", + "Data structures and algorithms", + "Numerical computation and mathematical software", + "Quantum computation", + "Theory of computation not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other information and computing sciences\"", + "value": [ + "Other information and computing sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Communication and media studies\"", + "value": [ + "Communication studies", + "Communication technology and digital media studies", + "Environmental communication", + "International and development communication", + "Journalism studies", + "Media industry studies", + "Media studies", + "Organisational, interpersonal and intercultural communication", + "Communication and media studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Cultural studies\"", + "value": [ + "Arts and cultural policy", + "Asian cultural studies", + "Consumption and everyday life", + "Cultural and creative industries", + "Cultural studies of agriculture, food and wine", + "Cultural studies of nation and region", + "Cultural theory", + "Culture, representation and identity", + "Environment and culture", + "Globalisation and culture", + "Migrant cultural studies", + "Multicultural, intercultural and cross-cultural studies", + "Postcolonial studies", + "Screen and media culture", + "Cultural studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Language studies\"", + "value": [ + "African languages", + "Central and Eastern European languages (incl. Russian)", + "Chinese languages", + "Comparative language studies", + "Early English languages", + "English as a second language", + "English language", + "French language", + "German language", + "Iberian languages", + "Indian languages", + "Indonesian languages", + "Italian language", + "Japanese language", + "Korean language", + "Latin and classical Greek languages", + "Middle Eastern languages", + "Other Asian languages (excl. South-East Asian)", + "Other European languages", + "South-East Asian languages (excl. Indonesian)", + "Translation and interpretation studies", + "Language studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Linguistics\"", + "value": [ + "Applied linguistics and educational linguistics", + "Child language acquisition", + "Computational linguistics", + "Corpus linguistics", + "Discourse and pragmatics", + "Historical, comparative and typological linguistics", + "Language documentation and description", + "Lexicography and semantics", + "Linguistic structures (incl. phonology, morphology and syntax)", + "Phonetics and speech science", + "Sociolinguistics", + "Linguistics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Literary studies\"", + "value": [ + "African literature", + "Australian literature (excl. Aboriginal and Torres Strait Islander literature)", + "Book history", + "British and Irish literature", + "Central and Eastern European literature (incl. Russian)", + "Children's literature", + "Comparative and transnational literature", + "Digital literature", + "Ecocriticism", + "Indian literature", + "Indonesian literature", + "Korean literature", + "Latin and classical Greek literature", + "Literary theory", + "Literature in Chinese", + "Literature in French", + "Literature in German", + "Literature in Italian", + "Literature in Japanese", + "Literature in Spanish and Portuguese", + "Middle Eastern literature", + "New Zealand literature (excl. Māori literature)", + "North American literature", + "Other Asian literature (excl. South-East Asian)", + "Other European literature", + "Other literatures in English", + "Popular and genre literature", + "Print culture", + "South-East Asian literature (excl. Indonesian)", + "Stylistics and textual analysis", + "Young adult literature", + "Literary studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other language, communication and culture\"", + "value": [ + "Other language, communication and culture not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Commercial law\"", + "value": [ + "Banking, finance and securities law", + "Commercial law", + "Corporations and associations law", + "Labour law", + "Not-for-profit law", + "Taxation law", + "Commercial law not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Environmental and resources law\"", + "value": [ + "Animal law", + "Climate change law", + "Environmental law", + "Mining, energy and natural resources law", + "Environmental and resources law not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"International and comparative law\"", + "value": [ + "Asian and Pacific law", + "Comparative law", + "Conflict of laws (incl. private international law)", + "European Union law", + "International arbitration", + "International criminal law", + "International humanitarian and human rights law", + "International trade and investment law", + "Ocean law and governance", + "Public international law", + "Space, maritime and aviation law", + "International and comparative law not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Law in context\"", + "value": [ + "Criminal law", + "Family law", + "Law and humanities", + "Law and religion", + "Law and society and socio-legal research", + "Law reform", + "Law, gender and sexuality (incl. feminist legal scholarship)", + "Law, science and technology", + "Legal education", + "Legal theory, jurisprudence and legal interpretation", + "Media and communication law", + "Medical and health law", + "Race, ethnicity and law", + "Sports law", + "Law in context not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Legal systems\"", + "value": [ + "Access to justice", + "Civil procedure", + "Criminal procedure", + "Legal institutions (incl. courts and justice systems)", + "Legal practice, lawyering and the legal profession", + "Litigation, adjudication and dispute resolution", + "Youth justice", + "Legal systems not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Private law and civil obligations\"", + "value": [ + "Contract law", + "Equity and trusts law", + "Intellectual property law", + "Property law (excl. intellectual property law)", + "Tort law", + "Private law and civil obligations not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Public law\"", + "value": [ + "Administrative law", + "Constitutional law", + "Domestic human rights law", + "Migration, asylum and refugee law", + "Military law and justice", + "Privacy and data rights", + "Welfare, insurance, disability and social security law", + "Public law not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other law and legal studies\"", + "value": [ + "Other law and legal studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Applied mathematics\"", + "value": [ + "Approximation theory and asymptotic methods", + "Biological mathematics", + "Calculus of variations, mathematical aspects of systems theory and control theory", + "Complex systems", + "Dynamical systems in applications", + "Financial mathematics", + "Mathematical methods and special functions", + "Operations research", + "Theoretical and applied mechanics", + "Applied mathematics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Mathematical physics\"", + "value": [ + "Algebraic structures in mathematical physics", + "Integrable systems (classical and quantum)", + "Mathematical aspects of classical mechanics, quantum mechanics and quantum information theory", + "Mathematical aspects of general relativity", + "Mathematical aspects of quantum and conformal field theory, quantum gravity and string theory", + "Statistical mechanics, physical combinatorics and mathematical aspects of condensed matter", + "Mathematical physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Numerical and computational mathematics\"", + "value": [ + "Experimental mathematics", + "Numerical analysis", + "Numerical solution of differential and integral equations", + "Optimisation", + "Numerical and computational mathematics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pure mathematics\"", + "value": [ + "Algebra and number theory", + "Algebraic and differential geometry", + "Category theory, k theory, homological algebra", + "Combinatorics and discrete mathematics (excl. physical combinatorics)", + "Group theory and generalisations", + "Lie groups, harmonic and Fourier analysis", + "Mathematical logic, set theory, lattices and universal algebra", + "Operator algebras and functional analysis", + "Ordinary differential equations, difference equations and dynamical systems", + "Partial differential equations", + "Real and complex functions (incl. several variables)", + "Topology", + "Pure mathematics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Statistics\"", + "value": [ + "Applied statistics", + "Biostatistics", + "Computational statistics", + "Forensic evaluation, inference and statistics", + "Large and complex data theory", + "Probability theory", + "Spatial statistics", + "Statistical data science", + "Statistical theory", + "Stochastic analysis and modelling", + "Time series and spatial modelling", + "Statistics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other mathematical sciences\"", + "value": [ + "Other mathematical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Applied ethics\"", + "value": [ + "Bioethics", + "Business ethics", + "Ethical use of new technology", + "Human rights and justice issues (excl. law)", + "Legal ethics", + "Medical ethics", + "Professional ethics", + "Applied ethics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"History and philosophy of specific fields\"", + "value": [ + "History and philosophy of engineering and technology", + "History and philosophy of law and justice", + "History and philosophy of medicine", + "History and philosophy of science", + "History and philosophy of the humanities", + "History and philosophy of the social sciences", + "History of ideas", + "History of philosophy", + "History and philosophy of specific fields not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Philosophy\"", + "value": [ + "Aesthetics", + "Critical theory", + "Decision theory", + "Environmental philosophy", + "Epistemology", + "Ethical theory", + "Hermeneutics", + "Logic", + "Metaphysics", + "Phenomenology", + "Philosophical psychology (incl. moral psychology and philosophy of action)", + "Philosophy of cognition", + "Philosophy of gender", + "Philosophy of language", + "Philosophy of mind (excl. cognition)", + "Philosophy of religion", + "Philosophy of science (excl. history and philosophy of specific fields)", + "Philosophy of specific cultures (incl. comparative philosophy)", + "Poststructuralism", + "Psychoanalytic philosophy", + "Social and political philosophy", + "Philosophy not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Religious studies\"", + "value": [ + "Christian studies", + "Comparative religious studies", + "Islamic studies", + "Jewish studies", + "Religion, society and culture", + "Studies in eastern religious traditions", + "Studies in religious traditions (excl. Eastern, Jewish, Christian and Islamic traditions)", + "Religious studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Theology\"", + "value": [ + "Theology", + "Theology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other philosophy and religious studies\"", + "value": [ + "Other philosophy and religious studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Astronomical sciences\"", + "value": [ + "Astrobiology", + "Astronomical instrumentation", + "Cosmology and extragalactic astronomy", + "Galactic astronomy", + "General relativity and gravitational waves", + "High energy astrophysics and galactic cosmic rays", + "Planetary science (excl. solar system and planetary geology)", + "Solar physics", + "Stellar astronomy and planetary systems", + "Astronomical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Atomic, molecular and optical physics\"", + "value": [ + "Atomic and molecular physics", + "Lasers and quantum electronics", + "Nonlinear optics and spectroscopy", + "Photonics, optoelectronics and optical communications", + "Terahertz physics", + "Atomic, molecular and optical physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Classical physics\"", + "value": [ + "Acoustics and acoustical devices; waves", + "Classical and physical optics", + "Electrostatics and electrodynamics", + "Thermodynamics and statistical physics", + "Classical physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Condensed matter physics\"", + "value": [ + "Condensed matter characterisation technique development", + "Condensed matter imaging", + "Condensed matter modelling and density functional theory", + "Electronic and magnetic properties of condensed matter; superconductivity", + "Soft condensed matter", + "Structural properties of condensed matter", + "Surface properties of condensed matter", + "Condensed matter physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medical and biological physics\"", + "value": [ + "Biological physics", + "Medical physics", + "Medical and biological physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Nuclear and plasma physics\"", + "value": [ + "Nuclear physics", + "Plasma physics; fusion plasmas; electrical discharges", + "Nuclear and plasma physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Particle and high energy physics\"", + "value": [ + "Astroparticle physics and particle cosmology", + "Field theory and string theory", + "Particle physics", + "Particle and high energy physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Quantum physics\"", + "value": [ + "Degenerate quantum gases and atom optics", + "Foundations of quantum mechanics", + "Quantum information, computation and communication", + "Quantum optics and quantum optomechanics", + "Quantum technologies", + "Quantum physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Space sciences\"", + "value": [ + "Astrodynamics and space situational awareness", + "Heliophysics and space weather", + "Mesospheric, thermospheric, ionospheric and magnetospheric physics", + "Solar system energetic particles", + "Solar system planetary science (excl. planetary geology)", + "Space instrumentation", + "Space sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Synchrotrons and accelerators\"", + "value": [ + "Accelerators", + "Instruments and techniques", + "Synchrotrons", + "Synchrotrons and accelerators not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other physical sciences\"", + "value": [ + "Complex physical systems", + "Other physical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Applied and developmental psychology\"", + "value": [ + "Child and adolescent development", + "Educational psychology", + "Forensic psychology", + "Industrial and organisational psychology (incl. human factors)", + "Psychological methodology, design and analysis", + "Psychology of ageing", + "Sport and exercise psychology", + "Testing, assessment and psychometrics", + "Applied and developmental psychology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Biological psychology\"", + "value": [ + "Behavioural genetics", + "Behavioural neuroscience", + "Cognitive neuroscience", + "Evolutionary psychological studies", + "Psychopharmacology", + "Psychophysiology", + "Social and affective neuroscience", + "Biological psychology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Clinical and health psychology\"", + "value": [ + "Clinical neuropsychology", + "Clinical psychology", + "Counselling psychology", + "Health psychology", + "Clinical and health psychology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Cognitive and computational psychology\"", + "value": [ + "Cognition", + "Decision making", + "Learning, motivation and emotion", + "Memory and attention", + "Psycholinguistics (incl. speech production and comprehension)", + "Sensory processes, perception and performance", + "Cognitive and computational psychology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Social and personality psychology\"", + "value": [ + "Community psychology", + "Gender psychology", + "Personality and individual differences", + "Psychology of religion", + "Social psychology", + "Social and personality psychology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other psychology\"", + "value": [ + "Other psychology not elsewhere classified" + ] + } + ], "type": "computed" } - } - ] - }, - { - "dataType": "text", - "name": "typesOfRemediationInstalled", - "description": "", - "constraints": [ - "Access control", - "Bank grooming", - "Flow gauging stations", - "Fords", - "Culverts", - "Revegetation", - "Weirs", - "Other" - ], - "validate": "required" - }, - { - "dataType": "text", - "name": "otherRemediationType", - "behaviour": [ - { - "condition": "typesOfRemediationInstalled == \"Other\"", - "type": "enable" - } - ], - "validate": "required,maxSize[100]" - }, - { - "dataType": "text", - "name": "remediationType", - "description": "", - "constraints": [ - "Access control", - "Bank grooming", - "Flow gauging stations", - "Fords", - "Culverts", - "Revegetation", - "Weirs", - "Other" - ], - "validate": "required" - }, - { - "dataType": "text", - "name": "otherAquaticOrRemediationType", - "behaviour": [ - { - "condition": "remediationType == \"Other\"", - "type": "enable" - } - ], - "validate": "required,maxSize[100]" - }, - { - "dataType": "feature", - "name": "sitesBenefitted", - "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." - }, - { - "computed": { - "expression": "$geom.areaHa(sitesBenefitted)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHaBenefitted", - "units": "ha", - "decimalPlaces": 3 - }, - { - "computed": { - "expression": "$geom.lengthKm(sitesBenefitted)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKmBenefitted", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKmBenefitted > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHaBenefitted" - }, - "dataType": "number", - "name": "areaTreatedHaBenefitted", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "mappingNotAlignedReasonBenefitted", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHaBenefitted, calculatedAreaTreatedHaBenefitted, 0.1))", - "type": "if" - } - ] - }, - { - "dataType": "text", - "name": "mappingNotAlignedCommentsBenefitted", - "validate": "required,maxSize[100]", - "behaviour": [ - { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReasonBenefitted" - } - ] - }, - { - "dataType": "document", - "name": "extraMappingDetailsBenefitted", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHaBenefitted, calculatedAreaTreatedHaBenefitted, 0.1) and within(lengthTreatedKmBenefitted, calculatedLengthTreatedKmBenefitted, 0.1))", - "type": "if" - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKmBenefitted" - }, - "dataType": "number", - "name": "lengthTreatedKmBenefitted", - "units": "km", - "decimalPlaces": 3 - }, - { - "dataType": "text", - "name": "evidenceOfBenefit", - "validate": "maxSize[100]" - } - ], - "dataType": "list", - "name": "remediatingAreas" - }, - { - "dataType": "number", - "name": "totalAreaRemediationInitial", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Initial' ? areaTreatedHaRemediated : 0\")" - } - }, - { - "dataType": "number", - "decimalPlaces": 3, - "name": "totalAreaRemediationInitialInvoiced", - "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - }, - { - "param": { - "expression": "totalAreaRemediationInitial", - "type": "computed", - "decimalPlaces": 3 - }, - "rule": "max" - } - ], - "defaultValue": "" - }, - { - "dataType": "number", - "name": "totalAreaRemediationFollowup", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Follow-up' ? areaTreatedHaRemediated : 0\")" - } - }, - { - "dataType": "number", - "name": "totalLengthRemediationInitial", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Initial' ? lengthTreatedKmRemediated : 0\")" - } - }, - { - "dataType": "number", - "name": "totalLengthRemediationFollowup", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Follow-up' ? lengthTreatedKmRemediated : 0\")" - } - }, - { - "dataType": "number", - "name": "totalStructuresInstalled", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(remediatingAreas, \"noRemediationInterventions\")" - } + }, + { + "dataType": "text", + "name": "willProjectContinue", + "constraints": [ + "Yes", + "No" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "summaryOfActivities", + "description": "", + "validate": "required,maxSize[300]" + }, + { + "dataType": "text", + "name": "summaryOfSuccesses", + "description": "", + "validate": "required,maxSize[300]" + }, + { + "dataType": "text", + "name": "summaryOfAnyChanges", + "description": "", + "validate": "required,maxSize[300]" + } + ], + "dataType": "list", + "name": "researchAndDevelopmentDetails" + }, + { + "dataType": "text", + "name": "conclusionsAndFutureDirections", + "validate": "maxSize[400]" + } + ], + "dataType": "list", + "name": "researchAndDevelopmentByOutcome" }, { "dataType": "number", - "name": "totalStructuresInstalledFollowup", + "name": "noDaysConductingResearchAndDevelopment", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, + "defaultValue": 1, "computed": { - "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Follow-up' ? noRemediationInterventions : 0\")" + "expression": "sum(researchAndDevelopmentByOutcome, \"numberOfDaysConducted\")" } }, { @@ -19369,7 +25181,7 @@ { "name": "projectAssuranceDetails", "dataType": "text", - "validate": "maxSize[5000]" + "validate": "required,maxSize[5000]" }, { "dataType": "list", @@ -19383,8 +25195,8 @@ ] } ], - "modelName": "NHT - Remediating riparian and aquatic areas", - "title": "Remediating Riparian and Aquatic Areas", + "modelName": "NHT - Research and development", + "title": "Research and/or Development", "viewModel": [ { "type": "row", @@ -19445,7 +25257,7 @@ "type": "textarea" } ], - "source": "participationInformationTableRem", + "source": "participationInformationTableDmp", "type": "table" }, { @@ -19468,72 +25280,8 @@ "type": "row", "items": [ { - "preLabel": "(i) Total area (ha) of remediation of riparian/aquatic areas (initial) during this reporting period", - "source": "totalAreaRemediationInitial", - "type": "number" - } - ] - } - ] - }, - { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(ii) Total area (ha) of remediation of riparian/aquatic areas (follow - up) during this reporting period", - "source": "totalAreaRemediationFollowup", - "type": "number" - } - ] - } - ] - }, - { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(iii) Total length (km) of remediation of riparian/aquatic areas (initial) during this reporting period", - "source": "totalLengthRemediationInitial", - "type": "number" - } - ] - } - ] - }, - { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(iv) Total length (km) of remediation of riparian/aquatic areas (follow-up) during this reporting period", - "source": "totalLengthRemediationFollowup", - "type": "number" - } - ] - } - ] - }, - { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(v) Number of remediation interventions applied to promote aquatic health during this reporting period", - "source": "totalStructuresInstalled", + "preLabel": "(i) Total number of days conducting research and development for this reporting period", + "source": "noDaysConductingResearchAndDevelopment", "type": "number" } ] @@ -19543,16 +25291,16 @@ ] }, { - "addRowText": "Add a new remediated area", + "addRowText": "Add a new research/development", "userAddedRows": true, - "source": "remediatingAreas", + "source": "researchAndDevelopmentByOutcome", "type": "repeat", "items": [ { "type": "row", "items": [ { - "css": "span3 col-border-right", + "css": "span3", "type": "col", "items": [ { @@ -19561,164 +25309,23 @@ { "source": "relatedOutcomes", "type": "selectOne", - "preLabel": "Which outcome statement/s does this activity relate to?" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" - } - ] - } - ] - } - ] - }, - { - "type": "row", - "items": [ - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "noRemediationInterventions", - "preLabel": "Number of remediation interventions installed", - "type": "number" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "initialOrFollowup", - "preLabel": "Initial or follow-up treatment?", - "type": "selectOne" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Site/s covered by remediation", - "source": "sitesRemediated", - "type": "feature" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedAreaTreatedHaRemediated", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedLengthTreatedKmRemediated", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetailsRemediated", - "type": "document" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Actual area (ha) / length (km) being remediated", - "source": "areaTreatedHaRemediated", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "lengthTreatedKmRemediated", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReasonRemediated", - "type": "selectOne" + "preLabel": "Which outcome statement/s does this activity relate to?" } ] - }, + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ { "type": "row", "items": [ { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedCommentsRemediated", - "type": "textarea", - "rows": 5 + "source": "investmentPriorities2", + "preLabel": "Which investment priority/ies does this activity relate to?", + "type": "select2Many" } ] } @@ -19728,6 +25335,7 @@ }, { "type": "row", + "css": "border-bottom", "items": [ { "css": "span3", @@ -19737,30 +25345,35 @@ "type": "row", "items": [ { - "source": "activitiesStartDate", - "type": "date", - "preLabel": "Activity start date" + "source": "researchOrDevelopment", + "type": "selectOne", + "preLabel": "Research and/or Development" } ] } ] }, { + "css": "span3", "type": "col", - "css": "span3 col-border-right", "items": [ { "type": "row", "items": [ { - "source": "activitiesEndDate", - "preLabel": "Activity end date", - "type": "date" + "source": "numberOfDaysConducted", + "type": "number", + "preLabel": "Number of days conducting research and development" } ] } ] - }, + } + ] + }, + { + "type": "row", + "items": [ { "type": "col", "css": "span3 col-border-right", @@ -19769,9 +25382,9 @@ "type": "row", "items": [ { - "preLabel": "Type of remediation intervention", - "source": "typesOfRemediationInstalled", - "type": "select2" + "preLabel": "Where research has been undertaken (if applicable)", + "source": "sitesResearchAndDevelopment", + "type": "feature" } ] }, @@ -19779,25 +25392,25 @@ "type": "row", "items": [ { - "source": "otherRemediationType", - "placeholder": "Type of remediation intervention (if Other)", - "type": "text" + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" } ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ + }, { "type": "row", "items": [ { - "preLabel": "Type of aquatic or riparian remediation", - "source": "remediationType", - "type": "select2" + "source": "calculatedLengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" } ] }, @@ -19805,19 +25418,14 @@ "type": "row", "items": [ { - "source": "otherAquaticOrRemediationType", - "placeholder": "Type of aquatic or riparian remediation (if Other)", - "type": "text" + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" } ] } ] - } - ] - }, - { - "type": "row", - "items": [ + }, { "type": "col", "css": "span3 col-border-right", @@ -19826,9 +25434,12 @@ "type": "row", "items": [ { - "preLabel": "Please identify any off-site area/s that may benefit from this service", - "source": "sitesBenefitted", - "type": "feature" + "preLabel": "Actual research area undertaken", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } } ] }, @@ -19836,12 +25447,11 @@ "type": "row", "items": [ { - "source": "calculatedAreaTreatedHaBenefitted", + "source": "lengthTreatedKm", "type": "number", "displayOptions": { "displayUnits": true - }, - "readonly": "readonly" + } } ] }, @@ -19849,44 +25459,92 @@ "type": "row", "items": [ { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetailsBenefitted", - "type": "document" + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" } ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ + }, { "type": "row", "items": [ { - "source": "evidenceOfBenefit", - "preLabel": "Please provide a description on the evidence available to reflect this benefit", - "type": "textarea" + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 } ] } ] } ] - } - ] - }, - { - "type": "section", - "items": [ + }, { - "type": "row", + "type": "section", "items": [ { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" + "columns": [ + { + "width": "10%", + "title": "Date research and/or development started", + "source": "resAndDevStartDate", + "type": "date" + }, + { + "width": "10%", + "title": "Date research and/or development finished", + "source": "resAndDevFinishDate", + "type": "date" + }, + { + "width": "10%", + "source": "anzsrcDivision", + "title": "ANZSRC Classification – Division", + "type": "selectOne" + }, + { + "width": "10%", + "source": "anzsrcGroup", + "title": "ANZSRC Classification – Group", + "type": "selectOne" + }, + { + "width": "10%", + "source": "anzsrcFields", + "title": "ANZSRC Classification – Fields", + "type": "selectOne" + }, + { + "width": "15%", + "source": "summaryOfActivities", + "title": "Summary of activities and research outputs delivered in this reporting period", + "type": "textarea" + }, + { + "width": "15%", + "source": "summaryOfSuccesses", + "title": "Summary of successes or failures", + "type": "textarea" + }, + { + "width": "15%", + "source": "summaryOfAnyChanges", + "title": "Summary of any changes to the research approach resulting from successes/failures", + "type": "textarea" + }, + { + "width": "5%", + "source": "willProjectContinue", + "title": "Will this research and development project continue?", + "type": "selectOne" + } + ], + "userAddedRows": true, + "addRowText": "Add a row", + "source": "researchAndDevelopmentDetails", + "title": "Each new research and/or development initiative should be set up as a separate component in MERIT, with all relevant detail recorded as far as practicable in the MERI plan. Where additional information cannot be captured in the MERI plan, this must be attached to the project in MERIT.

Reported activities and outputs are based on the aims of the research and/or development that are outlined in the MERI plan and other supporting documentation. Research and/or Development projects may cover multiple investment priorities and may require additional related project services such as Flora Survey, Fauna Survey, and Synthesising and Finalising Baseline Data.
", + "type": "table" } ] }, @@ -19894,67 +25552,90 @@ "type": "row", "items": [ { - "preLabel": "Clarification, if needed", + "preLabel": "Conclusions and future directions ", "type": "textarea", "rows": 4, "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + "source": "conclusionsAndFutureDirections" } ] - }, + } + ] + }, + { + "type": "row", + "items": [ { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Available Evidence

Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements." - }, - { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] - }, + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "row", - "items": [ - { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." - } - ] + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" }, { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ - { - "title": "Attached documents", - "source": "attachments", - "type": "document" - } - ] + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" } ] } ] }, "modelName": null, - "templateName": "nhtRemediatingRiparianAndAquaticAreas", + "templateName": "nhtReasearchAndDevelopment", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Remediating riparian and aquatic areas", + "name": "NHT - Research and development", "description": null }, + { "collapsedByDefault": false, "template": { @@ -20298,6 +25979,7 @@ { "dataType": "number", "name": "totalAreaWeedsTreatedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -20307,6 +25989,7 @@ { "dataType": "number", "name": "totalAreaWeedsTreatedFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -20316,6 +25999,7 @@ { "dataType": "number", "name": "totalLengthWeedsTreatedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -20325,6 +26009,7 @@ { "dataType": "number", "name": "totalLengthWeedsTreatedFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -21178,6 +26863,7 @@ { "dataType": "number", "name": "totalAreaWeedsTreatedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -21187,6 +26873,7 @@ { "dataType": "number", "name": "totalAreaWeedsTreatedFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -22025,6 +27712,7 @@ { "dataType": "number", "name": "totalAmountSeedsCuttingsCollected", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -22034,6 +27722,7 @@ { "dataType": "number", "name": "totalDaysSeedsCuttingsCollected", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -22043,6 +27732,7 @@ { "dataType": "number", "name": "totalDaysPropagating", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -22052,6 +27742,7 @@ { "dataType": "number", "name": "totalPlantsPropagated", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -23140,6 +28831,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -24057,6 +29749,7 @@ { "dataType": "number", "name": "totalAreaSitePreparation", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -24067,6 +29760,7 @@ "dataType": "number", "decimalPlaces": 3, "name": "totalLengthSitePreparation", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "computed": { "expression": "sum(sitePreparationDetailsControlled, \"lengthTreatedKm\")" @@ -24944,6 +30638,7 @@ { "dataType": "number", "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -24953,6 +30648,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -25837,6 +31533,7 @@ { "dataType": "number", "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -25846,6 +31543,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -26688,6 +32386,7 @@ { "dataType": "number", "name": "totalAnnualFtes", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -27290,6 +32989,7 @@ { "dataType": "number", "name": "totalNumberBaselineDatasets", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -27994,6 +33694,7 @@ { "dataType": "number", "name": "totalNumberInterventionsInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -28003,6 +33704,7 @@ { "dataType": "number", "name": "totalNumberInterventionsFollowUp", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -28973,6 +34675,7 @@ { "dataType": "number", "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -28982,6 +34685,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -30044,6 +35748,7 @@ { "dataType": "number", "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -30053,6 +35758,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { diff --git a/forms/nht/nhtOutputReport.json b/forms/nht/nhtOutputReport.json index d66512270..de379cff5 100644 --- a/forms/nht/nhtOutputReport.json +++ b/forms/nht/nhtOutputReport.json @@ -1237,6 +1237,7 @@ { "dataType": "number", "name": "totalCaptiveBreedingEstablished", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -1266,6 +1267,7 @@ { "dataType": "number", "name": "totalCaptiveBreedingMaintained", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -2142,6 +2144,7 @@ { "dataType": "number", "name": "totalMaterialsPublished", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "defaultValue": 1, @@ -2776,6 +2779,7 @@ { "dataType": "number", "name": "totalNumberEngagementHeld", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "defaultValue": 1, @@ -3532,6 +3536,7 @@ { "dataType": "number", "name": "totalStructuresInstalled", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "decimalPlaces": 0, "validate": "min[0]", "computed": { @@ -3561,6 +3566,7 @@ { "dataType": "number", "name": "totalLengthStructuresInstalled", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "decimalPlaces": 3, "validate": "min[0]", "computed": { @@ -3593,6 +3599,7 @@ { "dataType": "number", "name": "totalAreaStructuresInstalled", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "decimalPlaces": 3, "validate": "min[0]", "computed": { @@ -4517,6 +4524,7 @@ { "dataType": "number", "name": "totalAreaPestAnimalsTreatedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "decimalPlaces": 3, "computed": { "expression": "sum(areasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" @@ -4548,6 +4556,7 @@ { "dataType": "number", "name": "totalAreaPestAnimalsTreatedFollowUp", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -4580,6 +4589,7 @@ { "dataType": "number", "name": "totalLengthPestAnimalsTreatedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -4612,6 +4622,7 @@ { "dataType": "number", "name": "totalLengthPestAnimalsTreatedFollowUp", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -5523,6 +5534,7 @@ { "dataType": "number", "name": "totalAreaDebrisRemovedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -5555,6 +5567,7 @@ { "dataType": "number", "name": "totalLengthDebrisRemovedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -5587,6 +5600,7 @@ { "dataType": "number", "name": "totalAreaDebrisRemovedFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -5619,6 +5633,7 @@ { "dataType": "number", "name": "totalLengthDebrisRemovedFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -6665,6 +6680,7 @@ { "dataType": "number", "name": "totalAreaErosionControlInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -6697,6 +6713,7 @@ { "dataType": "number", "name": "totalAreaErosionControlFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -7642,6 +7659,7 @@ { "dataType": "number", "name": "totalNoPestFreeSurveyEstablished", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "defaultValue": 0, @@ -7674,6 +7692,7 @@ { "dataType": "number", "name": "totalNoPestFreeSurveyMaintained", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "required,min[0]", "decimalPlaces": 0, "defaultValue": 0, @@ -7706,6 +7725,7 @@ { "dataType": "number", "name": "totalNoDaysMaintainingPestFree", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -7737,6 +7757,7 @@ { "dataType": "number", "name": "totalAreaPestFreeSurveyInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "defaultValue": 0, @@ -8648,6 +8669,7 @@ { "dataType": "number", "name": "totalAreaConservationAgreements", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -8680,6 +8702,7 @@ { "dataType": "number", "name": "totalAreaActivitiesConducted", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -9707,6 +9730,7 @@ { "dataType": "number", "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -9736,6 +9760,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -12018,6 +12043,7 @@ { "dataType": "number", "name": "totalNoDaysCulturalPractices", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -13189,6 +13215,7 @@ { "dataType": "number", "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -13218,6 +13245,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -14192,6 +14220,7 @@ { "dataType": "number", "name": "totalAreaAugmentationInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -14224,6 +14253,7 @@ { "dataType": "number", "name": "totalAreaAugmentationMaintained", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -14256,6 +14286,7 @@ { "dataType": "number", "name": "totalStructuresInstalledInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -14285,6 +14316,7 @@ { "dataType": "number", "name": "totalStructuresInstalledMaintained", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -15319,6 +15351,7 @@ { "dataType": "number", "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -15348,6 +15381,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -16399,6 +16433,7 @@ { "dataType": "number", "name": "totalPotentialSites", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -16883,7 +16918,7 @@ ], "addRowText": "Add a new assessed site to this outcome", "userAddedRows": true, - "disableTableUpload": true, + "disableTableUpload": false, "source": "potentialSitesSurveyBaselineTable", "type": "table" } @@ -17296,6 +17331,7 @@ { "dataType": "number", "name": "totalAreaTreatedFireMgmtInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -17328,6 +17364,7 @@ { "dataType": "number", "name": "totalAreaTreatedFireMgmtFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -18167,6 +18204,7 @@ { "dataType": "number", "name": "totalHydroTreatmentsInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -18196,6 +18234,7 @@ { "dataType": "number", "name": "totalHydroTreatmentsFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -19120,6 +19159,7 @@ { "dataType": "number", "name": "totalAreaPracticeChangeInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -19152,6 +19192,7 @@ { "dataType": "number", "name": "totalAreaPracticeChangeFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -19979,6 +20020,7 @@ { "dataType": "number", "name": "totalAreaDiseaseManagementInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -20011,6 +20053,7 @@ { "dataType": "number", "name": "totalAreaDiseaseManagementFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -20043,6 +20086,7 @@ { "dataType": "number", "name": "totalLengthDiseaseManagementInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -20075,6 +20119,7 @@ { "dataType": "number", "name": "totalLengthDiseaseManagementFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -21142,6 +21187,7 @@ { "dataType": "number", "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -21171,6 +21217,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -22253,6 +22300,7 @@ { "dataType": "number", "name": "totalAreaRemediationInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -22285,6 +22333,7 @@ { "dataType": "number", "name": "totalAreaRemediationFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -22317,6 +22366,7 @@ { "dataType": "number", "name": "totalLengthRemediationInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -22349,6 +22399,7 @@ { "dataType": "number", "name": "totalLengthRemediationFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -22381,6 +22432,7 @@ { "dataType": "number", "name": "totalStructuresInstalled", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -22410,6 +22462,7 @@ { "dataType": "number", "name": "totalStructuresInstalledFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -23141,6 +23194,4313 @@ "name": "NHT - Remediating riparian and aquatic areas", "description": null }, + { + "collapsedByDefault": false, + "template": { + "dataModel": [ + { + "allowRowDelete": "false", + "columns": [ + { + "dataType": "text", + "name": "participationIndividualsOrGroups", + "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "participationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "participationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ] + }, + { + "dataType": "number", + "name": "firstNationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "participationIndividualNumber", + "type": "computed" + }, + "rule": "max" + } + ] + }, + { + "dataType": "text", + "name": "firstNationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ], + "validate": [ + { + "rule": "required" + }, + { + "param": { + "expression": "participationGroupNumber", + "type": "computed" + }, + "rule": "max", + "message": "The number of first nation participants cannot be greater than the total number of participants" + } + ] + }, + { + "dataType": "text", + "name": "participationDetails", + "validate": "required, maxSize[3000]" + } + ], + "dataType": "list", + "name": "participationInformationTableDmp" + }, + { + "columns": [ + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, + { + "dataType": "text", + "name": "invoicingThisActivity", + "constraints": [ + "Yes", + "No" + ], + "validate": "required" + }, + { + "dataType": "feature", + "name": "sitesResearchAndDevelopment", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesResearchAndDevelopment)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesResearchAndDevelopment)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKm" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "text", + "name": "researchOrDevelopment", + "constraints": [ + "New research", + "New development", + "New research and development", + "Continuing research", + "Continuing development", + "Continuing research and development" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "numberOfDaysConducted", + "validate": "required,min[0]" + }, + { + "columns": [ + { + "dataType": "date", + "name": "resAndDevStartDate", + "description": "Specific the dates these events were held on.", + "validate": "required" + }, + { + "dataType": "date", + "name": "resAndDevFinishDate", + "description": "Specific the dates these events were held on.", + "validate": [ + { + "rule": "required" + }, + { + "rule": "future", + "param": { + "expression": "formatDateForValidation(resAndDevStartDate)", + "type": "computed" + } + } + ] + }, + { + "dataType": "text", + "name": "anzsrcDivision", + "constraints": [ + "AGRICULTURAL, VETERINARY AND FOOD SCIENCES", + "BIOLOGICAL SCIENCES", + "BIOMEDICAL AND CLINICAL SCIENCES", + "BUILT ENVIRONMENT AND DESIGN", + "CHEMICAL SCIENCES", + "COMMERCE, MANAGEMENT, TOURISM AND SERVICES", + "CREATIVE ARTS AND WRITING", + "EARTH SCIENCES", + "ECONOMICS", + "EDUCATION", + "ENGINEERING", + "ENVIRONMENTAL SCIENCES", + "HEALTH SCIENCES", + "HISTORY, HERITAGE AND ARCHAEOLOGY", + "HUMAN SOCIETY", + "INDIGENOUS STUDIES", + "INFORMATION AND COMPUTING SCIENCES", + "LANGUAGE, COMMUNICATION AND CULTURE", + "LAW AND LEGAL STUDIES", + "MATHEMATICAL SCIENCES", + "PHILOSOPHY AND RELIGIOUS STUDIES", + "PHYSICAL SCIENCES", + "PSYCHOLOGY" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "anzsrcGroup", + "validate": "required", + "constraints": { + "default": [], + "options": [ + { + "condition": "anzsrcDivision == \"AGRICULTURAL, VETERINARY AND FOOD SCIENCES\"", + "value": [ + "Agricultural biotechnology", + "Agriculture, land and farm management", + "Animal production", + "Crop and pasture production", + "Fisheries sciences", + "Food sciences", + "Forestry sciences", + "Horticultural production", + "Veterinary sciences", + "Other agricultural, veterinary and food sciences" + ] + }, + { + "condition": "anzsrcDivision == \"BIOLOGICAL SCIENCES\"", + "value": [ + "Biochemistry and cell biology", + "Bioinformatics and computational biology", + "Ecology", + "Evolutionary biology", + "Genetics", + "Industrial biotechnology", + "Microbiology", + "Plant biology", + "Zoology", + "Other biological sciences" + ] + }, + { + "condition": "anzsrcDivision == \"BIOMEDICAL AND CLINICAL SCIENCES\"", + "value": [ + "Cardiovascular medicine and haematology", + "Clinical sciences", + "Dentistry", + "Immunology", + "Medical biochemistry and metabolomics", + "Medical biotechnology", + "Medical microbiology", + "Medical physiology", + "Neurosciences", + "Nutrition and dietetics", + "Oncology and carcinogenesis", + "Ophthalmology and optometry", + "Paediatrics", + "Pharmacology and pharmaceutical sciences", + "Reproductive medicine", + "Other biomedical and clinical sciences" + ] + }, + { + "condition": "anzsrcDivision == \"BUILT ENVIRONMENT AND DESIGN\"", + "value": [ + "Architecture", + "Building", + "Design", + "Urban and regional planning", + "Other built environment and design" + ] + }, + { + "condition": "anzsrcDivision == \"CHEMICAL SCIENCES\"", + "value": [ + "Analytical chemistry", + "Inorganic chemistry", + "Macromolecular and materials chemistry", + "Medicinal and biomolecular chemistry", + "Organic chemistry", + "Physical chemistry", + "Theoretical and computational chemistry", + "Other chemical sciences" + ] + }, + { + "condition": "anzsrcDivision == \"COMMERCE, MANAGEMENT, TOURISM AND SERVICES\"", + "value": [ + "Accounting, auditing and accountability", + "Banking, finance and investment", + "Business systems in context", + "Commercial services", + "Human resources and industrial relations", + "Marketing", + "Strategy, management and organisational behaviour", + "Tourism", + "Transportation, logistics and supply chains", + "Other commerce, management, tourism and services" + ] + }, + { + "condition": "anzsrcDivision == \"CREATIVE ARTS AND WRITING\"", + "value": [ + "Art history, theory and criticism", + "Creative and professional writing", + "Music", + "Performing arts", + "Screen and digital media", + "Visual arts", + "Other creative arts and writing" + ] + }, + { + "condition": "anzsrcDivision == \"EARTH SCIENCES\"", + "value": [ + "Atmospheric sciences", + "Climate change science", + "Geochemistry", + "Geoinformatics", + "Geology", + "Geophysics", + "Hydrology", + "Oceanography", + "Physical geography and environmental geoscience", + "Other earth sciences" + ] + }, + { + "condition": "anzsrcDivision == \"ECONOMICS\"", + "value": [ + "Applied economics", + "Econometrics", + "Economic theory", + "Other economics" + ] + }, + { + "condition": "anzsrcDivision == \"EDUCATION\"", + "value": [ + "Curriculum and pedagogy", + "Education policy, sociology and philosophy", + "Education systems", + "Specialist studies in education", + "Other education" + ] + }, + { + "condition": "anzsrcDivision == \"ENGINEERING\"", + "value": [ + "Aerospace engineering", + "Automotive engineering", + "Biomedical engineering", + "Chemical engineering", + "Civil engineering", + "Communications engineering", + "Control engineering, mechatronics and robotics", + "Electrical engineering", + "Electronics, sensors and digital hardware", + "Engineering practice and education", + "Environmental engineering", + "Fluid mechanics and thermal engineering", + "Geomatic engineering", + "Manufacturing engineering", + "Maritime engineering", + "Materials engineering", + "Mechanical engineering", + "Nanotechnology", + "Resources engineering and extractive metallurgy", + "Other engineering" + ] + }, + { + "condition": "anzsrcDivision == \"ENVIRONMENTAL SCIENCES\"", + "value": [ + "Climate change impacts and adaptation", + "Ecological applications", + "Environmental biotechnology", + "Environmental management", + "Pollution and contamination", + "Soil sciences", + "Other environmental sciences" + ] + }, + { + "condition": "anzsrcDivision == \"HEALTH SCIENCES\"", + "value": [ + "Allied health and rehabilitation science", + "Epidemiology", + "Health services and systems", + "Midwifery", + "Nursing", + "Public health", + "Sports science and exercise", + "Traditional, complementary and integrative medicine", + "Other health sciences" + ] + }, + { + "condition": "anzsrcDivision == \"HISTORY, HERITAGE AND ARCHAEOLOGY\"", + "value": [ + "Archaeology", + "Heritage, archive and museum studies", + "Historical studies", + "Other history, heritage and archaeology" + ] + }, + { + "condition": "anzsrcDivision == \"HUMAN SOCIETY\"", + "value": [ + "Anthropology", + "Criminology", + "Demography", + "Development studies", + "Gender studies", + "Human geography", + "Policy and administration", + "Political science", + "Social work", + "Sociology", + "Other human society" + ] + }, + { + "condition": "anzsrcDivision == \"INDIGENOUS STUDIES\"", + "value": [ + "Aboriginal and Torres Strait Islander culture, language and history", + "Aboriginal and Torres Strait Islander education", + "Aboriginal and Torres Strait Islander environmental knowledges and management", + "Aboriginal and Torres Strait Islander health and wellbeing", + "Aboriginal and Torres Strait Islander peoples, society and community", + "Aboriginal and Torres Strait Islander sciences", + "Te ahurea, reo me te hītori o te Māori (Māori culture, language and history)", + "Mātauranga Māori (Māori education)", + "Ngā mātauranga taiao o te Māori (Māori environmental knowledges)", + "Te hauora me te oranga o te Māori (Māori health and wellbeing)", + "Ngā tāngata, te porihanga me ngā hapori o te Māori (Māori peoples, society and community)", + "Ngā pūtaiao Māori (Māori sciences)", + "Pacific Peoples culture, language and history", + "Pacific Peoples education", + "Pacific Peoples environmental knowledges", + "Pacific Peoples health and wellbeing", + "Pacific Peoples sciences", + "Pacific Peoples society and community", + "Other Indigenous data, methodologies and global Indigenous studies", + "Other Indigenous studies" + ] + }, + { + "condition": "anzsrcDivision == \"INFORMATION AND COMPUTING SCIENCES\"", + "value": [ + "Applied computing", + "Artificial intelligence", + "Computer vision and multimedia computation", + "Cybersecurity and privacy", + "Data management and data science", + "Distributed computing and systems software", + "Graphics, augmented reality and games", + "Human-centred computing", + "Information systems", + "Library and information studies", + "Machine learning", + "Software engineering", + "Theory of computation", + "Other information and computing sciences" + ] + }, + { + "condition": "anzsrcDivision == \"LANGUAGE, COMMUNICATION AND CULTURE\"", + "value": [ + "Communication and media studies", + "Cultural studies", + "Language studies", + "Linguistics", + "Literary studies", + "Other language, communication and culture" + ] + }, + { + "condition": "anzsrcDivision == \"LAW AND LEGAL STUDIES\"", + "value": [ + "Commercial law", + "Environmental and resources law", + "International and comparative law", + "Law in context", + "Legal systems", + "Private law and civil obligations", + "Public law", + "Other law and legal studies" + ] + }, + { + "condition": "anzsrcDivision == \"MATHEMATICAL SCIENCES\"", + "value": [ + "Applied mathematics", + "Mathematical physics", + "Numerical and computational mathematics", + "Pure mathematics", + "Statistics", + "Other mathematical sciences" + ] + }, + { + "condition": "anzsrcDivision == \"PHILOSOPHY AND RELIGIOUS STUDIES\"", + "value": [ + "Applied ethics", + "History and philosophy of specific fields", + "Philosophy", + "Religious studies", + "Theology", + "Other philosophy and religious studies" + ] + }, + { + "condition": "anzsrcDivision == \"PHYSICAL SCIENCES\"", + "value": [ + "Astronomical sciences", + "Atomic, molecular and optical physics", + "Classical physics", + "Condensed matter physics", + "Medical and biological physics", + "Nuclear and plasma physics", + "Particle and high energy physics", + "Quantum physics", + "Space sciences", + "Synchrotrons and accelerators", + "Other physical sciences" + ] + }, + { + "condition": "anzsrcDivision == \"PSYCHOLOGY\"", + "value": [ + "Applied and developmental psychology", + "Biological psychology", + "Clinical and health psychology", + "Cognitive and computational psychology", + "Social and personality psychology", + "Other psychology" + ] + } + ], + "type": "computed" + } + }, + { + "dataType": "text", + "name": "anzsrcFields", + "validate": "required", + "constraints": { + "default": [], + "options": [ + { + "condition": "anzsrcGroup == \"Agricultural biotechnology\"", + "value": [ + "Agricultural biotechnology diagnostics (incl. biosensors)", + "Agricultural marine biotechnology", + "Agricultural molecular engineering of nucleic acids and proteins", + "Genetically modified animals", + "Genetically modified field crops and pasture", + "Genetically modified horticulture plants", + "Genetically modified trees", + "Livestock cloning", + "Non-genetically modified uses of biotechnology", + "Transgenesis", + "Agricultural biotechnology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Agriculture, land and farm management\"", + "value": [ + "Agricultural hydrology", + "Agricultural land management", + "Agricultural land planning", + "Agricultural management of nutrients", + "Agricultural production systems simulation", + "Agricultural spatial analysis and modelling", + "Agricultural systems analysis and modelling", + "Farm management, rural management and agribusiness", + "Germplasm management", + "Sustainable agricultural development", + "Agriculture, land and farm management not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Animal production\"", + "value": [ + "Animal growth and development", + "Animal management", + "Animal nutrition", + "Animal protection (incl. pests and pathogens)", + "Animal reproduction and breeding", + "Animal welfare", + "Environmental studies in animal production", + "Animal production not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Crop and pasture production\"", + "value": [ + "Agrochemicals and biocides (incl. application)", + "Agro-ecosystem function and prediction", + "Agronomy", + "Crop and pasture biochemistry and physiology", + "Crop and pasture biomass and bioproducts", + "Crop and pasture improvement (incl. selection and breeding)", + "Crop and pasture nutrition", + "Crop and pasture post harvest technologies (incl. transportation and storage)", + "Crop and pasture protection (incl. pests, diseases and weeds)", + "Crop and pasture waste water use", + "Fertilisers (incl. application)", + "Organic and low chemical input crop production", + "Pollination biology and systems", + "Crop and pasture production not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Fisheries sciences\"", + "value": [ + "Aquaculture", + "Aquaculture and fisheries stock assessment", + "Fish pests and diseases", + "Fish physiology and genetics", + "Fisheries management", + "Post-harvest fisheries technologies (incl. transportation)", + "Fisheries sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Food sciences\"", + "value": [ + "Beverage chemistry and beverage sensory science", + "Food chemistry and food sensory science", + "Food nutritional balance", + "Food packaging, preservation and processing", + "Food safety, traceability, certification and authenticity", + "Food sustainability", + "Food technology", + "Food sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Forestry sciences\"", + "value": [ + "Agroforestry", + "Forest biodiversity", + "Forest ecosystems", + "Forest health and pathology", + "Forestry biomass and bioproducts", + "Forestry fire management", + "Forestry management and environment", + "Forestry product quality assessment", + "Tree improvement (incl. selection and breeding)", + "Tree nutrition and physiology", + "Wood fibre processing", + "Wood processing", + "Forestry sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Horticultural production\"", + "value": [ + "Field organic and low chemical input horticulture", + "Horticultural crop growth and development", + "Horticultural crop improvement (incl. selection and breeding)", + "Horticultural crop protection (incl. pests, diseases and weeds)", + "Oenology and viticulture", + "Post harvest horticultural technologies (incl. transportation and storage)", + "Horticultural production not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Veterinary sciences\"", + "value": [ + "Veterinary anaesthesiology and intensive care", + "Veterinary anatomy and physiology", + "Veterinary bacteriology", + "Veterinary diagnosis and diagnostics", + "Veterinary epidemiology", + "Veterinary immunology", + "Veterinary medicine (excl. urology)", + "Veterinary mycology", + "Veterinary parasitology", + "Veterinary pathology", + "Veterinary pharmacology", + "Veterinary surgery", + "Veterinary urology", + "Veterinary virology", + "Veterinary sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other agricultural, veterinary and food sciences\"", + "value": [ + "Other agricultural, veterinary and food sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Biochemistry and cell biology\"", + "value": [ + "Analytical biochemistry", + "Cell development, proliferation and death", + "Cell metabolism", + "Cell neurochemistry", + "Cellular interactions (incl. adhesion, matrix, cell wall)", + "Enzymes", + "Glycobiology", + "Protein trafficking", + "Proteomics and intermolecular interactions (excl. medical proteomics)", + "Receptors and membrane biology", + "Signal transduction", + "Structural biology (incl. macromolecular modelling)", + "Synthetic biology", + "Systems biology", + "Biochemistry and cell biology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Bioinformatics and computational biology\"", + "value": [ + "Bioinformatic methods development", + "Biological network analysis", + "Computational ecology and phylogenetics", + "Genomics and transcriptomics", + "Proteomics and metabolomics", + "Sequence analysis", + "Statistical and quantitative genetics", + "Translational and applied bioinformatics", + "Bioinformatics and computational biology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Ecology\"", + "value": [ + "Behavioural ecology", + "Community ecology (excl. invasive species ecology)", + "Ecological physiology", + "Freshwater ecology", + "Marine and estuarine ecology (incl. marine ichthyology)", + "Palaeoecology", + "Population ecology", + "Terrestrial ecology", + "Ecology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Evolutionary biology\"", + "value": [ + "Animal systematics and taxonomy", + "Biogeography and phylogeography", + "Biological adaptation", + "Evolution of developmental systems", + "Evolutionary ecology", + "Evolutionary impacts of climate change", + "Host-parasite interactions", + "Life histories", + "Microbial taxonomy", + "Phylogeny and comparative analysis", + "Plant and fungus systematics and taxonomy", + "Speciation and extinction", + "Evolutionary biology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Genetics\"", + "value": [ + "Anthropological genetics", + "Cell and nuclear division", + "Developmental genetics (incl. sex determination)", + "Epigenetics (incl. genome methylation and epigenomics)", + "Gene expression (incl. microarray and other genome-wide approaches)", + "Gene mapping", + "Genetic immunology", + "Genome structure and regulation", + "Genomics", + "Molecular evolution", + "Neurogenetics", + "Genetics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Industrial biotechnology\"", + "value": [ + "Biocatalysis and enzyme technology", + "Bioprocessing, bioproduction and bioproducts", + "Fermentation", + "Industrial biotechnology diagnostics (incl. biosensors)", + "Industrial microbiology (incl. biofeedstocks)", + "Industrial molecular engineering of nucleic acids and proteins", + "Nanobiotechnology", + "Industrial biotechnology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Microbiology\"", + "value": [ + "Bacteriology", + "Infectious agents", + "Microbial ecology", + "Microbial genetics", + "Mycology", + "Virology", + "Microbiology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Plant biology\"", + "value": [ + "Phycology (incl. marine grasses)", + "Plant biochemistry", + "Plant cell and molecular biology", + "Plant developmental and reproductive biology", + "Plant pathology", + "Plant physiology", + "Plant biology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Zoology\"", + "value": [ + "Animal behaviour", + "Animal cell and molecular biology", + "Animal developmental and reproductive biology", + "Animal diet and nutrition", + "Animal immunology", + "Animal neurobiology", + "Animal physiological ecology", + "Animal physiology - biophysics", + "Animal physiology - cell", + "Animal physiology - systems", + "Animal structure and function", + "Comparative physiology", + "Invertebrate biology", + "Vertebrate biology", + "Zoology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other biological sciences\"", + "value": [ + "Forensic biology", + "Global change biology", + "Other biological sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Cardiovascular medicine and haematology\"", + "value": [ + "Cardiology (incl. cardiovascular diseases)", + "Haematology", + "Respiratory diseases", + "Cardiovascular medicine and haematology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Clinical sciences\"", + "value": [ + "Anaesthesiology", + "Clinical chemistry (incl. diagnostics)", + "Clinical microbiology", + "Clinimetrics", + "Dermatology", + "Diagnostic radiography", + "Emergency medicine", + "Endocrinology", + "Gastroenterology and hepatology", + "Geriatrics and gerontology", + "Infectious diseases", + "Intensive care", + "Medical genetics (excl. cancer genetics)", + "Nephrology and urology", + "Nuclear medicine", + "Orthopaedics", + "Otorhinolaryngology", + "Pain", + "Paramedicine", + "Pathology (excl. oral pathology)", + "Psychiatry (incl. psychotherapy)", + "Radiology and organ imaging", + "Rheumatology and arthritis", + "Rural clinical health", + "Sports medicine", + "Surgery", + "Venereology", + "Clinical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Dentistry\"", + "value": [ + "Craniofacial biology", + "Dental materials and equipment", + "Dental therapeutics, pharmacology and toxicology", + "Endodontics", + "Oral and maxillofacial surgery", + "Oral implantology", + "Oral medicine and pathology", + "Orthodontics and dentofacial orthopaedics", + "Paedodontics", + "Periodontics", + "Prosthodontics", + "Special needs dentistry", + "Dentistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Immunology\"", + "value": [ + "Allergy", + "Applied immunology (incl. antibody engineering, xenotransplantation and t-cell therapies)", + "Autoimmunity", + "Cellular immunology", + "Humoural immunology and immunochemistry", + "Immunogenetics (incl. genetic immunology)", + "Innate immunity", + "Transplantation immunology", + "Tumour immunology", + "Immunology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medical biochemistry and metabolomics\"", + "value": [ + "Medical biochemistry - amino acids and metabolites", + "Medical biochemistry - carbohydrates", + "Medical biochemistry - inorganic elements and compounds", + "Medical biochemistry - lipids", + "Medical biochemistry - nucleic acids", + "Medical biochemistry - proteins and peptides (incl. medical proteomics)", + "Metabolic medicine", + "Medical biochemistry and metabolomics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medical biotechnology\"", + "value": [ + "Gene and molecular therapy", + "Medical biotechnology diagnostics (incl. biosensors)", + "Medical molecular engineering of nucleic acids and proteins", + "Nanomedicine", + "Nanotoxicology, health and safety", + "Regenerative medicine (incl. stem cells)", + "Medical biotechnology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medical microbiology\"", + "value": [ + "Medical bacteriology", + "Medical infection agents (incl. prions)", + "Medical mycology", + "Medical parasitology", + "Medical virology", + "Medical microbiology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medical physiology\"", + "value": [ + "Cell physiology", + "Human biophysics", + "Systems physiology", + "Medical physiology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Neurosciences\"", + "value": [ + "Autonomic nervous system", + "Cellular nervous system", + "Central nervous system", + "Computational neuroscience (incl. mathematical neuroscience and theoretical neuroscience)", + "Neurology and neuromuscular diseases", + "Peripheral nervous system", + "Sensory systems", + "Neurosciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Nutrition and dietetics\"", + "value": [ + "Clinical nutrition", + "Food properties (incl. characteristics and health benefits)", + "Nutrigenomics and personalised nutrition", + "Nutritional science", + "Public health nutrition", + "Sport and exercise nutrition", + "Nutrition and dietetics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Oncology and carcinogenesis\"", + "value": [ + "Cancer cell biology", + "Cancer diagnosis", + "Cancer genetics", + "Cancer therapy (excl. chemotherapy and radiation therapy)", + "Chemotherapy", + "Haematological tumours", + "Liquid biopsies", + "Molecular targets", + "Predictive and prognostic markers", + "Radiation therapy", + "Solid tumours", + "Oncology and carcinogenesis not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Ophthalmology and optometry\"", + "value": [ + "Ophthalmology", + "Optical technology", + "Optometry", + "Vision science", + "Ophthalmology and optometry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Paediatrics\"", + "value": [ + "Adolescent health", + "Infant and child health", + "Neonatology", + "Paediatrics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pharmacology and pharmaceutical sciences\"", + "value": [ + "Basic pharmacology", + "Clinical pharmacology and therapeutics", + "Clinical pharmacy and pharmacy practice", + "Pharmaceutical delivery technologies", + "Pharmaceutical sciences", + "Pharmacogenomics", + "Toxicology (incl. clinical toxicology)", + "Pharmacology and pharmaceutical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Reproductive medicine\"", + "value": [ + "Foetal development and medicine", + "Obstetrics and gynaecology", + "Reproduction", + "Reproductive medicine not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other biomedical and clinical sciences\"", + "value": [ + "Other biomedical and clinical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Architecture\"", + "value": [ + "Architectural computing and visualisation methods", + "Architectural design", + "Architectural heritage and conservation", + "Architectural history, theory and criticism", + "Architectural science and technology", + "Architecture for disaster relief", + "Architecture management", + "Interior design", + "Landscape architecture", + "Sustainable architecture", + "Architecture not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Building\"", + "value": [ + "Automation and technology in building and construction", + "Building construction management and project planning", + "Building industry studies", + "Building information modelling and management", + "Building organisational studies", + "Building science, technologies and systems", + "Quantity surveying", + "Building not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Design\"", + "value": [ + "Data visualisation and computational (incl. parametric and generative) design", + "Design anthropology", + "Design for disaster relief", + "Design history, theory and criticism", + "Design management", + "Design practice and methods", + "Ergonomics design", + "Fire safety design", + "Industrial and product design", + "Interaction and experience design", + "Models and simulations of design", + "Service design", + "Social design", + "Sustainable design", + "Textile and fashion design", + "Visual communication design (incl. graphic design)", + "Design not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Urban and regional planning\"", + "value": [ + "Community planning", + "History and theory of the built environment (excl. architecture)", + "Housing markets, development and management", + "Land use and environmental planning", + "Public participation and community engagement", + "Regional analysis and development", + "Regulatory planning and development assessment", + "Strategic, metropolitan and regional planning", + "Transport planning", + "Urban analysis and development", + "Urban design", + "Urban informatics", + "Urban planning and health", + "Urban and regional planning not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other built environment and design\"", + "value": [ + "Other built environment and design not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Analytical chemistry\"", + "value": [ + "Analytical spectrometry", + "Bioassays", + "Electroanalytical chemistry", + "Flow analysis", + "Instrumental methods (excl. immunological and bioassay methods)", + "Metabolomic chemistry", + "Quality assurance, chemometrics, traceability and metrological chemistry", + "Sensor technology (incl. chemical aspects)", + "Separation science", + "Analytical chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Inorganic chemistry\"", + "value": [ + "Bioinorganic chemistry", + "Crystallography", + "F-block chemistry", + "Inorganic green chemistry", + "Main group metal chemistry", + "Metal cluster chemistry", + "Metal organic frameworks", + "Non-metal chemistry", + "Organometallic chemistry", + "Solid state chemistry", + "Transition metal chemistry", + "Inorganic chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Macromolecular and materials chemistry\"", + "value": [ + "Inorganic materials (incl. nanomaterials)", + "Macromolecular materials", + "Nanochemistry", + "Optical properties of materials", + "Physical properties of materials", + "Polymerisation mechanisms", + "Structure and dynamics of materials", + "Supramolecular chemistry", + "Theory and design of materials", + "Macromolecular and materials chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medicinal and biomolecular chemistry\"", + "value": [ + "Biologically active molecules", + "Biomolecular modelling and design", + "Characterisation of biological macromolecules", + "Cheminformatics and quantitative structure-activity relationships", + "Glycoconjugates", + "Molecular medicine", + "Proteins and peptides", + "Medicinal and biomolecular chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Organic chemistry\"", + "value": [ + "Free radical chemistry", + "Natural products and bioactive compounds", + "Organic chemical synthesis", + "Organic green chemistry", + "Physical organic chemistry", + "Organic chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Physical chemistry\"", + "value": [ + "Catalysis and mechanisms of reactions", + "Chemical thermodynamics and energetics", + "Colloid and surface chemistry", + "Electrochemistry", + "Molecular imaging (incl. electron microscopy and neutron diffraction)", + "Photochemistry", + "Reaction kinetics and dynamics", + "Solution chemistry", + "Transport properties and non-equilibrium processes", + "Physical chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Theoretical and computational chemistry\"", + "value": [ + "Computational chemistry", + "Radiation and matter", + "Statistical mechanics in chemistry", + "Theoretical quantum chemistry", + "Theoretical and computational chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other chemical sciences\"", + "value": [ + "Forensic chemistry", + "Other chemical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other chemical sciences\"", + "value": [ + "Forensic chemistry", + "Other chemical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Accounting, auditing and accountability\"", + "value": [ + "Accounting theory and standards", + "Auditing and accountability", + "Financial accounting", + "International accounting", + "Management accounting", + "Not-for-profit accounting and accountability", + "Sustainability accounting and reporting", + "Taxation accounting", + "Accounting, auditing and accountability not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Banking, finance and investment\"", + "value": [ + "Environment and climate finance", + "Finance", + "Financial econometrics", + "Financial institutions (incl. banking)", + "Household finance and financial literacy", + "Insurance studies", + "International finance", + "Investment and risk management", + "Not-for-profit finance and risk", + "Banking, finance and investment not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Business systems in context\"", + "value": [ + "Business analytics", + "Business information management (incl. records, knowledge and intelligence)", + "Business information systems", + "Business systems in context", + "Forensic intelligence", + "Forensic science and management", + "Technology management", + "Business systems in context not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Commercial services\"", + "value": [ + "Food and hospitality services", + "Hospitality management", + "Real estate and valuation services", + "Retail", + "Sport and leisure management", + "Commercial services not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Human resources and industrial relations\"", + "value": [ + "Business and labour history", + "Employment equity and diversity", + "Human resources management", + "Industrial and employee relations", + "Occupational and workplace health and safety", + "Workforce planning", + "Workplace wellbeing and quality of working life", + "Human resources and industrial relations not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Marketing\"", + "value": [ + "Consumer behaviour", + "Consumer-oriented product or service development", + "Industrial marketing", + "Marketing communications", + "Marketing management (incl. strategy and customer relations)", + "Marketing research methodology", + "Marketing technology", + "Marketing theory", + "Not-for-profit marketing", + "Pricing (incl. consumer value estimation)", + "Service marketing", + "Social marketing", + "Marketing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Strategy, management and organisational behaviour\"", + "value": [ + "Corporate governance", + "Corporate social responsibility", + "Disaster and emergency management", + "Entrepreneurship", + "Innovation management", + "International business", + "Leadership", + "Not-for-profit business and management", + "Organisation and management theory", + "Organisational behaviour", + "Organisational planning and management", + "Production and operations management", + "Project management", + "Public sector organisation and management", + "Quality management", + "Small business organisation and management", + "Stakeholder engagement", + "Strategy", + "Strategy, management and organisational behaviour not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Tourism\"", + "value": [ + "Impacts of tourism", + "Tourism forecasting", + "Tourism management", + "Tourism marketing", + "Tourism resource appraisal", + "Tourist behaviour and visitor experience", + "Tourism not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Transportation, logistics and supply chains\"", + "value": [ + "Air transportation and freight services", + "Intelligent mobility", + "Logistics", + "Maritime transportation and freight services", + "Passenger needs", + "Public transport", + "Rail transportation and freight services", + "Road transportation and freight services", + "Supply chains", + "Transportation, logistics and supply chains not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other commerce, management, tourism and services\"", + "value": [ + "Other commerce, management, tourism and services not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Art history, theory and criticism\"", + "value": [ + "Art criticism", + "Art history", + "Art theory", + "Visual cultures", + "Art history, theory and criticism not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Creative and professional writing\"", + "value": [ + "Creative writing (incl. scriptwriting)", + "Digital writing", + "Professional writing and journalism practice", + "Site-based writing", + "Technical writing", + "Creative and professional writing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Music\"", + "value": [ + "Music cognition", + "Music composition and improvisation", + "Music education", + "Music performance", + "Music technology and recording", + "Musicology and ethnomusicology", + "Music not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Performing arts\"", + "value": [ + "Applied theatre", + "Dance and dance studies", + "Drama, theatre and performance studies", + "Performing arts not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Screen and digital media\"", + "value": [ + "Cinema studies", + "Computer gaming and animation", + "Digital and electronic media art", + "Interactive media", + "Screen media", + "Visual effects", + "Screen and digital media not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Visual arts\"", + "value": [ + "Crafts", + "Fine arts", + "Performance art", + "Photography, video and lens-based practice", + "Visual arts not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other creative arts and writing\"", + "value": [ + "Other creative arts and writing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Climate change science\"", + "value": [ + "Climate change processes", + "Climatology", + "Greenhouse gas inventories and fluxes", + "Climate change science not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Geochemistry\"", + "value": [ + "Exploration geochemistry", + "Inorganic geochemistry", + "Isotope geochemistry", + "Organic geochemistry", + "Geochemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Geoinformatics\"", + "value": [ + "Computational modelling and simulation in earth sciences", + "Earth and space science informatics", + "Geoscience data visualisation", + "Geoinformatics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Geology\"", + "value": [ + "Biomineralisation", + "Geochronology", + "Igneous and metamorphic petrology", + "Marine geoscience", + "Mineralogy and crystallography", + "Palaeontology (incl. palynology)", + "Planetary geology", + "Resource geoscience", + "Sedimentology", + "Stratigraphy (incl. biostratigraphy, sequence stratigraphy and basin analysis)", + "Structural geology and tectonics", + "Volcanology", + "Geology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Geophysics\"", + "value": [ + "Applied geophysics", + "Electrical and electromagnetic methods in geophysics", + "Geodesy", + "Geodynamics", + "Geothermics and radiometrics", + "Gravimetrics", + "Magnetism and palaeomagnetism", + "Petrophysics and rock mechanics", + "Seismology and seismic exploration", + "Geophysics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Hydrology\"", + "value": [ + "Contaminant hydrology", + "Ecohydrology", + "Groundwater hydrology", + "Surface water hydrology", + "Urban hydrology", + "Hydrology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Oceanography\"", + "value": [ + "Biological oceanography", + "Chemical oceanography", + "Physical oceanography", + "Oceanography not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Physical geography and environmental geoscience\"", + "value": [ + "Geomorphology and earth surface processes", + "Glaciology", + "Natural hazards", + "Palaeoclimatology", + "Quaternary environments", + "Regolith and landscape evolution", + "Physical geography and environmental geoscience not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other earth sciences\"", + "value": [ + "Earth system sciences", + "Other earth sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Applied economics\"", + "value": [ + "Agricultural economics", + "Behavioural economics", + "Economic history", + "Economics of education", + "Environment and resource economics", + "Experimental economics", + "Financial economics", + "Health economics", + "Industry economics and industrial organisation", + "International economics", + "Labour economics", + "Macroeconomics (incl. monetary and fiscal theory)", + "Public economics - public choice", + "Public economics - publicly provided goods", + "Public economics - taxation and revenue", + "Tourism economics", + "Transport economics", + "Urban and regional economics", + "Welfare economics", + "Applied economics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Econometrics\"", + "value": [ + "Cross-sectional analysis", + "Econometric and statistical methods", + "Economic models and forecasting", + "Panel data analysis", + "Time-series analysis", + "Econometrics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Economic theory\"", + "value": [ + "History of economic thought", + "Macroeconomic theory", + "Mathematical economics", + "Microeconomic theory", + "Economic theory not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other economics\"", + "value": [ + "Comparative economic systems", + "Ecological economics", + "Heterodox economics", + "Other economics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Curriculum and pedagogy\"", + "value": [ + "Creative arts, media and communication curriculum and pedagogy", + "Curriculum and pedagogy theory and development", + "Economics, business and management curriculum and pedagogy", + "English and literacy curriculum and pedagogy (excl. LOTE, ESL and TESOL)", + "Environmental education curriculum and pedagogy", + "Geography education curriculum and pedagogy", + "Humanities and social sciences curriculum and pedagogy (excl. economics, business and management)", + "LOTE, ESL and TESOL curriculum and pedagogy", + "Mathematics and numeracy curriculum and pedagogy", + "Medicine, nursing and health curriculum and pedagogy", + "Physical education and development curriculum and pedagogy", + "Religion curriculum and pedagogy", + "Science, technology and engineering curriculum and pedagogy", + "Vocational education and training curriculum and pedagogy", + "Work integrated learning (incl. internships)", + "Curriculum and pedagogy not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Education policy, sociology and philosophy\"", + "value": [ + "Education policy", + "History and philosophy of education", + "Sociology of education", + "Education policy, sociology and philosophy not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Education systems\"", + "value": [ + "Continuing and community education", + "Early childhood education", + "Higher education", + "Primary education", + "Professional education and training", + "Secondary education", + "Teacher education and professional development of educators", + "Technical, further and workplace education", + "Education systems not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Specialist studies in education\"", + "value": [ + "Comparative and cross-cultural education", + "Education assessment and evaluation", + "Educational administration, management and leadership", + "Educational counselling", + "Educational technology and computing", + "Gender, sexuality and education", + "Inclusive education", + "Learning analytics", + "Learning sciences", + "Multicultural education (excl. Aboriginal and Torres Strait Islander, Māori and Pacific Peoples)", + "Special education and disability", + "Teacher and student wellbeing", + "Specialist studies in education not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other Education\"", + "value": [ + "Other education not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aerospace engineering\"", + "value": [ + "Aerospace materials", + "Aerospace structures", + "Aircraft performance and flight control systems", + "Avionics", + "Flight dynamics", + "Hypersonic propulsion and hypersonic aerothermodynamics", + "Satellite, space vehicle and missile design and testing", + "Aerospace engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Automotive engineering\"", + "value": [ + "Automotive combustion and fuel engineering", + "Automotive engineering materials", + "Automotive mechatronics and autonomous systems", + "Automotive safety engineering", + "Hybrid and electric vehicles and powertrains", + "Automotive engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Biomedical engineering\"", + "value": [ + "Biofabrication", + "Biomaterials", + "Biomechanical engineering", + "Biomedical imaging", + "Biomedical instrumentation", + "Computational physiology", + "Mechanobiology", + "Medical devices", + "Neural engineering", + "Rehabilitation engineering", + "Tissue engineering", + "Biomedical engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Chemical engineering\"", + "value": [ + "Carbon capture engineering (excl. sequestration)", + "Chemical and thermal processes in energy and combustion", + "Chemical engineering design", + "Electrochemical energy storage and conversion", + "Food engineering", + "Powder and particle technology", + "Process control and simulation", + "Reaction engineering (excl. nuclear reactions)", + "Separation technologies", + "Wastewater treatment processes", + "Water treatment processes", + "Chemical engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Civil engineering\"", + "value": [ + "Architectural engineering", + "Civil geotechnical engineering", + "Complex civil systems", + "Construction engineering", + "Construction materials", + "Earthquake engineering", + "Fire safety engineering", + "Infrastructure engineering and asset management", + "Structural dynamics", + "Structural engineering", + "Timber engineering", + "Transport engineering", + "Water resources engineering", + "Civil engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Communications engineering\"", + "value": [ + "Antennas and propagation", + "Data communications", + "Molecular, biological, and multi-scale communications", + "Network engineering", + "Optical fibre communication systems and technologies", + "Satellite communications", + "Signal processing", + "Wireless communication systems and technologies (incl. microwave and millimetrewave)", + "Communications engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Control engineering, mechatronics and robotics\"", + "value": [ + "Assistive robots and technology", + "Automation engineering", + "Autonomous vehicle systems", + "Biomechatronics", + "Control engineering", + "Field robotics", + "Manufacturing robotics", + "Mechatronics hardware design and architecture", + "Medical robotics", + "Micro-manipulation", + "Simulation, modelling, and programming of mechatronics systems", + "Control engineering, mechatronics and robotics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Electrical engineering\"", + "value": [ + "Circuits and systems", + "Electrical circuits and systems", + "Electrical energy generation (incl. renewables, excl. photovoltaics)", + "Electrical energy storage", + "Electrical energy transmission, networks and systems", + "Electrical machines and drives", + "Engineering electromagnetics", + "Photovoltaic power systems", + "Electrical engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Electronics, sensors and digital hardware\"", + "value": [ + "Analog electronics and interfaces", + "Digital electronic devices", + "Digital processor architectures", + "Electronic device and system performance evaluation, testing and simulation", + "Electronic instrumentation", + "Electronic sensors", + "Industrial electronics", + "Microelectronics", + "Photonic and electro-optical devices, sensors and systems (excl. communications)", + "Photovoltaic devices (solar cells)", + "Power electronics", + "Quantum engineering systems (incl. computing and communications)", + "Radio frequency engineering", + "Electronics, sensors and digital hardware not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Engineering practice and education\"", + "value": [ + "Engineering design", + "Engineering education", + "Engineering practice", + "Humanitarian engineering", + "Risk engineering", + "Systems engineering", + "Engineering practice and education not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Environmental engineering\"", + "value": [ + "Air pollution modelling and control", + "Environmentally sustainable engineering", + "Global and planetary environmental engineering", + "Health and ecological risk assessment", + "Life cycle assessment and industrial ecology", + "Waste management, reduction, reuse and recycling", + "Environmental engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Fluid mechanics and thermal engineering\"", + "value": [ + "Aerodynamics (excl. hypersonic aerodynamics)", + "Bio-fluids", + "Biomedical fluid mechanics", + "Computational methods in fluid flow, heat and mass transfer (incl. computational fluid dynamics)", + "Experimental methods in fluid flow, heat and mass transfer", + "Fluid-structure interaction and aeroacoustics", + "Fundamental and theoretical fluid dynamics", + "Geophysical and environmental fluid flows", + "Hydrodynamics and hydraulic engineering", + "Microfluidics and nanofluidics", + "Multiphysics flows (incl. multiphase and reacting flows)", + "Non-Newtonian fluid flows (incl. rheology)", + "Turbulent flows", + "Fluid mechanics and thermal engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Geomatic engineering\"", + "value": [ + "Cartography and digital mapping", + "Geospatial information systems and geospatial data modelling", + "Navigation and position fixing", + "Photogrammetry and remote sensing", + "Satellite-based positioning", + "Surveying (incl. hydrographic surveying)", + "Geomatic engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Manufacturing engineering\"", + "value": [ + "Additive manufacturing", + "CAD/CAM systems", + "Flexible manufacturing systems", + "Industrial engineering", + "Machine tools", + "Machining", + "Manufacturing management", + "Manufacturing processes and technologies (excl. textiles)", + "Manufacturing safety and quality", + "Microtechnology", + "Packaging, storage and transportation (excl. food and agricultural products)", + "Precision engineering", + "Textile technology", + "Manufacturing engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Maritime engineering\"", + "value": [ + "Marine engineering", + "Naval architecture", + "Ocean engineering", + "Ship and platform structures (incl. maritime hydrodynamics)", + "Special vehicles", + "Maritime engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Materials engineering\"", + "value": [ + "Ceramics", + "Composite and hybrid materials", + "Compound semiconductors", + "Elemental semiconductors", + "Functional materials", + "Glass", + "Metals and alloy materials", + "Organic semiconductors", + "Polymers and plastics", + "Timber, pulp and paper", + "Wearable materials", + "Materials engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Mechanical engineering\"", + "value": [ + "Acoustics and noise control (excl. architectural acoustics)", + "Dynamics, vibration and vibration control", + "Energy generation, conversion and storage (excl. chemical and electrical)", + "Mechanical engineering asset management", + "Microelectromechanical systems (MEMS)", + "Numerical modelling and mechanical characterisation", + "Solid mechanics", + "Tribology", + "Mechanical engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Nanotechnology\"", + "value": [ + "Micro- and nanosystems", + "Molecular and organic electronics", + "Nanoelectromechanical systems", + "Nanoelectronics", + "Nanofabrication, growth and self assembly", + "Nanomanufacturing", + "Nanomaterials", + "Nanometrology", + "Nanophotonics", + "Nanoscale characterisation", + "Nanotechnology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Resources engineering and extractive metallurgy\"", + "value": [ + "Electrometallurgy", + "Geomechanics and resources geotechnical engineering", + "Hydrometallurgy", + "Mineral processing/beneficiation", + "Mining engineering", + "Nuclear engineering (incl. fuel enrichment and waste processing and storage)", + "Petroleum and reservoir engineering", + "Pyrometallurgy", + "Resources engineering and extractive metallurgy not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other engineering\"", + "value": [ + "Agricultural engineering", + "Engineering instrumentation", + "Granular mechanics", + "Other engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Climate change impacts and adaptation\"", + "value": [ + "Carbon sequestration science", + "Ecological impacts of climate change and ecological adaptation", + "Human impacts of climate change and human adaptation", + "Climate change impacts and adaptation not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Ecological applications\"", + "value": [ + "Bioavailability and ecotoxicology", + "Biosecurity science and invasive species ecology", + "Ecosystem function", + "Ecosystem services (incl. pollination)", + "Fire ecology", + "Landscape ecology", + "Ecological applications not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Environmental biotechnology\"", + "value": [ + "Biodiscovery", + "Biological control", + "Bioremediation", + "Environmental biotechnology diagnostics (incl. biosensors)", + "Environmental marine biotechnology", + "Environmental nanotechnology and nanometrology", + "Environmental biotechnology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Environmental management\"", + "value": [ + "Conservation and biodiversity", + "Environmental assessment and monitoring", + "Environmental education and extension", + "Environmental management", + "Environmental rehabilitation and restoration", + "Natural resource management", + "Wildlife and habitat management", + "Environmental management not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pollution and contamination\"", + "value": [ + "Environmental biogeochemistry", + "Noise and wave pollution processes and measurement", + "Groundwater quality processes and contaminated land assessment", + "Surface water quality processes and contaminated sediment assessment", + "Pollution and contamination not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Soil sciences\"", + "value": [ + "Land capability and soil productivity", + "Pedology and pedometrics", + "Soil biology", + "Soil chemistry and soil carbon sequestration (excl. carbon sequestration science)", + "Soil physics", + "Soil sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other environmental sciences\"", + "value": [ + "Other environmental sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Allied health and rehabilitation science\"", + "value": [ + "Arts therapy", + "Audiology", + "Music therapy", + "Occupational therapy", + "Orthoptics", + "Physiotherapy", + "Podiatry", + "Prosthetics and orthotics", + "Rehabilitation", + "Speech pathology", + "Allied health and rehabilitation science not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Epidemiology\"", + "value": [ + "Behavioural epidemiology", + "Disease surveillance", + "Environmental epidemiology", + "Epidemiological methods", + "Epidemiological modelling", + "Forensic epidemiology", + "Major global burdens of disease", + "Nutritional epidemiology", + "Occupational epidemiology", + "Social epidemiology", + "Epidemiology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Health services and systems\"", + "value": [ + "Aged health care", + "Digital health", + "Family care", + "General practice", + "Health and community services", + "Health care administration", + "Health counselling", + "Health informatics and information systems", + "Health management", + "Health surveillance", + "Health systems", + "Implementation science and evaluation", + "Mental health services", + "Multimorbidity", + "One health", + "Palliative care", + "Patient safety", + "People with disability", + "Primary health care", + "Residential client care", + "Rural and remote health services", + "Health services and systems not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Midwifery\"", + "value": [ + "Clinical midwifery", + "Models of care and place of birth", + "Psychosocial aspects of childbirth and perinatal mental health", + "Midwifery not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Nursing\"", + "value": [ + "Acute care", + "Aged care nursing", + "Community and primary care", + "Mental health nursing", + "Nursing workforce", + "Sub-acute care", + "Nursing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Public health\"", + "value": [ + "Community child health", + "Health equity", + "Health promotion", + "Injury prevention", + "Preventative health care", + "Social determinants of health", + "Public health not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Sports science and exercise\"", + "value": [ + "Biomechanics", + "Exercise physiology", + "Motor control", + "Sports science and exercise not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Traditional, complementary and integrative medicine\"", + "value": [ + "Chiropractic", + "Naturopathy", + "Traditional Chinese medicine and treatments", + "Traditional, complementary and integrative medicine not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other health sciences\"", + "value": [ + "Other health sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Archaeology\"", + "value": [ + "Archaeological science", + "Archaeology of Asia, Africa and the Americas", + "Archaeology of Australia (excl. Aboriginal and Torres Strait Islander)", + "Archaeology of Europe, the Mediterranean and the Levant", + "Archaeology of New Zealand (excl. Māori)", + "Digital archaeology", + "Historical archaeology (incl. industrial archaeology)", + "Maritime archaeology", + "Archaeology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Heritage, archive and museum studies\"", + "value": [ + "Archival, repository and related studies", + "Critical heritage, museum and archive studies", + "Cultural heritage management (incl. world heritage)", + "Digital heritage", + "Heritage and cultural conservation", + "Heritage collections and interpretations", + "Heritage tourism, visitor and audience studies", + "Intangible heritage", + "Materials conservation", + "Heritage, archive and museum studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Historical studies\"", + "value": [ + "Asian history", + "Australian history", + "Biography", + "British history", + "Classical Greek and Roman history", + "Digital history", + "Environmental history", + "European history (excl. British, classical Greek and Roman)", + "Gender history", + "Global and world history", + "Historical studies of crime", + "Histories of race", + "History of empires, imperialism and colonialism", + "History of religion", + "History of the pacific", + "International history", + "Latin and South American history", + "Middle Eastern and North African history", + "Migration history", + "New Zealand history", + "North American history", + "Sub-Saharan African history", + "Transnational history", + "Historical studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other history, heritage and archaeology\"", + "value": [ + "Other history, heritage and archaeology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Anthropology\"", + "value": [ + "Anthropology of development", + "Anthropology of gender and sexuality", + "Biological (physical) anthropology", + "Environmental anthropology", + "Linguistic anthropology", + "Medical anthropology", + "Social and cultural anthropology", + "Anthropology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Criminology\"", + "value": [ + "Causes and prevention of crime", + "Correctional theory, offender treatment and rehabilitation", + "Courts and sentencing", + "Crime and social justice", + "Criminological theories", + "Critical approaches to crime", + "Cybercrime", + "Environmental crime", + "Gender and crime", + "Organised crime", + "Police administration, procedures and practice", + "Private policing and security services", + "Race/ethnicity and crime", + "Sociological studies of crime", + "State crime", + "Technology, crime and surveillance", + "Terrorism", + "Victims", + "White collar crime", + "Criminology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Demography\"", + "value": [ + "Family and household studies", + "Fertility", + "Migration", + "Mortality", + "Population trends and policies", + "Demography not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Development studies\"", + "value": [ + "Development cooperation", + "Humanitarian disasters, conflict and peacebuilding", + "Labour, migration and development", + "Political economy and social change", + "Poverty, inclusivity and wellbeing", + "Rural community development", + "Socio-economic development", + "Urban community development", + "Development studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Gender studies\"", + "value": [ + "Feminist and queer theory", + "Feminist methodologies", + "Feminist theory", + "Gender relations", + "Intersectional studies", + "Sexualities", + "Studies of men and masculinities", + "Transgender studies", + "Women's studies (incl. girls' studies)", + "Gender studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Human geography\"", + "value": [ + "Cultural geography", + "Development geography", + "Economic geography", + "Environmental geography", + "Health geography", + "Political geography", + "Population geography", + "Recreation, leisure and tourism geography", + "Rural and regional geography", + "Social geography", + "Transport geography", + "Urban geography", + "Human geography not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Policy and administration\"", + "value": [ + "Communications and media policy", + "Crime policy", + "Economic development policy", + "Environment policy", + "Gender, policy and administration", + "Health policy", + "Housing policy", + "Public administration", + "Public policy", + "Research, science and technology policy", + "Risk policy", + "Social policy", + "Tourism policy", + "Urban policy", + "Policy and administration not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Political science\"", + "value": [ + "Australian government and politics", + "Citizenship", + "Comparative government and politics", + "Defence studies", + "Environmental politics", + "Gender and politics", + "Government and politics of Asia and the Pacific", + "International relations", + "New Zealand government and politics", + "Peace studies", + "Political theory and political philosophy", + "Political science not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Social work\"", + "value": [ + "Clinical social work practice", + "Counselling, wellbeing and community services", + "Social program evaluation", + "Social work not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Sociology\"", + "value": [ + "Applied sociology, program evaluation and social impact assessment", + "Environmental sociology", + "Rural sociology", + "Social change", + "Social theory", + "Sociological methodology and research methods", + "Sociology and social studies of science and technology", + "Sociology of culture", + "Sociology of family and relationships", + "Sociology of gender", + "Sociology of health", + "Sociology of inequalities", + "Sociology of migration, ethnicity and multiculturalism", + "Sociology of religion", + "Sociology of the life course", + "Urban sociology and community studies", + "Sociology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other human society\"", + "value": [ + "Studies of Asian society", + "Other human society not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander culture, language and history\"", + "value": [ + "Aboriginal and Torres Strait Islander archaeology", + "Aboriginal and Torres Strait Islander artefacts", + "Aboriginal and Torres Strait Islander cultural history", + "Aboriginal and Torres Strait Islander culture", + "Aboriginal and Torres Strait Islander curatorial, archives and museum studies", + "Aboriginal and Torres Strait Islander ethics", + "Aboriginal and Torres Strait Islander history", + "Aboriginal and Torres Strait Islander linguistics and languages", + "Aboriginal and Torres Strait Islander literature, journalism and professional writing", + "Aboriginal and Torres Strait Islander media, film, animation and photography", + "Aboriginal and Torres Strait Islander music and performing arts", + "Aboriginal and Torres Strait Islander philosophy", + "Aboriginal and Torres Strait Islander religion and religious studies", + "Aboriginal and Torres Strait Islander repatriation", + "Aboriginal and Torres Strait Islander research methods", + "Aboriginal and Torres Strait Islander visual arts and crafts", + "Aboriginal and Torres Strait Islander ways of knowing, being and doing", + "Conservation of Aboriginal and Torres Strait Islander heritage", + "Aboriginal and Torres Strait Islander culture, language and history not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander education\"", + "value": [ + "Aboriginal and Torres Strait Islander curriculum and pedagogy", + "Aboriginal and Torres Strait Islander early childhood education", + "Aboriginal and Torres Strait Islander educational methods", + "Aboriginal and Torres Strait Islander technical, further, continuing and community education", + "Aboriginal and Torres Strait Islander higher education", + "Aboriginal and Torres Strait Islander language education", + "Aboriginal and Torres Strait Islander men’s education", + "Aboriginal and Torres Strait Islander primary education", + "Aboriginal and Torres Strait Islander secondary education", + "Aboriginal and Torres Strait Islander student engagement and teaching", + "Aboriginal and Torres Strait Islander women’s education", + "Cultural responsiveness and working with Aboriginal and Torres Strait Islander communities education", + "Embedding Aboriginal and Torres Strait Islander knowledges, histories, culture, country, perspectives and ethics in education", + "Aboriginal and Torres Strait Islander education not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander environmental knowledges and management\"", + "value": [ + "Aboriginal and Torres Strait Islander agriculture and forestry", + "Aboriginal and Torres Strait Islander earth sciences", + "Aboriginal and Torres Strait Islander environmental conservation", + "Aboriginal and Torres Strait Islander environmental knowledges", + "Aboriginal and Torres Strait Islander fisheries and customary fisheries", + "Aboriginal and Torres Strait Islander land and water management", + "Aboriginal and Torres Strait Islander marine environment science", + "Aboriginal and Torres Strait Islander environmental knowledges and management not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander health and wellbeing\"", + "value": [ + "Aboriginal and Torres Strait Islander and disability", + "Aboriginal and Torres Strait Islander biomedical and clinical sciences", + "Aboriginal and Torres Strait Islander child health and wellbeing", + "Aboriginal and Torres Strait Islander cultural determinants of health", + "Aboriginal and Torres Strait Islander diet and nutrition", + "Aboriginal and Torres Strait Islander epidemiology", + "Aboriginal and Torres Strait Islander health policy", + "Aboriginal and Torres Strait Islander health promotion", + "Aboriginal and Torres Strait Islander health services", + "Aboriginal and Torres Strait Islander lifecourse", + "Aboriginal and Torres Strait Islander medicine and treatments", + "Aboriginal and Torres Strait Islander men’s health and wellbeing", + "Aboriginal and Torres Strait Islander midwifery and paediatrics", + "Aboriginal and Torres Strait Islander mothers and babies health and wellbeing", + "Aboriginal and Torres Strait Islander nursing", + "Aboriginal and Torres Strait Islander psychology", + "Aboriginal and Torres Strait Islander public health and wellbeing", + "Aboriginal and Torres Strait Islander remote health", + "Aboriginal and Torres Strait Islander social determinants of health", + "Aboriginal and Torres Strait Islander social, emotional, cultural and spiritual wellbeing", + "Aboriginal and Torres Strait Islander sport and physical activity", + "Aboriginal and Torres Strait Islander theory of change models for health", + "Aboriginal and Torres Strait Islander youth and family social and emotional wellbeing", + "Aboriginal and Torres Strait Islander health and wellbeing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander peoples, society and community\"", + "value": [ + "Aboriginal and Torres Strait Islander accounting", + "Aboriginal and Torres Strait Islander anthropology", + "Aboriginal and Torres Strait Islander architecture", + "Aboriginal and Torres Strait Islander commerce", + "Aboriginal and Torres Strait Islander community and regional development", + "Aboriginal and Torres Strait Islander community governance and decision making", + "Aboriginal and Torres Strait Islander community-based research", + "Aboriginal and Torres Strait Islander criminology", + "Aboriginal and Torres Strait Islander customary law", + "Aboriginal and Torres Strait Islander design practice and management", + "Aboriginal and Torres Strait Islander economics", + "Aboriginal and Torres Strait Islander finance", + "Aboriginal and Torres Strait Islander human geography and demography", + "Aboriginal and Torres Strait Islander legislation", + "Aboriginal and Torres Strait Islander management", + "Aboriginal and Torres Strait Islander marketing", + "Aboriginal and Torres Strait Islander not-for-profit social enterprises", + "Aboriginal and Torres Strait Islander peoples and the law", + "Aboriginal and Torres Strait Islander perspectives", + "Aboriginal and Torres Strait Islander political participation and representation", + "Aboriginal and Torres Strait Islander politics", + "Aboriginal and Torres Strait Islander social impact and program evaluation", + "Aboriginal and Torres Strait Islander social work and social justice", + "Aboriginal and Torres Strait Islander sociological studies", + "Aboriginal and Torres Strait Islander sociology", + "Aboriginal and Torres Strait Islander tourism", + "Aboriginal and Torres Strait Islander urban and regional planning", + "Aboriginal and Torres Strait Islander peoples, society and community not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander sciences\"", + "value": [ + "Aboriginal and Torres Strait Islander astronomy and cosmology", + "Aboriginal and Torres Strait Islander biological sciences", + "Aboriginal and Torres Strait Islander computing technology use and design", + "Aboriginal and Torres Strait Islander engineering", + "Aboriginal and Torres Strait Islander genomics", + "Aboriginal and Torres Strait Islander information and knowledge management systems", + "Aboriginal and Torres Strait Islander innovation", + "Aboriginal and Torres Strait Islander knowledge management methods", + "Aboriginal and Torres Strait Islander mathematical, physical and chemical sciences (excl. astronomy and cosmology)", + "Aboriginal and Torres Strait Islander sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Te ahurea, reo me te hītori o te Māori (Māori culture, language and history)\"", + "value": [ + "Te whāomoomo i te tuku ihotanga Māori (conservation of Māori heritage)", + "Te mana wahine (female status)", + "Te mana tāne (male status)", + "Te mātai whaipara Māori (Māori archaeology)", + "Ngā taonga Māori nō mua (Māori artefacts)", + "Te hītori ahurea Māori (Māori cultural history)", + "Te ahurea Māori (Māori culture)", + "Ngā mātai kaitiaki, pūranga me ngā whare tongarewa o te Māori (Māori curatorial, archives and museum studies)", + "Ngā matatika o te Māori (Māori ethics)", + "Te hītori Māori (Māori history)", + "Te whenua, ahurea me te tuakiri o te Māori (Māori land, culture and identity)", + "Te mātai i te reo Māori me te reo Māori (Māori linguistics and languages)", + "Te mātākōrero, te kawe kōrero me te tuhituhi ngaio o te Māori (Māori literature, journalism and professional writing)", + "Ngā arapāho, ngā kiriata, te hākoritanga me te hopu whakaahua o te Māori (Māori media, film, animation and photography)", + "Te puoro me ngā mahi a te rēhia o te Māori (Māori music and performing arts)", + "Te rapunga whakaaro o te Māori (Māori philosophy)", + "Ngā Kaupapa Māori (Māori projects)", + "Te whakapono me te mātai whakapono o te Māori (Māori religion and religious studies)", + "Te whakahoki taonga a te Māori ki te kāinga (Māori repatriation)", + "Ngā tikanga rangahau o te Māori (Māori research methods)", + "Ngā toi ataata ngā mahi ā-rehe o te Māori (Māori visual arts and crafts)", + "Te ahurea, reo, me te hītori o te Māori kāore anō kia whakarōpūtia i wāhi kē (Māori culture, language and history not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Mātauranga Māori (Māori education)\"", + "value": [ + "Ngā kōhanga reo (Māori curriculum and pedagogy)", + "Te Whāriki - te mātauranga kōhungahunga Māori (Māori early childhood education)", + "Ngā tikanga mātauranga o te Māori (Māori educational methods)", + "Te mātauranga kura tuatoru Māori (Māori higher education)", + "Te mātauranga reo Māori (Māori language education)", + "Ngā kura kaupapa Māori (Māori primary education)", + "Te urupare me te whai wāhi Māori ki te mātauranga (Māori responsiveness and engaged education)", + "Te mātauranga kura tuarua Māori (Māori secondary education)", + "Te whai wāhi ākonga me ngā mahi whakaako o te Māori (Māori student engagement and teaching)", + "Tō te Māori mātauranga hangarau, mātauranga atu anō, mātauranga haere tonu, me te mātauranga hapori (Māori technical, further, continuing and community education)", + "Te mātauranga Māori i roto i te mātauranga (Mātauranga Māori in education)", + "Te mātauranga Māori kāore anō kia whakarōpūtia i wāhi kē (Māori education not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Ngā mātauranga taiao o te Māori (Māori environmental knowledges)\"", + "value": [ + "Te ahuwhenua me ngā mahi ngahere o te Māori (Māori agriculture and forestry)", + "Ngā pūtaiao-ā-nuku o te Māori (Māori earth sciences)", + "Te whāomoomo taiao o te Māori (Māori environmental conservation)", + "Ngā mātauranga taiao o te Māori (Māori environmental knowledges)", + "Te ahumoana me te ahumoana tuku iho o te Māori (Māori fisheries and customary fisheries)", + "Te whakahaere whenua me te wai o te Māori (Māori land and water management)", + "Te pūtaiao taiao moana o te Māori (Māori marine environment science)", + "Ngā mātauranga taiao o te Māori kāore anō kia whakarōpūtia i wāhi kē (Māori environmental knowledges not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Te hauora me te oranga o te Māori (Māori health and wellbeing)\"", + "value": [ + "Te whaikaha me te Māori (Māori and disability)", + "Ngā pūtaiao koiora-hauora, haumanu hoki o te Māori (Māori biomedical and clinical sciences)", + "Ngā tokoingoa ahurea o te hauora o te Māori (Māori cultural determinants of health)", + "Te horakai me ngā kai o te Māori (Māori diet and nutrition)", + "Te mātai tahumaero o te Māori (Māori epidemiology)", + "Ngā kaupapahere hauora o te Māori (Māori health policy)", + "Te whakatairanga hauora o te Māori (Māori health promotion)", + "Ngā wāhanga ora o te Māori (Māori life course)", + "Ngā rongoā me ngā whakamaimoa o te Māori (Māori medicine and treatments)", + "Ngā kaiwhakawhānau me te mātai mate tamariki o te Māori (Māori midwifery and paediatrics)", + "Te hauora me te oranga ā-whaea, ā-pēpi o te Māori (Māori mothers and babies health and wellbeing)", + "Te mahi tapuhi o te Māori (Māori nursing)", + "Mātauranga hinengaro kaupapa Māori (Māori psychology)", + "Ngā pūnaha mātauranga hinengaro o te Māori (Māori psychology knowledge systems)", + "Te hauora me te oranga tūmatanui o te Māori (Māori public health and wellbeing)", + "Te hauora mamao o te Māori (Māori remote health)", + "Te oranga ā-pāpori, ā-hinengaro, ā-ahurea, ā-wairua o te Māori (Māori social, cultural, emotional and spiritual wellbeing)", + "Ngā tokoingoa pāpori o te hauora o te Māori (Māori social determinants of health)", + "Ngā hākinakina me te korikori tinana o te Māori (Māori sport and physical activity)", + "Te ariā o ngā tauira panoni hauora o te Māori (Māori theory of change models for health)", + "Ngā taiohi me ngā whānau Māori (Māori youth and family)", + "Te hauora me te oranga o te Māori kāore anō kia whakarōpūhia i wāhi kē (Māori health and wellbeing not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Ngā tāngata, te porihanga me ngā hapori o te Māori (Māori peoples, society and community)\"", + "value": [ + "Te mahi kaute o te Māori (Māori accounting)", + "Te mātauranga tikanga Māori (Māori anthropology)", + "Te hoahoanga whare o te Māori (Māori architecture)", + "Ngā mahi tauhokohoko o te Māori (Māori commerce)", + "Te whanaketanga ā-hapori, ā-rohe o te Māori (Māori community and regional development)", + "Te rangahau kei rō hapori o te Māori (Māori community-based research)", + "Te kāwana ā-hapori, whakatau take hoki o te Māori (Māori community governance and decision making)", + "Te mātauranga taihara Māori (Māori criminology)", + "Ngā tikanga Māori (Māori customary law)", + "Te whakaharatau me te whakahaere hoahoa o te Māori (Māori design practice and management)", + "Te mātauranga ōhanga o te Māori (Māori economics)", + "Te ahumoni Māori (Māori finance)", + "Te mātauranga matawhenua ā-iwi me te tatauranga ā-iwi o te Māori (Māori human geography and demography)", + "Te ture Whenua (Māori land law)", + "Te ture me te tika Māori (Māori law and justice)", + "Ngā ture Māori (Māori legislation)", + "Te whakahaere o te Māori (Māori management)", + "Te whakamākete o te Māori (Māori marketing)", + "Ngā hinonga pāpori kaupapa atawhai o te Māori (Māori not-for-profit social enterprises)", + "Ngā iwi Māori me te ture (Māori peoples and the law)", + "Ngā tirohanga Māori (Māori perspectives)", + "Te whai wāhi me te whakakanohi taha tōrāngapū o te Māori (Māori political participation and representation)", + "Ngā mahi tōrangapū Māori (Māori politics)", + "Ngā ture rawa Māori (Māori resource law)", + "Te pāpātanga pāpori me te aromātai hōtaka o te Māori (Māori social impact and program evaluation)", + "Ngā mahi tauwhiro me te tika pāpori o te Māori (Māori social work and social justice)", + "Ngā mātai tikanga ā-iwi o te Māori (Māori sociological studies)", + "Te mātauranga pāpori o te Māori (Māori sociology)", + "Te mahi tāpoi Māori (Māori tourism)", + "Te Tiriti o Waitangi (The Treaty of Waitangi)", + "Te whakamahere ā-tāone, ā-rohe o te Māori (Māori urban and regional planning)", + "Ngā tāngata, te porihanga me ngā hapori o te Māori kāore anō kia whakarōpūtia i wāhi kē (Māori peoples, society and community not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Ngā pūtaiao Māori (Māori sciences)\"", + "value": [ + "Te mātai arorangi me te mātai tuarangi o te Māori (Māori astronomy and cosmology)", + "Ngā pūtaiao koiora o te Māori (Māori biological sciences)", + "Te whakamahi me te hoahoa o te hangarau rorohiko o te Māori (Māori computing technology use and design)", + "Te mana motuhake o ngā raraunga Māori (Māori data sovereignty)", + "Te mātauranga pūkaha o te Māori (Māori engineering)", + "Te mātai huingaira o te Māori (Māori genomics)", + "Ngā pūnaha whakahaere mōhiohio me te mātauranga o te Māori (Māori information and knowledge management systems)", + "Te wairua auaha o te Māori (Māori innovation)", + "Ngā tikanga whakahaere mōhiotanga Māori (Māori knowledge management methods)", + "Ngā pūtaiao pāngarau, ōkiko, matū hoki - hāunga te mātai arorangi me te mātai tuarangi o te Māori (Māori mathematical, physical and chemical sciences - excl. astronomy and cosmology)", + "Te tukatuka reo noa o te Māori (Māori natural language processing)", + "Ngā pūtaiao Māori kāore anō kia whakarōpūhia i wāhi kē (Māori sciences not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples culture, language and history\"", + "value": [ + "Archaeology of New Guinea and Pacific Islands (excl. New Zealand)", + "Conservation of Pacific Peoples heritage", + "Pacific Peoples artefacts", + "Pacific Peoples cultural history", + "Pacific Peoples culture", + "Pacific Peoples curatorial, archives and museum studies", + "Pacific Peoples ethics", + "Pacific Peoples history", + "Pacific Peoples land, culture and identity", + "Pacific Peoples linguistics and languages", + "Pacific Peoples literature, journalism and professional writing", + "Pacific Peoples media, film, animation and photography", + "Pacific Peoples music and performing arts", + "Pacific Peoples philosophy", + "Pacific Peoples religion and religious studies", + "Pacific Peoples repatriation", + "Pacific Peoples research methods", + "Pacific Peoples visual arts and crafts", + "Pacific Peoples ways of knowing, being and doing", + "Pacific Peoples culture, language and history not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples education\"", + "value": [ + "Cultural responsiveness and working with Pacific Peoples communities education", + "Embedding Pacific Peoples knowledges, histories, culture, country, perspectives and ethics in education", + "Pacific Peoples curriculum and pedagogy", + "Pacific Peoples early childhood education", + "Pacific Peoples educational methods", + "Pacific Peoples technical, further, continuing and community education", + "Pacific Peoples higher education", + "Pacific Peoples language education", + "Pacific Peoples men’s education", + "Pacific Peoples primary education", + "Pacific Peoples secondary education", + "Pacific Peoples student engagement and teaching", + "Pacific Peoples women’s education", + "Pacific Peoples education not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples environmental knowledges\"", + "value": [ + "Pacific Peoples agriculture and forestry", + "Pacific Peoples earth sciences", + "Pacific Peoples environmental conservation", + "Pacific Peoples environmental knowledges", + "Pacific Peoples fisheries and customary fisheries", + "Pacific Peoples land and water management", + "Pacific Peoples marine environment science", + "Pacific Peoples environmental knowledges not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples health and wellbeing\"", + "value": [ + "Pacific Peoples and disability", + "Pacific Peoples biomedical and clinical science", + "Pacific Peoples cultural determinants of health", + "Pacific Peoples diet and nutrition", + "Pacific Peoples epidemiology", + "Pacific Peoples health policy", + "Pacific Peoples health promotion", + "Pacific Peoples life course", + "Pacific Peoples medicine and treatments", + "Pacific Peoples midwifery and paediatrics", + "Pacific Peoples mothers and babies health and wellbeing", + "Pacific Peoples nursing", + "Pacific Peoples psychology", + "Pacific Peoples public health and wellbeing", + "Pacific Peoples remote health", + "Pacific Peoples social determinants of health", + "Pacific Peoples social, cultural, emotional and spiritual wellbeing", + "Pacific Peoples sport and physical activity", + "Pacific Peoples theory of change models for health", + "Pacific Peoples youth and family", + "Pacific Peoples health and wellbeing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples sciences\"", + "value": [ + "Pacific Peoples astronomy and cosmology", + "Pacific Peoples biological sciences", + "Pacific Peoples computing technology use and design", + "Pacific Peoples engineering", + "Pacific Peoples genomics", + "Pacific Peoples information and knowledge management systems", + "Pacific Peoples innovation", + "Pacific Peoples knowledge management methods", + "Pacific Peoples mathematical, physical and chemical sciences (excl. astronomy and cosmology)", + "Pacific Peoples sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples society and community\"", + "value": [ + "Pacific Peoples and the law", + "Pacific Peoples anthropology", + "Pacific Peoples architecture", + "Pacific Peoples commerce", + "Pacific Peoples community and regional development", + "Pacific Peoples community governance and decision making", + "Pacific Peoples community-based research", + "Pacific Peoples criminology", + "Pacific Peoples customary law", + "Pacific Peoples design practice and management", + "Pacific Peoples economics", + "Pacific Peoples finance", + "Pacific Peoples human geography and demography", + "Pacific Peoples legislation", + "Pacific Peoples management", + "Pacific Peoples marketing", + "Pacific Peoples not-for-profit social enterprises", + "Pacific Peoples perspectives", + "Pacific Peoples political participation and representation", + "Pacific Peoples politics", + "Pacific Peoples social impact and program evaluation", + "Pacific Peoples social work and social justice", + "Pacific Peoples sociological studies", + "Pacific Peoples sociology", + "Pacific Peoples tourism", + "Pacific Peoples urban and regional planning", + "Pacific Peoples, society and community not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other Indigenous data, methodologies and global Indigenous studies\"", + "value": [ + "Global Indigenous studies culture, language and history", + "Global Indigenous studies environmental knowledges and management", + "Global Indigenous studies health and wellbeing", + "Global Indigenous studies peoples, society and community", + "Global Indigenous studies sciences", + "Indigenous data and data technologies", + "Indigenous methodologies", + "Other Indigenous data, methodologies and global Indigenous studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other Indigenous studies\"", + "value": [ + "Other Indigenous studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Applied computing\"", + "value": [ + "Applications in arts and humanities", + "Applications in health", + "Applications in life sciences", + "Applications in physical sciences", + "Applications in social sciences and education", + "Spatial data and applications", + "Applied computing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Artificial intelligence\"", + "value": [ + "Artificial life and complex adaptive systems", + "Autonomous agents and multiagent systems", + "Evolutionary computation", + "Fuzzy computation", + "Intelligent robotics", + "Knowledge representation and reasoning", + "Modelling and simulation", + "Natural language processing", + "Planning and decision making", + "Satisfiability and optimisation", + "Speech production", + "Speech recognition", + "Artificial intelligence not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Computer vision and multimedia computation\"", + "value": [ + "Active sensing", + "Audio processing", + "Computational imaging", + "Computer vision", + "Image and video coding", + "Image processing", + "Multimodal analysis and synthesis", + "Pattern recognition", + "Video processing", + "Computer vision and multimedia computation not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Cybersecurity and privacy\"", + "value": [ + "Cryptography", + "Data and information privacy", + "Data security and protection", + "Digital forensics", + "Hardware security", + "Software and application security", + "System and network security", + "Cybersecurity and privacy not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Data management and data science\"", + "value": [ + "Data engineering and data science", + "Data mining and knowledge discovery", + "Data models, storage and indexing", + "Data quality", + "Database systems", + "Graph, social and multimedia data", + "Information extraction and fusion", + "Information retrieval and web search", + "Query processing and optimisation", + "Recommender systems", + "Stream and sensor data", + "Data management and data science not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Distributed computing and systems software\"", + "value": [ + "Cloud computing", + "Concurrent/parallel systems and technologies", + "Cyberphysical systems and internet of things", + "Dependable systems", + "Distributed systems and algorithms", + "Energy-efficient computing", + "High performance computing", + "Mobile computing", + "Networking and communications", + "Operating systems", + "Performance evaluation", + "Service oriented computing", + "Distributed computing and systems software not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Graphics, augmented reality and games\"", + "value": [ + "Computer aided design", + "Computer graphics", + "Entertainment and gaming", + "Interactive narrative", + "Procedural content generation", + "Serious games", + "Sound and music computing", + "Virtual and mixed reality", + "Graphics, augmented reality and games not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Human-centred computing\"", + "value": [ + "Accessible computing", + "Affective computing", + "Collaborative and social computing", + "Computing education", + "Fairness, accountability, transparency, trust and ethics of computer systems", + "Human-computer interaction", + "Information visualisation", + "Mixed initiative and human-in-the-loop", + "Pervasive computing", + "Social robotics", + "Human-centred computing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Information systems\"", + "value": [ + "Business process management", + "Decision support and group support systems", + "Information modelling, management and ontologies", + "Information security management", + "Information systems development methodologies and practice", + "Information systems education", + "Information systems for sustainable development and the public good", + "Information systems organisation and management", + "Information systems philosophy, research methods and theory", + "Information systems user experience design and development", + "Inter-organisational, extra-organisational and global information systems", + "Knowledge and information management", + "Information systems not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Library and information studies\"", + "value": [ + "Digital curation and preservation", + "Human information behaviour", + "Human information interaction and retrieval", + "Information governance, policy and ethics", + "Informetrics", + "Library studies", + "Open access", + "Organisation of information and knowledge resources", + "Recordkeeping informatics", + "Social and community informatics", + "Library and information studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Machine learning\"", + "value": [ + "Adversarial machine learning", + "Context learning", + "Deep learning", + "Neural networks", + "Reinforcement learning", + "Semi- and unsupervised learning", + "Machine learning not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Software engineering\"", + "value": [ + "Automated software engineering", + "Empirical software engineering", + "Formal methods for software", + "Programming languages", + "Requirements engineering", + "Software architecture", + "Software quality, processes and metrics", + "Software testing, verification and validation", + "Software engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Theory of computation\"", + "value": [ + "Coding, information theory and compression", + "Computational complexity and computability", + "Computational logic and formal languages", + "Concurrency theory", + "Data structures and algorithms", + "Numerical computation and mathematical software", + "Quantum computation", + "Theory of computation not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other information and computing sciences\"", + "value": [ + "Other information and computing sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Communication and media studies\"", + "value": [ + "Communication studies", + "Communication technology and digital media studies", + "Environmental communication", + "International and development communication", + "Journalism studies", + "Media industry studies", + "Media studies", + "Organisational, interpersonal and intercultural communication", + "Communication and media studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Cultural studies\"", + "value": [ + "Arts and cultural policy", + "Asian cultural studies", + "Consumption and everyday life", + "Cultural and creative industries", + "Cultural studies of agriculture, food and wine", + "Cultural studies of nation and region", + "Cultural theory", + "Culture, representation and identity", + "Environment and culture", + "Globalisation and culture", + "Migrant cultural studies", + "Multicultural, intercultural and cross-cultural studies", + "Postcolonial studies", + "Screen and media culture", + "Cultural studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Language studies\"", + "value": [ + "African languages", + "Central and Eastern European languages (incl. Russian)", + "Chinese languages", + "Comparative language studies", + "Early English languages", + "English as a second language", + "English language", + "French language", + "German language", + "Iberian languages", + "Indian languages", + "Indonesian languages", + "Italian language", + "Japanese language", + "Korean language", + "Latin and classical Greek languages", + "Middle Eastern languages", + "Other Asian languages (excl. South-East Asian)", + "Other European languages", + "South-East Asian languages (excl. Indonesian)", + "Translation and interpretation studies", + "Language studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Linguistics\"", + "value": [ + "Applied linguistics and educational linguistics", + "Child language acquisition", + "Computational linguistics", + "Corpus linguistics", + "Discourse and pragmatics", + "Historical, comparative and typological linguistics", + "Language documentation and description", + "Lexicography and semantics", + "Linguistic structures (incl. phonology, morphology and syntax)", + "Phonetics and speech science", + "Sociolinguistics", + "Linguistics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Literary studies\"", + "value": [ + "African literature", + "Australian literature (excl. Aboriginal and Torres Strait Islander literature)", + "Book history", + "British and Irish literature", + "Central and Eastern European literature (incl. Russian)", + "Children's literature", + "Comparative and transnational literature", + "Digital literature", + "Ecocriticism", + "Indian literature", + "Indonesian literature", + "Korean literature", + "Latin and classical Greek literature", + "Literary theory", + "Literature in Chinese", + "Literature in French", + "Literature in German", + "Literature in Italian", + "Literature in Japanese", + "Literature in Spanish and Portuguese", + "Middle Eastern literature", + "New Zealand literature (excl. Māori literature)", + "North American literature", + "Other Asian literature (excl. South-East Asian)", + "Other European literature", + "Other literatures in English", + "Popular and genre literature", + "Print culture", + "South-East Asian literature (excl. Indonesian)", + "Stylistics and textual analysis", + "Young adult literature", + "Literary studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other language, communication and culture\"", + "value": [ + "Other language, communication and culture not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Commercial law\"", + "value": [ + "Banking, finance and securities law", + "Commercial law", + "Corporations and associations law", + "Labour law", + "Not-for-profit law", + "Taxation law", + "Commercial law not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Environmental and resources law\"", + "value": [ + "Animal law", + "Climate change law", + "Environmental law", + "Mining, energy and natural resources law", + "Environmental and resources law not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"International and comparative law\"", + "value": [ + "Asian and Pacific law", + "Comparative law", + "Conflict of laws (incl. private international law)", + "European Union law", + "International arbitration", + "International criminal law", + "International humanitarian and human rights law", + "International trade and investment law", + "Ocean law and governance", + "Public international law", + "Space, maritime and aviation law", + "International and comparative law not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Law in context\"", + "value": [ + "Criminal law", + "Family law", + "Law and humanities", + "Law and religion", + "Law and society and socio-legal research", + "Law reform", + "Law, gender and sexuality (incl. feminist legal scholarship)", + "Law, science and technology", + "Legal education", + "Legal theory, jurisprudence and legal interpretation", + "Media and communication law", + "Medical and health law", + "Race, ethnicity and law", + "Sports law", + "Law in context not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Legal systems\"", + "value": [ + "Access to justice", + "Civil procedure", + "Criminal procedure", + "Legal institutions (incl. courts and justice systems)", + "Legal practice, lawyering and the legal profession", + "Litigation, adjudication and dispute resolution", + "Youth justice", + "Legal systems not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Private law and civil obligations\"", + "value": [ + "Contract law", + "Equity and trusts law", + "Intellectual property law", + "Property law (excl. intellectual property law)", + "Tort law", + "Private law and civil obligations not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Public law\"", + "value": [ + "Administrative law", + "Constitutional law", + "Domestic human rights law", + "Migration, asylum and refugee law", + "Military law and justice", + "Privacy and data rights", + "Welfare, insurance, disability and social security law", + "Public law not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other law and legal studies\"", + "value": [ + "Other law and legal studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Applied mathematics\"", + "value": [ + "Approximation theory and asymptotic methods", + "Biological mathematics", + "Calculus of variations, mathematical aspects of systems theory and control theory", + "Complex systems", + "Dynamical systems in applications", + "Financial mathematics", + "Mathematical methods and special functions", + "Operations research", + "Theoretical and applied mechanics", + "Applied mathematics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Mathematical physics\"", + "value": [ + "Algebraic structures in mathematical physics", + "Integrable systems (classical and quantum)", + "Mathematical aspects of classical mechanics, quantum mechanics and quantum information theory", + "Mathematical aspects of general relativity", + "Mathematical aspects of quantum and conformal field theory, quantum gravity and string theory", + "Statistical mechanics, physical combinatorics and mathematical aspects of condensed matter", + "Mathematical physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Numerical and computational mathematics\"", + "value": [ + "Experimental mathematics", + "Numerical analysis", + "Numerical solution of differential and integral equations", + "Optimisation", + "Numerical and computational mathematics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pure mathematics\"", + "value": [ + "Algebra and number theory", + "Algebraic and differential geometry", + "Category theory, k theory, homological algebra", + "Combinatorics and discrete mathematics (excl. physical combinatorics)", + "Group theory and generalisations", + "Lie groups, harmonic and Fourier analysis", + "Mathematical logic, set theory, lattices and universal algebra", + "Operator algebras and functional analysis", + "Ordinary differential equations, difference equations and dynamical systems", + "Partial differential equations", + "Real and complex functions (incl. several variables)", + "Topology", + "Pure mathematics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Statistics\"", + "value": [ + "Applied statistics", + "Biostatistics", + "Computational statistics", + "Forensic evaluation, inference and statistics", + "Large and complex data theory", + "Probability theory", + "Spatial statistics", + "Statistical data science", + "Statistical theory", + "Stochastic analysis and modelling", + "Time series and spatial modelling", + "Statistics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other mathematical sciences\"", + "value": [ + "Other mathematical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Applied ethics\"", + "value": [ + "Bioethics", + "Business ethics", + "Ethical use of new technology", + "Human rights and justice issues (excl. law)", + "Legal ethics", + "Medical ethics", + "Professional ethics", + "Applied ethics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"History and philosophy of specific fields\"", + "value": [ + "History and philosophy of engineering and technology", + "History and philosophy of law and justice", + "History and philosophy of medicine", + "History and philosophy of science", + "History and philosophy of the humanities", + "History and philosophy of the social sciences", + "History of ideas", + "History of philosophy", + "History and philosophy of specific fields not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Philosophy\"", + "value": [ + "Aesthetics", + "Critical theory", + "Decision theory", + "Environmental philosophy", + "Epistemology", + "Ethical theory", + "Hermeneutics", + "Logic", + "Metaphysics", + "Phenomenology", + "Philosophical psychology (incl. moral psychology and philosophy of action)", + "Philosophy of cognition", + "Philosophy of gender", + "Philosophy of language", + "Philosophy of mind (excl. cognition)", + "Philosophy of religion", + "Philosophy of science (excl. history and philosophy of specific fields)", + "Philosophy of specific cultures (incl. comparative philosophy)", + "Poststructuralism", + "Psychoanalytic philosophy", + "Social and political philosophy", + "Philosophy not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Religious studies\"", + "value": [ + "Christian studies", + "Comparative religious studies", + "Islamic studies", + "Jewish studies", + "Religion, society and culture", + "Studies in eastern religious traditions", + "Studies in religious traditions (excl. Eastern, Jewish, Christian and Islamic traditions)", + "Religious studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Theology\"", + "value": [ + "Theology", + "Theology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other philosophy and religious studies\"", + "value": [ + "Other philosophy and religious studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Astronomical sciences\"", + "value": [ + "Astrobiology", + "Astronomical instrumentation", + "Cosmology and extragalactic astronomy", + "Galactic astronomy", + "General relativity and gravitational waves", + "High energy astrophysics and galactic cosmic rays", + "Planetary science (excl. solar system and planetary geology)", + "Solar physics", + "Stellar astronomy and planetary systems", + "Astronomical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Atomic, molecular and optical physics\"", + "value": [ + "Atomic and molecular physics", + "Lasers and quantum electronics", + "Nonlinear optics and spectroscopy", + "Photonics, optoelectronics and optical communications", + "Terahertz physics", + "Atomic, molecular and optical physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Classical physics\"", + "value": [ + "Acoustics and acoustical devices; waves", + "Classical and physical optics", + "Electrostatics and electrodynamics", + "Thermodynamics and statistical physics", + "Classical physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Condensed matter physics\"", + "value": [ + "Condensed matter characterisation technique development", + "Condensed matter imaging", + "Condensed matter modelling and density functional theory", + "Electronic and magnetic properties of condensed matter; superconductivity", + "Soft condensed matter", + "Structural properties of condensed matter", + "Surface properties of condensed matter", + "Condensed matter physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medical and biological physics\"", + "value": [ + "Biological physics", + "Medical physics", + "Medical and biological physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Nuclear and plasma physics\"", + "value": [ + "Nuclear physics", + "Plasma physics; fusion plasmas; electrical discharges", + "Nuclear and plasma physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Particle and high energy physics\"", + "value": [ + "Astroparticle physics and particle cosmology", + "Field theory and string theory", + "Particle physics", + "Particle and high energy physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Quantum physics\"", + "value": [ + "Degenerate quantum gases and atom optics", + "Foundations of quantum mechanics", + "Quantum information, computation and communication", + "Quantum optics and quantum optomechanics", + "Quantum technologies", + "Quantum physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Space sciences\"", + "value": [ + "Astrodynamics and space situational awareness", + "Heliophysics and space weather", + "Mesospheric, thermospheric, ionospheric and magnetospheric physics", + "Solar system energetic particles", + "Solar system planetary science (excl. planetary geology)", + "Space instrumentation", + "Space sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Synchrotrons and accelerators\"", + "value": [ + "Accelerators", + "Instruments and techniques", + "Synchrotrons", + "Synchrotrons and accelerators not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other physical sciences\"", + "value": [ + "Complex physical systems", + "Other physical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Applied and developmental psychology\"", + "value": [ + "Child and adolescent development", + "Educational psychology", + "Forensic psychology", + "Industrial and organisational psychology (incl. human factors)", + "Psychological methodology, design and analysis", + "Psychology of ageing", + "Sport and exercise psychology", + "Testing, assessment and psychometrics", + "Applied and developmental psychology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Biological psychology\"", + "value": [ + "Behavioural genetics", + "Behavioural neuroscience", + "Cognitive neuroscience", + "Evolutionary psychological studies", + "Psychopharmacology", + "Psychophysiology", + "Social and affective neuroscience", + "Biological psychology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Clinical and health psychology\"", + "value": [ + "Clinical neuropsychology", + "Clinical psychology", + "Counselling psychology", + "Health psychology", + "Clinical and health psychology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Cognitive and computational psychology\"", + "value": [ + "Cognition", + "Decision making", + "Learning, motivation and emotion", + "Memory and attention", + "Psycholinguistics (incl. speech production and comprehension)", + "Sensory processes, perception and performance", + "Cognitive and computational psychology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Social and personality psychology\"", + "value": [ + "Community psychology", + "Gender psychology", + "Personality and individual differences", + "Psychology of religion", + "Social psychology", + "Social and personality psychology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other psychology\"", + "value": [ + "Other psychology not elsewhere classified" + ] + } + ], + "type": "computed" + } + }, + { + "dataType": "text", + "name": "willProjectContinue", + "constraints": [ + "Yes", + "No" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "summaryOfActivities", + "description": "", + "validate": "required,maxSize[300]" + }, + { + "dataType": "text", + "name": "summaryOfSuccesses", + "description": "", + "validate": "required,maxSize[300]" + }, + { + "dataType": "text", + "name": "summaryOfAnyChanges", + "description": "", + "validate": "required,maxSize[300]" + } + ], + "dataType": "list", + "name": "researchAndDevelopmentDetails" + }, + { + "dataType": "text", + "name": "conclusionsAndFutureDirections", + "validate": "maxSize[400]" + } + ], + "dataType": "list", + "name": "researchAndDevelopmentByOutcome" + }, + { + "dataType": "number", + "name": "noDaysConductingResearchAndDevelopment", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "defaultValue": 1, + "computed": { + "expression": "sum(researchAndDevelopmentByOutcome, \"numberOfDaysConducted\")" + } + }, + { + "dataType": "number", + "decimalPlaces": 3, + "name": "noDaysConductingResearchAndDevelopmentInvoiced", + "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "noDaysConductingResearchAndDevelopment", + "type": "computed", + "decimalPlaces": 3 + }, + "rule": "max" + } + ], + "defaultValue": "" + }, + { + "dataType": "text", + "name": "totalInvoicedResearchAndDevelopmentMismatched", + "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", + "validate": "maxSize[400],required", + "behaviour": [ + { + "condition": "+noDaysConductingResearchAndDevelopmentInvoiced < +noDaysConductingResearchAndDevelopment", + "type": "enable" + } + ] + }, + { + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" + }, + { + "dataType": "image", + "name": "photographicEvidence" + }, + { + "dataType": "boolean", + "name": "dataUploaded", + "description": "" + }, + { + "name": "projectAssuranceDetails", + "dataType": "text", + "validate": "required,maxSize[5000]" + }, + { + "dataType": "list", + "name": "assuranceDocuments", + "columns": [ + { + "dataType": "document", + "name": "attachments", + "description": "Please attach any Evidence of Service Delivery here." + } + ] + } + ], + "modelName": "NHT - Research and development", + "title": "Research and/or Development", + "viewModel": [ + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Participation information

" + } + ] + }, + { + "disableTableUpload": true, + "columns": [ + { + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" + }, + { + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "firstNationIndividualNumber", + "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } + ], + "source": "participationInformationTableDmp", + "type": "table" + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(i) Total number of days conducting research and development for this reporting period", + "source": "noDaysConductingResearchAndDevelopment", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(ii) Total number of days conducting research and development invoiced for this reporting period", + "source": "noDaysConductingResearchAndDevelopmentInvoiced", + "type": "number" + } + ] + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "If the total invoiced is different to the total completed, please provide the reason", + "source": "totalInvoicedResearchAndDevelopmentMismatched", + "type": "textarea", + "rows": 4, + "placeholder": "" + } + ] + }, + { + "addRowText": "Add a new research/development", + "userAddedRows": true, + "source": "researchAndDevelopmentByOutcome", + "type": "repeat", + "items": [ + { + "type": "row", + "items": [ + { + "css": "span3", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s does this activity relate to?" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "investmentPriorities2", + "preLabel": "Which investment priority/ies does this activity relate to?", + "type": "select2Many" + } + ] + } + ] + }, + { + "css": "span3", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "invoicingThisActivity", + "preLabel": "Are you invoicing for this activity in this reporting period?", + "type": "selectOne" + } + ] + } + ] + } + ] + }, + { + "type": "row", + "css": "border-bottom", + "items": [ + { + "css": "span3", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "researchOrDevelopment", + "type": "selectOne", + "preLabel": "Research and/or Development" + } + ] + } + ] + }, + { + "css": "span3", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "numberOfDaysConducted", + "type": "number", + "preLabel": "Number of days conducting research and development" + } + ] + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Where research has been undertaken (if applicable)", + "source": "sitesResearchAndDevelopment", + "type": "feature" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedLengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Actual research area undertaken", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "lengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 + } + ] + } + ] + } + ] + }, + { + "type": "section", + "items": [ + { + "columns": [ + { + "width": "10%", + "title": "Date research and/or development started", + "source": "resAndDevStartDate", + "type": "date" + }, + { + "width": "10%", + "title": "Date research and/or development finished", + "source": "resAndDevFinishDate", + "type": "date" + }, + { + "width": "10%", + "source": "anzsrcDivision", + "title": "ANZSRC Classification – Division", + "type": "selectOne" + }, + { + "width": "10%", + "source": "anzsrcGroup", + "title": "ANZSRC Classification – Group", + "type": "selectOne" + }, + { + "width": "10%", + "source": "anzsrcFields", + "title": "ANZSRC Classification – Fields", + "type": "selectOne" + }, + { + "width": "15%", + "source": "summaryOfActivities", + "title": "Summary of activities and research outputs delivered in this reporting period", + "type": "textarea" + }, + { + "width": "15%", + "source": "summaryOfSuccesses", + "title": "Summary of successes or failures", + "type": "textarea" + }, + { + "width": "15%", + "source": "summaryOfAnyChanges", + "title": "Summary of any changes to the research approach resulting from successes/failures", + "type": "textarea" + }, + { + "width": "5%", + "source": "willProjectContinue", + "title": "Will this research and development project continue?", + "type": "selectOne" + } + ], + "userAddedRows": true, + "addRowText": "Add a row", + "source": "researchAndDevelopmentDetails", + "title": "Each new research and/or development initiative should be set up as a separate component in MERIT, with all relevant detail recorded as far as practicable in the MERI plan. Where additional information cannot be captured in the MERI plan, this must be attached to the project in MERIT.

Reported activities and outputs are based on the aims of the research and/or development that are outlined in the MERI plan and other supporting documentation. Research and/or Development projects may cover multiple investment priorities and may require additional related project services such as Flora Survey, Fauna Survey, and Synthesising and Finalising Baseline Data.
", + "type": "table" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Conclusions and future directions ", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "conclusionsAndFutureDirections" + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" + }, + { + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" + } + ] + } + ] + }, + "modelName": null, + "templateName": "nhtReasearchAndDevelopment", + "optional": true, + "optionalQuestionText": null, + "title": null, + "collapsibleHeading": null, + "name": "NHT - Research and development", + "description": null + }, { "collapsedByDefault": false, "template": { @@ -23493,6 +27853,7 @@ { "dataType": "number", "name": "totalAreaWeedsTreatedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -23525,6 +27886,7 @@ { "dataType": "number", "name": "totalAreaWeedsTreatedFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -23557,6 +27919,7 @@ { "dataType": "number", "name": "totalLengthWeedsTreatedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -23589,6 +27952,7 @@ { "dataType": "number", "name": "totalLengthWeedsTreatedFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -24566,6 +28930,7 @@ { "dataType": "number", "name": "totalAreaWeedsTreatedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -24598,6 +28963,7 @@ { "dataType": "number", "name": "totalAreaWeedsTreatedFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -25534,6 +29900,7 @@ { "dataType": "number", "name": "totalAmountSeedsCuttingsCollected", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -25563,6 +29930,7 @@ { "dataType": "number", "name": "totalDaysSeedsCuttingsCollected", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -25592,6 +29960,7 @@ { "dataType": "number", "name": "totalDaysPropagating", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -25621,6 +29990,7 @@ { "dataType": "number", "name": "totalPlantsPropagated", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -26818,6 +31188,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -27820,6 +32191,7 @@ { "dataType": "number", "name": "totalAreaSitePreparation", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -27853,6 +32225,7 @@ "dataType": "number", "decimalPlaces": 3, "name": "totalLengthSitePreparation", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "computed": { "expression": "sum(sitePreparationDetailsControlled, \"lengthTreatedKm\")" @@ -28828,6 +33201,7 @@ { "dataType": "number", "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -28857,6 +33231,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -29836,6 +34211,7 @@ { "dataType": "number", "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -29865,6 +34241,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -30796,6 +35173,7 @@ { "dataType": "number", "name": "totalAnnualFtes", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -31488,6 +35866,7 @@ { "dataType": "number", "name": "totalNumberBaselineDatasets", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -32277,6 +36656,7 @@ { "dataType": "number", "name": "totalNumberInterventionsInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -32306,6 +36686,7 @@ { "dataType": "number", "name": "totalNumberInterventionsFollowUp", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -33365,6 +37746,7 @@ { "dataType": "number", "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -33394,6 +37776,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -34545,6 +38928,7 @@ { "dataType": "number", "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -34574,6 +38958,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { diff --git a/forms/nht/procurementsOutputReport.json b/forms/nht/procurementsOutputReport.json index 6522ae000..0a438dd38 100644 --- a/forms/nht/procurementsOutputReport.json +++ b/forms/nht/procurementsOutputReport.json @@ -27,7 +27,7 @@ "deleteUnmatchedExistingRows": true, "addUnmatchedNewRows": true, "keys": [ - "outcomeStatement" + "code" ] } }, @@ -35,6 +35,10 @@ { "target": "projectOutcomes", "mapping": [ + { + "target": "code", + "source-path": "code" + }, { "target": "outcomeStatement", "source-path": "description" @@ -65,10 +69,14 @@ "dataType": "list", "name": "projectOutcomes", "columns": [ + { + "dataType": "text", + "name": "code" + }, { "dataType": "text", "name": "outcomeStatement", - "validate": "required,maxSize[500]" + "validate": "required" }, { "dataType": "text", @@ -288,21 +296,19 @@ { "source": "projectOutcomes", "type": "table", - "userAddedRows": true, + "userAddedRows": false, + "disableTableUpload": true, "columns": [ { - "source": "", - "type": "literal", - "width": "5%", - "preLabel": { - "computed": "\\'No. \\' || (index + 1)" - }, + "source": "code", + "type": "readonlyText", "title": "Outcome No." }, { "type": "textarea", "source": "outcomeStatement", - "title": "Outcome", + "title": "Short Term Outcome", + "readonly": true, "rows": 5, "width": "45%" }, @@ -993,6 +999,7 @@ { "dataType": "number", "name": "totalCaptiveBreedingEstablished", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -1022,6 +1029,7 @@ { "dataType": "number", "name": "totalCaptiveBreedingMaintained", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -1909,6 +1917,7 @@ { "dataType": "number", "name": "totalMaterialsPublished", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "defaultValue": 1, @@ -2503,7 +2512,20 @@ "Grazing", "Fisheries", "Aquaculture", - "Environmental" + "Environmental", + "First Nations Organisation", + "First Nations Rangers", + "Traditional Owners", + "Individual", + "Community", + "School", + "Academic/Research Institution", + "Not for profit", + "Commercial entity", + "Australian Government Department", + "Local Government", + "State and Territory Government", + "Other" ], "validate": "required" }, @@ -2550,6 +2572,7 @@ { "dataType": "number", "name": "totalNumberEngagementHeld", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "defaultValue": 1, @@ -3305,6 +3328,7 @@ { "dataType": "number", "name": "totalStructuresInstalled", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "decimalPlaces": 0, "validate": "min[0]", "computed": { @@ -3334,6 +3358,7 @@ { "dataType": "number", "name": "totalLengthStructuresInstalled", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "decimalPlaces": 3, "validate": "min[0]", "computed": { @@ -3366,6 +3391,7 @@ { "dataType": "number", "name": "totalAreaStructuresInstalled", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "decimalPlaces": 3, "validate": "min[0]", "computed": { @@ -4290,6 +4316,7 @@ { "dataType": "number", "name": "totalAreaPestAnimalsTreatedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "decimalPlaces": 3, "computed": { "expression": "sum(areasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" @@ -4321,6 +4348,7 @@ { "dataType": "number", "name": "totalAreaPestAnimalsTreatedFollowUp", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -4353,6 +4381,7 @@ { "dataType": "number", "name": "totalLengthPestAnimalsTreatedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -5296,6 +5325,7 @@ { "dataType": "number", "name": "totalAreaDebrisRemovedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -5328,6 +5358,7 @@ { "dataType": "number", "name": "totalLengthDebrisRemovedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -5360,6 +5391,7 @@ { "dataType": "number", "name": "totalAreaDebrisRemovedFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -6084,57 +6116,76 @@ } ], "dataType": "list", - "name": "participationInformationTableErm" + "name": "participationInformationTableDmp" }, { "columns": [ { + "name": "relatedOutcomes", "dataType": "text", - "name": "initialOrFollowup", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, + { + "dataType": "text", + "name": "invoicingThisActivity", "constraints": [ - "Initial", - "Follow-up" + "Yes", + "No" ], "validate": "required" }, - { - "dataType": "number", - "name": "numberInstalled", - "validate": "required,min[0]" - }, { "dataType": "feature", - "name": "sitesOfErosionControl", - "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + "name": "sitesDevelopingManagementPlans", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping.", + "validate": "required" }, { "computed": { - "expression": "$geom.areaHa(sitesOfErosionControl)" + "expression": "$geom.areaHa(sitesDevelopingManagementPlans)" }, "dataType": "number", "name": "calculatedAreaTreatedHa", "units": "ha", "decimalPlaces": 3 }, - { - "computed": { - "expression": "$geom.lengthKm(sitesOfErosionControl)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKm", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKm > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, { "defaultValue": { "type": "computed", @@ -6157,7 +6208,7 @@ "validate": "required", "behaviour": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", "type": "if" } ] @@ -6180,274 +6231,145 @@ "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", "behaviour": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", "type": "if" } ] }, + { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKm" - }, "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 - }, - { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "outcomes" - } + "name": "areaInvoicedHa", + "units": "ha", + "decimalPlaces": 3, + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "areaTreatedHa", + "type": "computed" + }, + "rule": "max" } - } + ] }, { - "name": "investmentPriorities2", "dataType": "text", - "description": "", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.investmentPriorities" - } + "name": "invoicedNotActualReason", + "behaviour": [ + { + "condition": "roundTo(areaTreatedHa, 2) != roundTo(areaInvoicedHa, 2)", + "type": "visible" } - } + ], + "constraints": [ + "Work was undertaken over a greater area than will be invoiced for", + "Other" + ], + "validate": "required" }, { "dataType": "text", - "name": "otherInvestmentPriority", + "name": "invoicedNotActualComments", "behaviour": [ { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" + "condition": "\"Other\" == invoicedNotActualReason", + "type": "visible" } - ] - }, - { - "dataType": "text", - "name": "invoicingThisActivity", - "constraints": [ - "Yes", - "No" ], - "validate": "required" + "validate": "required,maxSize[300]" }, + { "columns": [ { - "dataType": "date", - "name": "dateFrom", - "validate": "required" - }, - { - "dataType": "date", - "name": "dateTo", - "validate": [ - { - "rule": "required" - }, - { - "rule": "future", - "param": { - "expression": "formatDateForValidation(dateFrom)", - "type": "computed" - } - } - ] + "dataType": "text", + "name": "managementPlanName", + "description": "", + "validate": "required,maxSize[100]" }, { "dataType": "text", - "name": "treatmentObjective", - "validate": "required,maxSize[300]" + "name": "newOrRevisedPlan", + "constraints": [ + "New", + "Revised" + ], + "validate": "required" }, { "dataType": "text", - "name": "erosionManagementMethod", + "name": "managementPlan", "constraints": [ - "Alternative watering point", - "Erosion control structures", - "Farming practice change", - "Fencing", - "Revegetation", - "Terracing", - "Vegetated waterway (bioswale)", - "Windbreaks", - "Other" + "Administrative areas (e.g. LGA)", + "Catchments", + "Culturally important sites", + "Farms", + "Heritage Sites", + "Projects and Project Sites, including project logics", + "Ramsar Sites", + "Reserves, Parks, or other protected areas", + "Threatened Ecological Communities", + "Threatened Species", + "Other entities as agreed to by the Department" ], "validate": "required" }, { "dataType": "text", - "name": "otherErosionManagementMethod", + "name": "otherManagementPlan", + "description": "", "behaviour": [ { - "condition": "erosionManagementMethod == \"Other\"", + "condition": "managementPlan == \"Other entities as agreed to by the Department\"", "type": "enable" } ], - "validate": "required,max[300]" - }, - { - "dataType": "number", - "name": "numberDaysCollecting", - "validate": "required,min[0]" + "validate": "required,maxSize[200]" }, { "dataType": "text", - "name": "threatenedEcologicalCommunity", - "validate": "maxSize[300]" + "name": "speciesSiteCovered", + "description": "This free text field allows multiple species and/or TECs to be entered. For Species: Use Scientific names with (common name in brackets), TECs should be written as listed in EPBC. Species or TECs should be separated by commas.", + "validate": "required,maxSize[300]" } ], "dataType": "list", - "name": "erosionManagementDetails", - "minSize": 0 - } - ], - "dataType": "list", - "name": "erosionManagementAreasControlled" - }, - { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "outcomes" - } - } - } - }, - { - "name": "investmentPriorities2", - "dataType": "text", - "description": "", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.investmentPriorities" - } - } - } - }, - { - "dataType": "text", - "name": "otherInvestmentPriority", - "behaviour": [ - { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" - } - ] - }, - { - "dataType": "text", - "name": "invoicingThisActivity", - "constraints": [ - "Yes", - "No" - ], - "validate": "required" - }, - { - "dataType": "number", - "name": "totalLengthStreamCoastlineInitial", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(erosionManagementAreasControlled, \"initialOrFollowup == 'Initial' ? lengthTreatedKm : 0\")" - } - }, - { - "dataType": "number", - "decimalPlaces": 3, - "name": "totalLengthStreamCoastlineInitialInvoice", - "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - }, - { - "param": { - "expression": "totalLengthStreamCoastlineInitial", - "type": "computed", - "decimalPlaces": 3 - }, - "rule": "max" - } - ], - "defaultValue": "" - }, - { - "dataType": "number", - "name": "totalLengthStreamCoastlineFollowup", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(erosionManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? lengthTreatedKm : 0\")" - } - }, - { - "dataType": "number", - "decimalPlaces": 3, - "name": "totalLengthStreamCoastlineInvoicedFollowup", - "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" + "allowRowDelete": "false", + "name": "managementPlansDetails" }, { - "param": { - "expression": "totalLengthStreamCoastlineFollowup", - "type": "computed", - "decimalPlaces": 3 - }, - "rule": "max" + "dataType": "number", + "name": "numberOfPlanDevelopedForOutcome", + "decimalPlaces": 0, + "computed": { + "expression": "sum(managementPlansDetails, \"newOrRevisedPlan ? 1 : 0\")" + } } ], - "defaultValue": "" + "dataType": "list", + "name": "managementPlansByOutcome" }, { "dataType": "number", - "name": "totalAreaErosionControlInitial", + "name": "numberOfPlansDeveloped", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 3, + "decimalPlaces": 0, + "defaultValue": 1, "computed": { - "expression": "sum(erosionManagementAreasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" + "expression": "sum(managementPlansByOutcome, \"numberOfPlanDevelopedForOutcome\")" } }, { "dataType": "number", "decimalPlaces": 3, - "name": "totalAreaErosionControlInvoicedInitial", + "name": "numberOfPlansDevelopedInvoiced", "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", "validate": [ { @@ -6458,7 +6380,7 @@ }, { "param": { - "expression": "totalAreaErosionControlInitial", + "expression": "numberOfPlansDeveloped", "type": "computed", "decimalPlaces": 3 }, @@ -6469,17 +6391,18 @@ }, { "dataType": "number", - "name": "totalAreaErosionControlFollowup", + "name": "totalAreaPlansDeveloped", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { - "expression": "sum(erosionManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? areaTreatedHa : 0\")" + "expression": "sum(managementPlansByOutcome, \"areaTreatedHa\")" } }, { "dataType": "number", "decimalPlaces": 3, - "name": "totalAreaErosionControlInvoicedFollowup", + "name": "totalAreaPlansDevelopedInvoiced", "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", "validate": [ { @@ -6490,7 +6413,7 @@ }, { "param": { - "expression": "totalAreaErosionControlFollowup", + "expression": "totalAreaPlansDeveloped", "type": "computed", "decimalPlaces": 3 }, @@ -6501,12 +6424,12 @@ }, { "dataType": "text", - "name": "totalInvoicedErosionMismatched", + "name": "totalInvoicedPlansDevelopedMismatched", "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", - "validate": "maxSize[400],required,min[0]", + "validate": "maxSize[400],required", "behaviour": [ { - "condition": "+totalLengthStreamCoastlineInitialInvoice < +totalLengthStreamCoastlineInitial or +totalLengthStreamCoastlineInvoicedFollowup < +totalLengthStreamCoastlineFollowup or +totalAreaErosionControlInvoicedInitial < +totalAreaErosionControlInitial or +totalAreaErosionControlInvoicedFollowup < +totalAreaErosionControlFollowup", + "condition": "+numberOfPlansDevelopedInvoiced < +numberOfPlansDeveloped or +totalAreaPlansDevelopedInvoiced < totalAreaPlansDeveloped", "type": "enable" } ] @@ -6542,8 +6465,8 @@ ] } ], - "modelName": "NHT - Erosion Management", - "title": "Erosion Management", + "modelName": "Management plan development", + "title": "Developing Management Plans", "viewModel": [ { "type": "row", @@ -6604,7 +6527,7 @@ "type": "textarea" } ], - "source": "participationInformationTableErm", + "source": "participationInformationTableDmp", "type": "table" }, { @@ -6627,8 +6550,8 @@ "type": "row", "items": [ { - "preLabel": "(vii) Total area (ha) of erosion control (initial) for this reporting period", - "source": "totalAreaErosionControlInitial", + "preLabel": "(i) Total number of management plans developed for this reporting period", + "source": "numberOfPlansDeveloped", "type": "number" } ] @@ -6637,72 +6560,11 @@ "type": "row", "items": [ { - "preLabel": "(viii) Total area (ha) of erosion control (initial) invoiced for this reporting period", - "source": "totalAreaErosionControlInvoicedInitial", - "type": "number", - "displayOptions": { - "removeTrailingZeros": false - } - } - ] - } - ] - }, - { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(ix) Total area (ha) of erosion control (follow up) for this reporting period", - "source": "totalAreaErosionControlFollowup", + "preLabel": "(ii) Total number of management plans developed invoiced for this reporting period", + "source": "numberOfPlansDevelopedInvoiced", "type": "number" } ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "(x) Total area (ha) of erosion control invoiced (follow up) for this reporting period", - "source": "totalAreaErosionControlInvoicedFollowup", - "type": "number", - "displayOptions": { - "removeTrailingZeros": false - } - } - ] - } - ] - }, - { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(iii) Total length (km) of stream/coastline treated for erosion (initial) for this reporting period", - "source": "totalLengthStreamCoastlineInitial", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "(iv) Total length (km) of stream/coastline treated for erosion (initial) invoiced for this reporting period", - "source": "totalLengthStreamCoastlineInitialInvoice", - "type": "number", - "displayOptions": { - "removeTrailingZeros": false - } - } - ] } ] }, @@ -6714,8 +6576,8 @@ "type": "row", "items": [ { - "preLabel": "(v) Total length (km) of stream/coastline treated for erosion (follow up) for this reporting period", - "source": "totalLengthStreamCoastlineFollowup", + "preLabel": "(iii) Total area (ha) covered by management plan for this reporting period", + "source": "totalAreaPlansDeveloped", "type": "number" } ] @@ -6724,8 +6586,8 @@ "type": "row", "items": [ { - "preLabel": "(vi) Total length (km) of stream/coastline treated for erosion (follow up) invoiced for this reporting period", - "source": "totalLengthStreamCoastlineInvoicedFollowup", + "preLabel": "(iv) Total area (ha) covered by management plan invoiced for this reporting period", + "source": "totalAreaPlansDevelopedInvoiced", "type": "number", "displayOptions": { "removeTrailingZeros": false @@ -6742,7 +6604,7 @@ "items": [ { "preLabel": "If the total invoiced is different to the total completed, please provide the reason", - "source": "totalInvoicedErosionMismatched", + "source": "totalInvoicedPlansDevelopedMismatched", "type": "textarea", "rows": 4, "placeholder": "" @@ -6750,9 +6612,9 @@ ] }, { - "addRowText": "Add a new erosion control area", + "addRowText": "Add a new management plan", "userAddedRows": true, - "source": "erosionManagementAreasControlled", + "source": "managementPlansByOutcome", "type": "repeat", "items": [ { @@ -6820,46 +6682,8 @@ "type": "row", "items": [ { - "source": "initialOrFollowup", - "preLabel": "Initial or follow-up control?", - "type": "selectOne" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "numberInstalled", - "preLabel": "Number of erosion control structures installed", - "type": "number" - } - ] - } - ] - } - ] - }, - { - "type": "row", - "css": "border-bottom", - "items": [ - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Site/s where erosion has been controlled", - "source": "sitesOfErosionControl", + "preLabel": "Site/s covered by management plan/s", + "source": "sitesDevelopingManagementPlans", "type": "feature" } ] @@ -6877,19 +6701,6 @@ } ] }, - { - "type": "row", - "items": [ - { - "source": "calculatedLengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, { "type": "row", "items": [ @@ -6910,7 +6721,7 @@ "type": "row", "items": [ { - "preLabel": "Actual area (ha) / length (km) of erosion control", + "preLabel": "Actual area (ha) covered by management plan/s", "source": "areaTreatedHa", "type": "number", "displayOptions": { @@ -6919,18 +6730,6 @@ } ] }, - { - "type": "row", - "items": [ - { - "source": "lengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, { "type": "row", "items": [ @@ -6953,39 +6752,30 @@ ] } ] - } - ] - }, - { - "columns": [ - { - "title": "Date from", - "source": "dateFrom", - "type": "date", - "width": "15%" }, { - "title": "Date to", - "source": "dateTo", - "type": "date", - "width": "15%" - }, - { - "width": "20%", - "source": "treatmentObjective", - "title": "Treatment objective", - "type": "textarea" - }, - { - "width": "20%", "type": "col", - "title": "Type of treatment being used", + "css": "span3 col-border-right", "items": [ { "type": "row", "items": [ { - "source": "erosionManagementMethod", + "preLabel": "Invoiced area (ha) covered by the plan/s", + "source": "areaInvoicedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for invoiced amount being different to actual amount", + "source": "invoicedNotActualReason", "type": "selectOne" } ] @@ -6994,30 +6784,75 @@ "type": "row", "items": [ { - "source": "otherErosionManagementMethod", - "placeholder": "Type of treatment method", - "type": "textarea" + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "invoicedNotActualComments", + "type": "textarea", + "rows": 5 } ] } ] - }, - { - "width": "10%", - "source": "numberDaysCollecting", - "title": "Number of days collecting seeds/propagating plants ", - "type": "number" - }, + } + ] + }, + { + "type": "section", + "items": [ { - "width": "20%", - "source": "threatenedEcologicalCommunity", - "title": "Threatened Ecological Community (TEC) benefitting from this activity", - "type": "textarea" + "columns": [ + { + "width": "25%", + "source": "managementPlanName", + "title": "Name of management plan", + "type": "text" + }, + { + "width": "10%", + "source": "newOrRevisedPlan", + "title": "New or revised plan", + "type": "selectOne" + }, + { + "width": "25%", + "title": "Type of management plan*", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "managementPlan", + "type": "select2" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Type of management plan, if other", + "source": "otherManagementPlan", + "type": "textarea" + } + ] + } + ] + }, + { + "width": "30%", + "source": "speciesSiteCovered", + "title": "Species/Threatened ecological communities/Ramsar Sites/Heritage Sites covered in plan", + "type": "textarea" + } + ], + "userAddedRows": false, + "disableTableUpload": true, + "addRowText": "Add a new management plan", + "source": "managementPlansDetails", + "title": "Each plan must be reported as a new section.", + "type": "table" } - ], - "userAddedRows": true, - "source": "erosionManagementDetails", - "type": "table" + ] } ] }, @@ -7086,12 +6921,12 @@ ] }, "modelName": null, - "templateName": "nhtErosionManagement", + "templateName": "nhtManagementPlanDevelopment", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Erosion Management", + "name": "Management plan development", "description": null }, { @@ -7205,39 +7040,32 @@ } ], "dataType": "list", - "name": "participationInformationTableEmp" + "name": "participationInformationTableErm" }, { "columns": [ { "dataType": "text", - "name": "newOrMaintained", + "name": "initialOrFollowup", "constraints": [ "Initial", - "Maintained" + "Follow-up" ], "validate": "required" }, { "dataType": "number", - "name": "numberOfPestFreeEnclosures", - "validate": "required" - }, - { - "dataType": "number", - "name": "daysSpentOnMaintenanceOfEnclosures", - "description": "Number of days should be calculated as number of days by number of people (eg. 4.5 days by 3 people is 13.5 days).", - "validate": "required, min[0]" + "name": "numberInstalled", + "validate": "required,min[0]" }, { "dataType": "feature", - "name": "sitesOfPestAnimalFreeEnclosure", - "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping.", - "validate": "required" + "name": "sitesOfErosionControl", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." }, { "computed": { - "expression": "$geom.areaHa(sitesOfPestAnimalFreeEnclosure)" + "expression": "$geom.areaHa(sitesOfErosionControl)" }, "dataType": "number", "name": "calculatedAreaTreatedHa", @@ -7246,7 +7074,7 @@ }, { "computed": { - "expression": "$geom.lengthKm(sitesOfPestAnimalFreeEnclosure)" + "expression": "$geom.lengthKm(sitesOfErosionControl)" }, "dataType": "number", "name": "calculatedLengthTreatedKm", @@ -7285,7 +7113,7 @@ "validate": "required", "behaviour": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", "type": "if" } ] @@ -7308,7 +7136,7 @@ "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", "behaviour": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", "type": "if" } ] @@ -7323,40 +7151,6 @@ "units": "km", "decimalPlaces": 3 }, - { - "columns": [ - { - "dataType": "species", - "name": "protectedSpecies", - "dwcAttribute": "scientificName", - "description": "The threatened species protected by the enclosure.", - "validate": "required" - }, - { - "dataType": "species", - "name": "targetFeralSpecies", - "dwcAttribute": "scientificName", - "description": "", - "validate": "required" - }, - { - "dataType": "text", - "name": "individualsOrPopulations", - "constraints": [ - "Individuals", - "Populations" - ], - "validate": "required" - }, - { - "dataType": "number", - "name": "numberOfPopulationsOrIndividualsProtected", - "validate": "required,min[0]" - } - ], - "dataType": "list", - "name": "speciesProtected" - }, { "name": "relatedOutcomes", "dataType": "text", @@ -7407,25 +7201,146 @@ "No" ], "validate": "required" + }, + { + "columns": [ + { + "dataType": "date", + "name": "dateFrom", + "validate": "required" + }, + { + "dataType": "date", + "name": "dateTo", + "validate": [ + { + "rule": "required" + }, + { + "rule": "future", + "param": { + "expression": "formatDateForValidation(dateFrom)", + "type": "computed" + } + } + ] + }, + { + "dataType": "text", + "name": "treatmentObjective", + "validate": "required,maxSize[300]" + }, + { + "dataType": "text", + "name": "erosionManagementMethod", + "constraints": [ + "Alternative watering point", + "Erosion control structures", + "Farming practice change", + "Fencing", + "Revegetation", + "Terracing", + "Vegetated waterway (bioswale)", + "Windbreaks", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "otherErosionManagementMethod", + "behaviour": [ + { + "condition": "erosionManagementMethod == \"Other\"", + "type": "enable" + } + ], + "validate": "required,max[300]" + }, + { + "dataType": "number", + "name": "numberDaysCollecting", + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "threatenedEcologicalCommunity", + "validate": "maxSize[300]" + } + ], + "dataType": "list", + "name": "erosionManagementDetails", + "minSize": 0 } ], "dataType": "list", - "name": "enclosureDetails" + "name": "erosionManagementAreasControlled" + }, + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, + { + "dataType": "text", + "name": "invoicingThisActivity", + "constraints": [ + "Yes", + "No" + ], + "validate": "required" }, { "dataType": "number", - "name": "totalNoPestFreeSurveyEstablished", + "name": "totalLengthStreamCoastlineInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 0, - "defaultValue": 0, + "decimalPlaces": 3, "computed": { - "expression": "sum(enclosureDetails, \"newOrMaintained == 'Initial' ? numberOfPestFreeEnclosures : 0\")" + "expression": "sum(erosionManagementAreasControlled, \"initialOrFollowup == 'Initial' ? lengthTreatedKm : 0\")" } }, { "dataType": "number", - "name": "totalNoPestFreeSurveyEstablishedInvoiced", - "decimalPlaces": 0, + "decimalPlaces": 3, + "name": "totalLengthStreamCoastlineInitialInvoice", "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", "validate": [ { @@ -7436,8 +7351,9 @@ }, { "param": { - "expression": "totalNoPestFreeSurveyEstablished", - "type": "computed" + "expression": "totalLengthStreamCoastlineInitial", + "type": "computed", + "decimalPlaces": 3 }, "rule": "max" } @@ -7446,19 +7362,18 @@ }, { "dataType": "number", - "name": "totalNoPestFreeSurveyMaintained", - "validate": "required,min[0]", - "decimalPlaces": 0, - "defaultValue": 0, + "name": "totalLengthStreamCoastlineFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, "computed": { - "expression": "sum(enclosureDetails, \"newOrMaintained == 'Maintained' ? numberOfPestFreeEnclosures : 0\")" + "expression": "sum(erosionManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? lengthTreatedKm : 0\")" } }, { "dataType": "number", - "name": "totalNoPestFreeSurveyMaintainedInvoiced", - "decimalPlaces": 0, - "defaultValue": "", + "decimalPlaces": 3, + "name": "totalLengthStreamCoastlineInvoicedFollowup", "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", "validate": [ { @@ -7469,26 +7384,29 @@ }, { "param": { - "expression": "totalNoPestFreeSurveyMaintained", - "type": "computed" + "expression": "totalLengthStreamCoastlineFollowup", + "type": "computed", + "decimalPlaces": 3 }, "rule": "max" } - ] + ], + "defaultValue": "" }, { "dataType": "number", - "name": "totalNoDaysMaintainingPestFree", + "name": "totalAreaErosionControlInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 0, + "decimalPlaces": 3, "computed": { - "expression": "sum(enclosureDetails, \"daysSpentOnMaintenanceOfEnclosures\")" + "expression": "sum(erosionManagementAreasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" } }, { "dataType": "number", - "name": "totalNoDaysMaintainingPestFreeInvoiced", - "decimalPlaces": 0, + "decimalPlaces": 3, + "name": "totalAreaErosionControlInvoicedInitial", "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", "validate": [ { @@ -7499,8 +7417,9 @@ }, { "param": { - "expression": "totalNoDaysMaintainingPestFree", - "type": "computed" + "expression": "totalAreaErosionControlInitial", + "type": "computed", + "decimalPlaces": 3 }, "rule": "max" } @@ -7509,19 +7428,18 @@ }, { "dataType": "number", - "name": "totalAreaPestFreeSurveyInitial", + "name": "totalAreaErosionControlFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, - "defaultValue": 0, "computed": { - "expression": "sum(enclosureDetails, \"areaTreatedHa\")" + "expression": "sum(erosionManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? areaTreatedHa : 0\")" } }, { "dataType": "number", - "name": "totalAreaPestFreeSurveyInitialInvoiced", "decimalPlaces": 3, - "defaultValue": "", + "name": "totalAreaErosionControlInvoicedFollowup", "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", "validate": [ { @@ -7532,22 +7450,23 @@ }, { "param": { - "expression": "totalAreaPestFreeSurveyInitial", + "expression": "totalAreaErosionControlFollowup", "type": "computed", "decimalPlaces": 3 }, "rule": "max" } - ] + ], + "defaultValue": "" }, { "dataType": "text", - "name": "totalInvoicedPestFreeMismatched", + "name": "totalInvoicedErosionMismatched", "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", - "validate": "maxSize[400],required", + "validate": "maxSize[400],required,min[0]", "behaviour": [ { - "condition": "+totalNoPestFreeSurveyEstablishedInvoiced < +totalNoPestFreeSurveyEstablished or +totalNoPestFreeSurveyMaintainedInvoiced < +totalNoPestFreeSurveyMaintained or +totalNoDaysMaintainingPestFreeInvoiced < +totalNoDaysMaintainingPestFree or +totalAreaPestFreeSurveyInitialInvoiced < +totalAreaPestFreeSurveyInitial", + "condition": "+totalLengthStreamCoastlineInitialInvoice < +totalLengthStreamCoastlineInitial or +totalLengthStreamCoastlineInvoicedFollowup < +totalLengthStreamCoastlineFollowup or +totalAreaErosionControlInvoicedInitial < +totalAreaErosionControlInitial or +totalAreaErosionControlInvoicedFollowup < +totalAreaErosionControlFollowup", "type": "enable" } ] @@ -7583,8 +7502,8 @@ ] } ], - "modelName": "NHT - Maintaining feral free enclosures", - "title": "Establishing and Maintaining Pest Animal-free Enclosures", + "modelName": "NHT - Erosion Management", + "title": "Erosion Management", "viewModel": [ { "type": "row", @@ -7645,7 +7564,7 @@ "type": "textarea" } ], - "source": "participationInformationTableEmp", + "source": "participationInformationTableErm", "type": "table" }, { @@ -7668,8 +7587,8 @@ "type": "row", "items": [ { - "preLabel": "(i) Total number of pest animal-free enclosures (initial) for this reporting period", - "source": "totalNoPestFreeSurveyEstablished", + "preLabel": "(i) Total area (ha) of erosion control (initial) for this reporting period", + "source": "totalAreaErosionControlInitial", "type": "number" } ] @@ -7678,10 +7597,12 @@ "type": "row", "items": [ { - "preLabel": "(ii) Total number of pest animal-free enclosures (initial) invoiced for this reporting period", - "source": "totalNoPestFreeSurveyEstablishedInvoiced", + "preLabel": "(ii) Total area (ha) of erosion control (initial) invoiced for this reporting period", + "source": "totalAreaErosionControlInvoicedInitial", "type": "number", - "readonly": false + "displayOptions": { + "removeTrailingZeros": false + } } ] } @@ -7695,8 +7616,8 @@ "type": "row", "items": [ { - "preLabel": "(iii) Total number of pest animal-free enclosures (maintained) for this reporting period", - "source": "totalNoPestFreeSurveyMaintained", + "preLabel": "(iii) Total area (ha) of erosion control (follow up) for this reporting period", + "source": "totalAreaErosionControlFollowup", "type": "number" } ] @@ -7705,10 +7626,12 @@ "type": "row", "items": [ { - "preLabel": "(iv) Total number of pest animal-free enclosures (maintained) invoiced for this reporting period", - "source": "totalNoPestFreeSurveyMaintainedInvoiced", + "preLabel": "(iv) Total area (ha) of erosion control invoiced (follow up) for this reporting period", + "source": "totalAreaErosionControlInvoicedFollowup", "type": "number", - "readonly": false + "displayOptions": { + "removeTrailingZeros": false + } } ] } @@ -7722,8 +7645,8 @@ "type": "row", "items": [ { - "preLabel": "(v) Total number of days maintaining pest animal-free enclosures for this reporting period", - "source": "totalNoDaysMaintainingPestFree", + "preLabel": "(v) Total length (km) of stream/coastline treated for erosion (initial) for this reporting period", + "source": "totalLengthStreamCoastlineInitial", "type": "number" } ] @@ -7732,9 +7655,12 @@ "type": "row", "items": [ { - "preLabel": "(vi) Total number of days maintaining pest animal-free enclosures invoiced for this reporting period", - "source": "totalNoDaysMaintainingPestFreeInvoiced", - "type": "number" + "preLabel": "(vi) Total length (km) of stream/coastline treated for erosion (initial) invoiced for this reporting period", + "source": "totalLengthStreamCoastlineInitialInvoice", + "type": "number", + "displayOptions": { + "removeTrailingZeros": false + } } ] } @@ -7748,8 +7674,8 @@ "type": "row", "items": [ { - "preLabel": "(vii) Total area (ha) of pest animal-free enclosures for this reporting period", - "source": "totalAreaPestFreeSurveyInitial", + "preLabel": "(vii) Total length (km) of stream/coastline treated for erosion (follow up) for this reporting period", + "source": "totalLengthStreamCoastlineFollowup", "type": "number" } ] @@ -7758,8 +7684,8 @@ "type": "row", "items": [ { - "preLabel": "(viii) Total area (ha) of pest animal-free enclosures invoiced for this reporting period", - "source": "totalAreaPestFreeSurveyInitialInvoiced", + "preLabel": "(viii) Total length (km) of stream/coastline treated for erosion (follow up) invoiced for this reporting period", + "source": "totalLengthStreamCoastlineInvoicedFollowup", "type": "number", "displayOptions": { "removeTrailingZeros": false @@ -7776,7 +7702,7 @@ "items": [ { "preLabel": "If the total invoiced is different to the total completed, please provide the reason", - "source": "totalInvoicedPestFreeMismatched", + "source": "totalInvoicedErosionMismatched", "type": "textarea", "rows": 4, "placeholder": "" @@ -7784,282 +7710,348 @@ ] }, { - "type": "section", + "addRowText": "Add a new erosion control area", + "userAddedRows": true, + "source": "erosionManagementAreasControlled", + "type": "repeat", "items": [ { - "addRowText": "Add a new pest animal free area", - "userAddedRows": true, - "source": "enclosureDetails", - "type": "repeat", + "type": "row", "items": [ { - "type": "row", + "css": "span3", + "type": "col", "items": [ { - "css": "span3", - "type": "col", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "source": "relatedOutcomes", - "type": "selectOne", - "preLabel": "Which outcome statement/s does this activity relate to?" - } - ] + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s does this activity relate to?" } ] - }, + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" - } - ] + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" } ] - }, + } + ] + }, + { + "css": "span3", + "type": "col", + "items": [ { - "css": "span3", - "type": "col", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "source": "invoicingThisActivity", - "preLabel": "Are you invoicing for this activity in this reporting period?", - "type": "selectOne" - } - ] + "source": "invoicingThisActivity", + "preLabel": "Are you invoicing for this activity in this reporting period?", + "type": "selectOne" } ] } ] - }, + } + ] + }, + { + "type": "row", + "css": "border-bottom", + "items": [ { - "css": "border-bottom", - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "preLabel": "Initial or maintained feral free enclosure?", - "css": "span3", - "source": "newOrMaintained", - "type": "selectOne" - }, - { - "preLabel": "Number of pest animal-free enclosures", - "css": "span3", - "source": "numberOfPestFreeEnclosures", - "type": "number" - }, - { - "preLabel": "Number of days maintaining pest animal-free enclosures", - "css": "span3", - "source": "daysSpentOnMaintenanceOfEnclosures", - "type": "number" + "type": "row", + "items": [ + { + "source": "initialOrFollowup", + "preLabel": "Initial or follow-up control?", + "type": "selectOne" + } + ] } ] }, { - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Site/s of pest animal-free enclosure", - "source": "sitesOfPestAnimalFreeEnclosure", - "type": "feature" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedAreaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, + "source": "numberInstalled", + "preLabel": "Number of erosion control structures installed", + "type": "number" + } + ] + } + ] + } + ] + }, + { + "type": "row", + "css": "border-bottom", + "items": [ + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetails", - "type": "document" - } - ] + "preLabel": "Site/s where erosion has been controlled", + "source": "sitesOfErosionControl", + "type": "feature" } ] }, { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Actual area (ha) of pest animal-free enclosure", - "source": "areaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", - "type": "selectOne" - } - ] - }, + "source": "calculatedLengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "row", - "items": [ - { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 - } - ] + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" } ] } ] }, { - "addRowText": "Add a species", - "columns": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ { - "width": "30%", - "source": "protectedSpecies", - "title": "Targeted species being protected", - "type": "speciesSelect" + "type": "row", + "items": [ + { + "preLabel": "Actual area (ha) / length (km) of erosion control", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] }, { - "width": "30%", - "source": "targetFeralSpecies", - "title": "Targeted pest animal species being controlled", - "type": "speciesSelect" + "type": "row", + "items": [ + { + "source": "lengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] }, { - "width": "20%", - "source": "individualsOrPopulations", - "title": "Individuals or populations of species being protected?", - "type": "selectOne" + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" + } + ] }, { - "width": "20%", - "source": "numberOfPopulationsOrIndividualsProtected", - "title": "Number of populations (or individuals) within pest animal-free enclosures", - "type": "number" + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 + } + ] } - ], - "userAddedRows": true, - "source": "speciesProtected", - "type": "table" + ] } ] }, { - "type": "row", - "items": [ + "columns": [ { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" - } - ] - }, - { - "type": "row", - "items": [ + "title": "Date from", + "source": "dateFrom", + "type": "date", + "width": "15%" + }, { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" - } - ] - }, - { - "type": "row", - "items": [ + "title": "Date to", + "source": "dateTo", + "type": "date", + "width": "15%" + }, { - "type": "literal", - "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" + "width": "20%", + "source": "treatmentObjective", + "title": "Treatment objective", + "type": "textarea" }, { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] - }, - { - "type": "row", - "items": [ + "width": "20%", + "type": "col", + "title": "Type of treatment being used", + "items": [ + { + "type": "row", + "items": [ + { + "source": "erosionManagementMethod", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "otherErosionManagementMethod", + "placeholder": "Type of treatment method", + "type": "textarea" + } + ] + } + ] + }, { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + "width": "10%", + "source": "numberDaysCollecting", + "title": "Number of days collecting seeds/propagating plants ", + "type": "number" + }, + { + "width": "20%", + "source": "threatenedEcologicalCommunity", + "title": "Threatened Ecological Community (TEC) benefitting from this activity", + "type": "textarea" } - ] + ], + "userAddedRows": true, + "source": "erosionManagementDetails", + "type": "table" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" }, { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ - { - "title": "Attached documents", - "source": "attachments", - "type": "document" - } - ] + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" } ] } ] }, "modelName": null, - "templateName": "nhtFeralFreeEnclosures", + "templateName": "nhtErosionManagement", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Maintaining feral free enclosures", + "name": "NHT - Erosion Management", "description": null }, { @@ -8173,81 +8165,39 @@ } ], "dataType": "list", - "name": "participationInformationTableEsa" + "name": "participationInformationTableEmp" }, { "columns": [ { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "label", - "type": "pre-populated", - "config": { - "source": { - "url": "/project/outcomesByScores", - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - }, - { - "expression": "scores", - "name": "scoreIds", - "type": "computed" - } - ] - } - } - } - }, - { - "name": "investmentPriorities2", "dataType": "text", - "description": "", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.investmentPriorities" - } - } - } + "name": "newOrMaintained", + "constraints": [ + "Initial", + "Maintained" + ], + "validate": "required" }, { - "dataType": "text", - "name": "otherInvestmentPriority", - "behaviour": [ - { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" - } - ] + "dataType": "number", + "name": "numberOfPestFreeEnclosures", + "validate": "required" }, { - "dataType": "text", - "name": "establishedOrImplementation", - "constraints": [ - "Established", - "Implementation" - ], - "validate": "required" + "dataType": "number", + "name": "daysSpentOnMaintenanceOfEnclosures", + "description": "Number of days should be calculated as number of days by number of people (eg. 4.5 days by 3 people is 13.5 days).", + "validate": "required, min[0]" }, { "dataType": "feature", - "name": "sitesAgreementsEstablished", - "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." + "name": "sitesOfPestAnimalFreeEnclosure", + "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping.", + "validate": "required" }, { "computed": { - "expression": "$geom.areaHa(sitesAgreementsEstablished)" + "expression": "$geom.areaHa(sitesOfPestAnimalFreeEnclosure)" }, "dataType": "number", "name": "calculatedAreaTreatedHa", @@ -8256,7 +8206,7 @@ }, { "computed": { - "expression": "$geom.lengthKm(sitesAgreementsEstablished)" + "expression": "$geom.lengthKm(sitesOfPestAnimalFreeEnclosure)" }, "dataType": "number", "name": "calculatedLengthTreatedKm", @@ -8336,101 +8286,107 @@ { "columns": [ { - "dataType": "text", - "name": "agreementType", - "description": "", - "constraints": [ - "On title in perpetuity (e.g. conservation convenant)", - "Binding agreement not on title in perpetuity (e.g. property vegetation plan)", - "Termed agreement not on title - binding (e.g. land management agreement)", - "Not on title - non-binding (e.g. Wildlife Refuge)", - "No protection mechanism applicable", - "Other" - ], + "dataType": "species", + "name": "protectedSpecies", + "dwcAttribute": "scientificName", + "description": "The threatened species protected by the enclosure.", "validate": "required" }, { - "dataType": "text", - "name": "otherAgreementType", + "dataType": "species", + "name": "targetFeralSpecies", + "dwcAttribute": "scientificName", "description": "", - "behaviour": [ - { - "condition": "agreementType == \"Other\"", - "type": "enable" - } - ], - "validate": "required,maxSize[300]" - }, - { - "dataType": "number", - "name": "numberOfAgreements", - "validate": "required,min[0]" - }, - { - "dataType": "number", - "name": "numberOfDaysMaintainingAgreements", - "description": "Number of days should be calculated as number of days by number of people (eg. 4.5 days by 3 people is 13.5 days).", - "validate": "required,min[0]" - }, - { - "dataType": "number", - "name": "yearsOfTheAgreement", - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "agreementPurpose", - "validate": "required,maxSize[300]" - }, - { - "dataType": "text", - "name": "agreementMadeWith", - "validate": "required,maxSize[300]" + "validate": "required" }, { "dataType": "text", - "name": "implementationType", + "name": "individualsOrPopulations", "constraints": [ - "Managing Sward Height", - "Native Herbivore Management", - "Pest Animal Management", - "Weed Removal/Management", - "Biomass Control", - "Revegetation (including planting and seeding)", - "Regeneration", - "Restoration of Habitat Features", - "Improving Land Management Practices", - "Other (explanation of the activity required)" + "Individuals", + "Populations" ], "validate": "required" }, { - "dataType": "text", - "name": "otherImplementationType", - "description": "", - "validate": "maxSize[300]" + "dataType": "number", + "name": "numberOfPopulationsOrIndividualsProtected", + "validate": "required,min[0]" } ], "dataType": "list", - "name": "agreementsTable" + "name": "speciesProtected" + }, + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, + { + "dataType": "text", + "name": "invoicingThisActivity", + "constraints": [ + "Yes", + "No" + ], + "validate": "required" } ], "dataType": "list", - "name": "conservationAgreementsControlled" + "name": "enclosureDetails" }, { "dataType": "number", - "name": "totalAreaConservationAgreements", + "name": "totalNoPestFreeSurveyEstablished", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 3, + "decimalPlaces": 0, + "defaultValue": 0, "computed": { - "expression": "sum(conservationAgreementsControlled, \"establishedOrImplementation == 'Established' ? areaTreatedHa : 0\")" + "expression": "sum(enclosureDetails, \"newOrMaintained == 'Initial' ? numberOfPestFreeEnclosures : 0\")" } }, { "dataType": "number", - "decimalPlaces": 3, - "name": "totalAreaConservationAgreementsInvoiced", + "name": "totalNoPestFreeSurveyEstablishedInvoiced", + "decimalPlaces": 0, "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", "validate": [ { @@ -8441,9 +8397,8 @@ }, { "param": { - "expression": "totalAreaConservationAgreements", - "type": "computed", - "decimalPlaces": 3 + "expression": "totalNoPestFreeSurveyEstablished", + "type": "computed" }, "rule": "max" } @@ -8452,17 +8407,20 @@ }, { "dataType": "number", - "name": "totalAreaActivitiesConducted", - "validate": "min[0]", - "decimalPlaces": 3, + "name": "totalNoPestFreeSurveyMaintained", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "required,min[0]", + "decimalPlaces": 0, + "defaultValue": 0, "computed": { - "expression": "sum(conservationAgreementsControlled, \"establishedOrImplementation == 'Implementation' ? areaTreatedHa : 0\")" + "expression": "sum(enclosureDetails, \"newOrMaintained == 'Maintained' ? numberOfPestFreeEnclosures : 0\")" } }, { "dataType": "number", - "decimalPlaces": 3, - "name": "totalAreaActivitiesConductedInvoiced", + "name": "totalNoPestFreeSurveyMaintainedInvoiced", + "decimalPlaces": 0, + "defaultValue": "", "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", "validate": [ { @@ -8473,31 +8431,95 @@ }, { "param": { - "expression": "totalAreaActivitiesConducted", - "type": "computed", - "decimalPlaces": 3 + "expression": "totalNoPestFreeSurveyMaintained", + "type": "computed" }, "rule": "max" } - ], - "defaultValue": "" + ] }, { - "dataType": "text", - "name": "totalInvoicedActivitiesConductedMismatched", - "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", - "validate": "maxSize[400],required", - "behaviour": [ + "dataType": "number", + "name": "totalNoDaysMaintainingPestFree", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(enclosureDetails, \"daysSpentOnMaintenanceOfEnclosures\")" + } + }, + { + "dataType": "number", + "name": "totalNoDaysMaintainingPestFreeInvoiced", + "decimalPlaces": 0, + "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", + "validate": [ { - "condition": "+totalAreaConservationAgreementsInvoiced < +totalAreaConservationAgreements or +totalAreaActivitiesConductedInvoiced < +totalAreaActivitiesConducted", - "type": "enable" + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalNoDaysMaintainingPestFree", + "type": "computed" + }, + "rule": "max" } - ] + ], + "defaultValue": "" }, { - "dataType": "text", - "name": "comments", - "validate": "maxSize[1500]" + "dataType": "number", + "name": "totalAreaPestFreeSurveyInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "defaultValue": 0, + "computed": { + "expression": "sum(enclosureDetails, \"areaTreatedHa\")" + } + }, + { + "dataType": "number", + "name": "totalAreaPestFreeSurveyInitialInvoiced", + "decimalPlaces": 3, + "defaultValue": "", + "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalAreaPestFreeSurveyInitial", + "type": "computed", + "decimalPlaces": 3 + }, + "rule": "max" + } + ] + }, + { + "dataType": "text", + "name": "totalInvoicedPestFreeMismatched", + "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", + "validate": "maxSize[400],required", + "behaviour": [ + { + "condition": "+totalNoPestFreeSurveyEstablishedInvoiced < +totalNoPestFreeSurveyEstablished or +totalNoPestFreeSurveyMaintainedInvoiced < +totalNoPestFreeSurveyMaintained or +totalNoDaysMaintainingPestFreeInvoiced < +totalNoDaysMaintainingPestFree or +totalAreaPestFreeSurveyInitialInvoiced < +totalAreaPestFreeSurveyInitial", + "type": "enable" + } + ] + }, + { + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" }, { "dataType": "image", @@ -8525,8 +8547,8 @@ ] } ], - "modelName": "NHT - Establishing Agreements", - "title": "Establishing and Implementing Conservation Agreements", + "modelName": "NHT - Maintaining feral free enclosures", + "title": "Establishing and Maintaining Pest Animal-free Enclosures", "viewModel": [ { "type": "row", @@ -8587,7 +8609,7 @@ "type": "textarea" } ], - "source": "participationInformationTableEsa", + "source": "participationInformationTableEmp", "type": "table" }, { @@ -8610,8 +8632,8 @@ "type": "row", "items": [ { - "preLabel": "(i) Total area (ha) covered by conservation agreements during this reporting period (Established)", - "source": "totalAreaConservationAgreements", + "preLabel": "(i) Total number of pest animal-free enclosures (initial) for this reporting period", + "source": "totalNoPestFreeSurveyEstablished", "type": "number" } ] @@ -8620,12 +8642,10 @@ "type": "row", "items": [ { - "preLabel": "(ii) Total area (ha) covered by conservation agreements invoiced for during this reporting period (Established)", - "source": "totalAreaConservationAgreementsInvoiced", + "preLabel": "(ii) Total number of pest animal-free enclosures (initial) invoiced for this reporting period", + "source": "totalNoPestFreeSurveyEstablishedInvoiced", "type": "number", - "displayOptions": { - "removeTrailingZeros": false - } + "readonly": false } ] } @@ -8639,8 +8659,8 @@ "type": "row", "items": [ { - "preLabel": "(iii) Total area (ha) where implementation activities conducted during this reporting period (Implementation/Stewardship)", - "source": "totalAreaActivitiesConducted", + "preLabel": "(iii) Total number of pest animal-free enclosures (maintained) for this reporting period", + "source": "totalNoPestFreeSurveyMaintained", "type": "number" } ] @@ -8649,8 +8669,61 @@ "type": "row", "items": [ { - "preLabel": "(iv) Total Area (ha) where implementation activities conducted invoiced for during this reporting period (Implementation/Stewardship)", - "source": "totalAreaActivitiesConductedInvoiced", + "preLabel": "(iv) Total number of pest animal-free enclosures (maintained) invoiced for this reporting period", + "source": "totalNoPestFreeSurveyMaintainedInvoiced", + "type": "number", + "readonly": false + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(v) Total number of days maintaining pest animal-free enclosures for this reporting period", + "source": "totalNoDaysMaintainingPestFree", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "(vi) Total number of days maintaining pest animal-free enclosures invoiced for this reporting period", + "source": "totalNoDaysMaintainingPestFreeInvoiced", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(vii) Total area (ha) of pest animal-free enclosures for this reporting period", + "source": "totalAreaPestFreeSurveyInitial", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "(viii) Total area (ha) of pest animal-free enclosures invoiced for this reporting period", + "source": "totalAreaPestFreeSurveyInitialInvoiced", "type": "number", "displayOptions": { "removeTrailingZeros": false @@ -8667,7 +8740,7 @@ "items": [ { "preLabel": "If the total invoiced is different to the total completed, please provide the reason", - "source": "totalInvoicedActivitiesConductedMismatched", + "source": "totalInvoicedPestFreeMismatched", "type": "textarea", "rows": 4, "placeholder": "" @@ -8678,9 +8751,9 @@ "type": "section", "items": [ { - "addRowText": "Add a new agreement area", + "addRowText": "Add a new pest animal free area", "userAddedRows": true, - "source": "conservationAgreementsControlled", + "source": "enclosureDetails", "type": "repeat", "items": [ { @@ -8717,24 +8790,18 @@ ] } ] - } - ] - }, - { - "type": "row", - "css": "border-bottom", - "items": [ + }, { + "css": "span3", "type": "col", - "css": "span3 col-border-right", "items": [ { "type": "row", "items": [ { - "source": "establishedOrImplementation", - "type": "selectOne", - "preLabel": "Established or implementation?" + "source": "invoicingThisActivity", + "preLabel": "Are you invoicing for this activity in this reporting period?", + "type": "selectOne" } ] } @@ -8743,8 +8810,31 @@ ] }, { - "type": "row", "css": "border-bottom", + "type": "row", + "items": [ + { + "preLabel": "Initial or maintained feral free enclosure?", + "css": "span3", + "source": "newOrMaintained", + "type": "selectOne" + }, + { + "preLabel": "Number of pest animal-free enclosures", + "css": "span3", + "source": "numberOfPestFreeEnclosures", + "type": "number" + }, + { + "preLabel": "Number of days maintaining pest animal-free enclosures", + "css": "span3", + "source": "daysSpentOnMaintenanceOfEnclosures", + "type": "number" + } + ] + }, + { + "type": "row", "items": [ { "type": "col", @@ -8754,8 +8844,8 @@ "type": "row", "items": [ { - "preLabel": "Site/s where agreements were established", - "source": "sitesAgreementsEstablished", + "preLabel": "Site/s of pest animal-free enclosure", + "source": "sitesOfPestAnimalFreeEnclosure", "type": "feature" } ] @@ -8793,7 +8883,7 @@ "type": "row", "items": [ { - "preLabel": "Actual area (ha) of site/s agreements", + "preLabel": "Actual area (ha) of pest animal-free enclosure", "source": "areaTreatedHa", "type": "number", "displayOptions": { @@ -8828,96 +8918,39 @@ ] }, { + "addRowText": "Add a species", "columns": [ { - "width": "15%", - "title": "Type of agreement", - "type": "col", - "items": [ - { - "type": "row", - "items": [ - { - "source": "agreementType", - "type": "selectOne" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "otherAgreementType", - "title": "Type of Agreement (if other)", - "type": "textarea" - } - ] - } - ] - }, - { - "width": "10%", - "source": "numberOfAgreements", - "type": "number", - "title": "Number of conservation agreements established" - }, - { - "width": "10%", - "source": "numberOfDaysMaintainingAgreements", - "type": "number", - "title": "Number of days maintaining agreements (if applicable)" + "width": "30%", + "source": "protectedSpecies", + "title": "Targeted species being protected", + "type": "speciesSelect" }, { - "width": "10%", - "source": "yearsOfTheAgreement", - "type": "number", - "title": "Length (years of the agreement)" + "width": "30%", + "source": "targetFeralSpecies", + "title": "Targeted pest animal species being controlled", + "type": "speciesSelect" }, { "width": "20%", - "source": "agreementPurpose", - "title": "Purpose of agreement", - "type": "textarea" + "source": "individualsOrPopulations", + "title": "Individuals or populations of species being protected?", + "type": "selectOne" }, { "width": "20%", - "source": "agreementMadeWith", - "title": "Who the agreement was made with?", - "type": "textarea" - }, - { - "width": "10%", - "title": "Types of implementation/stewardship activities undertaken", - "type": "col", - "items": [ - { - "type": "row", - "items": [ - { - "source": "implementationType", - "type": "select2Many" - } - ] - }, - { - "source": "otherImplementationType", - "placeholder": "If Other was selected", - "type": "text" - } - ] + "source": "numberOfPopulationsOrIndividualsProtected", + "title": "Number of populations (or individuals) within pest animal-free enclosures", + "type": "number" } ], "userAddedRows": true, - "source": "agreementsTable", + "source": "speciesProtected", "type": "table" } ] - } - ] - }, - { - "type": "section", - "items": [ + }, { "type": "row", "items": [ @@ -8985,12 +9018,12 @@ ] }, "modelName": null, - "templateName": "nhtEstablishingAgreements", + "templateName": "nhtFeralFreeEnclosures", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Establishing Agreements", + "name": "NHT - Maintaining feral free enclosures", "description": null }, { @@ -9104,12 +9137,9 @@ } ], "dataType": "list", - "name": "participationInformationTableFms" + "name": "participationInformationTableEsa" }, { - "name": "farmManagementSurveys", - "dataType": "list", - "minSize": 1, "columns": [ { "name": "relatedOutcomes", @@ -9118,377 +9148,255 @@ "validate": "required", "constraints": { "textProperty": "label", - "valueProperty": "value", + "valueProperty": "label", "type": "pre-populated", "config": { "source": { - "context-path": "outcomes" + "url": "/project/outcomesByScores", + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + }, + { + "expression": "scores", + "name": "scoreIds", + "type": "computed" + } + ] } } } }, { + "name": "investmentPriorities2", "dataType": "text", - "name": "baselineOrIndicatorSurvey", "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, + { + "dataType": "text", + "name": "establishedOrImplementation", "constraints": [ - "Baseline", - "Indicator" + "Established", + "Implementation" ], "validate": "required" }, { - "dataType": "text", - "name": "surveyObjective", - "description": "What the survey aim to capture? How will the information obtained from the survey be used?", - "validate": "required,maxSize[3000]" + "dataType": "feature", + "name": "sitesAgreementsEstablished", + "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." }, { - "dataType": "list", - "name": "farmManagementDataSets", - "columns": [ - { - "name": "dataSetId", - "entityType": "au.org.ala.ecodata.DataSetSummary", - "dataType": "text", - "description": "This section will require the Data Set Name so the Metadata fields in the Data Set Summary tab should be filled out before the Outcome Report is due. More than one dataset if relevant for this Project Baseline could be selected.", - "validate": "required", - "constraints": { - "textProperty": "name", - "valueProperty": "dataSetId", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.custom.dataSets" - }, - "filter": { - "namespace": "dataSet", - "expression": "dataSet.serviceId == 12 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" - } - } - }, - "behaviour": [ - { - "type": "pre_populate", - "config": { - "waitForInitialisation": true, - "source": { - "url": "/site/geojson", - "params": [ - { - "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.siteId", - "name": "id", - "type": "computed", - "required": true - } - ] - }, - "target": { - "type": "singleValue", - "name": "sitesTreated" - } - } - }, - { - "type": "pre_populate", - "config": { - "waitForInitialisation": true, - "source": { - "url": "/project/getSpeciesRecordsFromActivity", - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - }, - { - "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.activityId", - "name": "activityId", - "type": "computed", - "required": true - } - ] - }, - "mapping": [ - { - "source-path": "species", - "target": "species" - }, - { - "source-path": "threatenedEcologicalCommunity", - "target": "threatenedEcologicalCommunity" - }, - { - "source-path": "individualsOrGroups", - "target": "individualsOrGroups" - }, - { - "source-path": "individualCount", - "target": "numberOfIndividualsOrGroups" - } - ], - "target": { - "type": "singleLoad", - "name": "farmManagementSurveySpeciesTable" - } - } - } - ] - }, - { - "columns": [ - { - "dataType": "species", - "name": "species", - "validate": "required" - }, - { - "dataType": "text", - "name": "threatenedEcologicalCommunity", - "validate": "maxSize[300]" - }, - { - "dataType": "text", - "name": "individualsOrGroups", - "constraints": [ - "Individuals", - "Groups" - ], - "validate": "required" - }, - { - "dataType": "number", - "name": "numberOfIndividualsOrGroups", - "validate": "required,min[0]" - } - ], - "dataType": "list", - "name": "farmManagementSurveySpeciesTable" - }, - { - "name": "projectBaselines", - "dataType": "stringList", - "description": "Select the relevant Project Baseline as listed in the Monitoring Methodology section of the MERI Plan.", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.baselines" - }, - "constraints": { - "textProperty": "baseline", - "valueProperty": "code", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.custom.details.baseline.rows" - } - } - } - }, - { - "name": "investmentPriorities2", - "dataType": "stringList", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.investmentPriorities" - }, - "constraints": { - "type": "pre-populated", - "config": { - "source": { - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - } - ], - "url": "/project/listProjectInvestmentPriorities/" - } - } - } - }, - { - "dataType": "text", - "name": "otherInvestmentPriority", - "behaviour": [ - { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" - } - ] - }, - { - "dataType": "date", - "name": "activitiesStartDate", - "description": "Specific the dates these events were held on.", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.startDate" - } - }, + "computed": { + "expression": "$geom.areaHa(sitesAgreementsEstablished)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesAgreementsEstablished)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ { - "dataType": "date", - "name": "activitiesEndDate", - "description": "Specific the dates these events were held on.", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.endDate" + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" } - }, - { - "dataType": "feature", - "name": "sitesCoveredForFarmSurvey", - "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." - }, + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ { - "computed": { - "expression": "$geom.areaHa(sitesCoveredForFarmSurvey)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHa", - "units": "ha", - "decimalPlaces": 3 - }, + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ { - "computed": { - "expression": "$geom.lengthKm(sitesCoveredForFarmSurvey)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKm", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKm > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHa" - }, - "dataType": "number", - "name": "areaTreatedHa", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "required,min[0]" - }, + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKm" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + }, + { + "columns": [ { "dataType": "text", - "name": "mappingNotAlignedReason", + "name": "agreementType", + "description": "", "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", + "On title in perpetuity (e.g. conservation convenant)", + "Binding agreement not on title in perpetuity (e.g. property vegetation plan)", + "Termed agreement not on title - binding (e.g. land management agreement)", + "Not on title - non-binding (e.g. Wildlife Refuge)", + "No protection mechanism applicable", "Other" ], - "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] + "validate": "required" }, { "dataType": "text", - "name": "mappingNotAlignedComments", - "validate": "required,maxSize[100]", + "name": "otherAgreementType", + "description": "", "behaviour": [ { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReason" + "condition": "agreementType == \"Other\"", + "type": "enable" } - ] + ], + "validate": "required,maxSize[300]" }, { - "dataType": "document", - "name": "extraMappingDetails", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] + "dataType": "number", + "name": "numberOfAgreements", + "validate": "required,min[0]" }, { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKm" - }, "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 + "name": "numberOfDaysMaintainingAgreements", + "description": "Number of days should be calculated as number of days by number of people (eg. 4.5 days by 3 people is 13.5 days).", + "validate": "required,min[0]" }, { - "dataType": "text", - "description": "Select the technique used to conduct the survey. If the EMSA Application tool was not used, you should select 'Other'.", - "name": "emsaProtocol", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.protocol" - }, - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.protocols" - } - } - } + "dataType": "number", + "name": "yearsOfTheAgreement", + "validate": "required,min[0]" }, { - "dataType": "stringList", - "description": "Describe the technique (if Other) was selected.", - "name": "otherEmsaProtocol", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methods" - } + "dataType": "text", + "name": "agreementPurpose", + "validate": "required,maxSize[300]" }, { "dataType": "text", - "name": "surveyMethodology", - "description": "Provide more details on what is being done.", - "validate": "required,maxSize[3000]", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methodDescription" - } + "name": "agreementMadeWith", + "validate": "required,maxSize[300]" }, { "dataType": "text", - "name": "invoicingThisActivity", + "name": "implementationType", "constraints": [ - "Yes", - "No" + "Managing Sward Height", + "Native Herbivore Management", + "Pest Animal Management", + "Weed Removal/Management", + "Biomass Control", + "Revegetation (including planting and seeding)", + "Regeneration", + "Restoration of Habitat Features", + "Improving Land Management Practices", + "Other (explanation of the activity required)" ], "validate": "required" + }, + { + "dataType": "text", + "name": "otherImplementationType", + "description": "", + "validate": "maxSize[300]" } ], - "minSize": 1 + "dataType": "list", + "name": "agreementsTable" } - ] + ], + "dataType": "list", + "name": "conservationAgreementsControlled" }, { "dataType": "number", - "name": "totalSurveyBaseline", + "name": "totalAreaConservationAgreements", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 0, + "decimalPlaces": 3, "computed": { - "expression": "sum(farmManagementSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" + "expression": "sum(conservationAgreementsControlled, \"establishedOrImplementation == 'Established' ? areaTreatedHa : 0\")" } }, { "dataType": "number", - "name": "totalSurveyBaselineInvoiced", + "decimalPlaces": 3, + "name": "totalAreaConservationAgreementsInvoiced", + "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", "validate": [ { "rule": "required" @@ -9498,8 +9406,9 @@ }, { "param": { - "expression": "totalSurveyBaseline", - "type": "computed" + "expression": "totalAreaConservationAgreements", + "type": "computed", + "decimalPlaces": 3 }, "rule": "max" } @@ -9508,18 +9417,21 @@ }, { "dataType": "number", - "name": "totalSurveyIndicator", + "name": "totalAreaActivitiesConducted", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 0, + "decimalPlaces": 3, "computed": { - "expression": "sum(farmManagementSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" + "expression": "sum(conservationAgreementsControlled, \"establishedOrImplementation == 'Implementation' ? areaTreatedHa : 0\")" } }, { "dataType": "number", - "name": "totalSurveyIndicatorInvoiced", - "validate": [ - { + "decimalPlaces": 3, + "name": "totalAreaActivitiesConductedInvoiced", + "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", + "validate": [ + { "rule": "required" }, { @@ -9527,8 +9439,9 @@ }, { "param": { - "expression": "totalSurveyIndicator", - "type": "computed" + "expression": "totalAreaActivitiesConducted", + "type": "computed", + "decimalPlaces": 3 }, "rule": "max" } @@ -9537,12 +9450,12 @@ }, { "dataType": "text", - "name": "totalInvoicedFarmMismatched", + "name": "totalInvoicedActivitiesConductedMismatched", "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", "validate": "maxSize[400],required", "behaviour": [ { - "condition": "+totalSurveyIndicatorInvoiced < +totalSurveyIndicator or +totalSurveyBaselineInvoiced < +totalSurveyBaseline", + "condition": "+totalAreaConservationAgreementsInvoiced < +totalAreaConservationAgreements or +totalAreaActivitiesConductedInvoiced < +totalAreaActivitiesConducted", "type": "enable" } ] @@ -9559,12 +9472,11 @@ { "dataType": "boolean", "name": "dataUploaded", - "description": "" + "description": "" }, { - "dataType": "text", "name": "projectAssuranceDetails", - "description": "", + "dataType": "text", "validate": "required,maxSize[5000]" }, { @@ -9579,188 +9491,196 @@ ] } ], - "modelName": "NHT - Farm Management Survey", - "title": "Farm Management Survey", + "modelName": "NHT - Establishing Agreements", + "title": "Establishing and Implementing Conservation Agreements", "viewModel": [ { - "type": "section", + "type": "row", "items": [ { - "type": "row", + "type": "literal", + "source": "

Participation information

" + } + ] + }, + { + "disableTableUpload": true, + "columns": [ + { + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" + }, + { + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", "items": [ { - "type": "literal", - "source": "

Participation information

" + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" } ] }, { - "disableTableUpload": true, - "columns": [ + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ { - "width": "10%", - "source": "participationIndividualsOrGroups", - "title": "Are individuals or groups delivering this service?", - "type": "selectOne" + "source": "firstNationIndividualNumber", + "type": "number" }, { - "width": "20%", - "type": "col", - "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "source": "firstNationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } + ], + "source": "participationInformationTableEsa", + "type": "table" + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", "items": [ { - "source": "participationIndividualNumber", + "preLabel": "(i) Total area (ha) covered by conservation agreements during this reporting period (Established)", + "source": "totalAreaConservationAgreements", "type": "number" - }, - { - "source": "participationGroupNumber", - "type": "selectOne" } ] }, { - "type": "col", - "width": "20%", - "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "type": "row", "items": [ { - "source": "firstNationIndividualNumber", - "type": "number" - }, - { - "source": "firstNationGroupNumber", - "type": "selectOne" + "preLabel": "(ii) Total area (ha) covered by conservation agreements invoiced for during this reporting period (Established)", + "source": "totalAreaConservationAgreementsInvoiced", + "type": "number", + "displayOptions": { + "removeTrailingZeros": false + } } ] - }, - { - "width": "20%", - "source": "participationDetails", - "rows": 4, - "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", - "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", - "type": "textarea" - } - ], - "source": "participationInformationTableFms", - "type": "table" - }, - { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Survey information

Before completing this section, please ensure you have created a Data Set Summary information for every data set produced by the surveys you intend to report

" - } - ] - }, - { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Totals Summary

" } ] }, { - "type": "row", + "type": "col", + "css": "span4 col-border-right", "items": [ { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "(i) Total Number of baseline farm management surveys completed for this reporting period", - "source": "totalSurveyBaseline", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "(ii) Total Number of baseline farm management surveys invoiced for this reporting period", - "source": "totalSurveyBaselineInvoiced", - "type": "number" - } - ] + "preLabel": "(iii) Total area (ha) where implementation activities conducted during this reporting period (Implementation/Stewardship)", + "source": "totalAreaActivitiesConducted", + "type": "number" } ] }, { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "(iii) Total Number of indicator farm management surveys completed for this reporting period", - "source": "totalSurveyIndicator", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "(iv) Total Number of indicator farm management surveys invoiced for this reporting period", - "source": "totalSurveyIndicatorInvoiced", - "type": "number" - } - ] + "preLabel": "(iv) Total Area (ha) where implementation activities conducted invoiced for during this reporting period (Implementation/Stewardship)", + "source": "totalAreaActivitiesConductedInvoiced", + "type": "number", + "displayOptions": { + "removeTrailingZeros": false + } } ] } ] - }, + } + ] + }, + { + "type": "row", + "items": [ { - "type": "row", - "items": [ - { - "preLabel": "If the total invoiced is different to the total completed, please provide the reason", - "source": "totalInvoicedFarmMismatched", - "type": "textarea", - "rows": 4, - "placeholder": "" - } - ] - }, + "preLabel": "If the total invoiced is different to the total completed, please provide the reason", + "source": "totalInvoicedActivitiesConductedMismatched", + "type": "textarea", + "rows": 4, + "placeholder": "" + } + ] + }, + { + "type": "section", + "items": [ { - "addRowText": "Add survey", - "removeRowText": "Delete this survey", + "addRowText": "Add a new agreement area", "userAddedRows": true, - "source": "farmManagementSurveys", + "source": "conservationAgreementsControlled", "type": "repeat", "items": [ { "type": "row", "items": [ { + "css": "span3", "type": "col", "items": [ { - "source": "relatedOutcomes", - "type": "selectOne", - "preLabel": "Which outcome statement/s relates to this survey?" + "type": "row", + "items": [ + { + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s does this activity relate to?" + } + ] } ] }, { "type": "col", + "css": "span3 col-border-right", "items": [ { - "source": "baselineOrIndicatorSurvey", - "type": "selectOne", - "preLabel": "Baseline survey or indicator (follow-up) survey?" + "type": "row", + "items": [ + { + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" + } + ] } ] } @@ -9768,274 +9688,202 @@ }, { "type": "row", + "css": "border-bottom", "items": [ { - "source": "surveyObjective", - "preLabel": "Survey objective", - "type": "text" - } - ] - }, - { - "type": "repeat", - "source": "farmManagementDataSets", - "userAddedRows": true, - "addRowText": "New data set", - "removeRowText": "Delete this data set", - "items": [ - { - "type": "row", - "css": "border-bottom", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "type": "col", + "type": "row", "items": [ { - "source": "dataSetId", + "source": "establishedOrImplementation", "type": "selectOne", - "preLabel": "Please select the data set produced by this survey. Note it must have already been entered on the Data Set Summary tab." + "preLabel": "Established or implementation?" } ] } ] - }, + } + ] + }, + { + "type": "row", + "css": "border-bottom", + "items": [ { - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "source": "projectBaselines", - "type": "selectMany", - "preLabel": "Which project baseline/s relate to this survey?", - "readonly": "readonly" - } - ] + "preLabel": "Site/s where agreements were established", + "source": "sitesAgreementsEstablished", + "type": "feature" } ] }, { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" - } - ] + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" } ] }, { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Activity start date", - "source": "activitiesStartDate", - "type": "date" - } - ] + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" } ] - }, + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Activity end date", - "source": "activitiesEndDate", - "type": "date" - } - ] + "preLabel": "Actual area (ha) of site/s agreements", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } } ] }, { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Sites covered by farm management survey", - "source": "sitesCoveredForFarmSurvey", - "type": "feature" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedAreaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedLengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetails", - "type": "document" - } - ] + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" } ] }, { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Actual area (ha) / length (km) covered by farm management survey", - "source": "areaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "lengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", - "type": "selectOne" - } - ] - }, + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 + } + ] + } + ] + } + ] + }, + { + "columns": [ + { + "width": "15%", + "title": "Type of agreement", + "type": "col", + "items": [ + { + "type": "row", + "items": [ { - "type": "row", - "items": [ - { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 - } - ] + "source": "agreementType", + "type": "selectOne" } ] }, { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Survey technique", - "source": "emsaProtocol", - "type": "selectOne", - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Survey technique (if Other)", - "source": "otherEmsaProtocol", - "type": "select2Many" - } - ] + "source": "otherAgreementType", + "title": "Type of Agreement (if other)", + "type": "textarea" } ] - }, + } + ] + }, + { + "width": "10%", + "source": "numberOfAgreements", + "type": "number", + "title": "Number of conservation agreements established" + }, + { + "width": "10%", + "source": "numberOfDaysMaintainingAgreements", + "type": "number", + "title": "Number of days maintaining agreements (if applicable)" + }, + { + "width": "10%", + "source": "yearsOfTheAgreement", + "type": "number", + "title": "Length (years of the agreement)" + }, + { + "width": "20%", + "source": "agreementPurpose", + "title": "Purpose of agreement", + "type": "textarea" + }, + { + "width": "20%", + "source": "agreementMadeWith", + "title": "Who the agreement was made with?", + "type": "textarea" + }, + { + "width": "10%", + "title": "Types of implementation/stewardship activities undertaken", + "type": "col", + "items": [ { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "source": "surveyMethodology", - "preLabel": "Survey methodology", - "type": "text" - } - ] + "source": "implementationType", + "type": "select2Many" } ] }, { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "invoicingThisActivity", - "preLabel": "Are you invoicing for this activity in this reporting period?", - "type": "selectOne" - } - ] - } - ] + "source": "otherImplementationType", + "placeholder": "If Other was selected", + "type": "text" } ] } - ] + ], + "userAddedRows": true, + "source": "agreementsTable", + "type": "table" } ] - }, + } + ] + }, + { + "type": "section", + "items": [ { "type": "row", "items": [ @@ -10103,12 +9951,12 @@ ] }, "modelName": null, - "templateName": "nhtFarmManagementSurvey", + "templateName": "nhtEstablishingAgreements", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Farm Management Survey", + "name": "NHT - Establishing Agreements", "description": null }, { @@ -10116,7 +9964,116 @@ "template": { "dataModel": [ { - "name": "faunaSurveys", + "allowRowDelete": "false", + "columns": [ + { + "dataType": "text", + "name": "participationIndividualsOrGroups", + "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "participationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "participationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ] + }, + { + "dataType": "number", + "name": "firstNationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "participationIndividualNumber", + "type": "computed" + }, + "rule": "max" + } + ] + }, + { + "dataType": "text", + "name": "firstNationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ], + "validate": [ + { + "rule": "required" + }, + { + "param": { + "expression": "participationGroupNumber", + "type": "computed" + }, + "rule": "max", + "message": "The number of first nation participants cannot be greater than the total number of participants" + } + ] + }, + { + "dataType": "text", + "name": "participationDetails", + "validate": "required, maxSize[3000]" + } + ], + "dataType": "list", + "name": "participationInformationTableFms" + }, + { + "name": "farmManagementSurveys", "dataType": "list", "minSize": 1, "columns": [ @@ -10154,7 +10111,7 @@ }, { "dataType": "list", - "name": "faunaDataSets", + "name": "farmManagementDataSets", "columns": [ { "name": "dataSetId", @@ -10172,7 +10129,7 @@ }, "filter": { "namespace": "dataSet", - "expression": "dataSet.serviceId == 13 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" + "expression": "dataSet.serviceId == 12 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" } } }, @@ -10194,7 +10151,7 @@ }, "target": { "type": "singleValue", - "name": "sitesCoveredForFaunaSurvey" + "name": "sitesTreated" } } }, @@ -10223,6 +10180,10 @@ "source-path": "species", "target": "species" }, + { + "source-path": "threatenedEcologicalCommunity", + "target": "threatenedEcologicalCommunity" + }, { "source-path": "individualsOrGroups", "target": "individualsOrGroups" @@ -10234,7 +10195,7 @@ ], "target": { "type": "singleLoad", - "name": "faunaSurveySpeciesTable" + "name": "farmManagementSurveySpeciesTable" } } } @@ -10247,6 +10208,11 @@ "name": "species", "validate": "required" }, + { + "dataType": "text", + "name": "threatenedEcologicalCommunity", + "validate": "maxSize[300]" + }, { "dataType": "text", "name": "individualsOrGroups", @@ -10263,7 +10229,7 @@ } ], "dataType": "list", - "name": "faunaSurveySpeciesTable" + "name": "farmManagementSurveySpeciesTable" }, { "name": "projectBaselines", @@ -10336,12 +10302,12 @@ }, { "dataType": "feature", - "name": "sitesCoveredForFaunaSurvey", + "name": "sitesCoveredForFarmSurvey", "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." }, { "computed": { - "expression": "$geom.areaHa(sitesCoveredForFaunaSurvey)" + "expression": "$geom.areaHa(sitesCoveredForFarmSurvey)" }, "dataType": "number", "name": "calculatedAreaTreatedHa", @@ -10350,7 +10316,7 @@ }, { "computed": { - "expression": "$geom.lengthKm(sitesCoveredForFaunaSurvey)" + "expression": "$geom.lengthKm(sitesCoveredForFarmSurvey)" }, "dataType": "number", "name": "calculatedLengthTreatedKm", @@ -10477,122 +10443,14 @@ } ] }, - { - "allowRowDelete": "false", - "columns": [ - { - "dataType": "text", - "name": "participationIndividualsOrGroups", - "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", - "constraints": [ - "Individuals", - "Groups" - ], - "validate": "required" - }, - { - "dataType": "number", - "name": "participationIndividualNumber", - "defaultValue": 0, - "behaviour": [ - { - "condition": "participationIndividualsOrGroups == \"Individuals\"", - "type": "enable" - } - ], - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "participationGroupNumber", - "behaviour": [ - { - "condition": "participationIndividualsOrGroups == \"Groups\"", - "type": "enable" - } - ], - "constraints": [ - "0", - "1-10", - "11-20", - "21-30", - "31-40", - "41-50" - ] - }, - { - "dataType": "number", - "name": "firstNationIndividualNumber", - "defaultValue": 0, - "behaviour": [ - { - "condition": "participationIndividualsOrGroups == \"Individuals\"", - "type": "enable" - } - ], - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - }, - { - "param": { - "expression": "participationIndividualNumber", - "type": "computed" - }, - "rule": "max" - } - ] - }, - { - "dataType": "text", - "name": "firstNationGroupNumber", - "behaviour": [ - { - "condition": "participationIndividualsOrGroups == \"Groups\"", - "type": "enable" - } - ], - "constraints": [ - "0", - "1-10", - "11-20", - "21-30", - "31-40", - "41-50" - ], - "validate": [ - { - "rule": "required" - }, - { - "param": { - "expression": "participationGroupNumber", - "type": "computed" - }, - "rule": "max", - "message": "The number of first nation participants cannot be greater than the total number of participants" - } - ] - }, - { - "dataType": "text", - "name": "participationDetails", - "validate": "required, maxSize[3000]" - } - ], - "dataType": "list", - "name": "participationInformationTableFau" - }, { "dataType": "number", "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { - "expression": "sum(faunaSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" + "expression": "sum(farmManagementSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" } }, { @@ -10618,10 +10476,11 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { - "expression": "sum(faunaSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" + "expression": "sum(farmManagementSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" } }, { @@ -10646,7 +10505,7 @@ }, { "dataType": "text", - "name": "totalInvoicedFaunaMismatched", + "name": "totalInvoicedFarmMismatched", "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", "validate": "maxSize[400],required", "behaviour": [ @@ -10688,8 +10547,8 @@ ] } ], - "modelName": "NHT - Fauna survey", - "title": "Fauna Survey", + "modelName": "NHT - Farm Management Survey", + "title": "Farm Management Survey", "viewModel": [ { "type": "section", @@ -10753,7 +10612,7 @@ "type": "textarea" } ], - "source": "participationInformationTableFau", + "source": "participationInformationTableFms", "type": "table" }, { @@ -10785,7 +10644,7 @@ "type": "row", "items": [ { - "preLabel": "(i) Total Number of baseline fauna surveys completed for this reporting period", + "preLabel": "(i) Total Number of baseline farm management surveys completed for this reporting period", "source": "totalSurveyBaseline", "type": "number" } @@ -10795,7 +10654,7 @@ "type": "row", "items": [ { - "preLabel": "(ii) Total Number of baseline fauna surveys invoiced for this reporting period", + "preLabel": "(ii) Total Number of baseline farm management surveys invoiced for this reporting period", "source": "totalSurveyBaselineInvoiced", "type": "number" } @@ -10811,7 +10670,7 @@ "type": "row", "items": [ { - "preLabel": "(iii) Total Number of indicator fauna surveys completed for this reporting period", + "preLabel": "(iii) Total Number of indicator farm management surveys completed for this reporting period", "source": "totalSurveyIndicator", "type": "number" } @@ -10821,7 +10680,7 @@ "type": "row", "items": [ { - "preLabel": "(iv) Total Number of indicator fauna surveys invoiced for this reporting period", + "preLabel": "(iv) Total Number of indicator farm management surveys invoiced for this reporting period", "source": "totalSurveyIndicatorInvoiced", "type": "number" } @@ -10836,7 +10695,7 @@ "items": [ { "preLabel": "If the total invoiced is different to the total completed, please provide the reason", - "source": "totalInvoicedFaunaMismatched", + "source": "totalInvoicedFarmMismatched", "type": "textarea", "rows": 4, "placeholder": "" @@ -10847,7 +10706,7 @@ "addRowText": "Add survey", "removeRowText": "Delete this survey", "userAddedRows": true, - "source": "faunaSurveys", + "source": "farmManagementSurveys", "type": "repeat", "items": [ { @@ -10887,7 +10746,7 @@ }, { "type": "repeat", - "source": "faunaDataSets", + "source": "farmManagementDataSets", "userAddedRows": true, "addRowText": "New data set", "removeRowText": "Delete this data set", @@ -10984,8 +10843,8 @@ "type": "row", "items": [ { - "preLabel": "Sites covered by fauna survey", - "source": "sitesCoveredForFaunaSurvey", + "preLabel": "Sites covered by farm management survey", + "source": "sitesCoveredForFarmSurvey", "type": "feature" } ] @@ -11036,7 +10895,7 @@ "type": "row", "items": [ { - "preLabel": "Actual area (ha) / length (km) covered by fauna survey", + "preLabel": "Actual area (ha) / length (km) covered by farm management survey", "source": "areaTreatedHa", "type": "number", "displayOptions": { @@ -11140,31 +10999,6 @@ ] } ] - }, - { - "columns": [ - { - "width": "55%", - "source": "species", - "title": "Target species recorded", - "type": "speciesSelect" - }, - { - "width": "25%", - "source": "individualsOrGroups", - "title": "Individuals or groups?", - "type": "selectOne" - }, - { - "width": "20%", - "source": "numberOfIndividualsOrGroups", - "title": "Number of individuals / groups in fauna survey", - "type": "number" - } - ], - "userAddedRows": true, - "source": "faunaSurveySpeciesTable", - "type": "table" } ] } @@ -11237,18 +11071,380 @@ ] }, "modelName": null, - "templateName": "nhtFaunaSurvey", + "templateName": "nhtFarmManagementSurvey", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Fauna survey", + "name": "NHT - Farm Management Survey", "description": null }, { "collapsedByDefault": false, "template": { "dataModel": [ + { + "name": "faunaSurveys", + "dataType": "list", + "minSize": 1, + "columns": [ + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "dataType": "text", + "name": "baselineOrIndicatorSurvey", + "description": "", + "constraints": [ + "Baseline", + "Indicator" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "surveyObjective", + "description": "What the survey aim to capture? How will the information obtained from the survey be used?", + "validate": "required,maxSize[3000]" + }, + { + "dataType": "list", + "name": "faunaDataSets", + "columns": [ + { + "name": "dataSetId", + "entityType": "au.org.ala.ecodata.DataSetSummary", + "dataType": "text", + "description": "This section will require the Data Set Name so the Metadata fields in the Data Set Summary tab should be filled out before the Outcome Report is due. More than one dataset if relevant for this Project Baseline could be selected.", + "validate": "required", + "constraints": { + "textProperty": "name", + "valueProperty": "dataSetId", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.custom.dataSets" + }, + "filter": { + "namespace": "dataSet", + "expression": "dataSet.serviceId == 13 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" + } + } + }, + "behaviour": [ + { + "type": "pre_populate", + "config": { + "waitForInitialisation": true, + "source": { + "url": "/site/geojson", + "params": [ + { + "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.siteId", + "name": "id", + "type": "computed", + "required": true + } + ] + }, + "target": { + "type": "singleValue", + "name": "sitesCoveredForFaunaSurvey" + } + } + }, + { + "type": "pre_populate", + "config": { + "waitForInitialisation": true, + "source": { + "url": "/project/getSpeciesRecordsFromActivity", + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + }, + { + "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.activityId", + "name": "activityId", + "type": "computed", + "required": true + } + ] + }, + "mapping": [ + { + "source-path": "species", + "target": "species" + }, + { + "source-path": "individualsOrGroups", + "target": "individualsOrGroups" + }, + { + "source-path": "individualCount", + "target": "numberOfIndividualsOrGroups" + } + ], + "target": { + "type": "singleLoad", + "name": "faunaSurveySpeciesTable" + } + } + } + ] + }, + { + "columns": [ + { + "dataType": "species", + "name": "species", + "validate": "required" + }, + { + "dataType": "text", + "name": "individualsOrGroups", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "numberOfIndividualsOrGroups", + "validate": "required,min[0]" + } + ], + "dataType": "list", + "name": "faunaSurveySpeciesTable" + }, + { + "name": "projectBaselines", + "dataType": "stringList", + "description": "Select the relevant Project Baseline as listed in the Monitoring Methodology section of the MERI Plan.", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.baselines" + }, + "constraints": { + "textProperty": "baseline", + "valueProperty": "code", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.custom.details.baseline.rows" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "stringList", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.investmentPriorities" + }, + "constraints": { + "type": "pre-populated", + "config": { + "source": { + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + } + ], + "url": "/project/listProjectInvestmentPriorities/" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, + { + "dataType": "date", + "name": "activitiesStartDate", + "description": "Specific the dates these events were held on.", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.startDate" + } + }, + { + "dataType": "date", + "name": "activitiesEndDate", + "description": "Specific the dates these events were held on.", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.endDate" + } + }, + { + "dataType": "feature", + "name": "sitesCoveredForFaunaSurvey", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesCoveredForFaunaSurvey)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesCoveredForFaunaSurvey)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKm" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "text", + "description": "Select the technique used to conduct the survey. If the EMSA Application tool was not used, you should select 'Other'.", + "name": "emsaProtocol", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.protocol" + }, + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.protocols" + } + } + } + }, + { + "dataType": "stringList", + "description": "Describe the technique (if Other) was selected.", + "name": "otherEmsaProtocol", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methods" + } + }, + { + "dataType": "text", + "name": "surveyMethodology", + "description": "Provide more details on what is being done.", + "validate": "required,maxSize[3000]", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methodDescription" + } + }, + { + "dataType": "text", + "name": "invoicingThisActivity", + "constraints": [ + "Yes", + "No" + ], + "validate": "required" + } + ], + "minSize": 1 + } + ] + }, { "allowRowDelete": "false", "columns": [ @@ -11356,436 +11552,61 @@ } ], "dataType": "list", - "name": "participationInformationTableFna" + "name": "participationInformationTableFau" }, { - "columns": [ + "dataType": "number", + "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(faunaSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" + } + }, + { + "dataType": "number", + "name": "totalSurveyBaselineInvoiced", + "validate": [ { - "dataType": "number", - "name": "noDaysConductingCulturalPractices", - "description": "", - "validate": "required" + "rule": "required" }, { - "dataType": "text", - "name": "individualsOrGroups", - "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", - "constraints": [ - "Individuals", - "Groups" - ], - "validate": "required" + "rule": "min[0]" }, { - "dataType": "number", - "name": "noOfParticipants", - "defaultValue": 0, - "behaviour": [ - { - "condition": "individualsOrGroups == \"Individuals\"", - "type": "enable" - } - ], - "validate": "required,min[0]" + "param": { + "expression": "totalSurveyBaseline", + "type": "computed" + }, + "rule": "max" + } + ], + "defaultValue": "" + }, + { + "dataType": "number", + "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(faunaSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" + } + }, + { + "dataType": "number", + "name": "totalSurveyIndicatorInvoiced", + "validate": [ + { + "rule": "required" }, { - "dataType": "text", - "name": "groupParticipants", - "behaviour": [ - { - "condition": "individualsOrGroups == \"Groups\"", - "type": "enable" - } - ], - "constraints": [ - "0", - "1-10", - "11-20", - "21-30", - "31-40", - "41-50" - ] - }, - { - "dataType": "number", - "name": "noOfFirstNationsParticipants", - "defaultValue": 0, - "behaviour": [ - { - "condition": "individualsOrGroups == \"Individuals\"", - "type": "enable" - } - ], - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - }, - { - "param": { - "expression": "noOfParticipants", - "type": "computed" - }, - "rule": "max" - } - ] - }, - { - "dataType": "text", - "name": "groupFirstNationsParticipants", - "behaviour": [ - { - "condition": "individualsOrGroups == \"Groups\"", - "type": "enable" - } - ], - "constraints": [ - "0", - "1-10", - "11-20", - "21-30", - "31-40", - "41-50" - ], - "validate": [ - { - "rule": "required" - }, - { - "param": { - "expression": "groupParticipants", - "type": "computed" - }, - "rule": "max", - "message": "The number of first nation participants cannot be greater than the total number of participants" - } - ] - }, - { - "dataType": "date", - "name": "activitiesStartDate", - "description": "Specific the dates these events were held on.", - "validate": "required" - }, - { - "dataType": "date", - "name": "activitiesEndDate", - "description": "", - "validate": [ - { - "rule": "required" - }, - { - "rule": "future", - "param": { - "expression": "formatDateForValidation(activitiesStartDate)", - "type": "computed" - } - } - ] - }, - { - "dataType": "text", - "name": "siteVisit", - "constraints": [ - "Single", - "Multiple" - ], - "validate": "required" - }, - { - "dataType": "number", - "name": "noOfSitesActivityOccurred", - "description": "", - "validate": "required" - }, - { - "dataType": "text", - "name": "typeOfSite", - "constraints": [ - "Sacred", - "Food source", - "Ceremonial", - "Other" - ], - "validate": "required" - }, - { - "dataType": "text", - "name": "otherTypeOfSite", - "description": "", - "behaviour": [ - { - "condition": "typeOfSite == \"Other\"", - "type": "enable" - } - ], - "validate": "required,maxSize[100]" - }, - { - "dataType": "feature", - "name": "sitesUndertakeForFirstNations", - "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." - }, - { - "computed": { - "expression": "$geom.areaHa(sitesUndertakeForFirstNations)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHa", - "units": "ha", - "decimalPlaces": 3 - }, - { - "computed": { - "expression": "$geom.lengthKm(sitesUndertakeForFirstNations)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKm", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKm > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHa" - }, - "dataType": "number", - "name": "areaTreatedHa", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "min[0]" - }, - { - "dataType": "text", - "name": "mappingNotAlignedReason", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, - { - "dataType": "text", - "name": "mappingNotAlignedComments", - "validate": "required,maxSize[100]", - "behaviour": [ - { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReason" - } - ] - }, - { - "dataType": "document", - "name": "extraMappingDetails", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKm" - }, - "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 - }, - { - "columns": [ - { - "dataType": "text", - "name": "activityTypeUndertaken", - "constraints": [ - "Survey", - "Site management", - "Assessment", - "Cultural event", - "Curation", - "Other" - ] - }, - { - "dataType": "text", - "name": "otherActivityTypeUndertaken", - "description": "", - "behaviour": [ - { - "condition": "activityTypeUndertaken == \"Other\"", - "type": "enable" - } - ], - "validate": "required,maxSize[100]" - }, - { - "dataType": "text", - "name": "purposeOfActivity", - "description": "", - "validate": "required,maxSize[300]" - }, - { - "dataType": "text", - "name": "activityDescription", - "description": "", - "validate": "maxSize[300]" - }, - { - "dataType": "text", - "name": "surveyObjective", - "description": "", - "validate": "maxSize[300]" - }, - { - "dataType": "text", - "name": "surveyTechnique", - "description": "", - "validate": "maxSize[300]" - }, - { - "dataType": "text", - "name": "siteCondition", - "constraints": [ - "Poor", - "Fair", - "Good", - "Excellent" - ], - "validate": "" - }, - { - "dataType": "text", - "name": "siteConditionDetails", - "description": "", - "validate": "maxSize[300]" - } - ], - "dataType": "list", - "name": "firstNationsDetails" - }, - { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "label", - "type": "pre-populated", - "config": { - "source": { - "url": "/project/outcomesByScores", - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - }, - { - "expression": "scores", - "name": "scoreIds", - "type": "computed" - } - ] - } - } - } - }, - { - "name": "investmentPriorities2", - "dataType": "text", - "description": "", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.investmentPriorities" - } - } - } - }, - { - "dataType": "text", - "name": "otherInvestmentPriority", - "description": "Describe the investment priority (if Other) was selected", - "behaviour": [ - { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" - } - ] - }, - { - "dataType": "text", - "name": "invoicingThisActivity", - "constraints": [ - "Yes", - "No" - ], - "validate": "required" - } - ], - "dataType": "list", - "name": "firstNationAreasControlled" - }, - { - "name": "sitePrepCountHeader", - "type": "number", - "decimalPlaces": 0, - "computed": { - "expression": "count(firstNationAreasControlled, \"threatenedEcologicalCommunity\")" - } - }, - { - "dataType": "number", - "name": "totalNoDaysCulturalPractices", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(firstNationAreasControlled, \"noDaysConductingCulturalPractices\")" - } - }, - { - "dataType": "number", - "name": "totalNoDaysCulturalPracticesInvoiced", - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" + "rule": "min[0]" }, { "param": { - "expression": "totalNoDaysCulturalPractices", + "expression": "totalSurveyIndicator", "type": "computed" }, "rule": "max" @@ -11795,12 +11616,12 @@ }, { "dataType": "text", - "name": "totalInvoicedFirstNationsMismatched", + "name": "totalInvoicedFaunaMismatched", "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", "validate": "maxSize[400],required", "behaviour": [ { - "condition": "+totalNoDaysCulturalPracticesInvoiced < +totalNoDaysCulturalPractices", + "condition": "+totalSurveyIndicatorInvoiced < +totalSurveyIndicator or +totalSurveyBaselineInvoiced < +totalSurveyBaseline", "type": "enable" } ] @@ -11817,11 +11638,12 @@ { "dataType": "boolean", "name": "dataUploaded", - "description": "" + "description": "" }, { - "name": "projectAssuranceDetails", "dataType": "text", + "name": "projectAssuranceDetails", + "description": "", "validate": "required,maxSize[5000]" }, { @@ -11836,149 +11658,116 @@ ] } ], - "modelName": "NHT - First nations australians cultural practices", - "title": "First Nations Australians Cultural Practices", + "modelName": "NHT - Fauna survey", + "title": "Fauna Survey", "viewModel": [ { - "type": "row", + "type": "section", "items": [ { - "type": "literal", - "source": "

Participation information

" - } - ] - }, - { - "disableTableUpload": true, - "columns": [ - { - "width": "10%", - "source": "participationIndividualsOrGroups", - "title": "Are individuals or groups delivering this service?", - "type": "selectOne" + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Participation information

" + } + ] }, { - "width": "20%", - "type": "col", - "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ + "disableTableUpload": true, + "columns": [ { - "source": "participationIndividualNumber", - "type": "number" + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" }, { - "source": "participationGroupNumber", - "type": "selectOne" + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "firstNationIndividualNumber", + "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" } - ] + ], + "source": "participationInformationTableFau", + "type": "table" }, { - "type": "col", - "width": "20%", - "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "type": "row", "items": [ { - "source": "firstNationIndividualNumber", - "type": "number" - }, - { - "source": "firstNationGroupNumber", - "type": "selectOne" + "type": "literal", + "source": "

Survey information

Before completing this section, please ensure you have created a Data Set Summary information for every data set produced by the surveys you intend to report

" } ] }, { - "width": "20%", - "source": "participationDetails", - "rows": 4, - "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", - "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", - "type": "textarea" - } - ], - "source": "participationInformationTableFna", - "type": "table" - }, - { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Totals Summary

" - } - ] - }, - { - "type": "row", - "items": [ - { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "(i) Total number of days conducting cultural practices during this reporting period", - "source": "totalNoDaysCulturalPractices", - "type": "number" - } - ] + "type": "literal", + "source": "

Totals Summary

" } ] }, { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", + "type": "col", + "css": "span4 col-border-right", "items": [ { - "preLabel": "(ii) Total number of days conducting cultural practices invoiced for during this reporting period", - "source": "totalNoDaysCulturalPracticesInvoiced", - "type": "number" - } - ] - } - ] - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "If the total invoiced is different to the total completed, please provide the reason", - "source": "totalInvoicedFirstNationsMismatched", - "type": "textarea", - "rows": 4, - "placeholder": "" - } - ] - }, - { - "addRowText": "Add new First Nations Cultural Practice", - "userAddedRows": true, - "source": "firstNationAreasControlled", - "type": "repeat", - "items": [ - { - "type": "row", - "items": [ - { - "css": "span3", - "type": "col", - "items": [ + "type": "row", + "items": [ + { + "preLabel": "(i) Total Number of baseline fauna surveys completed for this reporting period", + "source": "totalSurveyBaseline", + "type": "number" + } + ] + }, { "type": "row", "items": [ { - "source": "relatedOutcomes", - "type": "selectOne", - "preLabel": "Which outcome statement/s does this activity relate to?" + "preLabel": "(ii) Total Number of baseline fauna surveys invoiced for this reporting period", + "source": "totalSurveyBaselineInvoiced", + "type": "number" } ] } @@ -11986,31 +11775,25 @@ }, { "type": "col", - "css": "span3 col-border-right", + "css": "span4 col-border-right", "items": [ { "type": "row", "items": [ { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" + "preLabel": "(iii) Total Number of indicator fauna surveys completed for this reporting period", + "source": "totalSurveyIndicator", + "type": "number" } ] - } - ] - }, - { - "css": "span3", - "type": "col", - "items": [ + }, { "type": "row", "items": [ { - "source": "invoicingThisActivity", - "preLabel": "Are you invoicing for this activity in this reporting period?", - "type": "selectOne" + "preLabel": "(iv) Total Number of indicator fauna surveys invoiced for this reporting period", + "source": "totalSurveyIndicatorInvoiced", + "type": "number" } ] } @@ -12020,67 +11803,78 @@ }, { "type": "row", - "css": "border-bottom", "items": [ { - "type": "col", - "css": "span3 col-border-right", + "preLabel": "If the total invoiced is different to the total completed, please provide the reason", + "source": "totalInvoicedFaunaMismatched", + "type": "textarea", + "rows": 4, + "placeholder": "" + } + ] + }, + { + "addRowText": "Add survey", + "removeRowText": "Delete this survey", + "userAddedRows": true, + "source": "faunaSurveys", + "type": "repeat", + "items": [ + { + "type": "row", "items": [ { - "type": "row", + "type": "col", "items": [ { - "preLabel": "Number of days conducting cultural practices", - "source": "noDaysConductingCulturalPractices", - "type": "number" + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s relates to this survey?" } ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ + }, { - "type": "row", + "type": "col", "items": [ { - "preLabel": "Site Visit", - "source": "siteVisit", - "type": "selectOne" + "source": "baselineOrIndicatorSurvey", + "type": "selectOne", + "preLabel": "Baseline survey or indicator (follow-up) survey?" } ] } ] }, { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Number of sites where activity occurred", - "source": "noOfSitesActivityOccurred", - "type": "number" - } - ] + "source": "surveyObjective", + "preLabel": "Survey objective", + "type": "text" } ] }, { - "type": "col", - "css": "span3 col-border-right", + "type": "repeat", + "source": "faunaDataSets", + "userAddedRows": true, + "addRowText": "New data set", + "removeRowText": "Delete this data set", "items": [ { "type": "row", + "css": "border-bottom", "items": [ { - "preLabel": "Type of site", - "source": "typeOfSite", - "type": "selectOne" + "type": "col", + "items": [ + { + "source": "dataSetId", + "type": "selectOne", + "preLabel": "Please select the data set produced by this survey. Note it must have already been entered on the Data Set Summary tab." + } + ] } ] }, @@ -12088,360 +11882,337 @@ "type": "row", "items": [ { - "preLabel": "Type of site (If Other)", - "source": "otherTypeOfSite", - "type": "text" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "projectBaselines", + "type": "selectMany", + "preLabel": "Which project baseline/s relate to this survey?", + "readonly": "readonly" + } + ] + } + ] + }, { - "preLabel": "Site/s where activity was undertaken", - "source": "sitesUndertakeForFirstNations", - "type": "feature" - } - ] - }, - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" + } + ] + } + ] + }, { - "source": "calculatedAreaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Activity start date", + "source": "activitiesStartDate", + "type": "date" + } + ] + } + ] + }, { - "source": "calculatedLengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Activity end date", + "source": "activitiesEndDate", + "type": "date" + } + ] + } + ] + }, { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetails", - "type": "document" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Sites covered by fauna survey", + "source": "sitesCoveredForFaunaSurvey", + "type": "feature" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedLengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" + } + ] + } + ] + }, { - "preLabel": "Actual area (ha) / length (km) where activity has been undertaken", - "source": "areaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Actual area (ha) / length (km) covered by fauna survey", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "lengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 + } + ] + } + ] + }, { - "source": "lengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Survey technique", + "source": "emsaProtocol", + "type": "selectOne", + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Survey technique (if Other)", + "source": "otherEmsaProtocol", + "type": "select2Many" + } + ] + } + ] + }, { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", - "type": "selectOne" + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "surveyMethodology", + "preLabel": "Survey methodology", + "type": "text" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "invoicingThisActivity", + "preLabel": "Are you invoicing for this activity in this reporting period?", + "type": "selectOne" + } + ] + } + ] } ] }, { - "type": "row", - "items": [ + "columns": [ { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ + "width": "55%", + "source": "species", + "title": "Target species recorded", + "type": "speciesSelect" + }, { - "preLabel": "Activity start date", - "source": "activitiesStartDate", - "type": "date" + "width": "25%", + "source": "individualsOrGroups", + "title": "Individuals or groups?", + "type": "selectOne" + }, + { + "width": "20%", + "source": "numberOfIndividualsOrGroups", + "title": "Number of individuals / groups in fauna survey", + "type": "number" } - ] + ], + "userAddedRows": true, + "source": "faunaSurveySpeciesTable", + "type": "table" } ] - }, + } + ] + }, + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Activity end date", - "source": "activitiesEndDate", - "type": "date" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Individuals or groups?", - "source": "individualsOrGroups", - "type": "selectOne" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Number of participants", - "source": "noOfParticipants", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "groupParticipants", - "type": "selectOne" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Number of First Nations participants", - "source": "noOfFirstNationsParticipants", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "groupFirstNationsParticipants", - "type": "selectOne" - } - ] - } - ] + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" } ] }, { - "columns": [ - { - "width": "15%", - "title": "Type of activity undertaken", - "type": "col", - "items": [ - { - "type": "row", - "items": [ - { - "source": "activityTypeUndertaken", - "type": "selectOne" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "otherActivityTypeUndertaken", - "title": "Type of activity (if other)", - "type": "textarea" - } - ] - } - ] - }, - { - "width": "15%", - "source": "purposeOfActivity", - "title": "Purpose of activity", - "type": "textarea" - }, - { - "width": "15%", - "source": "activityDescription", - "title": "Detailed description of activity", - "type": "textarea" - }, - { - "width": "15%", - "source": "surveyObjective", - "title": "Survey/assessment objective (if applicable)", - "type": "textarea" - }, + "type": "row", + "items": [ { - "width": "15%", - "source": "surveyTechnique", - "title": "Survey/assessment technique (if applicable)", - "type": "textarea" - }, + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ { - "width": "10%", - "source": "siteCondition", - "title": "Site condition (if applicable)", - "type": "selectOne" + "type": "literal", + "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" }, { - "width": "15%", - "source": "siteConditionDetails", - "title": "Site condition further details (if applicable)", - "type": "textarea" + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" } - ], - "userAddedRows": true, - "source": "firstNationsDetails", - "type": "table" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" - } - ] - }, - { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" + ] }, { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." - } - ] - }, - { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, { - "title": "Attached documents", - "source": "attachments", - "type": "document" + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" + } + ] } ] } ] }, "modelName": null, - "templateName": "nhtFirstNation", + "templateName": "nhtFaunaSurvey", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - First nations australians cultural practices", + "name": "NHT - Fauna survey", "description": null }, { @@ -12449,389 +12220,125 @@ "template": { "dataModel": [ { - "name": "floraSurveys", - "dataType": "list", - "minSize": 1, + "allowRowDelete": "false", "columns": [ - { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "outcomes" - } - } - } - }, { "dataType": "text", - "name": "baselineOrIndicatorSurvey", - "description": "", + "name": "participationIndividualsOrGroups", + "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", "constraints": [ - "Baseline", - "Indicator" + "Individuals", + "Groups" ], "validate": "required" }, { - "dataType": "text", - "name": "surveyObjective", - "description": "What the survey aim to capture? How will the information obtained from the survey be used?", - "validate": "required,maxSize[3000]" + "dataType": "number", + "name": "participationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": "required,min[0]" }, { - "dataType": "number", - "name": "numberOfSurveys", - "validate": "required,min[1],max[1]", - "defaultValue": 1, - "readonly": true + "dataType": "text", + "name": "participationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ] }, { - "dataType": "list", - "name": "floraDataSets", - "columns": [ + "dataType": "number", + "name": "firstNationIndividualNumber", + "defaultValue": 0, + "behaviour": [ { - "name": "dataSetId", - "entityType": "au.org.ala.ecodata.DataSetSummary", - "dataType": "text", - "description": "This section will require the Data Set Name so the Metadata fields in the Data Set Summary tab should be filled out before the Outcome Report is due. More than one dataset if relevant for this Project Baseline could be selected.", - "validate": "required", - "constraints": { - "textProperty": "name", - "valueProperty": "dataSetId", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.custom.dataSets" - }, - "filter": { - "namespace": "dataSet", - "expression": "dataSet.serviceId == 15 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" - } - } - }, - "behaviour": [ - { - "type": "pre_populate", - "config": { - "waitForInitialisation": true, - "source": { - "url": "/project/getSpeciesRecordsFromActivity", - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - }, - { - "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.activityId", - "name": "activityId", - "type": "computed", - "required": true - } - ] - }, - "mapping": [ - { - "source-path": "species", - "target": "species" - }, - { - "source-path": "threatenedEcologicalCommunity", - "target": "threatenedEcologicalCommunity" - }, - { - "source-path": "individualsOrGroups", - "target": "individualsOrGroups" - }, - { - "source-path": "individualCount", - "target": "numberOfIndividualsOrGroups" - } - ], - "target": { - "type": "singleLoad", - "name": "floraSurveySpeciesTable" - } - } - }, - { - "type": "pre_populate", - "config": { - "waitForInitialisation": true, - "source": { - "url": "/site/geojson", - "params": [ - { - "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.siteId", - "name": "id", - "type": "computed", - "required": true - } - ] - }, - "target": { - "type": "singleValue", - "name": "sitesCoveredForFloraSurvey" - } - } - } - ] - }, + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": [ { - "columns": [ - { - "dataType": "species", - "name": "species", - "validate": "required" - }, - { - "dataType": "text", - "name": "threatenedEcologicalCommunity", - "validate": "maxSize[300]" - }, - { - "dataType": "text", - "name": "individualsOrGroups", - "constraints": [ - "Individuals", - "Groups" - ], - "validate": "required" - }, - { - "dataType": "number", - "name": "numberOfIndividualsOrGroups", - "validate": "required,min[0]" - } - ], - "dataType": "list", - "name": "floraSurveySpeciesTable" + "rule": "required" }, { - "name": "projectBaselines", - "dataType": "stringList", - "description": "Select the relevant Project Baseline as listed in the Monitoring Methodology section of the MERI Plan.", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.baselines" - }, - "constraints": { - "textProperty": "baseline", - "valueProperty": "code", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.custom.details.baseline.rows" - } - } - } + "rule": "min[0]" }, { - "name": "investmentPriorities2", - "dataType": "stringList", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.investmentPriorities" + "param": { + "expression": "participationIndividualNumber", + "type": "computed" }, - "constraints": { - "type": "pre-populated", - "config": { - "source": { - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - } - ], - "url": "/project/listProjectInvestmentPriorities/" - } - } - } - }, + "rule": "max" + } + ] + }, + { + "dataType": "text", + "name": "firstNationGroupNumber", + "behaviour": [ { - "dataType": "text", - "name": "otherInvestmentPriority", - "behaviour": [ - { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" - } - ] + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ], + "validate": [ + { + "rule": "required" }, { - "dataType": "date", - "name": "activitiesStartDate", - "description": "Specific the dates these events were held on.", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.startDate" - } - }, - { - "dataType": "date", - "name": "activitiesEndDate", - "description": "Specific the dates these events were held on.", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.endDate" - } - }, - { - "dataType": "feature", - "name": "sitesCoveredForFloraSurvey", - "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." - }, - { - "computed": { - "expression": "$geom.areaHa(sitesCoveredForFloraSurvey)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHa", - "units": "ha", - "decimalPlaces": 3 - }, - { - "computed": { - "expression": "$geom.lengthKm(sitesCoveredForFloraSurvey)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKm", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKm > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHa" - }, - "dataType": "number", - "name": "areaTreatedHa", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "mappingNotAlignedReason", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, - { - "dataType": "text", - "name": "mappingNotAlignedComments", - "validate": "required,maxSize[100]", - "behaviour": [ - { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReason" - } - ] - }, - { - "dataType": "document", - "name": "extraMappingDetails", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "$geom.lengthKm(sitesCoveredForFloraSurvey)" - }, - "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 - }, - { - "dataType": "text", - "description": "Select the technique used to conduct the survey. If the EMSA Application tool was not used, you should select 'Other'.", - "name": "emsaProtocol", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.protocol" + "param": { + "expression": "participationGroupNumber", + "type": "computed" }, - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.protocols" - } - } - } - }, - { - "dataType": "stringList", - "description": "Describe the technique (if Other) was selected.", - "name": "otherEmsaProtocol", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methods" - } - }, - { - "dataType": "text", - "name": "surveyMethodology", - "description": "Provide more details on what is being done.", - "validate": "required,maxSize[3000]", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methodDescription" - } - }, - { - "dataType": "text", - "name": "invoicingThisActivity", - "constraints": [ - "Yes", - "No" - ], - "validate": "required" + "rule": "max", + "message": "The number of first nation participants cannot be greater than the total number of participants" } - ], - "minSize": 1 + ] + }, + { + "dataType": "text", + "name": "participationDetails", + "validate": "required, maxSize[3000]" } - ] + ], + "dataType": "list", + "name": "participationInformationTableFna" }, { - "allowRowDelete": "false", "columns": [ + { + "dataType": "number", + "name": "noDaysConductingCulturalPractices", + "description": "", + "validate": "required" + }, { "dataType": "text", - "name": "participationIndividualsOrGroups", + "name": "individualsOrGroups", "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", "constraints": [ "Individuals", @@ -12841,11 +12348,11 @@ }, { "dataType": "number", - "name": "participationIndividualNumber", + "name": "noOfParticipants", "defaultValue": 0, "behaviour": [ { - "condition": "participationIndividualsOrGroups == \"Individuals\"", + "condition": "individualsOrGroups == \"Individuals\"", "type": "enable" } ], @@ -12853,10 +12360,10 @@ }, { "dataType": "text", - "name": "participationGroupNumber", + "name": "groupParticipants", "behaviour": [ { - "condition": "participationIndividualsOrGroups == \"Groups\"", + "condition": "individualsOrGroups == \"Groups\"", "type": "enable" } ], @@ -12871,11 +12378,11 @@ }, { "dataType": "number", - "name": "firstNationIndividualNumber", + "name": "noOfFirstNationsParticipants", "defaultValue": 0, "behaviour": [ { - "condition": "participationIndividualsOrGroups == \"Individuals\"", + "condition": "individualsOrGroups == \"Individuals\"", "type": "enable" } ], @@ -12888,7 +12395,7 @@ }, { "param": { - "expression": "participationIndividualNumber", + "expression": "noOfParticipants", "type": "computed" }, "rule": "max" @@ -12897,10 +12404,10 @@ }, { "dataType": "text", - "name": "firstNationGroupNumber", + "name": "groupFirstNationsParticipants", "behaviour": [ { - "condition": "participationIndividualsOrGroups == \"Groups\"", + "condition": "individualsOrGroups == \"Groups\"", "type": "enable" } ], @@ -12918,7 +12425,7 @@ }, { "param": { - "expression": "participationGroupNumber", + "expression": "groupParticipants", "type": "computed" }, "rule": "max", @@ -12927,226 +12434,522 @@ ] }, { - "dataType": "text", - "name": "participationDetails", - "validate": "required, maxSize[3000]" - } - ], - "dataType": "list", - "name": "participationInformationTableFls" - }, - { - "dataType": "number", - "name": "totalSurveyBaseline", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(floraSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" - } - }, - { - "dataType": "number", - "name": "totalSurveyBaselineInvoiced", - "validate": [ - { - "rule": "required" + "dataType": "date", + "name": "activitiesStartDate", + "description": "Specific the dates these events were held on.", + "validate": "required" }, { - "rule": "min[0]" + "dataType": "date", + "name": "activitiesEndDate", + "description": "", + "validate": [ + { + "rule": "required" + }, + { + "rule": "future", + "param": { + "expression": "formatDateForValidation(activitiesStartDate)", + "type": "computed" + } + } + ] }, { - "param": { - "expression": "totalSurveyBaseline", - "type": "computed" - }, - "rule": "max" - } - ], - "defaultValue": "" - }, - { - "dataType": "number", - "name": "totalSurveyIndicator", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(floraSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" - } - }, - { - "dataType": "number", - "name": "totalSurveyIndicatorInvoiced", - "defaultValue": "", - "validate": [ + "dataType": "text", + "name": "siteVisit", + "constraints": [ + "Single", + "Multiple" + ], + "validate": "required" + }, { - "rule": "required" + "dataType": "number", + "name": "noOfSitesActivityOccurred", + "description": "", + "validate": "required" }, { - "rule": "min[0]" + "dataType": "text", + "name": "typeOfSite", + "constraints": [ + "Sacred", + "Food source", + "Ceremonial", + "Other" + ], + "validate": "required" }, { - "param": { - "expression": "totalSurveyIndicator", - "type": "computed" - }, - "rule": "max" - } - ] - }, - { - "dataType": "text", - "name": "totalInvoicedFloraMismatched", - "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", - "validate": "maxSize[400],required", - "behaviour": [ + "dataType": "text", + "name": "otherTypeOfSite", + "description": "", + "behaviour": [ + { + "condition": "typeOfSite == \"Other\"", + "type": "enable" + } + ], + "validate": "required,maxSize[100]" + }, { - "condition": "+totalSurveyIndicatorInvoiced < +totalSurveyIndicator or +totalSurveyBaselineInvoiced < +totalSurveyBaseline", - "type": "enable" - } - ] - }, - { - "dataType": "text", - "name": "comments", - "validate": "maxSize[1500]" - }, - { - "dataType": "image", - "name": "photographicEvidence" - }, - { - "dataType": "boolean", - "name": "dataUploaded", - "description": "" - }, - { - "dataType": "text", - "name": "projectAssuranceDetails", - "description": "", - "validate": "required,maxSize[5000]" - }, - { - "dataType": "list", - "name": "assuranceDocuments", - "columns": [ + "dataType": "feature", + "name": "sitesUndertakeForFirstNations", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + }, { - "dataType": "document", - "name": "attachments", - "description": "Please attach any Evidence of Service Delivery here." - } - ] - } - ], - "modelName": "NHT - Flora survey", - "title": "Flora Survey", - "viewModel": [ - { - "type": "section", - "items": [ + "computed": { + "expression": "$geom.areaHa(sitesUndertakeForFirstNations)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3 + }, { - "type": "row", - "items": [ + "computed": { + "expression": "$geom.lengthKm(sitesUndertakeForFirstNations)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ { - "type": "literal", - "source": "

Participation information

" + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } } ] }, { - "disableTableUpload": true, - "columns": [ - { - "width": "10%", - "source": "participationIndividualsOrGroups", - "title": "Are individuals or groups delivering this service?", - "type": "selectOne" - }, - { - "width": "20%", - "type": "col", - "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ - { - "source": "participationIndividualNumber", - "type": "number" - }, - { - "source": "participationGroupNumber", - "type": "selectOne" - } - ] - }, - { - "type": "col", - "width": "20%", - "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ - { - "source": "firstNationIndividualNumber", - "type": "number" - }, - { - "source": "firstNationGroupNumber", - "type": "selectOne" - } - ] - }, + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ { - "width": "20%", - "source": "participationDetails", - "rows": 4, - "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", - "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", - "type": "textarea" + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" } - ], - "source": "participationInformationTableFls", - "type": "table" + ] }, { - "type": "row", - "items": [ + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ { - "type": "literal", - "source": "

Survey information

Before completing this section, please ensure you have created a Data Set Summary information for every data set produced by the surveys you intend to report

" + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" } ] }, { - "type": "row", - "items": [ + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ { - "type": "literal", - "source": "

Totals Summary

" + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" } ] }, { - "type": "row", - "items": [ + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKm" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + }, + { + "columns": [ { - "type": "col", - "css": "span4 col-border-right", - "items": [ + "dataType": "text", + "name": "activityTypeUndertaken", + "constraints": [ + "Survey", + "Site management", + "Assessment", + "Cultural event", + "Curation", + "Other" + ] + }, + { + "dataType": "text", + "name": "otherActivityTypeUndertaken", + "description": "", + "behaviour": [ { - "type": "row", - "items": [ - { - "preLabel": "(i) Total Number of baseline flora surveys completed for this reporting period", - "source": "totalSurveyBaseline", - "type": "number" - } - ] - }, + "condition": "activityTypeUndertaken == \"Other\"", + "type": "enable" + } + ], + "validate": "required,maxSize[100]" + }, + { + "dataType": "text", + "name": "purposeOfActivity", + "description": "", + "validate": "required,maxSize[300]" + }, + { + "dataType": "text", + "name": "activityDescription", + "description": "", + "validate": "maxSize[300]" + }, + { + "dataType": "text", + "name": "surveyObjective", + "description": "", + "validate": "maxSize[300]" + }, + { + "dataType": "text", + "name": "surveyTechnique", + "description": "", + "validate": "maxSize[300]" + }, + { + "dataType": "text", + "name": "siteCondition", + "constraints": [ + "Poor", + "Fair", + "Good", + "Excellent" + ], + "validate": "" + }, + { + "dataType": "text", + "name": "siteConditionDetails", + "description": "", + "validate": "maxSize[300]" + } + ], + "dataType": "list", + "name": "firstNationsDetails" + }, + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "label", + "type": "pre-populated", + "config": { + "source": { + "url": "/project/outcomesByScores", + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + }, + { + "expression": "scores", + "name": "scoreIds", + "type": "computed" + } + ] + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "description": "Describe the investment priority (if Other) was selected", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, + { + "dataType": "text", + "name": "invoicingThisActivity", + "constraints": [ + "Yes", + "No" + ], + "validate": "required" + } + ], + "dataType": "list", + "name": "firstNationAreasControlled" + }, + { + "name": "sitePrepCountHeader", + "type": "number", + "decimalPlaces": 0, + "computed": { + "expression": "count(firstNationAreasControlled, \"threatenedEcologicalCommunity\")" + } + }, + { + "dataType": "number", + "name": "totalNoDaysCulturalPractices", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(firstNationAreasControlled, \"noDaysConductingCulturalPractices\")" + } + }, + { + "dataType": "number", + "name": "totalNoDaysCulturalPracticesInvoiced", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalNoDaysCulturalPractices", + "type": "computed" + }, + "rule": "max" + } + ], + "defaultValue": "" + }, + { + "dataType": "text", + "name": "totalInvoicedFirstNationsMismatched", + "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", + "validate": "maxSize[400],required", + "behaviour": [ + { + "condition": "+totalNoDaysCulturalPracticesInvoiced < +totalNoDaysCulturalPractices", + "type": "enable" + } + ] + }, + { + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" + }, + { + "dataType": "image", + "name": "photographicEvidence" + }, + { + "dataType": "boolean", + "name": "dataUploaded", + "description": "" + }, + { + "name": "projectAssuranceDetails", + "dataType": "text", + "validate": "required,maxSize[5000]" + }, + { + "dataType": "list", + "name": "assuranceDocuments", + "columns": [ + { + "dataType": "document", + "name": "attachments", + "description": "Please attach any Evidence of Service Delivery here." + } + ] + } + ], + "modelName": "NHT - First nations australians cultural practices", + "title": "First Nations Australians Cultural Practices", + "viewModel": [ + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Participation information

" + } + ] + }, + { + "disableTableUpload": true, + "columns": [ + { + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" + }, + { + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "firstNationIndividualNumber", + "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } + ], + "source": "participationInformationTableFna", + "type": "table" + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(i) Total number of days conducting cultural practices during this reporting period", + "source": "totalNoDaysCulturalPractices", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(ii) Total number of days conducting cultural practices invoiced for during this reporting period", + "source": "totalNoDaysCulturalPracticesInvoiced", + "type": "number" + } + ] + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "If the total invoiced is different to the total completed, please provide the reason", + "source": "totalInvoicedFirstNationsMismatched", + "type": "textarea", + "rows": 4, + "placeholder": "" + } + ] + }, + { + "addRowText": "Add new First Nations Cultural Practice", + "userAddedRows": true, + "source": "firstNationAreasControlled", + "type": "repeat", + "items": [ + { + "type": "row", + "items": [ + { + "css": "span3", + "type": "col", + "items": [ { "type": "row", "items": [ { - "preLabel": "(ii) Total Number of baseline flora surveys invoiced for this reporting period", - "source": "totalSurveyBaselineInvoiced", - "type": "number" + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s does this activity relate to?" } ] } @@ -13154,25 +12957,31 @@ }, { "type": "col", - "css": "span4 col-border-right", + "css": "span3 col-border-right", "items": [ { "type": "row", "items": [ { - "preLabel": "(iii) Total Number of indicator flora surveys completed for this reporting period", - "source": "totalSurveyIndicator", - "type": "number" + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" } ] - }, + } + ] + }, + { + "css": "span3", + "type": "col", + "items": [ { "type": "row", "items": [ { - "preLabel": "(iv) Total Number of indicator flora surveys invoiced for this reporting period", - "source": "totalSurveyIndicatorInvoiced", - "type": "number" + "source": "invoicingThisActivity", + "preLabel": "Are you invoicing for this activity in this reporting period?", + "type": "selectOne" } ] } @@ -13182,78 +12991,67 @@ }, { "type": "row", + "css": "border-bottom", "items": [ { - "preLabel": "If the total invoiced is different to the total completed, please provide the reason", - "source": "totalInvoicedFloraMismatched", - "type": "textarea", - "rows": 4, - "placeholder": "" - } - ] - }, - { - "addRowText": "Add survey", - "removeRowText": "Delete this survey", - "userAddedRows": true, - "source": "floraSurveys", - "type": "repeat", - "items": [ - { - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "type": "col", + "type": "row", "items": [ { - "source": "relatedOutcomes", - "type": "selectOne", - "preLabel": "Which outcome statement/s relates to this survey?" + "preLabel": "Number of days conducting cultural practices", + "source": "noDaysConductingCulturalPractices", + "type": "number" } ] - }, + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ { - "type": "col", + "type": "row", "items": [ { - "source": "baselineOrIndicatorSurvey", - "type": "selectOne", - "preLabel": "Baseline survey or indicator (follow-up) survey?" + "preLabel": "Site Visit", + "source": "siteVisit", + "type": "selectOne" } ] } ] }, { - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "source": "surveyObjective", - "preLabel": "Survey objective", - "type": "text" + "type": "row", + "items": [ + { + "preLabel": "Number of sites where activity occurred", + "source": "noOfSitesActivityOccurred", + "type": "number" + } + ] } ] }, { - "type": "repeat", - "source": "floraDataSets", - "userAddedRows": true, - "addRowText": "New data set", - "removeRowText": "Delete this data set", + "type": "col", + "css": "span3 col-border-right", "items": [ { "type": "row", - "css": "border-bottom", "items": [ { - "type": "col", - "items": [ - { - "source": "dataSetId", - "type": "selectOne", - "preLabel": "Please select the data set produced by this survey. Note it must have already been entered on the Data Set Summary tab." - } - ] + "preLabel": "Type of site", + "source": "typeOfSite", + "type": "selectOne" } ] }, @@ -13261,367 +13059,762 @@ "type": "row", "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "projectBaselines", - "type": "selectMany", - "preLabel": "Which project baseline/s relate to this survey?", - "readonly": "readonly" - } - ] - } - ] - }, + "preLabel": "Type of site (If Other)", + "source": "otherTypeOfSite", + "type": "text" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" - } - ] - } - ] - }, + "preLabel": "Site/s where activity was undertaken", + "source": "sitesUndertakeForFirstNations", + "type": "feature" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Activity start date", - "source": "activitiesStartDate", - "type": "date" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Activity end date", - "source": "activitiesEndDate", - "type": "date" - } - ] - } - ] - }, + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Sites covered by flora survey", - "source": "sitesCoveredForFloraSurvey", - "type": "feature" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedAreaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedLengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetails", - "type": "document" - } - ] - } - ] - }, + "source": "calculatedLengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Actual area (ha) / length (km) covered by flora survey", - "source": "areaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "lengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", - "type": "selectOne" - } - ] - }, - { - "type": "row", - "items": [ - { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 - } - ] - } - ] - }, + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Survey technique", - "source": "emsaProtocol", - "type": "selectOne", - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Survey technique (if Other)", - "source": "otherEmsaProtocol", - "type": "select2Many" - } - ] - } - ] - }, + "preLabel": "Actual area (ha) / length (km) where activity has been undertaken", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "surveyMethodology", - "preLabel": "Survey methodology", - "type": "text" - } - ] - } - ] - }, + "source": "lengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "invoicingThisActivity", - "preLabel": "Are you invoicing for this activity in this reporting period?", - "type": "selectOne" - } - ] - } - ] + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" } ] }, { - "columns": [ + "type": "row", + "items": [ { - "width": "40%", - "source": "species", - "title": "Target species recorded", - "type": "speciesSelect" - }, + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "width": "35%", - "source": "threatenedEcologicalCommunity", - "title": "Threatened ecological communities (if applicable)", - "type": "text" - }, + "preLabel": "Activity start date", + "source": "activitiesStartDate", + "type": "date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "width": "15%", + "preLabel": "Activity end date", + "source": "activitiesEndDate", + "type": "date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Individuals or groups?", "source": "individualsOrGroups", - "title": "Individuals or groups?", "type": "selectOne" - }, + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "width": "10%", - "source": "numberOfIndividualsOrGroups", - "title": "Number of groups / individuals in flora survey", + "preLabel": "Number of participants", + "source": "noOfParticipants", "type": "number" } - ], - "userAddedRows": true, - "source": "floraSurveySpeciesTable", - "type": "table" + ] + }, + { + "type": "row", + "items": [ + { + "source": "groupParticipants", + "type": "selectOne" + } + ] } ] - } - ] - }, - { - "type": "row", - "items": [ + }, { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Number of First Nations participants", + "source": "noOfFirstNationsParticipants", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "groupFirstNationsParticipants", + "type": "selectOne" + } + ] + } + ] } ] }, { - "type": "row", - "items": [ + "columns": [ { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" - } - ] - }, - { - "type": "row", - "items": [ + "width": "15%", + "title": "Type of activity undertaken", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "activityTypeUndertaken", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "otherActivityTypeUndertaken", + "title": "Type of activity (if other)", + "type": "textarea" + } + ] + } + ] + }, { - "type": "literal", - "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" + "width": "15%", + "source": "purposeOfActivity", + "title": "Purpose of activity", + "type": "textarea" }, { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] - }, - { - "type": "row", - "items": [ + "width": "15%", + "source": "activityDescription", + "title": "Detailed description of activity", + "type": "textarea" + }, { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." - } - ] - }, - { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ + "width": "15%", + "source": "surveyObjective", + "title": "Survey/assessment objective (if applicable)", + "type": "textarea" + }, { - "title": "Attached documents", - "source": "attachments", - "type": "document" + "width": "15%", + "source": "surveyTechnique", + "title": "Survey/assessment technique (if applicable)", + "type": "textarea" + }, + { + "width": "10%", + "source": "siteCondition", + "title": "Site condition (if applicable)", + "type": "selectOne" + }, + { + "width": "15%", + "source": "siteConditionDetails", + "title": "Site condition further details (if applicable)", + "type": "textarea" } - ] + ], + "userAddedRows": true, + "source": "firstNationsDetails", + "type": "table" } ] - } - ] - }, - "modelName": null, - "templateName": "nhtFloraSurvey", - "optional": true, - "optionalQuestionText": null, - "title": null, - "collapsibleHeading": null, - "name": "NHT - Flora survey", - "description": null - }, - { - "collapsedByDefault": false, - "template": { - "dataModel": [ + }, { - "allowRowDelete": "false", - "columns": [ + "type": "row", + "items": [ { - "dataType": "text", - "name": "participationIndividualsOrGroups", - "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", - "constraints": [ - "Individuals", - "Groups" - ], - "validate": "required" - }, + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ { - "dataType": "number", - "name": "participationIndividualNumber", - "defaultValue": 0, - "behaviour": [ + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" + }, + { + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" + } + ] + } + ] + }, + "modelName": null, + "templateName": "nhtFirstNation", + "optional": true, + "optionalQuestionText": null, + "title": null, + "collapsibleHeading": null, + "name": "NHT - First nations australians cultural practices", + "description": null + }, + { + "collapsedByDefault": false, + "template": { + "dataModel": [ + { + "name": "floraSurveys", + "dataType": "list", + "minSize": 1, + "columns": [ + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "dataType": "text", + "name": "baselineOrIndicatorSurvey", + "description": "", + "constraints": [ + "Baseline", + "Indicator" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "surveyObjective", + "description": "What the survey aim to capture? How will the information obtained from the survey be used?", + "validate": "required,maxSize[3000]" + }, + { + "dataType": "number", + "name": "numberOfSurveys", + "validate": "required,min[1],max[1]", + "defaultValue": 1, + "readonly": true + }, + { + "dataType": "list", + "name": "floraDataSets", + "columns": [ + { + "name": "dataSetId", + "entityType": "au.org.ala.ecodata.DataSetSummary", + "dataType": "text", + "description": "This section will require the Data Set Name so the Metadata fields in the Data Set Summary tab should be filled out before the Outcome Report is due. More than one dataset if relevant for this Project Baseline could be selected.", + "validate": "required", + "constraints": { + "textProperty": "name", + "valueProperty": "dataSetId", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.custom.dataSets" + }, + "filter": { + "namespace": "dataSet", + "expression": "dataSet.serviceId == 15 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" + } + } + }, + "behaviour": [ + { + "type": "pre_populate", + "config": { + "waitForInitialisation": true, + "source": { + "url": "/project/getSpeciesRecordsFromActivity", + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + }, + { + "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.activityId", + "name": "activityId", + "type": "computed", + "required": true + } + ] + }, + "mapping": [ + { + "source-path": "species", + "target": "species" + }, + { + "source-path": "threatenedEcologicalCommunity", + "target": "threatenedEcologicalCommunity" + }, + { + "source-path": "individualsOrGroups", + "target": "individualsOrGroups" + }, + { + "source-path": "individualCount", + "target": "numberOfIndividualsOrGroups" + } + ], + "target": { + "type": "singleLoad", + "name": "floraSurveySpeciesTable" + } + } + }, + { + "type": "pre_populate", + "config": { + "waitForInitialisation": true, + "source": { + "url": "/site/geojson", + "params": [ + { + "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.siteId", + "name": "id", + "type": "computed", + "required": true + } + ] + }, + "target": { + "type": "singleValue", + "name": "sitesCoveredForFloraSurvey" + } + } + } + ] + }, + { + "columns": [ + { + "dataType": "species", + "name": "species", + "validate": "required" + }, + { + "dataType": "text", + "name": "threatenedEcologicalCommunity", + "validate": "maxSize[300]" + }, + { + "dataType": "text", + "name": "individualsOrGroups", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "numberOfIndividualsOrGroups", + "validate": "required,min[0]" + } + ], + "dataType": "list", + "name": "floraSurveySpeciesTable" + }, + { + "name": "projectBaselines", + "dataType": "stringList", + "description": "Select the relevant Project Baseline as listed in the Monitoring Methodology section of the MERI Plan.", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.baselines" + }, + "constraints": { + "textProperty": "baseline", + "valueProperty": "code", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.custom.details.baseline.rows" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "stringList", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.investmentPriorities" + }, + "constraints": { + "type": "pre-populated", + "config": { + "source": { + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + } + ], + "url": "/project/listProjectInvestmentPriorities/" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, + { + "dataType": "date", + "name": "activitiesStartDate", + "description": "Specific the dates these events were held on.", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.startDate" + } + }, + { + "dataType": "date", + "name": "activitiesEndDate", + "description": "Specific the dates these events were held on.", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.endDate" + } + }, + { + "dataType": "feature", + "name": "sitesCoveredForFloraSurvey", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesCoveredForFloraSurvey)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesCoveredForFloraSurvey)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "$geom.lengthKm(sitesCoveredForFloraSurvey)" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "text", + "description": "Select the technique used to conduct the survey. If the EMSA Application tool was not used, you should select 'Other'.", + "name": "emsaProtocol", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.protocol" + }, + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.protocols" + } + } + } + }, + { + "dataType": "stringList", + "description": "Describe the technique (if Other) was selected.", + "name": "otherEmsaProtocol", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methods" + } + }, + { + "dataType": "text", + "name": "surveyMethodology", + "description": "Provide more details on what is being done.", + "validate": "required,maxSize[3000]", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methodDescription" + } + }, + { + "dataType": "text", + "name": "invoicingThisActivity", + "constraints": [ + "Yes", + "No" + ], + "validate": "required" + } + ], + "minSize": 1 + } + ] + }, + { + "allowRowDelete": "false", + "columns": [ + { + "dataType": "text", + "name": "participationIndividualsOrGroups", + "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "participationIndividualNumber", + "defaultValue": 0, + "behaviour": [ { "condition": "participationIndividualsOrGroups == \"Individuals\"", "type": "enable" @@ -13711,320 +13904,32 @@ } ], "dataType": "list", - "name": "participationInformationTableHaa" + "name": "participationInformationTableFls" }, { - "columns": [ - { - "dataType": "text", - "name": "initialOrMaintained", - "constraints": [ - "Initial", - "Maintained" - ], - "validate": "required" - }, + "dataType": "number", + "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(floraSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" + } + }, + { + "dataType": "number", + "name": "totalSurveyBaselineInvoiced", + "validate": [ { - "dataType": "feature", - "name": "sitesOfHabitatAugmentation", - "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." + "rule": "required" }, { - "computed": { - "expression": "$geom.areaHa(sitesOfHabitatAugmentation)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHa", - "units": "ha", - "decimalPlaces": 3 + "rule": "min[0]" }, { - "computed": { - "expression": "$geom.lengthKm(sitesOfHabitatAugmentation)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKm", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKm > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHa" - }, - "dataType": "number", - "name": "areaTreatedHa", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "mappingNotAlignedReason", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", - "type": "if" - } - ] - }, - { - "dataType": "text", - "name": "mappingNotAlignedComments", - "validate": "required,maxSize[100]", - "behaviour": [ - { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReason" - } - ] - }, - { - "dataType": "document", - "name": "extraMappingDetails", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", - "type": "if" - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKm" - }, - "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 - }, - { - "dataType": "number", - "name": "noStructuresInstalled", - "validate": "required" - }, - { - "columns": [ - { - "dataType": "date", - "name": "activitiesStartDate", - "description": "Specific the dates these events were held on.", - "validate": "required" - }, - { - "dataType": "date", - "name": "activitiesEndDate", - "description": "Specific the dates these events were held on.", - "validate": [ - { - "rule": "required" - }, - { - "rule": "future", - "param": { - "expression": "formatDateForValidation(activitiesStartDate)", - "type": "computed" - } - } - ] - }, - { - "dataType": "text", - "name": "habitatAugmentationType", - "description": "", - "constraints": [ - "Artificial fauna movement devices", - "Artificial nesting or roosting habitat (incl. tiles, fence posts)", - "Environmental thinning", - "Improving fish passage", - "Natural features (rocks, logs)", - "Other" - ], - "validate": "required" - }, - { - "dataType": "text", - "name": "otherHabitatAugmentationType", - "description": "Please specify the habitat augmentation type if Other (specify in notes) was selected in the Type of habitat augmentation column.", - "behaviour": [ - { - "condition": "habitatAugmentationType == \"Other\"", - "type": "enable" - } - ], - "validate": "required,maxSize[100]" - }, - { - "dataType": "text", - "name": "habitatAugmentationObjective", - "description": "", - "validate": "required,maxSize[300]" - } - ], - "dataType": "list", - "name": "habitatAugmentationDetails" - }, - { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "outcomes" - } - } - } - }, - { - "name": "investmentPriorities2", - "dataType": "text", - "description": "", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.investmentPriorities" - } - } - } - }, - { - "dataType": "text", - "name": "otherInvestmentPriority", - "behaviour": [ - { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" - } - ] - }, - { - "dataType": "text", - "name": "invoicingThisActivity", - "constraints": [ - "Yes", - "No" - ], - "validate": "required" - } - ], - "dataType": "list", - "name": "habitatAugmentationAreas" - }, - { - "dataType": "number", - "name": "totalAreaAugmentationInitial", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(habitatAugmentationAreas, \"initialOrMaintained == 'Initial' ? areaTreatedHa : 0\")" - } - }, - { - "dataType": "number", - "decimalPlaces": 3, - "name": "totalAreaAugmentationInitialInvoiced", - "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - }, - { - "param": { - "expression": "totalAreaAugmentationInitial", - "type": "computed", - "decimalPlaces": 3 - }, - "rule": "max" - } - ], - "defaultValue": "" - }, - { - "dataType": "number", - "name": "totalAreaAugmentationMaintained", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(habitatAugmentationAreas, \"initialOrMaintained == 'Maintained' ? areaTreatedHa : 0\")" - } - }, - { - "dataType": "number", - "decimalPlaces": 3, - "name": "totalAreaAugmentationMaintainedInvoiced", - "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - }, - { - "param": { - "expression": "totalAreaAugmentationMaintained", - "type": "computed", - "decimalPlaces": 3 - }, - "rule": "max" - } - ], - "defaultValue": "" - }, - { - "dataType": "number", - "name": "totalStructuresInstalledInitial", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(habitatAugmentationAreas, \"initialOrMaintained == 'Initial' ? noStructuresInstalled : 0\")" - } - }, - { - "dataType": "number", - "name": "totalStructuresInstalledInitialInvoiced", - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - }, - { - "param": { - "expression": "totalStructuresInstalledInitial", - "type": "computed" + "param": { + "expression": "totalSurveyBaseline", + "type": "computed" }, "rule": "max" } @@ -14033,16 +13938,18 @@ }, { "dataType": "number", - "name": "totalStructuresInstalledMaintained", + "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { - "expression": "sum(habitatAugmentationAreas, \"initialOrMaintained == 'Maintained' ? noStructuresInstalled : 0\")" + "expression": "sum(floraSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" } }, { "dataType": "number", - "name": "totalStructuresInstalledMaintainedInvoiced", + "name": "totalSurveyIndicatorInvoiced", + "defaultValue": "", "validate": [ { "rule": "required" @@ -14052,22 +13959,21 @@ }, { "param": { - "expression": "totalStructuresInstalledMaintained", + "expression": "totalSurveyIndicator", "type": "computed" }, "rule": "max" } - ], - "defaultValue": "" + ] }, { "dataType": "text", - "name": "totalInvoicedHabitatAugmentationMismatched", + "name": "totalInvoicedFloraMismatched", "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", "validate": "maxSize[400],required", "behaviour": [ { - "condition": "+totalAreaAugmentationInitialInvoiced < +totalAreaAugmentationInitial or +totalAreaAugmentationMaintainedInvoiced < +totalAreaAugmentationMaintained or +totalStructuresInstalledInitialInvoiced < +totalStructuresInstalledInitial or +totalStructuresInstalledMaintainedInvoiced < +totalStructuresInstalledMaintained", + "condition": "+totalSurveyIndicatorInvoiced < +totalSurveyIndicator or +totalSurveyBaselineInvoiced < +totalSurveyBaseline", "type": "enable" } ] @@ -14084,11 +13990,12 @@ { "dataType": "boolean", "name": "dataUploaded", - "description": "" + "description": "" }, { - "name": "projectAssuranceDetails", "dataType": "text", + "name": "projectAssuranceDetails", + "description": "", "validate": "required,maxSize[5000]" }, { @@ -14103,318 +14010,223 @@ ] } ], - "modelName": "NHT - Habitat augmentation", - "title": "Habitat Augmentation", + "modelName": "NHT - Flora survey", + "title": "Flora Survey", "viewModel": [ { - "type": "row", + "type": "section", "items": [ { - "type": "literal", - "source": "

Participation information

" - } - ] - }, - { - "disableTableUpload": true, - "columns": [ - { - "width": "10%", - "source": "participationIndividualsOrGroups", - "title": "Are individuals or groups delivering this service?", - "type": "selectOne" - }, - { - "width": "20%", - "type": "col", - "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "type": "row", "items": [ { - "source": "participationIndividualNumber", - "type": "number" - }, - { - "source": "participationGroupNumber", - "type": "selectOne" + "type": "literal", + "source": "

Participation information

" } ] }, { - "type": "col", - "width": "20%", - "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ - { - "source": "firstNationIndividualNumber", - "type": "number" - }, + "disableTableUpload": true, + "columns": [ { - "source": "firstNationGroupNumber", + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", "type": "selectOne" - } - ] - }, - { - "width": "20%", - "source": "participationDetails", - "rows": 4, - "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", - "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", - "type": "textarea" - } - ], - "source": "participationInformationTableHaa", - "type": "table" - }, - { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Totals Summary

" - } - ] - }, - { - "type": "row", - "items": [ - { - "type": "col", - "css": "span4 col-border-right", - "items": [ + }, { - "type": "row", + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", "items": [ { - "preLabel": "(i) Total area (ha) of augmentation (initial) during this reporting period", - "source": "totalAreaAugmentationInitial", + "source": "participationIndividualNumber", "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" } ] }, { - "type": "row", + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", "items": [ { - "preLabel": "(ii) Total area (ha) of augmentation (initial) invoiced for during this reporting period", - "source": "totalAreaAugmentationInitialInvoiced", - "type": "number", - "displayOptions": { - "removeTrailingZeros": false - } + "source": "firstNationIndividualNumber", + "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" } ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" } - ] + ], + "source": "participationInformationTableFls", + "type": "table" }, { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "(iii) Total area (ha) of augmentation (maintained) during this reporting period", - "source": "totalAreaAugmentationMaintained", - "type": "number" - } - ] - }, + "type": "literal", + "source": "

Survey information

Before completing this section, please ensure you have created a Data Set Summary information for every data set produced by the surveys you intend to report

" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "row", - "items": [ - { - "preLabel": "(iv) Total area (ha) of augmentation (maintained) invoiced for during this reporting period", - "source": "totalAreaAugmentationMaintainedInvoiced", - "type": "number", - "displayOptions": { - "removeTrailingZeros": false - } - } - ] + "type": "literal", + "source": "

Totals Summary

" } ] }, { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", + "type": "col", + "css": "span4 col-border-right", "items": [ { - "preLabel": "(v) Number of locations where structures installed (initial) during this reporting period", - "source": "totalStructuresInstalledInitial", - "type": "number" + "type": "row", + "items": [ + { + "preLabel": "(i) Total Number of baseline flora surveys completed for this reporting period", + "source": "totalSurveyBaseline", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "(ii) Total Number of baseline flora surveys invoiced for this reporting period", + "source": "totalSurveyBaselineInvoiced", + "type": "number" + } + ] } ] }, { - "type": "row", + "type": "col", + "css": "span4 col-border-right", "items": [ { - "preLabel": "(vi) Number of locations where structures installed (initial) invoiced for during this reporting period", - "source": "totalStructuresInstalledInitialInvoiced", - "type": "number" + "type": "row", + "items": [ + { + "preLabel": "(iii) Total Number of indicator flora surveys completed for this reporting period", + "source": "totalSurveyIndicator", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "(iv) Total Number of indicator flora surveys invoiced for this reporting period", + "source": "totalSurveyIndicatorInvoiced", + "type": "number" + } + ] } ] } ] }, { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "(vii) Number of locations where structures installed (maintained) during this reporting period", - "source": "totalStructuresInstalledMaintained", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "(viii) Number of locations where structures installed (maintained) invoiced for during this reporting period", - "source": "totalStructuresInstalledMaintainedInvoiced", - "type": "number" - } - ] + "preLabel": "If the total invoiced is different to the total completed, please provide the reason", + "source": "totalInvoicedFloraMismatched", + "type": "textarea", + "rows": 4, + "placeholder": "" } ] - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "If the total invoiced is different to the total completed, please provide the reason", - "source": "totalInvoicedHabitatAugmentationMismatched", - "type": "textarea", - "rows": 4, - "placeholder": "" - } - ] - }, - { - "addRowText": "Add new area of habitat augmentation", - "userAddedRows": true, - "source": "habitatAugmentationAreas", - "type": "repeat", - "items": [ + }, { - "type": "row", + "addRowText": "Add survey", + "removeRowText": "Delete this survey", + "userAddedRows": true, + "source": "floraSurveys", + "type": "repeat", "items": [ { - "css": "span3 col-border-right", - "type": "col", + "type": "row", "items": [ { - "type": "row", + "type": "col", "items": [ { "source": "relatedOutcomes", "type": "selectOne", - "preLabel": "Which outcome statement/s does this activity relate to?" + "preLabel": "Which outcome statement/s relates to this survey?" } ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ + }, { - "type": "row", + "type": "col", "items": [ { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" + "source": "baselineOrIndicatorSurvey", + "type": "selectOne", + "preLabel": "Baseline survey or indicator (follow-up) survey?" } ] } ] }, { - "css": "span3 col-border-right", - "type": "col", - "items": [ - { - "type": "row", - "items": [ - { - "source": "invoicingThisActivity", - "preLabel": "Are you invoicing for this activity in this reporting period?", - "type": "selectOne" - } - ] - } - ] - } - ] - }, - { - "type": "row", - "css": "border-bottom", - "items": [ - { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "source": "initialOrMaintained", - "preLabel": "Initial or Maintenance Treatment?", - "type": "selectOne" - } - ] + "source": "surveyObjective", + "preLabel": "Survey objective", + "type": "text" } ] }, { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "noStructuresInstalled", - "preLabel": "Number of locations where structures installed/maintained", - "type": "number" - } - ] - } - ] - } - ] - }, - { - "type": "row", - "items": [ - { - "type": "col", - "css": "span3 col-border-right", + "type": "repeat", + "source": "floraDataSets", + "userAddedRows": true, + "addRowText": "New data set", + "removeRowText": "Delete this data set", "items": [ { "type": "row", + "css": "border-bottom", "items": [ { - "preLabel": "Site/s of habitat augmentation", - "source": "sitesOfHabitatAugmentation", - "type": "feature" + "type": "col", + "items": [ + { + "source": "dataSetId", + "type": "selectOne", + "preLabel": "Please select the data set produced by this survey. Note it must have already been entered on the Data Set Summary tab." + } + ] } ] }, @@ -14422,552 +14234,349 @@ "type": "row", "items": [ { - "source": "calculatedAreaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "projectBaselines", + "type": "selectMany", + "preLabel": "Which project baseline/s relate to this survey?", + "readonly": "readonly" + } + ] + } + ] + }, { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetails", - "type": "document" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" + } + ] + } + ] + }, { - "preLabel": "Actual area (ha) of habitat augmentation", - "source": "areaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - } + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Activity start date", + "source": "activitiesStartDate", + "type": "date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Activity end date", + "source": "activitiesEndDate", + "type": "date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Sites covered by flora survey", + "source": "sitesCoveredForFloraSurvey", + "type": "feature" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedLengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Actual area (ha) / length (km) covered by flora survey", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "lengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Survey technique", + "source": "emsaProtocol", + "type": "selectOne", + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Survey technique (if Other)", + "source": "otherEmsaProtocol", + "type": "select2Many" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "surveyMethodology", + "preLabel": "Survey methodology", + "type": "text" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "invoicingThisActivity", + "preLabel": "Are you invoicing for this activity in this reporting period?", + "type": "selectOne" + } + ] + } + ] } ] }, { - "type": "row", - "items": [ + "columns": [ { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", + "width": "40%", + "source": "species", + "title": "Target species recorded", + "type": "speciesSelect" + }, + { + "width": "35%", + "source": "threatenedEcologicalCommunity", + "title": "Threatened ecological communities (if applicable)", + "type": "text" + }, + { + "width": "15%", + "source": "individualsOrGroups", + "title": "Individuals or groups?", "type": "selectOne" - } - ] - }, - { - "type": "row", - "items": [ + }, { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 + "width": "10%", + "source": "numberOfIndividualsOrGroups", + "title": "Number of groups / individuals in flora survey", + "type": "number" } - ] + ], + "userAddedRows": true, + "source": "floraSurveySpeciesTable", + "type": "table" } ] } ] }, { - "columns": [ + "type": "row", + "items": [ { - "title": "Activity start date", - "source": "activitiesStartDate", - "type": "date", - "width": "20%" - }, + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ { - "title": "Activity end date", - "source": "activitiesEndDate", - "type": "date", - "width": "20%" - }, + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ { - "width": "25%", - "title": "Type of habitat augmentation / installed", - "type": "col", - "items": [ - { - "type": "row", - "items": [ - { - "source": "habitatAugmentationType", - "type": "select2" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "otherHabitatAugmentationType", - "type": "textarea" - } - ] - } - ] + "type": "literal", + "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" }, { - "width": "35%", - "source": "habitatAugmentationObjective", - "title": "Purpose of habitat augmentation", - "type": "textarea" + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" } - ], - "userAddedRows": true, - "source": "habitatAugmentationDetails", - "type": "table" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" - } - ] - }, - { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" + ] }, { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." - } - ] - }, - { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, { - "title": "Attached documents", - "source": "attachments", - "type": "document" + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" + } + ] } ] } ] }, "modelName": null, - "templateName": "nhtHabitatAugmentation", + "templateName": "nhtFloraSurvey", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Habitat augmentation", + "name": "NHT - Flora survey", "description": null }, { "collapsedByDefault": false, "template": { "dataModel": [ - { - "name": "habitatConditionSurveys", - "dataType": "list", - "minSize": 1, - "columns": [ - { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "outcomes" - } - } - } - }, - { - "dataType": "text", - "name": "baselineOrIndicatorSurvey", - "description": "", - "constraints": [ - "Baseline", - "Indicator" - ], - "validate": "required" - }, - { - "dataType": "text", - "name": "surveyObjective", - "description": "What the survey aim to capture? How will the information obtained from the survey be used?", - "validate": "required,maxSize[3000]" - }, - { - "dataType": "number", - "name": "numberOfSurveys", - "validate": "required,min[1],max[1]", - "defaultValue": 1, - "readonly": true - }, - { - "dataType": "list", - "name": "habitatConditionDataSets", - "columns": [ - { - "name": "dataSetId", - "entityType": "au.org.ala.ecodata.DataSetSummary", - "dataType": "text", - "description": "This section will require the Data Set Name so the Metadata fields in the Data Set Summary tab should be filled out before the Outcome Report is due. More than one dataset if relevant for this Project Baseline could be selected.", - "validate": "required", - "constraints": { - "textProperty": "name", - "valueProperty": "dataSetId", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.custom.dataSets" - }, - "filter": { - "namespace": "dataSet", - "expression": "dataSet.serviceId == 42 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == baselineIndicatorMapping.lookupValue(dataSet.type) and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" - } - } - }, - "behaviour": [ - { - "type": "pre_populate", - "config": { - "waitForInitialisation": true, - "source": { - "url": "/site/geojson", - "params": [ - { - "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.siteId", - "name": "id", - "type": "computed", - "required": true - } - ] - }, - "target": { - "type": "singleValue", - "name": "sitesCoveredForHabitatConditionSurvey" - } - } - } - ] - }, - { - "name": "projectBaselines", - "dataType": "stringList", - "description": "Select the relevant Project Baseline as listed in the Monitoring Methodology section of the MERI Plan.", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.baselines" - }, - "constraints": { - "textProperty": "baseline", - "valueProperty": "code", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.custom.details.baseline.rows" - } - } - } - }, - { - "name": "investmentPriorities2", - "dataType": "stringList", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.investmentPriorities" - }, - "constraints": { - "type": "pre-populated", - "config": { - "source": { - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - } - ], - "url": "/project/listProjectInvestmentPriorities/" - } - } - } - }, - { - "dataType": "text", - "name": "otherInvestmentPriority", - "behaviour": [ - { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" - } - ] - }, - { - "dataType": "date", - "name": "activitiesStartDate", - "description": "Specific the dates these events were held on.", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.startDate" - } - }, - { - "dataType": "date", - "name": "activitiesEndDate", - "description": "Specific the dates these events were held on.", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.endDate" - } - }, - { - "dataType": "feature", - "name": "sitesCoveredForHabitatConditionSurvey", - "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." - }, - { - "computed": { - "expression": "$geom.areaHa(sitesCoveredForHabitatConditionSurvey)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHa", - "units": "ha", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "areaInvoicedTreatedHa > 0", - "type": "conditional_validation", - "value": { - "message": "The managed area must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, - { - "computed": { - "expression": "$geom.lengthKm(sitesCoveredForHabitatConditionSurvey)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKm", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKm > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHa" - }, - "dataType": "number", - "name": "areaTreatedHa", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "mappingNotAlignedReason", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, - { - "dataType": "text", - "name": "mappingNotAlignedComments", - "validate": "required,maxSize[100]", - "behaviour": [ - { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReason" - } - ] - }, - { - "dataType": "document", - "name": "extraMappingDetails", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKm" - }, - "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 - }, - { - "dataType": "text", - "description": "Select the technique used to conduct the survey. If the EMSA Application tool was not used, you should select 'Other'.", - "name": "emsaProtocol", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.protocol" - }, - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.protocols" - } - } - } - }, - { - "dataType": "stringList", - "description": "Describe the technique (if Other) was selected.", - "name": "otherEmsaProtocol", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methods" - } - }, - { - "dataType": "text", - "name": "surveyMethodology", - "description": "Provide more details on what is being done.", - "validate": "required,maxSize[3000]", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methodDescription" - } - }, - { - "dataType": "text", - "name": "invoicingThisActivity", - "constraints": [ - "Yes", - "No" - ], - "validate": "required" - }, - { - "columns": [ - { - "dataType": "text", - "name": "typesOfHabitat", - "description": "", - "constraints": [ - "Desert", - "Grassland/Savanna", - "Bush/Forest", - "Subterranean", - "Marsh/Swamps", - "Rivers/Streams/Wetlands", - "Coastal areas", - "Marine areas", - "Other" - ], - "validate": "required" - }, - { - "dataType": "text", - "name": "habitatCondition", - "validate": "maxSize[300]" - } - ], - "dataType": "list", - "name": "habitatConditionSurveySpeciesTable" - } - ], - "minSize": 1 - } - ] - }, - { - "dataType": "lookupTable", - "name": "baselineIndicatorMapping", - "config": { - "source": { - "literal": { - "Baseline dataset associated with a project outcome": "Baseline", - "Project progress dataset that is tracking change against an established project baseline dataset": "Indicator" - } - } - } - }, { "allowRowDelete": "false", "columns": [ @@ -15075,60 +14684,353 @@ } ], "dataType": "list", - "name": "participationInformationTableHca" - }, - { - "dataType": "number", - "name": "totalSurveyBaseline", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(habitatConditionSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" - } + "name": "participationInformationTableHaa" }, { - "dataType": "number", - "name": "totalSurveyBaselineInvoiced", - "validate": [ + "columns": [ { - "rule": "required" + "dataType": "text", + "name": "initialOrMaintained", + "constraints": [ + "Initial", + "Maintained" + ], + "validate": "required" }, { - "rule": "min[0]" + "dataType": "feature", + "name": "sitesOfHabitatAugmentation", + "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." }, { - "param": { - "expression": "totalSurveyBaseline", - "type": "computed" + "computed": { + "expression": "$geom.areaHa(sitesOfHabitatAugmentation)" }, - "rule": "max" - } - ], - "defaultValue": "" - }, - { - "dataType": "number", - "name": "totalSurveyIndicator", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(habitatConditionSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" - } - }, - { - "dataType": "number", - "name": "totalSurveyIndicatorInvoiced", - "validate": [ - { - "rule": "required" + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3 }, { - "rule": "min[0]" + "computed": { + "expression": "$geom.lengthKm(sitesOfHabitatAugmentation)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] }, { - "param": { - "expression": "totalSurveyIndicator", - "type": "computed" + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKm" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "number", + "name": "noStructuresInstalled", + "validate": "required" + }, + { + "columns": [ + { + "dataType": "date", + "name": "activitiesStartDate", + "description": "Specific the dates these events were held on.", + "validate": "required" + }, + { + "dataType": "date", + "name": "activitiesEndDate", + "description": "Specific the dates these events were held on.", + "validate": [ + { + "rule": "required" + }, + { + "rule": "future", + "param": { + "expression": "formatDateForValidation(activitiesStartDate)", + "type": "computed" + } + } + ] + }, + { + "dataType": "text", + "name": "habitatAugmentationType", + "description": "", + "constraints": [ + "Artificial fauna movement devices", + "Artificial nesting or roosting habitat (incl. tiles, fence posts)", + "Environmental thinning", + "Improving fish passage", + "Natural features (rocks, logs)", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "otherHabitatAugmentationType", + "description": "Please specify the habitat augmentation type if Other (specify in notes) was selected in the Type of habitat augmentation column.", + "behaviour": [ + { + "condition": "habitatAugmentationType == \"Other\"", + "type": "enable" + } + ], + "validate": "required,maxSize[100]" + }, + { + "dataType": "text", + "name": "habitatAugmentationObjective", + "description": "", + "validate": "required,maxSize[300]" + } + ], + "dataType": "list", + "name": "habitatAugmentationDetails" + }, + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, + { + "dataType": "text", + "name": "invoicingThisActivity", + "constraints": [ + "Yes", + "No" + ], + "validate": "required" + } + ], + "dataType": "list", + "name": "habitatAugmentationAreas" + }, + { + "dataType": "number", + "name": "totalAreaAugmentationInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(habitatAugmentationAreas, \"initialOrMaintained == 'Initial' ? areaTreatedHa : 0\")" + } + }, + { + "dataType": "number", + "decimalPlaces": 3, + "name": "totalAreaAugmentationInitialInvoiced", + "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalAreaAugmentationInitial", + "type": "computed", + "decimalPlaces": 3 + }, + "rule": "max" + } + ], + "defaultValue": "" + }, + { + "dataType": "number", + "name": "totalAreaAugmentationMaintained", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(habitatAugmentationAreas, \"initialOrMaintained == 'Maintained' ? areaTreatedHa : 0\")" + } + }, + { + "dataType": "number", + "decimalPlaces": 3, + "name": "totalAreaAugmentationMaintainedInvoiced", + "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalAreaAugmentationMaintained", + "type": "computed", + "decimalPlaces": 3 + }, + "rule": "max" + } + ], + "defaultValue": "" + }, + { + "dataType": "number", + "name": "totalStructuresInstalledInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(habitatAugmentationAreas, \"initialOrMaintained == 'Initial' ? noStructuresInstalled : 0\")" + } + }, + { + "dataType": "number", + "name": "totalStructuresInstalledInitialInvoiced", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalStructuresInstalledInitial", + "type": "computed" + }, + "rule": "max" + } + ], + "defaultValue": "" + }, + { + "dataType": "number", + "name": "totalStructuresInstalledMaintained", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(habitatAugmentationAreas, \"initialOrMaintained == 'Maintained' ? noStructuresInstalled : 0\")" + } + }, + { + "dataType": "number", + "name": "totalStructuresInstalledMaintainedInvoiced", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalStructuresInstalledMaintained", + "type": "computed" }, "rule": "max" } @@ -15137,12 +15039,12 @@ }, { "dataType": "text", - "name": "totalInvoicedHabitatConditionMismatched", + "name": "totalInvoicedHabitatAugmentationMismatched", "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", "validate": "maxSize[400],required", "behaviour": [ { - "condition": "+totalSurveyIndicatorInvoiced < +totalSurveyIndicator or +totalSurveyBaselineInvoiced < +totalSurveyBaseline", + "condition": "+totalAreaAugmentationInitialInvoiced < +totalAreaAugmentationInitial or +totalAreaAugmentationMaintainedInvoiced < +totalAreaAugmentationMaintained or +totalStructuresInstalledInitialInvoiced < +totalStructuresInstalledInitial or +totalStructuresInstalledMaintainedInvoiced < +totalStructuresInstalledMaintained", "type": "enable" } ] @@ -15159,12 +15061,11 @@ { "dataType": "boolean", "name": "dataUploaded", - "description": "" + "description": "" }, { - "dataType": "text", "name": "projectAssuranceDetails", - "description": "", + "dataType": "text", "validate": "required,maxSize[5000]" }, { @@ -15179,692 +15080,522 @@ ] } ], - "modelName": "NHT - Habitat condition assessment survey", - "title": "Habitat Condition Assessment Survey", + "modelName": "NHT - Habitat augmentation", + "title": "Habitat Augmentation", "viewModel": [ { - "type": "section", + "type": "row", "items": [ { - "type": "row", + "type": "literal", + "source": "

Participation information

" + } + ] + }, + { + "disableTableUpload": true, + "columns": [ + { + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" + }, + { + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", "items": [ { - "type": "literal", - "source": "

Participation information

" + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" } ] }, { - "disableTableUpload": true, - "columns": [ + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ { - "width": "10%", - "source": "participationIndividualsOrGroups", - "title": "Are individuals or groups delivering this service?", - "type": "selectOne" + "source": "firstNationIndividualNumber", + "type": "number" }, { - "width": "20%", - "type": "col", - "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "source": "firstNationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } + ], + "source": "participationInformationTableHaa", + "type": "table" + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", "items": [ { - "source": "participationIndividualNumber", + "preLabel": "(i) Total area (ha) of augmentation (initial) during this reporting period", + "source": "totalAreaAugmentationInitial", "type": "number" - }, - { - "source": "participationGroupNumber", - "type": "selectOne" } ] }, { - "type": "col", - "width": "20%", - "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "type": "row", "items": [ { - "source": "firstNationIndividualNumber", - "type": "number" - }, - { - "source": "firstNationGroupNumber", - "type": "selectOne" + "preLabel": "(ii) Total area (ha) of augmentation (initial) invoiced for during this reporting period", + "source": "totalAreaAugmentationInitialInvoiced", + "type": "number", + "displayOptions": { + "removeTrailingZeros": false + } } ] - }, - { - "width": "20%", - "source": "participationDetails", - "rows": 4, - "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", - "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", - "type": "textarea" - } - ], - "source": "participationInformationTableHca", - "type": "table" - }, - { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Survey information

Before completing this section, please ensure you have created a Data Set Summary information for every data set produced by the surveys you intend to report

" } ] }, { - "type": "row", + "type": "col", + "css": "span4 col-border-right", "items": [ { - "type": "literal", - "source": "

Totals Summary

" + "type": "row", + "items": [ + { + "preLabel": "(iii) Total area (ha) of augmentation (maintained) during this reporting period", + "source": "totalAreaAugmentationMaintained", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "(iv) Total area (ha) of augmentation (maintained) invoiced for during this reporting period", + "source": "totalAreaAugmentationMaintainedInvoiced", + "type": "number", + "displayOptions": { + "removeTrailingZeros": false + } + } + ] } ] }, { - "type": "row", + "type": "col", + "css": "span4 col-border-right", "items": [ { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "(i) Total Number of baseline habitat condition assessment surveys completed for this reporting period", - "source": "totalSurveyBaseline", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "(ii) Total Number of baseline habitat condition assessment surveys invoiced for this reporting period", - "source": "totalSurveyBaselineInvoiced", - "type": "number" - } - ] + "preLabel": "(v) Number of locations where structures installed (initial) during this reporting period", + "source": "totalStructuresInstalledInitial", + "type": "number" } ] }, { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "(iii) Total Number of indicator habitat condition assessment surveys completed for this reporting period", - "source": "totalSurveyIndicator", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "(iv) Total Number of indicator habitat condition assessment surveys invoiced for this reporting period", - "source": "totalSurveyIndicatorInvoiced", - "type": "number" - } - ] + "preLabel": "(vi) Number of locations where structures installed (initial) invoiced for during this reporting period", + "source": "totalStructuresInstalledInitialInvoiced", + "type": "number" } ] } ] }, { - "type": "row", + "type": "col", + "css": "span4 col-border-right", "items": [ { - "preLabel": "If the total invoiced is different to the total completed, please provide the reason", - "source": "totalInvoicedHabitatConditionMismatched", - "type": "textarea", - "rows": 4, - "placeholder": "" + "type": "row", + "items": [ + { + "preLabel": "(vii) Number of locations where structures installed (maintained) during this reporting period", + "source": "totalStructuresInstalledMaintained", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "(viii) Number of locations where structures installed (maintained) invoiced for during this reporting period", + "source": "totalStructuresInstalledMaintainedInvoiced", + "type": "number" + } + ] } ] - }, + } + ] + }, + { + "type": "row", + "items": [ { - "addRowText": "Add survey", - "removeRowText": "Delete this survey", - "userAddedRows": true, - "source": "habitatConditionSurveys", - "type": "repeat", + "preLabel": "If the total invoiced is different to the total completed, please provide the reason", + "source": "totalInvoicedHabitatAugmentationMismatched", + "type": "textarea", + "rows": 4, + "placeholder": "" + } + ] + }, + { + "addRowText": "Add new area of habitat augmentation", + "userAddedRows": true, + "source": "habitatAugmentationAreas", + "type": "repeat", + "items": [ + { + "type": "row", "items": [ { - "type": "row", + "css": "span3 col-border-right", + "type": "col", "items": [ { - "type": "col", + "type": "row", "items": [ { "source": "relatedOutcomes", "type": "selectOne", - "preLabel": "Which outcome statement/s relates to this survey?" + "preLabel": "Which outcome statement/s does this activity relate to?" } ] - }, + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ { - "type": "col", + "type": "row", "items": [ { - "source": "baselineOrIndicatorSurvey", - "type": "selectOne", - "preLabel": "Baseline survey or indicator (follow-up) survey?" + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" } ] } ] }, { - "type": "row", + "css": "span3 col-border-right", + "type": "col", "items": [ { - "source": "surveyObjective", - "preLabel": "Survey objective", - "type": "text" + "type": "row", + "items": [ + { + "source": "invoicingThisActivity", + "preLabel": "Are you invoicing for this activity in this reporting period?", + "type": "selectOne" + } + ] } ] - }, + } + ] + }, + { + "type": "row", + "css": "border-bottom", + "items": [ { - "type": "repeat", - "source": "habitatConditionDataSets", - "userAddedRows": true, - "addRowText": "New data set", - "removeRowText": "Delete this data set", + "type": "col", + "css": "span3 col-border-right", "items": [ { "type": "row", - "css": "border-bottom", "items": [ { - "type": "col", - "items": [ - { - "source": "dataSetId", - "type": "selectOne", - "preLabel": "Please select the data set produced by this survey. Note it must have already been entered on the Data Set Summary tab." - } - ] + "source": "initialOrMaintained", + "preLabel": "Initial or Maintenance Treatment?", + "type": "selectOne" } ] - }, + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ { "type": "row", "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "projectBaselines", - "type": "selectMany", - "preLabel": "Which project baseline/s relate to this survey?", - "readonly": "readonly" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Activity start date", - "source": "activitiesStartDate", - "type": "date" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Activity end date", - "source": "activitiesEndDate", - "type": "date" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Sites covered by habitat condition assessment survey", - "source": "sitesCoveredForHabitatConditionSurvey", - "type": "feature" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedAreaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedLengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetails", - "type": "document" - } - ] - } - ] - }, + "source": "noStructuresInstalled", + "preLabel": "Number of locations where structures installed/maintained", + "type": "number" + } + ] + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Actual area (ha) / length (km) covered by habitat condition assessment survey", - "source": "areaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "lengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", - "type": "selectOne" - } - ] - }, - { - "type": "row", - "items": [ - { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 - } - ] - } - ] - }, + "preLabel": "Site/s of habitat augmentation", + "source": "sitesOfHabitatAugmentation", + "type": "feature" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Survey technique", - "source": "emsaProtocol", - "type": "selectOne", - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Survey technique (if Other)", - "source": "otherEmsaProtocol", - "type": "select2Many" - } - ] - } - ] - }, + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "surveyMethodology", - "preLabel": "Survey methodology", - "type": "text" - } - ] - } - ] - }, + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "invoicingThisActivity", - "preLabel": "Are you invoicing for this activity in this reporting period?", - "type": "selectOne" - } - ] - } - ] + "preLabel": "Actual area (ha) of habitat augmentation", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } } ] }, { - "columns": [ + "type": "row", + "items": [ { - "width": "40%", - "source": "typesOfHabitat", - "title": "Types of habitat", + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", "type": "selectOne" - }, + } + ] + }, + { + "type": "row", + "items": [ { - "width": "60%", - "source": "habitatCondition", - "title": "Condition of habitat", - "type": "text" + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 } - ], - "userAddedRows": true, - "source": "habitatConditionSurveySpeciesTable", - "type": "table" + ] } ] } ] }, { - "type": "row", - "items": [ + "columns": [ { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" - } - ] - }, - { - "type": "row", - "items": [ + "title": "Activity start date", + "source": "activitiesStartDate", + "type": "date", + "width": "20%" + }, { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" - } - ] - }, - { - "type": "row", - "items": [ + "title": "Activity end date", + "source": "activitiesEndDate", + "type": "date", + "width": "20%" + }, { - "type": "literal", - "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" + "width": "25%", + "title": "Type of habitat augmentation / installed", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "habitatAugmentationType", + "type": "select2" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "otherHabitatAugmentationType", + "type": "textarea" + } + ] + } + ] }, { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" + "width": "35%", + "source": "habitatAugmentationObjective", + "title": "Purpose of habitat augmentation", + "type": "textarea" } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." - } - ] + ], + "userAddedRows": true, + "source": "habitatAugmentationDetails", + "type": "table" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" }, { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ - { - "title": "Attached documents", - "source": "attachments", - "type": "document" - } - ] + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" } ] } ] }, "modelName": null, - "templateName": "nhtHabitatConditionAssessmentSurvey", + "templateName": "nhtHabitatAugmentation", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Habitat condition assessment", + "name": "NHT - Habitat augmentation", "description": null }, { "collapsedByDefault": false, "template": { - "title": "Identifying and Prioritising the Location of Potential Sites", - "modelName": "NHT - Identifying sites", "dataModel": [ { - "allowRowDelete": "false", - "columns": [ - { - "dataType": "text", - "name": "participationIndividualsOrGroups", - "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", - "constraints": [ - "Individuals", - "Groups" - ], - "validate": "required" - }, - { - "dataType": "number", - "name": "participationIndividualNumber", - "defaultValue": 0, - "behaviour": [ - { - "condition": "participationIndividualsOrGroups == \"Individuals\"", - "type": "enable" - } - ], - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "participationGroupNumber", - "behaviour": [ - { - "condition": "participationIndividualsOrGroups == \"Groups\"", - "type": "enable" - } - ], - "constraints": [ - "0", - "1-10", - "11-20", - "21-30", - "31-40", - "41-50" - ] - }, - { - "dataType": "number", - "name": "firstNationIndividualNumber", - "defaultValue": 0, - "behaviour": [ - { - "condition": "participationIndividualsOrGroups == \"Individuals\"", - "type": "enable" - } - ], - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - }, - { - "param": { - "expression": "participationIndividualNumber", - "type": "computed" - }, - "rule": "max" - } - ] - }, - { - "dataType": "text", - "name": "firstNationGroupNumber", - "behaviour": [ - { - "condition": "participationIndividualsOrGroups == \"Groups\"", - "type": "enable" - } - ], - "constraints": [ - "0", - "1-10", - "11-20", - "21-30", - "31-40", - "41-50" - ], - "validate": [ - { - "rule": "required" - }, - { - "param": { - "expression": "participationGroupNumber", - "type": "computed" - }, - "rule": "max", - "message": "The number of first nation participants cannot be greater than the total number of participants" - } - ] - }, - { - "dataType": "text", - "name": "participationDetails", - "validate": "required, maxSize[3000]" - } - ], + "name": "habitatConditionSurveys", "dataType": "list", - "name": "participationInformationTableIpl" - }, - { + "minSize": 1, "columns": [ - { - "dataType": "text", - "name": "sitesHaveBeenIdentified", - "description": "", - "validate": "required,maxSize[300]" - }, - { - "dataType": "text", - "name": "methodsUsedToIdentify", - "description": "", - "validate": "required,maxSize[300]" - }, - { - "dataType": "text", - "name": "outcomesAchievement", - "description": "", - "validate": "required,maxSize[300]" - }, { "name": "relatedOutcomes", "dataType": "text", @@ -15872,194 +15603,190 @@ "validate": "required", "constraints": { "textProperty": "label", - "valueProperty": "label", + "valueProperty": "value", "type": "pre-populated", "config": { "source": { - "url": "/project/outcomesByScores", - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - }, - { - "expression": "scores", - "name": "scoreIds", - "type": "computed" - } - ] + "context-path": "outcomes" } } } }, { - "name": "investmentPriorities2", "dataType": "text", + "name": "baselineOrIndicatorSurvey", "description": "", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.investmentPriorities" - } - } - } + "constraints": [ + "Baseline", + "Indicator" + ], + "validate": "required" }, { "dataType": "text", - "name": "otherInvestmentPriority", - "description": "Describe the investment priority (if Other) was selected", - "behaviour": [ - { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" - } - ] + "name": "surveyObjective", + "description": "What the survey aim to capture? How will the information obtained from the survey be used?", + "validate": "required,maxSize[3000]" }, { - "dataType": "text", - "name": "invoicingThisActivity", - "constraints": [ - "Yes", - "No" - ], - "validate": "required" + "dataType": "number", + "name": "numberOfSurveys", + "validate": "required,min[1],max[1]", + "defaultValue": 1, + "readonly": true }, { + "dataType": "list", + "name": "habitatConditionDataSets", "columns": [ { - "dataType": "feature", - "name": "sitesAssessed", - "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping.", - "validate": "required" - }, - { - "computed": { - "expression": "$geom.areaHa(sitesAssessed)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHaAssessed", - "units": "ha", - "decimalPlaces": 3 - }, - { - "computed": { - "expression": "$geom.lengthKm(sitesAssessed)" + "name": "dataSetId", + "entityType": "au.org.ala.ecodata.DataSetSummary", + "dataType": "text", + "description": "This section will require the Data Set Name so the Metadata fields in the Data Set Summary tab should be filled out before the Outcome Report is due. More than one dataset if relevant for this Project Baseline could be selected.", + "validate": "required", + "constraints": { + "textProperty": "name", + "valueProperty": "dataSetId", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.custom.dataSets" + }, + "filter": { + "namespace": "dataSet", + "expression": "dataSet.serviceId == 42 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == baselineIndicatorMapping.lookupValue(dataSet.type) and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" + } + } }, - "dataType": "number", - "name": "calculatedLengthTreatedKmAssessed", - "units": "km", - "decimalPlaces": 3, "behaviour": [ { - "condition": "lengthTreatedKmAssessed > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" + "type": "pre_populate", + "config": { + "waitForInitialisation": true, + "source": { + "url": "/site/geojson", + "params": [ + { + "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.siteId", + "name": "id", + "type": "computed", + "required": true + } + ] + }, + "target": { + "type": "singleValue", + "name": "sitesCoveredForHabitatConditionSurvey" + } } } ] }, { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHaAssessed" + "name": "projectBaselines", + "dataType": "stringList", + "description": "Select the relevant Project Baseline as listed in the Monitoring Methodology section of the MERI Plan.", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.baselines" }, - "dataType": "number", - "name": "areaTreatedHaAssessed", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "required,min[0]" + "constraints": { + "textProperty": "baseline", + "valueProperty": "code", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.custom.details.baseline.rows" + } + } + } }, { - "dataType": "text", - "name": "mappingNotAlignedReasonAssessed", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], + "name": "investmentPriorities2", + "dataType": "stringList", "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHaAssessed, calculatedAreaTreatedHaAssessed, 0.1) and within(lengthTreatedKmAssessed, calculatedLengthTreatedKmAssessed, 0.1))", - "type": "visible" + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.investmentPriorities" + }, + "constraints": { + "type": "pre-populated", + "config": { + "source": { + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + } + ], + "url": "/project/listProjectInvestmentPriorities/" + } } - ] + } }, { "dataType": "text", - "name": "mappingNotAlignedCommentsAssessed", - "validate": "required,maxSize[100]", + "name": "otherInvestmentPriority", "behaviour": [ { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReasonAssessed" + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" } ] }, { - "dataType": "document", - "name": "extraMappingDetailsAssessed", + "dataType": "date", + "name": "activitiesStartDate", + "description": "Specific the dates these events were held on.", "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHaAssessed, calculatedAreaTreatedHaAssessed, 0.1) and within(lengthTreatedKmAssessed, calculatedLengthTreatedKmAssessed, 0.1))", - "type": "visible" - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "$geom.lengthKm(sitesAssessed)" - }, - "dataType": "number", - "name": "lengthTreatedKmAssessed", - "units": "km", - "decimalPlaces": 3 + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.startDate" + } }, { - "dataType": "text", - "name": "assessedSitesName", - "description": "", - "validate": "required,maxSize[300]" + "dataType": "date", + "name": "activitiesEndDate", + "description": "Specific the dates these events were held on.", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.endDate" + } }, { "dataType": "feature", - "name": "sitesIdentified", - "validate": [ - { - "rule": "required" - } - ] + "name": "sitesCoveredForHabitatConditionSurvey", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." }, { "computed": { - "expression": "$geom.areaHa(sitesIdentified)" + "expression": "$geom.areaHa(sitesCoveredForHabitatConditionSurvey)" }, "dataType": "number", - "name": "calculatedAreaTreatedHaIdentified", + "name": "calculatedAreaTreatedHa", "units": "ha", - "decimalPlaces": 3 + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "areaInvoicedTreatedHa > 0", + "type": "conditional_validation", + "value": { + "message": "The managed area must be mapped", + "validate": "required,min[0.0001]" + } + } + ] }, { "computed": { - "expression": "$geom.lengthKm(sitesIdentified)" + "expression": "$geom.lengthKm(sitesCoveredForHabitatConditionSurvey)" }, "dataType": "number", - "name": "calculatedLengthTreatedKmIdentified", + "name": "calculatedLengthTreatedKm", "units": "km", "decimalPlaces": 3, "behaviour": [ { - "condition": "lengthTreatedKmIdentified > 0", + "condition": "lengthTreatedKm > 0", "type": "conditional_validation", "value": { "message": "The managed length must be mapped", @@ -16071,24 +15798,18 @@ { "defaultValue": { "type": "computed", - "expression": "calculatedAreaTreatedHaIdentified" + "expression": "calculatedAreaTreatedHa" }, "dataType": "number", - "name": "areaTreatedHaIdentified", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", "units": "ha", "decimalPlaces": 3, - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - } - ] + "validate": "required,min[0]" }, { "dataType": "text", - "name": "mappingNotAlignedReasonIdentified", + "name": "mappingNotAlignedReason", "constraints": [ "Mapped area simplifies more complex area/s where work was undertaken during this period", "Other" @@ -16096,79 +15817,256 @@ "validate": "required", "behaviour": [ { - "condition": "not (within(areaTreatedHaIdentified, calculatedAreaTreatedHaIdentified, 0.1) and within(lengthTreatedKmIdentified, calculatedLengthTreatedKmIdentified, 0.1))", - "type": "visible" + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" } ] }, { "dataType": "text", - "name": "mappingNotAlignedCommentsIdentified", + "name": "mappingNotAlignedComments", "validate": "required,maxSize[100]", "behaviour": [ { "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReasonIdentified" + "condition": "\"Other\" == mappingNotAlignedReason" } ] }, { "dataType": "document", - "name": "extraMappingDetailsIdentified", + "name": "extraMappingDetails", "validate": "required", "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", "behaviour": [ { - "condition": "not (within(areaTreatedHaIdentified, calculatedAreaTreatedHaIdentified, 0.1) and within(lengthTreatedKmIdentified, calculatedLengthTreatedKmIdentified, 0.1))", - "type": "visible" + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" } ] }, { "defaultValue": { "type": "computed", - "expression": "$geom.lengthKm(sitesIdentified)" + "expression": "calculatedLengthTreatedKm" }, "dataType": "number", - "name": "lengthTreatedKmIdentified", + "name": "lengthTreatedKm", "units": "km", "decimalPlaces": 3 }, { "dataType": "text", - "name": "identifiedSitesName", - "description": "", - "validate": "maxSize[300]" - } - ], - "dataType": "list", - "name": "potentialSitesSurveyBaselineTable" - }, - { - "dataType": "number", - "name": "rowCount", - "decimalPlaces": 0, - "computed": { - "expression": "sum(potentialSitesSurveyBaselineTable, \"assessedSitesName ? 1 : 0\")" - } - } - ], + "description": "Select the technique used to conduct the survey. If the EMSA Application tool was not used, you should select 'Other'.", + "name": "emsaProtocol", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.protocol" + }, + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.protocols" + } + } + } + }, + { + "dataType": "stringList", + "description": "Describe the technique (if Other) was selected.", + "name": "otherEmsaProtocol", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methods" + } + }, + { + "dataType": "text", + "name": "surveyMethodology", + "description": "Provide more details on what is being done.", + "validate": "required,maxSize[3000]", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methodDescription" + } + }, + { + "dataType": "text", + "name": "invoicingThisActivity", + "constraints": [ + "Yes", + "No" + ], + "validate": "required" + }, + { + "columns": [ + { + "dataType": "text", + "name": "typesOfHabitat", + "description": "", + "constraints": [ + "Desert", + "Grassland/Savanna", + "Bush/Forest", + "Subterranean", + "Marsh/Swamps", + "Rivers/Streams/Wetlands", + "Coastal areas", + "Marine areas", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "habitatCondition", + "validate": "maxSize[300]" + } + ], + "dataType": "list", + "name": "habitatConditionSurveySpeciesTable" + } + ], + "minSize": 1 + } + ] + }, + { + "dataType": "lookupTable", + "name": "baselineIndicatorMapping", + "config": { + "source": { + "literal": { + "Baseline dataset associated with a project outcome": "Baseline", + "Project progress dataset that is tracking change against an established project baseline dataset": "Indicator" + } + } + } + }, + { + "allowRowDelete": "false", + "columns": [ + { + "dataType": "text", + "name": "participationIndividualsOrGroups", + "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "participationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "participationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ] + }, + { + "dataType": "number", + "name": "firstNationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "participationIndividualNumber", + "type": "computed" + }, + "rule": "max" + } + ] + }, + { + "dataType": "text", + "name": "firstNationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ], + "validate": [ + { + "rule": "required" + }, + { + "param": { + "expression": "participationGroupNumber", + "type": "computed" + }, + "rule": "max", + "message": "The number of first nation participants cannot be greater than the total number of participants" + } + ] + }, + { + "dataType": "text", + "name": "participationDetails", + "validate": "required, maxSize[3000]" + } + ], "dataType": "list", - "name": "potentialSiteSurveys", - "minSize": 1 + "name": "participationInformationTableHca" }, { "dataType": "number", - "name": "totalPotentialSites", + "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { - "expression": "sum(potentialSiteSurveys, \"rowCount\")" + "expression": "sum(habitatConditionSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" } }, { "dataType": "number", - "name": "totalPotentialSitesInvoiced", + "name": "totalSurveyBaselineInvoiced", "validate": [ { "rule": "required" @@ -16178,7 +16076,37 @@ }, { "param": { - "expression": "totalPotentialSites", + "expression": "totalSurveyBaseline", + "type": "computed" + }, + "rule": "max" + } + ], + "defaultValue": "" + }, + { + "dataType": "number", + "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(habitatConditionSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" + } + }, + { + "dataType": "number", + "name": "totalSurveyIndicatorInvoiced", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalSurveyIndicator", "type": "computed" }, "rule": "max" @@ -16188,12 +16116,12 @@ }, { "dataType": "text", - "name": "totalInvoicedIdentifyingMismatched", + "name": "totalInvoicedHabitatConditionMismatched", "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", "validate": "maxSize[400],required", "behaviour": [ { - "condition": "+totalPotentialSitesInvoiced < +totalPotentialSites", + "condition": "+totalSurveyIndicatorInvoiced < +totalSurveyIndicator or +totalSurveyBaselineInvoiced < +totalSurveyBaseline", "type": "enable" } ] @@ -16210,11 +16138,12 @@ { "dataType": "boolean", "name": "dataUploaded", - "description": "" + "description": "" }, { - "name": "projectAssuranceDetails", "dataType": "text", + "name": "projectAssuranceDetails", + "description": "", "validate": "required,maxSize[5000]" }, { @@ -16229,6 +16158,8 @@ ] } ], + "modelName": "NHT - Habitat condition assessment survey", + "title": "Habitat Condition Assessment Survey", "viewModel": [ { "type": "section", @@ -16292,9 +16223,18 @@ "type": "textarea" } ], - "source": "participationInformationTableIpl", + "source": "participationInformationTableHca", "type": "table" }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Survey information

Before completing this section, please ensure you have created a Data Set Summary information for every data set produced by the surveys you intend to report

" + } + ] + }, { "type": "row", "items": [ @@ -16315,8 +16255,18 @@ "type": "row", "items": [ { - "preLabel": "(i) Total number of potential sites assessed during this reporting period", - "source": "totalPotentialSites", + "preLabel": "(i) Total Number of baseline habitat condition assessment surveys completed for this reporting period", + "source": "totalSurveyBaseline", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "(ii) Total Number of baseline habitat condition assessment surveys invoiced for this reporting period", + "source": "totalSurveyBaselineInvoiced", "type": "number" } ] @@ -16331,8 +16281,18 @@ "type": "row", "items": [ { - "preLabel": "(ii) Total number of potential sites assessed invoiced for during this reporting period", - "source": "totalPotentialSitesInvoiced", + "preLabel": "(iii) Total Number of indicator habitat condition assessment surveys completed for this reporting period", + "source": "totalSurveyIndicator", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "(iv) Total Number of indicator habitat condition assessment surveys invoiced for this reporting period", + "source": "totalSurveyIndicatorInvoiced", "type": "number" } ] @@ -16346,7 +16306,7 @@ "items": [ { "preLabel": "If the total invoiced is different to the total completed, please provide the reason", - "source": "totalInvoicedIdentifyingMismatched", + "source": "totalInvoicedHabitatConditionMismatched", "type": "textarea", "rows": 4, "placeholder": "" @@ -16354,59 +16314,32 @@ ] }, { - "addRowText": "Add a new outcome statement and assessed sites", + "addRowText": "Add survey", + "removeRowText": "Delete this survey", "userAddedRows": true, - "source": "potentialSiteSurveys", + "source": "habitatConditionSurveys", "type": "repeat", "items": [ { "type": "row", "items": [ - { - "css": "span3", - "type": "col", - "items": [ - { - "type": "row", - "items": [ - { - "source": "relatedOutcomes", - "type": "selectOne", - "preLabel": "Which outcome statement/s does this activity relate to?" - } - ] - } - ] - }, { "type": "col", - "css": "span3 col-border-right", "items": [ { - "type": "row", - "items": [ - { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" - } - ] + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s relates to this survey?" } ] }, { - "css": "span3", "type": "col", "items": [ { - "type": "row", - "items": [ - { - "source": "invoicingThisActivity", - "preLabel": "Are you invoicing for this activity in this reporting period?", - "type": "selectOne" - } - ] + "source": "baselineOrIndicatorSurvey", + "type": "selectOne", + "preLabel": "Baseline survey or indicator (follow-up) survey?" } ] } @@ -16416,237 +16349,288 @@ "type": "row", "items": [ { - "css": "span3", - "type": "col", - "items": [ - { - "type": "row", - "items": [ - { - "source": "sitesHaveBeenIdentified", - "preLabel": "What have the sites identified for?", - "type": "text" - } - ] - } - ] - }, + "source": "surveyObjective", + "preLabel": "Survey objective", + "type": "text" + } + ] + }, + { + "type": "repeat", + "source": "habitatConditionDataSets", + "userAddedRows": true, + "addRowText": "New data set", + "removeRowText": "Delete this data set", + "items": [ { - "type": "col", - "css": "span3 col-border-right", + "type": "row", + "css": "border-bottom", "items": [ { - "type": "row", + "type": "col", "items": [ { - "source": "methodsUsedToIdentify", - "preLabel": "What method/s were used to identify and prioritise?", - "type": "text" + "source": "dataSetId", + "type": "selectOne", + "preLabel": "Please select the data set produced by this survey. Note it must have already been entered on the Data Set Summary tab." } ] } ] }, { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "source": "outcomesAchievement", - "preLabel": "How do they contribute to the achievement of the outcome statement/s?", - "type": "textarea" + "type": "row", + "items": [ + { + "source": "projectBaselines", + "type": "selectMany", + "preLabel": "Which project baseline/s relate to this survey?", + "readonly": "readonly" + } + ] } ] - } - ] - } - ] - }, - { - "columns": [ - { - "width": "15%", - "title": "Site/s assessed*", - "helpText": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping.", - "type": "col", - "items": [ - { - "source": "sitesAssessed", - "type": "feature" - }, - { - "source": "calculatedAreaTreatedHaAssessed", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - }, - { - "source": "calculatedLengthTreatedKmAssessed", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" }, { - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetailsAssessed", - "type": "document" + "type": "row", + "items": [ + { + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" + } + ] } ] - } - ] - }, - { - "width": "15%", - "type": "col", - "title": "Actual area (ha) / length (km) of assessed site*", - "helpText": "Manually enter correct figure for this reporting period if different to mapped value.", - "items": [ - { - "source": "areaTreatedHaAssessed", - "type": "number", - "displayOptions": { - "displayUnits": true - } - }, - { - "source": "lengthTreatedKmAssessed", - "type": "number", - "displayOptions": { - "displayUnits": true - } }, { - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReasonAssessed", - "type": "selectOne" + "type": "row", + "items": [ + { + "preLabel": "Activity start date", + "source": "activitiesStartDate", + "type": "date" + } + ] } ] }, { - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedCommentsAssessed", - "type": "textarea", - "rows": 5 + "type": "row", + "items": [ + { + "preLabel": "Activity end date", + "source": "activitiesEndDate", + "type": "date" + } + ] } ] - } - ] - }, - { - "width": "20%", - "source": "assessedSitesName", - "title": "Name of assessed site", - "type": "text" - }, - { - "width": "15%", - "title": "Site/s identified and prioritised", - "helpText": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping.", - "type": "col", - "items": [ - { - "source": "sitesIdentified", - "type": "feature" - }, - { - "source": "calculatedAreaTreatedHaIdentified", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" }, { - "source": "calculatedLengthTreatedKmIdentified", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Sites covered by habitat condition assessment survey", + "source": "sitesCoveredForHabitatConditionSurvey", + "type": "feature" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedLengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" + } + ] + } + ] }, { - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetailsIdentified", - "type": "document" + "type": "row", + "items": [ + { + "preLabel": "Actual area (ha) / length (km) covered by habitat condition assessment survey", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "lengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 + } + ] } ] - } - ] - }, - { - "width": "15%", - "type": "col", - "title": "Actual area (ha) / length (km) of identified and prioritised site", - "helpText": "Manually enter correct figure for this reporting period if different to mapped value.", - "items": [ - { - "source": "areaTreatedHaIdentified", - "type": "number", - "displayOptions": { - "displayUnits": true - } }, { - "source": "lengthTreatedKmIdentified", - "type": "number", - "displayOptions": { - "displayUnits": true - } + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Survey technique", + "source": "emsaProtocol", + "type": "selectOne", + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Survey technique (if Other)", + "source": "otherEmsaProtocol", + "type": "select2Many" + } + ] + } + ] }, { - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReasonIdentified", - "type": "selectOne" + "type": "row", + "items": [ + { + "source": "surveyMethodology", + "preLabel": "Survey methodology", + "type": "text" + } + ] } ] }, { - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedCommentsIdentified", - "type": "textarea", - "rows": 5 + "type": "row", + "items": [ + { + "source": "invoicingThisActivity", + "preLabel": "Are you invoicing for this activity in this reporting period?", + "type": "selectOne" + } + ] } ] } ] }, { - "width": "20%", - "source": "identifiedSitesName", - "title": "Name of identified and prioritised site", - "type": "textarea" + "columns": [ + { + "width": "40%", + "source": "typesOfHabitat", + "title": "Types of habitat", + "type": "selectOne" + }, + { + "width": "60%", + "source": "habitatCondition", + "title": "Condition of habitat", + "type": "text" + } + ], + "userAddedRows": true, + "source": "habitatConditionSurveySpeciesTable", + "type": "table" } - ], - "addRowText": "Add a new assessed site to this outcome", - "userAddedRows": true, - "disableTableUpload": true, - "source": "potentialSitesSurveyBaselineTable", - "type": "table" + ] } ] }, @@ -16717,17 +16701,19 @@ ] }, "modelName": null, - "templateName": "nhtIdentifyingSites", + "templateName": "nhtHabitatConditionAssessmentSurvey", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Identifying sites", + "name": "NHT - Habitat condition assessment", "description": null }, { "collapsedByDefault": false, "template": { + "title": "Identifying and Prioritising the Location of Potential Sites", + "modelName": "NHT - Identifying sites", "dataModel": [ { "allowRowDelete": "false", @@ -16836,177 +16822,27 @@ } ], "dataType": "list", - "name": "participationInformationTableIfm" + "name": "participationInformationTableIpl" }, { "columns": [ - { - "columns": [ - { - "dataType": "feature", - "name": "sitesBenefittedByFireAction" - }, - { - "computed": { - "expression": "$geom.areaHa(sitesBenefittedByFireAction)" - }, - "dataType": "number", - "name": "areaBenefittedByFireActionHa" - }, - { - "dataType": "text", - "name": "evidenceOfBenefit", - "validate": "maxSize[300]" - } - ], - "dataType": "list", - "name": "fireManagementDetails" - }, - { - "dataType": "text", - "name": "initialOrFollowup", - "constraints": [ - "Initial", - "Follow-up" - ], - "validate": "required" - }, - { - "dataType": "feature", - "name": "sitesTreatedByFireManagement", - "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." - }, - { - "computed": { - "expression": "$geom.areaHa(sitesTreatedByFireManagement)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHa", - "units": "ha", - "decimalPlaces": 3 - }, - { - "computed": { - "expression": "$geom.lengthKm(sitesTreatedByFireManagement)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKm", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKm > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHa" - }, - "dataType": "number", - "name": "areaTreatedHa", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "mappingNotAlignedReason", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, - { - "dataType": "text", - "name": "mappingNotAlignedComments", - "validate": "required,maxSize[100]", - "behaviour": [ - { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReason" - } - ] - }, - { - "dataType": "document", - "name": "extraMappingDetails", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKm" - }, - "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 - }, { "dataType": "text", - "name": "fireManagementType", + "name": "sitesHaveBeenIdentified", "description": "", - "constraints": [ - "Cultural burn", - "Ecological burn", - "Grading", - "Hazard reduction burn", - "Herbicide", - "Slashing", - "Other" - ], - "validate": "required" + "validate": "required,maxSize[300]" }, { "dataType": "text", - "name": "otherFireManagementType", - "behaviour": [ - { - "condition": "fireManagementType == \"Other\"", - "type": "enable" - } - ], - "validate": "required,maxSize[100]" - }, - { - "dataType": "feature", - "name": "sitesBenefittedByFireAction" - }, - { - "computed": { - "expression": "$geom.areaHa(sitesBenefittedByFireAction)" - }, - "dataType": "number", - "name": "areaBenefittedByFireActionHa2", - "units": "ha", - "decimalPlaces": 3 + "name": "methodsUsedToIdentify", + "description": "", + "validate": "required,maxSize[300]" }, { "dataType": "text", - "name": "evidenceOfBenefit", - "validate": "maxSize[300]" + "name": "outcomesAchievement", + "description": "", + "validate": "required,maxSize[300]" }, { "name": "relatedOutcomes", @@ -17015,11 +16851,23 @@ "validate": "required", "constraints": { "textProperty": "label", - "valueProperty": "value", + "valueProperty": "label", "type": "pre-populated", "config": { "source": { - "context-path": "outcomes" + "url": "/project/outcomesByScores", + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + }, + { + "expression": "scores", + "name": "scoreIds", + "type": "computed" + } + ] } } } @@ -17043,293 +16891,413 @@ { "dataType": "text", "name": "otherInvestmentPriority", + "description": "Describe the investment priority (if Other) was selected", "behaviour": [ { "type": "enable", "condition": "\"Other\" in investmentPriorities2" } ] - } - ], - "dataType": "list", - "name": "fireManagementAreasControlled" - }, - { - "dataType": "number", - "name": "totalAreaTreatedFireMgmtInitial", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(fireManagementAreasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" - } - }, - { - "dataType": "number", - "decimalPlaces": 3, - "name": "totalAreaTreatedFireMgmtInitialInvoiced", - "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - }, - { - "param": { - "expression": "totalAreaTreatedFireMgmtInitial", - "type": "computed", - "decimalPlaces": 3 - }, - "rule": "max" - } - ], - "defaultValue": "" - }, - { - "dataType": "number", - "name": "totalAreaTreatedFireMgmtFollowup", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(fireManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? areaTreatedHa : 0\")" - } - }, - { - "dataType": "number", - "decimalPlaces": 3, - "name": "totalAreaTreatedFireMgmtFollowupInvoiced", - "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", - "validate": [ - { - "rule": "required" }, { - "rule": "min[0]" + "dataType": "text", + "name": "invoicingThisActivity", + "constraints": [ + "Yes", + "No" + ], + "validate": "required" }, { - "param": { - "expression": "totalAreaTreatedFireMgmtFollowup", - "type": "computed", - "decimalPlaces": 3 - }, - "rule": "max" - } - ], - "defaultValue": "" - }, - { - "dataType": "text", - "name": "totalInvoicedFireMgmtMismatched", - "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", - "validate": "maxSize[400],required", - "behaviour": [ - { - "condition": "+totalAreaTreatedFireMgmtInitialInvoiced < +totalAreaTreatedFireMgmtInitial or +totalAreaTreatedFireMgmtFollowupInvoiced < +totalAreaTreatedFireMgmtFollowup", - "type": "enable" - } - ] - }, - { - "dataType": "text", - "name": "comments", - "validate": "maxSize[1500]" - }, - { - "dataType": "image", - "name": "photographicEvidence" - }, - { - "dataType": "boolean", - "name": "dataUploaded", - "description": "" - }, - { - "name": "projectAssuranceDetails", - "dataType": "text", - "validate": "required,maxSize[5000]" - }, - { - "dataType": "list", - "name": "assuranceDocuments", - "columns": [ - { - "dataType": "document", - "name": "attachments", - "description": "Please attach any Evidence of Service Delivery here." - } - ] - } - ], - "modelName": "NHT - Fire management", - "title": "Implementing Fire Management Actions", - "viewModel": [ - { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Participation information

" - } - ] - }, - { - "disableTableUpload": true, - "columns": [ - { - "width": "10%", - "source": "participationIndividualsOrGroups", - "title": "Are individuals or groups delivering this service?", - "type": "selectOne" - }, - { - "width": "20%", - "type": "col", - "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ + "columns": [ { - "source": "participationIndividualNumber", - "type": "number" + "dataType": "feature", + "name": "sitesAssessed", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping.", + "validate": "required" }, { - "source": "participationGroupNumber", - "type": "selectOne" - } - ] - }, - { - "type": "col", - "width": "20%", - "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", - "items": [ + "computed": { + "expression": "$geom.areaHa(sitesAssessed)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHaAssessed", + "units": "ha", + "decimalPlaces": 3 + }, { - "source": "firstNationIndividualNumber", - "type": "number" + "computed": { + "expression": "$geom.lengthKm(sitesAssessed)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKmAssessed", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "lengthTreatedKmAssessed > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] }, { - "source": "firstNationGroupNumber", - "type": "selectOne" + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHaAssessed" + }, + "dataType": "number", + "name": "areaTreatedHaAssessed", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReasonAssessed", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHaAssessed, calculatedAreaTreatedHaAssessed, 0.1) and within(lengthTreatedKmAssessed, calculatedLengthTreatedKmAssessed, 0.1))", + "type": "visible" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedCommentsAssessed", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReasonAssessed" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetailsAssessed", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHaAssessed, calculatedAreaTreatedHaAssessed, 0.1) and within(lengthTreatedKmAssessed, calculatedLengthTreatedKmAssessed, 0.1))", + "type": "visible" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "$geom.lengthKm(sitesAssessed)" + }, + "dataType": "number", + "name": "lengthTreatedKmAssessed", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "text", + "name": "assessedSitesName", + "description": "", + "validate": "required,maxSize[300]" + }, + { + "dataType": "feature", + "name": "sitesIdentified", + "validate": [ + { + "rule": "required" + } + ] + }, + { + "computed": { + "expression": "$geom.areaHa(sitesIdentified)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHaIdentified", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesIdentified)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKmIdentified", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "lengthTreatedKmIdentified > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHaIdentified" + }, + "dataType": "number", + "name": "areaTreatedHaIdentified", + "units": "ha", + "decimalPlaces": 3, + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedReasonIdentified", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHaIdentified, calculatedAreaTreatedHaIdentified, 0.1) and within(lengthTreatedKmIdentified, calculatedLengthTreatedKmIdentified, 0.1))", + "type": "visible" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedCommentsIdentified", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReasonIdentified" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetailsIdentified", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHaIdentified, calculatedAreaTreatedHaIdentified, 0.1) and within(lengthTreatedKmIdentified, calculatedLengthTreatedKmIdentified, 0.1))", + "type": "visible" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "$geom.lengthKm(sitesIdentified)" + }, + "dataType": "number", + "name": "lengthTreatedKmIdentified", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "text", + "name": "identifiedSitesName", + "description": "", + "validate": "maxSize[300]" } - ] + ], + "dataType": "list", + "name": "potentialSitesSurveyBaselineTable" }, { - "width": "20%", - "source": "participationDetails", - "rows": 4, - "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", - "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", - "type": "textarea" + "dataType": "number", + "name": "rowCount", + "decimalPlaces": 0, + "computed": { + "expression": "sum(potentialSitesSurveyBaselineTable, \"assessedSitesName ? 1 : 0\")" + } } ], - "source": "participationInformationTableIfm", - "type": "table" + "dataType": "list", + "name": "potentialSiteSurveys", + "minSize": 1 }, { - "type": "row", - "items": [ + "dataType": "number", + "name": "totalPotentialSites", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(potentialSiteSurveys, \"rowCount\")" + } + }, + { + "dataType": "number", + "name": "totalPotentialSitesInvoiced", + "validate": [ { - "type": "literal", - "source": "

Totals Summary

" + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalPotentialSites", + "type": "computed" + }, + "rule": "max" + } + ], + "defaultValue": "" + }, + { + "dataType": "text", + "name": "totalInvoicedIdentifyingMismatched", + "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", + "validate": "maxSize[400],required", + "behaviour": [ + { + "condition": "+totalPotentialSitesInvoiced < +totalPotentialSites", + "type": "enable" } ] }, { - "type": "row", + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" + }, + { + "dataType": "image", + "name": "photographicEvidence" + }, + { + "dataType": "boolean", + "name": "dataUploaded", + "description": "" + }, + { + "name": "projectAssuranceDetails", + "dataType": "text", + "validate": "required,maxSize[5000]" + }, + { + "dataType": "list", + "name": "assuranceDocuments", + "columns": [ + { + "dataType": "document", + "name": "attachments", + "description": "Please attach any Evidence of Service Delivery here." + } + ] + } + ], + "viewModel": [ + { + "type": "section", "items": [ { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "(i) Total area (ha) treated by fire management action/s (initial) during this reporting period", - "source": "totalAreaTreatedFireMgmtInitial", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "(ii) Total area (ha) treated by fire management action/s (initial) invoiced for during this reporting period", - "source": "totalAreaTreatedFireMgmtInitialInvoiced", - "type": "number", - "displayOptions": { - "removeTrailingZeros": false - } - } - ] + "type": "literal", + "source": "

Participation information

" } ] }, { - "type": "col", - "css": "span4 col-border-right", - "items": [ + "disableTableUpload": true, + "columns": [ { - "type": "row", + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" + }, + { + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", "items": [ { - "preLabel": "(iii) Total area (ha) treated by fire management action/s (follow up) during this reporting period", - "source": "totalAreaTreatedFireMgmtFollowup", + "source": "participationIndividualNumber", "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" } ] }, { - "type": "row", + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", "items": [ { - "preLabel": "(iv) Total area (ha) treated by fire management action/s (follow up) invoiced for during this reporting period", - "source": "totalAreaTreatedFireMgmtFollowupInvoiced", - "type": "number", - "displayOptions": { - "removeTrailingZeros": false - } + "source": "firstNationIndividualNumber", + "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" } ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" } - ] - } - ] - }, - { - "type": "row", - "items": [ + ], + "source": "participationInformationTableIpl", + "type": "table" + }, { - "preLabel": "If the total invoiced is different to the total completed, please provide the reason", - "source": "totalInvoicedFireMgmtMismatched", - "type": "textarea", - "rows": 4, - "placeholder": "" - } - ] - }, - { - "addRowText": "Add a new area of fire management actions", - "userAddedRows": true, - "source": "fireManagementAreasControlled", - "type": "repeat", - "items": [ + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] + }, { "type": "row", "items": [ { - "css": "span3", "type": "col", + "css": "span4 col-border-right", "items": [ { "type": "row", "items": [ { - "source": "relatedOutcomes", - "type": "selectOne", - "preLabel": "Which outcome statement/s does this activity relate to?" + "preLabel": "(i) Total number of potential sites assessed during this reporting period", + "source": "totalPotentialSites", + "type": "number" } ] } @@ -17337,15 +17305,15 @@ }, { "type": "col", - "css": "span3 col-border-right", + "css": "span4 col-border-right", "items": [ { "type": "row", "items": [ { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" + "preLabel": "(ii) Total number of potential sites assessed invoiced for during this reporting period", + "source": "totalPotentialSitesInvoiced", + "type": "number" } ] } @@ -17355,255 +17323,386 @@ }, { "type": "row", - "css": "border-bottom", "items": [ { - "type": "col", - "css": "span3 col-border-right", + "preLabel": "If the total invoiced is different to the total completed, please provide the reason", + "source": "totalInvoicedIdentifyingMismatched", + "type": "textarea", + "rows": 4, + "placeholder": "" + } + ] + }, + { + "addRowText": "Add a new outcome statement and assessed sites", + "userAddedRows": true, + "source": "potentialSiteSurveys", + "type": "repeat", + "items": [ + { + "type": "row", "items": [ { - "type": "row", + "css": "span3", + "type": "col", "items": [ { - "source": "initialOrFollowup", - "preLabel": "Initial or follow-up?", - "type": "selectOne" + "type": "row", + "items": [ + { + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s does this activity relate to?" + } + ] } ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ + }, { - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "preLabel": "Site/s treated by fire management action", - "source": "sitesTreatedByFireManagement", - "type": "feature" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedAreaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" + "type": "row", + "items": [ + { + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" + } + ] } ] }, { - "type": "row", + "css": "span3", + "type": "col", "items": [ { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetails", - "type": "document" + "type": "row", + "items": [ + { + "source": "invoicingThisActivity", + "preLabel": "Are you invoicing for this activity in this reporting period?", + "type": "selectOne" + } + ] } ] } ] }, { - "type": "col", - "css": "span3 col-border-right", + "type": "row", "items": [ { - "type": "row", + "css": "span3", + "type": "col", "items": [ { - "preLabel": "Actual area (ha) treated by fire management action", - "source": "areaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - } + "type": "row", + "items": [ + { + "source": "sitesHaveBeenIdentified", + "preLabel": "What have the sites identified for?", + "type": "text" + } + ] } ] }, { - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", - "type": "selectOne" + "type": "row", + "items": [ + { + "source": "methodsUsedToIdentify", + "preLabel": "What method/s were used to identify and prioritise?", + "type": "text" + } + ] } ] }, { - "type": "row", + "type": "col", + "css": "span3 col-border-right", "items": [ { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 + "type": "row", + "items": [ + { + "source": "outcomesAchievement", + "preLabel": "How do they contribute to the achievement of the outcome statement/s?", + "type": "textarea" + } + ] } ] } ] - } - ] - }, - { - "type": "row", - "css": "border-bottom", - "items": [ + }, { - "type": "col", - "css": "span3 col-border-right", - "items": [ + "columns": [ { - "type": "row", + "width": "15%", + "title": "Site/s assessed*", + "helpText": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping.", + "type": "col", "items": [ { - "source": "fireManagementType", - "preLabel": "Type of fire management action", - "type": "select2" + "source": "sitesAssessed", + "type": "feature" + }, + { + "source": "calculatedAreaTreatedHaAssessed", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + }, + { + "source": "calculatedLengthTreatedKmAssessed", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetailsAssessed", + "type": "document" + } + ] } ] }, { - "type": "row", + "width": "15%", + "type": "col", + "title": "Actual area (ha) / length (km) of assessed site*", + "helpText": "Manually enter correct figure for this reporting period if different to mapped value.", "items": [ { - "source": "otherFireManagementType", - "preLabel": "", - "type": "text" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ + "source": "areaTreatedHaAssessed", + "type": "number", + "displayOptions": { + "displayUnits": true + } + }, { - "source": "sitesBenefittedByFireAction", - "type": "feature", - "preLabel": "Please map any off-site area/s if they benefitted from this fire management action" + "source": "lengthTreatedKmAssessed", + "type": "number", + "displayOptions": { + "displayUnits": true + } + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReasonAssessed", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedCommentsAssessed", + "type": "textarea", + "rows": 5 + } + ] } ] }, { - "type": "row", + "width": "20%", + "source": "assessedSitesName", + "title": "Name of assessed site", + "type": "text" + }, + { + "width": "15%", + "title": "Site/s identified and prioritised", + "helpText": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping.", + "type": "col", "items": [ { - "source": "areaBenefittedByFireActionHa2", + "source": "sitesIdentified", + "type": "feature" + }, + { + "source": "calculatedAreaTreatedHaIdentified", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + }, + { + "source": "calculatedLengthTreatedKmIdentified", "type": "number", "displayOptions": { "displayUnits": true }, "readonly": "readonly" + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetailsIdentified", + "type": "document" + } + ] } ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ + }, { - "type": "row", + "width": "15%", + "type": "col", + "title": "Actual area (ha) / length (km) of identified and prioritised site", + "helpText": "Manually enter correct figure for this reporting period if different to mapped value.", "items": [ { - "source": "evidenceOfBenefit", - "type": "textarea", - "preLabel": "If off-site area was mapped please provide a description on the evidence available to reflect this benefit" + "source": "areaTreatedHaIdentified", + "type": "number", + "displayOptions": { + "displayUnits": true + } + }, + { + "source": "lengthTreatedKmIdentified", + "type": "number", + "displayOptions": { + "displayUnits": true + } + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReasonIdentified", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedCommentsIdentified", + "type": "textarea", + "rows": 5 + } + ] } ] + }, + { + "width": "20%", + "source": "identifiedSitesName", + "title": "Name of identified and prioritised site", + "type": "textarea" } - ] + ], + "addRowText": "Add a new assessed site to this outcome", + "userAddedRows": true, + "disableTableUpload": true, + "source": "potentialSitesSurveyBaselineTable", + "type": "table" } ] - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" - } - ] - }, - { - "type": "row", - "items": [ + }, { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" - } - ] - }, - { - "type": "row", - "items": [ + "type": "row", + "items": [ + { + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, { - "type": "literal", - "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" + "type": "row", + "items": [ + { + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] }, { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] - }, - { - "type": "row", - "items": [ + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" + }, + { + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." - } - ] - }, - { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, { - "title": "Attached documents", - "source": "attachments", - "type": "document" + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" + } + ] } ] } ] }, "modelName": null, - "templateName": "nhtFireManagement", + "templateName": "nhtIdentifyingSites", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Fire management", + "name": "NHT - Identifying sites", "description": null }, { @@ -17717,78 +17816,49 @@ } ], "dataType": "list", - "name": "participationInformationTableHyd" + "name": "participationInformationTableIfm" }, { "columns": [ { - "dataType": "text", - "name": "initialOrFollowup", - "constraints": [ - "Initial", - "Follow-up" - ], - "validate": "required" - }, - { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "outcomes" - } - } - } - }, - { - "name": "investmentPriorities2", - "dataType": "text", - "description": "", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.investmentPriorities" - } - } - } - }, - { - "dataType": "text", - "name": "otherInvestmentPriority", - "behaviour": [ + "columns": [ { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" + "dataType": "feature", + "name": "sitesBenefittedByFireAction" + }, + { + "computed": { + "expression": "$geom.areaHa(sitesBenefittedByFireAction)" + }, + "dataType": "number", + "name": "areaBenefittedByFireActionHa" + }, + { + "dataType": "text", + "name": "evidenceOfBenefit", + "validate": "maxSize[300]" } - ] + ], + "dataType": "list", + "name": "fireManagementDetails" }, { "dataType": "text", - "name": "invoicingThisActivity", + "name": "initialOrFollowup", "constraints": [ - "Yes", - "No" + "Initial", + "Follow-up" ], "validate": "required" }, { "dataType": "feature", - "name": "sitesOfHydrological", + "name": "sitesTreatedByFireManagement", "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." }, { "computed": { - "expression": "$geom.areaHa(sitesOfHydrological)" + "expression": "$geom.areaHa(sitesTreatedByFireManagement)" }, "dataType": "number", "name": "calculatedAreaTreatedHa", @@ -17797,7 +17867,7 @@ }, { "computed": { - "expression": "$geom.lengthKm(sitesOfHydrological)" + "expression": "$geom.lengthKm(sitesTreatedByFireManagement)" }, "dataType": "number", "name": "calculatedLengthTreatedKm", @@ -17836,7 +17906,7 @@ "validate": "required", "behaviour": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", "type": "if" } ] @@ -17859,7 +17929,7 @@ "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", "behaviour": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", "type": "if" } ] @@ -17874,69 +17944,111 @@ "units": "km", "decimalPlaces": 3 }, - { - "dataType": "number", - "name": "noTreatments", - "defaultValue": "", - "validate": "required,min[0]" - }, - { - "dataType": "number", - "name": "waterVolume", - "defaultValue": "", - "validate": "required,min[0]" - }, - { - "dataType": "number", - "name": "stormWaterVolume", - "defaultValue": "", - "validate": "required,min[0]" - }, { "dataType": "text", - "name": "treatmentType", + "name": "fireManagementType", "description": "", "constraints": [ - "Removing barriers (e.g fish barriers)", - "Structure instalment or modification (e.g. weirs, flow gauging stations, fords, culverts)", - "Resnagging", - "Other" - ], - "validate": "required" - }, + "Cultural burn", + "Ecological burn", + "Grading", + "Hazard reduction burn", + "Herbicide", + "Slashing", + "Other" + ], + "validate": "required" + }, { "dataType": "text", - "name": "otherTreatmentType", + "name": "otherFireManagementType", "behaviour": [ { - "condition": "treatmentType == \"Other\"", + "condition": "fireManagementType == \"Other\"", "type": "enable" } ], - "validate": "required,maxSize[300]" + "validate": "required,maxSize[100]" + }, + { + "dataType": "feature", + "name": "sitesBenefittedByFireAction" + }, + { + "computed": { + "expression": "$geom.areaHa(sitesBenefittedByFireAction)" + }, + "dataType": "number", + "name": "areaBenefittedByFireActionHa2", + "units": "ha", + "decimalPlaces": 3 }, { "dataType": "text", - "name": "treatmentObjective", - "description": "Aim of the action - e.g. hydrological regime change from X to Y.", - "validate": "required,maxSize[300]" + "name": "evidenceOfBenefit", + "validate": "maxSize[300]" + }, + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] } ], "dataType": "list", - "name": "hydroAreasControlled" + "name": "fireManagementAreasControlled" }, { "dataType": "number", - "name": "totalHydroTreatmentsInitial", + "name": "totalAreaTreatedFireMgmtInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 0, + "decimalPlaces": 3, "computed": { - "expression": "sum(hydroAreasControlled, \"initialOrFollowup == 'Initial' ? noTreatments : 0\")" + "expression": "sum(fireManagementAreasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" } }, { "dataType": "number", - "name": "totalHydroTreatmentsInitialInvoiced", + "decimalPlaces": 3, + "name": "totalAreaTreatedFireMgmtInitialInvoiced", + "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", "validate": [ { "rule": "required" @@ -17946,8 +18058,9 @@ }, { "param": { - "expression": "totalHydroTreatmentsInitial", - "type": "computed" + "expression": "totalAreaTreatedFireMgmtInitial", + "type": "computed", + "decimalPlaces": 3 }, "rule": "max" } @@ -17956,16 +18069,19 @@ }, { "dataType": "number", - "name": "totalHydroTreatmentsFollowup", + "name": "totalAreaTreatedFireMgmtFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 0, + "decimalPlaces": 3, "computed": { - "expression": "sum(hydroAreasControlled, \"initialOrFollowup == 'Follow-up' ? noTreatments : 0\")" + "expression": "sum(fireManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? areaTreatedHa : 0\")" } }, { "dataType": "number", - "name": "totalHydroTreatmentsFollowupInvoiced", + "decimalPlaces": 3, + "name": "totalAreaTreatedFireMgmtFollowupInvoiced", + "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", "validate": [ { "rule": "required" @@ -17975,8 +18091,9 @@ }, { "param": { - "expression": "totalHydroTreatmentsFollowup", - "type": "computed" + "expression": "totalAreaTreatedFireMgmtFollowup", + "type": "computed", + "decimalPlaces": 3 }, "rule": "max" } @@ -17985,12 +18102,12 @@ }, { "dataType": "text", - "name": "totalInvoicedIdentifyingMismatched", + "name": "totalInvoicedFireMgmtMismatched", "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", "validate": "maxSize[400],required", "behaviour": [ { - "condition": "+totalHydroTreatmentsInitialInvoiced < +totalHydroTreatmentsInitial or +totalHydroTreatmentsFollowupInvoiced < +totalHydroTreatmentsFollowup", + "condition": "+totalAreaTreatedFireMgmtInitialInvoiced < +totalAreaTreatedFireMgmtInitial or +totalAreaTreatedFireMgmtFollowupInvoiced < +totalAreaTreatedFireMgmtFollowup", "type": "enable" } ] @@ -18026,8 +18143,8 @@ ] } ], - "modelName": "NHT - Improving hydrological regimes", - "title": "Improving Hydrological Regimes for Site Eco-hydrology", + "modelName": "NHT - Fire management", + "title": "Implementing Fire Management Actions", "viewModel": [ { "type": "row", @@ -18088,7 +18205,7 @@ "type": "textarea" } ], - "source": "participationInformationTableHyd", + "source": "participationInformationTableIfm", "type": "table" }, { @@ -18111,8 +18228,8 @@ "type": "row", "items": [ { - "preLabel": "(i) Total number of treatments implemented to improve site eco-hydrology (initial) for this reporting period", - "source": "totalHydroTreatmentsInitial", + "preLabel": "(i) Total area (ha) treated by fire management action/s (initial) during this reporting period", + "source": "totalAreaTreatedFireMgmtInitial", "type": "number" } ] @@ -18121,9 +18238,12 @@ "type": "row", "items": [ { - "preLabel": "(ii) Total number of treatments implemented to improve site eco-hydrology (initial) invoiced for this reporting period", - "source": "totalHydroTreatmentsInitialInvoiced", - "type": "number" + "preLabel": "(ii) Total area (ha) treated by fire management action/s (initial) invoiced for during this reporting period", + "source": "totalAreaTreatedFireMgmtInitialInvoiced", + "type": "number", + "displayOptions": { + "removeTrailingZeros": false + } } ] } @@ -18137,8 +18257,8 @@ "type": "row", "items": [ { - "preLabel": "(iii) Total number of treatments implemented to improve site eco-hydrology (follow up) for this reporting period", - "source": "totalHydroTreatmentsFollowup", + "preLabel": "(iii) Total area (ha) treated by fire management action/s (follow up) during this reporting period", + "source": "totalAreaTreatedFireMgmtFollowup", "type": "number" } ] @@ -18147,9 +18267,12 @@ "type": "row", "items": [ { - "preLabel": "(iv) Total number of treatments implemented to improve site eco-hydrology (follow up) invoiced for this reporting period", - "source": "totalHydroTreatmentsFollowupInvoiced", - "type": "number" + "preLabel": "(iv) Total area (ha) treated by fire management action/s (follow up) invoiced for during this reporting period", + "source": "totalAreaTreatedFireMgmtFollowupInvoiced", + "type": "number", + "displayOptions": { + "removeTrailingZeros": false + } } ] } @@ -18162,7 +18285,7 @@ "items": [ { "preLabel": "If the total invoiced is different to the total completed, please provide the reason", - "source": "totalInvoicedIdentifyingMismatched", + "source": "totalInvoicedFireMgmtMismatched", "type": "textarea", "rows": 4, "placeholder": "" @@ -18170,16 +18293,16 @@ ] }, { - "addRowText": "Add a new area treated to improve hydrological regimes", + "addRowText": "Add a new area of fire management actions", "userAddedRows": true, - "source": "hydroAreasControlled", + "source": "fireManagementAreasControlled", "type": "repeat", "items": [ { "type": "row", "items": [ { - "css": "span3 col-border-right", + "css": "span3", "type": "col", "items": [ { @@ -18209,27 +18332,12 @@ ] } ] - }, - { - "css": "span3 col-border-right", - "type": "col", - "items": [ - { - "type": "row", - "items": [ - { - "source": "invoicingThisActivity", - "preLabel": "Are you invoicing for this activity in this reporting period?", - "type": "selectOne" - } - ] - } - ] } ] }, { "type": "row", + "css": "border-bottom", "items": [ { "type": "col", @@ -18240,7 +18348,7 @@ "items": [ { "source": "initialOrFollowup", - "preLabel": "Initial or Follow-up?", + "preLabel": "Initial or follow-up?", "type": "selectOne" } ] @@ -18255,8 +18363,8 @@ "type": "row", "items": [ { - "preLabel": "Site/s where hydrological regimes have been improved", - "source": "sitesOfHydrological", + "preLabel": "Site/s treated by fire management action", + "source": "sitesTreatedByFireManagement", "type": "feature" } ] @@ -18294,7 +18402,7 @@ "type": "row", "items": [ { - "preLabel": "Actual area (ha) where the hydrological regimes have been improved", + "preLabel": "Actual area (ha) treated by fire management action", "source": "areaTreatedHa", "type": "number", "displayOptions": { @@ -18340,25 +18448,19 @@ "type": "row", "items": [ { - "source": "noTreatments", - "preLabel": "Number of treatments implemented to improve site eco-hydrology", - "type": "number" + "source": "fireManagementType", + "preLabel": "Type of fire management action", + "type": "select2" } ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ + }, { "type": "row", "items": [ { - "source": "waterVolume", - "type": "number", - "preLabel": "Volume of water (in megalitres) introduced as a result of the intervention" + "source": "otherFireManagementType", + "preLabel": "", + "type": "text" } ] } @@ -18372,31 +18474,9 @@ "type": "row", "items": [ { - "source": "stormWaterVolume", - "type": "number", - "preLabel": "Volume of stormwater (in megalitres) redirected or removed" - } - ] - } - ] - } - ] - }, - { - "type": "row", - "css": "border-bottom", - "items": [ - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "treatmentType", - "preLabel": "Type of treatment implemented to improve eco-hydrological treatment", - "type": "select2" + "source": "sitesBenefittedByFireAction", + "type": "feature", + "preLabel": "Please map any off-site area/s if they benefitted from this fire management action" } ] }, @@ -18404,9 +18484,12 @@ "type": "row", "items": [ { - "source": "otherTreatmentType", - "placeholder": "Type of treatment implemented (if Other)", - "type": "text" + "source": "areaBenefittedByFireActionHa2", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" } ] } @@ -18420,9 +18503,9 @@ "type": "row", "items": [ { - "source": "treatmentObjective", + "source": "evidenceOfBenefit", "type": "textarea", - "preLabel": "Treatment objective" + "preLabel": "If off-site area was mapped please provide a description on the evidence available to reflect this benefit" } ] } @@ -18497,12 +18580,12 @@ ] }, "modelName": null, - "templateName": "nhtImprovingHydrologicalRegimes", + "templateName": "nhtFireManagement", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Improving hydrological regimes", + "name": "NHT - Fire management", "description": null }, { @@ -18616,40 +18699,19 @@ } ], "dataType": "list", - "name": "participationInformationTableIlm" - }, - { - "dataType": "text", - "name": "comments", - "validate": "maxSize[1500]" - }, - { - "dataType": "image", - "name": "photographicEvidence" - }, - { - "dataType": "boolean", - "name": "dataUploaded", - "description": "" - }, - { - "name": "projectAssuranceDetails", - "dataType": "text", - "validate": "required,maxSize[5000]" + "name": "participationInformationTableHyd" }, { - "dataType": "list", - "name": "assuranceDocuments", "columns": [ { - "dataType": "document", - "name": "attachments", - "description": "Please attach any Evidence of Service Delivery here." - } - ] - }, - { - "columns": [ + "dataType": "text", + "name": "initialOrFollowup", + "constraints": [ + "Initial", + "Follow-up" + ], + "validate": "required" + }, { "name": "relatedOutcomes", "dataType": "text", @@ -18701,23 +18763,14 @@ ], "validate": "required" }, - { - "dataType": "text", - "name": "initialOrFollowup", - "constraints": [ - "Initial", - "Follow-up" - ], - "validate": "required" - }, { "dataType": "feature", - "name": "sitesCoveredByPracticeChange", + "name": "sitesOfHydrological", "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." }, { "computed": { - "expression": "$geom.areaHa(sitesCoveredByPracticeChange)" + "expression": "$geom.areaHa(sitesOfHydrological)" }, "dataType": "number", "name": "calculatedAreaTreatedHa", @@ -18726,7 +18779,7 @@ }, { "computed": { - "expression": "$geom.lengthKm(sitesCoveredByPracticeChange)" + "expression": "$geom.lengthKm(sitesOfHydrological)" }, "dataType": "number", "name": "calculatedLengthTreatedKm", @@ -18804,94 +18857,69 @@ "decimalPlaces": 3 }, { - "columns": [ - { - "dataType": "text", - "name": "practiceChangeType", - "description": "", - "constraints": [ - "Fencing", - "Stocking rates", - "Watering arrangements", - "Paddock design", - "Rotation grazing", - "Permaculture", - "Other" - ], - "validate": "required" - }, - { - "dataType": "text", - "name": "otherPracticeChangeType", - "description": "Please specify the type of land management practice change if Other (specify in notes) was selected in the Type of land management practice change.", - "behaviour": [ - { - "condition": "practiceChangeType == \"Other\"", - "type": "enable" - } - ], - "validate": "required,maxSize[100]" - }, - { - "dataType": "text", - "name": "industryType", - "constraints": [ - "Broad acre cropping", - "Dairy", - "Horticulture", - "Grazing", - "Fisheries", - "Aquaculture", - "Environment" - ], - "validate": "required" - }, - { - "dataType": "text", - "name": "practiceChangeObjective", - "description": "How will the practice change/s contribute to the area?", - "validate": "required,maxSize[300]" - }, - { - "dataType": "feature", - "name": "offSiteBenefitSites" - }, - { - "computed": { - "expression": "$geom.areaHa(offSiteBenefitSites)" - }, - "dataType": "number", - "name": "offSiteBenefitAreaHa2", - "units": "ha", - "decimalPlaces": 3 - }, + "dataType": "number", + "name": "noTreatments", + "defaultValue": "", + "validate": "required,min[0]" + }, + { + "dataType": "number", + "name": "waterVolume", + "defaultValue": "", + "validate": "required,min[0]" + }, + { + "dataType": "number", + "name": "stormWaterVolume", + "defaultValue": "", + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "treatmentType", + "description": "", + "constraints": [ + "Removing barriers (e.g fish barriers)", + "Structure instalment or modification (e.g. weirs, flow gauging stations, fords, culverts)", + "Resnagging", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "otherTreatmentType", + "behaviour": [ { - "dataType": "text", - "name": "evidenceOfBenefit", - "validate": "maxSize[300]" + "condition": "treatmentType == \"Other\"", + "type": "enable" } ], - "dataType": "list", - "name": "landManagementDetails" + "validate": "required,maxSize[300]" + }, + { + "dataType": "text", + "name": "treatmentObjective", + "description": "Aim of the action - e.g. hydrological regime change from X to Y.", + "validate": "required,maxSize[300]" } ], "dataType": "list", - "name": "landManagementAreasControlled" + "name": "hydroAreasControlled" }, { "dataType": "number", - "name": "totalAreaPracticeChangeInitial", + "name": "totalHydroTreatmentsInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 3, + "decimalPlaces": 0, "computed": { - "expression": "sum(landManagementAreasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" + "expression": "sum(hydroAreasControlled, \"initialOrFollowup == 'Initial' ? noTreatments : 0\")" } }, { "dataType": "number", - "decimalPlaces": 3, - "name": "totalAreaPracticeChangeInitialInvoiced", - "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", + "name": "totalHydroTreatmentsInitialInvoiced", "validate": [ { "rule": "required" @@ -18901,9 +18929,8 @@ }, { "param": { - "expression": "totalAreaPracticeChangeInitial", - "type": "computed", - "decimalPlaces": 3 + "expression": "totalHydroTreatmentsInitial", + "type": "computed" }, "rule": "max" } @@ -18912,18 +18939,17 @@ }, { "dataType": "number", - "name": "totalAreaPracticeChangeFollowup", + "name": "totalHydroTreatmentsFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 3, + "decimalPlaces": 0, "computed": { - "expression": "sum(landManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? areaTreatedHa : 0\")" + "expression": "sum(hydroAreasControlled, \"initialOrFollowup == 'Follow-up' ? noTreatments : 0\")" } }, { "dataType": "number", - "decimalPlaces": 3, - "name": "totalAreaPracticeChangeInvoicedFollowup", - "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", + "name": "totalHydroTreatmentsFollowupInvoiced", "validate": [ { "rule": "required" @@ -18933,9 +18959,8 @@ }, { "param": { - "expression": "totalAreaPracticeChangeFollowup", - "type": "computed", - "decimalPlaces": 3 + "expression": "totalHydroTreatmentsFollowup", + "type": "computed" }, "rule": "max" } @@ -18944,19 +18969,49 @@ }, { "dataType": "text", - "name": "totalInvoicedPracticeChangeMismatched", + "name": "totalInvoicedIdentifyingMismatched", "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", "validate": "maxSize[400],required", "behaviour": [ { - "condition": "+totalAreaPracticeChangeInitialInvoiced < +totalAreaPracticeChangeInitial or +totalAreaPracticeChangeInvoicedFollowup < +totalAreaPracticeChangeFollowup", + "condition": "+totalHydroTreatmentsInitialInvoiced < +totalHydroTreatmentsInitial or +totalHydroTreatmentsFollowupInvoiced < +totalHydroTreatmentsFollowup", "type": "enable" } ] + }, + { + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" + }, + { + "dataType": "image", + "name": "photographicEvidence" + }, + { + "dataType": "boolean", + "name": "dataUploaded", + "description": "" + }, + { + "name": "projectAssuranceDetails", + "dataType": "text", + "validate": "required,maxSize[5000]" + }, + { + "dataType": "list", + "name": "assuranceDocuments", + "columns": [ + { + "dataType": "document", + "name": "attachments", + "description": "Please attach any Evidence of Service Delivery here." + } + ] } ], - "modelName": "NHT - Improving land management practices", - "title": "Improving Land Management Practices", + "modelName": "NHT - Improving hydrological regimes", + "title": "Improving Hydrological Regimes for Site Eco-hydrology", "viewModel": [ { "type": "row", @@ -19017,7 +19072,7 @@ "type": "textarea" } ], - "source": "participationInformationTableIlm", + "source": "participationInformationTableHyd", "type": "table" }, { @@ -19040,8 +19095,8 @@ "type": "row", "items": [ { - "preLabel": "(i) Total area (ha) covered by practice change (initial) during this reporting period", - "source": "totalAreaPracticeChangeInitial", + "preLabel": "(i) Total number of treatments implemented to improve site eco-hydrology (initial) for this reporting period", + "source": "totalHydroTreatmentsInitial", "type": "number" } ] @@ -19050,12 +19105,9 @@ "type": "row", "items": [ { - "preLabel": "(ii) Total area (ha) covered by practice change (initial) invoiced for during this reporting period", - "source": "totalAreaPracticeChangeInitialInvoiced", - "type": "number", - "displayOptions": { - "removeTrailingZeros": false - } + "preLabel": "(ii) Total number of treatments implemented to improve site eco-hydrology (initial) invoiced for this reporting period", + "source": "totalHydroTreatmentsInitialInvoiced", + "type": "number" } ] } @@ -19069,8 +19121,8 @@ "type": "row", "items": [ { - "preLabel": "(iii) Total area (ha) covered by practice change (follow up) during this reporting period", - "source": "totalAreaPracticeChangeFollowup", + "preLabel": "(iii) Total number of treatments implemented to improve site eco-hydrology (follow up) for this reporting period", + "source": "totalHydroTreatmentsFollowup", "type": "number" } ] @@ -19079,12 +19131,9 @@ "type": "row", "items": [ { - "preLabel": "(iv) Total area (ha) covered by practice change (follow up) invoiced for during this reporting period", - "source": "totalAreaPracticeChangeInvoicedFollowup", - "type": "number", - "displayOptions": { - "removeTrailingZeros": false - } + "preLabel": "(iv) Total number of treatments implemented to improve site eco-hydrology (follow up) invoiced for this reporting period", + "source": "totalHydroTreatmentsFollowupInvoiced", + "type": "number" } ] } @@ -19097,7 +19146,7 @@ "items": [ { "preLabel": "If the total invoiced is different to the total completed, please provide the reason", - "source": "totalInvoicedPracticeChangeMismatched", + "source": "totalInvoicedIdentifyingMismatched", "type": "textarea", "rows": 4, "placeholder": "" @@ -19105,16 +19154,16 @@ ] }, { - "addRowText": "Add a new area of improved land management", + "addRowText": "Add a new area treated to improve hydrological regimes", "userAddedRows": true, - "source": "landManagementAreasControlled", + "source": "hydroAreasControlled", "type": "repeat", "items": [ { "type": "row", "items": [ { - "css": "span3", + "css": "span3 col-border-right", "type": "col", "items": [ { @@ -19146,7 +19195,7 @@ ] }, { - "css": "span3", + "css": "span3 col-border-right", "type": "col", "items": [ { @@ -19165,7 +19214,6 @@ }, { "type": "row", - "css": "border-bottom", "items": [ { "type": "col", @@ -19176,19 +19224,13 @@ "items": [ { "source": "initialOrFollowup", - "preLabel": "Initial or follow-up?", + "preLabel": "Initial or Follow-up?", "type": "selectOne" } ] } ] - } - ] - }, - { - "type": "row", - "css": "border-bottom", - "items": [ + }, { "type": "col", "css": "span3 col-border-right", @@ -19197,8 +19239,8 @@ "type": "row", "items": [ { - "preLabel": "Sites covered by practice change", - "source": "sitesCoveredByPracticeChange", + "preLabel": "Site/s where hydrological regimes have been improved", + "source": "sitesOfHydrological", "type": "feature" } ] @@ -19236,7 +19278,7 @@ "type": "row", "items": [ { - "preLabel": "Actual area (ha) covered by practice change", + "preLabel": "Actual area (ha) where the hydrological regimes have been improved", "source": "areaTreatedHa", "type": "number", "displayOptions": { @@ -19271,152 +19313,180 @@ ] }, { - "columns": [ + "type": "row", + "css": "border-bottom", + "items": [ { - "width": "20%", - "title": "Type of action", "type": "col", + "css": "span3 col-border-right", "items": [ { "type": "row", "items": [ { - "source": "practiceChangeType", - "type": "selectOne" + "source": "noTreatments", + "preLabel": "Number of treatments implemented to improve site eco-hydrology", + "type": "number" } ] - }, - { - "source": "otherPracticeChangeType", - "title": "Type of action (if Other)", - "type": "text" } ] }, { - "width": "20%", - "source": "industryType", - "title": "Industry type", - "type": "selectOne" + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "waterVolume", + "type": "number", + "preLabel": "Volume of water (in megalitres) introduced as a result of the intervention" + } + ] + } + ] }, { - "width": "35%", - "source": "practiceChangeObjective", - "title": "Purpose of improving land management practice", - "type": "textarea" - }, + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "stormWaterVolume", + "type": "number", + "preLabel": "Volume of stormwater (in megalitres) redirected or removed" + } + ] + } + ] + } + ] + }, + { + "type": "row", + "css": "border-bottom", + "items": [ { - "width": "25%", - "title": "Please map any off-site area/s if they benefitted from this practice change", "type": "col", + "css": "span3 col-border-right", "items": [ { - "source": "offSiteBenefitSites", - "type": "feature" + "type": "row", + "items": [ + { + "source": "treatmentType", + "preLabel": "Type of treatment implemented to improve eco-hydrological treatment", + "type": "select2" + } + ] }, { "type": "row", "items": [ { - "source": "offSiteBenefitAreaHa2", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" + "source": "otherTreatmentType", + "placeholder": "Type of treatment implemented (if Other)", + "type": "text" } ] - }, + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ { - "source": "evidenceOfBenefit", - "placeholder": "If off-site area was mapped please provide a description on the evidence available to reflect this benefit", - "type": "textarea" + "type": "row", + "items": [ + { + "source": "treatmentObjective", + "type": "textarea", + "preLabel": "Treatment objective" + } + ] } ] } - ], - "userAddedRows": true, - "source": "landManagementDetails", - "type": "table" + ] } ] }, { - "type": "section", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" - } - ] - }, + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "row", - "items": [ - { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" - } - ] - }, + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" - }, - { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] + "type": "literal", + "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" }, { - "type": "row", - "items": [ - { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." - } - ] - }, + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ - { - "title": "Attached documents", - "source": "attachments", - "type": "document" - } - ] + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" } ] } ] }, "modelName": null, - "templateName": "nhtLandManagementPractices", + "templateName": "nhtImprovingHydrologicalRegimes", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Improving land management practices", + "name": "NHT - Improving hydrological regimes", "description": null }, { @@ -19530,65 +19600,40 @@ } ], "dataType": "list", - "name": "participationInformationTableMad" + "name": "participationInformationTableIlm" + }, + { + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" + }, + { + "dataType": "image", + "name": "photographicEvidence" + }, + { + "dataType": "boolean", + "name": "dataUploaded", + "description": "" + }, + { + "name": "projectAssuranceDetails", + "dataType": "text", + "validate": "required,maxSize[5000]" }, { + "dataType": "list", + "name": "assuranceDocuments", "columns": [ { - "dataType": "text", - "name": "initialOrFollowup", - "constraints": [ - "Initial", - "Follow-up" - ], - "validate": "required" - }, - { - "columns": [ - { - "dataType": "text", - "name": "targetDisease", - "description": "", - "validate": "required,maxSize[100]" - }, - { - "dataType": "text", - "name": "managementMethod", - "dwcAttribute": "treatmentMethod", - "constraints": [ - "Biological control agents", - "Fumigation", - "Host destruction", - "Plant disease management - quarantine", - "Plant disease management - treatment", - "Plant disease management - hygiene", - "Positive competition", - "Other" - ], - "validate": "required" - }, - { - "dataType": "text", - "name": "otherManagementMethod", - "description": "Please specify the management method used if Other (specify in notes) was selected in the Management Method column.", - "behaviour": [ - { - "condition": "managementMethod == \"Other\"", - "type": "enable" - } - ], - "validate": "required,maxSize[100]" - }, - { - "dataType": "text", - "name": "treatmentObjective", - "description": "Please start with either part of the field heading [dash]. If reporting on both separate the information with a ';'. (eg. 'Management method -' and a brief description of method being used to fix the area; 'Treatment objective -' and a brief description of how the work will contribute to the area.", - "validate": "required,maxSize[300]" - } - ], - "dataType": "list", - "name": "diseaseManagementDetails" - }, + "dataType": "document", + "name": "attachments", + "description": "Please attach any Evidence of Service Delivery here." + } + ] + }, + { + "columns": [ { "name": "relatedOutcomes", "dataType": "text", @@ -19640,14 +19685,23 @@ ], "validate": "required" }, + { + "dataType": "text", + "name": "initialOrFollowup", + "constraints": [ + "Initial", + "Follow-up" + ], + "validate": "required" + }, { "dataType": "feature", - "name": "sitesDiseaseManaged", - "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + "name": "sitesCoveredByPracticeChange", + "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." }, { "computed": { - "expression": "$geom.areaHa(sitesDiseaseManaged)" + "expression": "$geom.areaHa(sitesCoveredByPracticeChange)" }, "dataType": "number", "name": "calculatedAreaTreatedHa", @@ -19656,7 +19710,7 @@ }, { "computed": { - "expression": "$geom.lengthKm(sitesDiseaseManaged)" + "expression": "$geom.lengthKm(sitesCoveredByPracticeChange)" }, "dataType": "number", "name": "calculatedLengthTreatedKm", @@ -19695,7 +19749,7 @@ "validate": "required", "behaviour": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", "type": "if" } ] @@ -19718,7 +19772,7 @@ "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", "behaviour": [ { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1))", "type": "if" } ] @@ -19732,88 +19786,96 @@ "name": "lengthTreatedKm", "units": "km", "decimalPlaces": 3 - } - ], - "dataType": "list", - "name": "diseaseManagementAreasControlled" - }, - { - "dataType": "number", - "name": "totalAreaDiseaseManagementInitial", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(diseaseManagementAreasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" - } - }, - { - "dataType": "number", - "decimalPlaces": 3, - "name": "totalAreaDiseaseManagementInitialInvoiced", - "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - }, - { - "param": { - "expression": "totalAreaDiseaseManagementInitial", - "type": "computed", - "decimalPlaces": 3 - }, - "rule": "max" - } - ], - "defaultValue": "" - }, - { - "dataType": "number", - "name": "totalAreaDiseaseManagementFollowup", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(diseaseManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? areaTreatedHa : 0\")" - } - }, - { - "dataType": "number", - "decimalPlaces": 3, - "name": "totalAreaDiseaseManagementInvoicedFollowup", - "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" }, { - "param": { - "expression": "totalAreaDiseaseManagementFollowup", - "type": "computed", - "decimalPlaces": 3 - }, - "rule": "max" + "columns": [ + { + "dataType": "text", + "name": "practiceChangeType", + "description": "", + "constraints": [ + "Fencing", + "Stocking rates", + "Watering arrangements", + "Paddock design", + "Rotation grazing", + "Permaculture", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "otherPracticeChangeType", + "description": "Please specify the type of land management practice change if Other (specify in notes) was selected in the Type of land management practice change.", + "behaviour": [ + { + "condition": "practiceChangeType == \"Other\"", + "type": "enable" + } + ], + "validate": "required,maxSize[100]" + }, + { + "dataType": "text", + "name": "industryType", + "constraints": [ + "Broad acre cropping", + "Dairy", + "Horticulture", + "Grazing", + "Fisheries", + "Aquaculture", + "Environment" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "practiceChangeObjective", + "description": "How will the practice change/s contribute to the area?", + "validate": "required,maxSize[300]" + }, + { + "dataType": "feature", + "name": "offSiteBenefitSites" + }, + { + "computed": { + "expression": "$geom.areaHa(offSiteBenefitSites)" + }, + "dataType": "number", + "name": "offSiteBenefitAreaHa2", + "units": "ha", + "decimalPlaces": 3 + }, + { + "dataType": "text", + "name": "evidenceOfBenefit", + "validate": "maxSize[300]" + } + ], + "dataType": "list", + "name": "landManagementDetails" } ], - "defaultValue": "" + "dataType": "list", + "name": "landManagementAreasControlled" }, { "dataType": "number", - "name": "totalLengthDiseaseManagementInitial", + "name": "totalAreaPracticeChangeInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { - "expression": "sum(diseaseManagementAreasControlled, \"initialOrFollowup == 'Initial' ? lengthTreatedKm : 0\")" + "expression": "sum(landManagementAreasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" } }, { "dataType": "number", "decimalPlaces": 3, - "name": "totalLengthDiseaseManagementInvoicedInitial", + "name": "totalAreaPracticeChangeInitialInvoiced", "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", "validate": [ { @@ -19824,7 +19886,7 @@ }, { "param": { - "expression": "totalLengthDiseaseManagementInitial", + "expression": "totalAreaPracticeChangeInitial", "type": "computed", "decimalPlaces": 3 }, @@ -19835,17 +19897,18 @@ }, { "dataType": "number", - "name": "totalLengthDiseaseManagementFollowup", + "name": "totalAreaPracticeChangeFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { - "expression": "sum(diseaseManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? lengthTreatedKm : 0\")" + "expression": "sum(landManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? areaTreatedHa : 0\")" } }, { "dataType": "number", "decimalPlaces": 3, - "name": "totalLengthDiseaseManagementInvoicedFollowup", + "name": "totalAreaPracticeChangeInvoicedFollowup", "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", "validate": [ { @@ -19856,7 +19919,7 @@ }, { "param": { - "expression": "totalLengthDiseaseManagementFollowup", + "expression": "totalAreaPracticeChangeFollowup", "type": "computed", "decimalPlaces": 3 }, @@ -19867,49 +19930,19 @@ }, { "dataType": "text", - "name": "totalInvoicedDiseaseMismatched", + "name": "totalInvoicedPracticeChangeMismatched", "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", "validate": "maxSize[400],required", "behaviour": [ { - "condition": "+totalAreaDiseaseManagementInitialInvoiced < +totalAreaDiseaseManagementInitial or +totalAreaDiseaseManagementInvoicedFollowup < +totalAreaDiseaseManagementFollowup or +totalLengthDiseaseManagementInvoicedInitial < +totalLengthDiseaseManagementInitial or +totalLengthDiseaseManagementInvoicedFollowup < +totalLengthDiseaseManagementFollowup", + "condition": "+totalAreaPracticeChangeInitialInvoiced < +totalAreaPracticeChangeInitial or +totalAreaPracticeChangeInvoicedFollowup < +totalAreaPracticeChangeFollowup", "type": "enable" } ] - }, - { - "dataType": "text", - "name": "comments", - "validate": "maxSize[1500]" - }, - { - "dataType": "image", - "name": "photographicEvidence" - }, - { - "dataType": "boolean", - "name": "dataUploaded", - "description": "" - }, - { - "name": "projectAssuranceDetails", - "dataType": "text", - "validate": "required,maxSize[5000]" - }, - { - "dataType": "list", - "name": "assuranceDocuments", - "columns": [ - { - "dataType": "document", - "name": "attachments", - "description": "Please attach any Evidence of Service Delivery here." - } - ] } ], - "modelName": "NHT - Disease management", - "title": "Managing Disease", + "modelName": "NHT - Improving land management practices", + "title": "Improving Land Management Practices", "viewModel": [ { "type": "row", @@ -19970,7 +20003,7 @@ "type": "textarea" } ], - "source": "participationInformationTableMad", + "source": "participationInformationTableIlm", "type": "table" }, { @@ -19993,66 +20026,8 @@ "type": "row", "items": [ { - "preLabel": "(i) Total area (ha) for disease treatment/prevention (initial) for this reporting period", - "source": "totalAreaDiseaseManagementInitial", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "(ii) Total area (ha) for disease treatment/prevention (initial) invoiced for this reporting period", - "source": "totalAreaDiseaseManagementInitialInvoiced", - "type": "number", - "displayOptions": { - "removeTrailingZeros": false - } - } - ] - } - ] - }, - { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(iii) Total area (ha) for disease treatment/prevention (follow up) for this reporting period", - "source": "totalAreaDiseaseManagementFollowup", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "(iv) Total Area (ha) for disease treatment/prevention (follow up) invoiced for this reporting period", - "source": "totalAreaDiseaseManagementInvoicedFollowup", - "type": "number", - "displayOptions": { - "removeTrailingZeros": false - } - } - ] - } - ] - }, - { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(v) Total length (km) for disease treatment/prevention (initial) for this reporting period", - "source": "totalLengthDiseaseManagementInitial", + "preLabel": "(i) Total area (ha) covered by practice change (initial) during this reporting period", + "source": "totalAreaPracticeChangeInitial", "type": "number" } ] @@ -20061,8 +20036,8 @@ "type": "row", "items": [ { - "preLabel": "(vi) Total length (km) for disease treatment/prevention (initial) invoiced for this reporting period", - "source": "totalLengthDiseaseManagementInvoicedInitial", + "preLabel": "(ii) Total area (ha) covered by practice change (initial) invoiced for during this reporting period", + "source": "totalAreaPracticeChangeInitialInvoiced", "type": "number", "displayOptions": { "removeTrailingZeros": false @@ -20080,8 +20055,8 @@ "type": "row", "items": [ { - "preLabel": "(vii) Total length (km) for disease treatment/prevention (follow up) for this reporting period", - "source": "totalLengthDiseaseManagementFollowup", + "preLabel": "(iii) Total area (ha) covered by practice change (follow up) during this reporting period", + "source": "totalAreaPracticeChangeFollowup", "type": "number" } ] @@ -20090,8 +20065,8 @@ "type": "row", "items": [ { - "preLabel": "(viii) Total length (km) for disease treatment/prevention (follow up) invoiced for this reporting period", - "source": "totalLengthDiseaseManagementInvoicedFollowup", + "preLabel": "(iv) Total area (ha) covered by practice change (follow up) invoiced for during this reporting period", + "source": "totalAreaPracticeChangeInvoicedFollowup", "type": "number", "displayOptions": { "removeTrailingZeros": false @@ -20108,7 +20083,7 @@ "items": [ { "preLabel": "If the total invoiced is different to the total completed, please provide the reason", - "source": "totalInvoicedDiseaseMismatched", + "source": "totalInvoicedPracticeChangeMismatched", "type": "textarea", "rows": 4, "placeholder": "" @@ -20116,9 +20091,9 @@ ] }, { - "addRowText": "Add a new area where disease is being managed", + "addRowText": "Add a new area of improved land management", "userAddedRows": true, - "source": "diseaseManagementAreasControlled", + "source": "landManagementAreasControlled", "type": "repeat", "items": [ { @@ -20179,10 +20154,20 @@ "css": "border-bottom", "items": [ { - "preLabel": "Initial or Follow-up?", - "css": "span3", - "source": "initialOrFollowup", - "type": "selectOne" + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "initialOrFollowup", + "preLabel": "Initial or follow-up?", + "type": "selectOne" + } + ] + } + ] } ] }, @@ -20198,8 +20183,8 @@ "type": "row", "items": [ { - "preLabel": "Site/s where disease managed", - "source": "sitesDiseaseManaged", + "preLabel": "Sites covered by practice change", + "source": "sitesCoveredByPracticeChange", "type": "feature" } ] @@ -20217,19 +20202,6 @@ } ] }, - { - "type": "row", - "items": [ - { - "source": "calculatedLengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, { "type": "row", "items": [ @@ -20250,7 +20222,7 @@ "type": "row", "items": [ { - "preLabel": "Actual area (ha) / length (km) where disease has been managed", + "preLabel": "Actual area (ha) covered by practice change", "source": "areaTreatedHa", "type": "number", "displayOptions": { @@ -20259,18 +20231,6 @@ } ] }, - { - "type": "row", - "items": [ - { - "source": "lengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, { "type": "row", "items": [ @@ -20298,499 +20258,157 @@ }, { "columns": [ - { - "width": "30%", - "source": "targetDisease", - "title": "Disease treated", - "type": "textarea" - }, { "width": "20%", + "title": "Type of action", "type": "col", - "title": "Type of management method / treatment", "items": [ { "type": "row", "items": [ { - "source": "managementMethod", + "source": "practiceChangeType", "type": "selectOne" } ] }, { - "source": "otherManagementMethod", - "placeholder": "Type of management method / treatment (if other)", + "source": "otherPracticeChangeType", + "title": "Type of action (if Other)", "type": "text" } ] }, { - "width": "50%", - "source": "treatmentObjective", - "title": "Management method / treatment objective", + "width": "20%", + "source": "industryType", + "title": "Industry type", + "type": "selectOne" + }, + { + "width": "35%", + "source": "practiceChangeObjective", + "title": "Purpose of improving land management practice", "type": "textarea" + }, + { + "width": "25%", + "title": "Please map any off-site area/s if they benefitted from this practice change", + "type": "col", + "items": [ + { + "source": "offSiteBenefitSites", + "type": "feature" + }, + { + "type": "row", + "items": [ + { + "source": "offSiteBenefitAreaHa2", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "source": "evidenceOfBenefit", + "placeholder": "If off-site area was mapped please provide a description on the evidence available to reflect this benefit", + "type": "textarea" + } + ] } ], "userAddedRows": true, - "addRowText": "Add a new disease being managed in this area", - "source": "diseaseManagementDetails", + "source": "landManagementDetails", "type": "table" } ] }, { - "type": "row", - "items": [ - { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" - } - ] - }, - { - "type": "row", + "type": "section", "items": [ { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" - } - ] - }, - { - "type": "row", - "items": [ + "type": "row", + "items": [ + { + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, { - "type": "literal", - "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" + "type": "row", + "items": [ + { + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] }, { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] - }, - { - "type": "row", - "items": [ + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" + }, + { + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." - } - ] - }, - { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, { - "title": "Attached documents", - "source": "attachments", - "type": "document" + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" + } + ] } ] } ] }, "modelName": null, - "templateName": "nhtDiseaseManagement", + "templateName": "nhtLandManagementPractices", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Disease management", + "name": "NHT - Improving land management practices", "description": null }, { "collapsedByDefault": false, "template": { "dataModel": [ - { - "name": "pestAnimalSurveys", - "dataType": "list", - "minSize": 1, - "columns": [ - { - "name": "relatedOutcomes", - "dataType": "text", - "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", - "validate": "required", - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "outcomes" - } - } - } - }, - { - "dataType": "text", - "name": "baselineOrIndicatorSurvey", - "description": "", - "constraints": [ - "Baseline", - "Indicator" - ], - "validate": "required" - }, - { - "dataType": "text", - "name": "surveyObjective", - "description": "What the survey aim to capture? How will the information obtained from the survey be used?", - "validate": "required,maxSize[3000]" - }, - { - "dataType": "number", - "name": "numberOfSurveys", - "validate": "required,min[1],max[1]", - "defaultValue": 1, - "readonly": true - }, - { - "dataType": "number", - "name": "numberOfSurveysInvoiced", - "validate": "required,min[0]", - "defaultValue": 1 - }, - { - "dataType": "list", - "name": "pestAnimalDataSets", - "columns": [ - { - "name": "dataSetId", - "entityType": "au.org.ala.ecodata.DataSetSummary", - "dataType": "text", - "description": "This section will require the Data Set Name so the Metadata fields in the Data Set Summary tab should be filled out before the Outcome Report is due. More than one dataset if relevant for this Project Baseline could be selected.", - "validate": "required", - "constraints": { - "textProperty": "name", - "valueProperty": "dataSetId", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.custom.dataSets" - }, - "filter": { - "namespace": "dataSet", - "expression": "dataSet.serviceId == 23 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" - } - } - }, - "behaviour": [ - { - "type": "pre_populate", - "config": { - "waitForInitialisation": true, - "source": { - "url": "/site/geojson", - "params": [ - { - "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.siteId", - "name": "id", - "type": "computed", - "required": true - } - ] - }, - "target": { - "type": "singleValue", - "name": "sitesCoveredForPestAnimal" - } - } - }, - { - "type": "pre_populate", - "config": { - "waitForInitialisation": true, - "source": { - "url": "/project/getSpeciesRecordsFromActivity", - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - }, - { - "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.activityId", - "name": "activityId", - "type": "computed", - "required": true - } - ] - }, - "mapping": [ - { - "source-path": "species", - "target": "species" - }, - { - "source-path": "individualCount", - "target": "individualsOrGroups" - }, - { - "source-path": "numberOfIndividualsOrGroups", - "target": "numberOfIndividualsOrGroups" - } - ], - "target": { - "type": "singleLoad", - "name": "pestAnimalSurveySpeciesTable" - } - } - } - ] - }, - { - "columns": [ - { - "dataType": "species", - "name": "species", - "validate": "required" - }, - { - "dataType": "text", - "name": "individualsOrGroups", - "constraints": [ - "Individuals", - "Groups" - ], - "validate": "required" - }, - { - "dataType": "number", - "name": "numberOfIndividualsOrGroups", - "validate": "required,min[0]" - } - ], - "dataType": "list", - "name": "pestAnimalSurveySpeciesTable" - }, - { - "name": "projectBaselines", - "dataType": "stringList", - "description": "Select the relevant Project Baseline as listed in the Monitoring Methodology section of the MERI Plan.", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.baselines" - }, - "constraints": { - "textProperty": "baseline", - "valueProperty": "code", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.custom.details.baseline.rows" - } - } - } - }, - { - "name": "investmentPriorities2", - "dataType": "stringList", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.investmentPriorities" - }, - "constraints": { - "type": "pre-populated", - "config": { - "source": { - "params": [ - { - "expression": "owner.projectId", - "name": "id", - "type": "computed" - } - ], - "url": "/project/listProjectInvestmentPriorities/" - } - } - } - }, - { - "dataType": "text", - "name": "otherInvestmentPriority", - "behaviour": [ - { - "type": "enable", - "condition": "\"Other\" in investmentPriorities2" - } - ] - }, - { - "dataType": "date", - "name": "activitiesStartDate", - "description": "Specific the dates these events were held on.", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.startDate" - } - }, - { - "dataType": "date", - "name": "activitiesEndDate", - "description": "Specific the dates these events were held on.", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.endDate" - } - }, - { - "dataType": "feature", - "name": "sitesCoveredForPestAnimal", - "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." - }, - { - "computed": { - "expression": "$geom.areaHa(sitesCoveredForPestAnimal)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHa", - "units": "ha", - "decimalPlaces": 3 - }, - { - "computed": { - "expression": "$geom.lengthKm(sitesCoveredForPestAnimal)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKm", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKm > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHa" - }, - "dataType": "number", - "name": "areaTreatedHa", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "mappingNotAlignedReason", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, - { - "dataType": "text", - "name": "mappingNotAlignedComments", - "validate": "required,maxSize[100]", - "behaviour": [ - { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReason" - } - ] - }, - { - "dataType": "document", - "name": "extraMappingDetails", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", - "type": "if" - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "$geom.lengthKm(sitesCoveredForPestAnimal)" - }, - "dataType": "number", - "name": "lengthTreatedKm", - "units": "km", - "decimalPlaces": 3 - }, - { - "dataType": "text", - "description": "Select the technique used to conduct the survey. If the EMSA Application tool was not used, you should select 'Other'.", - "name": "emsaProtocol", - "validate": "required", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.protocol" - }, - "constraints": { - "textProperty": "label", - "valueProperty": "value", - "type": "pre-populated", - "config": { - "source": { - "context-path": "owner.protocols" - } - } - } - }, - { - "dataType": "stringList", - "description": "Describe the technique (if Other) was selected.", - "name": "otherEmsaProtocol", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methods" - } - }, - { - "dataType": "text", - "name": "surveyMethodology", - "description": "Provide more details on what is being done.", - "validate": "required,maxSize[3000]", - "computed": { - "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methodDescription" - } - }, - { - "dataType": "text", - "name": "invoicingThisActivity", - "constraints": [ - "Yes", - "No" - ], - "validate": "required" - } - ], - "minSize": 1 - } - ] - }, { "allowRowDelete": "false", "columns": [ @@ -20898,74 +20516,353 @@ } ], "dataType": "list", - "name": "participationInformationTablePas" - }, - { - "dataType": "number", - "name": "totalSurveyBaseline", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(pestAnimalSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" - } - }, - { - "dataType": "number", - "name": "totalSurveyBaselineInvoiced", - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - }, - { - "param": { - "expression": "totalSurveyBaseline", - "type": "computed" - }, - "rule": "max" - } - ], - "defaultValue": "" - }, - { - "dataType": "number", - "name": "totalSurveyIndicator", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(pestAnimalSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" - } + "name": "participationInformationTableMad" }, { - "dataType": "number", - "name": "totalSurveyIndicatorInvoiced", - "defaultValue": "", - "validate": [ + "columns": [ { - "rule": "required" + "dataType": "text", + "name": "initialOrFollowup", + "constraints": [ + "Initial", + "Follow-up" + ], + "validate": "required" }, { - "rule": "min[0]" + "columns": [ + { + "dataType": "text", + "name": "targetDisease", + "description": "", + "validate": "required,maxSize[100]" + }, + { + "dataType": "text", + "name": "managementMethod", + "dwcAttribute": "treatmentMethod", + "constraints": [ + "Biological control agents", + "Fumigation", + "Host destruction", + "Plant disease management - quarantine", + "Plant disease management - treatment", + "Plant disease management - hygiene", + "Positive competition", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "otherManagementMethod", + "description": "Please specify the management method used if Other (specify in notes) was selected in the Management Method column.", + "behaviour": [ + { + "condition": "managementMethod == \"Other\"", + "type": "enable" + } + ], + "validate": "required,maxSize[100]" + }, + { + "dataType": "text", + "name": "treatmentObjective", + "description": "Please start with either part of the field heading [dash]. If reporting on both separate the information with a ';'. (eg. 'Management method -' and a brief description of method being used to fix the area; 'Treatment objective -' and a brief description of how the work will contribute to the area.", + "validate": "required,maxSize[300]" + } + ], + "dataType": "list", + "name": "diseaseManagementDetails" }, { - "param": { - "expression": "totalSurveyIndicator", - "type": "computed" + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, + { + "dataType": "text", + "name": "invoicingThisActivity", + "constraints": [ + "Yes", + "No" + ], + "validate": "required" + }, + { + "dataType": "feature", + "name": "sitesDiseaseManaged", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesDiseaseManaged)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesDiseaseManaged)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKm" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + } + ], + "dataType": "list", + "name": "diseaseManagementAreasControlled" + }, + { + "dataType": "number", + "name": "totalAreaDiseaseManagementInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(diseaseManagementAreasControlled, \"initialOrFollowup == 'Initial' ? areaTreatedHa : 0\")" + } + }, + { + "dataType": "number", + "decimalPlaces": 3, + "name": "totalAreaDiseaseManagementInitialInvoiced", + "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalAreaDiseaseManagementInitial", + "type": "computed", + "decimalPlaces": 3 }, "rule": "max" } - ] + ], + "defaultValue": "" + }, + { + "dataType": "number", + "name": "totalAreaDiseaseManagementFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(diseaseManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? areaTreatedHa : 0\")" + } + }, + { + "dataType": "number", + "decimalPlaces": 3, + "name": "totalAreaDiseaseManagementInvoicedFollowup", + "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalAreaDiseaseManagementFollowup", + "type": "computed", + "decimalPlaces": 3 + }, + "rule": "max" + } + ], + "defaultValue": "" + }, + { + "dataType": "number", + "name": "totalLengthDiseaseManagementInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(diseaseManagementAreasControlled, \"initialOrFollowup == 'Initial' ? lengthTreatedKm : 0\")" + } + }, + { + "dataType": "number", + "decimalPlaces": 3, + "name": "totalLengthDiseaseManagementInvoicedInitial", + "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalLengthDiseaseManagementInitial", + "type": "computed", + "decimalPlaces": 3 + }, + "rule": "max" + } + ], + "defaultValue": "" + }, + { + "dataType": "number", + "name": "totalLengthDiseaseManagementFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(diseaseManagementAreasControlled, \"initialOrFollowup == 'Follow-up' ? lengthTreatedKm : 0\")" + } + }, + { + "dataType": "number", + "decimalPlaces": 3, + "name": "totalLengthDiseaseManagementInvoicedFollowup", + "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalLengthDiseaseManagementFollowup", + "type": "computed", + "decimalPlaces": 3 + }, + "rule": "max" + } + ], + "defaultValue": "" }, { "dataType": "text", - "name": "totalInvoicedPestAnimalMismatched", + "name": "totalInvoicedDiseaseMismatched", "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", "validate": "maxSize[400],required", "behaviour": [ { - "condition": "+totalSurveyIndicatorInvoiced < +totalSurveyIndicator or +totalSurveyBaselineInvoiced < +totalSurveyBaseline", + "condition": "+totalAreaDiseaseManagementInitialInvoiced < +totalAreaDiseaseManagementInitial or +totalAreaDiseaseManagementInvoicedFollowup < +totalAreaDiseaseManagementFollowup or +totalLengthDiseaseManagementInvoicedInitial < +totalLengthDiseaseManagementInitial or +totalLengthDiseaseManagementInvoicedFollowup < +totalLengthDiseaseManagementFollowup", "type": "enable" } ] @@ -20982,12 +20879,11 @@ { "dataType": "boolean", "name": "dataUploaded", - "description": "" + "description": "" }, { - "dataType": "text", "name": "projectAssuranceDetails", - "description": "", + "dataType": "text", "validate": "required,maxSize[5000]" }, { @@ -21002,223 +20898,299 @@ ] } ], - "modelName": "NHT - Pest animal survey", - "title": "Pest Animal Survey", + "modelName": "NHT - Disease management", + "title": "Managing Disease", "viewModel": [ { - "type": "section", + "type": "row", "items": [ { - "type": "row", + "type": "literal", + "source": "

Participation information

" + } + ] + }, + { + "disableTableUpload": true, + "columns": [ + { + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" + }, + { + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", "items": [ { - "type": "literal", - "source": "

Participation information

" + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" } ] }, { - "disableTableUpload": true, - "columns": [ + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ { - "width": "10%", - "source": "participationIndividualsOrGroups", - "title": "Are individuals or groups delivering this service?", - "type": "selectOne" + "source": "firstNationIndividualNumber", + "type": "number" }, { - "width": "20%", - "type": "col", - "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "source": "firstNationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } + ], + "source": "participationInformationTableMad", + "type": "table" + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", "items": [ { - "source": "participationIndividualNumber", + "preLabel": "(i) Total area (ha) for disease treatment/prevention (initial) for this reporting period", + "source": "totalAreaDiseaseManagementInitial", "type": "number" - }, - { - "source": "participationGroupNumber", - "type": "selectOne" } ] }, { - "type": "col", - "width": "20%", - "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", - "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "type": "row", "items": [ { - "source": "firstNationIndividualNumber", - "type": "number" - }, - { - "source": "firstNationGroupNumber", - "type": "selectOne" + "preLabel": "(ii) Total area (ha) for disease treatment/prevention (initial) invoiced for this reporting period", + "source": "totalAreaDiseaseManagementInitialInvoiced", + "type": "number", + "displayOptions": { + "removeTrailingZeros": false + } } ] - }, - { - "width": "20%", - "source": "participationDetails", - "rows": 4, - "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", - "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", - "type": "textarea" - } - ], - "source": "participationInformationTablePas", - "type": "table" - }, - { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Survey information

Before completing this section, please ensure you have created a Data Set Summary information for every data set produced by the surveys you intend to report

" - } - ] - }, - { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Totals Summary

" } ] }, { - "type": "row", + "type": "col", + "css": "span4 col-border-right", "items": [ { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "(i) Total Number of baseline pest animal surveys completed for this reporting period", - "source": "totalSurveyBaseline", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "(ii) Total Number of baseline pest animal surveys invoiced for this reporting period", - "source": "totalSurveyBaselineInvoiced", - "type": "number" - } - ] + "preLabel": "(iii) Total area (ha) for disease treatment/prevention (follow up) for this reporting period", + "source": "totalAreaDiseaseManagementFollowup", + "type": "number" } ] }, { - "type": "col", - "css": "span4 col-border-right", + "type": "row", "items": [ { - "type": "row", - "items": [ - { - "preLabel": "(iii) Total Number of indicator pest animal surveys completed for this reporting period", - "source": "totalSurveyIndicator", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "(iv) Total Number of indicator pest animal surveys invoiced for this reporting period", - "source": "totalSurveyIndicatorInvoiced", - "type": "number" - } - ] + "preLabel": "(iv) Total Area (ha) for disease treatment/prevention (follow up) invoiced for this reporting period", + "source": "totalAreaDiseaseManagementInvoicedFollowup", + "type": "number", + "displayOptions": { + "removeTrailingZeros": false + } } ] } ] }, { - "type": "row", + "type": "col", + "css": "span4 col-border-right", "items": [ { - "preLabel": "If the total invoiced is different to the total completed, please provide the reason", - "source": "totalInvoicedPestAnimalMismatched", - "type": "textarea", - "rows": 4, - "placeholder": "" + "type": "row", + "items": [ + { + "preLabel": "(v) Total length (km) for disease treatment/prevention (initial) for this reporting period", + "source": "totalLengthDiseaseManagementInitial", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "(vi) Total length (km) for disease treatment/prevention (initial) invoiced for this reporting period", + "source": "totalLengthDiseaseManagementInvoicedInitial", + "type": "number", + "displayOptions": { + "removeTrailingZeros": false + } + } + ] } ] }, { - "addRowText": "Add survey", - "removeRowText": "Delete this survey", - "userAddedRows": true, - "source": "pestAnimalSurveys", - "type": "repeat", + "type": "col", + "css": "span4 col-border-right", "items": [ { "type": "row", "items": [ { - "type": "col", - "items": [ + "preLabel": "(vii) Total length (km) for disease treatment/prevention (follow up) for this reporting period", + "source": "totalLengthDiseaseManagementFollowup", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "(viii) Total length (km) for disease treatment/prevention (follow up) invoiced for this reporting period", + "source": "totalLengthDiseaseManagementInvoicedFollowup", + "type": "number", + "displayOptions": { + "removeTrailingZeros": false + } + } + ] + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "If the total invoiced is different to the total completed, please provide the reason", + "source": "totalInvoicedDiseaseMismatched", + "type": "textarea", + "rows": 4, + "placeholder": "" + } + ] + }, + { + "addRowText": "Add a new area where disease is being managed", + "userAddedRows": true, + "source": "diseaseManagementAreasControlled", + "type": "repeat", + "items": [ + { + "type": "row", + "items": [ + { + "css": "span3", + "type": "col", + "items": [ + { + "type": "row", + "items": [ { "source": "relatedOutcomes", "type": "selectOne", - "preLabel": "Which outcome statement/s relates to this survey?" + "preLabel": "Which outcome statement/s does this activity relate to?" } ] - }, + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ { - "type": "col", + "type": "row", "items": [ { - "source": "baselineOrIndicatorSurvey", - "type": "selectOne", - "preLabel": "Baseline survey or indicator (follow-up) survey?" + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" } ] } ] }, { - "type": "row", + "css": "span3", + "type": "col", "items": [ { - "source": "surveyObjective", - "preLabel": "Survey objective", - "type": "text" + "type": "row", + "items": [ + { + "source": "invoicingThisActivity", + "preLabel": "Are you invoicing for this activity in this reporting period?", + "type": "selectOne" + } + ] } ] - }, + } + ] + }, + { + "type": "row", + "css": "border-bottom", + "items": [ { - "type": "repeat", - "source": "pestAnimalDataSets", - "userAddedRows": true, - "addRowText": "New data set", - "removeRowText": "Delete this data set", + "preLabel": "Initial or Follow-up?", + "css": "span3", + "source": "initialOrFollowup", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "css": "border-bottom", + "items": [ + { + "type": "col", + "css": "span3 col-border-right", "items": [ { "type": "row", - "css": "border-bottom", "items": [ { - "type": "col", - "items": [ - { - "source": "dataSetId", - "type": "selectOne", - "preLabel": "Please select the data set produced by this survey. Note it must have already been entered on the Data Set Summary tab." - } - ] + "preLabel": "Site/s where disease managed", + "source": "sitesDiseaseManaged", + "type": "feature" } ] }, @@ -21226,337 +21198,208 @@ "type": "row", "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "projectBaselines", - "type": "selectMany", - "preLabel": "Which project baseline/s relate to this survey?", - "readonly": "readonly" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", - "type": "select2Many" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Activity start date", - "source": "activitiesStartDate", - "type": "date" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Activity end date", - "source": "activitiesEndDate", - "type": "date" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Sites covered by pest animal survey", - "source": "sitesCoveredForPestAnimal", - "type": "feature" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedAreaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "calculatedLengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetails", - "type": "document" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Actual area (ha) / length (km) covered by pest animal survey", - "source": "areaTreatedHa", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "source": "lengthTreatedKm", - "type": "number", - "displayOptions": { - "displayUnits": true - } - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReason", - "type": "selectOne" - } - ] - }, - { - "type": "row", - "items": [ - { - "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedComments", - "type": "textarea", - "rows": 5 - } - ] - } - ] - }, + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Survey technique", - "source": "emsaProtocol", - "type": "selectOne", - "readonly": "readonly" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Survey technique (if Other)", - "source": "otherEmsaProtocol", - "type": "select2Many" - } - ] - } - ] - }, + "source": "calculatedLengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "surveyMethodology", - "preLabel": "Survey methodology", - "type": "text" - } - ] - } - ] - }, + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ { - "type": "col", - "css": "span3 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "source": "invoicingThisActivity", - "preLabel": "Are you invoicing for this activity in this reporting period?", - "type": "selectOne" - } - ] - } - ] + "preLabel": "Actual area (ha) / length (km) where disease has been managed", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } } ] }, { - "columns": [ + "type": "row", + "items": [ { - "width": "55%", - "source": "species", - "title": "Target species recorded", - "type": "speciesSelect" - }, + "source": "lengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ { - "width": "25%", - "source": "individualsOrGroups", - "title": "Individuals or groups?", + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", "type": "selectOne" - }, + } + ] + }, + { + "type": "row", + "items": [ { - "width": "20%", - "source": "numberOfIndividualsOrGroups", - "title": "Number of individuals / groups in pest animal survey", - "type": "number" + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 } - ], - "userAddedRows": true, - "source": "pestAnimalSurveySpeciesTable", - "type": "table" + ] } ] } ] }, { - "type": "row", - "items": [ - { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "Clarification, if needed", - "type": "textarea", - "rows": 4, - "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" - } - ] - }, - { - "type": "row", - "items": [ + "columns": [ { - "type": "literal", - "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" + "width": "30%", + "source": "targetDisease", + "title": "Disease treated", + "type": "textarea" }, { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] - }, - { - "type": "row", - "items": [ + "width": "20%", + "type": "col", + "title": "Type of management method / treatment", + "items": [ + { + "type": "row", + "items": [ + { + "source": "managementMethod", + "type": "selectOne" + } + ] + }, + { + "source": "otherManagementMethod", + "placeholder": "Type of management method / treatment (if other)", + "type": "text" + } + ] + }, { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + "width": "50%", + "source": "treatmentObjective", + "title": "Management method / treatment objective", + "type": "textarea" } - ] - }, - { - "type": "table", - "source": "assuranceDocuments", + ], "userAddedRows": true, - "disableTableUpload": true, - "columns": [ - { - "title": "Attached documents", - "source": "attachments", - "type": "document" - } - ] + "addRowText": "Add a new disease being managed in this area", + "source": "diseaseManagementDetails", + "type": "table" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" + }, + { + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" } ] } ] }, "modelName": null, - "templateName": "nhtPestAnimalSurvey", + "templateName": "nhtDiseaseManagement", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Pest animal survey", + "name": "NHT - Disease management", "description": null }, { @@ -21670,9 +21513,11 @@ } ], "dataType": "list", - "name": "participationInformationTableRem" + "name": "participationInformationTableCom" }, { + "dataType": "list", + "name": "approvalsByOutcome", "columns": [ { "name": "relatedOutcomes", @@ -21726,305 +21571,108 @@ "validate": "required" }, { - "dataType": "text", - "name": "initialOrFollowup", - "constraints": [ - "Initial", - "Follow-up" - ], - "validate": "required" - }, - { - "dataType": "number", - "name": "noRemediationInterventions", - "validate": "required" - }, - { - "dataType": "feature", - "name": "sitesRemediated", - "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." - }, - { - "computed": { - "expression": "$geom.areaHa(sitesRemediated)" - }, - "dataType": "number", - "name": "calculatedAreaTreatedHaRemediated", - "units": "ha", - "decimalPlaces": 3 - }, - { - "computed": { - "expression": "$geom.lengthKm(sitesRemediated)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKmRemediated", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ + "columns": [ { - "condition": "lengthTreatedKmRemediated > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHaRemediated" - }, - "dataType": "number", - "name": "areaTreatedHaRemediated", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "mappingNotAlignedReasonRemediated", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ + "dataType": "date", + "name": "approvalGivenDate", + "validate": "required" + }, { - "condition": "not (within(areaTreatedHaRemediated, calculatedAreaTreatedHaRemediated, 0.1) and within(lengthTreatedKmRemediated, calculatedLengthTreatedKmRemediated, 0.1))", - "type": "if" - } - ] - }, - { - "dataType": "text", - "name": "mappingNotAlignedCommentsRemediated", - "validate": "required,maxSize[100]", - "behaviour": [ + "dataType": "text", + "name": "approvalId", + "validate": "required,maxSize[100]", + "description": "" + }, { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReasonRemediated" - } - ] - }, - { - "dataType": "document", - "name": "extraMappingDetailsRemediated", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ + "dataType": "text", + "name": "approvingOrg", + "validate": "required,maxSize[200]", + "description": "" + }, { - "condition": "not (within(areaTreatedHaRemediated, calculatedAreaTreatedHaRemediated, 0.1) and within(lengthTreatedKmRemediated, calculatedLengthTreatedKmRemediated, 0.1))", - "type": "if" - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKmRemediated" - }, - "dataType": "number", - "name": "lengthTreatedKmRemediated", - "units": "km", - "decimalPlaces": 3 - }, - { - "dataType": "date", - "name": "activitiesStartDate", - "description": "Specific the dates these events were held on.", - "validate": "required" - }, - { - "dataType": "date", - "name": "activitiesEndDate", - "description": "Specific the dates these events were held on.", - "validate": [ + "dataType": "text", + "name": "approvalType", + "description": "", + "constraints": [ + "Access to protected species and ecological communities", + "Animal/Human Ethics Approvals", + "Access to private land/sea", + "Access to public land/sea (e.g. protected areas)", + "Access to First Nations Australians land/sea", + "The use of specialised and regulated equipment (e.g. drones, firearms, vessels, vehicles)", + "Other purposes as agreed to by the Department" + ], + "validate": "required" + }, { - "rule": "required" + "dataType": "text", + "name": "otherApprovalType", + "behaviour": [ + { + "condition": "approvalType == \"Other purposes as agreed to by the Department\"", + "type": "enable" + } + ], + "validate": "required,maxSize[100]" }, { - "rule": "future", - "param": { - "expression": "formatDateForValidation(activitiesStartDate)", - "type": "computed" - } - } - ] - }, - { - "dataType": "text", - "name": "typesOfRemediationInstalled", - "description": "", - "constraints": [ - "Access control", - "Bank grooming", - "Flow gauging stations", - "Fords", - "Culverts", - "Revegetation", - "Weirs", - "Other" - ], - "validate": "required" - }, - { - "dataType": "text", - "name": "otherRemediationType", - "behaviour": [ + "dataType": "text", + "name": "approvalPurpose", + "validate": "required,maxSize[200]", + "description": "" + }, { - "condition": "typesOfRemediationInstalled == \"Other\"", - "type": "enable" - } - ], - "validate": "required,maxSize[100]" - }, - { - "dataType": "text", - "name": "remediationType", - "description": "", - "constraints": [ - "Access control", - "Bank grooming", - "Flow gauging stations", - "Fords", - "Culverts", - "Revegetation", - "Weirs", - "Other" - ], - "validate": "required" - }, - { - "dataType": "text", - "name": "otherAquaticOrRemediationType", - "behaviour": [ + "dataType": "date", + "name": "approvalValidateDateFrom", + "validate": "required" + }, { - "condition": "remediationType == \"Other\"", - "type": "enable" + "dataType": "date", + "name": "approvalValidateDateTo", + "validate": [ + { + "rule": "required" + }, + { + "rule": "future", + "param": { + "expression": "formatDateForValidation(approvalValidateDateFrom)", + "type": "computed" + } + } + ] } ], - "validate": "required,maxSize[100]" - }, - { - "dataType": "feature", - "name": "sitesBenefitted", - "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." + "dataType": "list", + "allowRowDelete": true, + "name": "approvalTableDetails" }, { - "computed": { - "expression": "$geom.areaHa(sitesBenefitted)" - }, "dataType": "number", - "name": "calculatedAreaTreatedHaBenefitted", - "units": "ha", - "decimalPlaces": 3 - }, - { + "name": "approvalsForOutcome", + "decimalPlaces": 0, "computed": { - "expression": "$geom.lengthKm(sitesBenefitted)" - }, - "dataType": "number", - "name": "calculatedLengthTreatedKmBenefitted", - "units": "km", - "decimalPlaces": 3, - "behaviour": [ - { - "condition": "lengthTreatedKmBenefitted > 0", - "type": "conditional_validation", - "value": { - "message": "The managed length must be mapped", - "validate": "required,min[0.0001]" - } - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedAreaTreatedHaBenefitted" - }, - "dataType": "number", - "name": "areaTreatedHaBenefitted", - "description": "Manually enter correct figure for this reporting period if different to mapped value.", - "units": "ha", - "decimalPlaces": 3, - "validate": "required,min[0]" - }, - { - "dataType": "text", - "name": "mappingNotAlignedReasonBenefitted", - "constraints": [ - "Mapped area simplifies more complex area/s where work was undertaken during this period", - "Other" - ], - "validate": "required", - "behaviour": [ - { - "condition": "not (within(areaTreatedHaBenefitted, calculatedAreaTreatedHaBenefitted, 0.1))", - "type": "if" - } - ] - }, - { - "dataType": "text", - "name": "mappingNotAlignedCommentsBenefitted", - "validate": "required,maxSize[100]", - "behaviour": [ - { - "type": "visible", - "condition": "\"Other\" == mappingNotAlignedReasonBenefitted" - } - ] - }, - { - "dataType": "document", - "name": "extraMappingDetailsBenefitted", - "validate": "required", - "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", - "behaviour": [ - { - "condition": "not (within(areaTreatedHaBenefitted, calculatedAreaTreatedHaBenefitted, 0.1) and within(lengthTreatedKmBenefitted, calculatedLengthTreatedKmBenefitted, 0.1))", - "type": "if" - } - ] - }, - { - "defaultValue": { - "type": "computed", - "expression": "calculatedLengthTreatedKmBenefitted" - }, - "dataType": "number", - "name": "lengthTreatedKmBenefitted", - "units": "km", - "decimalPlaces": 3 - }, - { - "dataType": "text", - "name": "evidenceOfBenefit", - "validate": "maxSize[100]" + "expression": "sum(approvalTableDetails, \"approvalType ? 1 : 0\")" + } } - ], - "dataType": "list", - "name": "remediatingAreas" + ] }, { "dataType": "number", - "name": "totalAreaRemediationInitial", + "name": "numberApprovalsObtained", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 3, + "decimalPlaces": 0, + "defaultValue": 1, "computed": { - "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Initial' ? areaTreatedHaRemediated : 0\")" + "expression": "sum(approvalsByOutcome, \"approvalsForOutcome\")" } }, { "dataType": "number", - "decimalPlaces": 3, - "name": "totalAreaRemediationInitialInvoiced", + "name": "numberApprovalsObtainedInvoiced", "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", + "defaultValue": "", "validate": [ { "rule": "required" @@ -22034,92 +21682,6650 @@ }, { "param": { - "expression": "totalAreaRemediationInitial", - "type": "computed", - "decimalPlaces": 3 + "expression": "numberApprovalsObtained", + "type": "computed" }, "rule": "max" } - ], - "defaultValue": "" + ] }, { - "dataType": "number", - "name": "totalAreaRemediationFollowup", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Follow-up' ? areaTreatedHaRemediated : 0\")" - } + "dataType": "text", + "name": "totalInvoicedApprovalsObtainedMismatched", + "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", + "validate": "maxSize[400],required,min[0]", + "behaviour": [ + { + "condition": "+numberApprovalsObtainedInvoiced < +numberApprovalsObtained", + "type": "enable" + } + ] }, { - "dataType": "number", - "decimalPlaces": 3, - "name": "totalAreaRemediationFollowupInvoiced", - "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - }, + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" + }, + { + "dataType": "image", + "name": "photographicEvidence" + }, + { + "dataType": "boolean", + "name": "dataUploaded", + "description": "" + }, + { + "name": "projectAssuranceDetails", + "dataType": "text", + "validate": "required,maxSize[5000]" + }, + { + "dataType": "list", + "name": "assuranceDocuments", + "columns": [ { - "param": { - "expression": "totalAreaRemediationFollowup", - "type": "computed", - "decimalPlaces": 3 - }, - "rule": "max" + "dataType": "document", + "name": "attachments", + "description": "Please attach any Evidence of Service Delivery here." } - ], - "defaultValue": "" - }, + ] + } + ], + "modelName": "Obtaining approvals", + "title": "Obtain Relevant Approvals", + "viewModel": [ { - "dataType": "number", - "name": "totalLengthRemediationInitial", - "validate": "min[0]", - "decimalPlaces": 3, - "computed": { - "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Initial' ? lengthTreatedKmRemediated : 0\")" - } + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Participation information

" + } + ] }, { - "dataType": "number", - "decimalPlaces": 3, - "name": "totalLengthRemediationInitialInvoiced", - "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", - "validate": [ + "disableTableUpload": true, + "columns": [ { - "rule": "required" + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" }, { - "rule": "min[0]" + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "firstNationIndividualNumber", + "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } + ], + "source": "participationInformationTableCom", + "type": "table" + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(i) Total number of relevant approvals obtained", + "source": "numberApprovalsObtained", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(ii) Total number of relevant approvals invoiced for this reporting period", + "source": "numberApprovalsObtainedInvoiced", + "type": "number" + } + ] + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "If the total invoiced is different to the total completed, please provide the reason", + "source": "totalInvoicedApprovalsObtainedMismatched", + "type": "textarea", + "rows": 4, + "placeholder": "" + } + ] + }, + { + "type": "repeat", + "source": "approvalsByOutcome", + "userAddedRows": false, + "addRowText": "", + "items": [ + { + "type": "row", + "items": [ + { + "css": "span3", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s does this activity relate to?" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" + } + ] + } + ] + }, + { + "css": "span3", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "invoicingThisActivity", + "preLabel": "Are you invoicing for this activity in this reporting period?", + "type": "selectOne" + } + ] + } + ] + } + ] + }, + { + "type": "section", + "items": [ + { + "columns": [ + { + "width": "10%", + "source": "approvalGivenDate", + "title": "Date approval given", + "type": "date" + }, + { + "width": "10%", + "source": "approvalId", + "title": "Approval ID reference", + "type": "text" + }, + { + "width": "20%", + "source": "approvingOrg", + "title": "Organization/Body that gave the approval", + "type": "textarea" + }, + { + "width": "20%", + "title": "Type of approval*", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "approvalType", + "type": "select2" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Type of approval, if other", + "source": "otherApprovalType", + "type": "textarea" + } + ] + } + ] + }, + { + "width": "20%", + "source": "approvalPurpose", + "title": "Purpose of approval", + "type": "textarea" + }, + { + "width": "10%", + "source": "approvalValidateDateFrom", + "title": "Date approval valid from", + "type": "date" + }, + { + "width": "10%", + "source": "approvalValidateDateTo", + "title": "Date approval valid to", + "type": "date" + } + + ], + "userAddedRows": true, + "disableTableUpload": false, + "source": "approvalTableDetails", + "title": "Each approval must be reported as a new row.", + "type": "table" + } + ] + }]}, + { + "type": "row", + "items": [ + { + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" + }, + { + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" + } + ] + } + ] + }, + "modelName": null, + "templateName": "nhtObtainingRelevantApprovals", + "optional": true, + "optionalQuestionText": null, + "title": null, + "collapsibleHeading": null, + "name": "Obtaining approvals", + "description": null + }, + + + { + "collapsedByDefault": false, + "template": { + "dataModel": [ + { + "name": "pestAnimalSurveys", + "dataType": "list", + "minSize": 1, + "columns": [ + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "dataType": "text", + "name": "baselineOrIndicatorSurvey", + "description": "", + "constraints": [ + "Baseline", + "Indicator" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "surveyObjective", + "description": "What the survey aim to capture? How will the information obtained from the survey be used?", + "validate": "required,maxSize[3000]" + }, + { + "dataType": "number", + "name": "numberOfSurveys", + "validate": "required,min[1],max[1]", + "defaultValue": 1, + "readonly": true + }, + { + "dataType": "number", + "name": "numberOfSurveysInvoiced", + "validate": "required,min[0]", + "defaultValue": 1 + }, + { + "dataType": "list", + "name": "pestAnimalDataSets", + "columns": [ + { + "name": "dataSetId", + "entityType": "au.org.ala.ecodata.DataSetSummary", + "dataType": "text", + "description": "This section will require the Data Set Name so the Metadata fields in the Data Set Summary tab should be filled out before the Outcome Report is due. More than one dataset if relevant for this Project Baseline could be selected.", + "validate": "required", + "constraints": { + "textProperty": "name", + "valueProperty": "dataSetId", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.custom.dataSets" + }, + "filter": { + "namespace": "dataSet", + "expression": "dataSet.serviceId == 23 and dataSet.progress == 'finished' and dataSet.alreadyReported == false and baselineOrIndicatorSurvey == dataSet.type and deepEquals(relatedOutcomes,dataSet.outcomesLabel)" + } + } + }, + "behaviour": [ + { + "type": "pre_populate", + "config": { + "waitForInitialisation": true, + "source": { + "url": "/site/geojson", + "params": [ + { + "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.siteId", + "name": "id", + "type": "computed", + "required": true + } + ] + }, + "target": { + "type": "singleValue", + "name": "sitesCoveredForPestAnimal" + } + } + }, + { + "type": "pre_populate", + "config": { + "waitForInitialisation": true, + "source": { + "url": "/project/getSpeciesRecordsFromActivity", + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + }, + { + "expression": "x=find(owner.custom.dataSets, \"dataSetId\", dataSetId); x.activityId", + "name": "activityId", + "type": "computed", + "required": true + } + ] + }, + "mapping": [ + { + "source-path": "species", + "target": "species" + }, + { + "source-path": "individualCount", + "target": "individualsOrGroups" + }, + { + "source-path": "numberOfIndividualsOrGroups", + "target": "numberOfIndividualsOrGroups" + } + ], + "target": { + "type": "singleLoad", + "name": "pestAnimalSurveySpeciesTable" + } + } + } + ] + }, + { + "columns": [ + { + "dataType": "species", + "name": "species", + "validate": "required" + }, + { + "dataType": "text", + "name": "individualsOrGroups", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "numberOfIndividualsOrGroups", + "validate": "required,min[0]" + } + ], + "dataType": "list", + "name": "pestAnimalSurveySpeciesTable" + }, + { + "name": "projectBaselines", + "dataType": "stringList", + "description": "Select the relevant Project Baseline as listed in the Monitoring Methodology section of the MERI Plan.", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.baselines" + }, + "constraints": { + "textProperty": "baseline", + "valueProperty": "code", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.custom.details.baseline.rows" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "stringList", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.investmentPriorities" + }, + "constraints": { + "type": "pre-populated", + "config": { + "source": { + "params": [ + { + "expression": "owner.projectId", + "name": "id", + "type": "computed" + } + ], + "url": "/project/listProjectInvestmentPriorities/" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, + { + "dataType": "date", + "name": "activitiesStartDate", + "description": "Specific the dates these events were held on.", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.startDate" + } + }, + { + "dataType": "date", + "name": "activitiesEndDate", + "description": "Specific the dates these events were held on.", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.endDate" + } + }, + { + "dataType": "feature", + "name": "sitesCoveredForPestAnimal", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesCoveredForPestAnimal)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesCoveredForPestAnimal)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "$geom.lengthKm(sitesCoveredForPestAnimal)" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "text", + "description": "Select the technique used to conduct the survey. If the EMSA Application tool was not used, you should select 'Other'.", + "name": "emsaProtocol", + "validate": "required", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.protocol" + }, + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.protocols" + } + } + } + }, + { + "dataType": "stringList", + "description": "Describe the technique (if Other) was selected.", + "name": "otherEmsaProtocol", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methods" + } + }, + { + "dataType": "text", + "name": "surveyMethodology", + "description": "Provide more details on what is being done.", + "validate": "required,maxSize[3000]", + "computed": { + "expression": "x=find($context.owner.custom.dataSets, \"dataSetId\", dataSetId); x.methodDescription" + } + }, + { + "dataType": "text", + "name": "invoicingThisActivity", + "constraints": [ + "Yes", + "No" + ], + "validate": "required" + } + ], + "minSize": 1 + } + ] + }, + { + "allowRowDelete": "false", + "columns": [ + { + "dataType": "text", + "name": "participationIndividualsOrGroups", + "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "participationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "participationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ] + }, + { + "dataType": "number", + "name": "firstNationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "participationIndividualNumber", + "type": "computed" + }, + "rule": "max" + } + ] + }, + { + "dataType": "text", + "name": "firstNationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ], + "validate": [ + { + "rule": "required" + }, + { + "param": { + "expression": "participationGroupNumber", + "type": "computed" + }, + "rule": "max", + "message": "The number of first nation participants cannot be greater than the total number of participants" + } + ] + }, + { + "dataType": "text", + "name": "participationDetails", + "validate": "required, maxSize[3000]" + } + ], + "dataType": "list", + "name": "participationInformationTablePas" + }, + { + "dataType": "number", + "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(pestAnimalSurveys, \"baselineOrIndicatorSurvey == 'Baseline' ? 1 : 0\")" + } + }, + { + "dataType": "number", + "name": "totalSurveyBaselineInvoiced", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalSurveyBaseline", + "type": "computed" + }, + "rule": "max" + } + ], + "defaultValue": "" + }, + { + "dataType": "number", + "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(pestAnimalSurveys, \"baselineOrIndicatorSurvey == 'Indicator' ? 1 : 0\")" + } + }, + { + "dataType": "number", + "name": "totalSurveyIndicatorInvoiced", + "defaultValue": "", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalSurveyIndicator", + "type": "computed" + }, + "rule": "max" + } + ] + }, + { + "dataType": "text", + "name": "totalInvoicedPestAnimalMismatched", + "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", + "validate": "maxSize[400],required", + "behaviour": [ + { + "condition": "+totalSurveyIndicatorInvoiced < +totalSurveyIndicator or +totalSurveyBaselineInvoiced < +totalSurveyBaseline", + "type": "enable" + } + ] + }, + { + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" + }, + { + "dataType": "image", + "name": "photographicEvidence" + }, + { + "dataType": "boolean", + "name": "dataUploaded", + "description": "" + }, + { + "dataType": "text", + "name": "projectAssuranceDetails", + "description": "", + "validate": "required,maxSize[5000]" + }, + { + "dataType": "list", + "name": "assuranceDocuments", + "columns": [ + { + "dataType": "document", + "name": "attachments", + "description": "Please attach any Evidence of Service Delivery here." + } + ] + } + ], + "modelName": "NHT - Pest animal survey", + "title": "Pest Animal Survey", + "viewModel": [ + { + "type": "section", + "items": [ + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Participation information

" + } + ] + }, + { + "disableTableUpload": true, + "columns": [ + { + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" + }, + { + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "firstNationIndividualNumber", + "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } + ], + "source": "participationInformationTablePas", + "type": "table" + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Survey information

Before completing this section, please ensure you have created a Data Set Summary information for every data set produced by the surveys you intend to report

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(i) Total Number of baseline pest animal surveys completed for this reporting period", + "source": "totalSurveyBaseline", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "(ii) Total Number of baseline pest animal surveys invoiced for this reporting period", + "source": "totalSurveyBaselineInvoiced", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(iii) Total Number of indicator pest animal surveys completed for this reporting period", + "source": "totalSurveyIndicator", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "(iv) Total Number of indicator pest animal surveys invoiced for this reporting period", + "source": "totalSurveyIndicatorInvoiced", + "type": "number" + } + ] + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "If the total invoiced is different to the total completed, please provide the reason", + "source": "totalInvoicedPestAnimalMismatched", + "type": "textarea", + "rows": 4, + "placeholder": "" + } + ] + }, + { + "addRowText": "Add survey", + "removeRowText": "Delete this survey", + "userAddedRows": true, + "source": "pestAnimalSurveys", + "type": "repeat", + "items": [ + { + "type": "row", + "items": [ + { + "type": "col", + "items": [ + { + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s relates to this survey?" + } + ] + }, + { + "type": "col", + "items": [ + { + "source": "baselineOrIndicatorSurvey", + "type": "selectOne", + "preLabel": "Baseline survey or indicator (follow-up) survey?" + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "surveyObjective", + "preLabel": "Survey objective", + "type": "text" + } + ] + }, + { + "type": "repeat", + "source": "pestAnimalDataSets", + "userAddedRows": true, + "addRowText": "New data set", + "removeRowText": "Delete this data set", + "items": [ + { + "type": "row", + "css": "border-bottom", + "items": [ + { + "type": "col", + "items": [ + { + "source": "dataSetId", + "type": "selectOne", + "preLabel": "Please select the data set produced by this survey. Note it must have already been entered on the Data Set Summary tab." + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "projectBaselines", + "type": "selectMany", + "preLabel": "Which project baseline/s relate to this survey?", + "readonly": "readonly" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Activity start date", + "source": "activitiesStartDate", + "type": "date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Activity end date", + "source": "activitiesEndDate", + "type": "date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Sites covered by pest animal survey", + "source": "sitesCoveredForPestAnimal", + "type": "feature" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedAreaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedLengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetails", + "type": "document" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Actual area (ha) / length (km) covered by pest animal survey", + "source": "areaTreatedHa", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "lengthTreatedKm", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReason", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedComments", + "type": "textarea", + "rows": 5 + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Survey technique", + "source": "emsaProtocol", + "type": "selectOne", + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Survey technique (if Other)", + "source": "otherEmsaProtocol", + "type": "select2Many" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "surveyMethodology", + "preLabel": "Survey methodology", + "type": "text" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "invoicingThisActivity", + "preLabel": "Are you invoicing for this activity in this reporting period?", + "type": "selectOne" + } + ] + } + ] + } + ] + }, + { + "columns": [ + { + "width": "55%", + "source": "species", + "title": "Target species recorded", + "type": "speciesSelect" + }, + { + "width": "25%", + "source": "individualsOrGroups", + "title": "Individuals or groups?", + "type": "selectOne" + }, + { + "width": "20%", + "source": "numberOfIndividualsOrGroups", + "title": "Number of individuals / groups in pest animal survey", + "type": "number" + } + ], + "userAddedRows": true, + "source": "pestAnimalSurveySpeciesTable", + "type": "table" + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" + }, + { + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" + } + ] + } + ] + } + ] + }, + "modelName": null, + "templateName": "nhtPestAnimalSurvey", + "optional": true, + "optionalQuestionText": null, + "title": null, + "collapsibleHeading": null, + "name": "NHT - Pest animal survey", + "description": null + }, + { + "collapsedByDefault": false, + "template": { + "dataModel": [ + { + "allowRowDelete": "false", + "columns": [ + { + "dataType": "text", + "name": "participationIndividualsOrGroups", + "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "participationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "participationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ] + }, + { + "dataType": "number", + "name": "firstNationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "participationIndividualNumber", + "type": "computed" + }, + "rule": "max" + } + ] + }, + { + "dataType": "text", + "name": "firstNationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ], + "validate": [ + { + "rule": "required" + }, + { + "param": { + "expression": "participationGroupNumber", + "type": "computed" + }, + "rule": "max", + "message": "The number of first nation participants cannot be greater than the total number of participants" + } + ] + }, + { + "dataType": "text", + "name": "participationDetails", + "validate": "required, maxSize[3000]" + } + ], + "dataType": "list", + "name": "participationInformationTableRem" + }, + { + "columns": [ + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, + { + "dataType": "text", + "name": "invoicingThisActivity", + "constraints": [ + "Yes", + "No" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "initialOrFollowup", + "constraints": [ + "Initial", + "Follow-up" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "noRemediationInterventions", + "validate": "required" + }, + { + "dataType": "feature", + "name": "sitesRemediated", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesRemediated)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHaRemediated", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesRemediated)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKmRemediated", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "lengthTreatedKmRemediated > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHaRemediated" + }, + "dataType": "number", + "name": "areaTreatedHaRemediated", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReasonRemediated", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHaRemediated, calculatedAreaTreatedHaRemediated, 0.1) and within(lengthTreatedKmRemediated, calculatedLengthTreatedKmRemediated, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedCommentsRemediated", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReasonRemediated" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetailsRemediated", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHaRemediated, calculatedAreaTreatedHaRemediated, 0.1) and within(lengthTreatedKmRemediated, calculatedLengthTreatedKmRemediated, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKmRemediated" + }, + "dataType": "number", + "name": "lengthTreatedKmRemediated", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "date", + "name": "activitiesStartDate", + "description": "Specific the dates these events were held on.", + "validate": "required" + }, + { + "dataType": "date", + "name": "activitiesEndDate", + "description": "Specific the dates these events were held on.", + "validate": [ + { + "rule": "required" + }, + { + "rule": "future", + "param": { + "expression": "formatDateForValidation(activitiesStartDate)", + "type": "computed" + } + } + ] + }, + { + "dataType": "text", + "name": "typesOfRemediationInstalled", + "description": "", + "constraints": [ + "Access control", + "Bank grooming", + "Flow gauging stations", + "Fords", + "Culverts", + "Revegetation", + "Weirs", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "otherRemediationType", + "behaviour": [ + { + "condition": "typesOfRemediationInstalled == \"Other\"", + "type": "enable" + } + ], + "validate": "required,maxSize[100]" + }, + { + "dataType": "text", + "name": "remediationType", + "description": "", + "constraints": [ + "Access control", + "Bank grooming", + "Flow gauging stations", + "Fords", + "Culverts", + "Revegetation", + "Weirs", + "Other" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "otherAquaticOrRemediationType", + "behaviour": [ + { + "condition": "remediationType == \"Other\"", + "type": "enable" + } + ], + "validate": "required,maxSize[100]" + }, + { + "dataType": "feature", + "name": "sitesBenefitted", + "description": "Mapping field to be done and Area (ha) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesBenefitted)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHaBenefitted", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesBenefitted)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKmBenefitted", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "lengthTreatedKmBenefitted > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHaBenefitted" + }, + "dataType": "number", + "name": "areaTreatedHaBenefitted", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReasonBenefitted", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHaBenefitted, calculatedAreaTreatedHaBenefitted, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedCommentsBenefitted", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReasonBenefitted" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetailsBenefitted", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHaBenefitted, calculatedAreaTreatedHaBenefitted, 0.1) and within(lengthTreatedKmBenefitted, calculatedLengthTreatedKmBenefitted, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKmBenefitted" + }, + "dataType": "number", + "name": "lengthTreatedKmBenefitted", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "text", + "name": "evidenceOfBenefit", + "validate": "maxSize[100]" + } + ], + "dataType": "list", + "name": "remediatingAreas" + }, + { + "dataType": "number", + "name": "totalAreaRemediationInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Initial' ? areaTreatedHaRemediated : 0\")" + } + }, + { + "dataType": "number", + "decimalPlaces": 3, + "name": "totalAreaRemediationInitialInvoiced", + "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalAreaRemediationInitial", + "type": "computed", + "decimalPlaces": 3 + }, + "rule": "max" + } + ], + "defaultValue": "" + }, + { + "dataType": "number", + "name": "totalAreaRemediationFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Follow-up' ? areaTreatedHaRemediated : 0\")" + } + }, + { + "dataType": "number", + "decimalPlaces": 3, + "name": "totalAreaRemediationFollowupInvoiced", + "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalAreaRemediationFollowup", + "type": "computed", + "decimalPlaces": 3 + }, + "rule": "max" + } + ], + "defaultValue": "" + }, + { + "dataType": "number", + "name": "totalLengthRemediationInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Initial' ? lengthTreatedKmRemediated : 0\")" + } + }, + { + "dataType": "number", + "decimalPlaces": 3, + "name": "totalLengthRemediationInitialInvoiced", + "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalLengthRemediationInitial", + "type": "computed", + "decimalPlaces": 3 + }, + "rule": "max" + } + ], + "defaultValue": "" + }, + { + "dataType": "number", + "name": "totalLengthRemediationFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 3, + "computed": { + "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Follow-up' ? lengthTreatedKmRemediated : 0\")" + } + }, + { + "dataType": "number", + "decimalPlaces": 3, + "name": "totalLengthRemediationFollowupInvoiced", + "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalLengthRemediationFollowup", + "type": "computed", + "decimalPlaces": 3 + }, + "rule": "max" + } + ], + "defaultValue": "" + }, + { + "dataType": "number", + "name": "totalStructuresInstalled", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(remediatingAreas, \"noRemediationInterventions\")" + } + }, + { + "dataType": "number", + "name": "totalStructuresInstalledInvoiced", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalStructuresInstalled", + "type": "computed" + }, + "rule": "max" + } + ], + "defaultValue": "" + }, + { + "dataType": "number", + "name": "totalStructuresInstalledFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", + "validate": "min[0]", + "decimalPlaces": 0, + "computed": { + "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Follow-up' ? noRemediationInterventions : 0\")" + } + }, + { + "dataType": "number", + "name": "totalStructuresInstalledFollowupInvoiced", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "totalStructuresInstalledFollowup", + "type": "computed" + }, + "rule": "max" + } + ], + "defaultValue": "" + }, + { + "dataType": "text", + "name": "totalInvoicedRemediationMismatched", + "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", + "validate": "maxSize[400],required", + "behaviour": [ + { + "condition": "+totalAreaRemediationInitialInvoiced < +totalAreaRemediationInitial or +totalAreaRemediationFollowupInvoiced < +totalAreaRemediationFollowup or +totalLengthRemediationInitialInvoiced < +totalLengthRemediationInitial or +totalLengthRemediationFollowupInvoiced < +totalLengthRemediationFollowup or +totalStructuresInstalledInvoiced < +totalStructuresInstalled", + "type": "enable" + } + ] + }, + { + "dataType": "text", + "name": "comments", + "validate": "maxSize[1500]" + }, + { + "dataType": "image", + "name": "photographicEvidence" + }, + { + "dataType": "boolean", + "name": "dataUploaded", + "description": "" + }, + { + "name": "projectAssuranceDetails", + "dataType": "text", + "validate": "required,maxSize[5000]" + }, + { + "dataType": "list", + "name": "assuranceDocuments", + "columns": [ + { + "dataType": "document", + "name": "attachments", + "description": "Please attach any Evidence of Service Delivery here." + } + ] + } + ], + "modelName": "NHT - Remediating riparian and aquatic areas", + "title": "Remediating Riparian and Aquatic Areas", + "viewModel": [ + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Participation information

" + } + ] + }, + { + "disableTableUpload": true, + "columns": [ + { + "width": "10%", + "source": "participationIndividualsOrGroups", + "title": "Are individuals or groups delivering this service?", + "type": "selectOne" + }, + { + "width": "20%", + "type": "col", + "title": "Total number of people participating in the delivery of this service
(including First Nations people, paid employees, unpaid employees, and volunteers)*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "participationIndividualNumber", + "type": "number" + }, + { + "source": "participationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "type": "col", + "width": "20%", + "title": "Total number of First Nations people participating in the delivery of this service, including paid employees, unpaid employees and volunteers*", + "helpText": "Please record either the total number of individuals or the number of individuals in the group that delivered this service. If you have a mix of Individuals and groups, you should report them separately by adding a row.", + "items": [ + { + "source": "firstNationIndividualNumber", + "type": "number" + }, + { + "source": "firstNationGroupNumber", + "type": "selectOne" + } + ] + }, + { + "width": "20%", + "source": "participationDetails", + "rows": 4, + "title": "If no First Nations people participated in the delivery of this service,
what are the reasons? If there was participation, please provide details.", + "helpText": "If there were no First Nations people participating in the delivery of this service, please explain the reasons. If there were First Nations people involved, please outline how they were involved.", + "type": "textarea" + } + ], + "source": "participationInformationTableRem", + "type": "table" + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Totals Summary

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(i) Total area (ha) of remediation of riparian/aquatic areas (initial) during this reporting period", + "source": "totalAreaRemediationInitial", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "(ii) Total area (ha) of remediation of riparian/aquatic areas (initial) invoiced for during this reporting period", + "source": "totalAreaRemediationInitialInvoiced", + "type": "number", + "displayOptions": { + "removeTrailingZeros": false + } + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(iii) Total area (ha) of remediation of riparian/aquatic areas (follow - up) during this reporting period", + "source": "totalAreaRemediationFollowup", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "(iv) Total area (ha) of remediation of riparian/aquatic areas (follow - up) invoiced for during this reporting period", + "source": "totalAreaRemediationFollowupInvoiced", + "type": "number", + "displayOptions": { + "removeTrailingZeros": false + } + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(v) Total length (km) of remediation of riparian/aquatic areas (initial) during this reporting period", + "source": "totalLengthRemediationInitial", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "(vi) Total length (km) of remediation of riparian/aquatic areas (initial) invoiced for during this reporting period", + "source": "totalLengthRemediationInitialInvoiced", + "type": "number", + "displayOptions": { + "removeTrailingZeros": false + } + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(vii) Total length (km) of remediation of riparian/aquatic areas (follow-up) during this reporting period", + "source": "totalLengthRemediationFollowup", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "(viii) Total length (km) of remediation of riparian/aquatic areas (follow-up) invoiced for during this reporting period", + "source": "totalLengthRemediationFollowupInvoiced", + "type": "number", + "displayOptions": { + "removeTrailingZeros": false + } + } + ] + } + ] + }, + { + "type": "col", + "css": "span4 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "(ix) Number of remediation interventions applied to promote aquatic health during this reporting period", + "source": "totalStructuresInstalled", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "(x) Number of remediation interventions applied to promote aquatic health invoiced for during this reporting period", + "source": "totalStructuresInstalledInvoiced", + "type": "number" + } + ] + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "If the total invoiced is different to the total completed, please provide the reason", + "source": "totalInvoicedRemediationMismatched", + "type": "textarea", + "rows": 4, + "placeholder": "" + } + ] + }, + { + "addRowText": "Add a new remediated area", + "userAddedRows": true, + "source": "remediatingAreas", + "type": "repeat", + "items": [ + { + "type": "row", + "items": [ + { + "css": "span3 col-border-right", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "relatedOutcomes", + "type": "selectOne", + "preLabel": "Which outcome statement/s does this activity relate to?" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "investmentPriorities2", + "preLabel": "Which investment priority does this activity relate to?", + "type": "select2Many" + } + ] + } + ] + }, + { + "css": "span3", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "invoicingThisActivity", + "preLabel": "Are you invoicing for this activity in this reporting period?", + "type": "selectOne" + } + ] + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "noRemediationInterventions", + "preLabel": "Number of remediation interventions installed", + "type": "number" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "initialOrFollowup", + "preLabel": "Initial or follow-up treatment?", + "type": "selectOne" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Site/s covered by remediation", + "source": "sitesRemediated", + "type": "feature" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedAreaTreatedHaRemediated", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedLengthTreatedKmRemediated", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetailsRemediated", + "type": "document" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Actual area (ha) / length (km) being remediated", + "source": "areaTreatedHaRemediated", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "lengthTreatedKmRemediated", + "type": "number", + "displayOptions": { + "displayUnits": true + } + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Reason for actual being different to mapped amount", + "source": "mappingNotAlignedReasonRemediated", + "type": "selectOne" + } + ] + }, + { + "type": "row", + "items": [ + { + "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", + "source": "mappingNotAlignedCommentsRemediated", + "type": "textarea", + "rows": 5 + } + ] + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span3", + "type": "col", + "items": [ + { + "type": "row", + "items": [ + { + "source": "activitiesStartDate", + "type": "date", + "preLabel": "Activity start date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "activitiesEndDate", + "preLabel": "Activity end date", + "type": "date" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Type of remediation intervention", + "source": "typesOfRemediationInstalled", + "type": "select2" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "otherRemediationType", + "placeholder": "Type of remediation intervention (if Other)", + "type": "text" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Type of aquatic or riparian remediation", + "source": "remediationType", + "type": "select2" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "otherAquaticOrRemediationType", + "placeholder": "Type of aquatic or riparian remediation (if Other)", + "type": "text" + } + ] + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Please identify any off-site area/s that may benefit from this service", + "source": "sitesBenefitted", + "type": "feature" + } + ] + }, + { + "type": "row", + "items": [ + { + "source": "calculatedAreaTreatedHaBenefitted", + "type": "number", + "displayOptions": { + "displayUnits": true + }, + "readonly": "readonly" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Please attach mapping details", + "source": "extraMappingDetailsBenefitted", + "type": "document" + } + ] + } + ] + }, + { + "type": "col", + "css": "span3 col-border-right", + "items": [ + { + "type": "row", + "items": [ + { + "source": "evidenceOfBenefit", + "preLabel": "Please provide a description on the evidence available to reflect this benefit", + "type": "textarea" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "section", + "items": [ + { + "type": "row", + "items": [ + { + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" + }, + { + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" + } + ] + } + ] + } + ] + }, + "modelName": null, + "templateName": "nhtRemediatingRiparianAndAquaticAreas", + "optional": true, + "optionalQuestionText": null, + "title": null, + "collapsibleHeading": null, + "name": "NHT - Remediating riparian and aquatic areas", + "description": null + }, + + { + "collapsedByDefault": false, + "template": { + "dataModel": [ + { + "allowRowDelete": "false", + "columns": [ + { + "dataType": "text", + "name": "participationIndividualsOrGroups", + "description": "Once Individuals or groups is selected, the related number field in the next two columns will become editable to report.", + "constraints": [ + "Individuals", + "Groups" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "participationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "participationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ] + }, + { + "dataType": "number", + "name": "firstNationIndividualNumber", + "defaultValue": 0, + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Individuals\"", + "type": "enable" + } + ], + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "participationIndividualNumber", + "type": "computed" + }, + "rule": "max" + } + ] + }, + { + "dataType": "text", + "name": "firstNationGroupNumber", + "behaviour": [ + { + "condition": "participationIndividualsOrGroups == \"Groups\"", + "type": "enable" + } + ], + "constraints": [ + "0", + "1-10", + "11-20", + "21-30", + "31-40", + "41-50" + ], + "validate": [ + { + "rule": "required" + }, + { + "param": { + "expression": "participationGroupNumber", + "type": "computed" + }, + "rule": "max", + "message": "The number of first nation participants cannot be greater than the total number of participants" + } + ] + }, + { + "dataType": "text", + "name": "participationDetails", + "validate": "required, maxSize[3000]" + } + ], + "dataType": "list", + "name": "participationInformationTableDmp" + }, + { + "columns": [ + { + "name": "relatedOutcomes", + "dataType": "text", + "description": "Select the outcome/s as defined in your MERI plan that this service was delivered to achieve.", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "outcomes" + } + } + } + }, + { + "name": "investmentPriorities2", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": { + "textProperty": "label", + "valueProperty": "value", + "type": "pre-populated", + "config": { + "source": { + "context-path": "owner.investmentPriorities" + } + } + } + }, + { + "dataType": "text", + "name": "otherInvestmentPriority", + "behaviour": [ + { + "type": "enable", + "condition": "\"Other\" in investmentPriorities2" + } + ] + }, + { + "dataType": "text", + "name": "invoicingThisActivity", + "constraints": [ + "Yes", + "No" + ], + "validate": "required" + }, + { + "dataType": "feature", + "name": "sitesResearchAndDevelopment", + "description": "Mapping field to be done and Area (ha)/length (km) field be auto-calculated from mapping." + }, + { + "computed": { + "expression": "$geom.areaHa(sitesResearchAndDevelopment)" + }, + "dataType": "number", + "name": "calculatedAreaTreatedHa", + "units": "ha", + "decimalPlaces": 3 + }, + { + "computed": { + "expression": "$geom.lengthKm(sitesResearchAndDevelopment)" + }, + "dataType": "number", + "name": "calculatedLengthTreatedKm", + "units": "km", + "decimalPlaces": 3, + "behaviour": [ + { + "condition": "lengthTreatedKm > 0", + "type": "conditional_validation", + "value": { + "message": "The managed length must be mapped", + "validate": "required,min[0.0001]" + } + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedAreaTreatedHa" + }, + "dataType": "number", + "name": "areaTreatedHa", + "description": "Manually enter correct figure for this reporting period if different to mapped value.", + "units": "ha", + "decimalPlaces": 3, + "validate": "required,min[0]" + }, + { + "dataType": "text", + "name": "mappingNotAlignedReason", + "constraints": [ + "Mapped area simplifies more complex area/s where work was undertaken during this period", + "Other" + ], + "validate": "required", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "dataType": "text", + "name": "mappingNotAlignedComments", + "validate": "required,maxSize[100]", + "behaviour": [ + { + "type": "visible", + "condition": "\"Other\" == mappingNotAlignedReason" + } + ] + }, + { + "dataType": "document", + "name": "extraMappingDetails", + "validate": "required", + "description": "Please fill in the Mapped/Actual/Invoice fields before attaching a document here. If those fields match this field will be void.
If any of these fields differ please attach your organisation's detailed map for the area, covered by this project service - during reporting period (include the scale measure for each map).", + "behaviour": [ + { + "condition": "not (within(areaTreatedHa, calculatedAreaTreatedHa, 0.1) and within(lengthTreatedKm, calculatedLengthTreatedKm, 0.1))", + "type": "if" + } + ] + }, + { + "defaultValue": { + "type": "computed", + "expression": "calculatedLengthTreatedKm" + }, + "dataType": "number", + "name": "lengthTreatedKm", + "units": "km", + "decimalPlaces": 3 + }, + { + "dataType": "text", + "name": "researchOrDevelopment", + "constraints": [ + "New research", + "New development", + "New research and development", + "Continuing research", + "Continuing development", + "Continuing research and development" + ], + "validate": "required" + }, + { + "dataType": "number", + "name": "numberOfDaysConducted", + "validate": "required,min[0]" + }, + { + "columns": [ + { + "dataType": "date", + "name": "resAndDevStartDate", + "description": "Specific the dates these events were held on.", + "validate": "required" + }, + { + "dataType": "date", + "name": "resAndDevFinishDate", + "description": "Specific the dates these events were held on.", + "validate": [ + { + "rule": "required" + }, + { + "rule": "future", + "param": { + "expression": "formatDateForValidation(resAndDevStartDate)", + "type": "computed" + } + } + ] + }, + { + "dataType": "text", + "name": "anzsrcDivision", + "constraints": [ + "AGRICULTURAL, VETERINARY AND FOOD SCIENCES", + "BIOLOGICAL SCIENCES", + "BIOMEDICAL AND CLINICAL SCIENCES", + "BUILT ENVIRONMENT AND DESIGN", + "CHEMICAL SCIENCES", + "COMMERCE, MANAGEMENT, TOURISM AND SERVICES", + "CREATIVE ARTS AND WRITING", + "EARTH SCIENCES", + "ECONOMICS", + "EDUCATION", + "ENGINEERING", + "ENVIRONMENTAL SCIENCES", + "HEALTH SCIENCES", + "HISTORY, HERITAGE AND ARCHAEOLOGY", + "HUMAN SOCIETY", + "INDIGENOUS STUDIES", + "INFORMATION AND COMPUTING SCIENCES", + "LANGUAGE, COMMUNICATION AND CULTURE", + "LAW AND LEGAL STUDIES", + "MATHEMATICAL SCIENCES", + "PHILOSOPHY AND RELIGIOUS STUDIES", + "PHYSICAL SCIENCES", + "PSYCHOLOGY" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "anzsrcGroup", + "validate": "required", + "constraints": { + "default": [], + "options": [ + { + "condition": "anzsrcDivision == \"AGRICULTURAL, VETERINARY AND FOOD SCIENCES\"", + "value": [ + "Agricultural biotechnology", + "Agriculture, land and farm management", + "Animal production", + "Crop and pasture production", + "Fisheries sciences", + "Food sciences", + "Forestry sciences", + "Horticultural production", + "Veterinary sciences", + "Other agricultural, veterinary and food sciences" + ] + }, + { + "condition": "anzsrcDivision == \"BIOLOGICAL SCIENCES\"", + "value": [ + "Biochemistry and cell biology", + "Bioinformatics and computational biology", + "Ecology", + "Evolutionary biology", + "Genetics", + "Industrial biotechnology", + "Microbiology", + "Plant biology", + "Zoology", + "Other biological sciences" + ] + }, + { + "condition": "anzsrcDivision == \"BIOMEDICAL AND CLINICAL SCIENCES\"", + "value": [ + "Cardiovascular medicine and haematology", + "Clinical sciences", + "Dentistry", + "Immunology", + "Medical biochemistry and metabolomics", + "Medical biotechnology", + "Medical microbiology", + "Medical physiology", + "Neurosciences", + "Nutrition and dietetics", + "Oncology and carcinogenesis", + "Ophthalmology and optometry", + "Paediatrics", + "Pharmacology and pharmaceutical sciences", + "Reproductive medicine", + "Other biomedical and clinical sciences" + ] + }, + { + "condition": "anzsrcDivision == \"BUILT ENVIRONMENT AND DESIGN\"", + "value": [ + "Architecture", + "Building", + "Design", + "Urban and regional planning", + "Other built environment and design" + ] + }, + { + "condition": "anzsrcDivision == \"CHEMICAL SCIENCES\"", + "value": [ + "Analytical chemistry", + "Inorganic chemistry", + "Macromolecular and materials chemistry", + "Medicinal and biomolecular chemistry", + "Organic chemistry", + "Physical chemistry", + "Theoretical and computational chemistry", + "Other chemical sciences" + ] + }, + { + "condition": "anzsrcDivision == \"COMMERCE, MANAGEMENT, TOURISM AND SERVICES\"", + "value": [ + "Accounting, auditing and accountability", + "Banking, finance and investment", + "Business systems in context", + "Commercial services", + "Human resources and industrial relations", + "Marketing", + "Strategy, management and organisational behaviour", + "Tourism", + "Transportation, logistics and supply chains", + "Other commerce, management, tourism and services" + ] + }, + { + "condition": "anzsrcDivision == \"CREATIVE ARTS AND WRITING\"", + "value": [ + "Art history, theory and criticism", + "Creative and professional writing", + "Music", + "Performing arts", + "Screen and digital media", + "Visual arts", + "Other creative arts and writing" + ] + }, + { + "condition": "anzsrcDivision == \"EARTH SCIENCES\"", + "value": [ + "Atmospheric sciences", + "Climate change science", + "Geochemistry", + "Geoinformatics", + "Geology", + "Geophysics", + "Hydrology", + "Oceanography", + "Physical geography and environmental geoscience", + "Other earth sciences" + ] + }, + { + "condition": "anzsrcDivision == \"ECONOMICS\"", + "value": [ + "Applied economics", + "Econometrics", + "Economic theory", + "Other economics" + ] + }, + { + "condition": "anzsrcDivision == \"EDUCATION\"", + "value": [ + "Curriculum and pedagogy", + "Education policy, sociology and philosophy", + "Education systems", + "Specialist studies in education", + "Other education" + ] + }, + { + "condition": "anzsrcDivision == \"ENGINEERING\"", + "value": [ + "Aerospace engineering", + "Automotive engineering", + "Biomedical engineering", + "Chemical engineering", + "Civil engineering", + "Communications engineering", + "Control engineering, mechatronics and robotics", + "Electrical engineering", + "Electronics, sensors and digital hardware", + "Engineering practice and education", + "Environmental engineering", + "Fluid mechanics and thermal engineering", + "Geomatic engineering", + "Manufacturing engineering", + "Maritime engineering", + "Materials engineering", + "Mechanical engineering", + "Nanotechnology", + "Resources engineering and extractive metallurgy", + "Other engineering" + ] + }, + { + "condition": "anzsrcDivision == \"ENVIRONMENTAL SCIENCES\"", + "value": [ + "Climate change impacts and adaptation", + "Ecological applications", + "Environmental biotechnology", + "Environmental management", + "Pollution and contamination", + "Soil sciences", + "Other environmental sciences" + ] + }, + { + "condition": "anzsrcDivision == \"HEALTH SCIENCES\"", + "value": [ + "Allied health and rehabilitation science", + "Epidemiology", + "Health services and systems", + "Midwifery", + "Nursing", + "Public health", + "Sports science and exercise", + "Traditional, complementary and integrative medicine", + "Other health sciences" + ] + }, + { + "condition": "anzsrcDivision == \"HISTORY, HERITAGE AND ARCHAEOLOGY\"", + "value": [ + "Archaeology", + "Heritage, archive and museum studies", + "Historical studies", + "Other history, heritage and archaeology" + ] + }, + { + "condition": "anzsrcDivision == \"HUMAN SOCIETY\"", + "value": [ + "Anthropology", + "Criminology", + "Demography", + "Development studies", + "Gender studies", + "Human geography", + "Policy and administration", + "Political science", + "Social work", + "Sociology", + "Other human society" + ] + }, + { + "condition": "anzsrcDivision == \"INDIGENOUS STUDIES\"", + "value": [ + "Aboriginal and Torres Strait Islander culture, language and history", + "Aboriginal and Torres Strait Islander education", + "Aboriginal and Torres Strait Islander environmental knowledges and management", + "Aboriginal and Torres Strait Islander health and wellbeing", + "Aboriginal and Torres Strait Islander peoples, society and community", + "Aboriginal and Torres Strait Islander sciences", + "Te ahurea, reo me te hītori o te Māori (Māori culture, language and history)", + "Mātauranga Māori (Māori education)", + "Ngā mātauranga taiao o te Māori (Māori environmental knowledges)", + "Te hauora me te oranga o te Māori (Māori health and wellbeing)", + "Ngā tāngata, te porihanga me ngā hapori o te Māori (Māori peoples, society and community)", + "Ngā pūtaiao Māori (Māori sciences)", + "Pacific Peoples culture, language and history", + "Pacific Peoples education", + "Pacific Peoples environmental knowledges", + "Pacific Peoples health and wellbeing", + "Pacific Peoples sciences", + "Pacific Peoples society and community", + "Other Indigenous data, methodologies and global Indigenous studies", + "Other Indigenous studies" + ] + }, + { + "condition": "anzsrcDivision == \"INFORMATION AND COMPUTING SCIENCES\"", + "value": [ + "Applied computing", + "Artificial intelligence", + "Computer vision and multimedia computation", + "Cybersecurity and privacy", + "Data management and data science", + "Distributed computing and systems software", + "Graphics, augmented reality and games", + "Human-centred computing", + "Information systems", + "Library and information studies", + "Machine learning", + "Software engineering", + "Theory of computation", + "Other information and computing sciences" + ] + }, + { + "condition": "anzsrcDivision == \"LANGUAGE, COMMUNICATION AND CULTURE\"", + "value": [ + "Communication and media studies", + "Cultural studies", + "Language studies", + "Linguistics", + "Literary studies", + "Other language, communication and culture" + ] + }, + { + "condition": "anzsrcDivision == \"LAW AND LEGAL STUDIES\"", + "value": [ + "Commercial law", + "Environmental and resources law", + "International and comparative law", + "Law in context", + "Legal systems", + "Private law and civil obligations", + "Public law", + "Other law and legal studies" + ] + }, + { + "condition": "anzsrcDivision == \"MATHEMATICAL SCIENCES\"", + "value": [ + "Applied mathematics", + "Mathematical physics", + "Numerical and computational mathematics", + "Pure mathematics", + "Statistics", + "Other mathematical sciences" + ] + }, + { + "condition": "anzsrcDivision == \"PHILOSOPHY AND RELIGIOUS STUDIES\"", + "value": [ + "Applied ethics", + "History and philosophy of specific fields", + "Philosophy", + "Religious studies", + "Theology", + "Other philosophy and religious studies" + ] + }, + { + "condition": "anzsrcDivision == \"PHYSICAL SCIENCES\"", + "value": [ + "Astronomical sciences", + "Atomic, molecular and optical physics", + "Classical physics", + "Condensed matter physics", + "Medical and biological physics", + "Nuclear and plasma physics", + "Particle and high energy physics", + "Quantum physics", + "Space sciences", + "Synchrotrons and accelerators", + "Other physical sciences" + ] + }, + { + "condition": "anzsrcDivision == \"PSYCHOLOGY\"", + "value": [ + "Applied and developmental psychology", + "Biological psychology", + "Clinical and health psychology", + "Cognitive and computational psychology", + "Social and personality psychology", + "Other psychology" + ] + } + ], + "type": "computed" + } + }, + { + "dataType": "text", + "name": "anzsrcFields", + "validate": "required", + "constraints": { + "default": [], + "options": [ + { + "condition": "anzsrcGroup == \"Agricultural biotechnology\"", + "value": [ + "Agricultural biotechnology diagnostics (incl. biosensors)", + "Agricultural marine biotechnology", + "Agricultural molecular engineering of nucleic acids and proteins", + "Genetically modified animals", + "Genetically modified field crops and pasture", + "Genetically modified horticulture plants", + "Genetically modified trees", + "Livestock cloning", + "Non-genetically modified uses of biotechnology", + "Transgenesis", + "Agricultural biotechnology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Agriculture, land and farm management\"", + "value": [ + "Agricultural hydrology", + "Agricultural land management", + "Agricultural land planning", + "Agricultural management of nutrients", + "Agricultural production systems simulation", + "Agricultural spatial analysis and modelling", + "Agricultural systems analysis and modelling", + "Farm management, rural management and agribusiness", + "Germplasm management", + "Sustainable agricultural development", + "Agriculture, land and farm management not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Animal production\"", + "value": [ + "Animal growth and development", + "Animal management", + "Animal nutrition", + "Animal protection (incl. pests and pathogens)", + "Animal reproduction and breeding", + "Animal welfare", + "Environmental studies in animal production", + "Animal production not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Crop and pasture production\"", + "value": [ + "Agrochemicals and biocides (incl. application)", + "Agro-ecosystem function and prediction", + "Agronomy", + "Crop and pasture biochemistry and physiology", + "Crop and pasture biomass and bioproducts", + "Crop and pasture improvement (incl. selection and breeding)", + "Crop and pasture nutrition", + "Crop and pasture post harvest technologies (incl. transportation and storage)", + "Crop and pasture protection (incl. pests, diseases and weeds)", + "Crop and pasture waste water use", + "Fertilisers (incl. application)", + "Organic and low chemical input crop production", + "Pollination biology and systems", + "Crop and pasture production not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Fisheries sciences\"", + "value": [ + "Aquaculture", + "Aquaculture and fisheries stock assessment", + "Fish pests and diseases", + "Fish physiology and genetics", + "Fisheries management", + "Post-harvest fisheries technologies (incl. transportation)", + "Fisheries sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Food sciences\"", + "value": [ + "Beverage chemistry and beverage sensory science", + "Food chemistry and food sensory science", + "Food nutritional balance", + "Food packaging, preservation and processing", + "Food safety, traceability, certification and authenticity", + "Food sustainability", + "Food technology", + "Food sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Forestry sciences\"", + "value": [ + "Agroforestry", + "Forest biodiversity", + "Forest ecosystems", + "Forest health and pathology", + "Forestry biomass and bioproducts", + "Forestry fire management", + "Forestry management and environment", + "Forestry product quality assessment", + "Tree improvement (incl. selection and breeding)", + "Tree nutrition and physiology", + "Wood fibre processing", + "Wood processing", + "Forestry sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Horticultural production\"", + "value": [ + "Field organic and low chemical input horticulture", + "Horticultural crop growth and development", + "Horticultural crop improvement (incl. selection and breeding)", + "Horticultural crop protection (incl. pests, diseases and weeds)", + "Oenology and viticulture", + "Post harvest horticultural technologies (incl. transportation and storage)", + "Horticultural production not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Veterinary sciences\"", + "value": [ + "Veterinary anaesthesiology and intensive care", + "Veterinary anatomy and physiology", + "Veterinary bacteriology", + "Veterinary diagnosis and diagnostics", + "Veterinary epidemiology", + "Veterinary immunology", + "Veterinary medicine (excl. urology)", + "Veterinary mycology", + "Veterinary parasitology", + "Veterinary pathology", + "Veterinary pharmacology", + "Veterinary surgery", + "Veterinary urology", + "Veterinary virology", + "Veterinary sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other agricultural, veterinary and food sciences\"", + "value": [ + "Other agricultural, veterinary and food sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Biochemistry and cell biology\"", + "value": [ + "Analytical biochemistry", + "Cell development, proliferation and death", + "Cell metabolism", + "Cell neurochemistry", + "Cellular interactions (incl. adhesion, matrix, cell wall)", + "Enzymes", + "Glycobiology", + "Protein trafficking", + "Proteomics and intermolecular interactions (excl. medical proteomics)", + "Receptors and membrane biology", + "Signal transduction", + "Structural biology (incl. macromolecular modelling)", + "Synthetic biology", + "Systems biology", + "Biochemistry and cell biology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Bioinformatics and computational biology\"", + "value": [ + "Bioinformatic methods development", + "Biological network analysis", + "Computational ecology and phylogenetics", + "Genomics and transcriptomics", + "Proteomics and metabolomics", + "Sequence analysis", + "Statistical and quantitative genetics", + "Translational and applied bioinformatics", + "Bioinformatics and computational biology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Ecology\"", + "value": [ + "Behavioural ecology", + "Community ecology (excl. invasive species ecology)", + "Ecological physiology", + "Freshwater ecology", + "Marine and estuarine ecology (incl. marine ichthyology)", + "Palaeoecology", + "Population ecology", + "Terrestrial ecology", + "Ecology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Evolutionary biology\"", + "value": [ + "Animal systematics and taxonomy", + "Biogeography and phylogeography", + "Biological adaptation", + "Evolution of developmental systems", + "Evolutionary ecology", + "Evolutionary impacts of climate change", + "Host-parasite interactions", + "Life histories", + "Microbial taxonomy", + "Phylogeny and comparative analysis", + "Plant and fungus systematics and taxonomy", + "Speciation and extinction", + "Evolutionary biology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Genetics\"", + "value": [ + "Anthropological genetics", + "Cell and nuclear division", + "Developmental genetics (incl. sex determination)", + "Epigenetics (incl. genome methylation and epigenomics)", + "Gene expression (incl. microarray and other genome-wide approaches)", + "Gene mapping", + "Genetic immunology", + "Genome structure and regulation", + "Genomics", + "Molecular evolution", + "Neurogenetics", + "Genetics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Industrial biotechnology\"", + "value": [ + "Biocatalysis and enzyme technology", + "Bioprocessing, bioproduction and bioproducts", + "Fermentation", + "Industrial biotechnology diagnostics (incl. biosensors)", + "Industrial microbiology (incl. biofeedstocks)", + "Industrial molecular engineering of nucleic acids and proteins", + "Nanobiotechnology", + "Industrial biotechnology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Microbiology\"", + "value": [ + "Bacteriology", + "Infectious agents", + "Microbial ecology", + "Microbial genetics", + "Mycology", + "Virology", + "Microbiology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Plant biology\"", + "value": [ + "Phycology (incl. marine grasses)", + "Plant biochemistry", + "Plant cell and molecular biology", + "Plant developmental and reproductive biology", + "Plant pathology", + "Plant physiology", + "Plant biology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Zoology\"", + "value": [ + "Animal behaviour", + "Animal cell and molecular biology", + "Animal developmental and reproductive biology", + "Animal diet and nutrition", + "Animal immunology", + "Animal neurobiology", + "Animal physiological ecology", + "Animal physiology - biophysics", + "Animal physiology - cell", + "Animal physiology - systems", + "Animal structure and function", + "Comparative physiology", + "Invertebrate biology", + "Vertebrate biology", + "Zoology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other biological sciences\"", + "value": [ + "Forensic biology", + "Global change biology", + "Other biological sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Cardiovascular medicine and haematology\"", + "value": [ + "Cardiology (incl. cardiovascular diseases)", + "Haematology", + "Respiratory diseases", + "Cardiovascular medicine and haematology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Clinical sciences\"", + "value": [ + "Anaesthesiology", + "Clinical chemistry (incl. diagnostics)", + "Clinical microbiology", + "Clinimetrics", + "Dermatology", + "Diagnostic radiography", + "Emergency medicine", + "Endocrinology", + "Gastroenterology and hepatology", + "Geriatrics and gerontology", + "Infectious diseases", + "Intensive care", + "Medical genetics (excl. cancer genetics)", + "Nephrology and urology", + "Nuclear medicine", + "Orthopaedics", + "Otorhinolaryngology", + "Pain", + "Paramedicine", + "Pathology (excl. oral pathology)", + "Psychiatry (incl. psychotherapy)", + "Radiology and organ imaging", + "Rheumatology and arthritis", + "Rural clinical health", + "Sports medicine", + "Surgery", + "Venereology", + "Clinical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Dentistry\"", + "value": [ + "Craniofacial biology", + "Dental materials and equipment", + "Dental therapeutics, pharmacology and toxicology", + "Endodontics", + "Oral and maxillofacial surgery", + "Oral implantology", + "Oral medicine and pathology", + "Orthodontics and dentofacial orthopaedics", + "Paedodontics", + "Periodontics", + "Prosthodontics", + "Special needs dentistry", + "Dentistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Immunology\"", + "value": [ + "Allergy", + "Applied immunology (incl. antibody engineering, xenotransplantation and t-cell therapies)", + "Autoimmunity", + "Cellular immunology", + "Humoural immunology and immunochemistry", + "Immunogenetics (incl. genetic immunology)", + "Innate immunity", + "Transplantation immunology", + "Tumour immunology", + "Immunology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medical biochemistry and metabolomics\"", + "value": [ + "Medical biochemistry - amino acids and metabolites", + "Medical biochemistry - carbohydrates", + "Medical biochemistry - inorganic elements and compounds", + "Medical biochemistry - lipids", + "Medical biochemistry - nucleic acids", + "Medical biochemistry - proteins and peptides (incl. medical proteomics)", + "Metabolic medicine", + "Medical biochemistry and metabolomics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medical biotechnology\"", + "value": [ + "Gene and molecular therapy", + "Medical biotechnology diagnostics (incl. biosensors)", + "Medical molecular engineering of nucleic acids and proteins", + "Nanomedicine", + "Nanotoxicology, health and safety", + "Regenerative medicine (incl. stem cells)", + "Medical biotechnology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medical microbiology\"", + "value": [ + "Medical bacteriology", + "Medical infection agents (incl. prions)", + "Medical mycology", + "Medical parasitology", + "Medical virology", + "Medical microbiology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medical physiology\"", + "value": [ + "Cell physiology", + "Human biophysics", + "Systems physiology", + "Medical physiology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Neurosciences\"", + "value": [ + "Autonomic nervous system", + "Cellular nervous system", + "Central nervous system", + "Computational neuroscience (incl. mathematical neuroscience and theoretical neuroscience)", + "Neurology and neuromuscular diseases", + "Peripheral nervous system", + "Sensory systems", + "Neurosciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Nutrition and dietetics\"", + "value": [ + "Clinical nutrition", + "Food properties (incl. characteristics and health benefits)", + "Nutrigenomics and personalised nutrition", + "Nutritional science", + "Public health nutrition", + "Sport and exercise nutrition", + "Nutrition and dietetics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Oncology and carcinogenesis\"", + "value": [ + "Cancer cell biology", + "Cancer diagnosis", + "Cancer genetics", + "Cancer therapy (excl. chemotherapy and radiation therapy)", + "Chemotherapy", + "Haematological tumours", + "Liquid biopsies", + "Molecular targets", + "Predictive and prognostic markers", + "Radiation therapy", + "Solid tumours", + "Oncology and carcinogenesis not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Ophthalmology and optometry\"", + "value": [ + "Ophthalmology", + "Optical technology", + "Optometry", + "Vision science", + "Ophthalmology and optometry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Paediatrics\"", + "value": [ + "Adolescent health", + "Infant and child health", + "Neonatology", + "Paediatrics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pharmacology and pharmaceutical sciences\"", + "value": [ + "Basic pharmacology", + "Clinical pharmacology and therapeutics", + "Clinical pharmacy and pharmacy practice", + "Pharmaceutical delivery technologies", + "Pharmaceutical sciences", + "Pharmacogenomics", + "Toxicology (incl. clinical toxicology)", + "Pharmacology and pharmaceutical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Reproductive medicine\"", + "value": [ + "Foetal development and medicine", + "Obstetrics and gynaecology", + "Reproduction", + "Reproductive medicine not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other biomedical and clinical sciences\"", + "value": [ + "Other biomedical and clinical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Architecture\"", + "value": [ + "Architectural computing and visualisation methods", + "Architectural design", + "Architectural heritage and conservation", + "Architectural history, theory and criticism", + "Architectural science and technology", + "Architecture for disaster relief", + "Architecture management", + "Interior design", + "Landscape architecture", + "Sustainable architecture", + "Architecture not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Building\"", + "value": [ + "Automation and technology in building and construction", + "Building construction management and project planning", + "Building industry studies", + "Building information modelling and management", + "Building organisational studies", + "Building science, technologies and systems", + "Quantity surveying", + "Building not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Design\"", + "value": [ + "Data visualisation and computational (incl. parametric and generative) design", + "Design anthropology", + "Design for disaster relief", + "Design history, theory and criticism", + "Design management", + "Design practice and methods", + "Ergonomics design", + "Fire safety design", + "Industrial and product design", + "Interaction and experience design", + "Models and simulations of design", + "Service design", + "Social design", + "Sustainable design", + "Textile and fashion design", + "Visual communication design (incl. graphic design)", + "Design not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Urban and regional planning\"", + "value": [ + "Community planning", + "History and theory of the built environment (excl. architecture)", + "Housing markets, development and management", + "Land use and environmental planning", + "Public participation and community engagement", + "Regional analysis and development", + "Regulatory planning and development assessment", + "Strategic, metropolitan and regional planning", + "Transport planning", + "Urban analysis and development", + "Urban design", + "Urban informatics", + "Urban planning and health", + "Urban and regional planning not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other built environment and design\"", + "value": [ + "Other built environment and design not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Analytical chemistry\"", + "value": [ + "Analytical spectrometry", + "Bioassays", + "Electroanalytical chemistry", + "Flow analysis", + "Instrumental methods (excl. immunological and bioassay methods)", + "Metabolomic chemistry", + "Quality assurance, chemometrics, traceability and metrological chemistry", + "Sensor technology (incl. chemical aspects)", + "Separation science", + "Analytical chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Inorganic chemistry\"", + "value": [ + "Bioinorganic chemistry", + "Crystallography", + "F-block chemistry", + "Inorganic green chemistry", + "Main group metal chemistry", + "Metal cluster chemistry", + "Metal organic frameworks", + "Non-metal chemistry", + "Organometallic chemistry", + "Solid state chemistry", + "Transition metal chemistry", + "Inorganic chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Macromolecular and materials chemistry\"", + "value": [ + "Inorganic materials (incl. nanomaterials)", + "Macromolecular materials", + "Nanochemistry", + "Optical properties of materials", + "Physical properties of materials", + "Polymerisation mechanisms", + "Structure and dynamics of materials", + "Supramolecular chemistry", + "Theory and design of materials", + "Macromolecular and materials chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medicinal and biomolecular chemistry\"", + "value": [ + "Biologically active molecules", + "Biomolecular modelling and design", + "Characterisation of biological macromolecules", + "Cheminformatics and quantitative structure-activity relationships", + "Glycoconjugates", + "Molecular medicine", + "Proteins and peptides", + "Medicinal and biomolecular chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Organic chemistry\"", + "value": [ + "Free radical chemistry", + "Natural products and bioactive compounds", + "Organic chemical synthesis", + "Organic green chemistry", + "Physical organic chemistry", + "Organic chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Physical chemistry\"", + "value": [ + "Catalysis and mechanisms of reactions", + "Chemical thermodynamics and energetics", + "Colloid and surface chemistry", + "Electrochemistry", + "Molecular imaging (incl. electron microscopy and neutron diffraction)", + "Photochemistry", + "Reaction kinetics and dynamics", + "Solution chemistry", + "Transport properties and non-equilibrium processes", + "Physical chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Theoretical and computational chemistry\"", + "value": [ + "Computational chemistry", + "Radiation and matter", + "Statistical mechanics in chemistry", + "Theoretical quantum chemistry", + "Theoretical and computational chemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other chemical sciences\"", + "value": [ + "Forensic chemistry", + "Other chemical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other chemical sciences\"", + "value": [ + "Forensic chemistry", + "Other chemical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Accounting, auditing and accountability\"", + "value": [ + "Accounting theory and standards", + "Auditing and accountability", + "Financial accounting", + "International accounting", + "Management accounting", + "Not-for-profit accounting and accountability", + "Sustainability accounting and reporting", + "Taxation accounting", + "Accounting, auditing and accountability not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Banking, finance and investment\"", + "value": [ + "Environment and climate finance", + "Finance", + "Financial econometrics", + "Financial institutions (incl. banking)", + "Household finance and financial literacy", + "Insurance studies", + "International finance", + "Investment and risk management", + "Not-for-profit finance and risk", + "Banking, finance and investment not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Business systems in context\"", + "value": [ + "Business analytics", + "Business information management (incl. records, knowledge and intelligence)", + "Business information systems", + "Business systems in context", + "Forensic intelligence", + "Forensic science and management", + "Technology management", + "Business systems in context not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Commercial services\"", + "value": [ + "Food and hospitality services", + "Hospitality management", + "Real estate and valuation services", + "Retail", + "Sport and leisure management", + "Commercial services not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Human resources and industrial relations\"", + "value": [ + "Business and labour history", + "Employment equity and diversity", + "Human resources management", + "Industrial and employee relations", + "Occupational and workplace health and safety", + "Workforce planning", + "Workplace wellbeing and quality of working life", + "Human resources and industrial relations not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Marketing\"", + "value": [ + "Consumer behaviour", + "Consumer-oriented product or service development", + "Industrial marketing", + "Marketing communications", + "Marketing management (incl. strategy and customer relations)", + "Marketing research methodology", + "Marketing technology", + "Marketing theory", + "Not-for-profit marketing", + "Pricing (incl. consumer value estimation)", + "Service marketing", + "Social marketing", + "Marketing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Strategy, management and organisational behaviour\"", + "value": [ + "Corporate governance", + "Corporate social responsibility", + "Disaster and emergency management", + "Entrepreneurship", + "Innovation management", + "International business", + "Leadership", + "Not-for-profit business and management", + "Organisation and management theory", + "Organisational behaviour", + "Organisational planning and management", + "Production and operations management", + "Project management", + "Public sector organisation and management", + "Quality management", + "Small business organisation and management", + "Stakeholder engagement", + "Strategy", + "Strategy, management and organisational behaviour not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Tourism\"", + "value": [ + "Impacts of tourism", + "Tourism forecasting", + "Tourism management", + "Tourism marketing", + "Tourism resource appraisal", + "Tourist behaviour and visitor experience", + "Tourism not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Transportation, logistics and supply chains\"", + "value": [ + "Air transportation and freight services", + "Intelligent mobility", + "Logistics", + "Maritime transportation and freight services", + "Passenger needs", + "Public transport", + "Rail transportation and freight services", + "Road transportation and freight services", + "Supply chains", + "Transportation, logistics and supply chains not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other commerce, management, tourism and services\"", + "value": [ + "Other commerce, management, tourism and services not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Art history, theory and criticism\"", + "value": [ + "Art criticism", + "Art history", + "Art theory", + "Visual cultures", + "Art history, theory and criticism not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Creative and professional writing\"", + "value": [ + "Creative writing (incl. scriptwriting)", + "Digital writing", + "Professional writing and journalism practice", + "Site-based writing", + "Technical writing", + "Creative and professional writing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Music\"", + "value": [ + "Music cognition", + "Music composition and improvisation", + "Music education", + "Music performance", + "Music technology and recording", + "Musicology and ethnomusicology", + "Music not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Performing arts\"", + "value": [ + "Applied theatre", + "Dance and dance studies", + "Drama, theatre and performance studies", + "Performing arts not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Screen and digital media\"", + "value": [ + "Cinema studies", + "Computer gaming and animation", + "Digital and electronic media art", + "Interactive media", + "Screen media", + "Visual effects", + "Screen and digital media not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Visual arts\"", + "value": [ + "Crafts", + "Fine arts", + "Performance art", + "Photography, video and lens-based practice", + "Visual arts not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other creative arts and writing\"", + "value": [ + "Other creative arts and writing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Climate change science\"", + "value": [ + "Climate change processes", + "Climatology", + "Greenhouse gas inventories and fluxes", + "Climate change science not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Geochemistry\"", + "value": [ + "Exploration geochemistry", + "Inorganic geochemistry", + "Isotope geochemistry", + "Organic geochemistry", + "Geochemistry not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Geoinformatics\"", + "value": [ + "Computational modelling and simulation in earth sciences", + "Earth and space science informatics", + "Geoscience data visualisation", + "Geoinformatics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Geology\"", + "value": [ + "Biomineralisation", + "Geochronology", + "Igneous and metamorphic petrology", + "Marine geoscience", + "Mineralogy and crystallography", + "Palaeontology (incl. palynology)", + "Planetary geology", + "Resource geoscience", + "Sedimentology", + "Stratigraphy (incl. biostratigraphy, sequence stratigraphy and basin analysis)", + "Structural geology and tectonics", + "Volcanology", + "Geology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Geophysics\"", + "value": [ + "Applied geophysics", + "Electrical and electromagnetic methods in geophysics", + "Geodesy", + "Geodynamics", + "Geothermics and radiometrics", + "Gravimetrics", + "Magnetism and palaeomagnetism", + "Petrophysics and rock mechanics", + "Seismology and seismic exploration", + "Geophysics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Hydrology\"", + "value": [ + "Contaminant hydrology", + "Ecohydrology", + "Groundwater hydrology", + "Surface water hydrology", + "Urban hydrology", + "Hydrology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Oceanography\"", + "value": [ + "Biological oceanography", + "Chemical oceanography", + "Physical oceanography", + "Oceanography not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Physical geography and environmental geoscience\"", + "value": [ + "Geomorphology and earth surface processes", + "Glaciology", + "Natural hazards", + "Palaeoclimatology", + "Quaternary environments", + "Regolith and landscape evolution", + "Physical geography and environmental geoscience not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other earth sciences\"", + "value": [ + "Earth system sciences", + "Other earth sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Applied economics\"", + "value": [ + "Agricultural economics", + "Behavioural economics", + "Economic history", + "Economics of education", + "Environment and resource economics", + "Experimental economics", + "Financial economics", + "Health economics", + "Industry economics and industrial organisation", + "International economics", + "Labour economics", + "Macroeconomics (incl. monetary and fiscal theory)", + "Public economics - public choice", + "Public economics - publicly provided goods", + "Public economics - taxation and revenue", + "Tourism economics", + "Transport economics", + "Urban and regional economics", + "Welfare economics", + "Applied economics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Econometrics\"", + "value": [ + "Cross-sectional analysis", + "Econometric and statistical methods", + "Economic models and forecasting", + "Panel data analysis", + "Time-series analysis", + "Econometrics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Economic theory\"", + "value": [ + "History of economic thought", + "Macroeconomic theory", + "Mathematical economics", + "Microeconomic theory", + "Economic theory not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other economics\"", + "value": [ + "Comparative economic systems", + "Ecological economics", + "Heterodox economics", + "Other economics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Curriculum and pedagogy\"", + "value": [ + "Creative arts, media and communication curriculum and pedagogy", + "Curriculum and pedagogy theory and development", + "Economics, business and management curriculum and pedagogy", + "English and literacy curriculum and pedagogy (excl. LOTE, ESL and TESOL)", + "Environmental education curriculum and pedagogy", + "Geography education curriculum and pedagogy", + "Humanities and social sciences curriculum and pedagogy (excl. economics, business and management)", + "LOTE, ESL and TESOL curriculum and pedagogy", + "Mathematics and numeracy curriculum and pedagogy", + "Medicine, nursing and health curriculum and pedagogy", + "Physical education and development curriculum and pedagogy", + "Religion curriculum and pedagogy", + "Science, technology and engineering curriculum and pedagogy", + "Vocational education and training curriculum and pedagogy", + "Work integrated learning (incl. internships)", + "Curriculum and pedagogy not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Education policy, sociology and philosophy\"", + "value": [ + "Education policy", + "History and philosophy of education", + "Sociology of education", + "Education policy, sociology and philosophy not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Education systems\"", + "value": [ + "Continuing and community education", + "Early childhood education", + "Higher education", + "Primary education", + "Professional education and training", + "Secondary education", + "Teacher education and professional development of educators", + "Technical, further and workplace education", + "Education systems not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Specialist studies in education\"", + "value": [ + "Comparative and cross-cultural education", + "Education assessment and evaluation", + "Educational administration, management and leadership", + "Educational counselling", + "Educational technology and computing", + "Gender, sexuality and education", + "Inclusive education", + "Learning analytics", + "Learning sciences", + "Multicultural education (excl. Aboriginal and Torres Strait Islander, Māori and Pacific Peoples)", + "Special education and disability", + "Teacher and student wellbeing", + "Specialist studies in education not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other Education\"", + "value": [ + "Other education not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aerospace engineering\"", + "value": [ + "Aerospace materials", + "Aerospace structures", + "Aircraft performance and flight control systems", + "Avionics", + "Flight dynamics", + "Hypersonic propulsion and hypersonic aerothermodynamics", + "Satellite, space vehicle and missile design and testing", + "Aerospace engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Automotive engineering\"", + "value": [ + "Automotive combustion and fuel engineering", + "Automotive engineering materials", + "Automotive mechatronics and autonomous systems", + "Automotive safety engineering", + "Hybrid and electric vehicles and powertrains", + "Automotive engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Biomedical engineering\"", + "value": [ + "Biofabrication", + "Biomaterials", + "Biomechanical engineering", + "Biomedical imaging", + "Biomedical instrumentation", + "Computational physiology", + "Mechanobiology", + "Medical devices", + "Neural engineering", + "Rehabilitation engineering", + "Tissue engineering", + "Biomedical engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Chemical engineering\"", + "value": [ + "Carbon capture engineering (excl. sequestration)", + "Chemical and thermal processes in energy and combustion", + "Chemical engineering design", + "Electrochemical energy storage and conversion", + "Food engineering", + "Powder and particle technology", + "Process control and simulation", + "Reaction engineering (excl. nuclear reactions)", + "Separation technologies", + "Wastewater treatment processes", + "Water treatment processes", + "Chemical engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Civil engineering\"", + "value": [ + "Architectural engineering", + "Civil geotechnical engineering", + "Complex civil systems", + "Construction engineering", + "Construction materials", + "Earthquake engineering", + "Fire safety engineering", + "Infrastructure engineering and asset management", + "Structural dynamics", + "Structural engineering", + "Timber engineering", + "Transport engineering", + "Water resources engineering", + "Civil engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Communications engineering\"", + "value": [ + "Antennas and propagation", + "Data communications", + "Molecular, biological, and multi-scale communications", + "Network engineering", + "Optical fibre communication systems and technologies", + "Satellite communications", + "Signal processing", + "Wireless communication systems and technologies (incl. microwave and millimetrewave)", + "Communications engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Control engineering, mechatronics and robotics\"", + "value": [ + "Assistive robots and technology", + "Automation engineering", + "Autonomous vehicle systems", + "Biomechatronics", + "Control engineering", + "Field robotics", + "Manufacturing robotics", + "Mechatronics hardware design and architecture", + "Medical robotics", + "Micro-manipulation", + "Simulation, modelling, and programming of mechatronics systems", + "Control engineering, mechatronics and robotics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Electrical engineering\"", + "value": [ + "Circuits and systems", + "Electrical circuits and systems", + "Electrical energy generation (incl. renewables, excl. photovoltaics)", + "Electrical energy storage", + "Electrical energy transmission, networks and systems", + "Electrical machines and drives", + "Engineering electromagnetics", + "Photovoltaic power systems", + "Electrical engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Electronics, sensors and digital hardware\"", + "value": [ + "Analog electronics and interfaces", + "Digital electronic devices", + "Digital processor architectures", + "Electronic device and system performance evaluation, testing and simulation", + "Electronic instrumentation", + "Electronic sensors", + "Industrial electronics", + "Microelectronics", + "Photonic and electro-optical devices, sensors and systems (excl. communications)", + "Photovoltaic devices (solar cells)", + "Power electronics", + "Quantum engineering systems (incl. computing and communications)", + "Radio frequency engineering", + "Electronics, sensors and digital hardware not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Engineering practice and education\"", + "value": [ + "Engineering design", + "Engineering education", + "Engineering practice", + "Humanitarian engineering", + "Risk engineering", + "Systems engineering", + "Engineering practice and education not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Environmental engineering\"", + "value": [ + "Air pollution modelling and control", + "Environmentally sustainable engineering", + "Global and planetary environmental engineering", + "Health and ecological risk assessment", + "Life cycle assessment and industrial ecology", + "Waste management, reduction, reuse and recycling", + "Environmental engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Fluid mechanics and thermal engineering\"", + "value": [ + "Aerodynamics (excl. hypersonic aerodynamics)", + "Bio-fluids", + "Biomedical fluid mechanics", + "Computational methods in fluid flow, heat and mass transfer (incl. computational fluid dynamics)", + "Experimental methods in fluid flow, heat and mass transfer", + "Fluid-structure interaction and aeroacoustics", + "Fundamental and theoretical fluid dynamics", + "Geophysical and environmental fluid flows", + "Hydrodynamics and hydraulic engineering", + "Microfluidics and nanofluidics", + "Multiphysics flows (incl. multiphase and reacting flows)", + "Non-Newtonian fluid flows (incl. rheology)", + "Turbulent flows", + "Fluid mechanics and thermal engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Geomatic engineering\"", + "value": [ + "Cartography and digital mapping", + "Geospatial information systems and geospatial data modelling", + "Navigation and position fixing", + "Photogrammetry and remote sensing", + "Satellite-based positioning", + "Surveying (incl. hydrographic surveying)", + "Geomatic engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Manufacturing engineering\"", + "value": [ + "Additive manufacturing", + "CAD/CAM systems", + "Flexible manufacturing systems", + "Industrial engineering", + "Machine tools", + "Machining", + "Manufacturing management", + "Manufacturing processes and technologies (excl. textiles)", + "Manufacturing safety and quality", + "Microtechnology", + "Packaging, storage and transportation (excl. food and agricultural products)", + "Precision engineering", + "Textile technology", + "Manufacturing engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Maritime engineering\"", + "value": [ + "Marine engineering", + "Naval architecture", + "Ocean engineering", + "Ship and platform structures (incl. maritime hydrodynamics)", + "Special vehicles", + "Maritime engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Materials engineering\"", + "value": [ + "Ceramics", + "Composite and hybrid materials", + "Compound semiconductors", + "Elemental semiconductors", + "Functional materials", + "Glass", + "Metals and alloy materials", + "Organic semiconductors", + "Polymers and plastics", + "Timber, pulp and paper", + "Wearable materials", + "Materials engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Mechanical engineering\"", + "value": [ + "Acoustics and noise control (excl. architectural acoustics)", + "Dynamics, vibration and vibration control", + "Energy generation, conversion and storage (excl. chemical and electrical)", + "Mechanical engineering asset management", + "Microelectromechanical systems (MEMS)", + "Numerical modelling and mechanical characterisation", + "Solid mechanics", + "Tribology", + "Mechanical engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Nanotechnology\"", + "value": [ + "Micro- and nanosystems", + "Molecular and organic electronics", + "Nanoelectromechanical systems", + "Nanoelectronics", + "Nanofabrication, growth and self assembly", + "Nanomanufacturing", + "Nanomaterials", + "Nanometrology", + "Nanophotonics", + "Nanoscale characterisation", + "Nanotechnology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Resources engineering and extractive metallurgy\"", + "value": [ + "Electrometallurgy", + "Geomechanics and resources geotechnical engineering", + "Hydrometallurgy", + "Mineral processing/beneficiation", + "Mining engineering", + "Nuclear engineering (incl. fuel enrichment and waste processing and storage)", + "Petroleum and reservoir engineering", + "Pyrometallurgy", + "Resources engineering and extractive metallurgy not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other engineering\"", + "value": [ + "Agricultural engineering", + "Engineering instrumentation", + "Granular mechanics", + "Other engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Climate change impacts and adaptation\"", + "value": [ + "Carbon sequestration science", + "Ecological impacts of climate change and ecological adaptation", + "Human impacts of climate change and human adaptation", + "Climate change impacts and adaptation not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Ecological applications\"", + "value": [ + "Bioavailability and ecotoxicology", + "Biosecurity science and invasive species ecology", + "Ecosystem function", + "Ecosystem services (incl. pollination)", + "Fire ecology", + "Landscape ecology", + "Ecological applications not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Environmental biotechnology\"", + "value": [ + "Biodiscovery", + "Biological control", + "Bioremediation", + "Environmental biotechnology diagnostics (incl. biosensors)", + "Environmental marine biotechnology", + "Environmental nanotechnology and nanometrology", + "Environmental biotechnology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Environmental management\"", + "value": [ + "Conservation and biodiversity", + "Environmental assessment and monitoring", + "Environmental education and extension", + "Environmental management", + "Environmental rehabilitation and restoration", + "Natural resource management", + "Wildlife and habitat management", + "Environmental management not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pollution and contamination\"", + "value": [ + "Environmental biogeochemistry", + "Noise and wave pollution processes and measurement", + "Groundwater quality processes and contaminated land assessment", + "Surface water quality processes and contaminated sediment assessment", + "Pollution and contamination not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Soil sciences\"", + "value": [ + "Land capability and soil productivity", + "Pedology and pedometrics", + "Soil biology", + "Soil chemistry and soil carbon sequestration (excl. carbon sequestration science)", + "Soil physics", + "Soil sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other environmental sciences\"", + "value": [ + "Other environmental sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Allied health and rehabilitation science\"", + "value": [ + "Arts therapy", + "Audiology", + "Music therapy", + "Occupational therapy", + "Orthoptics", + "Physiotherapy", + "Podiatry", + "Prosthetics and orthotics", + "Rehabilitation", + "Speech pathology", + "Allied health and rehabilitation science not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Epidemiology\"", + "value": [ + "Behavioural epidemiology", + "Disease surveillance", + "Environmental epidemiology", + "Epidemiological methods", + "Epidemiological modelling", + "Forensic epidemiology", + "Major global burdens of disease", + "Nutritional epidemiology", + "Occupational epidemiology", + "Social epidemiology", + "Epidemiology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Health services and systems\"", + "value": [ + "Aged health care", + "Digital health", + "Family care", + "General practice", + "Health and community services", + "Health care administration", + "Health counselling", + "Health informatics and information systems", + "Health management", + "Health surveillance", + "Health systems", + "Implementation science and evaluation", + "Mental health services", + "Multimorbidity", + "One health", + "Palliative care", + "Patient safety", + "People with disability", + "Primary health care", + "Residential client care", + "Rural and remote health services", + "Health services and systems not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Midwifery\"", + "value": [ + "Clinical midwifery", + "Models of care and place of birth", + "Psychosocial aspects of childbirth and perinatal mental health", + "Midwifery not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Nursing\"", + "value": [ + "Acute care", + "Aged care nursing", + "Community and primary care", + "Mental health nursing", + "Nursing workforce", + "Sub-acute care", + "Nursing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Public health\"", + "value": [ + "Community child health", + "Health equity", + "Health promotion", + "Injury prevention", + "Preventative health care", + "Social determinants of health", + "Public health not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Sports science and exercise\"", + "value": [ + "Biomechanics", + "Exercise physiology", + "Motor control", + "Sports science and exercise not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Traditional, complementary and integrative medicine\"", + "value": [ + "Chiropractic", + "Naturopathy", + "Traditional Chinese medicine and treatments", + "Traditional, complementary and integrative medicine not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other health sciences\"", + "value": [ + "Other health sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Archaeology\"", + "value": [ + "Archaeological science", + "Archaeology of Asia, Africa and the Americas", + "Archaeology of Australia (excl. Aboriginal and Torres Strait Islander)", + "Archaeology of Europe, the Mediterranean and the Levant", + "Archaeology of New Zealand (excl. Māori)", + "Digital archaeology", + "Historical archaeology (incl. industrial archaeology)", + "Maritime archaeology", + "Archaeology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Heritage, archive and museum studies\"", + "value": [ + "Archival, repository and related studies", + "Critical heritage, museum and archive studies", + "Cultural heritage management (incl. world heritage)", + "Digital heritage", + "Heritage and cultural conservation", + "Heritage collections and interpretations", + "Heritage tourism, visitor and audience studies", + "Intangible heritage", + "Materials conservation", + "Heritage, archive and museum studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Historical studies\"", + "value": [ + "Asian history", + "Australian history", + "Biography", + "British history", + "Classical Greek and Roman history", + "Digital history", + "Environmental history", + "European history (excl. British, classical Greek and Roman)", + "Gender history", + "Global and world history", + "Historical studies of crime", + "Histories of race", + "History of empires, imperialism and colonialism", + "History of religion", + "History of the pacific", + "International history", + "Latin and South American history", + "Middle Eastern and North African history", + "Migration history", + "New Zealand history", + "North American history", + "Sub-Saharan African history", + "Transnational history", + "Historical studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other history, heritage and archaeology\"", + "value": [ + "Other history, heritage and archaeology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Anthropology\"", + "value": [ + "Anthropology of development", + "Anthropology of gender and sexuality", + "Biological (physical) anthropology", + "Environmental anthropology", + "Linguistic anthropology", + "Medical anthropology", + "Social and cultural anthropology", + "Anthropology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Criminology\"", + "value": [ + "Causes and prevention of crime", + "Correctional theory, offender treatment and rehabilitation", + "Courts and sentencing", + "Crime and social justice", + "Criminological theories", + "Critical approaches to crime", + "Cybercrime", + "Environmental crime", + "Gender and crime", + "Organised crime", + "Police administration, procedures and practice", + "Private policing and security services", + "Race/ethnicity and crime", + "Sociological studies of crime", + "State crime", + "Technology, crime and surveillance", + "Terrorism", + "Victims", + "White collar crime", + "Criminology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Demography\"", + "value": [ + "Family and household studies", + "Fertility", + "Migration", + "Mortality", + "Population trends and policies", + "Demography not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Development studies\"", + "value": [ + "Development cooperation", + "Humanitarian disasters, conflict and peacebuilding", + "Labour, migration and development", + "Political economy and social change", + "Poverty, inclusivity and wellbeing", + "Rural community development", + "Socio-economic development", + "Urban community development", + "Development studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Gender studies\"", + "value": [ + "Feminist and queer theory", + "Feminist methodologies", + "Feminist theory", + "Gender relations", + "Intersectional studies", + "Sexualities", + "Studies of men and masculinities", + "Transgender studies", + "Women's studies (incl. girls' studies)", + "Gender studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Human geography\"", + "value": [ + "Cultural geography", + "Development geography", + "Economic geography", + "Environmental geography", + "Health geography", + "Political geography", + "Population geography", + "Recreation, leisure and tourism geography", + "Rural and regional geography", + "Social geography", + "Transport geography", + "Urban geography", + "Human geography not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Policy and administration\"", + "value": [ + "Communications and media policy", + "Crime policy", + "Economic development policy", + "Environment policy", + "Gender, policy and administration", + "Health policy", + "Housing policy", + "Public administration", + "Public policy", + "Research, science and technology policy", + "Risk policy", + "Social policy", + "Tourism policy", + "Urban policy", + "Policy and administration not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Political science\"", + "value": [ + "Australian government and politics", + "Citizenship", + "Comparative government and politics", + "Defence studies", + "Environmental politics", + "Gender and politics", + "Government and politics of Asia and the Pacific", + "International relations", + "New Zealand government and politics", + "Peace studies", + "Political theory and political philosophy", + "Political science not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Social work\"", + "value": [ + "Clinical social work practice", + "Counselling, wellbeing and community services", + "Social program evaluation", + "Social work not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Sociology\"", + "value": [ + "Applied sociology, program evaluation and social impact assessment", + "Environmental sociology", + "Rural sociology", + "Social change", + "Social theory", + "Sociological methodology and research methods", + "Sociology and social studies of science and technology", + "Sociology of culture", + "Sociology of family and relationships", + "Sociology of gender", + "Sociology of health", + "Sociology of inequalities", + "Sociology of migration, ethnicity and multiculturalism", + "Sociology of religion", + "Sociology of the life course", + "Urban sociology and community studies", + "Sociology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other human society\"", + "value": [ + "Studies of Asian society", + "Other human society not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander culture, language and history\"", + "value": [ + "Aboriginal and Torres Strait Islander archaeology", + "Aboriginal and Torres Strait Islander artefacts", + "Aboriginal and Torres Strait Islander cultural history", + "Aboriginal and Torres Strait Islander culture", + "Aboriginal and Torres Strait Islander curatorial, archives and museum studies", + "Aboriginal and Torres Strait Islander ethics", + "Aboriginal and Torres Strait Islander history", + "Aboriginal and Torres Strait Islander linguistics and languages", + "Aboriginal and Torres Strait Islander literature, journalism and professional writing", + "Aboriginal and Torres Strait Islander media, film, animation and photography", + "Aboriginal and Torres Strait Islander music and performing arts", + "Aboriginal and Torres Strait Islander philosophy", + "Aboriginal and Torres Strait Islander religion and religious studies", + "Aboriginal and Torres Strait Islander repatriation", + "Aboriginal and Torres Strait Islander research methods", + "Aboriginal and Torres Strait Islander visual arts and crafts", + "Aboriginal and Torres Strait Islander ways of knowing, being and doing", + "Conservation of Aboriginal and Torres Strait Islander heritage", + "Aboriginal and Torres Strait Islander culture, language and history not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander education\"", + "value": [ + "Aboriginal and Torres Strait Islander curriculum and pedagogy", + "Aboriginal and Torres Strait Islander early childhood education", + "Aboriginal and Torres Strait Islander educational methods", + "Aboriginal and Torres Strait Islander technical, further, continuing and community education", + "Aboriginal and Torres Strait Islander higher education", + "Aboriginal and Torres Strait Islander language education", + "Aboriginal and Torres Strait Islander men’s education", + "Aboriginal and Torres Strait Islander primary education", + "Aboriginal and Torres Strait Islander secondary education", + "Aboriginal and Torres Strait Islander student engagement and teaching", + "Aboriginal and Torres Strait Islander women’s education", + "Cultural responsiveness and working with Aboriginal and Torres Strait Islander communities education", + "Embedding Aboriginal and Torres Strait Islander knowledges, histories, culture, country, perspectives and ethics in education", + "Aboriginal and Torres Strait Islander education not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander environmental knowledges and management\"", + "value": [ + "Aboriginal and Torres Strait Islander agriculture and forestry", + "Aboriginal and Torres Strait Islander earth sciences", + "Aboriginal and Torres Strait Islander environmental conservation", + "Aboriginal and Torres Strait Islander environmental knowledges", + "Aboriginal and Torres Strait Islander fisheries and customary fisheries", + "Aboriginal and Torres Strait Islander land and water management", + "Aboriginal and Torres Strait Islander marine environment science", + "Aboriginal and Torres Strait Islander environmental knowledges and management not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander health and wellbeing\"", + "value": [ + "Aboriginal and Torres Strait Islander and disability", + "Aboriginal and Torres Strait Islander biomedical and clinical sciences", + "Aboriginal and Torres Strait Islander child health and wellbeing", + "Aboriginal and Torres Strait Islander cultural determinants of health", + "Aboriginal and Torres Strait Islander diet and nutrition", + "Aboriginal and Torres Strait Islander epidemiology", + "Aboriginal and Torres Strait Islander health policy", + "Aboriginal and Torres Strait Islander health promotion", + "Aboriginal and Torres Strait Islander health services", + "Aboriginal and Torres Strait Islander lifecourse", + "Aboriginal and Torres Strait Islander medicine and treatments", + "Aboriginal and Torres Strait Islander men’s health and wellbeing", + "Aboriginal and Torres Strait Islander midwifery and paediatrics", + "Aboriginal and Torres Strait Islander mothers and babies health and wellbeing", + "Aboriginal and Torres Strait Islander nursing", + "Aboriginal and Torres Strait Islander psychology", + "Aboriginal and Torres Strait Islander public health and wellbeing", + "Aboriginal and Torres Strait Islander remote health", + "Aboriginal and Torres Strait Islander social determinants of health", + "Aboriginal and Torres Strait Islander social, emotional, cultural and spiritual wellbeing", + "Aboriginal and Torres Strait Islander sport and physical activity", + "Aboriginal and Torres Strait Islander theory of change models for health", + "Aboriginal and Torres Strait Islander youth and family social and emotional wellbeing", + "Aboriginal and Torres Strait Islander health and wellbeing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander peoples, society and community\"", + "value": [ + "Aboriginal and Torres Strait Islander accounting", + "Aboriginal and Torres Strait Islander anthropology", + "Aboriginal and Torres Strait Islander architecture", + "Aboriginal and Torres Strait Islander commerce", + "Aboriginal and Torres Strait Islander community and regional development", + "Aboriginal and Torres Strait Islander community governance and decision making", + "Aboriginal and Torres Strait Islander community-based research", + "Aboriginal and Torres Strait Islander criminology", + "Aboriginal and Torres Strait Islander customary law", + "Aboriginal and Torres Strait Islander design practice and management", + "Aboriginal and Torres Strait Islander economics", + "Aboriginal and Torres Strait Islander finance", + "Aboriginal and Torres Strait Islander human geography and demography", + "Aboriginal and Torres Strait Islander legislation", + "Aboriginal and Torres Strait Islander management", + "Aboriginal and Torres Strait Islander marketing", + "Aboriginal and Torres Strait Islander not-for-profit social enterprises", + "Aboriginal and Torres Strait Islander peoples and the law", + "Aboriginal and Torres Strait Islander perspectives", + "Aboriginal and Torres Strait Islander political participation and representation", + "Aboriginal and Torres Strait Islander politics", + "Aboriginal and Torres Strait Islander social impact and program evaluation", + "Aboriginal and Torres Strait Islander social work and social justice", + "Aboriginal and Torres Strait Islander sociological studies", + "Aboriginal and Torres Strait Islander sociology", + "Aboriginal and Torres Strait Islander tourism", + "Aboriginal and Torres Strait Islander urban and regional planning", + "Aboriginal and Torres Strait Islander peoples, society and community not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Aboriginal and Torres Strait Islander sciences\"", + "value": [ + "Aboriginal and Torres Strait Islander astronomy and cosmology", + "Aboriginal and Torres Strait Islander biological sciences", + "Aboriginal and Torres Strait Islander computing technology use and design", + "Aboriginal and Torres Strait Islander engineering", + "Aboriginal and Torres Strait Islander genomics", + "Aboriginal and Torres Strait Islander information and knowledge management systems", + "Aboriginal and Torres Strait Islander innovation", + "Aboriginal and Torres Strait Islander knowledge management methods", + "Aboriginal and Torres Strait Islander mathematical, physical and chemical sciences (excl. astronomy and cosmology)", + "Aboriginal and Torres Strait Islander sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Te ahurea, reo me te hītori o te Māori (Māori culture, language and history)\"", + "value": [ + "Te whāomoomo i te tuku ihotanga Māori (conservation of Māori heritage)", + "Te mana wahine (female status)", + "Te mana tāne (male status)", + "Te mātai whaipara Māori (Māori archaeology)", + "Ngā taonga Māori nō mua (Māori artefacts)", + "Te hītori ahurea Māori (Māori cultural history)", + "Te ahurea Māori (Māori culture)", + "Ngā mātai kaitiaki, pūranga me ngā whare tongarewa o te Māori (Māori curatorial, archives and museum studies)", + "Ngā matatika o te Māori (Māori ethics)", + "Te hītori Māori (Māori history)", + "Te whenua, ahurea me te tuakiri o te Māori (Māori land, culture and identity)", + "Te mātai i te reo Māori me te reo Māori (Māori linguistics and languages)", + "Te mātākōrero, te kawe kōrero me te tuhituhi ngaio o te Māori (Māori literature, journalism and professional writing)", + "Ngā arapāho, ngā kiriata, te hākoritanga me te hopu whakaahua o te Māori (Māori media, film, animation and photography)", + "Te puoro me ngā mahi a te rēhia o te Māori (Māori music and performing arts)", + "Te rapunga whakaaro o te Māori (Māori philosophy)", + "Ngā Kaupapa Māori (Māori projects)", + "Te whakapono me te mātai whakapono o te Māori (Māori religion and religious studies)", + "Te whakahoki taonga a te Māori ki te kāinga (Māori repatriation)", + "Ngā tikanga rangahau o te Māori (Māori research methods)", + "Ngā toi ataata ngā mahi ā-rehe o te Māori (Māori visual arts and crafts)", + "Te ahurea, reo, me te hītori o te Māori kāore anō kia whakarōpūtia i wāhi kē (Māori culture, language and history not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Mātauranga Māori (Māori education)\"", + "value": [ + "Ngā kōhanga reo (Māori curriculum and pedagogy)", + "Te Whāriki - te mātauranga kōhungahunga Māori (Māori early childhood education)", + "Ngā tikanga mātauranga o te Māori (Māori educational methods)", + "Te mātauranga kura tuatoru Māori (Māori higher education)", + "Te mātauranga reo Māori (Māori language education)", + "Ngā kura kaupapa Māori (Māori primary education)", + "Te urupare me te whai wāhi Māori ki te mātauranga (Māori responsiveness and engaged education)", + "Te mātauranga kura tuarua Māori (Māori secondary education)", + "Te whai wāhi ākonga me ngā mahi whakaako o te Māori (Māori student engagement and teaching)", + "Tō te Māori mātauranga hangarau, mātauranga atu anō, mātauranga haere tonu, me te mātauranga hapori (Māori technical, further, continuing and community education)", + "Te mātauranga Māori i roto i te mātauranga (Mātauranga Māori in education)", + "Te mātauranga Māori kāore anō kia whakarōpūtia i wāhi kē (Māori education not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Ngā mātauranga taiao o te Māori (Māori environmental knowledges)\"", + "value": [ + "Te ahuwhenua me ngā mahi ngahere o te Māori (Māori agriculture and forestry)", + "Ngā pūtaiao-ā-nuku o te Māori (Māori earth sciences)", + "Te whāomoomo taiao o te Māori (Māori environmental conservation)", + "Ngā mātauranga taiao o te Māori (Māori environmental knowledges)", + "Te ahumoana me te ahumoana tuku iho o te Māori (Māori fisheries and customary fisheries)", + "Te whakahaere whenua me te wai o te Māori (Māori land and water management)", + "Te pūtaiao taiao moana o te Māori (Māori marine environment science)", + "Ngā mātauranga taiao o te Māori kāore anō kia whakarōpūtia i wāhi kē (Māori environmental knowledges not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Te hauora me te oranga o te Māori (Māori health and wellbeing)\"", + "value": [ + "Te whaikaha me te Māori (Māori and disability)", + "Ngā pūtaiao koiora-hauora, haumanu hoki o te Māori (Māori biomedical and clinical sciences)", + "Ngā tokoingoa ahurea o te hauora o te Māori (Māori cultural determinants of health)", + "Te horakai me ngā kai o te Māori (Māori diet and nutrition)", + "Te mātai tahumaero o te Māori (Māori epidemiology)", + "Ngā kaupapahere hauora o te Māori (Māori health policy)", + "Te whakatairanga hauora o te Māori (Māori health promotion)", + "Ngā wāhanga ora o te Māori (Māori life course)", + "Ngā rongoā me ngā whakamaimoa o te Māori (Māori medicine and treatments)", + "Ngā kaiwhakawhānau me te mātai mate tamariki o te Māori (Māori midwifery and paediatrics)", + "Te hauora me te oranga ā-whaea, ā-pēpi o te Māori (Māori mothers and babies health and wellbeing)", + "Te mahi tapuhi o te Māori (Māori nursing)", + "Mātauranga hinengaro kaupapa Māori (Māori psychology)", + "Ngā pūnaha mātauranga hinengaro o te Māori (Māori psychology knowledge systems)", + "Te hauora me te oranga tūmatanui o te Māori (Māori public health and wellbeing)", + "Te hauora mamao o te Māori (Māori remote health)", + "Te oranga ā-pāpori, ā-hinengaro, ā-ahurea, ā-wairua o te Māori (Māori social, cultural, emotional and spiritual wellbeing)", + "Ngā tokoingoa pāpori o te hauora o te Māori (Māori social determinants of health)", + "Ngā hākinakina me te korikori tinana o te Māori (Māori sport and physical activity)", + "Te ariā o ngā tauira panoni hauora o te Māori (Māori theory of change models for health)", + "Ngā taiohi me ngā whānau Māori (Māori youth and family)", + "Te hauora me te oranga o te Māori kāore anō kia whakarōpūhia i wāhi kē (Māori health and wellbeing not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Ngā tāngata, te porihanga me ngā hapori o te Māori (Māori peoples, society and community)\"", + "value": [ + "Te mahi kaute o te Māori (Māori accounting)", + "Te mātauranga tikanga Māori (Māori anthropology)", + "Te hoahoanga whare o te Māori (Māori architecture)", + "Ngā mahi tauhokohoko o te Māori (Māori commerce)", + "Te whanaketanga ā-hapori, ā-rohe o te Māori (Māori community and regional development)", + "Te rangahau kei rō hapori o te Māori (Māori community-based research)", + "Te kāwana ā-hapori, whakatau take hoki o te Māori (Māori community governance and decision making)", + "Te mātauranga taihara Māori (Māori criminology)", + "Ngā tikanga Māori (Māori customary law)", + "Te whakaharatau me te whakahaere hoahoa o te Māori (Māori design practice and management)", + "Te mātauranga ōhanga o te Māori (Māori economics)", + "Te ahumoni Māori (Māori finance)", + "Te mātauranga matawhenua ā-iwi me te tatauranga ā-iwi o te Māori (Māori human geography and demography)", + "Te ture Whenua (Māori land law)", + "Te ture me te tika Māori (Māori law and justice)", + "Ngā ture Māori (Māori legislation)", + "Te whakahaere o te Māori (Māori management)", + "Te whakamākete o te Māori (Māori marketing)", + "Ngā hinonga pāpori kaupapa atawhai o te Māori (Māori not-for-profit social enterprises)", + "Ngā iwi Māori me te ture (Māori peoples and the law)", + "Ngā tirohanga Māori (Māori perspectives)", + "Te whai wāhi me te whakakanohi taha tōrāngapū o te Māori (Māori political participation and representation)", + "Ngā mahi tōrangapū Māori (Māori politics)", + "Ngā ture rawa Māori (Māori resource law)", + "Te pāpātanga pāpori me te aromātai hōtaka o te Māori (Māori social impact and program evaluation)", + "Ngā mahi tauwhiro me te tika pāpori o te Māori (Māori social work and social justice)", + "Ngā mātai tikanga ā-iwi o te Māori (Māori sociological studies)", + "Te mātauranga pāpori o te Māori (Māori sociology)", + "Te mahi tāpoi Māori (Māori tourism)", + "Te Tiriti o Waitangi (The Treaty of Waitangi)", + "Te whakamahere ā-tāone, ā-rohe o te Māori (Māori urban and regional planning)", + "Ngā tāngata, te porihanga me ngā hapori o te Māori kāore anō kia whakarōpūtia i wāhi kē (Māori peoples, society and community not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Ngā pūtaiao Māori (Māori sciences)\"", + "value": [ + "Te mātai arorangi me te mātai tuarangi o te Māori (Māori astronomy and cosmology)", + "Ngā pūtaiao koiora o te Māori (Māori biological sciences)", + "Te whakamahi me te hoahoa o te hangarau rorohiko o te Māori (Māori computing technology use and design)", + "Te mana motuhake o ngā raraunga Māori (Māori data sovereignty)", + "Te mātauranga pūkaha o te Māori (Māori engineering)", + "Te mātai huingaira o te Māori (Māori genomics)", + "Ngā pūnaha whakahaere mōhiohio me te mātauranga o te Māori (Māori information and knowledge management systems)", + "Te wairua auaha o te Māori (Māori innovation)", + "Ngā tikanga whakahaere mōhiotanga Māori (Māori knowledge management methods)", + "Ngā pūtaiao pāngarau, ōkiko, matū hoki - hāunga te mātai arorangi me te mātai tuarangi o te Māori (Māori mathematical, physical and chemical sciences - excl. astronomy and cosmology)", + "Te tukatuka reo noa o te Māori (Māori natural language processing)", + "Ngā pūtaiao Māori kāore anō kia whakarōpūhia i wāhi kē (Māori sciences not elsewhere classified)" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples culture, language and history\"", + "value": [ + "Archaeology of New Guinea and Pacific Islands (excl. New Zealand)", + "Conservation of Pacific Peoples heritage", + "Pacific Peoples artefacts", + "Pacific Peoples cultural history", + "Pacific Peoples culture", + "Pacific Peoples curatorial, archives and museum studies", + "Pacific Peoples ethics", + "Pacific Peoples history", + "Pacific Peoples land, culture and identity", + "Pacific Peoples linguistics and languages", + "Pacific Peoples literature, journalism and professional writing", + "Pacific Peoples media, film, animation and photography", + "Pacific Peoples music and performing arts", + "Pacific Peoples philosophy", + "Pacific Peoples religion and religious studies", + "Pacific Peoples repatriation", + "Pacific Peoples research methods", + "Pacific Peoples visual arts and crafts", + "Pacific Peoples ways of knowing, being and doing", + "Pacific Peoples culture, language and history not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples education\"", + "value": [ + "Cultural responsiveness and working with Pacific Peoples communities education", + "Embedding Pacific Peoples knowledges, histories, culture, country, perspectives and ethics in education", + "Pacific Peoples curriculum and pedagogy", + "Pacific Peoples early childhood education", + "Pacific Peoples educational methods", + "Pacific Peoples technical, further, continuing and community education", + "Pacific Peoples higher education", + "Pacific Peoples language education", + "Pacific Peoples men’s education", + "Pacific Peoples primary education", + "Pacific Peoples secondary education", + "Pacific Peoples student engagement and teaching", + "Pacific Peoples women’s education", + "Pacific Peoples education not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples environmental knowledges\"", + "value": [ + "Pacific Peoples agriculture and forestry", + "Pacific Peoples earth sciences", + "Pacific Peoples environmental conservation", + "Pacific Peoples environmental knowledges", + "Pacific Peoples fisheries and customary fisheries", + "Pacific Peoples land and water management", + "Pacific Peoples marine environment science", + "Pacific Peoples environmental knowledges not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples health and wellbeing\"", + "value": [ + "Pacific Peoples and disability", + "Pacific Peoples biomedical and clinical science", + "Pacific Peoples cultural determinants of health", + "Pacific Peoples diet and nutrition", + "Pacific Peoples epidemiology", + "Pacific Peoples health policy", + "Pacific Peoples health promotion", + "Pacific Peoples life course", + "Pacific Peoples medicine and treatments", + "Pacific Peoples midwifery and paediatrics", + "Pacific Peoples mothers and babies health and wellbeing", + "Pacific Peoples nursing", + "Pacific Peoples psychology", + "Pacific Peoples public health and wellbeing", + "Pacific Peoples remote health", + "Pacific Peoples social determinants of health", + "Pacific Peoples social, cultural, emotional and spiritual wellbeing", + "Pacific Peoples sport and physical activity", + "Pacific Peoples theory of change models for health", + "Pacific Peoples youth and family", + "Pacific Peoples health and wellbeing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples sciences\"", + "value": [ + "Pacific Peoples astronomy and cosmology", + "Pacific Peoples biological sciences", + "Pacific Peoples computing technology use and design", + "Pacific Peoples engineering", + "Pacific Peoples genomics", + "Pacific Peoples information and knowledge management systems", + "Pacific Peoples innovation", + "Pacific Peoples knowledge management methods", + "Pacific Peoples mathematical, physical and chemical sciences (excl. astronomy and cosmology)", + "Pacific Peoples sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pacific Peoples society and community\"", + "value": [ + "Pacific Peoples and the law", + "Pacific Peoples anthropology", + "Pacific Peoples architecture", + "Pacific Peoples commerce", + "Pacific Peoples community and regional development", + "Pacific Peoples community governance and decision making", + "Pacific Peoples community-based research", + "Pacific Peoples criminology", + "Pacific Peoples customary law", + "Pacific Peoples design practice and management", + "Pacific Peoples economics", + "Pacific Peoples finance", + "Pacific Peoples human geography and demography", + "Pacific Peoples legislation", + "Pacific Peoples management", + "Pacific Peoples marketing", + "Pacific Peoples not-for-profit social enterprises", + "Pacific Peoples perspectives", + "Pacific Peoples political participation and representation", + "Pacific Peoples politics", + "Pacific Peoples social impact and program evaluation", + "Pacific Peoples social work and social justice", + "Pacific Peoples sociological studies", + "Pacific Peoples sociology", + "Pacific Peoples tourism", + "Pacific Peoples urban and regional planning", + "Pacific Peoples, society and community not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other Indigenous data, methodologies and global Indigenous studies\"", + "value": [ + "Global Indigenous studies culture, language and history", + "Global Indigenous studies environmental knowledges and management", + "Global Indigenous studies health and wellbeing", + "Global Indigenous studies peoples, society and community", + "Global Indigenous studies sciences", + "Indigenous data and data technologies", + "Indigenous methodologies", + "Other Indigenous data, methodologies and global Indigenous studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other Indigenous studies\"", + "value": [ + "Other Indigenous studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Applied computing\"", + "value": [ + "Applications in arts and humanities", + "Applications in health", + "Applications in life sciences", + "Applications in physical sciences", + "Applications in social sciences and education", + "Spatial data and applications", + "Applied computing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Artificial intelligence\"", + "value": [ + "Artificial life and complex adaptive systems", + "Autonomous agents and multiagent systems", + "Evolutionary computation", + "Fuzzy computation", + "Intelligent robotics", + "Knowledge representation and reasoning", + "Modelling and simulation", + "Natural language processing", + "Planning and decision making", + "Satisfiability and optimisation", + "Speech production", + "Speech recognition", + "Artificial intelligence not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Computer vision and multimedia computation\"", + "value": [ + "Active sensing", + "Audio processing", + "Computational imaging", + "Computer vision", + "Image and video coding", + "Image processing", + "Multimodal analysis and synthesis", + "Pattern recognition", + "Video processing", + "Computer vision and multimedia computation not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Cybersecurity and privacy\"", + "value": [ + "Cryptography", + "Data and information privacy", + "Data security and protection", + "Digital forensics", + "Hardware security", + "Software and application security", + "System and network security", + "Cybersecurity and privacy not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Data management and data science\"", + "value": [ + "Data engineering and data science", + "Data mining and knowledge discovery", + "Data models, storage and indexing", + "Data quality", + "Database systems", + "Graph, social and multimedia data", + "Information extraction and fusion", + "Information retrieval and web search", + "Query processing and optimisation", + "Recommender systems", + "Stream and sensor data", + "Data management and data science not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Distributed computing and systems software\"", + "value": [ + "Cloud computing", + "Concurrent/parallel systems and technologies", + "Cyberphysical systems and internet of things", + "Dependable systems", + "Distributed systems and algorithms", + "Energy-efficient computing", + "High performance computing", + "Mobile computing", + "Networking and communications", + "Operating systems", + "Performance evaluation", + "Service oriented computing", + "Distributed computing and systems software not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Graphics, augmented reality and games\"", + "value": [ + "Computer aided design", + "Computer graphics", + "Entertainment and gaming", + "Interactive narrative", + "Procedural content generation", + "Serious games", + "Sound and music computing", + "Virtual and mixed reality", + "Graphics, augmented reality and games not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Human-centred computing\"", + "value": [ + "Accessible computing", + "Affective computing", + "Collaborative and social computing", + "Computing education", + "Fairness, accountability, transparency, trust and ethics of computer systems", + "Human-computer interaction", + "Information visualisation", + "Mixed initiative and human-in-the-loop", + "Pervasive computing", + "Social robotics", + "Human-centred computing not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Information systems\"", + "value": [ + "Business process management", + "Decision support and group support systems", + "Information modelling, management and ontologies", + "Information security management", + "Information systems development methodologies and practice", + "Information systems education", + "Information systems for sustainable development and the public good", + "Information systems organisation and management", + "Information systems philosophy, research methods and theory", + "Information systems user experience design and development", + "Inter-organisational, extra-organisational and global information systems", + "Knowledge and information management", + "Information systems not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Library and information studies\"", + "value": [ + "Digital curation and preservation", + "Human information behaviour", + "Human information interaction and retrieval", + "Information governance, policy and ethics", + "Informetrics", + "Library studies", + "Open access", + "Organisation of information and knowledge resources", + "Recordkeeping informatics", + "Social and community informatics", + "Library and information studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Machine learning\"", + "value": [ + "Adversarial machine learning", + "Context learning", + "Deep learning", + "Neural networks", + "Reinforcement learning", + "Semi- and unsupervised learning", + "Machine learning not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Software engineering\"", + "value": [ + "Automated software engineering", + "Empirical software engineering", + "Formal methods for software", + "Programming languages", + "Requirements engineering", + "Software architecture", + "Software quality, processes and metrics", + "Software testing, verification and validation", + "Software engineering not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Theory of computation\"", + "value": [ + "Coding, information theory and compression", + "Computational complexity and computability", + "Computational logic and formal languages", + "Concurrency theory", + "Data structures and algorithms", + "Numerical computation and mathematical software", + "Quantum computation", + "Theory of computation not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other information and computing sciences\"", + "value": [ + "Other information and computing sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Communication and media studies\"", + "value": [ + "Communication studies", + "Communication technology and digital media studies", + "Environmental communication", + "International and development communication", + "Journalism studies", + "Media industry studies", + "Media studies", + "Organisational, interpersonal and intercultural communication", + "Communication and media studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Cultural studies\"", + "value": [ + "Arts and cultural policy", + "Asian cultural studies", + "Consumption and everyday life", + "Cultural and creative industries", + "Cultural studies of agriculture, food and wine", + "Cultural studies of nation and region", + "Cultural theory", + "Culture, representation and identity", + "Environment and culture", + "Globalisation and culture", + "Migrant cultural studies", + "Multicultural, intercultural and cross-cultural studies", + "Postcolonial studies", + "Screen and media culture", + "Cultural studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Language studies\"", + "value": [ + "African languages", + "Central and Eastern European languages (incl. Russian)", + "Chinese languages", + "Comparative language studies", + "Early English languages", + "English as a second language", + "English language", + "French language", + "German language", + "Iberian languages", + "Indian languages", + "Indonesian languages", + "Italian language", + "Japanese language", + "Korean language", + "Latin and classical Greek languages", + "Middle Eastern languages", + "Other Asian languages (excl. South-East Asian)", + "Other European languages", + "South-East Asian languages (excl. Indonesian)", + "Translation and interpretation studies", + "Language studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Linguistics\"", + "value": [ + "Applied linguistics and educational linguistics", + "Child language acquisition", + "Computational linguistics", + "Corpus linguistics", + "Discourse and pragmatics", + "Historical, comparative and typological linguistics", + "Language documentation and description", + "Lexicography and semantics", + "Linguistic structures (incl. phonology, morphology and syntax)", + "Phonetics and speech science", + "Sociolinguistics", + "Linguistics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Literary studies\"", + "value": [ + "African literature", + "Australian literature (excl. Aboriginal and Torres Strait Islander literature)", + "Book history", + "British and Irish literature", + "Central and Eastern European literature (incl. Russian)", + "Children's literature", + "Comparative and transnational literature", + "Digital literature", + "Ecocriticism", + "Indian literature", + "Indonesian literature", + "Korean literature", + "Latin and classical Greek literature", + "Literary theory", + "Literature in Chinese", + "Literature in French", + "Literature in German", + "Literature in Italian", + "Literature in Japanese", + "Literature in Spanish and Portuguese", + "Middle Eastern literature", + "New Zealand literature (excl. Māori literature)", + "North American literature", + "Other Asian literature (excl. South-East Asian)", + "Other European literature", + "Other literatures in English", + "Popular and genre literature", + "Print culture", + "South-East Asian literature (excl. Indonesian)", + "Stylistics and textual analysis", + "Young adult literature", + "Literary studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other language, communication and culture\"", + "value": [ + "Other language, communication and culture not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Commercial law\"", + "value": [ + "Banking, finance and securities law", + "Commercial law", + "Corporations and associations law", + "Labour law", + "Not-for-profit law", + "Taxation law", + "Commercial law not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Environmental and resources law\"", + "value": [ + "Animal law", + "Climate change law", + "Environmental law", + "Mining, energy and natural resources law", + "Environmental and resources law not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"International and comparative law\"", + "value": [ + "Asian and Pacific law", + "Comparative law", + "Conflict of laws (incl. private international law)", + "European Union law", + "International arbitration", + "International criminal law", + "International humanitarian and human rights law", + "International trade and investment law", + "Ocean law and governance", + "Public international law", + "Space, maritime and aviation law", + "International and comparative law not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Law in context\"", + "value": [ + "Criminal law", + "Family law", + "Law and humanities", + "Law and religion", + "Law and society and socio-legal research", + "Law reform", + "Law, gender and sexuality (incl. feminist legal scholarship)", + "Law, science and technology", + "Legal education", + "Legal theory, jurisprudence and legal interpretation", + "Media and communication law", + "Medical and health law", + "Race, ethnicity and law", + "Sports law", + "Law in context not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Legal systems\"", + "value": [ + "Access to justice", + "Civil procedure", + "Criminal procedure", + "Legal institutions (incl. courts and justice systems)", + "Legal practice, lawyering and the legal profession", + "Litigation, adjudication and dispute resolution", + "Youth justice", + "Legal systems not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Private law and civil obligations\"", + "value": [ + "Contract law", + "Equity and trusts law", + "Intellectual property law", + "Property law (excl. intellectual property law)", + "Tort law", + "Private law and civil obligations not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Public law\"", + "value": [ + "Administrative law", + "Constitutional law", + "Domestic human rights law", + "Migration, asylum and refugee law", + "Military law and justice", + "Privacy and data rights", + "Welfare, insurance, disability and social security law", + "Public law not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other law and legal studies\"", + "value": [ + "Other law and legal studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Applied mathematics\"", + "value": [ + "Approximation theory and asymptotic methods", + "Biological mathematics", + "Calculus of variations, mathematical aspects of systems theory and control theory", + "Complex systems", + "Dynamical systems in applications", + "Financial mathematics", + "Mathematical methods and special functions", + "Operations research", + "Theoretical and applied mechanics", + "Applied mathematics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Mathematical physics\"", + "value": [ + "Algebraic structures in mathematical physics", + "Integrable systems (classical and quantum)", + "Mathematical aspects of classical mechanics, quantum mechanics and quantum information theory", + "Mathematical aspects of general relativity", + "Mathematical aspects of quantum and conformal field theory, quantum gravity and string theory", + "Statistical mechanics, physical combinatorics and mathematical aspects of condensed matter", + "Mathematical physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Numerical and computational mathematics\"", + "value": [ + "Experimental mathematics", + "Numerical analysis", + "Numerical solution of differential and integral equations", + "Optimisation", + "Numerical and computational mathematics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Pure mathematics\"", + "value": [ + "Algebra and number theory", + "Algebraic and differential geometry", + "Category theory, k theory, homological algebra", + "Combinatorics and discrete mathematics (excl. physical combinatorics)", + "Group theory and generalisations", + "Lie groups, harmonic and Fourier analysis", + "Mathematical logic, set theory, lattices and universal algebra", + "Operator algebras and functional analysis", + "Ordinary differential equations, difference equations and dynamical systems", + "Partial differential equations", + "Real and complex functions (incl. several variables)", + "Topology", + "Pure mathematics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Statistics\"", + "value": [ + "Applied statistics", + "Biostatistics", + "Computational statistics", + "Forensic evaluation, inference and statistics", + "Large and complex data theory", + "Probability theory", + "Spatial statistics", + "Statistical data science", + "Statistical theory", + "Stochastic analysis and modelling", + "Time series and spatial modelling", + "Statistics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other mathematical sciences\"", + "value": [ + "Other mathematical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Applied ethics\"", + "value": [ + "Bioethics", + "Business ethics", + "Ethical use of new technology", + "Human rights and justice issues (excl. law)", + "Legal ethics", + "Medical ethics", + "Professional ethics", + "Applied ethics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"History and philosophy of specific fields\"", + "value": [ + "History and philosophy of engineering and technology", + "History and philosophy of law and justice", + "History and philosophy of medicine", + "History and philosophy of science", + "History and philosophy of the humanities", + "History and philosophy of the social sciences", + "History of ideas", + "History of philosophy", + "History and philosophy of specific fields not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Philosophy\"", + "value": [ + "Aesthetics", + "Critical theory", + "Decision theory", + "Environmental philosophy", + "Epistemology", + "Ethical theory", + "Hermeneutics", + "Logic", + "Metaphysics", + "Phenomenology", + "Philosophical psychology (incl. moral psychology and philosophy of action)", + "Philosophy of cognition", + "Philosophy of gender", + "Philosophy of language", + "Philosophy of mind (excl. cognition)", + "Philosophy of religion", + "Philosophy of science (excl. history and philosophy of specific fields)", + "Philosophy of specific cultures (incl. comparative philosophy)", + "Poststructuralism", + "Psychoanalytic philosophy", + "Social and political philosophy", + "Philosophy not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Religious studies\"", + "value": [ + "Christian studies", + "Comparative religious studies", + "Islamic studies", + "Jewish studies", + "Religion, society and culture", + "Studies in eastern religious traditions", + "Studies in religious traditions (excl. Eastern, Jewish, Christian and Islamic traditions)", + "Religious studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Theology\"", + "value": [ + "Theology", + "Theology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other philosophy and religious studies\"", + "value": [ + "Other philosophy and religious studies not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Astronomical sciences\"", + "value": [ + "Astrobiology", + "Astronomical instrumentation", + "Cosmology and extragalactic astronomy", + "Galactic astronomy", + "General relativity and gravitational waves", + "High energy astrophysics and galactic cosmic rays", + "Planetary science (excl. solar system and planetary geology)", + "Solar physics", + "Stellar astronomy and planetary systems", + "Astronomical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Atomic, molecular and optical physics\"", + "value": [ + "Atomic and molecular physics", + "Lasers and quantum electronics", + "Nonlinear optics and spectroscopy", + "Photonics, optoelectronics and optical communications", + "Terahertz physics", + "Atomic, molecular and optical physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Classical physics\"", + "value": [ + "Acoustics and acoustical devices; waves", + "Classical and physical optics", + "Electrostatics and electrodynamics", + "Thermodynamics and statistical physics", + "Classical physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Condensed matter physics\"", + "value": [ + "Condensed matter characterisation technique development", + "Condensed matter imaging", + "Condensed matter modelling and density functional theory", + "Electronic and magnetic properties of condensed matter; superconductivity", + "Soft condensed matter", + "Structural properties of condensed matter", + "Surface properties of condensed matter", + "Condensed matter physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Medical and biological physics\"", + "value": [ + "Biological physics", + "Medical physics", + "Medical and biological physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Nuclear and plasma physics\"", + "value": [ + "Nuclear physics", + "Plasma physics; fusion plasmas; electrical discharges", + "Nuclear and plasma physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Particle and high energy physics\"", + "value": [ + "Astroparticle physics and particle cosmology", + "Field theory and string theory", + "Particle physics", + "Particle and high energy physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Quantum physics\"", + "value": [ + "Degenerate quantum gases and atom optics", + "Foundations of quantum mechanics", + "Quantum information, computation and communication", + "Quantum optics and quantum optomechanics", + "Quantum technologies", + "Quantum physics not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Space sciences\"", + "value": [ + "Astrodynamics and space situational awareness", + "Heliophysics and space weather", + "Mesospheric, thermospheric, ionospheric and magnetospheric physics", + "Solar system energetic particles", + "Solar system planetary science (excl. planetary geology)", + "Space instrumentation", + "Space sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Synchrotrons and accelerators\"", + "value": [ + "Accelerators", + "Instruments and techniques", + "Synchrotrons", + "Synchrotrons and accelerators not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other physical sciences\"", + "value": [ + "Complex physical systems", + "Other physical sciences not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Applied and developmental psychology\"", + "value": [ + "Child and adolescent development", + "Educational psychology", + "Forensic psychology", + "Industrial and organisational psychology (incl. human factors)", + "Psychological methodology, design and analysis", + "Psychology of ageing", + "Sport and exercise psychology", + "Testing, assessment and psychometrics", + "Applied and developmental psychology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Biological psychology\"", + "value": [ + "Behavioural genetics", + "Behavioural neuroscience", + "Cognitive neuroscience", + "Evolutionary psychological studies", + "Psychopharmacology", + "Psychophysiology", + "Social and affective neuroscience", + "Biological psychology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Clinical and health psychology\"", + "value": [ + "Clinical neuropsychology", + "Clinical psychology", + "Counselling psychology", + "Health psychology", + "Clinical and health psychology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Cognitive and computational psychology\"", + "value": [ + "Cognition", + "Decision making", + "Learning, motivation and emotion", + "Memory and attention", + "Psycholinguistics (incl. speech production and comprehension)", + "Sensory processes, perception and performance", + "Cognitive and computational psychology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Social and personality psychology\"", + "value": [ + "Community psychology", + "Gender psychology", + "Personality and individual differences", + "Psychology of religion", + "Social psychology", + "Social and personality psychology not elsewhere classified" + ] + }, + { + "condition": "anzsrcGroup == \"Other psychology\"", + "value": [ + "Other psychology not elsewhere classified" + ] + } + ], + "type": "computed" + } + }, + { + "dataType": "text", + "name": "willProjectContinue", + "constraints": [ + "Yes", + "No" + ], + "validate": "required" + }, + { + "dataType": "text", + "name": "summaryOfActivities", + "description": "", + "validate": "required,maxSize[300]" + }, + { + "dataType": "text", + "name": "summaryOfSuccesses", + "description": "", + "validate": "required,maxSize[300]" + }, + { + "dataType": "text", + "name": "summaryOfAnyChanges", + "description": "", + "validate": "required,maxSize[300]" + } + ], + "dataType": "list", + "name": "researchAndDevelopmentDetails" }, { - "param": { - "expression": "totalLengthRemediationInitial", - "type": "computed", - "decimalPlaces": 3 - }, - "rule": "max" + "dataType": "text", + "name": "conclusionsAndFutureDirections", + "validate": "maxSize[400]" } ], - "defaultValue": "" + "dataType": "list", + "name": "researchAndDevelopmentByOutcome" }, { "dataType": "number", - "name": "totalLengthRemediationFollowup", + "name": "noDaysConductingResearchAndDevelopment", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", - "decimalPlaces": 3, + "decimalPlaces": 0, + "defaultValue": 1, "computed": { - "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Follow-up' ? lengthTreatedKmRemediated : 0\")" + "expression": "sum(researchAndDevelopmentByOutcome, \"numberOfDaysConducted\")" } }, { "dataType": "number", "decimalPlaces": 3, - "name": "totalLengthRemediationFollowupInvoiced", + "name": "noDaysConductingResearchAndDevelopmentInvoiced", "description": "Manually enter if values have decimal points e.g. 0.350 or 2.545", "validate": [ { @@ -22130,7 +28336,7 @@ }, { "param": { - "expression": "totalLengthRemediationFollowup", + "expression": "noDaysConductingResearchAndDevelopment", "type": "computed", "decimalPlaces": 3 }, @@ -22139,72 +28345,14 @@ ], "defaultValue": "" }, - { - "dataType": "number", - "name": "totalStructuresInstalled", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(remediatingAreas, \"noRemediationInterventions\")" - } - }, - { - "dataType": "number", - "name": "totalStructuresInstalledInvoiced", - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - }, - { - "param": { - "expression": "totalStructuresInstalled", - "type": "computed" - }, - "rule": "max" - } - ], - "defaultValue": "" - }, - { - "dataType": "number", - "name": "totalStructuresInstalledFollowup", - "validate": "min[0]", - "decimalPlaces": 0, - "computed": { - "expression": "sum(remediatingAreas, \"initialOrFollowup == 'Follow-up' ? noRemediationInterventions : 0\")" - } - }, - { - "dataType": "number", - "name": "totalStructuresInstalledFollowupInvoiced", - "validate": [ - { - "rule": "required" - }, - { - "rule": "min[0]" - }, - { - "param": { - "expression": "totalStructuresInstalledFollowup", - "type": "computed" - }, - "rule": "max" - } - ], - "defaultValue": "" - }, { "dataType": "text", - "name": "totalInvoicedRemediationMismatched", + "name": "totalInvoicedResearchAndDevelopmentMismatched", "description": "Please provide the reason/s why you are not invoicing for the same number that have been completed and delivered, e.g. the personnel and equipment were available to deliver more than was contracted.", "validate": "maxSize[400],required", "behaviour": [ { - "condition": "+totalAreaRemediationInitialInvoiced < +totalAreaRemediationInitial or +totalAreaRemediationFollowupInvoiced < +totalAreaRemediationFollowup or +totalLengthRemediationInitialInvoiced < +totalLengthRemediationInitial or +totalLengthRemediationFollowupInvoiced < +totalLengthRemediationFollowup or +totalStructuresInstalledInvoiced < +totalStructuresInstalled", + "condition": "+noDaysConductingResearchAndDevelopmentInvoiced < +noDaysConductingResearchAndDevelopment", "type": "enable" } ] @@ -22240,8 +28388,8 @@ ] } ], - "modelName": "NHT - Remediating riparian and aquatic areas", - "title": "Remediating Riparian and Aquatic Areas", + "modelName": "NHT - Research and development", + "title": "Research and/or Development", "viewModel": [ { "type": "row", @@ -22302,7 +28450,7 @@ "type": "textarea" } ], - "source": "participationInformationTableRem", + "source": "participationInformationTableDmp", "type": "table" }, { @@ -22325,111 +28473,11 @@ "type": "row", "items": [ { - "preLabel": "(i) Total area (ha) of remediation of riparian/aquatic areas (initial) during this reporting period", - "source": "totalAreaRemediationInitial", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "(ii) Total area (ha) of remediation of riparian/aquatic areas (initial) invoiced for during this reporting period", - "source": "totalAreaRemediationInitialInvoiced", - "type": "number", - "displayOptions": { - "removeTrailingZeros": false - } - } - ] - } - ] - }, - { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(iii) Total area (ha) of remediation of riparian/aquatic areas (follow - up) during this reporting period", - "source": "totalAreaRemediationFollowup", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "(iv) Total area (ha) of remediation of riparian/aquatic areas (follow - up) invoiced for during this reporting period", - "source": "totalAreaRemediationFollowupInvoiced", - "type": "number", - "displayOptions": { - "removeTrailingZeros": false - } - } - ] - } - ] - }, - { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(v) Total length (km) of remediation of riparian/aquatic areas (initial) during this reporting period", - "source": "totalLengthRemediationInitial", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "(vi) Total length (km) of remediation of riparian/aquatic areas (initial) invoiced for during this reporting period", - "source": "totalLengthRemediationInitialInvoiced", - "type": "number", - "displayOptions": { - "removeTrailingZeros": false - } - } - ] - } - ] - }, - { - "type": "col", - "css": "span4 col-border-right", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "(vii) Total length (km) of remediation of riparian/aquatic areas (follow-up) during this reporting period", - "source": "totalLengthRemediationFollowup", + "preLabel": "(i) Total number of days conducting research and development for this reporting period", + "source": "noDaysConductingResearchAndDevelopment", "type": "number" } ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "(viii) Total length (km) of remediation of riparian/aquatic areas (follow-up) invoiced for during this reporting period", - "source": "totalLengthRemediationFollowupInvoiced", - "type": "number", - "displayOptions": { - "removeTrailingZeros": false - } - } - ] } ] }, @@ -22441,18 +28489,8 @@ "type": "row", "items": [ { - "preLabel": "(ix) Number of remediation interventions applied to promote aquatic health during this reporting period", - "source": "totalStructuresInstalled", - "type": "number" - } - ] - }, - { - "type": "row", - "items": [ - { - "preLabel": "(x) Number of remediation interventions applied to promote aquatic health invoiced for during this reporting period", - "source": "totalStructuresInstalledInvoiced", + "preLabel": "(ii) Total number of days conducting research and development invoiced for this reporting period", + "source": "noDaysConductingResearchAndDevelopmentInvoiced", "type": "number" } ] @@ -22466,7 +28504,7 @@ "items": [ { "preLabel": "If the total invoiced is different to the total completed, please provide the reason", - "source": "totalInvoicedRemediationMismatched", + "source": "totalInvoicedResearchAndDevelopmentMismatched", "type": "textarea", "rows": 4, "placeholder": "" @@ -22474,16 +28512,16 @@ ] }, { - "addRowText": "Add a new remediated area", + "addRowText": "Add a new research/development", "userAddedRows": true, - "source": "remediatingAreas", + "source": "researchAndDevelopmentByOutcome", "type": "repeat", "items": [ { "type": "row", "items": [ { - "css": "span3 col-border-right", + "css": "span3", "type": "col", "items": [ { @@ -22507,7 +28545,7 @@ "items": [ { "source": "investmentPriorities2", - "preLabel": "Which investment priority does this activity relate to?", + "preLabel": "Which investment priority/ies does this activity relate to?", "type": "select2Many" } ] @@ -22534,39 +28572,45 @@ }, { "type": "row", + "css": "border-bottom", "items": [ { + "css": "span3", "type": "col", - "css": "span3 col-border-right", "items": [ { "type": "row", "items": [ { - "source": "noRemediationInterventions", - "preLabel": "Number of remediation interventions installed", - "type": "number" + "source": "researchOrDevelopment", + "type": "selectOne", + "preLabel": "Research and/or Development" } ] } ] }, { + "css": "span3", "type": "col", - "css": "span3 col-border-right", "items": [ { "type": "row", "items": [ { - "source": "initialOrFollowup", - "preLabel": "Initial or follow-up treatment?", - "type": "selectOne" + "source": "numberOfDaysConducted", + "type": "number", + "preLabel": "Number of days conducting research and development" } ] } ] - }, + } + ] + }, + { + "type": "row", + "items": [ { "type": "col", "css": "span3 col-border-right", @@ -22575,8 +28619,8 @@ "type": "row", "items": [ { - "preLabel": "Site/s covered by remediation", - "source": "sitesRemediated", + "preLabel": "Where research has been undertaken (if applicable)", + "source": "sitesResearchAndDevelopment", "type": "feature" } ] @@ -22585,7 +28629,7 @@ "type": "row", "items": [ { - "source": "calculatedAreaTreatedHaRemediated", + "source": "calculatedAreaTreatedHa", "type": "number", "displayOptions": { "displayUnits": true @@ -22598,7 +28642,7 @@ "type": "row", "items": [ { - "source": "calculatedLengthTreatedKmRemediated", + "source": "calculatedLengthTreatedKm", "type": "number", "displayOptions": { "displayUnits": true @@ -22612,7 +28656,7 @@ "items": [ { "preLabel": "Please attach mapping details", - "source": "extraMappingDetailsRemediated", + "source": "extraMappingDetails", "type": "document" } ] @@ -22627,8 +28671,8 @@ "type": "row", "items": [ { - "preLabel": "Actual area (ha) / length (km) being remediated", - "source": "areaTreatedHaRemediated", + "preLabel": "Actual research area undertaken", + "source": "areaTreatedHa", "type": "number", "displayOptions": { "displayUnits": true @@ -22640,7 +28684,7 @@ "type": "row", "items": [ { - "source": "lengthTreatedKmRemediated", + "source": "lengthTreatedKm", "type": "number", "displayOptions": { "displayUnits": true @@ -22653,7 +28697,7 @@ "items": [ { "preLabel": "Reason for actual being different to mapped amount", - "source": "mappingNotAlignedReasonRemediated", + "source": "mappingNotAlignedReason", "type": "selectOne" } ] @@ -22663,7 +28707,7 @@ "items": [ { "placeholder": "Please enter the reason/s the mapping didn't align with the invoiced amount", - "source": "mappingNotAlignedCommentsRemediated", + "source": "mappingNotAlignedComments", "type": "textarea", "rows": 5 } @@ -22674,166 +28718,70 @@ ] }, { - "type": "row", + "type": "section", "items": [ { - "css": "span3", - "type": "col", - "items": [ - { - "type": "row", - "items": [ - { - "source": "activitiesStartDate", - "type": "date", - "preLabel": "Activity start date" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ + "columns": [ { - "type": "row", - "items": [ - { - "source": "activitiesEndDate", - "preLabel": "Activity end date", - "type": "date" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ + "width": "10%", + "title": "Date research and/or development started", + "source": "resAndDevStartDate", + "type": "date" + }, { - "type": "row", - "items": [ - { - "preLabel": "Type of remediation intervention", - "source": "typesOfRemediationInstalled", - "type": "select2" - } - ] + "width": "10%", + "title": "Date research and/or development finished", + "source": "resAndDevFinishDate", + "type": "date" }, { - "type": "row", - "items": [ - { - "source": "otherRemediationType", - "placeholder": "Type of remediation intervention (if Other)", - "type": "text" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ + "width": "10%", + "source": "anzsrcDivision", + "title": "ANZSRC Classification – Division", + "type": "selectOne" + }, { - "type": "row", - "items": [ - { - "preLabel": "Type of aquatic or riparian remediation", - "source": "remediationType", - "type": "select2" - } - ] + "width": "10%", + "source": "anzsrcGroup", + "title": "ANZSRC Classification – Group", + "type": "selectOne" }, { - "type": "row", - "items": [ - { - "source": "otherAquaticOrRemediationType", - "placeholder": "Type of aquatic or riparian remediation (if Other)", - "type": "text" - } - ] - } - ] - } - ] - }, - { - "type": "row", - "items": [ - { - "type": "col", - "css": "span3 col-border-right", - "items": [ + "width": "10%", + "source": "anzsrcFields", + "title": "ANZSRC Classification – Fields", + "type": "selectOne" + }, { - "type": "row", - "items": [ - { - "preLabel": "Please identify any off-site area/s that may benefit from this service", - "source": "sitesBenefitted", - "type": "feature" - } - ] + "width": "15%", + "source": "summaryOfActivities", + "title": "Summary of activities and research outputs delivered in this reporting period", + "type": "textarea" }, { - "type": "row", - "items": [ - { - "source": "calculatedAreaTreatedHaBenefitted", - "type": "number", - "displayOptions": { - "displayUnits": true - }, - "readonly": "readonly" - } - ] + "width": "15%", + "source": "summaryOfSuccesses", + "title": "Summary of successes or failures", + "type": "textarea" }, { - "type": "row", - "items": [ - { - "preLabel": "Please attach mapping details", - "source": "extraMappingDetailsBenefitted", - "type": "document" - } - ] - } - ] - }, - { - "type": "col", - "css": "span3 col-border-right", - "items": [ + "width": "15%", + "source": "summaryOfAnyChanges", + "title": "Summary of any changes to the research approach resulting from successes/failures", + "type": "textarea" + }, { - "type": "row", - "items": [ - { - "source": "evidenceOfBenefit", - "preLabel": "Please provide a description on the evidence available to reflect this benefit", - "type": "textarea" - } - ] + "width": "5%", + "source": "willProjectContinue", + "title": "Will this research and development project continue?", + "type": "selectOne" } - ] - } - ] - } - ] - }, - { - "type": "section", - "items": [ - { - "type": "row", - "items": [ - { - "preLabel": "Optionally attach photos", - "source": "photographicEvidence", - "type": "image" + ], + "userAddedRows": true, + "addRowText": "Add a row", + "source": "researchAndDevelopmentDetails", + "title": "Each new research and/or development initiative should be set up as a separate component in MERIT, with all relevant detail recorded as far as practicable in the MERI plan. Where additional information cannot be captured in the MERI plan, this must be attached to the project in MERIT.

Reported activities and outputs are based on the aims of the research and/or development that are outlined in the MERI plan and other supporting documentation. Research and/or Development projects may cover multiple investment priorities and may require additional related project services such as Flora Survey, Fauna Survey, and Synthesising and Finalising Baseline Data.
", + "type": "table" } ] }, @@ -22841,67 +28789,90 @@ "type": "row", "items": [ { - "preLabel": "Clarification, if needed", + "preLabel": "Conclusions and future directions ", "type": "textarea", "rows": 4, "css": "span8", - "source": "comments", - "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + "source": "conclusionsAndFutureDirections" } ] - }, + } + ] + }, + { + "type": "row", + "items": [ { - "type": "row", - "items": [ - { - "type": "literal", - "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" - }, - { - "preLabel": "Data have been uploaded", - "source": "dataUploaded", - "type": "boolean" - } - ] - }, + "preLabel": "Optionally attach photos", + "source": "photographicEvidence", + "type": "image" + } + ] + }, + { + "type": "row", + "items": [ { - "type": "row", - "items": [ - { - "preLabel": "", - "source": "projectAssuranceDetails", - "type": "textarea", - "rows": 4, - "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." - } - ] + "preLabel": "Clarification, if needed", + "type": "textarea", + "rows": 4, + "css": "span8", + "source": "comments", + "placeholder": "Clarification comments include information for your project manager about the service like:\n • any reported items that are not being invoiced (eg, over-achievement) \n • any extraneous circumstances that affected delivery of the service \n" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Available Evidence

This field is mandatory for all projects as part of the invoicing process. Please list evidence you have retained for this service and provide information to where the evidence is stored (links/file location data). Refer to the Project Service Evidence Guide and the Project Service Summaries for information on the evidence requirements.*" }, { - "type": "table", - "source": "assuranceDocuments", - "userAddedRows": true, - "disableTableUpload": true, - "columns": [ - { - "title": "Attached documents", - "source": "attachments", - "type": "document" - } - ] + "preLabel": "Data have been uploaded", + "source": "dataUploaded", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "", + "source": "projectAssuranceDetails", + "type": "textarea", + "rows": 4, + "placeholder": "List the documentary evidence you have available for this project service. Include specifically, the document titles and location (e.g. internal IT network pathway, URLs) to assist with locating this material for future audits/assurance purposes." + } + ] + }, + { + "type": "table", + "source": "assuranceDocuments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached documents", + "source": "attachments", + "type": "document" } ] } ] }, "modelName": null, - "templateName": "nhtRemediatingRiparianAndAquaticAreas", + "templateName": "nhtReasearchAndDevelopment", "optional": true, "optionalQuestionText": null, "title": null, "collapsibleHeading": null, - "name": "NHT - Remediating riparian and aquatic areas", + "name": "NHT - Research and development", "description": null }, + { "collapsedByDefault": false, "template": { @@ -23254,6 +29225,7 @@ { "dataType": "number", "name": "totalAreaWeedsTreatedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -23286,6 +29258,7 @@ { "dataType": "number", "name": "totalAreaWeedsTreatedFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -23318,6 +29291,7 @@ { "dataType": "number", "name": "totalLengthWeedsTreatedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -23350,6 +29324,7 @@ { "dataType": "number", "name": "totalLengthWeedsTreatedFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -24327,6 +30302,7 @@ { "dataType": "number", "name": "totalAreaWeedsTreatedInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -24359,6 +30335,7 @@ { "dataType": "number", "name": "totalAreaWeedsTreatedFollowup", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -25295,6 +31272,7 @@ { "dataType": "number", "name": "totalAmountSeedsCuttingsCollected", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -25324,6 +31302,7 @@ { "dataType": "number", "name": "totalDaysSeedsCuttingsCollected", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -25353,6 +31332,7 @@ { "dataType": "number", "name": "totalDaysPropagating", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -25382,6 +31362,7 @@ { "dataType": "number", "name": "totalPlantsPropagated", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -26579,6 +32560,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -27581,6 +33563,7 @@ { "dataType": "number", "name": "totalAreaSitePreparation", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -27614,6 +33597,7 @@ "dataType": "number", "decimalPlaces": 3, "name": "totalLengthSitePreparation", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "computed": { "expression": "sum(sitePreparationDetailsControlled, \"lengthTreatedKm\")" @@ -28589,6 +34573,7 @@ { "dataType": "number", "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -28618,6 +34603,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -29597,6 +35583,7 @@ { "dataType": "number", "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -29626,6 +35613,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -30557,6 +36545,7 @@ { "dataType": "number", "name": "totalAnnualFtes", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 3, "computed": { @@ -31249,6 +37238,7 @@ { "dataType": "number", "name": "totalNumberBaselineDatasets", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -32038,6 +38028,7 @@ { "dataType": "number", "name": "totalNumberInterventionsInitial", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -32067,6 +38058,7 @@ { "dataType": "number", "name": "totalNumberInterventionsFollowUp", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -33126,6 +39118,7 @@ { "dataType": "number", "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -33155,6 +39148,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -34306,6 +40300,7 @@ { "dataType": "number", "name": "totalSurveyBaseline", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { @@ -34335,6 +40330,7 @@ { "dataType": "number", "name": "totalSurveyIndicator", + "description": "This field is not editable as it is auto populated from inputted data in the section below", "validate": "min[0]", "decimalPlaces": 0, "computed": { diff --git a/forms/other/regionalCapacityServicesReportV1.json b/forms/other/regionalCapacityServicesReportV1.json new file mode 100644 index 000000000..76a3dc96f --- /dev/null +++ b/forms/other/regionalCapacityServicesReportV1.json @@ -0,0 +1,1052 @@ +{ + "id": "651f661ecd13e43eb3f6d737", + "dateCreated": "2023-10-06T01:42:54Z", + "minOptionalSectionsCompleted": 1, + "supportsSites": false, + "tags": [], + "lastUpdated": "2024-04-19T03:58:53Z", + "createdUserId": "129333", + "external": false, + "activationDate": null, + "supportsPhotoPoints": false, + "publicationStatus": "published", + "externalIds": null, + "gmsId": null, + "name": "Regional Capacity Services Report", + "sections": [ + { + "collapsedByDefault": false, + "template": { + "pre-populate": [ + { + "source": { + "context-path": "owner" + }, + "mapping": [ + { + "target": "targetIndigenousParticipationPercentage", + "source-path": "periodTargets.targetIndigenousParticipationPercentage" + } + ], + "merge": { + "targetIndigenousParticipationPercentage": { + "replaceExisting": true + } + } + }, + { + "source": { + "context-path": "owner" + }, + "mapping": [ + { + "target": "targetIndigenousProcurementPercentage", + "source-path": "periodTargets.targetIndigenousProcurementPercentage" + } + ], + "merge": { + "targetIndigenousProcurementPercentage": { + "replaceExisting": true + } + } + }, + { + "source": { + "context-path": "owner" + }, + "mapping": [ + { + "target": "organisationPanelProjectValue", + "source-path": "totalContractValue" + } + ], + "merge": { + "organisationPanelProjectValue": { + "replaceExisting": true + } + } + } + ], + "dataModel": [ + { + "name": "governanceAndFinancialFrameworksOnTrack", + "dataType": "text", + "validate": "required", + "constraints": [ + "Yes", + "No" + ] + }, + { + "name": "governanceAndFinancialFrameworksActions", + "dataType": "text", + "validate": "required,maxSize[5000]", + "behaviour": [ + { + "condition": "governanceAndFinancialFrameworksOnTrack == \"No\"", + "type": "enable_and_clear" + } + ] + }, + { + "name": "whsUndergoneReview", + "description": "Service Providers shall review the organisation's WHS management system (Manual/plan or policy) at planned intervals (not exceeding 3 years) to ensure its continuing suitability, adequacy, and effectiveness. Trigger to warrant a review may include:", + "dataType": "text", + "validate": "required", + "constraints": [ + "Yes", + "No" + ] + }, + { + "name": "whsChangesDescription", + "dataType": "text", + "validate": "required,maxSize[5000]", + "behaviour": [ + { + "condition": "whsUndergoneReview == \"Yes\"", + "type": "enable_and_clear" + } + ] + }, + { + "name": "whsRevisedSubmitted", + "dataType": "text", + "validate": "required", + "constraints": [ + "Yes", + "No" + ], + "behaviour": [ + { + "condition": "whsUndergoneReview == \"Yes\"", + "type": "enable_and_clear" + } + ] + }, + { + "name": "whsRevisedPlan", + "dataType": "text", + "behaviour": [ + { + "condition": "whsRevisedSubmitted == \"No\"", + "type": "visible" + } + ] + }, + { + "name": "whsIncidentsOccured", + "description": "A WHS Notifiable incident is defined within Work Health and Safety Act (Cth) 2011 Part 3 – Incident Notification.
Refer to Deed of Standing offer clause 42 Work Health and Safety for further information on these requirements.", + "dataType": "text", + "validate": "required", + "constraints": [ + "Yes", + "No" + ] + }, + { + "name": "whsIncidentReported", + "dataType": "text", + "validate": "required", + "constraints": [ + "Yes", + "No" + ], + "behaviour": [ + { + "condition": "whsIncidentsOccured == \"Yes\"", + "type": "enable_and_clear" + } + ] + }, + { + "name": "whsIncidentNotReported", + "dataType": "text", + "behaviour": [ + { + "condition": "whsIncidentReported == \"No\"", + "type": "visible" + } + ] + }, + { + "name": "deedOfStandingOfferActions", + "description": "This schedule relates to additional conditions relating to your Indigenous Participation Plan identified as part of your offer.", + "dataType": "text", + "validate": "required,maxSize[5000]" + }, + { + "name": "indigenousTargetMeasuresOnTrack", + "dataType": "text", + "validate": "required", + "constraints": [ + "Yes", + "No" + ] + }, + { + "name": "indigenousTargetMeasuresNotOnTrack", + "dataType": "text", + "validate": "required,maxSize[5000]", + "behaviour": [ + { + "condition": "indigenousTargetMeasuresOnTrack == \"No\"", + "type": "enable_and_clear" + } + ] + }, + { + "dataType": "boolean", + "name": "reportedToIpprs", + "description": "", + "validate": "required" + }, + { + "dataType": "document", + "name": "ipprsReport", + "description": "" + }, + { + "dataType": "number", + "name": "organisationFteWorkforce", + "description": "Enter total RDP staff (full time equivalent) deployed on Services for the Deed and all Contracts (including non-DCCEEW Contracts) during this reporting period.", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "organisationFteIndigenousWorkforce", + "type": "computed" + }, + "rule": "min", + "message": "Numeric value must be higher or equal to the numeric value entered for 'What was your organisation’s full time equivalent Indigenous workforce deployed on the Services this reporting period?'" + } + ] + }, + { + "dataType": "number", + "name": "organisationFteIndigenousWorkforce", + "description": "Enter total RDP Indigenous staff (full time equivalent) deployed on Services for the Deed and all Contracts (including non-DCCEEW Contracts) during this reporting period.", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "organisationFteWorkforce", + "type": "computed" + }, + "rule": "max", + "message": "Numeric value must be less than or equal to the numeric value entered for 'What was your organisation’s full time equivalent workforce deployed on the Services this reporting period?'" + } + ] + }, + { + "dataType": "number", + "name": "servicesContractedValueFirstNations", + "description": "Enter total dollar value (GST inclusive) of goods and services contracted to First Nations people/Indigenous enterprises, during this reporting period, for the Deed and all Contracts (including non-DCCEEW Contracts).", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "organisationPanelProjectValue", + "type": "computed" + }, + "rule": "max", + "message": "The sum of the value of Services contracted to First Nations people/Indigenous enterprises for all reporting periods can not exceed the total $ value (GST inclusive) of the Deed and all Contracts (including non-DCCEEW Contracts)" + } + ] + }, + { + "dataType": "number", + "name": "organisationPanelProjectValue", + "description": "Total dollar value (GST inclusive) for the Deed and all Contracts (including non-DCCEEW Contracts).", + "validate": "required,min[0]" + }, + { + "dataType": "number", + "name": "supplyChainPerformancePercentage", + "description": "Calculated using value of Services contracted to First Nations people/Indigenous enterprises ÷ stored Total Organisation Panel/Project Value $ x 100", + "computed": { + "expression": "servicesContractedValueFirstNations / organisationPanelProjectValue * 100" + } + }, + { + "dataType": "number", + "name": "workforcePerformancePercentage", + "description": "Calculated using FTE Indigenous workforce ÷ FTE workforce x 100", + "computed": { + "expression": "organisationFteIndigenousWorkforce / organisationFteWorkforce * 100" + } + }, + { + "dataType": "number", + "name": "targetIndigenousParticipationPercentage", + "description": "Target Indigenous Participation Percentage for this reporting period" + }, + { + "dataType": "number", + "name": "targetIndigenousProcurementPercentage", + "description": "Target Indigenous Procurement Percentage for this reporting period" + }, + { + "name": "staffDevelopmentOpportunities", + "description": "This includes on-the-job, informal and formal training.", + "dataType": "text", + "validate": "required,maxSize[5000]" + }, + { + "name": "communityTargetMeasuresOnTrack", + "dataType": "text", + "description": "If your plan is in development select ‘no’ and explain when the plan will be completed ", + "validate": "required", + "constraints": [ + "Yes", + "No" + ] + }, + { + "name": "communityTargetMeasuresNotOnTrack", + "dataType": "text", + "validate": "required,maxSize[5000]", + "behaviour": [ + { + "condition": "communityTargetMeasuresOnTrack == \"No\"", + "type": "enable_and_clear" + } + ] + }, + { + "name": "communityConductWorkshops", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": [ + "Yes", + "No" + ] + }, + { + "columns": [ + { + "name": "workshopEventType", + "dataType": "text", + "validate": "required,maxSize[500]", + "behaviour": [ + { + "type": "enable_and_clear", + "condition": "communityConductWorkshops == \"Yes\"" + } + ] + }, + { + "name": "workshopTitle", + "dataType": "text", + "validate": "required,maxSize[500]", + "behaviour": [ + { + "type": "enable_and_clear", + "condition": "communityConductWorkshops == \"Yes\"" + } + ] + }, + { + "name": "workshopPurpose", + "dataType": "text", + "validate": "required,maxSize[5000]", + "behaviour": [ + { + "type": "enable_and_clear", + "condition": "communityConductWorkshops == \"Yes\"" + } + ] + }, + { + "name": "workshopDate", + "dataType": "date", + "validate": "required", + "behaviour": [ + { + "type": "enable_and_clear", + "condition": "communityConductWorkshops == \"Yes\"" + } + ] + } + ], + "dataType": "list", + "name": "workshopList" + }, + { + "name": "supportCommunityWorkshops", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": [ + "Yes", + "No" + ] + }, + { + "columns": [ + { + "name": "supportWorkshopEventType", + "dataType": "text", + "validate": "required,maxSize[500]", + "behaviour": [ + { + "type": "enable_and_clear", + "condition": "supportCommunityWorkshops == \"Yes\"" + } + ] + }, + { + "name": "supportWorkshopTitle", + "dataType": "text", + "validate": "required,maxSize[500]", + "behaviour": [ + { + "type": "enable_and_clear", + "condition": "supportCommunityWorkshops == \"Yes\"" + } + ] + }, + { + "name": "supportWorkshopPurpose", + "dataType": "text", + "validate": "required,maxSize[5000]", + "behaviour": [ + { + "type": "enable_and_clear", + "condition": "supportCommunityWorkshops == \"Yes\"" + } + ] + }, + { + "name": "supportWorkshopDate", + "dataType": "date", + "validate": "required", + "behaviour": [ + { + "type": "enable_and_clear", + "condition": "supportCommunityWorkshops == \"Yes\"" + } + ] + } + ], + "dataType": "list", + "name": "supportWorkshopList" + }, + { + "name": "communicationsTargetMeasuresOnTrack", + "dataType": "text", + "description": "If your plan is in development select ‘no’ and explain when the plan will be completed ", + "validate": "required", + "constraints": [ + "Yes", + "No" + ] + }, + { + "name": "communicationsTargetMeasuresNotOnTrack", + "dataType": "text", + "validate": "required,maxSize[5000]", + "behaviour": [ + { + "condition": "communicationsTargetMeasuresOnTrack == \"No\"", + "type": "enable_and_clear" + } + ] + }, + { + "name": "communicationMaterialPublished", + "dataType": "text", + "description": "", + "validate": "required", + "constraints": [ + "Yes", + "No" + ] + }, + { + "columns": [ + { + "name": "communicationMaterialLink", + "dataType": "text", + "validate": "required", + "behaviour": [ + { + "type": "enable_and_clear", + "condition": "communicationMaterialPublished == \"Yes\"" + } + ] + } + ], + "dataType": "list", + "name": "communicationMaterialLinkList" + }, + { + "name": "communicationsMaterialAttachments", + "dataType": "list", + "columns": [ + { + "name": "communicationsMaterialAttachment", + "dataType": "document" + } + ] + } + ], + "modelName": "Regional capacity services - reporting", + "title": "Regional capacity services - reporting", + "viewModel": [ + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Governance

" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "type": "selectOne", + "source": "governanceAndFinancialFrameworksOnTrack", + "preLabel": "Q1. As a Regional Delivery Partner, have you maintained appropriate governance and financial frameworks as per Regional Capacity Services RCS7?" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "textarea", + "rows": 4, + "source": "governanceAndFinancialFrameworksActions", + "preLabel": "a) If not, explain what actions are planned to get back on track." + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Work Health and Safety

" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "type": "selectOne", + "source": "whsUndergoneReview", + "preLabel": "Q2. During the reporting period has the Work Health and Safety Management Manual/Plan or Policy undergone a review or amendment?" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "textarea", + "rows": 4, + "source": "whsChangesDescription", + "preLabel": "Q2a. Provide a brief description of the changes to the Work Health and Safety Management Manual/Policy or Plan." + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span6", + "type": "selectOne", + "source": "whsRevisedSubmitted", + "preLabel": "Q2b. Has the revised WHS plan been submitted to the department?" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "", + "source": "whsRevisedPlan", + "preLabel": "Please submit the revised plan to your customer contract manager." + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "type": "selectOne", + "source": "whsIncidentsOccured", + "preLabel": "Q3. During the reporting period, have any notifiable incidents or events occurred during the delivery of regional capacity services?" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span6", + "type": "selectOne", + "source": "whsIncidentReported", + "preLabel": "Q3a. Has the incident/event been reported to the department and the relevant documentation provided" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "", + "source": "whsIncidentNotReported", + "preLabel": "If not, provide notification as outlined in the Deed of Standing offer clause 42.3 Notifying the customer." + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Indigenous Participation

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "textarea", + "rows": 4, + "source": "deedOfStandingOfferActions", + "preLabel": "Q4. As a Regional Delivery Partner, explain any actions you’ve taken to address the requirements in Schedule 10 of the Deed of Standing Offer." + } + ] + }, + { + "type": "row", + "items": [ + { + "rows": 4, + "type": "selectOne", + "source": "indigenousTargetMeasuresOnTrack", + "preLabel": "Q5. Are you on track to deliver the target measures identified in your Indigenous Participation Plan?" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "textarea", + "rows": 4, + "source": "indigenousTargetMeasuresNotOnTrack", + "preLabel": "Q5a. If not, explain what actions are planned to get back on track." + } + ] + }, + { + "type": "row", + "items": [ + { + "preLabel": "Q5b. Please confirm that you have reported via the IPPRS this period, and this report has been attached.", + "source": "reportedToIpprs", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "document", + "source": "ipprsReport", + "preLabel": "Please attach the document here." + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "Q5(c). Please complete workforce and supply chain data (Deed of Standing Offer Clause 38 Indigenous Procurement Policy). Please do not provide personal or commercial-in-confidence information when answering this question. Please retain documentation as evidence to support assurance activities undertaken to verify the reported information." + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "What was your organisation’s full time equivalent workforce deployed on the Services this reporting period?", + "source": "organisationFteWorkforce", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "What was your organisation’s full time equivalent Indigenous workforce deployed on the Services this reporting period?", + "source": "organisationFteIndigenousWorkforce", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "Workforce Performance % this reporting period", + "source": "workforcePerformancePercentage", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "Target Workforce Performance % this reporting period", + "source": "targetIndigenousParticipationPercentage", + "type": "number", + "readonly": true + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "Your total organisation panel/project $ value (GST inclusive).", + "source": "organisationPanelProjectValue", + "type": "number", + "readonly": true + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "What was the dollar value (GST inclusive) of Services contracted to First Nations people/Indigenous enterprises during this reporting period?", + "source": "servicesContractedValueFirstNations", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "Supply Chain Performance % this reporting period", + "source": "supplyChainPerformancePercentage", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "Target Supply Chain Performance % this reporting period", + "source": "targetIndigenousProcurementPercentage", + "type": "number", + "readonly": true + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Monitoring, Evaluation, Reporting and Improvement (MERI)

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "textarea", + "rows": 4, + "source": "staffDevelopmentOpportunities", + "preLabel": "Q6. What MERI professional development opportunities (if any) have staff participated in?" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Community Participation

" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "type": "selectOne", + "source": "communityTargetMeasuresOnTrack", + "preLabel": "Q7. As a Regional Delivery Partner are you on track to deliver the target measures identified in your community participation plan?" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "textarea", + "rows": 4, + "source": "communityTargetMeasuresNotOnTrack", + "preLabel": "Q7a. If not, explain what actions are planned to get back on track." + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "type": "selectOne", + "source": "communityConductWorkshops", + "preLabel": "Q8. If applicable, did you conduct workshops, or equivalent activities to engage researchers, industry and Community members to define innovative practices and approaches that would improve the condition of natural resources as they relate to the 5-year Outcomes?" + } + ] + }, + { + "type": "row", + "behaviour": [ + { + "type": "if_expression", + "condition": "communityConductWorkshops == \"Yes\"" + } + ], + "items": [ + { + "disableTableUpload": true, + "fixedWidth": true, + "columns": [ + { + "width": "25%", + "source": "workshopEventType", + "title": "Event type", + "type": "text" + }, + { + "width": "25%", + "source": "workshopTitle", + "title": "Title", + "type": "text" + }, + { + "width": "25%", + "source": "workshopPurpose", + "title": "Purpose", + "type": "textarea" + }, + { + "width": "25%", + "source": "workshopDate", + "title": "Date", + "type": "date" + } + ], + "userAddedRows": true, + "source": "workshopList", + "title": "Q8a. If yes, please provide details:*", + "type": "table" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "type": "selectOne", + "source": "supportCommunityWorkshops", + "preLabel": "Q9. If applicable, did you support community participation workshops, or equivalent activities to engage researchers, industry and Community members to define innovative practices and approaches that would improve the condition of natural resources as they relate to the 5-year Outcomes? This does not include engagement activities covered by project support and overhead services" + } + ] + }, + { + "type": "row", + "behaviour": [ + { + "type": "if_expression", + "condition": "supportCommunityWorkshops == \"Yes\"" + } + ], + "items": [ + { + "disableTableUpload": true, + "fixedWidth": true, + "columns": [ + { + "width": "25%", + "source": "supportWorkshopEventType", + "title": "Event type", + "type": "text" + }, + { + "width": "25%", + "source": "supportWorkshopTitle", + "title": "Title", + "type": "text" + }, + { + "width": "25%", + "source": "supportWorkshopPurpose", + "title": "Purpose", + "type": "textarea" + }, + { + "width": "25%", + "source": "supportWorkshopDate", + "title": "Date", + "type": "date" + } + ], + "userAddedRows": true, + "source": "supportWorkshopList", + "title": "Q9a. If yes, please provide details:*", + "type": "table" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Communications

" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "type": "selectOne", + "source": "communicationsTargetMeasuresOnTrack", + "preLabel": "Q10. As a Regional Delivery Partner, are you on track to deliver the target measures identified in your communications plan?" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "textarea", + "rows": 4, + "source": "communicationsTargetMeasuresNotOnTrack", + "preLabel": "Q10a. If not, explain what actions are planned to get back on track." + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "type": "selectOne", + "source": "communicationMaterialPublished", + "preLabel": "Q11. During this reporting period was any communication material published promoting organisational and project progress and performance, First Nations leadership and engagement and opportunities for community to participate in projects, including through websites and social media, as outlined in RCS3?" + } + ] + }, + { + "type": "row", + "behaviour": [ + { + "type": "if_expression", + "condition": "communicationMaterialPublished == \"Yes\"" + } + ], + "items": [ + { + "disableTableUpload": true, + "fixedWidth": true, + "columns": [ + { + "source": "communicationMaterialLink", + "title": "Material", + "type": "text" + } + ], + "userAddedRows": true, + "source": "communicationMaterialLinkList", + "title": "Q11a. If yes, please provide link or copy of the material (one row per item)*", + "type": "table" + }, + { + "type": "table", + "source": "communicationsMaterialAttachments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached communication material", + "source": "communicationsMaterialAttachment", + "type": "document" + } + ] + } + ] + } + ] + }, + "modelName": null, + "templateName": "regionalCapacityServicesReport", + "optional": false, + "optionalQuestionText": null, + "title": null, + "collapsibleHeading": null, + "name": "Regional capacity services - reporting", + "description": null + } + ], + "type": "Report", + "category": null, + "status": "active", + "lastUpdatedUserId": "1493", + "description": null, + "formVersion": 1 +} \ No newline at end of file diff --git a/forms/other/regionalCapacityServicesReportV2.json b/forms/other/regionalCapacityServicesReportV2.json new file mode 100644 index 000000000..e24968952 --- /dev/null +++ b/forms/other/regionalCapacityServicesReportV2.json @@ -0,0 +1,968 @@ +{ + "id": "6683e3d1a31b681e3d2d304c", + "dateCreated": "2024-07-02T11:26:09Z", + "minOptionalSectionsCompleted": 1, + "supportsSites": false, + "tags": [], + "lastUpdated": "2024-07-02T22:39:07Z", + "createdUserId": "1493", + "external": false, + "activationDate": null, + "supportsPhotoPoints": false, + "publicationStatus": "unpublished", + "externalIds": null, + "gmsId": null, + "name": "Regional Capacity Services Report", + "sections": [ + { + "collapsedByDefault": false, + "template": { + "pre-populate": [ + { + "source": { + "context-path": "owner" + }, + "mapping": [ + { + "target": "targetIndigenousParticipationPercentage", + "source-path": "periodTargets.targetIndigenousParticipationPercentage" + } + ], + "merge": { + "targetIndigenousParticipationPercentage": { + "replaceExisting": true + } + } + }, + { + "source": { + "context-path": "owner" + }, + "mapping": [ + { + "target": "targetIndigenousProcurementPercentage", + "source-path": "periodTargets.targetIndigenousProcurementPercentage" + } + ], + "merge": { + "targetIndigenousProcurementPercentage": { + "replaceExisting": true + } + } + }, + { + "source": { + "context-path": "owner" + }, + "mapping": [ + { + "target": "organisationPanelProjectValue", + "source-path": "totalContractValue" + } + ], + "merge": { + "organisationPanelProjectValue": { + "replaceExisting": true + } + } + } + ], + "dataModel": [ + { + "name": "governanceAndFinancialFrameworksOnTrack", + "dataType": "text", + "validate": "required", + "constraints": [ + "Yes", + "No" + ] + }, + { + "name": "governanceAndFinancialFrameworksActions", + "dataType": "text", + "validate": "required,maxSize[5000]", + "behaviour": [ + { + "condition": "governanceAndFinancialFrameworksOnTrack == \"No\"", + "type": "enable_and_clear" + } + ] + }, + { + "name": "whsUndergoneReview", + "description": "An RDP must ensure its WHS Plan is up to date and conduct regular reviews to ensure its continuing suitability, adequacy, and effectiveness. Triggers to warrant a review include:", + "dataType": "text", + "validate": "required", + "constraints": [ + "Yes", + "No" + ] + }, + { + "name": "whsChangesDescription", + "dataType": "text", + "validate": "required,maxSize[5000]", + "behaviour": [ + { + "condition": "whsUndergoneReview == \"Yes\"", + "type": "enable_and_clear" + } + ] + }, + { + "name": "whsRevisedSubmitted", + "dataType": "text", + "validate": "required", + "constraints": [ + "Yes", + "No" + ], + "behaviour": [ + { + "condition": "whsUndergoneReview == \"Yes\"", + "type": "enable_and_clear" + } + ] + }, + { + "name": "whsRevisedPlan", + "dataType": "text", + "behaviour": [ + { + "condition": "whsRevisedSubmitted == \"No\"", + "type": "visible" + } + ] + }, + { + "name": "whsIncidentsOccured", + "description": "Refer to Deed of Standing Offer (Clause 42 Work Health and Safety) for further information on these requirements.", + "dataType": "text", + "validate": "required", + "constraints": [ + "Yes", + "No" + ] + }, + { + "name": "whsIncidentReported", + "dataType": "text", + "validate": "required", + "constraints": [ + "Yes", + "No" + ], + "behaviour": [ + { + "condition": "whsIncidentsOccured == \"Yes\"", + "type": "enable_and_clear" + } + ] + }, + { + "name": "whsIncidentNotReported", + "dataType": "text", + "behaviour": [ + { + "condition": "whsIncidentReported == \"No\"", + "type": "visible" + } + ] + }, + { + "name": "deedOfStandingOfferActions", + "description": "This Schedule relates to additional conditions that apply to your organisation’s Indigenous Participation Plan. If your organisation’s Deed of Standing Offer does not include a Schedule 10, enter ‘Not applicable’.", + "dataType": "text", + "validate": "required,maxSize[5000]" + }, + { + "name": "indigenousTargetMeasuresOnTrack", + "dataType": "text", + "validate": "required", + "constraints": [ + "Yes", + "No" + ] + }, + { + "name": "indigenousTargetMeasuresNotOnTrack", + "dataType": "text", + "validate": "required,maxSize[5000]", + "behaviour": [ + { + "condition": "indigenousTargetMeasuresOnTrack == \"No\"", + "type": "enable_and_clear" + } + ] + }, + { + "dataType": "boolean", + "name": "reportedToIpprs", + "description": "" + }, + { + "dataType": "document", + "name": "ipprsReport", + "description": "" + }, + { + "dataType": "number", + "name": "organisationFteWorkforce", + "description": "Enter total RDP staff (full time equivalent) deployed on Services for the Deed and all Contracts (including non-DCCEEW Contracts) during this reporting period.", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "organisationFteIndigenousWorkforce", + "type": "computed" + }, + "rule": "min", + "message": "Numeric value must be higher or equal to the numeric value entered for 'What was your organisation’s full time equivalent Indigenous workforce deployed on the Services this reporting period?'" + } + ] + }, + { + "dataType": "number", + "name": "organisationFteIndigenousWorkforce", + "description": "Enter total RDP Indigenous staff (full time equivalent) deployed on Services for the Deed and all Contracts (including non-DCCEEW Contracts) during this reporting period.", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "organisationFteWorkforce", + "type": "computed" + }, + "rule": "max", + "message": "Numeric value must be less than or equal to the numeric value entered for 'What was your organisation’s full time equivalent workforce deployed on the Services this reporting period?'" + } + ] + }, + { + "dataType": "number", + "name": "servicesContractedValueFirstNations", + "description": "Enter total dollar value (GST inclusive) of goods and services contracted to First Nations people/Indigenous enterprises, during this reporting period, for the Deed and all Contracts (including non-DCCEEW Contracts).", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "organisationPanelProjectValue", + "type": "computed" + }, + "rule": "max", + "message": "The sum of the value of Services contracted to First Nations people/Indigenous enterprises for all reporting periods can not exceed the total $ value (GST inclusive) of the Deed and all Contracts (including non-DCCEEW Contracts)" + } + ] + }, + { + "dataType": "number", + "name": "organisationPanelProjectValue", + "description": "Total dollar value (GST inclusive) for the Deed and all Contracts (including non-DCCEEW Contracts).", + "validate": "required,min[0]" + }, + { + "dataType": "number", + "name": "supplyChainPerformancePercentage", + "description": "Calculated using value of Services contracted to First Nations people/Indigenous enterprises ÷ stored Total Organisation Panel/Project Value $ x 100", + "computed": { + "expression": "servicesContractedValueFirstNations / organisationPanelProjectValue * 100" + } + }, + { + "dataType": "number", + "name": "workforcePerformancePercentage", + "description": "Calculated using FTE Indigenous workforce ÷ FTE workforce x 100", + "computed": { + "expression": "organisationFteIndigenousWorkforce / organisationFteWorkforce * 100" + } + }, + { + "dataType": "number", + "name": "targetIndigenousParticipationPercentage", + "description": "Target Indigenous Participation Percentage for this reporting period" + }, + { + "dataType": "number", + "name": "targetIndigenousProcurementPercentage", + "description": "Target Indigenous Procurement Percentage for this reporting period" + }, + { + "name": "staffDevelopmentOpportunities", + "description": "This includes on-the-job, informal, and formal training. If no activities were undertaken, enter ‘Nil’.", + "dataType": "text", + "validate": "required,maxSize[5000]" + }, + { + "name": "communityTargetMeasuresOnTrack", + "dataType": "text", + "description": "If the plan is in development select ‘No’ and explain when the plan will be completed.", + "validate": "required", + "constraints": [ + "Yes", + "No" + ] + }, + { + "name": "communityTargetMeasuresNotOnTrack", + "dataType": "text", + "validate": "required,maxSize[5000]", + "behaviour": [ + { + "condition": "communityTargetMeasuresOnTrack == \"No\"", + "type": "enable_and_clear" + } + ] + }, + { + "name": "communityConductWorkshops", + "dataType": "text", + "description": "This question relates only to RCS 2.3. It does not include engagement activities covered by Project Support and Overhead Services.", + "validate": "required", + "constraints": [ + "Yes", + "No" + ] + }, + { + "columns": [ + { + "name": "workshopEventType", + "dataType": "text", + "validate": "required,maxSize[500]", + "behaviour": [ + { + "type": "enable_and_clear", + "condition": "communityConductWorkshops == \"Yes\"" + } + ] + }, + { + "name": "workshopTitle", + "dataType": "text", + "validate": "required,maxSize[500]", + "behaviour": [ + { + "type": "enable_and_clear", + "condition": "communityConductWorkshops == \"Yes\"" + } + ] + }, + { + "name": "workshopPurpose", + "dataType": "text", + "validate": "required,maxSize[5000]", + "behaviour": [ + { + "type": "enable_and_clear", + "condition": "communityConductWorkshops == \"Yes\"" + } + ] + }, + { + "name": "workshopDate", + "dataType": "date", + "validate": "required,past[now]", + "behaviour": [ + { + "type": "enable_and_clear", + "condition": "communityConductWorkshops == \"Yes\"" + } + ] + } + ], + "dataType": "list", + "name": "workshopList" + }, + { + "name": "communicationsTargetMeasuresOnTrack", + "dataType": "text", + "description": "If the plan is in development select ‘No’ and explain when the plan will be completed.", + "validate": "required", + "constraints": [ + "Yes", + "No" + ] + }, + { + "name": "communicationsTargetMeasuresNotOnTrack", + "dataType": "text", + "validate": "required,maxSize[5000]", + "behaviour": [ + { + "condition": "communicationsTargetMeasuresOnTrack == \"No\"", + "type": "enable_and_clear" + } + ] + }, + { + "name": "communicationMaterialPublished", + "dataType": "text", + "description": "This does not include communication activities undertaken under the ‘Communication Materials’ Project Service or regional capacity service. All Communication Materials must correctly acknowledge Australian Government funding.", + "validate": "required", + "constraints": [ + "Yes", + "No" + ] + }, + { + "columns": [ + { + "name": "communicationMaterialLink", + "dataType": "text", + "validate": "required,maxSize[500]", + "behaviour": [ + { + "type": "enable_and_clear", + "condition": "communicationMaterialPublished == \"Yes\"" + } + ] + } + ], + "dataType": "list", + "name": "communicationMaterialLinkList" + }, + { + "name": "communicationsMaterialAttachments", + "dataType": "list", + "columns": [ + { + "name": "communicationsMaterialAttachment", + "dataType": "document" + } + ] + }, + { + "dataType": "number", + "name": "projectDesignRequested", + "validate": "integer" + }, + { + "dataType": "number", + "name": "workOrderExecuted", + "validate": "integer" + } + ], + "modelName": "Regional capacity services - reporting", + "title": "Regional Capacity Services – Reporting", + "viewModel": [ + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Governance

" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "type": "selectOne", + "source": "governanceAndFinancialFrameworksOnTrack", + "preLabel": "Q1. As a Regional Delivery Partner, has your organisation maintained appropriate governance and financial frameworks as per Regional Capacity Services RCS 7?" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "textarea", + "rows": 4, + "source": "governanceAndFinancialFrameworksActions", + "preLabel": "Q1(a). Explain what actions are planned to get back on track." + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Work Health and Safety

" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "type": "selectOne", + "source": "whsUndergoneReview", + "preLabel": "Q2. During the reporting period has the WHS Plan undergone a revision or update? (Clause 42.5(b) of the Deed)" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "textarea", + "rows": 4, + "source": "whsChangesDescription", + "preLabel": "Q2(a). Provide a brief description of the changes to the WHS Plan." + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span6", + "type": "selectOne", + "source": "whsRevisedSubmitted", + "preLabel": "Q2(b). Has the revised WHS plan been submitted to the Customer Contract Manager?" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "", + "source": "whsRevisedPlan", + "preLabel": "Please submit the revised WHS Plan to the Customer Contract Manager." + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "type": "selectOne", + "source": "whsIncidentsOccured", + "preLabel": "Q3. During the reporting period, have any WHS matters that are required to be notified under clause 42.3 of the Deed occurred during the delivery of Regional Capacity Services?" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span6", + "type": "selectOne", + "source": "whsIncidentReported", + "preLabel": "Q3(a). Has the incident/event been reported to the Customer Contract Manager and the relevant documentation been provided?" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "", + "source": "whsIncidentNotReported", + "preLabel": "Please notify the Customer Contract Manager immediately, as outlined in the Deed of Standing Offer (clause 42.3 Notifying the Customer), to discuss." + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Indigenous Participation

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "textarea", + "rows": 4, + "source": "deedOfStandingOfferActions", + "preLabel": "Q4. Outline any actions your organisation has taken to address the requirements in Schedule 10 of the Deed of Standing Offer." + } + ] + }, + { + "type": "row", + "items": [ + { + "rows": 4, + "type": "selectOne", + "source": "indigenousTargetMeasuresOnTrack", + "preLabel": "Q5. Is your organisation on track to deliver the target measures identified in the Indigenous Participation Plan?" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "textarea", + "rows": 4, + "source": "indigenousTargetMeasuresNotOnTrack", + "preLabel": "Q5(a). Please outline what actions are planned to get back on track." + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "Q5(b). Please confirm that your organisation has reported via the IPPRS this period (Clause 38 Indigenous Procurement Policy), and that this report has been uploaded to the documents tab in MERIT.", + "source": "reportedToIpprs", + "type": "boolean" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "document", + "source": "ipprsReport", + "preLabel": "Please attach the document here." + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "Q5(c). Please complete workforce and supply chain data (Deed of Standing Offer Clause 38 Indigenous Procurement Policy). Please do not provide personal or commercial-in-confidence information when answering this question. Please retain documentation as evidence to support assurance activities undertaken to verify the reported information." + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "What was your organisation’s full time equivalent workforce deployed on the Services this reporting period?", + "source": "organisationFteWorkforce", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "What was your organisation’s full time equivalent Indigenous workforce deployed on the Services this reporting period?", + "source": "organisationFteIndigenousWorkforce", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "Workforce Performance % this reporting period", + "source": "workforcePerformancePercentage", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "Target Workforce Performance % this reporting period", + "source": "targetIndigenousParticipationPercentage", + "type": "number", + "readonly": true + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "Your total organisation panel/project $ value (GST inclusive).", + "source": "organisationPanelProjectValue", + "type": "number", + "readonly": true + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "What was the dollar value (GST inclusive) of Services contracted to First Nations people/Indigenous enterprises during this reporting period?", + "source": "servicesContractedValueFirstNations", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "Supply Chain Performance % this reporting period", + "source": "supplyChainPerformancePercentage", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "Target Supply Chain Performance % this reporting period", + "source": "targetIndigenousProcurementPercentage", + "type": "number", + "readonly": true + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Monitoring, Evaluation, Reporting and Improvement (MERI)

" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "textarea", + "rows": 4, + "source": "staffDevelopmentOpportunities", + "preLabel": "Q6. What MERI professional development opportunities (if any) have staff participated in? (RCS 4)" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Community Participation

" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "type": "selectOne", + "source": "communityTargetMeasuresOnTrack", + "preLabel": "Q7. Is your organisation on track to deliver the target measures identified in the Community Participation Plan?" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "textarea", + "rows": 4, + "source": "communityTargetMeasuresNotOnTrack", + "preLabel": "Q7(a). Please outline what actions are planned to get back on track." + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "type": "selectOne", + "source": "communityConductWorkshops", + "preLabel": "Q8. Did your organisation conduct workshops (or equivalent activities) to engage researchers, industry and Community members to define innovative practices and approaches that would improve the condition of natural resources as they relate to the 5-year Outcomes? (RCS 2.3)" + } + ] + }, + { + "type": "row", + "behaviour": [ + { + "type": "if_expression", + "condition": "communityConductWorkshops == \"Yes\"" + } + ], + "items": [ + { + "disableTableUpload": true, + "fixedWidth": true, + "columns": [ + { + "width": "25%", + "source": "workshopEventType", + "title": "Event type", + "type": "text" + }, + { + "width": "25%", + "source": "workshopTitle", + "title": "Title", + "type": "text" + }, + { + "width": "25%", + "source": "workshopPurpose", + "title": "Purpose", + "type": "textarea" + }, + { + "width": "25%", + "source": "workshopDate", + "title": "Date", + "type": "date" + } + ], + "userAddedRows": true, + "source": "workshopList", + "title": "Q8(a). Please provide details:*", + "type": "table" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "

Communications

" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "type": "selectOne", + "source": "communicationsTargetMeasuresOnTrack", + "preLabel": "Q9. Is your organisation on track to deliver the target measures identified in the Communications Plan?" + } + ] + }, + { + "type": "row", + "items": [ + { + "type": "textarea", + "rows": 4, + "source": "communicationsTargetMeasuresNotOnTrack", + "preLabel": "Q9(a). Please outline what actions are planned to get back on track." + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "type": "selectOne", + "source": "communicationMaterialPublished", + "preLabel": "Q10. During this reporting period, was any communication material published promoting organisational and project progress and performance, First Nations leadership and engagement, and opportunities for the Community to participate in projects, including through websites and social media, as outlined in RCS 3?" + } + ] + }, + { + "type": "row", + "behaviour": [ + { + "type": "if_expression", + "condition": "communicationMaterialPublished == \"Yes\"" + } + ], + "items": [ + { + "disableTableUpload": true, + "fixedWidth": true, + "columns": [ + { + "source": "communicationMaterialLink", + "title": "Material", + "type": "text" + } + ], + "userAddedRows": true, + "source": "communicationMaterialLinkList", + "title": "Q10(a). Please provide a link to, or a copy of, the material (one row per item)*", + "type": "table" + }, + { + "type": "table", + "source": "communicationsMaterialAttachments", + "userAddedRows": true, + "disableTableUpload": true, + "columns": [ + { + "title": "Attached communication material", + "source": "communicationsMaterialAttachment", + "type": "document" + } + ] + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "type": "number", + "source": "projectDesignRequested", + "preLabel": "Q11. How many Requests for Project Design did your organisation receive in the last quarter from Customers other than DCCEEW and DAFF (RCS 9.1(c)(i))?" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "type": "number", + "source": "workOrderExecuted", + "preLabel": "Q12. How many Work Orders did your organisation execute in the last quarter with Customers other than DCCEEW and DAFF (RCS 9.1(c)(ii))?" + } + ] + } + ] + }, + "modelName": null, + "templateName": "regionalCapacityServicesReport", + "optional": false, + "optionalQuestionText": null, + "title": null, + "collapsibleHeading": null, + "name": "Regional capacity services - reporting", + "description": null + } + ], + "type": "Report", + "category": null, + "status": "active", + "lastUpdatedUserId": "1493", + "description": null, + "formVersion": 2 +} \ No newline at end of file diff --git a/forms/other/regionalCapacityServicesReport.json b/forms/other/regionalCapacityServicesReportV3.json similarity index 71% rename from forms/other/regionalCapacityServicesReport.json rename to forms/other/regionalCapacityServicesReportV3.json index 560be7adc..edf92a750 100644 --- a/forms/other/regionalCapacityServicesReport.json +++ b/forms/other/regionalCapacityServicesReportV3.json @@ -9,6 +9,56 @@ "collapsedByDefault": false, "templateName": "regionalCapacityServicesReport", "template": { + "pre-populate": [ + { + "source": { + "context-path": "owner" + }, + "mapping": [ + { + "target": "targetIndigenousParticipationPercentage", + "source-path": "periodTargets.targetIndigenousParticipationPercentage" + } + ], + "merge": { + "targetIndigenousParticipationPercentage": { + "replaceExisting": true + } + } + }, + { + "source": { + "context-path": "owner" + }, + "mapping": [ + { + "target": "targetIndigenousProcurementPercentage", + "source-path": "periodTargets.targetIndigenousProcurementPercentage" + } + ], + "merge": { + "targetIndigenousProcurementPercentage": { + "replaceExisting": true + } + } + }, + { + "source": { + "context-path": "owner" + }, + "mapping": [ + { + "target": "organisationPanelProjectValue", + "source-path": "totalContractValue" + } + ], + "merge": { + "organisationPanelProjectValue": { + "replaceExisting": true + } + } + } + ], "dataModel": [ { "name": "governanceAndFinancialFrameworksOnTrack", @@ -138,14 +188,99 @@ ] }, { - "dataType": "boolean", - "name": "reportedToIpprs", - "description": "" + "dataType": "number", + "name": "organisationFteWorkforce", + "description": "Enter total RDP staff (full time equivalent) deployed on Services for the Deed and all Contracts (including non-DCCEEW Contracts) during this reporting period.", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "organisationFteIndigenousWorkforce", + "type": "computed" + }, + "rule": "min", + "message": "Numeric value must be higher or equal to the numeric value entered for 'What was your organisation’s full time equivalent Indigenous workforce deployed on the Services this reporting period?'" + } + ] + }, + { + "dataType": "number", + "name": "organisationFteIndigenousWorkforce", + "description": "Enter total RDP Indigenous staff (full time equivalent) deployed on Services for the Deed and all Contracts (including non-DCCEEW Contracts) during this reporting period.", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "organisationFteWorkforce", + "type": "computed" + }, + "rule": "max", + "message": "Numeric value must be less than or equal to the numeric value entered for 'What was your organisation’s full time equivalent workforce deployed on the Services this reporting period?'" + } + ] + }, + { + "dataType": "number", + "name": "servicesContractedValueFirstNations", + "description": "Enter total dollar value (GST inclusive) of goods and services contracted to First Nations people/Indigenous enterprises, during this reporting period, for the Deed and all Contracts (including non-DCCEEW Contracts).", + "validate": [ + { + "rule": "required" + }, + { + "rule": "min[0]" + }, + { + "param": { + "expression": "organisationPanelProjectValue", + "type": "computed" + }, + "rule": "max", + "message": "The sum of the value of Services contracted to First Nations people/Indigenous enterprises for all reporting periods can not exceed the total $ value (GST inclusive) of the Deed and all Contracts (including non-DCCEEW Contracts)" + } + ] + }, + { + "dataType": "number", + "name": "organisationPanelProjectValue", + "description": "Total dollar value (GST inclusive) for the Deed and all Contracts (including non-DCCEEW Contracts).", + "validate": "required,min[0]" + }, + { + "dataType": "number", + "name": "supplyChainPerformancePercentage", + "description": "Calculated using value of Services contracted to First Nations people/Indigenous enterprises ÷ stored Total Organisation Panel/Project Value $ x 100", + "computed": { + "expression": "servicesContractedValueFirstNations / organisationPanelProjectValue * 100" + } }, { - "dataType": "document", - "name": "ipprsReport", - "description": "" + "dataType": "number", + "name": "workforcePerformancePercentage", + "description": "Calculated using FTE Indigenous workforce ÷ FTE workforce x 100", + "computed": { + "expression": "organisationFteIndigenousWorkforce / organisationFteWorkforce * 100" + } + }, + { + "dataType": "number", + "name": "targetIndigenousParticipationPercentage", + "description": "Target Indigenous Participation Percentage for this reporting period" + }, + { + "dataType": "number", + "name": "targetIndigenousProcurementPercentage", + "description": "Target Indigenous Procurement Percentage for this reporting period" }, { "name": "staffDevelopmentOpportunities", @@ -463,14 +598,80 @@ } ] }, + { + "type": "row", + "items": [ + { + "type": "literal", + "source": "Q5(b). Please complete workforce and supply chain data (Deed of Standing Offer Clause 38 Indigenous Procurement Policy). Please do not provide personal or commercial-in-confidence information when answering this question. Please retain documentation as evidence to support assurance activities undertaken to verify the reported information." + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "What was your organisation’s full time equivalent workforce deployed on the Services this reporting period?", + "source": "organisationFteWorkforce", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "What was your organisation’s full time equivalent Indigenous workforce deployed on the Services this reporting period?", + "source": "organisationFteIndigenousWorkforce", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "Workforce Performance % this reporting period", + "source": "workforcePerformancePercentage", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "Target Workforce Performance % this reporting period", + "source": "targetIndigenousParticipationPercentage", + "type": "number", + "readonly": true + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "Your total organisation panel/project $ value (GST inclusive).", + "source": "organisationPanelProjectValue", + "type": "number", + "readonly": true + } + ] + }, { "type": "row", "items": [ { "css": "span7", - "preLabel": "Q5(b). Please confirm that your organisation has reported via the IPPRS this period (Clause 38 Indigenous Procurement Policy), and that this report has been uploaded to the documents tab in MERIT.", - "source": "reportedToIpprs", - "type": "boolean" + "preLabel": "What was the dollar value (GST inclusive) of Services contracted to First Nations people/Indigenous enterprises during this reporting period?", + "source": "servicesContractedValueFirstNations", + "type": "number" } ] }, @@ -478,9 +679,22 @@ "type": "row", "items": [ { - "type": "document", - "source": "ipprsReport", - "preLabel": "Please attach the document here." + "css": "span7", + "preLabel": "Supply Chain Performance % this reporting period", + "source": "supplyChainPerformancePercentage", + "type": "number" + } + ] + }, + { + "type": "row", + "items": [ + { + "css": "span7", + "preLabel": "Target Supply Chain Performance % this reporting period", + "source": "targetIndigenousProcurementPercentage", + "type": "number", + "readonly": true } ] }, @@ -698,7 +912,7 @@ } } ], - "formVersion": 1, + "formVersion": 3, "category": null, "status": "active", "gmsId": null, diff --git a/gradle.properties b/gradle.properties index 3ddc849d3..0c5d549ee 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -meritVersion=4.0 +meritVersion=4.1-SNAPSHOT grailsVersion=6.2.0 grailsGradlePluginVersion=6.1.2 gormVersion=8.1.2 @@ -16,4 +16,4 @@ org.gradle.jvmargs=-Xmx2048M seleniumVersion=3.12.0 seleniumSafariDriverVersion=3.14.0 snapshotCacheTime=1800 -alaSecurityLibsVersion=6.3.0-SNAPSHOT +alaSecurityLibsVersion=6.3.0 diff --git a/grails-app/assets/components/javascript/associated-orgs.js b/grails-app/assets/components/javascript/associated-orgs.js new file mode 100644 index 000000000..d64425405 --- /dev/null +++ b/grails-app/assets/components/javascript/associated-orgs.js @@ -0,0 +1,230 @@ +/* + * Copyright (C) 2022 Atlas of Living Australia + * All Rights Reserved. + * + * The contents of this file are subject to the Mozilla Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + */ +/** + * This component renders a list of organisations and their relationship to an entity + */ +ko.components.register('associated-orgs', { + + /** + * @param params an object with the following keys: + * externalIds: an observable array of objects, each object will have two observables, idType and externalId. + * externalIdTypes: an array of label/value pairs that define the selectable options for the idType + * validationNamespace: a string to store the validation function in the global namespace for use by jquery validation engine + * validate: a jquery-validation-engine style function that will validate the external ids. (Note this function + * should return a string containing the error if the validation fails). + */ + viewModel: function (params) { + var self = this; + self.organisationSearchUrl = params.organisationSearchUrl; + self.organisationViewUrl = params.organisationViewUrl; + self.displayName = params.displayName; + self.relationshipTypes = params.relationshipTypes; + + var $modal = $('#add-or-edit-organisation'); + $modal.find('form').validationEngine(); + + function findMatchingOrganisation(organisationId, callback) { + $.get(self.organisationSearchUrl+'?searchTerm='+organisationId).done(function(results) { + if (results && results.hits && results.hits.hits) { + var matchingOrg = _.find(results.hits.hits, function (hit) { + return hit._id == organisationId; + }); + + callback(matchingOrg); + } + }); + } + + function AssociatedOrg(associatedOrg) { + + associatedOrg = associatedOrg || {}; + this.name = ko.observable(associatedOrg.name); + this.organisationName = ko.observable(associatedOrg.organisationName); + this.description = ko.observable(associatedOrg.description); + this.organisationId = ko.observable(associatedOrg.organisationId); + this.fromDate = ko.observable(associatedOrg.fromDate).extend({simpleDate:false}); + this.toDate = ko.observable(associatedOrg.toDate).extend({simpleDate:false}); + this.label = ko.observable(this.name()); + + var previousOrganisationId = null; + var organisationName = null; + var queryInProgress = false; + var self = this; + function setLabel() { + if (organisationName && organisationName != self.name()) { + self.label(self.name() + ' (' + organisationName + ')'); + } + else { + self.label(self.name()); + } + } + function updateLabel() { + if (!queryInProgress && self.organisationId() && self.organisationId() != previousOrganisationId) { + queryInProgress = true; + findMatchingOrganisation(self.organisationId(), function(matchingOrg) { + previousOrganisationId = self.organisationId(); + organisationName = matchingOrg && matchingOrg._source ? matchingOrg._source.name : null; + setLabel(); + queryInProgress = false; + }); + } + setLabel(); + } + this.organisationId.subscribe(updateLabel, this); + this.name.subscribe(setLabel, this); + updateLabel(); + + + this.toJSON = function() { + var result = ko.mapping.toJS(this); + delete result.label; + return result; + } + } + + self.associatedOrgs = ko.observableArray(_.map(params.associatedOrgs(), function(org) { + return new AssociatedOrg(org); + })); + // Overwrites the associatedOrgs observable with the mapped values so they are editable and changes in + // this component are reflected in the parent component. + params.associatedOrgs(self.associatedOrgs()); + + self.validationNamespace = params.validationNamespace; + + self.organisationSearchUrl = params.organisationSearchUrl; + self.allowedNames = ko.observableArray([]); + + self.removeAssociatedOrg = function (org) { + self.associatedOrgs.remove(org); + } + + // Maintains the state of which organisation is being edited or added + self.selectedOrganisation = null; + + self.addAssociatedOrg = function () { + self.selectedOrganisation = new AssociatedOrg(); + openEditModal(); + } + + self.editAssociatedOrg = function (organisation) { + self.selectedOrganisation = organisation; + openEditModal(); + } + + function openEditModal() { + + var orgId = self.selectedOrganisation.organisationId(); + if (orgId) { + findMatchingOrganisation(orgId, function(matchingOrg) { + if (matchingOrg && matchingOrg._source) { + self.allowedNames(self.allowedNamesForOrganisation(matchingOrg._source)); + copy(self.selectedOrganisation, self.editableOrganisation); + $('#searchOrganisation').val(matchingOrg._source.name); + $modal.modal('show'); + } + else { + bootbox.alert("Unable to edit organisation") + } + }); + } + else { + self.clearSelectedOrganisation(); + $modal.modal('show'); + } + + } + + self.okPressed = function () { + var valid = $modal.find('form').validationEngine('validate'); + if (!valid) { + return; + } + if (!_.contains(self.associatedOrgs(), self.selectedOrganisation)) { + self.associatedOrgs.push(self.selectedOrganisation); + } + copy(self.editableOrganisation, self.selectedOrganisation); + self.close(); + } + + self.close = function() { + $modal.modal('hide'); + } + + function copy(source, destination) { + destination.organisationId(source.organisationId()); + destination.name(source.name()); + destination.description(source.description()); + destination.fromDate(source.fromDate()); + destination.toDate(source.toDate()); + } + + self.allowedNamesForOrganisation = function(organisation) { + var allowedNames = []; + allowedNames.push(organisation.name); + + if (organisation.contractNames) { + allowedNames = allowedNames.concat(organisation.contractNames); + } + return allowedNames; + } + + /** + * This method is designed to be used by the jquery validation engine so a passed validation will + * return undefined / null, and a failed validation will return an error message. + * @returns {*} A message to display if validation failed. + */ + self.associatedOrgValidation = function() { + if (params.validate) { + return params.validate(); + } + } + + self.organisationNames = ko.observableArray(); + + self.selectOrganisation = function(item) { + + if (item && item.source) { + self.editableOrganisation.organisationId(item.source.organisationId); + self.editableOrganisation.organisationName(item.source.name); + if (!self.editableOrganisation.name()) { + self.editableOrganisation.name(item.source.name); + } + self.allowedNames(self.allowedNamesForOrganisation(item.source)); + } + else { + self.editableOrganisation.organisationId(null); + } + + } + + self.orgSearchLabel = function(org) { + return org.name + ' ( ' + org.organisationId + ' )'; + }; + + self.clearSelectedOrganisation = function() { + $('#searchOrganisation').val(''); + self.allowedNames([]); + self.editableOrganisation.organisationId(null); + self.editableOrganisation.name(''); + self.editableOrganisation.description(''); + self.editableOrganisation.fromDate(''); + self.editableOrganisation.toDate(''); + } + + self.editableOrganisation = new AssociatedOrg(); + + }, + template: componentService.getTemplate('associated-orgs') +}); \ No newline at end of file diff --git a/grails-app/assets/components/template/associated-orgs.html b/grails-app/assets/components/template/associated-orgs.html new file mode 100644 index 000000000..97443d505 --- /dev/null +++ b/grails-app/assets/components/template/associated-orgs.html @@ -0,0 +1,101 @@ + +
+ Associated Organisations + +
+ +
+ + +
+
+ + + + + + + + + +
+
+ ( + + from + + + to + + ) +
+ +
+
+ + +
+ +
+ + + + \ No newline at end of file diff --git a/grails-app/assets/javascripts/admin.js b/grails-app/assets/javascripts/admin.js index 80f845ada..604ee5f92 100644 --- a/grails-app/assets/javascripts/admin.js +++ b/grails-app/assets/javascripts/admin.js @@ -153,8 +153,27 @@ var ProjectImportViewModel = function (config) { self.importing = ko.observable(false); self.update = ko.observable(false); + self.success = ko.computed(function() { + var success = !self.preview(); + if (success) { + for (var i = 0; i < self.progressDetail().length; i++) { + success = success && self.progressDetail()[i].success; + } + } + + return success; + + }); + self.uploadOptions = { url: config.importUrl, + change: function() { + self.preview(true); + self.finishedPreview(false); + self.finished(false); + self.progressDetail([]); + self.progressSummary(''); + }, done: function (e, data) { if (data.result) { diff --git a/grails-app/assets/javascripts/budget.js b/grails-app/assets/javascripts/budget.js new file mode 100644 index 000000000..706485eb7 --- /dev/null +++ b/grails-app/assets/javascripts/budget.js @@ -0,0 +1,109 @@ +function BudgetViewModel(o, period) { + var self = this; + if (!o) o = {}; + + self.overallTotal = ko.observable(0.0); + + var headerArr = []; + for (i = 0; i < period.length; i++) { + headerArr.push({"data": period[i]}); + } + self.headers = ko.observableArray(headerArr); + + var row = []; + o.rows ? row = o.rows : row.push(ko.mapping.toJS(new BudgetRowViewModel({}, period))); + self.rows = ko.observableArray($.map(row, function (obj, i) { + // Headers don't match with previously stored headers, adjust rows accordingly. + if (o.headers && period && o.headers.length != period.length) { + var updatedRow = []; + for (i = 0; i < period.length; i++) { + var index = -1; + + for (j = 0; j < o.headers.length; j++) { + if (period[i] == o.headers[j].data) { + index = j; + break; + } + } + updatedRow.push(index != -1 ? obj.costs[index] : 0.0) + index = -1; + } + obj.costs = updatedRow; + } + + return new BudgetRowViewModel(obj, period); + })); + + self.overallTotal = ko.computed(function () { + var total = 0.0; + ko.utils.arrayForEach(this.rows(), function (row) { + if (row.rowTotal()) { + total += parseFloat(row.rowTotal()); + } + }); + return total; + }, this).extend({currency: {}}); + + var allBudgetTotal = []; + for (i = 0; i < period.length; i++) { + allBudgetTotal.push(new BudgetTotalViewModel(this.rows, i)); + } + self.columnTotal = ko.observableArray(allBudgetTotal); + + self.addRow = function () { + self.rows.push(new BudgetRowViewModel({}, period)); + } +}; + +function BudgetTotalViewModel(rows, index) { + var self = this; + self.data = ko.computed(function () { + var total = 0.0; + ko.utils.arrayForEach(rows(), function (row) { + if (row.costs()[index]) { + total += parseFloat(row.costs()[index].dollar()); + } + }); + return total; + }, this).extend({currency: {}}); +}; + + +function BudgetRowViewModel(o, period) { + var self = this; + if (!o) o = {}; + if (!o.activities || !_.isArray(o.activities)) o.activities = []; + self.shortLabel = ko.observable(o.shortLabel); + self.description = ko.observable(o.description); + self.activities = ko.observableArray(o.activities); + + var arr = []; + // Have at least one period to record, which will essentially be a project total. + var minPeriods = _.max([1, period.length]); + for (var i = 0; i < minPeriods; i++) { + arr.push(ko.mapping.toJS(new FloatViewModel())); + } + + if (o.costs && o.costs.length != arr.length) { + o.costs = arr; + } + o.costs ? arr = o.costs : arr; + self.costs = ko.observableArray($.map(arr, function (obj, i) { + return new FloatViewModel(obj); + })); + + self.rowTotal = ko.computed(function () { + var total = 0.0; + ko.utils.arrayForEach(this.costs(), function (cost) { + if (cost.dollar()) + total += parseFloat(cost.dollar()); + }); + return total; + }, this).extend({currency: {}}); +}; + +function FloatViewModel(o) { + var self = this; + if (!o) o = {}; + self.dollar = ko.observable(o.dollar ? o.dollar : 0.0).extend({numericString: 2}).extend({currency: {}}); +}; \ No newline at end of file diff --git a/grails-app/assets/javascripts/fieldcapture-application.js b/grails-app/assets/javascripts/fieldcapture-application.js index dc55151fb..080f54dca 100644 --- a/grails-app/assets/javascripts/fieldcapture-application.js +++ b/grails-app/assets/javascripts/fieldcapture-application.js @@ -201,7 +201,7 @@ function autoSaveModel(viewModel, saveUrl, options) { preventNavigationIfDirty: false, defaultDirtyFlag:ko.simpleDirtyFlag, dirtyFlagRateLimitMs: 0, // If ko.dirtyFlag is used (rather than ko.simpleDirtyFlag), this is the rate limit in ms for detecting changes. - healthCheckUrl:fcConfig && fcConfig.healthCheckUrl + healthCheckUrl: fcConfig && fcConfig.healthCheckUrl }; var config = $.extend(defaults, options); @@ -581,7 +581,8 @@ function Documents(options) { var lcFilter = (self.documentFilter() || '').trim().toLowerCase(); var field = self.documentFilterField(); return ko.utils.arrayFilter(self.documents(), function(doc) { - return (doc[field.fun]() || '').toLowerCase().indexOf(lcFilter) !== -1; + var docValue = ko.utils.unwrapObservable(doc[field.fun]); + return (docValue || '').toLowerCase().indexOf(lcFilter) !== -1; }); }); diff --git a/grails-app/assets/javascripts/knockout-custom-bindings.js b/grails-app/assets/javascripts/knockout-custom-bindings.js index 189daddfe..3f6890998 100644 --- a/grails-app/assets/javascripts/knockout-custom-bindings.js +++ b/grails-app/assets/javascripts/knockout-custom-bindings.js @@ -235,6 +235,8 @@ ko.bindingHandlers.elasticSearchAutocomplete = { var options = {}; + var getLabel = _.isFunction(labelProp) ? labelProp : function(item) { return item[labelProp]; }; + var getValue = _.isFunction(valueProp) ? valueProp : function(item) { return item[valueProp]; }; options.source = function(request, response) { $(element).addClass("ac_loading"); @@ -248,7 +250,7 @@ ko.bindingHandlers.elasticSearchAutocomplete = { if (data.hits) { var hits = data.hits.hits || []; items = $.map(hits, function (hit) { - return {label: hit._source[labelProp], value: hit._source[valueProp], source:hit._source}; + return {label: getLabel(hit._source), value: getValue(hit._source), source:hit._source}; }); response(items); } @@ -264,7 +266,6 @@ ko.bindingHandlers.elasticSearchAutocomplete = { }; options.select = function(event, ui) { result(ui.item); - $(this).val(""); // Clear the search field }; $(element).autocomplete(options); diff --git a/grails-app/assets/javascripts/meriplan.js b/grails-app/assets/javascripts/meriplan.js index 31df32bfe..8ee87153f 100644 --- a/grails-app/assets/javascripts/meriplan.js +++ b/grails-app/assets/javascripts/meriplan.js @@ -1984,116 +1984,6 @@ function SingleAssetOutcomeViewModel(o, config) { }; }; -function BudgetViewModel(o, period) { - var self = this; - if (!o) o = {}; - - self.overallTotal = ko.observable(0.0); - - var headerArr = []; - for (i = 0; i < period.length; i++) { - headerArr.push({"data": period[i]}); - } - self.headers = ko.observableArray(headerArr); - - var row = []; - o.rows ? row = o.rows : row.push(ko.mapping.toJS(new BudgetRowViewModel({}, period))); - self.rows = ko.observableArray($.map(row, function (obj, i) { - // Headers don't match with previously stored headers, adjust rows accordingly. - if (o.headers && period && o.headers.length != period.length) { - var updatedRow = []; - for (i = 0; i < period.length; i++) { - var index = -1; - - for (j = 0; j < o.headers.length; j++) { - if (period[i] == o.headers[j].data) { - index = j; - break; - } - } - updatedRow.push(index != -1 ? obj.costs[index] : 0.0) - index = -1; - } - obj.costs = updatedRow; - } - - return new BudgetRowViewModel(obj, period); - })); - - self.overallTotal = ko.computed(function () { - var total = 0.0; - ko.utils.arrayForEach(this.rows(), function (row) { - if (row.rowTotal()) { - total += parseFloat(row.rowTotal()); - } - }); - return total; - }, this).extend({currency: {}}); - - var allBudgetTotal = []; - for (i = 0; i < period.length; i++) { - allBudgetTotal.push(new BudgetTotalViewModel(this.rows, i)); - } - self.columnTotal = ko.observableArray(allBudgetTotal); - - self.addRow = function () { - self.rows.push(new BudgetRowViewModel({}, period)); - } -}; - -function BudgetTotalViewModel(rows, index) { - var self = this; - self.data = ko.computed(function () { - var total = 0.0; - ko.utils.arrayForEach(rows(), function (row) { - if (row.costs()[index]) { - total += parseFloat(row.costs()[index].dollar()); - } - }); - return total; - }, this).extend({currency: {}}); -}; - - -function BudgetRowViewModel(o, period) { - var self = this; - if (!o) o = {}; - if (!o.activities || !_.isArray(o.activities)) o.activities = []; - self.shortLabel = ko.observable(o.shortLabel); - self.description = ko.observable(o.description); - self.activities = ko.observableArray(o.activities); - - var arr = []; - // Have at least one period to record, which will essentially be a project total. - var minPeriods = _.max([1, period.length]); - for (var i = 0; i < minPeriods; i++) { - arr.push(ko.mapping.toJS(new FloatViewModel())); - } - - if (o.costs && o.costs.length != arr.length) { - o.costs = arr; - } - o.costs ? arr = o.costs : arr; - self.costs = ko.observableArray($.map(arr, function (obj, i) { - return new FloatViewModel(obj); - })); - - self.rowTotal = ko.computed(function () { - var total = 0.0; - ko.utils.arrayForEach(this.costs(), function (cost) { - if (cost.dollar()) - total += parseFloat(cost.dollar()); - }); - return total; - }, this).extend({currency: {}}); -}; - -function FloatViewModel(o) { - var self = this; - if (!o) o = {}; - self.dollar = ko.observable(o.dollar ? o.dollar : 0.0).extend({numericString: 2}).extend({currency: {}}); -}; - function ActivitiesViewModel(activities, programActivities) { var self = this; diff --git a/grails-app/assets/javascripts/organisation-manifest.js b/grails-app/assets/javascripts/organisation-manifest.js index 868bce68d..5a86c776e 100644 --- a/grails-app/assets/javascripts/organisation-manifest.js +++ b/grails-app/assets/javascripts/organisation-manifest.js @@ -6,4 +6,6 @@ //= require sites.js //= require reporting.js //= require document.js +//= require organisationService.js +//= require services.js //= require organisation.js diff --git a/grails-app/assets/javascripts/organisation.js b/grails-app/assets/javascripts/organisation.js index 2258ae5de..500422f0f 100644 --- a/grails-app/assets/javascripts/organisation.js +++ b/grails-app/assets/javascripts/organisation.js @@ -1,6 +1,9 @@ //= require tab-init.js //= require attach-document-no-ui //= require reportService +//= require components.js +//= require ecodata-components.js +//= require budget.js /** * Knockout view model for organisation pages. * @param props JSON/javascript representation of the organisation. @@ -18,51 +21,203 @@ OrganisationViewModel = function (props, options) { var config = _.extend({}, defaults, options); - var orgTypesMap = { - aquarium:'Aquarium', - archive:'Archive', - botanicGarden:'Botanic Garden', - conservation:'Conservation', - fieldStation:'Field Station', - government:'Government', - governmentDepartment:'Government Department', - herbarium:'Herbarium', - historicalSociety:'Historical Society', - horticulturalInstitution:'Horticultural Institution', - independentExpert:'Independent Expert', - industry:'Industry', - laboratory:'Laboratory', - library:'Library', - management:'Management', - museum:'Museum', - natureEducationCenter:'Nature Education Center', - nonUniversityCollege:'Non-University College', - park:'Park', - repository:'Repository', - researchInstitute:'Research Institute', - school:'School', - scienceCenter:'Science Center', - society:'Society', - university:'University', - voluntaryObserver:'Voluntary Observer', - zoo:'Zoo' - }; + // Organisation entity types from the ABN lookup service + self.entityTypes = [ + + {code:"ADF", label:"Approved Deposit Fund"}, + {code:"ARF", label:"APRA Regulated Fund (Fund Type Unknown)"}, + {code:"CCB", label:"Commonwealth Government Public Company"}, + {code:"CCC",label:"Commonwealth Government Co-operative"}, + {code:"CCL", label:"Commonwealth Government Limited Partnership"}, + {code:"CCN", label:"Commonwealth Government Other Unincorporated Entity"}, + {code:"CCO", label:"Commonwealth Government Other Incorporated Entity"}, + {code:"CCP", label:"Commonwealth Government Pooled Development Fund"}, + {code:"CCR", label:"Commonwealth Government Private Company"}, + {code:"CCS", label:"Commonwealth Government Strata Title"}, + {code:"CCT", label:"Commonwealth Government Public Trading Trust"}, + {code:"CCU", label:"Commonwealth Government Corporate Unit Trust"}, + {code:"CGA", label:"Commonwealth Government Statutory Authority"}, + {code:"CGC", label:"Commonwealth Government Company"}, + {code:"CGE", label:"Commonwealth Government Entity"}, + {code:"CGP", label:"Commonwealth Government Partnership"}, + {code:"CGS", label:"Commonwealth Government Super Fund"}, + {code:"CGT", label:"Commonwealth Government Trust"}, + {code:"CMT", label:"Cash Management Trust"}, + {code:"COP", label:"Co-operative"}, + {code:"CSA", label:"Commonwealth Government APRA Regulated Public Sector Fund"}, + {code:"CSP", label:"Commonwealth Government APRA Regulated Public Sector Scheme"}, + {code:"CSS", label:"Commonwealth Government Non-Regulated Super Fund"}, + {code:"CTC", label:"Commonwealth Government Cash Management Trust"}, + {code:"CTD", label:"Commonwealth Government Discretionary Services Management Trust"}, + {code:"CTF", label:"Commonwealth Government Fixed Trust"}, + {code:"CTH", label:"Commonwealth Government Hybrid Trust"}, + {code:"CTI", label:"Commonwealth Government Discretionary Investment Trust"}, + {code:"CTL", label:"Commonwealth Government Listed Public Unit Trust"}, + {code:"CTQ", label:"Commonwealth Government Unlisted Public Unit Trust"}, + {code:"CTT", label:"Commonwealth Government Discretionary Trading Trust"}, + {code:"CTU", label:"Commonwealth Government Fixed Unit Trust"}, + {code:"CUT", label:"Corporate Unit Trust"}, + {code:"DES", label:"Deceased Estate"}, + {code:"DIP", label:"Diplomatic/Consulate Body or High Commissioner"}, + {code:"DIT", label:"Discretionary Investment Trust"}, + {code:"DST", label:"Discretionary Services Management Trust"}, + {code:"DTT", label:"Discretionary Trading Trust"}, + {code:"FHS", label:"First Home Saver Accounts Trust"}, + {code:"FPT", label:"Family Partnership"}, + {code:"FUT", label:"Fixed Unit Trust"}, + {code:"FXT", label:"Fixed Trust"}, + {code:"HYT", label:"Hybrid Trust"}, + {code:"IND", label:"Individual/Sole Trader"}, + {code:"LCB", label:"Local Government Public Company"}, + {code:"LCC", label:"Local Government Co-operative"}, + {code:"LCL", label:"Local Government Limited Partnership"}, + {code:"LCN", label:"Local Government Other Unincorporated Entity"}, + {code:"LCO", label:"Local Government Other Incorporated Entity"}, + {code:"LCP", label:"Local Government Pooled Development Fund"}, + {code:"LCR", label:"Local Government Private Company"}, + {code:"LCS", label:"Local Government Strata Title"}, + {code:"LCT", label:"Local Government Public Trading Trust"}, + {code:"LCU", label:"Local Government Corporate Unit Trust"}, + {code:"LGA", label:"Local Government Statutory Authority"}, + {code:"LGC", label:"Local Government Company"}, + {code:"LGE", label:"Local Government Entity"}, + {code:"LGP", label:"Local Government Partnership"}, + {code:"LGT", label:"Local Government Trust"}, + {code:"LPT", label:"Limited Partnership"}, + {code:"LSA", label:"Local Government APRA Regulated Public Sector Fund"}, + {code:"LSP", label:"Local Government APRA Regulated Public Sector Scheme"}, + {code:"LSS", label:"Local Government Non-Regulated Super Fund"}, + {code:"LTC", label:"Local Government Cash Management Trust"}, + {code:"LTD", label:"Local Government Discretionary Services Management Trust"}, + {code:"LTF", label:"Local Government Fixed Trust"}, + {code:"LTH", label:"Local Government Hybrid Trust"}, + {code:"LTI", label:"Local Government Discretionary Investment Trust"}, + {code:"LTL", label:"Local Government Listed Public Unit Trust"}, + {code:"LTQ", label:"Local Government Unlisted Public Unit Trust"}, + {code:"LTT", label:"Local Government Discretionary Trading Trust"}, + {code:"LTU", label:"Local Government Fixed Unit Trust"}, + {code:"NPF", label:"APRA Regulated Non-Public Offer Fund"}, + {code:"NRF", label:"Non-Regulated Superannuation Fund"}, + {code:"OIE", label:"Other Incorporated Entity"}, + {code:"PDF", label:"Pooled Development Fund"}, + {code:"POF", label:"APRA Regulated Public Offer Fund"}, + {code:"PQT", label:"Unlisted Public Unit Trust"}, + {code:"PRV", label:"Australian Private Company"}, + {code:"PST", label:"Pooled Superannuation Trust"}, + {code:"PTR", label:"Other Partnership"}, + {code:"PTT", label:"Public Trading trust"}, + {code:"PUB", label:"Australian Public Company"}, + {code:"PUT", label:"Listed Public Unit Trust"}, + {code:"SAF", label:"Small APRA Regulated Fund"}, + {code:"SCB", label:"State Government Public Company"}, + {code:"SCC", label:"State Government Co-operative"}, + {code:"SCL", label:"State Government Limited Partnership"}, + {code:"SCN", label:"State Government Other Unincorporated Entity"}, + {code:"SCO", label:"State Government Other Incorporated Entity"}, + {code:"SCP", label:"State Government Pooled Development Fund"}, + {code:"SCR", label:"State Government Private Company"}, + {code:"SCS", label:"State Government Strata Title"}, + {code:"SCT", label:"State Government Public Trading Trust"}, + {code:"SCU", label:"State Government Corporate Unit Trust"}, + {code:"SGA", label:"State Government Statutory Authority"}, + {code:"SGC", label:"State Government Company"}, + {code:"SGE", label:"State Government Entity"}, + {code:"SGP", label:"State Government Partnership"}, + {code:"SGT", label:"State Government Trust"}, + {code:"SMF", label:"ATO Regulated Self-Managed Superannuation Fund"}, + {code:"SSA", label:"State Government APRA Regulated Public Sector Fund"}, + {code:"SSP", label:"State Government APRA Regulated Public Sector Scheme"}, + {code:"SSS", label:"State Government Non-Regulated Super Fund"}, + {code:"STC", label:"State Government Cash Management Trust"}, + {code:"STD", label:"State Government Discretionary Services Management Trust"}, + {code:"STF", label:"State Government Fixed Trust"}, + {code:"STH", label:"State Government Hybrid Trust"}, + {code:"STI", label:"State Government Discretionary Investment Trust"}, + {code:"STL", label:"State Government Listed Public Unit Trust"}, + {code:"STQ", label:"State Government Unlisted Public Unit Trust"}, + {code:"STR", label:"Strata-title"}, + {code:"STT", label:"State Government Discretionary Trading Trust"}, + {code:"STU", label:"State Government Fixed Unit Trust"}, + {code:"SUP", label:"Super Fund"}, + {code:"TCB", label:"Territory Government Public Company"}, + {code:"TCC", label:"Territory Government Co-operative"}, + {code:"TCL", label:"Territory Government Limited Partnership"}, + {code:"TCN", label:"Territory Government Other Unincorporated Entity"}, + {code:"TCO", label:"Territory Government Other Incorporated Entity"}, + {code:"TCP", label:"Territory Government Pooled Development Fund"}, + {code:"TCR", label:"Territory Government Private Company"}, + {code:"TCS", label:"Territory Government Strata Title"}, + {code:"TCT", label:"Territory Government Public Trading Trust"}, + {code:"TCU", label:"Territory Government Corporate Unit Trust"}, + {code:"TGA", label:"Territory Government Statutory Authority"}, + {code:"TGE", label:"Territory Government Entity"}, + {code:"TGP", label:"Territory Government Partnership"}, + {code:"TGT", label:"Territory Government Trust"}, + {code:"TRT", label:"Other trust"}, + {code:"TSA", label:"Territory Government APRA Regulated Public Sector Fund"}, + {code:"TSP", label:"Territory Government APRA Regulated Public Sector Scheme"}, + {code:"TSS", label:"Territory Government Non-Regulated Super Fund"}, + {code:"TTC", label:"Territory Government Cash Management Trust"}, + {code:"TTD", label:"Territory Government Discretionary Services Management Trust"}, + {code:"TTF", label:"Territory Government Fixed Trust"}, + {code:"TTH", label:"Territory Government Hybrid Trust"}, + {code:"TTI", label:"Territory Government Discretionary Investment Trust"}, + {code:"TTL", label:"Territory Government Listed Public Unit Trust"}, + {code:"TTQ", label:"Territory Government Unlisted Public Unit Trust"}, + {code:"TTT", label:"Territory Government Discretionary Trading Trust"}, + {code:"TTU", label:"Territory Government Fixed Unit Trust"}, + {code:"UIE", label:"Other Unincorporated Entity"}]; self.organisationId = props.organisationId; + self.entityType = ko.observable(props.entityType); self.orgType = ko.observable(props.orgType); - self.orgTypeDisplayOnly = ko.computed(function() { - return orgTypesMap[self.orgType()] || "Unspecified"; - }); self.name = ko.observable(props.name); + self.entityName = ko.observable(props.entityName); + self.businessNames = ko.observableArray(props.businessNames); + self.contractNames = ko.observableArray(props.contractNames); self.acronym = ko.observable(props.acronym); self.description = ko.observable(props.description).extend({markdown:true}); self.abn = ko.observable(props.abn); + self.abnStatus = ko.observable(props.abnStatus); + self.postcode = ko.observable(props.postcode); + self.state = ko.observable(props.state); self.url = ko.observable(props.url); self.newsAndEvents = ko.observable(props.newsAndEvents).extend({markdown:true});; self.collectoryInstitutionId = props.collectoryInstitutionId; self.breadcrumbName = ko.computed(function() { return self.name()?self.name():'New Organisation'; }); + self.associatedOrgs = ko.observableArray(props.associatedOrgs); + self.externalIds = ko.observableArray(_.map(props.externalIds, function (externalId) { + return { + idType: ko.observable(externalId.idType), + externalId: ko.observable(externalId.externalId) + }; + })); + self.externalIdTypes = [ + 'TECH_ONE_PARTY_ID' + ]; + self.indigenousOrganisationTypes = [ + 'Office of the Registrar of Indigenous Corporations (ORIC)', + 'Under the Corporations (Aboriginal and Torres Strait Islander) Act 2006 (CATSI Act)', + 'Australian Securities and Investments Commission (ASIC)' + ]; + self.indigenousOrganisationRegistration = ko.observableArray(props.indigenousOrganisationRegistration); + self.organisationSearchUrl = options && options.organisationSearchUrl; + + + self.orgType = ko.pureComputed(function() { + var entityType = _.find(self.entityTypes, function(entityType) { + return entityType.code == self.entityType(); + }); + return entityType ? entityType.label : null; + }); + self.clearAbnDetails = function() { + self.abn(null); + self.entityName(null); + self.businessNames(null); + self.entityType(null); + }; self.projects = props.projects; @@ -71,54 +226,44 @@ OrganisationViewModel = function (props, options) { }; self.transients = self.transients || {}; - self.transients.orgTypes = []; - for (var ot in orgTypesMap) { - if (orgTypesMap.hasOwnProperty(ot)) - self.transients.orgTypes.push({orgType:ot, name:orgTypesMap[ot]}); - } - - self.toJS = function(includeDocuments) { - var ignore = self.ignore.concat(['breadcrumbName', 'orgTypeDisplayOnly', 'collectoryInstitutionId', 'projects', 'reports']); - var js = ko.mapping.toJS(self, {include:['documents'], ignore:ignore} ); - if (includeDocuments) { - js.documents = ko.toJS(self.documents); - js.links = ko.mapping.toJS(self.links()); - } - return js; - }; - - self.modelAsJSON = function(includeDocuments) { - var orgJs = self.toJS(includeDocuments); - return JSON.stringify(orgJs); - }; - - self.save = function() { - if ($('.validationEngineContainer').validationEngine('validate')) { - - var orgData = self.modelAsJSON(true); - $.ajax(config.organisationSaveUrl, {type:'POST', data:orgData, contentType:'application/json'}).done( function(data) { - if (data.errors) { - - } - else { - var orgId = self.organisationId?self.organisationId:data.organisationId; - window.location = config.organisationViewUrl+'/'+orgId; - } - - }).fail( function() { - - }); - } - }; + function toTitleCase(name) { + return name.replace(/\S+/g, function(word) { + if (!word) { + return word; + } + word = word.toLowerCase(); + var joiningWords = ['and', 'of', 'the', 'in', 'for', 'to', 'a', 'an', 'on', 'at', 'by', 'with', 'from', 'as', 'but', 'or', 'nor']; + if (joiningWords.indexOf(word) >= 0) { + return word; + } + return word.charAt(0).toUpperCase() + word.substring(1) + }); + } self.prepopulateFromABN = function() { if ($(config.abnSelector).validationEngine()) { var abn = self.abn; $.get(config.prepopulateAbnUrl, {abn:abn, contentType:'application/json'}).done(function (orgDetails) { - if (orgDetails.error === "invalid"){ + if (orgDetails.error === "invalid") { bootbox.alert("Abn Number is invalid"); - }else{ - self.name(orgDetails.name); + } else { + self.entityName(orgDetails.entityName); + self.businessNames(orgDetails.businessNames); + self.postcode(orgDetails.postcode); + self.state(orgDetails.state); + self.abnStatus(orgDetails.abnStatus); + self.entityType(orgDetails.entityType); + if (!self.name()) { + var defaultName = ''; + + if (self.entityName()) { + defaultName = toTitleCase(self.entityName()); + } + else if (self.businessNames().length > 0) { + defaultName = self.businessNames()[0]; + } + self.name(defaultName); + } } }).fail(function () { bootbox.alert("Abn Web Service is failed to lookup abn name. Please press ok to continue to create organisation"); @@ -128,6 +273,12 @@ OrganisationViewModel = function (props, options) { } }; + self.abnStatus.subscribe(function(value) { + if (value == 'N/A') { + self.clearAbnDetails(); + } + }); + if (props.documents !== undefined && props.documents.length > 0) { $.each(['logo', 'banner', 'mainImage'], function(i, role){ var document = self.findDocumentByRole(props.documents, role); @@ -148,6 +299,169 @@ OrganisationViewModel = function (props, options) { }; +EditOrganisationViewModel = function(props, options) { + var self = this; + _.extend(self, new OrganisationViewModel(props, options)); + + self.onPasteAbn = function(vm, event) { + + if (event.originalEvent && event.originalEvent.clipboardData) { + text = event.originalEvent.clipboardData.getData("text/plain"); + + // remove any non digit characters from the data - this is because if you copy and paste an ABN it + // is normally formatted with spaces. + self.abn(text.replaceAll(/\D/g, '')); + } + + + // Indicate that text could be added into textbox + return false; + }; + + /** We need to track changes to contract names so we can update the contract names in projects. */ + var contractNameChangeTracking = _.map(props.contractNames, function(name) { + return { + originalName: name, + currentName: name, + projects: props.contractNamesAndProjects[name], + projectCount: function() { + return props.contractNamesAndProjects[name] ? props.contractNamesAndProjects[name].length : 0; + } + } + }); + + self.getProjectCountForName = function(name) { + var nameAndProjects = _.find(contractNameChangeTracking, function(nameAndProjects) { + return nameAndProjects.currentName == name; + }); + return nameAndProjects.projectCount(); + } + + self.getHelpText = function(name) { + var projectCount = self.getProjectCountForName(name); + if (projectCount > 0) { + helpText = "This name is used by "+projectCount+" projects"; + } + else { + helpText = "This name is not used by any projects"; + } + return helpText; + }; + + self.nameUsed = function(name) { + return self.getProjectCountForName(name) > 0; + } + + + self.contractNames.subscribe(function(value) { + + var namesBeforeEdit = _.filter(_.map(contractNameChangeTracking, function(previous) {return previous.currentName} ), function(name) { return name != null}); + var namesAfterEdit = self.contractNames(); + var added = _.difference(namesAfterEdit, namesBeforeEdit); + var removed = _.difference(namesBeforeEdit, namesAfterEdit); + + // New name added. No project renaming action required here except to exclude it from appearing in the next edit + if (added.length == 1 && removed.length == 0) { + contractNameChangeTracking.push({originalName: null, currentName: added[0], projects:[], projectCount: function() { return 0; }}); + } + + // Name removed. We will update project contract names to the organsiation name. + if (removed.length == 1 && added.length == 0) { + var name = _.find(contractNameChangeTracking, function(previous) {return previous.currentName == removed[0]}); + name.currentName = null; + } + + // Name changed. We will update project contract names to the new name. + if (removed.length == 1 && added.length == 1) { + var name = _.find(contractNameChangeTracking, function(previous) {return previous.currentName == removed[0]}); + name.currentName = added[0]; + } + }); + + self.getModifiedNames = function() { + + var modifiedNames = []; + for (var i=0; iError

'+data.detail+'

'); + } + ); + } + }; + + self.cancel = function() { + window.location = options.returnTo; + } + + self.attachValidation = function() { + $(options.validationContainerSelector).validationEngine(); + }; + + self.toJS = function(includeDocuments) { + var ignore = self.ignore.concat(['breadcrumbName', 'entityTypes', 'externalIdTypes', 'organisationSearchUrl', 'collectoryInstitutionId', 'projects', 'reports', 'indigenousOrganisationTypes', 'dirtyFlag', 'selectedOrganisation']); + var js = ko.mapping.toJS(self, {include:['documents'], ignore:ignore} ); + if (self.externalIds().length > 0) { + js.externalIds = ko.mapping.toJS(self.externalIds); + } + if (includeDocuments) { + js.documents = ko.toJS(self.documents); + js.links = ko.mapping.toJS(self.links()); + } + var contractNameChanges = self.getModifiedNames(); + if (contractNameChanges.length > 0) { + js.contractNameChanges = contractNameChanges; + } + + return js; + }; + + self.modelAsJSON = function(includeDocuments) { + var orgJs = self.toJS(includeDocuments); + orgJs.postcode = Number(orgJs.postcode); + return JSON.stringify(orgJs); + }; + +} + OrganisationPageViewModel = function (props, options) { var self = this; @@ -248,6 +562,8 @@ OrganisationPageViewModel = function (props, options) { } } }; + var organisationService = new OrganisationService(options); + self.periods = options.targetPeriods || []; self.initialise = function() { $.fn.dataTable.moment( 'dd-MM-yyyy' ); @@ -334,6 +650,32 @@ OrganisationPageViewModel = function (props, options) { self.reportingEnabled = ko.observable(); self.selectedOrganisationReportCategories = ko.observableArray(); + // List of service / target measure + self.allTargetMeasures = []; + var services = options.services || []; + for (var i=0; i= 1 && startMonth <= 6 ){ + startYr--; + } + + //Is the end year is between july to dec? + if(endMonth >= 7 && endMonth <= 12 ){ + endYr++; + } + + var count = endYr - startYr; + for (i = 0; i < count; i++){ + headers.push(startYr + '/' + ++startYr); + } + + return headers; + }; +} \ No newline at end of file diff --git a/grails-app/assets/javascripts/projects.js b/grails-app/assets/javascripts/projects.js index e8099858f..6a7b2a166 100644 --- a/grails-app/assets/javascripts/projects.js +++ b/grails-app/assets/javascripts/projects.js @@ -13,6 +13,7 @@ //= require jquery-file-download/jquery.fileDownload.js //= require document.js //= require meriplan.js +//= require budget.js //= require risks.js //= require sites.js //= require activity.js @@ -73,7 +74,8 @@ function isValid(p, a) { return p; } -function ProjectViewModel(project, isUserEditor, organisations) { +function ProjectViewModel(project) { + project.geographicInfo = project.geographicInfo || {}; var self = this; // documents var docDefaults = newDocumentDefaults(project); @@ -107,16 +109,6 @@ function ProjectViewModel(project, isUserEditor, organisations) { })); self.externalIdTypes = PROJECT_EXTERNAL_ID_TYPES; - if (isUserEditor === undefined) { - isUserEditor = false; - } - if (!organisations) { - organisations = []; - } - var organisationsMap = {}; - $.each(organisations, function(org) { - organisationsMap[org.organisationId] = org; - }); self.transients = self.transients || {}; self.transients.defaultTags = ["Fires", "Flood", "Cyclone", "Drought", "Storm", "Wind"]; @@ -156,31 +148,7 @@ function ProjectViewModel(project, isUserEditor, organisations) { } }); - self.organisationId = ko.observable(project.organisationId); - self.transients.organisation = ko.observable(organisationsMap[self.organisationId()]); - self.organisationName = ko.computed(function() { - var org = self.transients.organisation(); - return org? org.name: project.organisationName; - }); - self.transients.organisation.subscribe(function(org) { - if (org && org.organisationId) { - self.organisationId(org.organisationId); - } - }); - - self.orgIdSvcProvider = ko.observable(project.orgIdSvcProvider); - self.transients.serviceProviderOrganisation = ko.observable(organisationsMap[self.orgIdSvcProvider()]); - self.serviceProviderName = ko.computed(function() { - var org = self.transients.serviceProviderOrganisation(); - return org? org.name: project.serviceProviderName; - }); - self.collectoryInstitutionId = ko.computed(function() { - var org = self.transients.organisation(); - return org? org.collectoryInstitutionId: ""; - }); - - self.orgIdGrantee = ko.observable(project.orgIdGrantee); - self.orgIdSponsor = ko.observable(project.orgIdSponsor); + self.associatedOrgs = ko.observable(project.associatedOrgs); self.associatedProgram = ko.observable(); // don't initialise yet - we want the change to trigger dependents self.associatedSubProgram = ko.observable(project.associatedSubProgram); @@ -209,6 +177,62 @@ function ProjectViewModel(project, isUserEditor, organisations) { self.urlWeb = ko.observable(project.urlWeb).extend({url:true}); self.contractStartDate = ko.observable(project.contractStartDate).extend({simpleDate: false}); self.contractEndDate = ko.observable(project.contractEndDate).extend({simpleDate: false}); + self.geographicInfo = { + nationwide: ko.observable(project.geographicInfo.nationwide || false), + statewide: ko.observable(project.geographicInfo.statewide || false), + isDefault: ko.observable(project.geographicInfo.isDefault || false), + primaryState: ko.observable(project.geographicInfo.primaryState), + primaryElectorate: ko.observable(project.geographicInfo.primaryElectorate), + otherStates: ko.observableArray(project.geographicInfo.otherStates || []), + otherElectorates: ko.observableArray(project.geographicInfo.otherElectorates || []) + }; + self.geographicInfo.nationwide.subscribe(function(newValue) { + if (newValue) { + self.geographicInfo.statewide(false); + self.geographicInfo.primaryState(""); + self.geographicInfo.primaryElectorate(""); + self.geographicInfo.otherStates([]); + self.geographicInfo.otherElectorates([]); + } + }); + + self.geographicInfo.statewide.subscribe(function(newValue) { + if (newValue) { + self.geographicInfo.nationwide(false); + self.geographicInfo.primaryElectorate(""); + self.geographicInfo.otherStates([]); + self.geographicInfo.otherElectorates([]); + } + }); + + self.geographicInfo.primaryElectorate.subscribe(function(newValue) { + if (newValue) { + var electorate = findElectorate(newValue); + if (electorate && electorate.state && electorate.state.length > 0) { + self.geographicInfo.primaryState(electorate.state[0]); + // if state is set to primary state, remove it from other states + if (self.geographicInfo.otherStates.indexOf(electorate.state[0]) > -1) { + self.geographicInfo.otherStates.remove(electorate.state[0]); + } + } + } + }); + + // automatically add states of selected electorates to other states field + self.geographicInfo.otherElectorates.subscribe(function(newValue) { + if (newValue) { + var otherElectorates = self.geographicInfo.otherElectorates(); + otherElectorates && _.each(otherElectorates, function(name) { + var electorate = findElectorate(name); + var states = electorate && electorate.state; + _.each(states, function(state) { + if (state && self.geographicInfo.otherStates.indexOf(state) === -1 && self.geographicInfo.primaryState() !== state) { + self.geographicInfo.otherStates.push(state); + } + }) + }); + } + }); self.transients.programs = []; self.transients.subprograms = {}; self.transients.subprogramsToDisplay = ko.computed(function () { @@ -216,6 +240,14 @@ function ProjectViewModel(project, isUserEditor, organisations) { }); self.transients.fixedProjectDuration = ko.observable(false); + + function findElectorate(electorateName) { + var electorates = self.transients.electorates.originalElectorateList; + return electorates && _.find(electorates, function(electorate) { + return electorate.name === electorateName; + }); + }; + var isBeforeToday = function(date) { return moment(date) < moment().startOf('day'); }; @@ -410,60 +442,13 @@ function ProjectViewModel(project, isUserEditor, organisations) { }); self.transients.projectId = project.projectId; + self.transients.currentAssociatedOrgs = ko.pureComputed(function() { + return _.filter(self.associatedOrgs(), function(org) { + var toDate = ko.utils.unwrapObservable(org.toDate); + var fromDate = ko.utils.unwrapObservable(org.fromDate); + return (!toDate || toDate >= new Date().toISOStringNoMillis()) && (!fromDate || fromDate <= new Date().toISOStringNoMillis()); - self.transients.dataSharingLicenses = [ - {lic:'CC BY', name:'Creative Commons Attribution'}, - {lic:'CC BY-NC', name:'Creative Commons Attribution-NonCommercial'}, - {lic:'CC BY-SA', name:'Creative Commons Attribution-ShareAlike'}, - {lic:'CC BY-NC-SA', name:'Creative Commons Attribution-NonCommercial-ShareAlike'} - ]; - self.transients.organisations = organisations; - - self.transients.difficultyLevels = [ "Easy", "Medium", "Hard" ]; - - var scienceTypesList = [ - {name:'Biodiversity', value:'biodiversity'}, - {name:'Ecology', value:'ecology'}, - {name:'Natural resource management', value:'nrm'} - ]; - self.transients.availableScienceTypes = scienceTypesList; - self.transients.scienceTypeDisplay = ko.pureComputed(function () { - for (var st = self.scienceType(), i = 0; i < scienceTypesList.length; i++) - if (st === scienceTypesList[i].value) - return scienceTypesList[i].name; - }); - - var availableProjectTypes = [ - {name:'Citizen Science Project', display:'Citizen\nScience', value:'citizenScience'}, - {name:'Ecological or biological survey / assessment (not citizen science)', display:'Biological\nScience', value:'survey'}, - {name:'Natural resource management works project', display:'Works\nProject', value:'works'} - ]; - self.transients.availableProjectTypes = availableProjectTypes; - self.transients.kindOfProjectDisplay = ko.pureComputed(function () { - for (var pt = self.transients.kindOfProject(), i = 0; i < availableProjectTypes.length; i++) - if (pt === availableProjectTypes[i].value) - return availableProjectTypes[i].display; - }); - /** Map between the available selection of project types and how the data is stored */ - self.transients.kindOfProject = ko.pureComputed({ - read: function() { - if (self.isCitizenScience()) { - return 'citizenScience'; - } - if (self.projectType()) { - return self.projectType() == 'survey' ? 'survey' : 'works'; - } - }, - write: function(value) { - if (value === 'citizenScience') { - self.isCitizenScience(true); - self.projectType('survey'); - } - else { - self.isCitizenScience(false); - self.projectType(value); - } - } + }); }); self.loadPrograms = function (programsModel) { @@ -478,6 +463,64 @@ function ProjectViewModel(project, isUserEditor, organisations) { self.associatedProgram(project.associatedProgram); // to trigger the computation of sub-programs }; + self.transients.states = ko.observableArray([]); + self.transients.states.filteredStates = ko.computed(function() { + var primaryState = self.geographicInfo.primaryState(), states = self.transients.states().concat([]); + if (primaryState) { + var index = states.indexOf(primaryState); + if (index > -1) { + states.splice(index, 1); + } + } + + return states; + }); + self.transients.electorates = ko.observableArray([]); + self.transients.electorates.filteredElectorates = ko.computed(function() { + var primaryElectorate = self.geographicInfo.primaryElectorate(), electorates = self.transients.electorates().concat([]); + if (primaryElectorate) { + var index = electorates.indexOf(primaryElectorate); + if (index > -1) { + electorates.splice(index, 1); + } + } + + return electorates; + }); + + self.loadStatesAndElectorates = function() { + var promise1 = $.getJSON(fcConfig.listOfStatesUrl, function(data) { + var states = []; + $.each(data, function(i, state) { + states.push(state.name); + }); + + self.transients.states(states); + }); + + var promse2 = $.getJSON(fcConfig.listOfElectoratesUrl, function(data) { + var electorates = []; + $.each(data, function(i, electorate) { + electorates.push(electorate.name); + }); + + self.transients.electorates(electorates); + self.transients.electorates.originalElectorateList = data; + }); + + $.when(promise1, promse2).done(self.loadGeographicInfo); + } + + self.loadGeographicInfo = function () { + self.geographicInfo.nationwide(project.geographicInfo.nationwide); + self.geographicInfo.statewide(project.geographicInfo.statewide); + self.geographicInfo.isDefault(project.geographicInfo.isDefault); + self.geographicInfo.primaryState(project.geographicInfo.primaryState); + self.geographicInfo.primaryElectorate(project.geographicInfo.primaryElectorate); + self.geographicInfo.otherStates(project.geographicInfo.otherStates); + self.geographicInfo.otherElectorates(project.geographicInfo.otherElectorates); + } + self.toJS = function() { var toIgnore = self.ignore; // document properties to ignore. toIgnore.concat(['transients', 'daysStatus', 'projectDatesChanged', 'collectoryInstitutionId', 'ignore', 'projectStatus']); @@ -809,12 +852,15 @@ function exclusive (field, rules, i, options) { } }; -function ProjectPageViewModel(project, sites, activities, organisations, userRoles, config) { +function ProjectPageViewModel(project, sites, activities, userRoles, config) { var self = this; var projectService = new ProjectService(project, config); _.extend(this, projectService); - _.extend(this, new ProjectViewModel(project, userRoles.editor, organisations)); + _.extend(this, new ProjectViewModel(project)); + + self.organisationSearchUrl = config.organisationSearchUrl; + self.organisationViewUrl = config.organisationViewUrl; self.internalOrderId = ko.observable(project.internalOrderId); self.userIsCaseManager = ko.observable(userRoles.grantManager); @@ -958,10 +1004,7 @@ function ProjectPageViewModel(project, sites, activities, organisations, userRol plannedEndDate: self.plannedEndDate(), contractStartDate: self.contractStartDate(), contractEndDate: self.contractEndDate(), - organisationId: self.organisationId(), - organisationName: self.organisationName(), - orgIdSvcProvider: self.orgIdSvcProvider(), - serviceProviderName: self.serviceProviderName(), + associatedOrgs: self.associatedOrgs(), associatedProgram: self.associatedProgram(), associatedSubProgram: self.associatedSubProgram(), programId: self.programId(), @@ -972,6 +1015,7 @@ function ProjectPageViewModel(project, sites, activities, organisations, userRol tags: self.tags(), promoteOnHomepage: self.promoteOnHomepage(), externalIds: ko.mapping.toJS(self.externalIds), + geographicInfo: ko.mapping.toJS(self.geographicInfo), options: { changeActivityDates: self.changeActivityDates(), includeSubmittedReports: self.includeSubmittedReports(), @@ -1441,4 +1485,4 @@ var RisksReportViewModel = function(project, options) { self.generateRisksReportPDF = function() { displayReport(options.riskChangesReportPdfUrl); }; -}; +}; \ No newline at end of file diff --git a/grails-app/assets/javascripts/services.js b/grails-app/assets/javascripts/services.js new file mode 100644 index 000000000..bcd8c4582 --- /dev/null +++ b/grails-app/assets/javascripts/services.js @@ -0,0 +1,333 @@ +function OrganisationDetailsViewModel(o, organisation, budgetHeaders, allServices, config) { + var self = this; + var period = budgetHeaders, + serviceIds = o.services && o.services.serviceIds || [], + targets = o.services && o.services.targets || []; + self.services = new OrganisationServicesViewModel(serviceIds, config.services, targets, budgetHeaders); + self.funding = new BudgetViewModel(o.funding, budgetHeaders); + function clearHiddenFields(jsData) { + + }; + + self.modelAsJSON = function () { + var tmp = {}; + tmp.details = ko.mapping.toJS(self); + var jsData = {"custom": tmp}; + clearHiddenFields(jsData); + + var json = JSON.stringify(jsData, function (key, value) { + return value === undefined ? "" : value; + }); + return json; + }; + + if (config.locked) { + autoSaveConfig.lockedEntity = organisation.organisationId; + } +}; + +/** + * The view model responsible for managing the selection of project services and their output targets. + * + * @param serviceIds Array of the ids of the current services being used by the organisation + * @param allServices Array containing the full list of available services + * @param outputTargets The current organisation targets + * @param periods An array of periods, each of which require a target to be set + */ +function OrganisationServicesViewModel(serviceIds, allServices, outputTargets, periods) { + var self = this, + OPERATION_SUM = "SUM", + OPERATION_AVG = "AVG", + operation = OPERATION_AVG; + + self.isProjectDetailsLocked = ko.observable(false); + + allServices = _.sortBy(allServices || [], function (service) { + return service.name + }); + + outputTargets = outputTargets || []; + + /** + * This function is invoked when a selected service is changed or + * a service added or deleted. + * It keeps the list of selected service names up to date for use + * by the budget table. + */ + function updateSelectedServices() { + var array = _.map(self.services(), function(serviceTarget) { + var service = serviceTarget.service(); + if (service) { + return service.name; + } + }); + array = _.filter(array, function(val) { return val; }); + array = _.unique(array); + self.selectedServices(array); + } + var ServiceTarget = function (service, score) { + var target = this, + subscribed = false; + + target.serviceId = ko.observable(service ? service.id : null); + target.scoreId = ko.observable(score ? score.scoreId : null); + + target.target = ko.observable(); + target.targetDate = ko.observable().extend({simpleDate:false}); + + target.periodTargets = _.map(periods, function (period) { + return {period: period.value, target: ko.observable(0)}; + }); + + function evaluateAndAssignAverage() { + if (periods.length === 0) + return; + + + // TODO make the behaviour of the total configurable so we can make this more reusable + var avg = averageOfPeriodTargets(); + + target.target(avg); + } + + function averageOfPeriodTargets() { + // For RCS reporting, targets are evaluated each year so we don't want to include undefined + // targets in the average. + var sum = 0; + var count = 0; + _.each(target.periodTargets, function (periodTarget) { + var target = parseInt(periodTarget.target()); + if (!_.isNaN(target)) { + sum += target + count++; + } + }); + + return sum/count; + } + + function sumOfPeriodTargets() { + var sum = 0; + _.each(target.periodTargets, function (periodTarget) { + if (Number(periodTarget.target())) { + sum += Number(periodTarget.target()); + } + }); + + return sum; + } + + target.minimumTargetsValid = ko.pureComputed(function () { + var sum = sumOfPeriodTargets(); + return sum <= (target.target() || 0); + }); + + target.updateTargets = function () { + + // Don't auto-update the target if one has already been specified. + if (target.target()) { + return; + } + var currentTarget = _.find(outputTargets, function (outputTarget) { + return target.scoreId() == outputTarget.scoreId; + }); + _.each(periods, function (period, i) { + var periodTarget = null; + if (currentTarget) { + var currentPeriodTarget = _.find(currentTarget.periodTargets || [], function (periodTarget) { + return periodTarget.period == period.value; + }) || {}; + periodTarget = currentPeriodTarget.target; + } + target.periodTargets[i].target(periodTarget); + // subscribe after setting the initial value + !subscribed && target.periodTargets[i].target.subscribe(evaluateAndAssignAverage); + }); + target.target(currentTarget ? currentTarget.target || 0 : 0); + target.targetDate(currentTarget ? currentTarget.targetDate : ''); + // prevent multiple subscriptions to period targets observable + subscribed = true; + }; + + target.toJSON = function () { + return { + target: target.target(), + targetDate: target.targetDate(), + scoreId: target.scoreId(), + periodTargets: ko.toJS(target.periodTargets) + }; + }; + + target.service = function () { + return _.find(allServices, function (service) { + return service.id == target.serviceId(); + }) + }; + + target.score = function () { + var score = null; + var service = target.service(); + if (service) { + score = _.find(service.scores, function (score) { + return score.scoreId == target.scoreId(); + }); + } + return score; + }; + + target.selectableScores = ko.pureComputed(function () { + if (!target.serviceId()) { + return []; + } + var availableScores = self.availableScoresForService(target.service()); + if (target.scoreId()) { + availableScores.push(target.score()); + } + + return _.sortBy(availableScores, function (score) { + return score.label + }); + }); + target.selectableServices = ko.pureComputed(function () { + var services = self.availableServices(); + if (target.serviceId()) { + var found = _.find(services, function (service) { + return service.id == target.serviceId(); + }); + if (!found) { + services.push(target.service()); + } + + } + return services; + + }); + + target.serviceId.subscribe(function () { + target.scoreId(null); + updateSelectedServices(); + }); + + target.scoreId.subscribe(function () { + target.updateTargets(); + }); + + target.updateTargets(); + }; + + self.periods = periods; + self.periodLabel = function (period) { + + return period; + }; + + self.services = ko.observableArray(); + self.addService = function () { + self.services.push(new ServiceTarget()); + }; + + /** + * Method to programatically add a pre-populated service target - used for the MERI plan load. + * @param serviceTarget example: + * { + serviceId:1, + scoreId:1, + target:100, + periodTargets:[ + {period:'2018/2019', target:1}, + {period:'2019/2020', target:2}, + {period:'2020/2021', target:2} + ] + } + * @returns {ServiceTarget} + */ + self.addServiceTarget = function(serviceTarget) { + var serviceTargetRow = new ServiceTarget(); + serviceTargetRow.serviceId(serviceTarget.serviceId); + serviceTargetRow.scoreId(serviceTarget.scoreId); + serviceTargetRow.target(serviceTarget.target); + _.each(periods || [], function(period) { + + var periodTarget = _.find(serviceTargetRow.periodTargets || [], function(pt) { + return pt.period == period; + }); + var periodTargetValue = _.find(serviceTarget.periodTargets || [], function(pt) { + return pt.period == period; + }); + if (periodTarget && periodTargetValue) { + periodTarget.target(periodTargetValue.target); + } + + }); + + self.services.push(serviceTargetRow); + return serviceTargetRow; + }; + + self.removeService = function (service) { + self.services.remove(service); + }; + + + self.selectedServices = ko.observableArray(); + self.services.subscribe(updateSelectedServices); + + /** + * Once all of the scores for a service have been assigned targets, don't allow new rows to select that score. + */ + self.availableServices = function () { + return _.reject(allServices, function (service) { + return self.availableScoresForService(service).length == 0; + }); + }; + + self.availableScoresForService = function (service) { + if (!service || !service.scores) { + return []; + } + return _.reject(service.scores, function (score) { + return _.find(self.services(), function (target) { + return target.score() ? target.score().scoreId == score.scoreId : false; + }) + }); + }; + + // Populate the model from existing data. + for (var i = 0; i < outputTargets.length; i++) { + + var score = null; + var service = _.find(allServices, function (service) { + return _.find(service.scores, function (serviceScore) { + if (serviceScore.scoreId == outputTargets[i].scoreId) { + score = serviceScore; + } + return score; + }) + }); + + self.services.push(new ServiceTarget(service, score)); + } + // if (!outputTargets || outputTargets.length == 0) { + // self.addService(); + // } + self.outputTargets = function () { + var outputTargets = []; + _.each(self.services(), function (target) { + outputTargets.push(target.toJSON()); + }); + return outputTargets; + }; + + self.toJSON = function () { + var serviceIds = _.unique(_.map(self.services(), function (service) { + return service.serviceId(); + })); + serviceIds = _.filter(serviceIds, function(id) { + return id != null; + }); + return { + serviceIds: serviceIds, + targets: self.outputTargets() + } + }; +}; \ No newline at end of file diff --git a/grails-app/assets/stylesheets/associated-orgs.css b/grails-app/assets/stylesheets/associated-orgs.css new file mode 100644 index 000000000..2e408241c --- /dev/null +++ b/grails-app/assets/stylesheets/associated-orgs.css @@ -0,0 +1,22 @@ + +.associatedOrgs .associated-org-list { + display: grid; + grid-template-columns: 3em max-content auto; +} +.associatedOrgs .associated-org-list div { + padding: 5px; + padding-top: 3px; + padding-bottom: 3px; +} +.associatedOrgs .associated-org-list div.controls { + padding: 5px; + margin-right: 5px; +} + +ul.ui-menu { + list-style: none; + padding-left: 10px; +} + + + diff --git a/grails-app/assets/stylesheets/organisation.css b/grails-app/assets/stylesheets/organisation.css index ee4223aac..32a47787c 100644 --- a/grails-app/assets/stylesheets/organisation.css +++ b/grails-app/assets/stylesheets/organisation.css @@ -1,7 +1,10 @@ /* *= require slider-pro/css/slider-pro.css *= require projects-by-program +*= require associated-orgs.css *= require_self +*= require jquery-ui/1.13.2/jquery-ui +*= require jquery-ui/1.13.2/juery-ui.theme */ #projectList th { @@ -97,3 +100,51 @@ input.dateControl { max-width: 300px !important; } +/** So autocomplete dropdown appears when used in a modal */ +ul.ui-autocomplete { + z-index:10000; +} + +.contract-name-info.nameInUse { + background: red; + color: white; +} + +.service { + width: 25% +} + +.service input { + width: 100%; +} + +.service-targets td.service { + width: 30%; +} +.service-targets td.score { + width: 40%; +} +.service-targets td.target { + width: 10%; +} + +.service-targets td.target-date { + width:7em; +} +.service-targets-view .target-date { + min-width:6em; +} +.service-targets td.target-date input { + width:7em; +} + +#organisation-details th { + white-space: normal; + word-wrap: normal; + min-width: 7em; +} + +ul.ui-menu { + list-style: none; +} + diff --git a/grails-app/assets/stylesheets/project.css b/grails-app/assets/stylesheets/project.css index 3cfdd9b10..8c2e25a57 100644 --- a/grails-app/assets/stylesheets/project.css +++ b/grails-app/assets/stylesheets/project.css @@ -14,6 +14,7 @@ *= require dataSets *= require activity.css *= require prettytextdiff/pretty_text_diff_basic.css +*= require associated-orgs.css *= require_self */ @@ -356,4 +357,8 @@ li.select2-search input { .meri-buttons .btn { float: right; margin-left: 5px; -} \ No newline at end of file +} + +.ui-autocomplete { + z-index:10000; +} diff --git a/grails-app/assets/stylesheets/projects-by-program.css b/grails-app/assets/stylesheets/projects-by-program.css index b39e1b9dc..3d8f3646e 100644 --- a/grails-app/assets/stylesheets/projects-by-program.css +++ b/grails-app/assets/stylesheets/projects-by-program.css @@ -32,6 +32,38 @@ margin-top: 10px; } +.projects-wrapper th.projectId, .projects-wrapper td.projectId { + width: 10%; +} + +.projects-wrapper th.internalOrderId, .projects-wrapper td.internalOrderId { + width: 12%; + white-space: normal; +} + +.projects-wrapper th.organisation, .projects-wrapper td.organisation { + width: 18%; +} + +.projects-wrapper th.name, .projects-wrapper td.name { + width: 30%; +} + +.projects-wrapper th.startDate, .projects-wrapper td.startDate { + width: 8%; +} + +.projects-wrapper th.endDate, .projects-wrapper td.endDate { + width: 8%; +} + +.projects-wrapper th.statusCol, .projects-wrapper td.statusCol { + width: 8%; +} + + + + /** Get rid of extra padding inside tabs when dataTables is applied */ .dataTables_wrapper.container-fluid { diff --git a/grails-app/conf/application.groovy b/grails-app/conf/application.groovy index 267f142fd..5fd7efbf8 100644 --- a/grails-app/conf/application.groovy +++ b/grails-app/conf/application.groovy @@ -273,6 +273,9 @@ sites.known_shapes = [ [id:'cl11194', name:'Australian Marine Parks (2024)'] ] +layers.elect = 'cl11163' +layers.states = 'cl927' + environments { development { grails.logging.jul.usebridge = true diff --git a/grails-app/conf/spring/resources.groovy b/grails-app/conf/spring/resources.groovy index 1c368eb98..21b145a08 100644 --- a/grails-app/conf/spring/resources.groovy +++ b/grails-app/conf/spring/resources.groovy @@ -3,6 +3,7 @@ import au.org.ala.merit.MeritServletContextConfig import au.org.ala.merit.StatisticsFactory import au.org.ala.merit.hub.HubAwareLinkGenerator import au.org.ala.merit.reports.NHTOutputReportLifecycleListener +import au.org.ala.merit.reports.RegionalCapacityServicesReportLifecycleListener import au.org.ala.merit.util.ProjectGroupingHelper // Place your Spring DSL code here @@ -23,6 +24,7 @@ beans = { NHTOutputReport(NHTOutputReportLifecycleListener) GrantsandOthersProgressReport(NHTOutputReportLifecycleListener) ProcurementOutputReport(NHTOutputReportLifecycleListener) + RegionalCapacityServicesReport(RegionalCapacityServicesReportLifecycleListener) meritServletContextConfig(MeritServletContextConfig) } diff --git a/grails-app/controllers/au/org/ala/merit/AdminController.groovy b/grails-app/controllers/au/org/ala/merit/AdminController.groovy index 396e9f47e..a8d54a126 100644 --- a/grails-app/controllers/au/org/ala/merit/AdminController.groovy +++ b/grails-app/controllers/au/org/ala/merit/AdminController.groovy @@ -1,15 +1,20 @@ package au.org.ala.merit -import au.com.bytecode.opencsv.CSVReader + import au.org.ala.merit.command.Reef2050PlanActionReportSummaryCommand import au.org.ala.merit.hub.HubSettings -import au.org.ala.merit.reports.ReportGenerationOptions import grails.converters.JSON import grails.util.Environment import grails.util.GrailsNameUtils import grails.web.http.HttpHeaders import groovy.util.logging.Slf4j +import org.apache.poi.ss.usermodel.Cell +import org.apache.poi.ss.usermodel.Row +import org.apache.poi.ss.usermodel.Workbook +import org.apache.poi.ss.usermodel.WorkbookFactory +import org.apache.poi.ss.util.CellReference import org.grails.plugin.cache.GrailsCacheManager +import org.grails.plugins.excelimport.ExcelImportService import org.joda.time.Period import org.springframework.core.io.support.PathMatchingResourcePatternResolver import org.springframework.web.multipart.MultipartHttpServletRequest @@ -37,6 +42,8 @@ class AdminController { def roleService def userService RisksService risksService + ExcelImportService excelImportService + AbnLookupService abnLookupService def index() {} @@ -382,11 +389,11 @@ class AdminController { [message: results?.message, compare: compare?.message, userDetails: userDetails.user] } - def gmsProjectImport() { + def importMeritProjects() { render(view:'import', model:[:]) } - def gmsImport() { + def loadMeritProjects() { Boolean preview = params.getBoolean('preview') Boolean update = params.getBoolean('update') @@ -477,136 +484,6 @@ class AdminController { } } - def allScores() { - def scores = [] - def activityModel = metadataService.activitiesModel() - activityModel.outputs.each { output -> - def outputScores = output.scores.findAll{it.isOutputTarget} - outputScores.each { - scores << [output:output.name] + it - } - } - - render scores as JSON - - - } - - - def createMissingOrganisations() { - - def results = [errors:[], messages:[]] - if (request instanceof MultipartHttpServletRequest) { - def file = request.getFile('orgData') - if (file) { - CSVReader reader = new CSVReader(new InputStreamReader(file.inputStream, 'UTF-8')) - String[] line = reader.readNext() - line = reader.readNext() // Discard header line - while (line) { - def currentOrgName = line[0] - def correctOrgName = line[3] - - def orgResults = createOrg(currentOrgName, correctOrgName) - results.errors += orgResults.errors - results.messages += orgResults.messages - - line = reader.readNext() - } - } - - } - def jsonResults = results as JSON - new File('/tmp/organisation_creation_results.json').withPrintWriter { pw -> - pw.print jsonResults.toString(true) - } - - render results as JSON - } - def createOrg(String existingOrgName, String correctOrgName) { - - def errors = [] - def messages = [] - def existingOrganisations = metadataService.organisationList() - - def orgName = correctOrgName ?: existingOrgName - - def organisationId - def organisation = existingOrganisations.list.find{it.name == orgName} - if (!organisation) { - def resp = organisationService.update('', [name:orgName, sourceSystem:'merit']) - - organisationId = resp?.resp?.organisationId - if (!organisationId) { - errors << "Error creating organisation ${orgName} - ${resp?.error}" - return [errors:errors] - } - else { - messages << "Created organisation with name: ${orgName}" - } - - } - else { - organisationId = organisation.organisationId - messages << "Organisation with name: ${orgName} already exists" - } - - - def projectsResp = projectService.search([organisationName:existingOrgName]) - if (projectsResp?.resp.projects) { - def projects = projectsResp.resp.projects - messages << "Found ${projects.size()} projects with name ${existingOrgName}" - projects.each { project -> - if (project.organisationId != organisationId || project.organisationName != orgName) { - def resp = projectService.update(project.projectId, [organisationName:orgName, organisationId:organisationId]) - if (!resp || resp.error) { - errors << "Error updating project ${project.projectId}" - } - else { - messages << "Updated project ${project.projectId} organisation to ${orgName}" - } - } - else { - messages << "Project ${project.projectId} already had correct organisation details" - } - - } - } - else { - if (projectsResp?.resp?.projects?.size() == 0) { - messages << "Organisation ${existingOrgName} has no projects" - } - else { - errors << "Error retreiving projects for organisation ${existingOrgName} - ${projectsResp.error}" - } - } - return [errors:errors, messages:messages] - - } - - def createReports() { - def offset = 0 - def max = 100 - - def projects = searchService.allProjects([max:max, offset:offset]) - - while (offset < projects.hits.total) { - - offset+=max - projects = searchService.allProjects([max:max, offset:offset]) - - projects.hits?.hits?.each { hit -> - def project = hit._source - if (!project.timeline) { - projectService.generateProjectStageReports(project.projectId, new ReportGenerationOptions()) - println "Generated reports for project ${project.projectId}" - } - } - println offset - - } - - } - def editSiteBlog() { List blog = blogService.getSiteBlog() [blog:blog] @@ -712,4 +589,153 @@ class AdminController { render 'ok' } + def organisationModifications() { + + Map results = [:] + if (request.respondsTo('getFile')) { + boolean validateOnly = params.validateOnly != null // checkbox passes "on" if ticked, nothing if not. + def file = request.getFile('orgData') + + if (file) { + + def columnMap = [ + 'Project ID': 'projectId', + 'Organisation ID': 'organisationId', + 'Contracted recipient name': 'organisationContractName', + 'ABN': 'abn', + 'New contracted recipient name': 'newContractName', + "New organisation ID": 'newOrganisationId', + "New ABN": 'newABN' + ] + + def config = [ + sheet : "Organisation Details", + startRow : 1, + columnMap: [:] + ] + Workbook workbook = WorkbookFactory.create(file.inputStream) + Row headerRow = workbook.getSheet(config.sheet).getRow(0) + for (Cell c : headerRow) { + String headerValue = c.getStringCellValue() + if (columnMap.containsKey(headerValue)) { + String excelColumnHeader = CellReference.convertNumToColString(c.getColumnIndex()) + config.columnMap[excelColumnHeader] = columnMap[headerValue] + } + } + if (config.columnMap.size() != columnMap.size()) { + Map errorResult = ["Error": "The uploaded file does not contain the required columns. Please ensure the spreadsheet includes columns with names: ${columnMap.keySet().join(', ')}"] + render view:"organisationModifications", model:[results:errorResult] + return + } + + List data = excelImportService.convertColumnMapConfigManyRows(workbook, config) + data.each { Map row -> + Map project = projectService.get(row.projectId) + if (!project) { + results[row.projectId] << "Could not find project with ID ${row.projectId}" + } + else { + results[project.grantId] = processProjectOrganisationAssociation(project, row, validateOnly) + } + } + } + render view:"organisationModifications", model:[results:results] + } + else { + render view:"organisationModifications" + } + + } + + private String processProjectOrganisationAssociation(Map project, Map row, boolean validateOnly) { + // Find the associatedOrg that matches the upload. + String result = '' + + Map associatedOrg = project.associatedOrgs?.find{it.organisationId == row.organisationId || it.name == row.organisationContractName} + if (!associatedOrg) { + return "Could not find an associated organisation for project ${project.projectId} / ${project.grantId} with organisationId ${row.organisationId} or name ${row.organisationContractName}" + } + + // Check if anything needs to change + String newContractName = row.newContractName?.trim() + String newOrganisationId = row.newOrganisationId?.trim() + if (!newContractName && !newOrganisationId && !row.newABN || + !row.newContractName && associatedOrg.organisationId || + associatedOrg.name == row.newContractName && associatedOrg.organisationId == row.newOrganisationId) { + return "No action required." + } + + Map newOrganisation = null + if (newOrganisationId) { + newOrganisation = organisationService.get(newOrganisationId) + if (!newOrganisation) { + return "No organisation found with ID ${newOrganisationId}" + } + result = "The organisation with ABN ${row.abn} and organisationId ${newOrganisation.organisationId} will be linked to the project." + } + else if (row.newABN) { + String abn = row.newABN.replaceAll('\\s', '') + newOrganisation = organisationService.findOrgByAbn(abn) + if (!newOrganisation) { + Map orgLookupResult = lookupOrganisationByABN(abn) + if (orgLookupResult.error) { + return orgLookupResult.error + } + newOrganisation = orgLookupResult.result + result = "An organisation will be created from the ABN ${abn}" + } + else { + result = "The organisation with ABN ${abn} and organisationId ${newOrganisation.organisationId} will be linked to the project." + } + } + + if (!newOrganisation.organisationId && !validateOnly) { + // Create the organisation + Map orgCreationResult = organisationService.update(null, newOrganisation) + if (!orgCreationResult.organisationId) { + return orgCreationResult.error ?: "Failed to create organisation with ABN ${row.abn}" + } + newOrganisation.organisationId = orgCreationResult.organisationId + } + + if (!validateOnly) { + updateAssociatedOrgAndContractName(project, associatedOrg, newOrganisation, newContractName) + } + + result + } + + private Map lookupOrganisationByABN(String abn) { + Map organisation = null + String error = null + Map abnLookupResults = abnLookupService.lookupOrganisationDetailsByABN(abn) + if (abnLookupResults && !abnLookupResults.error) { + List names = [abnLookupResults.entityName] + abnLookupResults.businessNames + organisation = organisationService.list().list.find { it.name in names } + if (organisation) { + error = "An existing organisation name was matched via the entity/business name ${organisation.name} but the ABN doesn't match the abn of the MERIT organisation (${organisation.abn})" + } else { + String name = abnLookupResults.businessNames ? abnLookupResults.businessNames[0] : abnLookupResults.entityName + organisation = abnLookupResults + [name:name] + } + } + [result:organisation, error:error] + } + + private void updateAssociatedOrgAndContractName(Map project, Map associatedOrg, Map organisation, String newContractName) { + associatedOrg.organisationId = organisation.organisationId + associatedOrg.name = newContractName ?: associatedOrg.name + // The associatedOrg is a reference to the associatedOrg in the list so we can update the List + // which now contains the above changes. + projectService.update(project.projectId, [associatedOrgs:project.associatedOrgs]) + + if (organisation.name != associatedOrg.name && !(associatedOrg.name in organisation.contractNames)) { + if (organisation.contractNames == null) { + organisation.contractNames = [] + } + organisation.contractNames << associatedOrg.name + organisationService.update(organisation.organisationId, [contractNames: organisation.contractNames]) + + } + } } diff --git a/grails-app/controllers/au/org/ala/merit/HomeController.groovy b/grails-app/controllers/au/org/ala/merit/HomeController.groovy index 1002faea3..570760fd0 100644 --- a/grails-app/controllers/au/org/ala/merit/HomeController.groovy +++ b/grails-app/controllers/au/org/ala/merit/HomeController.groovy @@ -224,10 +224,9 @@ class HomeController { if (userService.userIsAlaOrFcAdmin()){ params.include = ['name', 'managementUnitName', 'managementUnitId', 'programId', 'description', 'associatedProgram', 'associatedSubProgram','lastUpdated', - 'funding', 'organisationName', 'externalId', 'plannedEndDate', 'plannedStartDate', 'activities.siteId','activities.type','sites.siteId', 'sites.projects', 'sites.extent.geometry'] - - }else{ - params.include = ['name', 'description', 'lastUpdated', 'organisationName', 'managementUnitName','managementUnitId', 'programId', 'associatedProgram', 'associatedSubProgram'] + 'funding', 'associatedOrgs', 'externalId', 'plannedEndDate', 'plannedStartDate', 'activities.siteId','activities.type','sites.siteId', 'sites.projects', 'sites.extent.geometry'] + } else { + params.include = ['name', 'description', 'lastUpdated', 'associatedOrgs', 'managementUnitName','managementUnitId', 'programId', 'associatedProgram', 'associatedSubProgram'] } Map resp = searchService.allProjects(params) render resp as JSON diff --git a/grails-app/controllers/au/org/ala/merit/ManagementUnitController.groovy b/grails-app/controllers/au/org/ala/merit/ManagementUnitController.groovy index 434b3f1c4..aa49ebfa9 100644 --- a/grails-app/controllers/au/org/ala/merit/ManagementUnitController.groovy +++ b/grails-app/controllers/au/org/ala/merit/ManagementUnitController.groovy @@ -153,7 +153,7 @@ class ManagementUnitController { /** * Responds with a download of a zipped shapefile containing all sites used by projects run * by an organisation. - * @param id the organisationId of the organisation. + * @param id the managementUnitId of the management unit */ @PreAuthorise(accessLevel='admin') def downloadShapefile(String id) { @@ -162,7 +162,7 @@ class ManagementUnitController { if (id && userId) { - def params = [fq: 'programId:' + id, query: "docType:project"] + def params = [fq: 'managementUnitId:' + id, query: "docType:project"] def url = grailsApplication.config.getProperty('ecodata.service.url') + '/search/downloadShapefile' + commonService.buildUrlParamsFromMap(params) def resp = webService.proxyGetRequest(response, url, true, true, 960000) @@ -171,7 +171,7 @@ class ManagementUnitController { } } else { - render status: 400, text: 'Missing parameter organisationId' + render status: 400, text: 'Missing parameter id' } } @@ -341,7 +341,7 @@ class ManagementUnitController { render managementUnitService.removeUserWithRoleFromManagementUnit(userId, managementUnitId, role) as JSON } } else { - render status: 400, text: 'Required params not provided: userId, organisationId, role' + render status: 400, text: 'Required params not provided: userId, entityId, role' } } diff --git a/grails-app/controllers/au/org/ala/merit/OrganisationController.groovy b/grails-app/controllers/au/org/ala/merit/OrganisationController.groovy index d58b36742..03bbb1302 100644 --- a/grails-app/controllers/au/org/ala/merit/OrganisationController.groovy +++ b/grails-app/controllers/au/org/ala/merit/OrganisationController.groovy @@ -7,7 +7,6 @@ import au.org.ala.merit.command.ViewOrganisationReportCommand import au.org.ala.merit.util.ProjectGroupingHelper import grails.converters.JSON import org.apache.http.HttpStatus - /** * Extends the plugin OrganisationController to support Green Army project reporting. */ @@ -27,7 +26,7 @@ class OrganisationController { def list() {} def index(String id) { - def organisation = organisationService.get(id, 'all') + Map organisation = organisationService.get(id, 'all') if (!organisation || organisation.error) { organisationNotFound(id, organisation) @@ -60,7 +59,7 @@ class OrganisationController { - protected Map content(organisation) { + protected Map content(Map organisation) { def user = userService.getUser() def members = userService.getMembersOfOrganisation(organisation.organisationId) @@ -73,10 +72,15 @@ class OrganisationController { def dashboardReports = [[name:'dashboard', label:'Activity Outputs']] Map availableReportCategories = null + List services = null + List targetPeriods = null if (adminVisible) { dashboardReports += [name:'announcements', label:'Announcements'] availableReportCategories = settingService.getJson(SettingPageType.ORGANISATION_REPORT_CONFIG) + services = organisationService.findApplicableServices(organisation, metadataService.getProjectServices()) + targetPeriods = organisationService.generateTargetPeriods(organisation) } + boolean showTargets = userService.userIsSiteAdmin() && services && targetPeriods List reportOrder = null if (reportingVisible) { @@ -107,7 +111,7 @@ class OrganisationController { projects : [label: 'Reporting', template:"/shared/projectListByProgram", visible: reportingVisible, stopBinding:true, default:reportingVisible, type: 'tab', reports:organisation.reports, adHocReportTypes:adHocReportTypes, reportOrder:reportOrder, hideDueDate:true, displayedPrograms:projectGroups.displayedPrograms, reportsFirst:true, declarationType:SettingPageType.RDP_REPORT_DECLARATION], sites : [label: 'Sites', visible: reportingVisible, type: 'tab', stopBinding:true, projectCount:organisation.projects?.size()?:0, showShapefileDownload:adminVisible], dashboard : [label: 'Dashboard', visible: reportingVisible, stopBinding:true, type: 'tab', template:'/shared/dashboard', reports:dashboardReports], - admin : [label: 'Admin', visible: adminVisible, type: 'tab', template:'admin', showEditAnnoucements:showEditAnnoucements, availableReportCategories:availableReportCategories]] + admin : [label: 'Admin', visible: adminVisible, type: 'tab', template:'admin', showEditAnnoucements:showEditAnnoucements, availableReportCategories:availableReportCategories, targetPeriods:targetPeriods, services: services, showTargets:showTargets]] } @@ -136,14 +140,15 @@ class OrganisationController { @PreAuthorise(accessLevel = 'editor') def edit(String id) { - def organisation = organisationService.get(id) + def organisation = organisationService.get(id, 'all') if (!organisation || organisation.error) { organisationNotFound(id, organisation) } else { if (organisationService.isUserAdminForOrganisation(id)) { - + organisation.remove('projects') + organisation.remove('reports') [organisation: organisation, isNameEditable : userService.userIsAlaOrFcAdmin()] } @@ -175,7 +180,7 @@ class OrganisationController { } private void createOrUpdateOrganisation(String organisationId, Map organisationDetails) { - def originalOrganisation = organisationService.get(organisationId) + def originalOrganisation = organisationId ? organisationService.get(organisationId) : null def documents = organisationDetails.remove('documents') def links = organisationDetails.remove('links') def result = organisationService.update(organisationId, organisationDetails) @@ -688,4 +693,10 @@ class OrganisationController { render result as JSON } + + @PreAuthorise(accessLevel = 'admin') + def generateTargetPeriods(String id) { + List result = organisationService.generateTargetPeriods(id) + render result as JSON + } } diff --git a/grails-app/controllers/au/org/ala/merit/ProjectController.groovy b/grails-app/controllers/au/org/ala/merit/ProjectController.groovy index a40edb176..62bbd6df8 100644 --- a/grails-app/controllers/au/org/ala/merit/ProjectController.groovy +++ b/grails-app/controllers/au/org/ala/merit/ProjectController.groovy @@ -86,6 +86,10 @@ class ProjectController { user.hasViewAccess = projectService.canUserViewProject(user.userId, id) ?: false } def project = projectService.get(id, user,'all') + Map stateElectorate = projectService.findStateAndElectorateForProject(project.projectId) + if (stateElectorate) { + project << stateElectorate + } Map config = null if (project && !project.error) { config = projectService.getProgramConfiguration(project) @@ -200,7 +204,8 @@ class ProjectController { if (datasetsVisible && project.custom?.dataSets) { projectService.filterDataSetSummaries(project.custom?.dataSets) } - def model = [overview : [label: 'Overview', visible: true, default: true, type: 'tab', publicImages: imagesModel, displayOutcomes: false, blog: blog, hasNewsAndEvents: hasNewsAndEvents, hasProjectStories: hasProjectStories, canChangeProjectDates: canChangeProjectDates, outcomes:project.outcomes, objectives:config.program?.config?.objectives], + boolean showExternalIds = userService.userHasReadOnlyAccess() || userService.userIsSiteAdmin() + def model = [overview : [label: 'Overview', visible: true, default: true, type: 'tab', publicImages: imagesModel, displayOutcomes: false, blog: blog, hasNewsAndEvents: hasNewsAndEvents, hasProjectStories: hasProjectStories, canChangeProjectDates: canChangeProjectDates, outcomes:project.outcomes, objectives:config.program?.config?.objectives, showExternalIds:showExternalIds], documents : [label: 'Documents', visible: config.includesContent(ProgramConfig.ProjectContent.DOCUMENTS), type: 'tab', user:user, template:'docs', activityPeriodDescriptor:config.activityPeriodDescriptor ?: 'Stage'], details : [label: 'MERI Plan', default: false, disabled: !meriPlanEnabled, visible: meriPlanVisible, meriPlanVisibleToUser: meriPlanVisibleToUser, risksAndThreatsVisible: canViewRisks, announcementsVisible: true, project:project, type: 'tab', template:'viewMeriPlan', meriPlanTemplate:MERI_PLAN_TEMPLATE+'View', config:config, activityPeriodDescriptor:config.activityPeriodDescriptor ?: 'Stage'], plan : [label: 'Activities', visible: true, disabled: !user?.hasViewAccess, type: 'tab', template:'projectActivities', grantManagerSettingsVisible:user?.isCaseManager, project:project, reports: project.reports, scores: scores, risksAndThreatsVisible: risksAndThreatsVisible], @@ -217,15 +222,12 @@ class ProjectController { // The RLP Project Template doesn't need site details or activities. project.sites = new JSONArray(project.sites?.collect{new JSONObject([name:it.name, siteId:it.siteId, lastUpdated:it.lastUpdated, type:it.type, extent:[:], publicationStatus:it.publicationStatus, externalIds:it.externalIds])} ?: []) project.remove('activities') - model.overview.template = 'rlpOverview' - - boolean showExternalIds = userService.userHasReadOnlyAccess() || userService.userIsSiteAdmin() - model.overview.showExternalIds = showExternalIds model.details.meriPlanTemplate = config.meriPlanTemplate ? config.meriPlanTemplate+"View" : RLP_MERI_PLAN_TEMPLATE+'View' boolean serviceDeliveryVisible = model.dashboard.visible && userHasViewAccess - model.serviceDelivery = [label: 'Dashboard', visible: serviceDeliveryVisible, type: 'tab', template: 'rlpServiceDashboard', includeInvoiced:config.supportsOutcomeTargets()] + boolean showDashboardInvoiceField = (config.showsDashboardInvoiceField == null) ? config.supportsOutcomeTargets() : config.showsDashboardInvoiceField + model.serviceDelivery = [label: 'Dashboard', visible: serviceDeliveryVisible, type: 'tab', template: 'rlpServiceDashboard', includeInvoiced:showDashboardInvoiceField] if (model.serviceDelivery.visible) { // This can be a slow call so don't make it if the data won't be displayed model.serviceDelivery.servicesDashboard = projectService.getServiceDashboardData(project.projectId, false) @@ -1226,6 +1228,11 @@ class ProjectController { render reportData as JSON } + def spatialFeatures (String layerId, String intersectWith) { + webService.proxyGetRequest(response, grailsApplication.config.getProperty('ecodata.baseUrl') + "spatial/features?layerId=${layerId}&intersectWith=${intersectWith?:''}", false, true, 120000) + return null + } + private def error(String message, String projectId) { flash.message = message if (projectId) { diff --git a/grails-app/controllers/au/org/ala/merit/SiteController.groovy b/grails-app/controllers/au/org/ala/merit/SiteController.groovy index 95990549c..a076f2689 100644 --- a/grails-app/controllers/au/org/ala/merit/SiteController.groovy +++ b/grails-app/controllers/au/org/ala/merit/SiteController.groovy @@ -401,7 +401,7 @@ class SiteController { try { while (!progress.cancelling && progress.uploaded < progress.total) { Map site = siteData.sites[progress.uploaded] - Map result = siteService.createSiteFromUploadedShapefile(siteData.shapeFileId, site.id, asString(site.externalId), asString(site.name), asString(site.description, 'No description supplied'), siteData.projectId, false) + Map result = siteService.createSiteFromUploadedShapefile(siteData.shapeFileId, site.id, asString(site.externalId), asString(site.name), asString(site.description, 'No description supplied'), siteData.projectId) if (!result.success) { progress.errors << [error: result.error, detail: result.detail] } diff --git a/grails-app/i18n/messages.properties b/grails-app/i18n/messages.properties index 586f309de..d9473cc98 100644 --- a/grails-app/i18n/messages.properties +++ b/grails-app/i18n/messages.properties @@ -339,10 +339,11 @@ project.dates.help = Selects projects that have any overlap with the specified d label.externalId.INTERNAL_ORDER_NUMBER=SAP Internal Order label.externalId.WORK_ORDER=Work Order ID label.externalId.GRANT_AWARD=Grant Award ID -label.externalId.TECH_ONE_CODE=Tech One Project Code +label.externalId.TECH_ONE_CODE=Tech 1 Project Code label.externalId.GRANT_OPPORTUNITY=Grant Opportunity ID label.externalId.RELATED_PROJECT=Related Project ID -label.externalId.TECH_ONE_CONTRACT_NUMBER=Tech One Contract Number +label.externalId.TECH_ONE_CONTRACT_NUMBER=Tech 1 Contract Number +label.externalId.TECH_ONE_PARTY_ID=Tech 1 Party ID label.merit.projectID = MERIT Project ID label.merit.externalID = External ID diff --git a/grails-app/services/au/org/ala/merit/AbnLookupService.groovy b/grails-app/services/au/org/ala/merit/AbnLookupService.groovy index abbf14e14..1c8f6e597 100644 --- a/grails-app/services/au/org/ala/merit/AbnLookupService.groovy +++ b/grails-app/services/au/org/ala/merit/AbnLookupService.groovy @@ -12,14 +12,16 @@ class AbnLookupService { GrailsApplication grailsApplication WebService webService + volatile long lastRequestTime = 0 + private static final int ABN_SERVICE_RATE_LIMIT = 500 -/** - * This method will return abn details based abn number provided. - * this method is used my GMSMapper - * @param organisationABN - * @return abnDetails - */ - Map lookupOrganisationNameByABN(String organisationABN){ + /** + * This method will return abn details based abn number provided. + * this method is used my GMSMapper + * @param organisationABN + * @return abnDetails + */ + Map lookupOrganisationDetailsByABN(String organisationABN){ Map abnDetails String abn = getNonBlankNumericStringWithoutWhitespace(organisationABN); @@ -30,6 +32,7 @@ class AbnLookupService { String url = grailsApplication.config.getProperty('abn.abnUrl') String abnLookupUrlString = url + abn + "&guid=" + abnLookupToken + waitForRateLimit() Map resp = webService.getString(abnLookupUrlString, false) @@ -38,7 +41,7 @@ class AbnLookupService { String results = removeCallback(responseText) JsonSlurper slurper = new JsonSlurper() Map map = slurper.parseText(results) - abnDetails = [abn: map.Abn, entityName: map.EntityName] + abnDetails = mapAbnResult(map) } else { abnDetails = [error:resp.error] @@ -48,6 +51,20 @@ class AbnLookupService { return abnDetails } + /** The ABN service has introduced rate limiting to 500ms between requests */ + private void waitForRateLimit() { + long now = System.currentTimeMillis() + long timeSinceLastRequestMillis = now - lastRequestTime + if (timeSinceLastRequestMillis < ABN_SERVICE_RATE_LIMIT) { + try { + Thread.sleep(ABN_SERVICE_RATE_LIMIT - timeSinceLastRequestMillis) + } catch (InterruptedException e) { + // Doesn't really matter if we are interrupted + } + } + lastRequestTime = now + } + private static String removeCallback(String resp){ def result def callback ='callback(' @@ -133,5 +150,18 @@ class AbnLookupService { return theString; } + + private static Map mapAbnResult(Map result) { + [ + abn: result.Abn, + entityName: result.EntityName, + abnStatus: result.AbnStatus, + businessNames: result.BusinessName, + state: result.AddressState, + postcode: Integer.parseInt(result.AddressPostcode), + entityType: result.EntityTypeCode, + entityTypeName: result.EntityTypeName + ] + } } diff --git a/grails-app/services/au/org/ala/merit/ImportService.groovy b/grails-app/services/au/org/ala/merit/ImportService.groovy index c3eb87124..f8b3cc60c 100644 --- a/grails-app/services/au/org/ala/merit/ImportService.groovy +++ b/grails-app/services/au/org/ala/merit/ImportService.groovy @@ -8,6 +8,7 @@ import com.vividsolutions.jts.geom.Point import grails.converters.JSON import grails.plugins.csv.CSVMapReader import groovy.util.logging.Slf4j +import org.apache.http.HttpStatus import org.geotools.geojson.geom.GeometryJSON import org.joda.time.DateTime import org.springframework.web.multipart.MultipartFile @@ -33,6 +34,8 @@ class ImportService { def programService def managementUnitService AbnLookupService abnLookupService + OrganisationService organisationService + List organisations /** * Looks for columns "Grant ID","Sub-project ID","Recipient email 1","Recipient email 2","Grant manager email" and @@ -281,17 +284,30 @@ class ImportService { return project.sites?.find{it.name?.equalsIgnoreCase(name)} } + private void refreshOrganisationList() { + if (!organisations) { + organisations = [] + } + else { + organisations.clear() + } + // We update the existing list rather than update the reference because during an import + // the GmsMapper uses this as a cache and we want it to see any updates. + // It would be better to replace the cache with an on demand search, as this list is getting long. + organisations += metadataService.organisationList()?.list + } + Map gmsImport(InputStream csv, List status, Boolean preview, Boolean update, String charEncoding = 'Cp1252') { Map programs = [:].withDefault{name -> - Map program = programService.getByName(name) - program?.programId + programService.getByName(name) } Map managementUnits = [:].withDefault{name -> Map mu = managementUnitService.getByName(name) mu?.managementUnitId } - def mapper = new GmsMapper(metadataService.activitiesModel(), metadataService.programsModel(), metadataService.organisationList()?.list, abnLookupService, metadataService.getOutputTargetScores(), programs, managementUnits) + refreshOrganisationList() + def mapper = new GmsMapper(metadataService.activitiesModel(), metadataService.programsModel(), organisations, abnLookupService, metadataService.getOutputTargetScores(), programs, managementUnits) def action = preview?{rows -> mapProjectRows(rows, status, mapper, update)}:{rows -> importAll(rows, status, mapper, update)} @@ -323,7 +339,7 @@ class ImportService { prevExternalId = currentExternalId if (first) { def errors = mapper.validateHeaders(projectRows) - status << [grantId:'Column Headers', externalId:'', success:errors.size() == 0, errors:errors] + status << [grantId:'Column Headers', externalId:'', success:errors.size() == 0, errors:errors, messages:[]] first = false } @@ -359,7 +375,7 @@ class ImportService { grantId = grantId ?:'' externalId = externalId ?:'' - status << [grantId:grantId, externalId:externalId, success:mappingResults.errors.size() == 0, errors:mappingResults.errors] + status << [grantId:grantId, externalId:externalId, success:mappingResults.errors.size() == 0, errors:mappingResults.errors, messages:mappingResults.messages] } void importAll(projectRows, List status, GmsMapper mapper, Boolean update) { @@ -368,7 +384,7 @@ class ImportService { def grantId = projectDetails.project.grantId?:'' def externalId = projectDetails.project.externalId?:'' - if (!projectDetails.error) { + if (!projectDetails.errors) { def adminEmail = projectDetails.project.remove('adminEmail') def grantManagerEmail = projectDetails.project.remove('grantManagerEmail') @@ -381,6 +397,18 @@ class ImportService { //When projects are loaded into MERIT via CSV upload, they are given a status of "Application". projectDetails.project.status ?: 'application' + // Create the organisation first so we can link it to the project. + if (projectDetails.organisation) { + Map orgCreationResult = organisationService.update(null, projectDetails.organisation) + if (orgCreationResult.statusCode != HttpStatus.SC_OK || !orgCreationResult.resp?.organisationId) { + projectDetails.errors << "Error creating organisation: ${orgCreationResult.error}" + } + else { + refreshOrganisationList() + projectDetails.project.associatedOrgs[0].organisationId = orgCreationResult.resp.organisationId + } + } + def result = importProject(projectDetails.project, update) // Do not overwrite existing projects because of the impacts to sites / activities etc. if (result.project == 'existing' && !update) { @@ -431,11 +459,11 @@ class ImportService { activityService.update('', activity) } - status << [projectId:projectDetails.project.projectId, grantId:grantId, externalId:externalId, success:projectDetails.errors.size() == 0, errors:projectDetails.errors] + status << [projectId:projectDetails.project.projectId, grantId:grantId, externalId:externalId, success:projectDetails.errors.size() == 0, errors:projectDetails.errors, messages:projectDetails.messages] } else { - status << [grantId:grantId, externalId:externalId, success:false, errors:projectDetails.errors] + status << [grantId:grantId, externalId:externalId, success:false, errors:projectDetails.errors, messages:projectDetails.messages] } } @@ -529,7 +557,7 @@ class ImportService { sites << name } else { - def resp = siteService.createSiteFromUploadedShapefile(shapeFileId, shape.id, siteExternalId, name, description, project.projectId, false) + def resp = siteService.createSiteFromUploadedShapefile(shapeFileId, shape.id, siteExternalId, name, description, project.projectId) if (resp?.siteId) { projectDetails.sites << [siteId:resp.siteId, name:name, description:description] sites << name diff --git a/grails-app/services/au/org/ala/merit/OrganisationService.groovy b/grails-app/services/au/org/ala/merit/OrganisationService.groovy index ff5ca8012..4d1e6140e 100644 --- a/grails-app/services/au/org/ala/merit/OrganisationService.groovy +++ b/grails-app/services/au/org/ala/merit/OrganisationService.groovy @@ -7,7 +7,6 @@ import org.grails.web.json.JSONArray import org.joda.time.DateTime import org.joda.time.DateTimeZone import org.joda.time.Period - /** * Extends the plugin OrganisationService to provide Green Army reporting capability. */ @@ -30,8 +29,8 @@ class OrganisationService { def get(String id, view = '') { String url = "${grailsApplication.config.getProperty('ecodata.baseUrl')}organisation/$id?view=$view" - Map organisation = webService.getJson(url) - + Map resp = webService.getJson2(url) + Map organisation = resp?.resp if (view != 'flat') { organisation.reports = getReportsForOrganisation(organisation, getReportConfig(id)) } @@ -51,6 +50,21 @@ class OrganisationService { organisation.documents = new JSONArray(categorisedDocs[1]) } + Map orgContractNames = [:] + organisation.projects?.each { Map project -> + project.associatedOrgs?.each { Map associatedOrg -> + if (associatedOrg.organisationId == id) { + if (!orgContractNames[associatedOrg.name]) { + orgContractNames[associatedOrg.name] = [] + } + orgContractNames[associatedOrg.name] << [projectId: project.projectId, projectName: project.name] + } + } + + } + organisation.contractNamesAndProjects = orgContractNames + + organisation } @@ -113,6 +127,26 @@ class OrganisationService { regenerateOrganisationReports(organisation, organisationReportCategories) } + List generateTargetPeriods(String id) { + Map organisation = get(id) + generateTargetPeriods(organisation) + } + + List generateTargetPeriods(Map organisation) { + Map targetsConfig = organisation.config?.targets + if (!targetsConfig) { + log.info("No target configuration defined for organisation ${organisation.organisationId}") + return null + } + ReportConfig targetsReportConfig = new ReportConfig(targetsConfig.periodGenerationConfig) + ReportOwner owner = new ReportOwner( + id:[organisationId:organisation.organisationId], + name:organisation.name + ) + reportService.generateTargetPeriods(targetsReportConfig, owner, targetsConfig.periodLabelFormat) + } + + private void regenerateOrganisationReports(Map organisation, List reportCategories = null) { ReportOwner owner = new ReportOwner( @@ -290,11 +324,9 @@ class OrganisationService { Map getAbnDetails(String abnNumber){ Map result - result = abnLookupService.lookupOrganisationNameByABN(abnNumber) + result = abnLookupService.lookupOrganisationDetailsByABN(abnNumber) if (result.abn == ''){ result.error = "invalid" - }else{ - result = [abn: result.abn, name: result.entityName] } return result } @@ -320,4 +352,22 @@ class OrganisationService { scoreIds.collectEntries{ String scoreId ->[(scoreId):result.results?.find{it.scoreId == scoreId}?.result?.result ?: 0]} } + + /** + * Filter services to those supported by organisation. + */ + def findApplicableServices(Map organisation, List allServices) { + + List supportedServices = organisation.config?.organisationReports?.collect{it.activityType}?.findAll{it} + List result = [] + if (supportedServices) { + result = allServices.findAll{ supportedServices.intersect(it.outputs.formName) } + result.each { + List scores = it.scores?.findAll{Map score -> score.isOutputTarget} + it.scores = scores + } + } + + result + } } diff --git a/grails-app/services/au/org/ala/merit/ProjectService.groovy b/grails-app/services/au/org/ala/merit/ProjectService.groovy index e99cc5874..761357552 100644 --- a/grails-app/services/au/org/ala/merit/ProjectService.groovy +++ b/grails-app/services/au/org/ala/merit/ProjectService.groovy @@ -66,6 +66,15 @@ class ProjectService { } + Map findStateAndElectorateForProject(String projectId) { + Map result = webService.getJson(grailsApplication.config.getProperty('ecodata.baseUrl') + 'project/findStateAndElectorateForProject?projectId=' + projectId) as Map + if (result.error) { + result = [:] + } + + result + } + void filterDataSetSummaries(List dataSetSummaries) { List forms = activityService.monitoringProtocolForms() diff --git a/grails-app/services/au/org/ala/merit/ReportService.groovy b/grails-app/services/au/org/ala/merit/ReportService.groovy index ba8fafc32..42eb903cb 100644 --- a/grails-app/services/au/org/ala/merit/ReportService.groovy +++ b/grails-app/services/au/org/ala/merit/ReportService.groovy @@ -143,6 +143,27 @@ class ReportService { } + /** + * This is to support progress targets using the same + * configuration as we use to generate reports such that + * the targets can be aligned to reports if required. + * (Previously MERIT only supported targets per financial year) + */ + List generateTargetPeriods(ReportConfig reportConfig, ReportOwner reportOwner, String formatString = null) { + List reports = new ReportGenerator().generateReports( + reportConfig, reportOwner, 0, null) + Closure fromDateFormatter = { + formatString ? DateUtils.format(DateUtils.parse(it), formatString, DateTimeZone.default) : it + } + Closure toDateFormatter = { + // Compensate for the endDate of a report being 00:00:00 on the following day to have no overlap with the next start time. + DateTime toDate = DateUtils.parse(it).minusHours(1) + formatString ? DateUtils.format(toDate, formatString, DateTimeZone.default) : it + } + + reports.collect{[label:fromDateFormatter(it.fromDate) +' - '+toDateFormatter(it.toDate), value:it.toDate]} + } + boolean needsRegeneration(Map report1, Map report2) { return report1.fromDate != report2.fromDate || report1.toDate != report2.toDate || diff --git a/grails-app/services/au/org/ala/merit/SearchService.groovy b/grails-app/services/au/org/ala/merit/SearchService.groovy index 3c2219160..4178f236d 100644 --- a/grails-app/services/au/org/ala/merit/SearchService.groovy +++ b/grails-app/services/au/org/ala/merit/SearchService.groovy @@ -22,7 +22,7 @@ class SearchService { def elasticBaseUrl def userService - private static final int FACET_LIMIT = 1500 + private static final int FACET_LIMIT = 3000 static final String PLANNED_DATE_FORMAT = "yyyy-MM-dd" @PostConstruct diff --git a/grails-app/services/au/org/ala/merit/SiteService.groovy b/grails-app/services/au/org/ala/merit/SiteService.groovy index d1840b6ac..8982016be 100644 --- a/grails-app/services/au/org/ala/merit/SiteService.groovy +++ b/grails-app/services/au/org/ala/merit/SiteService.groovy @@ -231,27 +231,16 @@ class SiteService { * @param description the description for the site * @param projectId the project the site should be associated with. */ - Map createSiteFromUploadedShapefile(String shapeFileId, String featureId, String externalId, String name, String description, String projectId, boolean persistInSpatialPortal = true) { + Map createSiteFromUploadedShapefile(String shapeFileId, String featureId, String externalId, String name, String description, String projectId) { Map returnValue - Map result = spatialService.createObjectFromShapefileFeature(shapeFileId, featureId, name, description) + Map result = spatialService.createObjectFromShapefileFeature(shapeFileId, featureId) if (!result.error && !result.resp.error) { - String pid = result.resp.id - String source = SITE_SOURCE_SPATIAL_PORTAL - - Map geomResult = spatialService.objectGeometry(pid) - if (geomResult.statusCode == HttpStatus.SC_OK) { - // We use the spatial portal for it's shapefile handling and re-projection to WGS84 but don't want the - // site to remain. - if (!persistInSpatialPortal && pid) { - Integer resp = spatialService.deleteFromSpatialPortal(pid) - if (resp == HttpStatus.SC_OK) { - pid = null - source = SITE_SOURCE_DRAWN - } - } - result = createSite(projectId, name, description, externalId, source, geomResult.resp, pid) + String source = SITE_SOURCE_DRAWN + Map geoJson = result.resp.geoJson + if (geoJson) { + result = createSite(projectId, name, description, externalId, source, geoJson) if (result.statusCode == HttpStatus.SC_OK && result.resp?.siteId) { returnValue = [success:true, siteId:result.resp.siteId] } @@ -262,9 +251,6 @@ class SiteService { else { returnValue = [success:false, error:"Failed to retrieve geometry for feature $featureId of shapefile $shapeFileId"] } - if (returnValue.success == false && pid) { - spatialService.deleteFromSpatialPortal(pid) - } } else { String detailedError = result.error ?: result.resp.error diff --git a/grails-app/services/au/org/ala/merit/SpatialService.groovy b/grails-app/services/au/org/ala/merit/SpatialService.groovy index caf99b11f..f4fd0faa2 100644 --- a/grails-app/services/au/org/ala/merit/SpatialService.groovy +++ b/grails-app/services/au/org/ala/merit/SpatialService.groovy @@ -1,5 +1,6 @@ package au.org.ala.merit +import static java.net.URLEncoder.encode import grails.core.GrailsApplication import org.springframework.web.multipart.MultipartFile @@ -41,8 +42,7 @@ class SpatialService { * attributes of that feature. eg. [shp_id: , "0":[attribute1:, attribute2:, etc], "1":[attribute1:, attribute2:, etc]]] */ Map uploadShapefile(MultipartFile shapefile) { - String url = "${grailsApplication.config.getProperty('spatial.layersUrl')}${UPLOAD_SHAPE_PATH}" - + String url = "${grailsApplication.config.getProperty('ecodata.baseUrl')}/shapefile" webService.postMultipart(url, [:], shapefile, 'files', true) } @@ -57,15 +57,10 @@ class SpatialService { * @return [statusCode:, resp:[id:], error:] * e.g [statusCode:200, resp:[id:12345]] or [statusCode:500, error:"Failed to create object"] */ - Map createObjectFromShapefileFeature(String shapeFileId, String featureId, String objectName, String objectDescription) { - String baseUrl = "${grailsApplication.config.getProperty('spatial.layersUrl')}${UPLOAD_SHAPE_PATH}" - String userId = userService.getCurrentUserId() - - Map site = [name:objectName, description: objectDescription, user_id:userId] - - String url = "${baseUrl}/${shapeFileId}/${featureId}" - - webService.doPost(url, site, true) + Map createObjectFromShapefileFeature(String shapeFileId, String featureId) { + String baseUrl = "${grailsApplication.config.getProperty('ecodata.baseUrl')}/shapefile/geojson" + String url = "${baseUrl}/${encode(shapeFileId, "UTF-8")}/${encode(featureId, "UTF-8")}" + webService.getJson2(url) } /** diff --git a/grails-app/views/admin/import.gsp b/grails-app/views/admin/import.gsp index 781cf0f22..fad01a314 100644 --- a/grails-app/views/admin/import.gsp +++ b/grails-app/views/admin/import.gsp @@ -7,7 +7,7 @@ +Organisation details update + +

Bulk creates organisations and updates projects / organisation relationships

+ +
+ + +
+
+ +
+ +
+ + +
+ + + + + + + + + + + + + + + + +
Project IDResult
${result.key}${result.value}
+ +
+ + diff --git a/grails-app/views/admin/tools.gsp b/grails-app/views/admin/tools.gsp index a668e375e..c8f2d4260 100644 --- a/grails-app/views/admin/tools.gsp +++ b/grails-app/views/admin/tools.gsp @@ -125,15 +125,15 @@ $("#createOrgs").change(function() { if ($("#createOrgs").val()) { - $("#btnCreateOrgs").removeAttr("disabled"); + $("#btnUpdateProjectOrgs").removeAttr("disabled"); } else { - $("#btnCreateOrgs").attr("disabled", "disabled"); + $("#btnUpdateProjectOrgs").attr("disabled", "disabled"); } }).trigger('change'); - $('#btnCreateOrgs').click(function(e) { + $('#btnUpdateProjectOrgs').click(function(e) { e.preventDefault(); $('form.createOrgs').submit(); }); @@ -262,11 +262,11 @@ - + Bulk creates organisations and updates projects. - +
diff --git a/grails-app/views/home/_downloadAllAsXlsx.gsp b/grails-app/views/home/_downloadAllAsXlsx.gsp index 7679158f6..926213a92 100644 --- a/grails-app/views/home/_downloadAllAsXlsx.gsp +++ b/grails-app/views/home/_downloadAllAsXlsx.gsp @@ -49,6 +49,11 @@ + Contracted Recipient Details
+
    +
  • +
+ Electorate Coord
  • diff --git a/grails-app/views/home/_projectFinder.gsp b/grails-app/views/home/_projectFinder.gsp index 3457e04ea..e3f64c497 100644 --- a/grails-app/views/home/_projectFinder.gsp +++ b/grails-app/views/home/_projectFinder.gsp @@ -424,7 +424,16 @@ $tr.find('.homeLine a').attr("href", "${createLink(controller: 'project')}/" + id); $tr.find('a.zoom-in').data("id", id); $tr.find('a.zoom-out').data("id", id); - $tr.find('.orgLine').text(src.organisationName); + var organisations = ''; + if (src.associatedOrgs) { + for (var i=0; i 0) { + organisations = organisations + ', '; + } + organisations = organisations + src.associatedOrgs[i].name; + } + } + $tr.find('.orgLine').text(organisations); $tr.find('.descLine').text(src.description); $tr.find('.downloadLine a').attr("href", "${createLink(controller: 'project',action: 'downloadProjectData')}" + "?id="+id+"&view=xlsx"); diff --git a/grails-app/views/layouts/adminLayout.gsp b/grails-app/views/layouts/adminLayout.gsp index 253e3c196..c95f8971b 100644 --- a/grails-app/views/layouts/adminLayout.gsp +++ b/grails-app/views/layouts/adminLayout.gsp @@ -34,9 +34,10 @@ - + + diff --git a/grails-app/views/organisation/_about.gsp b/grails-app/views/organisation/_about.gsp index f26ee1c32..9616f6015 100644 --- a/grails-app/views/organisation/_about.gsp +++ b/grails-app/views/organisation/_about.gsp @@ -21,7 +21,62 @@ -

    ABN: ${organisation.abn}

    +
    +
    + +

    ABN: ${organisation.abn}

    +
    + +

    State: ${organisation.state}

    +
    + +

    Postcode: ${organisation.postcode}

    +
    +
    + +
    + +

    Organisation type: ${organisation.orgType}

    +
    + + +

    Contracted recipient name: ${name}

    +
    +
    + + +

    Indigenous registration: + + ${indigenousOrg}
    +
    +

    +
    + + + + +
    +
    + +
    + + + + +
    +
    + + + +
    +
    :
    +
    + +
    +
    +
    +
    + diff --git a/grails-app/views/organisation/_admin.gsp b/grails-app/views/organisation/_admin.gsp index 558c251d7..4594311b1 100644 --- a/grails-app/views/organisation/_admin.gsp +++ b/grails-app/views/organisation/_admin.gsp @@ -9,8 +9,9 @@ Reporting Configuration
    - - + + Targets +
    @@ -153,5 +154,13 @@
    + +
    +

    Total funding

    + +

    Service Targets

    + +
    +
    diff --git a/grails-app/views/organisation/_funding.gsp b/grails-app/views/organisation/_funding.gsp new file mode 100644 index 000000000..a50350406 --- /dev/null +++ b/grails-app/views/organisation/_funding.gsp @@ -0,0 +1,29 @@ + +
    + + + +

    ${explanation}

    +
    + + + + + + + + + + + + + + + + +
    $
    + +
    + +
    + diff --git a/grails-app/views/organisation/_organisationDetails.gsp b/grails-app/views/organisation/_organisationDetails.gsp index 52a20d4f0..79d9ae137 100644 --- a/grails-app/views/organisation/_organisationDetails.gsp +++ b/grails-app/views/organisation/_organisationDetails.gsp @@ -1,43 +1,92 @@

    -
    - -
    - - - - - - +
    + + +
    +
    - -
    - -
    -
    - -
    -
    - -
    - + +
    +
    -
    +
    + +
    -
    + -
    + +
    +
    + +
    + + +
    + +
    +
    + +
    + + +
    + +
    +
    + +
    + + +
    + +
    + + + +
    + +
    +
    + +
    + + +
    + +
    +
    +
    + +
    + +
    + +
    +
    +
    + +
    + + +
    +
    @@ -45,6 +94,46 @@
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    + +
    + +
    + +
    +
    + +
    + +
    + + +
    +
    +
    diff --git a/grails-app/views/organisation/_projects.gsp b/grails-app/views/organisation/_projects.gsp deleted file mode 100644 index 6be482fa5..000000000 --- a/grails-app/views/organisation/_projects.gsp +++ /dev/null @@ -1,232 +0,0 @@ - -
    -
    - - - - - - - -
    -
    -
    - -
    - -
    -

    ${organisation.name?.encodeAsHTML()} is not currently involved in any projects.

    -
    -
    - - - - - -$(function() { - var projects = fcConfig.projects; - $.each(projects, function(i, project) { - project.startDate = project.contractStartDate || project.plannedStartDate; - project.duration = project.contractDurationInWeeks || project.plannedDurationInWeeks; - }); - - var projectUrlRenderer = function(data, type, row, meta) { - var projectId = projects[meta.row].projectId; - if (!projectId) { - return ''; - } - return ''+data+''; - }; - var dateRenderer = function(data, type, row) { - if (type == 'display' || type == 'filter') { - return convertToSimpleDate(data, false); - } - return data || ''; - }; - var agreementDateRenderer = function(data, type, row, meta) { - var program = projects[meta.row].associatedProgram; - if (program && program == 'Green Army') { - var cell = ''; - - - if (!data) { - cell += 'Enter date'; - } - else { - cell += dateRenderer(data, type, row); - } - cell += ''; - return cell; - } - - return 'n/a'; - }; - var statusRenderer = function(data) { - var badge = 'badge'; - if (data && data.toLowerCase() == 'active') { - badge += ' badge-success'; - } - else { - badge += ' badge-info'; - } - return ''+data+''; - }; - var nameRender = function(data){ - return data.replace(/&/g, '&').replace(/').appendTo(cell); - var input = $('').datepicker({format: 'dd-mm-yyyy', autoclose: true, clearBtn:true, keyboardNavigation:false}).appendTo(span); - - var saveDate = function(isoDate) { - cell.removeClass('editing'); - span.remove(); - var spinner = $('').css('margin-left', '10px'); - cell.append(spinner); - current.show(); - var project = projects[apiCell.index().row]; - $.ajax({ - url: fcConfig.updateProjectUrl+'/'+project.projectId, - type: 'POST', - data: '{"serviceProviderAgreementDate":"'+isoDate+'"}', - contentType: 'application/json', - - success: function (data) { - if (data.error) { - alert(data.detail + ' \n' + data.error); - } else { - apiCell.data(isoDate); - } - }, - error: function (data) { - if (data.status == 401) { - alert("You do not have permission to edit this project."); - } - else { - alert('An unhandled error occurred: ' + data.status); - } - }, - complete: function () { - spinner.remove(); - } - }); - }; - - var currentDate = stringToDate(value); - if (currentDate) { - var widget = input.data("datepicker"); - widget.setDate(currentDate); - } - input.datepicker('show'); - - var changeHandler = function() { - var dateVal = input.val(); - var isoDate = ''; - if (dateVal) { - var date = input.datepicker('getDate'); - isoDate = convertToIsoDate(date); - } - - if (isoDate != value) { - saveDate(isoDate); - } - else { - noSave(); - } - - }; - - var noSave = function() { - cell.removeClass('editing'); - span.remove(); - current.show(); - }; - - - ko.utils.registerEventHandler(input, "hide", changeHandler); - }; - $('#projectList').dataTable( { - "data": fcConfig.projects, - "autoWidth":false, - "columns": projectListHeader, - "initComplete":function(settings) { - $('#projectList tbody').on('click', 'a.agreementDate', editAgreementDate); - }, - "footerCallback": function ( tfoot, data, start, end, display ) { - var api = this.api(); - - // Remove the formatting to get integer data for summation - var intVal = function ( i ) { - return typeof i === 'string' ? - i.replace(/[\$,]/g, '')*1 : - typeof i === 'number' ? - i : 0; - }; - - var fundingColumn = -1; - $.each(projectListHeader, function(i, column) { - if (column.data == 'funding') { - fundingColumn = i; - return false; - } - }); - - if (fundingColumn < 0) { - return; - } - // Total over all pages - var total = api - .column( fundingColumn ) - .data() - .reduce( function (a, b) { - return intVal(a) + intVal(b); - } ); - - // Total over this page - var pageTotal = api - .column( fundingColumn, { page: 'current'} ) - .data() - .reduce( function (a, b) { - return intVal(a) + intVal(b); - }, 0 ); - - // Update footer - var footerRow = $(api.table().footer()).find('tr'); - var col = footerRow.find('td.fundingTotal'); - if (!col.length) { - footerRow.append(''); - footerRow.append('$'+pageTotal + ' ($'+total + ' total)'+''); - - } - else { - col.text('$'+pageTotal + ' ($'+total + ' total)'); - } - - } - }); -}); - diff --git a/grails-app/views/organisation/_serviceTargets.gsp b/grails-app/views/organisation/_serviceTargets.gsp new file mode 100644 index 000000000..e67153002 --- /dev/null +++ b/grails-app/views/organisation/_serviceTargets.gsp @@ -0,0 +1,71 @@ + +

    ${title ?: "Organisation targets"}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ${serviceName ?: "Service"}Target measureOverall % target ${totalHelpText} + Delivery date ${deliveryHelpText} + ${periodTargetsLabel ?: " % targets by date"}
    + + + + + + +
    + +
    + +   + +
    +
    +
    + +
    + + + \ No newline at end of file diff --git a/grails-app/views/organisation/create.gsp b/grails-app/views/organisation/create.gsp index 433c53513..8ddff951c 100644 --- a/grails-app/views/organisation/create.gsp +++ b/grails-app/views/organisation/create.gsp @@ -7,12 +7,16 @@ @@ -36,7 +40,7 @@
    - +
    @@ -44,50 +48,25 @@ $(function () { var organisation = ; - abn = ko.observable(''); - var options = {prepopulateAbnUrl: fcConfig.prepopulateAbnUrl, abnSelector: '#abnSelector', organisationSaveUrl:fcConfig.organisationSaveUrl, serverUrl: fcConfig.serverUrl, organisationViewUrl: fcConfig.organisationViewUrl, returnTo: fcConfig.returnTo} + var options = { + prepopulateAbnUrl: fcConfig.prepopulateAbnUrl, - var organisationViewModel = new OrganisationViewModel(organisation, options); - autoSaveModel(organisationViewModel, fcConfig.organisationSaveUrl, - { - blockUIOnSave:true, - blockUISaveMessage:'Creating organisation....', - serializeModel:function() {return organisationViewModel.modelAsJSON(true);} - }); - organisationViewModel.save = function() { - if ($('.validationEngineContainer').validationEngine('validate')) { - organisationViewModel.saveWithErrorDetection( - function(data) { - var orgId = self.organisationId?self.organisationId:data.organisationId; - - var url; - if (fcConfig.returnTo) { - if (fcConfig.returnTo.indexOf('?') > 0) { - url = fcConfig.returnTo+'&organisationId='+orgId; - } - else { - url = fcConfig.returnTo+'?organisationId='+orgId; - } - } - else { - url = fcConfig.organisationViewUrl+'/'+orgId; - } - window.location.href = url; - }, - function(data) { - bootbox.alert('Error

    '+data.detail+'

    '); - } - ); - - } - }; + organisationSaveUrl:fcConfig.organisationSaveUrl, + viewProjectUrl: fcConfig.viewProjectUrl, + organisationViewUrl: fcConfig.organisationViewUrl, + documentUpdateUrl: fcConfig.documentUpdateUrl, + documentDeleteUrl: fcConfig.documentDeleteUrl, + organisationEditUrl: fcConfig.organisationEditUrl, + organisationListUrl: fcConfig.organisationListUrl, + organisationDeleteUrl: fcConfig.organisationDeleteUrl, + organisationSearchUrl: fcConfig.organisationSearchUrl, + validationContainerSelector: '.validationEngineContainer', + abnSelector: '#abnSelector', + returnTo: fcConfig.returnTo }; + var organisationViewModel = new EditOrganisationViewModel(organisation, options); ko.applyBindings(organisationViewModel); - $('.validationEngineContainer').validationEngine(); - - $("#cancel").on("click", function() { - document.location.href = "${createLink(action:'list')}"; - }); + organisationViewModel.attachValidation(); }); diff --git a/grails-app/views/organisation/edit.gsp b/grails-app/views/organisation/edit.gsp index 8900207cb..7a26dfe70 100644 --- a/grails-app/views/organisation/edit.gsp +++ b/grails-app/views/organisation/edit.gsp @@ -7,17 +7,16 @@ @@ -80,14 +80,22 @@ var organisation =; var availableReportCategories = ; + var services = ; + var targetPeriods = ; var config = _.extend({ reportingConfigSelector:'#reporting-config form', availableReportCategories:availableReportCategories, + targetPeriods: targetPeriods, + services: services, + organisationDetailsSelector: '#organisation-details', + }, fcConfig); + var organisationViewModel = new OrganisationPageViewModel(organisation, config); ko.applyBindings(organisationViewModel); organisationViewModel.initialise(); + organisationViewModel.attachValidation(); $('#loading').hide(); $('#organisationDetails').show(); }); diff --git a/grails-app/views/project/_associatedOrgsReadOnly.gsp b/grails-app/views/project/_associatedOrgsReadOnly.gsp new file mode 100644 index 000000000..2d0fc8c1e --- /dev/null +++ b/grails-app/views/project/_associatedOrgsReadOnly.gsp @@ -0,0 +1,31 @@ +
    +

    History of organisations associated with this project

    + +
      +
    • + + + + + + + + + + + + + ( + + from + + + to + + ) + + +
    • +
    + +
    \ No newline at end of file diff --git a/grails-app/views/project/_editProject.gsp b/grails-app/views/project/_editProject.gsp index 1c305c8db..7de30e7e3 100644 --- a/grails-app/views/project/_editProject.gsp +++ b/grails-app/views/project/_editProject.gsp @@ -20,37 +20,10 @@
    -
    -
    - - -
    -
    - -
    - -
    -
    -
    -
    -
    - -
    - -
    -
    -
    - -
    - -
    + -
    -
    @@ -289,6 +262,84 @@
    +
    +
    + +
    + The following information only needs to be filled out if: +
      +
    • Downloaded information contradicts the actual electorate/state names that should be displayed.
    • +
    • There is no information available in the Sites tab.
    • +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Settings + + The sites for this project should be: +
    + + +
    +
    + + +
    +
    +
    + + +
    +
    + + + +
    + + + +
    + + + +
    + + + +
    +
    +
    +
    +
    diff --git a/grails-app/views/project/_geographicInfo.gsp b/grails-app/views/project/_geographicInfo.gsp new file mode 100644 index 000000000..86943cddc --- /dev/null +++ b/grails-app/views/project/_geographicInfo.gsp @@ -0,0 +1,41 @@ + + +

    Geographic range

    +
    +
    + This is a national project. +
    +
    +
    + +

    Geographic range

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +
    Primary State${project.primarystate}
    Other State(s)${project.otherstate}
    Primary Electorate${project.primaryelect}
    Other Electorate(s)${project.otherelect}
    +
    +
    +
    +
    diff --git a/grails-app/views/project/_overview.gsp b/grails-app/views/project/_overview.gsp index 0d572ea87..0b085a8ce 100644 --- a/grails-app/views/project/_overview.gsp +++ b/grails-app/views/project/_overview.gsp @@ -1,168 +1,248 @@ -
    -
    -

    - Recipient: - - - - -

    -
    -
    -

    - Service provider: - - - - -

    -
    -
    -

    - Program: - - -

    -
    - -
    -

    - Approved funding (GST exclusive): -

    +
    -
    - +
    +
    +
    - -
    -

    - Project start: - Project finish: -

    -
    -
    -
    -
    -
    - - Project Status: - - - - Project Status: - - - - Project Status: - - -
    -
    - Grant Id: - -
    -
    - External Id: - -
    -
    - Manager: - -
    +
    +
    +
    Program
    + + +
    +
    + +
    +
    + +
    + +
    +
    Management Unit
    +
    ${project.managementUnitName?.encodeAsHTML()}
    +
    +
    + +
    +
    + +
    + + + + +
    +
    + + +
    +
    ${g.message(code:'label.merit.projectID')}
    + +
    ${project.grantId}
    +
    + +
    +
    Project status
    + +
    + + + + + + +
    +
    + + +
    +
    Termination Reason
    +
    + +
    +
    +
    +
    -
    - -
    -
    -
    - Termination Reason: +
    +
    + +
    +
    +
    + +
    +
    Project start
    + +
    +
    + +
    +
    Project end
    + +
    +
    + + +
    +
    Project Funding
    + +
    +
    + + + +
    +
    /s
    +
    + +
    +
    +
    + + +
    +
    ${g.message(code:'label.merit.externalID')}
    +
    ${project.externalId}
    +
    +
    -
    - -
    -
    -
    -
    -
    - Project Description -
    -

    -
    + +

    Program outcomes addressed

    - -
    - -
    -

    Environmental Outcomes

    -

    ${outcomes.environmentalOutcomes}

    -
    -
    - -
    -

    Economic Outcomes

    -

    ${outcomes.economicOutcomes}

    -
    -
    - -
    -

    Social Outcomes

    -

    ${outcomes.socialOutcomes}

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OutcomesInvestment Priority
    Primary Outcome${p_outcome.description} + +
      + +
    • ${p_asset}
    • +
      +
    +
    + + + ${p_asset} + + +
    Secondary Outcomes${s_outcome.description} + + ${s_asset}
    +
    +
    +
    + + The MERI Plan is currently being developed. These details will be made available as soon as possible. +
    +
    + + + +

    Objectives addressed

    + +
      + +
    • ${objective.description}
    • +
      +
    + + The MERI Plan is currently being developed. These details will be made available as soon as possible. + +
    + +

    Project Description

    +
    +
    +

    +
    - - - - + +
    +

    Multimedia

    -
    - - - - - - -
    + +
    + + + + + + +

    +

    Project blog

    - - + - + -
    -
    -

    Project photos

    - -
    - +
    +

    Project photos

    +

    +

    News & events

    +
    - + %{-- Legacy news & events section--}% -
    -
    +
    +
    @@ -170,11 +250,11 @@

    Project stories

    - + %{-- Legacy news & events section--}% -
    -
    +
    +
    diff --git a/grails-app/views/project/_projectAdmin.gsp b/grails-app/views/project/_projectAdmin.gsp index a55bdf254..24aaef304 100644 --- a/grails-app/views/project/_projectAdmin.gsp +++ b/grails-app/views/project/_projectAdmin.gsp @@ -42,6 +42,7 @@ Documents + Organisation history Audit
    @@ -149,6 +150,10 @@ +
    + +
    +
    diff --git a/grails-app/views/project/_projectSites.gsp b/grails-app/views/project/_projectSites.gsp index f29664c32..174d0f382 100644 --- a/grails-app/views/project/_projectSites.gsp +++ b/grails-app/views/project/_projectSites.gsp @@ -3,4 +3,5 @@ \ No newline at end of file +
    + \ No newline at end of file diff --git a/grails-app/views/project/_rlpOverview.gsp b/grails-app/views/project/_rlpOverview.gsp deleted file mode 100644 index c2d3e6c9e..000000000 --- a/grails-app/views/project/_rlpOverview.gsp +++ /dev/null @@ -1,263 +0,0 @@ - -
    - -
    -
    -
    - -
    -
    -
    Program
    - - -
    -
    - -
    -
    - -
    - -
    -
    Management Unit
    -
    ${project.managementUnitName?.encodeAsHTML()}
    -
    -
    - -
    -
    ${config.program?.config?.organisationRelationship ?: "Service Provider"}
    - -
    - - - - -
    -
    - -
    -
    ${g.message(code:'label.merit.projectID')}
    - -
    ${project.grantId}
    -
    - -
    -
    Project status
    - -
    - - - - - - -
    -
    - - -
    -
    Termination Reason
    -
    - -
    -
    -
    -
    - -
    -
    - -
    -
    -
    - -
    -
    Project start
    - -
    -
    - -
    -
    Project end
    - -
    -
    - - -
    -
    Project Funding
    - -
    -
    - - - -
    -
    /s
    -
    - -
    -
    -
    - - -
    -
    ${g.message(code:'label.merit.externalID')}
    -
    ${project.externalId}
    -
    -
    -
    -
    -
    -
    - - -

    Program outcomes addressed

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    OutcomesInvestment Priority
    Primary Outcome${p_outcome.description} - -
      - -
    • ${p_asset}
    • -
      -
    -
    - - - ${p_asset} - - -
    Secondary Outcomes${s_outcome.description} - - ${s_asset}
    -
    -
    -
    - - The MERI Plan is currently being developed. These details will be made available as soon as possible. - -
    -
    -
    - - -

    Objectives addressed

    - -
      - -
    • ${objective.description}
    • -
      -
    -
    - - The MERI Plan is currently being developed. These details will be made available as soon as possible. - -
    - -

    Project Description

    -
    -
    -

    -
    -
    - -
    -
    - -
    -

    Multimedia

    - -
    - - - - - - -
    -
    - - - -
    - -

    Project blog

    - - - - - - - -
    -

    Project photos

    - -
    -
    - -
    - - -

    News & events

    - -
    - - - %{-- Legacy news & events section--}% -
    -
    -
    -
    -
    - - -

    Project stories

    -
    - - - %{-- Legacy news & events section--}% -
    -
    -
    -
    -
    -
    - - - - diff --git a/grails-app/views/project/index.gsp b/grails-app/views/project/index.gsp index 59201d9b4..25a3eaee6 100644 --- a/grails-app/views/project/index.gsp +++ b/grails-app/views/project/index.gsp @@ -1,4 +1,5 @@ <%@ page import="au.org.ala.merit.config.ProgramConfig; au.org.ala.merit.ProjectController" contentType="text/html;charset=UTF-8" expressionCodec="none"%> + @@ -82,6 +83,8 @@ projectScoresUrl: "${createLink(action:'serviceScores', id:project.projectId)}", healthCheckUrl: "${createLink(controller:'ajax', action:'keepSessionAlive')}", projectDatesValidationUrl: "${createLink(controller:'project', action:'ajaxValidateProjectDates', id:project.projectId)}", + listOfStatesUrl: "${createLink(controller:'project', action:'spatialFeatures', params: [layerId: "${grailsApplication.config.getProperty('layers.states')}"])}", + listOfElectoratesUrl: "${createLink(controller:'project', action:'spatialFeatures', params: [layerId: "${grailsApplication.config.getProperty('layers.elect')}", intersectWith: "${grailsApplication.config.getProperty('layers.states')}"])}", spinnerUrl: "${asset.assetPath(src:'loading.gif')}", projectSitesUrl: "${createLink(action:'ajaxProjectSites', id:project.projectId)}", useGoogleBaseMap: ${grails.util.Environment.current == grails.util.Environment.PRODUCTION}, @@ -230,7 +233,6 @@
    - var organisations = ; $(function () { var PROJECT_DETAILS_KEY = 'project.custom.details.${project.projectId}'; var PROJECT_RISKS_KEY = 'project.risks.${project.projectId}'; @@ -339,9 +341,12 @@ var config = { config.speciesListUrl = fcConfig.speciesListUrl; config.speciesImageUrl = fcConfig.speciesImageUrl; config.speciesProfileUrl = fcConfig.speciesProfileUrl; + config.organisationSearchUrl = fcConfig.organisationSearchUrl; + config.organisationViewUrl = fcConfig.organisationLinkBaseUrl; project.mapFeatures = $.parseJSON('${mapFeatures?.encodeAsJavaScript()}'); - var viewModel = new ProjectPageViewModel(project, project.sites, project.activities || [], organisations, userRoles, config); + var viewModel = new ProjectPageViewModel(project, project.sites, project.activities || [], userRoles, config); viewModel.loadPrograms(programs); + viewModel.loadStatesAndElectorates(); ko.applyBindings(viewModel); window.validateProjectEndDate = viewModel.validateProjectEndDate; diff --git a/grails-app/views/shared/_projectListByProgram.gsp b/grails-app/views/shared/_projectListByProgram.gsp index 7fc8dd9bb..da8e08564 100644 --- a/grails-app/views/shared/_projectListByProgram.gsp +++ b/grails-app/views/shared/_projectListByProgram.gsp @@ -9,8 +9,8 @@ - - + + @@ -20,8 +20,10 @@ - - + + diff --git a/package-lock.json b/package-lock.json index 5febadea4..35ee7a456 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ }, "devDependencies": { "@metahub/karma-jasmine-jquery": "^2.0.1", - "chromedriver": "^128.0.0", + "chromedriver": "^131.0.1", "jasmine-core": "^3.5.0", "jasmine-jquery": "^2.0.0", "jquery": "3.6.2", @@ -1093,11 +1093,12 @@ } }, "node_modules/chromedriver": { - "version": "128.0.0", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-128.0.0.tgz", - "integrity": "sha512-Ggo21z/dFQxTOTgU0vm0V59Mi79yyR+9AUk/KiVAsRfbDRdVZQYQWfgxnIvD/x8KOKn0oB7haRzDO/KfrKyvOA==", + "version": "131.0.1", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-131.0.1.tgz", + "integrity": "sha512-LHRh+oaNU1WowJjAkWsviN8pTzQYJDbv/FvJyrQ7XhjKdIzVh/s3GV1iU7IjMTsxIQnBsTjx+9jWjzCWIXC7ug==", "dev": true, "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "@testim/chrome-version": "^1.1.4", "axios": "^1.7.4", @@ -1254,9 +1255,9 @@ } }, "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "dev": true, "engines": { "node": ">= 0.6" @@ -1546,9 +1547,9 @@ "dev": true }, "node_modules/elliptic": { - "version": "6.5.7", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz", - "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.0.tgz", + "integrity": "sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==", "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -1589,9 +1590,9 @@ } }, "node_modules/engine.io": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz", - "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz", + "integrity": "sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==", "dev": true, "dependencies": { "@types/cookie": "^0.4.1", @@ -1599,7 +1600,7 @@ "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", - "cookie": "~0.4.1", + "cookie": "~0.7.2", "cors": "~2.8.5", "debug": "~4.3.1", "engine.io-parser": "~5.2.1", @@ -1610,21 +1611,21 @@ } }, "node_modules/engine.io-parser": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", - "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", "dev": true, "engines": { "node": ">=10.0.0" } }, "node_modules/engine.io/node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1636,9 +1637,9 @@ } }, "node_modules/engine.io/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "node_modules/ent": { @@ -3796,16 +3797,16 @@ } }, "node_modules/socket.io": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", - "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.0.tgz", + "integrity": "sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==", "dev": true, "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", "cors": "~2.8.5", "debug": "~4.3.2", - "engine.io": "~6.5.2", + "engine.io": "~6.6.0", "socket.io-adapter": "~2.5.2", "socket.io-parser": "~4.2.4" }, @@ -5420,9 +5421,9 @@ } }, "chromedriver": { - "version": "128.0.0", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-128.0.0.tgz", - "integrity": "sha512-Ggo21z/dFQxTOTgU0vm0V59Mi79yyR+9AUk/KiVAsRfbDRdVZQYQWfgxnIvD/x8KOKn0oB7haRzDO/KfrKyvOA==", + "version": "131.0.1", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-131.0.1.tgz", + "integrity": "sha512-LHRh+oaNU1WowJjAkWsviN8pTzQYJDbv/FvJyrQ7XhjKdIzVh/s3GV1iU7IjMTsxIQnBsTjx+9jWjzCWIXC7ug==", "dev": true, "requires": { "@testim/chrome-version": "^1.1.4", @@ -5561,9 +5562,9 @@ } }, "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "dev": true }, "core-util-is": { @@ -5807,9 +5808,9 @@ "dev": true }, "elliptic": { - "version": "6.5.7", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz", - "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.0.tgz", + "integrity": "sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==", "requires": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -5849,9 +5850,9 @@ } }, "engine.io": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz", - "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz", + "integrity": "sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==", "dev": true, "requires": { "@types/cookie": "^0.4.1", @@ -5859,7 +5860,7 @@ "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", - "cookie": "~0.4.1", + "cookie": "~0.7.2", "cors": "~2.8.5", "debug": "~4.3.1", "engine.io-parser": "~5.2.1", @@ -5867,26 +5868,26 @@ }, "dependencies": { "debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.3" } }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true } } }, "engine.io-parser": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", - "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", "dev": true }, "ent": { @@ -7539,16 +7540,16 @@ "dev": true }, "socket.io": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", - "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.0.tgz", + "integrity": "sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==", "dev": true, "requires": { "accepts": "~1.3.4", "base64id": "~2.0.0", "cors": "~2.8.5", "debug": "~4.3.2", - "engine.io": "~6.5.2", + "engine.io": "~6.6.0", "socket.io-adapter": "~2.5.2", "socket.io-parser": "~4.2.4" }, diff --git a/package.json b/package.json index 9ccde6792..8523f5e78 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ }, "devDependencies": { "@metahub/karma-jasmine-jquery": "^2.0.1", - "chromedriver": "^128.0.0", + "chromedriver": "^131.0.1", "jasmine-core": "^3.5.0", "jasmine-jquery": "^2.0.0", "jquery": "3.6.2", diff --git a/src/integration-test/groovy/au/org/ala/fieldcapture/AdminSpec.groovy b/src/integration-test/groovy/au/org/ala/fieldcapture/AdminSpec.groovy index 7329f2aca..6101933ec 100644 --- a/src/integration-test/groovy/au/org/ala/fieldcapture/AdminSpec.groovy +++ b/src/integration-test/groovy/au/org/ala/fieldcapture/AdminSpec.groovy @@ -35,7 +35,7 @@ class AdminSpec extends StubbedCasSpec { at MERITAdministrationPage and: - administration.adminTab.size() == 12 + administration.adminTab.size() == 13 administration.audit.text() == " Audit" administration.staticPages.text() == " Static pages" administration.helpResources.text() == " Help Resources" diff --git a/src/integration-test/groovy/au/org/ala/fieldcapture/ConfigurableMeriPlanSpec.groovy b/src/integration-test/groovy/au/org/ala/fieldcapture/ConfigurableMeriPlanSpec.groovy index a7e52ef8f..62b07b3e8 100644 --- a/src/integration-test/groovy/au/org/ala/fieldcapture/ConfigurableMeriPlanSpec.groovy +++ b/src/integration-test/groovy/au/org/ala/fieldcapture/ConfigurableMeriPlanSpec.groovy @@ -4,6 +4,7 @@ import pages.AdminClearCachePage import pages.AdminTools import pages.MeriPlanPDFPage import pages.RlpProjectPage +import spock.lang.Ignore import spock.lang.Stepwise import geb.module.FormElement @@ -53,6 +54,11 @@ class ConfigurableMeriPlanSpec extends StubbedCasSpec { meriPlan = openMeriPlanEditTab() + waitFor{meriPlan.projectName.displayed} + interact { + moveToElement(meriPlan.projectName) + } + meriPlan.projectName = "MERI plan edited name" meriPlan.projectDescription = "MERI plan edited description" meriPlan.priorityPlace.supportsPriorityPlaces = 'Yes' @@ -497,7 +503,9 @@ class ConfigurableMeriPlanSpec extends StubbedCasSpec { at RlpProjectPage // reset at check time. meriPlan = openMeriPlanEditTab() + meriPlan.checkObjective("objective 2") + meriPlan.monitoringIndicators[0].indicator = "indicator 1" meriPlan.monitoringIndicators[0].approach = "approach 1" meriPlan.projectImplementation = "project implementation" @@ -665,7 +673,7 @@ class ConfigurableMeriPlanSpec extends StubbedCasSpec { withWindow([close:true], "meri-plan-report") { at MeriPlanPDFPage - closePrintInstructions() + closePrintInstructions() page.meriPlan.assets[0].description.text() == "asset 1" diff --git a/src/integration-test/groovy/au/org/ala/fieldcapture/CreateOrEditOrganisationSpec.groovy b/src/integration-test/groovy/au/org/ala/fieldcapture/CreateOrEditOrganisationSpec.groovy index a1cb3a3c2..76c868b53 100644 --- a/src/integration-test/groovy/au/org/ala/fieldcapture/CreateOrEditOrganisationSpec.groovy +++ b/src/integration-test/groovy/au/org/ala/fieldcapture/CreateOrEditOrganisationSpec.groovy @@ -32,6 +32,7 @@ class CreateOrEditOrganisationSpec extends StubbedCasSpec { at CreateOrganisation } when: + details.abnStatus = "Active" details.abn = "51824753556" waitFor {details.prePopulateABN.displayed} details.prePopulateABN.click() @@ -66,12 +67,8 @@ class CreateOrEditOrganisationSpec extends StubbedCasSpec { then: waitFor {at EditOrganisation} - and: "The organisation name is not editable by normal users" - details.isNameReadOnly() == true when: - details.abn = "66666666666" - waitFor {details.prePopulateABN.displayed} details.description = "Test Organisation Description test" details.save() @@ -83,8 +80,6 @@ class CreateOrEditOrganisationSpec extends StubbedCasSpec { then: orgDescription.text() == "Test Organisation Description test" - waitFor {orgAbn.displayed } - orgAbn.text() == "66666666666" } @@ -102,6 +97,7 @@ class CreateOrEditOrganisationSpec extends StubbedCasSpec { waitFor 20, {at EditOrganisation} when: + details.abnStatus = "Active" details.abn = "98434926368" waitFor {details.prePopulateABN.displayed} details.prePopulateABN.click() diff --git a/src/integration-test/groovy/au/org/ala/fieldcapture/DatasetSpec.groovy b/src/integration-test/groovy/au/org/ala/fieldcapture/DatasetSpec.groovy index f7bdf2aea..483d4958b 100644 --- a/src/integration-test/groovy/au/org/ala/fieldcapture/DatasetSpec.groovy +++ b/src/integration-test/groovy/au/org/ala/fieldcapture/DatasetSpec.groovy @@ -3,6 +3,7 @@ package au.org.ala.fieldcapture import geb.module.FormElement import pages.DatasetPage import pages.RlpProjectPage +import spock.lang.Ignore import spock.lang.Stepwise @Stepwise @@ -237,8 +238,11 @@ class DatasetSpec extends StubbedCasSpec{ hasBeenReloaded() } at RlpProjectPage // reset at check time. - meriPlan = openMeriPlanEditTab() + + waitFor { + meriPlan.holdsEditLock() + } meriPlan.save() and: "We reload the page and reopen the data set summary tab" diff --git a/src/integration-test/groovy/au/org/ala/fieldcapture/ImportProjectsSpec.groovy b/src/integration-test/groovy/au/org/ala/fieldcapture/ImportProjectsSpec.groovy index 0d95a3540..f3a586c1b 100644 --- a/src/integration-test/groovy/au/org/ala/fieldcapture/ImportProjectsSpec.groovy +++ b/src/integration-test/groovy/au/org/ala/fieldcapture/ImportProjectsSpec.groovy @@ -1,6 +1,8 @@ package au.org.ala.fieldcapture import groovy.util.logging.Slf4j +import pages.AdminClearCachePage +import pages.AdminTools import pages.Organisation import pages.ProgramPage import pages.ProjectImport @@ -11,6 +13,12 @@ class ImportProjectsSpec extends StubbedCasSpec { def setup() { useDataSet('dataset2') + loginAsAlaAdmin(browser) + to AdminTools + clearMetadata() + to AdminClearCachePage + clearProgramListCache() + clearServiceListCache() } //Once a project is imported, the status of the project should be Application @@ -46,10 +54,8 @@ class ImportProjectsSpec extends StubbedCasSpec { displayReportsTab() then: - waitFor { - projectContent[6].text() == 'APPLICATION' - } - + reportsTabPane.projects.find{it.name == 'project 1'} + reportsTabPane.projects.find{it.name == 'project 1'}.status == "APPLICATION" } def "New projects can be imported into MERIT"() { @@ -85,9 +91,10 @@ class ImportProjectsSpec extends StubbedCasSpec { then: waitFor { - $("#projects tbody tr td .badge.badge-info").size() == 2 - $("#projects tbody tr td .badge.badge-info")[0].text() == 'APPLICATION' - $("#projects tbody tr td .badge.badge-info")[1].text() == 'APPLICATION' + reportsTabPane.projects.find{it.name == 'project 2'} + reportsTabPane.projects.find{it.name == 'project 2'}.status == "APPLICATION" + reportsTabPane.projects.find{it.name == 'project 3'} + reportsTabPane.projects.find{it.name == 'project 3'}.status == "APPLICATION" } } diff --git a/src/integration-test/groovy/au/org/ala/fieldcapture/RlpProjectSpec.groovy b/src/integration-test/groovy/au/org/ala/fieldcapture/RlpProjectSpec.groovy index 94c7de2c5..8731e08d4 100644 --- a/src/integration-test/groovy/au/org/ala/fieldcapture/RlpProjectSpec.groovy +++ b/src/integration-test/groovy/au/org/ala/fieldcapture/RlpProjectSpec.groovy @@ -49,7 +49,7 @@ class RlpProjectSpec extends StubbedCasSpec { } overview.program.text() == 'Test program' overview.managementUnitName.text() == 'Test management unit' - overview.serviceProviderName.text() == 'Test Org' + overview.serviceProviderName.text() == 'Test Organisation' overview.projectId.text() == 'RLP-Test-Program-Project-1' overview.status.text() == 'ACTIVE' overview.startDate.text() == '01-07-2018' diff --git a/src/integration-test/groovy/au/org/ala/fieldcapture/RlpReportingSpec.groovy b/src/integration-test/groovy/au/org/ala/fieldcapture/RlpReportingSpec.groovy index ba4b178a8..4cdf8d395 100644 --- a/src/integration-test/groovy/au/org/ala/fieldcapture/RlpReportingSpec.groovy +++ b/src/integration-test/groovy/au/org/ala/fieldcapture/RlpReportingSpec.groovy @@ -2,12 +2,14 @@ package au.org.ala.fieldcapture import com.icegreen.greenmail.util.GreenMail import com.icegreen.greenmail.util.GreenMailUtil +import org.openqa.selenium.ElementClickInterceptedException import pages.ProjectDownloadReport import pages.ProjectIndex import pages.RlpProjectPage import pages.ReportPage import pages.ViewReportPage import pages.modules.ReportCategory +import spock.lang.Ignore import spock.lang.Shared import spock.lang.Stepwise @@ -258,7 +260,7 @@ class RlpReportingSpec extends StubbedCasSpec { projectReports.reports[0].downloadReport() then: - withWindow("print-report", { + withWindow([close:true], "print-report") { at ProjectDownloadReport waitFor { printInstructions.displayed @@ -267,7 +269,7 @@ class RlpReportingSpec extends StubbedCasSpec { waitFor { !printInstructions.displayed } - }) + } } @@ -720,7 +722,18 @@ class RlpReportingSpec extends StubbedCasSpec { getFormSections().each { // Mark all sections except the Weed Distribution Survey as not applicable if (isOptional(it) && it != 'koRLP_-_Weed_distribution_survey') { - markAsNotApplicable(it) + try { + markAsNotApplicable(it) + } + catch (ElementClickInterceptedException e) { + println "ElementClickInterceptedException: $it" + String section = it + interact { + moveToElement(notApplicableCheckbox(section)) + } + markAsNotApplicable(it) + } + } } def section = $('#koRLP_-_Weed_distribution_survey') @@ -769,7 +782,7 @@ class RlpReportingSpec extends StubbedCasSpec { logout(browser) loginAsGrantManager(browser) to RlpProjectPage, projectId - displayReportingTab() + displayReportingTab(5) projectReports.reports[3].approve() then: "An over delivery warning will be displayed" diff --git a/src/integration-test/groovy/pages/AddOrEditOrganisation.groovy b/src/integration-test/groovy/pages/AddOrEditOrganisation.groovy index 61d351765..12f21c8ca 100644 --- a/src/integration-test/groovy/pages/AddOrEditOrganisation.groovy +++ b/src/integration-test/groovy/pages/AddOrEditOrganisation.groovy @@ -5,6 +5,7 @@ import geb.module.FormElement class AddOrEditOrganisation extends Module { static content = { + abnStatus { $('#abnStatus') } name { $('#name') } acronym{$('#acronym')} abn{$('#abnSelector')} diff --git a/src/integration-test/groovy/pages/ProjectImport.groovy b/src/integration-test/groovy/pages/ProjectImport.groovy index 6aef507e2..67aa11223 100644 --- a/src/integration-test/groovy/pages/ProjectImport.groovy +++ b/src/integration-test/groovy/pages/ProjectImport.groovy @@ -4,7 +4,7 @@ import geb.Page class ProjectImport extends Page { - static url = "admin/gmsProjectImport" + static url = "admin/importMeritProjects" static at = { title.startsWith("Import Projects") } diff --git a/src/integration-test/groovy/pages/ReportPage.groovy b/src/integration-test/groovy/pages/ReportPage.groovy index d1f9c513b..2a5eecae7 100644 --- a/src/integration-test/groovy/pages/ReportPage.groovy +++ b/src/integration-test/groovy/pages/ReportPage.groovy @@ -78,8 +78,12 @@ class ReportPage extends Page { } def markAsNotApplicable(String sectionId) { + notApplicableCheckbox(sectionId).value(true) + } + + Navigator notApplicableCheckbox(String sectionId) { String sectionSelector = '#'+sectionId + " input[data-bind*=outputNotComplete]" - $(sectionSelector).value(true) + $(sectionSelector) } List getFormSections() { diff --git a/src/integration-test/groovy/pages/modules/EditableMeriPlan.groovy b/src/integration-test/groovy/pages/modules/EditableMeriPlan.groovy index 6ebbc537c..d63748c39 100644 --- a/src/integration-test/groovy/pages/modules/EditableMeriPlan.groovy +++ b/src/integration-test/groovy/pages/modules/EditableMeriPlan.groovy @@ -466,6 +466,9 @@ class EditableMeriPlan extends Module { /** Users of this method should waitFor hasBeenReloaded as this triggers a page reload */ void aquireEditLock() { + waitFor { + lockMeriPlanButton.displayed + } lockMeriPlanButton.click() } diff --git a/src/integration-test/groovy/pages/modules/OrganisationReports.groovy b/src/integration-test/groovy/pages/modules/OrganisationReports.groovy index a2581c699..e2cea36e9 100644 --- a/src/integration-test/groovy/pages/modules/OrganisationReports.groovy +++ b/src/integration-test/groovy/pages/modules/OrganisationReports.groovy @@ -8,7 +8,7 @@ class OrganisationReports extends Module { static content = { projects { - + $('#projects .projects-wrapper tbody tr').moduleList(ReportingProjectListRow) } reports { try { @@ -18,6 +18,7 @@ class OrganisationReports extends Module { return [] } } + programLabels(required: false) { $('#projects .well-title').text() } reasonModal(required:false) { $('#reason-modal') } notRequiredReason(required:false) { $('#reason-modal [id="reason"]') } } diff --git a/src/integration-test/groovy/pages/modules/ReportingProjectListRow.groovy b/src/integration-test/groovy/pages/modules/ReportingProjectListRow.groovy new file mode 100644 index 000000000..5ab306847 --- /dev/null +++ b/src/integration-test/groovy/pages/modules/ReportingProjectListRow.groovy @@ -0,0 +1,12 @@ +package pages.modules + +import geb.Module + +class ReportingProjectListRow extends Module { + static content = { + projectId { $('.projectId a').text() } + name { $('.name').text() } + status { $('.statusCol').text() } + } + +} diff --git a/src/integration-test/resources/data/projectDefaults.js b/src/integration-test/resources/data/projectDefaults.js index 7b663f93d..d4afc85f8 100644 --- a/src/integration-test/resources/data/projectDefaults.js +++ b/src/integration-test/resources/data/projectDefaults.js @@ -21,9 +21,6 @@ var projectDefaults = { "manager": "", "name": "Test Program - Project 1 - TEST4", "outputTargets":[], - "orgIdSvcProvider": "", - "organisationId": "", - "organisationName": "Test Org", "origin": "merit", "planStatus": "not approved", "plannedEndDate": ISODate("2023-06-30T14:00:00Z"), @@ -34,13 +31,15 @@ var projectDefaults = { "projectType": "works", "promoteOnHomepage": "no", "scienceType": [], - "serviceProviderName": "", "status": "active", "tags": [], "uNRegions": [], "externalIds": [ {"idType":"INTERNAL_ORDER_NUMBER", "externalId":"1234565"}, - {"idType":"WORK_ORDER", "externalId":"1234565"}] + {"idType":"WORK_ORDER", "externalId":"1234565"}], + "associatedOrgs":[ + {"organisationId":"test_organisation", "description":"Service provider", organisationName:"Test Organisation", name:"Test Organisation"}, + ] } } @@ -49,62 +48,6 @@ var projectDefaults = { -var test = - - { - "_id" : ObjectId("546bdd0ae4b01c7b5f355519"), - "hubId":"merit", - "alaHarvest" : false, - "associatedProgram" : "National Landcare Programme", - "associatedSubProgram" : "Regional Funding", - "blog" : [], - "custom" : {}, - "dataProviderId" : "dp2318", - "dataResourceId" : "dr3641", - "dateCreated" : ISODate("2014-11-18T23:58:02.601Z"), - "description" : "", - "externalId" : "NLP-RI54A", - "funding" : 0, - "grantId" : "A0000011549G", - "hasParticipantCost" : false, - "hasTeachingMaterials" : false, - "isCitizenScience" : false, - "isContributingDataToAla" : false, - "isDIY" : false, - "isDataSharing" : false, - "isExternal" : false, - "isHome" : false, - "isMERIT" : true, - "isMetadataSharing" : false, - "isSciStarter" : false, - "isSuitableForChildren" : false, - "lastUpdated" : ISODate("2018-07-09T05:22:38.456Z"), - "manager" : "", - "name" : "Threatened Vegetation Communities Protection and Enhancement", - "organisation" : "", - "organisationId" : "org_1", - "organisationName" : "Wimmera Catchment Management Authority", - "origin" : "merit", - "outputTargets" : [], - "planStatus" : "approved", - "plannedEndDate" : ISODate("2018-06-29T14:00:00Z"), - "plannedStartDate" : ISODate("2014-12-31T13:00:00Z"), - "projectId" : "project_1", - "promoteOnHomepage" : "", - "risks" : { - "overallRisk" : "Low", - "status" : "active" - }, - "serviceProviderName" : "", - "status" : "active", - "timeline" : [] - } - - - - - - diff --git a/src/integration-test/resources/dataset1/loadDataSet.js b/src/integration-test/resources/dataset1/loadDataSet.js index 9b3959cb5..a8dc11c11 100644 --- a/src/integration-test/resources/dataset1/loadDataSet.js +++ b/src/integration-test/resources/dataset1/loadDataSet.js @@ -1,111 +1,402 @@ print("This script is expected to be executed with a working directory containing this script"); -print("Current working dir: "+process.cwd()); +print("Current working dir: " + process.cwd()); load('../data_common/loadMeritHub.js'); load("../data_common/insertData.js"); loadActivityForms(); +let program = programDefaults.create(); +// Configure the program as an original MERIT program with Activities tab. +program.config = { + projectReports: [ + { + reportType: 'Activity', + reportingPeriodInMonths: 6, + reportsAlignedToCalendar: true, + reportNameFormat: 'Stage %1d', + reportDescriptionFormat: 'Stage %1d for ${project.name}' + } + ], + excludes: ['DATA_SETS', 'MERI_PLAN', 'RISKS_AND_THREATS'], + projectTemplate: 'default', + meriPlanTemplate: 'meriPlan', + activities: + + [ + { + "name": "Indigenous Employment and Businesses" + }, + { + "name": "Outcomes, Evaluation and Learning - final report" + }, + { + "name": "Project Administration" + }, + { + "name": "Progress, Outcomes and Learning - stage report" + }, + { + "name": "Fauna Survey - general" + }, + { + "name": "Flora Survey - general" + }, + { + "name": "Pest Animal Survey" + }, + { + "name": "Plant Survival Survey" + }, + { + "name": "Site Monitoring Plan" + }, + { + "name": "Water Quality Survey" + }, + { + "name": "Weed Mapping & Monitoring" + }, + { + "name": "Vegetation Assessment - Commonwealth government methodology" + }, + { + "name": "Community Participation and Engagement" + }, + { + "name": "Debris Removal" + }, + { + "name": "Disease Management" + }, + { + "name": "Erosion Management" + }, + { + "name": "Fencing" + }, + { + "name": "Conservation Grazing Management" + }, + { + "name": "Fire Management" + }, + { + "name": "Heritage Conservation" + }, + { + "name": "Management Plan Development" + }, + { + "name": "Management Practice Change" + }, + { + "name": "Conservation Actions for Species and Communities" + }, + { + "name": "Pest Management" + }, + { + "name": "Plant Propagation" + }, + { + "name": "Public Access and Infrastructure" + }, + { + "name": "Research" + }, + { + "name": "Revegetation" + }, + { + "name": "Seed Collection" + }, + { + "name": "Site Preparation" + }, + { + "name": "Water Management" + }, + { + "name": "Weed Treatment" + }, + { + "name": "Works Planning and Risk" + }, + { + "name": "Green Army - Monthly project status report" + }, + { + "name": "Green Army - Quarterly project report" + }, + { + "name": "Indigenous Knowledge Transfer" + }, + { + "name": "Training and Skills Development" + } + ], + activityNavigationMode: + 'returnToProject' +} +; + +db.program.insert(program); -var activityProject = { - "hubId":"merit", - "alaHarvest":false, - "associatedProgram":"Biodiversity Fund", - "associatedSubProgram":"Round 1", +var activityProject = { + "hubId": "merit", + "alaHarvest": false, + "associatedProgram": "Biodiversity Fund", + "associatedSubProgram": "Round 1", + "programId": "test_program", "custom": { - "details":{ - "lastUpdated":"2016-05-06T03:59:30Z", - "priorities":{ - "description":"", - "rows":[{ - "data3":" In what way will the project deliver against this section?", - "data2":" What section of the plan is being addressed?", - "data1":"List the name of the National or Regional plan the project is addressing" + "details": { + "lastUpdated": "2016-05-06T03:59:30Z", + "priorities": { + "description": "", + "rows": [{ + "data3": " In what way will the project deliver against this section?", + "data2": " What section of the plan is being addressed?", + "data1": "List the name of the National or Regional plan the project is addressing" }] }, - "partnership":{ - "description":"", - "rows":[{ - "data3":"Australian Government Department", - "data2":"Very briefly indicate how the partner is contributing to the project.", - "data1":"Name of project partner" + "partnership": { + "description": "", + "rows": [{ + "data3": "Australian Government Department", + "data2": "Very briefly indicate how the partner is contributing to the project.", + "data1": "Name of project partner" }] }, - "keq":{ - "description":"", - "rows":[{ - "data3":"", - "data2":" Briefly describe how the project will ensure that evaluation questions will be addressed in a timely and appropriate manner.","data1":"List the project's KEQ's" + "keq": { + "description": "", + "rows": [{ + "data3": "", + "data2": " Briefly describe how the project will ensure that evaluation questions will be addressed in a timely and appropriate manner.", + "data1": "List the project's KEQ's" }] }, - "implementation":{ - "description":"How is the project to be delivered? Briefly describe the high level method/s to be used. The delivery mechanism/s should provide sufficient detail to understand how the project's outputs and activities will be implemented." + "implementation": { + "description": "How is the project to be delivered? Briefly describe the high level method/s to be used. The delivery mechanism/s should provide sufficient detail to understand how the project's outputs and activities will be implemented." }, - "obligations":"Yes", - "policies":"Yes", - "objectives":{ - "rows1":[{ - "assets":["Natural/Cultural assets managed"], - "description":"Enter the outcomes sought by the project. This should be expressed as a 'SMART' statement and deliver against the programme. The objective should be no more than 2 sentences." + "obligations": "Yes", + "policies": "Yes", + "objectives": { + "rows1": [{ + "assets": ["Natural/Cultural assets managed"], + "description": "Enter the outcomes sought by the project. This should be expressed as a 'SMART' statement and deliver against the programme. The objective should be no more than 2 sentences." }], - "rows":[{ - "data3":"", - "data2":" How will this indicator be monitored? Briefly describe the mehtod to be used to monitor the indicator.","data1":"List the indicators of project success that will be monitored. Add a new row for each indicator. " + "rows": [{ + "data3": "", + "data2": " How will this indicator be monitored? Briefly describe the mehtod to be used to monitor the indicator.", + "data1": "List the indicators of project success that will be monitored. Add a new row for each indicator. " }] }, - "caseStudy":true, - "events":[{ - "funding":"0", - "name":"The Project Events and Announcements section provides funding recipients a place to provide key forward (planned) announcables and invite the Australian Government to participate in launches, communication and media opportunities related to this requirement. This includes opportunities to announce recipients of small projects and related activities.", - "description":"", - "scheduledDate":"2014-09-17T00:31:12Z", - "media":"", - "grantAnnouncementDate":"", - "type":"1: funding announcements" + "caseStudy": true, + "events": [{ + "funding": "0", + "name": "The Project Events and Announcements section provides funding recipients a place to provide key forward (planned) announcables and invite the Australian Government to participate in launches, communication and media opportunities related to this requirement. This includes opportunities to announce recipients of small projects and related activities.", + "description": "", + "scheduledDate": "2014-09-17T00:31:12Z", + "media": "", + "grantAnnouncementDate": "", + "type": "1: funding announcements" }], - "status":"active", - "budget":{ - "overallTotal":20000, - "headers":[{"data":"2014/2015"}, {"data":"2015/2016"},{"data":"2016/2017"},{"data":"2017/2018"},{"data":"2018/2019"},{"data":"2019/2020"},{"data":"2020/2021"}], - "rows":[{"costs":[{"dollar":"20000"},{"dollar":"0"},{"dollar":"0"},{"dollar":"0"},{"dollar":"0"},{"dollar":"0"},{"dollar":"0"}],"rowTotal":20000,"description":"Expenditure for Community Engagement","shortLabel":"Biodiverse plantings"},{"costs":[{"dollar":"0"},{"dollar":"0"},{"dollar":"0"},{"dollar":"0"},{"dollar":"0"},{"dollar":"0"},{"dollar":"0"}],"rowTotal":0,"description":"Expenditure for Indigenous engagement","shortLabel":"Biodiverse plantings"},{"costs":[{"dollar":"0"},{"dollar":"0"},{"dollar":"0"},{"dollar":"0"},{"dollar":"0"},{"dollar":"0"},{"dollar":"0"}],"rowTotal":0,"description":"Residule expenditure for investment","shortLabel":"Biodiverse plantings"}], - "columnTotal":[{"data":20000},{"data":0},{"data":0},{"data":0},{"data":0},{"data":0},{"data":0}] + "status": "active", + "budget": { + "overallTotal": 20000, + "headers": [{"data": "2014/2015"}, {"data": "2015/2016"}, {"data": "2016/2017"}, {"data": "2017/2018"}, {"data": "2018/2019"}, {"data": "2019/2020"}, {"data": "2020/2021"}], + "rows": [{ + "costs": [{"dollar": "20000"}, {"dollar": "0"}, {"dollar": "0"}, {"dollar": "0"}, {"dollar": "0"}, {"dollar": "0"}, {"dollar": "0"}], + "rowTotal": 20000, + "description": "Expenditure for Community Engagement", + "shortLabel": "Biodiverse plantings" + }, { + "costs": [{"dollar": "0"}, {"dollar": "0"}, {"dollar": "0"}, {"dollar": "0"}, {"dollar": "0"}, {"dollar": "0"}, {"dollar": "0"}], + "rowTotal": 0, + "description": "Expenditure for Indigenous engagement", + "shortLabel": "Biodiverse plantings" + }, { + "costs": [{"dollar": "0"}, {"dollar": "0"}, {"dollar": "0"}, {"dollar": "0"}, {"dollar": "0"}, {"dollar": "0"}, {"dollar": "0"}], + "rowTotal": 0, + "description": "Residule expenditure for investment", + "shortLabel": "Biodiverse plantings" + }], + "columnTotal": [{"data": 20000}, {"data": 0}, {"data": 0}, {"data": 0}, {"data": 0}, {"data": 0}, {"data": 0}] } } - }, - "dateCreated":ISODate("2014-08-05T02:17:43.061Z"), - "description":"The project aims to increase the area and condition of remnant riparian vegetation, volunteers will propagate, plant and maintain local native trees, control environmental weeds, fence a riparian area from cattle, repair a public access track to prevent damage to vegetation and increase public awareness of the conservation significance of local remnant Cumberland Plain Woodland through the installation of interpretative signs.", - "externalId":"Training 2", - "funding":0, - "grantId":"Training 2", - "hasParticipantCost":false, - "hasTeachingMaterials":false, - "isCitizenScience":false, - "isContributingDataToAla":false, - "isDIY":false, - "isDataSharing":false, - "isExternal":false, - "isMERIT":true, - "isMetadataSharing":false, - "isSciStarter":false, - "isSuitableForChildren":false, - "lastUpdated":ISODate("2019-09-06T00:39:59.195Z"), - "listId":"dr1820", - "manager":"", - "name":"Training project 2", - "organisation":"", - "organisationId":"", - "organisationName":"Local Landcare Group 2", - "origin":"merit", - "outputTargets":[{"scoreLabel":"Total seed collected (Kg)","outputLabel":"Seed Collection Details","units":"Kg","scoreName":"totalSeedCollectedKg","target":NumberDecimal("5"),"scoreId":"23a44835-ac5d-4eda-beb6-487e273f4903"},{"outputLabel":"Seed Collection Details","outcomeTarget":""},{"scoreLabel":"No of volunteers participating in project activities","outputLabel":"Participant Information","units":"","scoreName":"totalParticipantsNotEmployed","target":NumberDecimal("0"),"scoreId":"2b79a184-5ec0-4646-a819-3b10a40b4168"},{"scoreLabel":"No of Indigenous participants at project events.","outputLabel":"Participant Information","units":"","scoreName":"numberOfIndigenousParticipants","target":NumberDecimal("0"),"scoreId":"c10d9043-ecc3-4cde-8450-fa159fb7a545"},{"scoreLabel":"Total No. of new participants (attending project events for the first time)","outputLabel":"Participant Information","units":"","scoreName":"totalParticipantsNew","target":NumberDecimal("0"),"scoreId":"4b8749ec-ca5c-434b-a00f-e7432f9c8eb0"},{"outputLabel":"Participant Information","outcomeTarget":""},{"scoreLabel":"Total number of revegetation monitoring activities undertaken","outputLabel":"Vegetation Monitoring Results","scoreName":"countingMethod","target":NumberDecimal("0"),"scoreId":"88eec581-713b-470c-8ae6-e311a83a8c58"},{"scoreLabel":"Total No. of plants surviving with mature height > 2 metres","outputLabel":"Vegetation Monitoring Results","scoreName":"numberSurviving","target":NumberDecimal("0"),"scoreId":"46d629fe-e6d6-4625-86a6-6266e14cfb24"},{"scoreLabel":"Average survivability of tubestock and seedstock (%)","outputLabel":"Vegetation Monitoring Results","scoreName":"survivalRate","target":NumberDecimal("0"),"scoreId":"41a8d9bf-87ae-4f1d-b30f-1d628df5c8f3"},{"outputLabel":"Vegetation Monitoring Results","outcomeTarget":""},{"scoreLabel":"Area of revegetation works (Ha)","outputLabel":"Revegetation Details","units":"Ha","scoreName":"areaRevegHa","target":NumberDecimal("1"),"scoreId":"d6a22325-f867-444b-bcbd-b1ebc50f5bd4"},{"scoreLabel":"Number of plants planted","outputLabel":"Revegetation Details","units":"","scoreName":"totalNumberPlanted","target":NumberDecimal("100"),"scoreId":"a9534e7d-3006-41fa-bb9a-693a46b7937c"},{"scoreLabel":"Kilograms of seed sown","outputLabel":"Revegetation Details","units":"Kg","scoreName":"totalSeedSownKg","target":NumberDecimal("5"),"scoreId":"dcf4164f-4d63-46e1-83dc-783d61e9b115"},{"scoreLabel":"No. of plants planted > 2 metres in height","outputLabel":"Revegetation Details","scoreName":"numberPlanted","target":NumberDecimal("0"),"scoreId":"db514efb-ab2b-4348-98e2-f673a7af2975"},{"scoreLabel":"Kilograms of seed sown of species expected to grow > 2 metres in height","outputLabel":"Revegetation Details","scoreName":"seedSownKg","target":NumberDecimal("0"),"scoreId":"b80c9ba7-370a-419d-9ec3-e8c9482ca91d"},{"scoreLabel":"No. of plants planted < 2 metres in height","outputLabel":"Revegetation Details","scoreName":"numberPlanted","target":NumberDecimal("0"),"scoreId":"a0236481-701f-4d61-a877-6ef9464b588d"},{"scoreLabel":"Kilograms of seed sown of species expected to grow < 2 metres in height","outputLabel":"Revegetation Details","units":"Kg","scoreName":"seedSownKg","target":NumberDecimal("0"),"scoreId":"99bb1108-3760-4eb9-9d63-c0c96939500a"},{"outputLabel":"Revegetation Details","outcomeTarget":""},{"scoreLabel":"Total length of fence (Km)","outputLabel":"Fence Details","units":"kilometres","scoreName":"lengthOfFence","target":NumberDecimal("0.4"),"scoreId":"55745dc2-8185-44d4-b87e-a82a9a95c253"},{"scoreLabel":"Area protected by fencing (Ha)","outputLabel":"Fence Details","scoreName":"fenceAreaProtected","target":NumberDecimal("0"),"scoreId":"0aa00813-3b08-4f08-8a98-843b264d93f6"},{"outputLabel":"Fence Details","outcomeTarget":""},{"scoreLabel":"Total new area treated for weeds (Ha)","outputLabel":"Weed Treatment Details","units":"Ha","scoreName":"areaTreatedHa","target":NumberDecimal("0"),"scoreId":"72cc6c1d-5c4f-4a77-b91b-3474b6450a3d"},{"outputLabel":"Weed Treatment Details","outcomeTarget":""},{"scoreLabel":"No. of activities undertaking weed monitoring","outputLabel":"Weed Observation and Monitoring Details","scoreName":"weedObservationMonitoringDetails","target":NumberDecimal("0"),"scoreId":"9ddc4f82-e5df-40f4-b647-88f33d60384a"},{"outputLabel":"Weed Observation and Monitoring Details","outcomeTarget":""}], - "planStatus":"not approved", - "plannedEndDate":ISODate("2020-12-30T13:00:00.000Z"), - "plannedStartDate":ISODate("2014-12-31T13:00:00.000Z"), - "projectId":"activityProject", - "promoteOnHomepage":"", - "risks":{"overallRisk":"Medium","rows":[{"consequence":"Moderate","likelihood":"Likely","residualRisk":"Low","currentControl":"frost protection", - "description":"poor plant survial due to seasonal conditions", - "threat":"Seasonal conditions (eg. drought, flood, etc.)","riskRating":"Significant"}],"status":"active"}, - "serviceProviderName":"", - "status":"active", - "workOrderId":"", - "hubId":"merit" + }, + "dateCreated": ISODate("2014-08-05T02:17:43.061Z"), + "description": "The project aims to increase the area and condition of remnant riparian vegetation, volunteers will propagate, plant and maintain local native trees, control environmental weeds, fence a riparian area from cattle, repair a public access track to prevent damage to vegetation and increase public awareness of the conservation significance of local remnant Cumberland Plain Woodland through the installation of interpretative signs.", + "externalId": "Training 2", + "funding": 0, + "grantId": "Training 2", + "hasParticipantCost": false, + "hasTeachingMaterials": false, + "isCitizenScience": false, + "isContributingDataToAla": false, + "isDIY": false, + "isDataSharing": false, + "isExternal": false, + "isMERIT": true, + "isMetadataSharing": false, + "isSciStarter": false, + "isSuitableForChildren": false, + "lastUpdated": ISODate("2019-09-06T00:39:59.195Z"), + "manager": "", + "name": "Training project 2", + "organisation": "", + "organisationId": "", + "organisationName": "Local Landcare Group 2", + "origin": "merit", + "outputTargets": [{ + "scoreLabel": "Total seed collected (Kg)", + "outputLabel": "Seed Collection Details", + "units": "Kg", + "scoreName": "totalSeedCollectedKg", + "target": NumberDecimal("5"), + "scoreId": "23a44835-ac5d-4eda-beb6-487e273f4903" + }, { + "outputLabel": "Seed Collection Details", + "outcomeTarget": "" + }, { + "scoreLabel": "No of volunteers participating in project activities", + "outputLabel": "Participant Information", + "units": "", + "scoreName": "totalParticipantsNotEmployed", + "target": NumberDecimal("0"), + "scoreId": "2b79a184-5ec0-4646-a819-3b10a40b4168" + }, { + "scoreLabel": "No of Indigenous participants at project events.", + "outputLabel": "Participant Information", + "units": "", + "scoreName": "numberOfIndigenousParticipants", + "target": NumberDecimal("0"), + "scoreId": "c10d9043-ecc3-4cde-8450-fa159fb7a545" + }, { + "scoreLabel": "Total No. of new participants (attending project events for the first time)", + "outputLabel": "Participant Information", + "units": "", + "scoreName": "totalParticipantsNew", + "target": NumberDecimal("0"), + "scoreId": "4b8749ec-ca5c-434b-a00f-e7432f9c8eb0" + }, { + "outputLabel": "Participant Information", + "outcomeTarget": "" + }, { + "scoreLabel": "Total number of revegetation monitoring activities undertaken", + "outputLabel": "Vegetation Monitoring Results", + "scoreName": "countingMethod", + "target": NumberDecimal("0"), + "scoreId": "88eec581-713b-470c-8ae6-e311a83a8c58" + }, { + "scoreLabel": "Total No. of plants surviving with mature height > 2 metres", + "outputLabel": "Vegetation Monitoring Results", + "scoreName": "numberSurviving", + "target": NumberDecimal("0"), + "scoreId": "46d629fe-e6d6-4625-86a6-6266e14cfb24" + }, { + "scoreLabel": "Average survivability of tubestock and seedstock (%)", + "outputLabel": "Vegetation Monitoring Results", + "scoreName": "survivalRate", + "target": NumberDecimal("0"), + "scoreId": "41a8d9bf-87ae-4f1d-b30f-1d628df5c8f3" + }, { + "outputLabel": "Vegetation Monitoring Results", + "outcomeTarget": "" + }, { + "scoreLabel": "Area of revegetation works (Ha)", + "outputLabel": "Revegetation Details", + "units": "Ha", + "scoreName": "areaRevegHa", + "target": NumberDecimal("1"), + "scoreId": "d6a22325-f867-444b-bcbd-b1ebc50f5bd4" + }, { + "scoreLabel": "Number of plants planted", + "outputLabel": "Revegetation Details", + "units": "", + "scoreName": "totalNumberPlanted", + "target": NumberDecimal("100"), + "scoreId": "a9534e7d-3006-41fa-bb9a-693a46b7937c" + }, { + "scoreLabel": "Kilograms of seed sown", + "outputLabel": "Revegetation Details", + "units": "Kg", + "scoreName": "totalSeedSownKg", + "target": NumberDecimal("5"), + "scoreId": "dcf4164f-4d63-46e1-83dc-783d61e9b115" + }, { + "scoreLabel": "No. of plants planted > 2 metres in height", + "outputLabel": "Revegetation Details", + "scoreName": "numberPlanted", + "target": NumberDecimal("0"), + "scoreId": "db514efb-ab2b-4348-98e2-f673a7af2975" + }, { + "scoreLabel": "Kilograms of seed sown of species expected to grow > 2 metres in height", + "outputLabel": "Revegetation Details", + "scoreName": "seedSownKg", + "target": NumberDecimal("0"), + "scoreId": "b80c9ba7-370a-419d-9ec3-e8c9482ca91d" + }, { + "scoreLabel": "No. of plants planted < 2 metres in height", + "outputLabel": "Revegetation Details", + "scoreName": "numberPlanted", + "target": NumberDecimal("0"), + "scoreId": "a0236481-701f-4d61-a877-6ef9464b588d" + }, { + "scoreLabel": "Kilograms of seed sown of species expected to grow < 2 metres in height", + "outputLabel": "Revegetation Details", + "units": "Kg", + "scoreName": "seedSownKg", + "target": NumberDecimal("0"), + "scoreId": "99bb1108-3760-4eb9-9d63-c0c96939500a" + }, {"outputLabel": "Revegetation Details", "outcomeTarget": ""}, { + "scoreLabel": "Total length of fence (Km)", + "outputLabel": "Fence Details", + "units": "kilometres", + "scoreName": "lengthOfFence", + "target": NumberDecimal("0.4"), + "scoreId": "55745dc2-8185-44d4-b87e-a82a9a95c253" + }, { + "scoreLabel": "Area protected by fencing (Ha)", + "outputLabel": "Fence Details", + "scoreName": "fenceAreaProtected", + "target": NumberDecimal("0"), + "scoreId": "0aa00813-3b08-4f08-8a98-843b264d93f6" + }, {"outputLabel": "Fence Details", "outcomeTarget": ""}, { + "scoreLabel": "Total new area treated for weeds (Ha)", + "outputLabel": "Weed Treatment Details", + "units": "Ha", + "scoreName": "areaTreatedHa", + "target": NumberDecimal("0"), + "scoreId": "72cc6c1d-5c4f-4a77-b91b-3474b6450a3d" + }, { + "outputLabel": "Weed Treatment Details", + "outcomeTarget": "" + }, { + "scoreLabel": "No. of activities undertaking weed monitoring", + "outputLabel": "Weed Observation and Monitoring Details", + "scoreName": "weedObservationMonitoringDetails", + "target": NumberDecimal("0"), + "scoreId": "9ddc4f82-e5df-40f4-b647-88f33d60384a" + }, {"outputLabel": "Weed Observation and Monitoring Details", "outcomeTarget": ""}], + "planStatus": "not approved", + "plannedEndDate": ISODate("2020-12-30T13:00:00.000Z"), + "plannedStartDate": ISODate("2014-12-31T13:00:00.000Z"), + "projectId": "activityProject", + "promoteOnHomepage": "", + "risks": { + "overallRisk": "Medium", "rows": [{ + "consequence": "Moderate", + "likelihood": "Likely", + "residualRisk": "Low", + "currentControl": "frost protection", + "description": "poor plant survial due to seasonal conditions", + "threat": "Seasonal conditions (eg. drought, flood, etc.)", + "riskRating": "Significant" + }], "status": "active" + }, + "serviceProviderName": "", + "status": "active", + "workOrderId": "", + "hubId": "merit" }; db.project.insert(activityProject) @@ -123,58 +414,58 @@ db.userPermission.insert({ }); var activity = { - "activityId":"6034ca77-464e-4546-9de1-b88006d3ebfb", - "assessment":false, - "dateCreated":ISODate("2019-09-06T05:28:08.289Z"), - "lastUpdated":ISODate("2021-03-03T02:26:39.652Z"), - "mainTheme":"Biodiverse plantings", - "plannedEndDate":ISODate("2015-06-30T00:00:00.000Z"), - "plannedStartDate":ISODate("2015-01-01T00:00:00.000Z"), - "progress":"planned", - "projectId":"activityProject", - "projectStage":"Stage 1", - "siteId":"", - "status":"active", - "type":"Water Management", - "description":"Description Test", - "endDate":ISODate("2015-06-30T00:00:00.000Z") + "activityId": "6034ca77-464e-4546-9de1-b88006d3ebfb", + "assessment": false, + "dateCreated": ISODate("2019-09-06T05:28:08.289Z"), + "lastUpdated": ISODate("2021-03-03T02:26:39.652Z"), + "mainTheme": "Biodiverse plantings", + "plannedEndDate": ISODate("2015-06-30T00:00:00.000Z"), + "plannedStartDate": ISODate("2015-01-01T00:00:00.000Z"), + "progress": "planned", + "projectId": "activityProject", + "projectStage": "Stage 1", + "siteId": "", + "status": "active", + "type": "Water Management", + "description": "Description Test", + "endDate": ISODate("2015-06-30T00:00:00.000Z") } db.activity.insert(activity); addStaticContentSettings(); let now = new Date().getTime(); // Create a user login > 2 years ago to test the access removal feature -let lastLogin = new Date(now-(1000*60*60*24*900)) +let lastLogin = new Date(now - (1000 * 60 * 60 * 24 * 900)) db.user.insert({ - userId:'2', + userId: '2', userHubs: [{ - hubId:'merit', - lastLoginTime:lastLogin + hubId: 'merit', + lastLoginTime: lastLogin }] }); // Create another user login between 23 and 24 months ago to test the access warning email -lastLogin = new Date(now - (1000*60*60*24*30*23.5)); +lastLogin = new Date(now - (1000 * 60 * 60 * 24 * 30 * 23.5)); db.user.insert({ - userId:'1', + userId: '1', userHubs: [{ - hubId:'merit', - lastLoginTime:lastLogin + hubId: 'merit', + lastLoginTime: lastLogin }] }); db.setting.insert({ - key:'merit.accessexpiry.expired.email.subject', - value:'Your access has been removed' + key: 'merit.accessexpiry.expired.email.subject', + value: 'Your access has been removed' }); db.setting.insert({ - key:'merit.accessexpiry.expired.email.body', - value:'Your access has been removed body' + key: 'merit.accessexpiry.expired.email.body', + value: 'Your access has been removed body' }); db.setting.insert({ - key:'merit.accessexpiry.warning.email.subject', - value:'Your access will be removed' + key: 'merit.accessexpiry.warning.email.subject', + value: 'Your access will be removed' }); db.setting.insert({ - key:'merit.accessexpiry.warning.email.body', - value:'Your access will be removed body' + key: 'merit.accessexpiry.warning.email.body', + value: 'Your access will be removed body' }); \ No newline at end of file diff --git a/src/integration-test/resources/dataset_mu/loadDataSet.js b/src/integration-test/resources/dataset_mu/loadDataSet.js index 9633bc028..03ee90f1b 100644 --- a/src/integration-test/resources/dataset_mu/loadDataSet.js +++ b/src/integration-test/resources/dataset_mu/loadDataSet.js @@ -67,10 +67,13 @@ createProgram({name:'Regional Land Partnerships', parent: null, programId:'test_ createOrganisation({ name:'Test Organisation', + abnStatus:'Active', organisationId:'test_organisation', status:'active', abn:'12345678901', url:'http://www.ala.org.au', - acronym:'TSTORG' + acronym:'TSTORG', + state: "ACT", + postcode: 2600 }) createMu({name:'test mu', managementUnitId:"test_mu",managementUnitSiteId:'test_site_1'}); diff --git a/src/integration-test/resources/grants-hub-import-data.csv b/src/integration-test/resources/grants-hub-import-data.csv index 875d19c67..76b398dd1 100644 --- a/src/integration-test/resources/grants-hub-import-data.csv +++ b/src/integration-test/resources/grants-hub-import-data.csv @@ -1,2 +1,2 @@ -APP_ID,EXTERNAL_ID,APP_NM,APP_DESC,PROGRAM_NM,ABN,ORG_TRADING_NAME,START_DT,FINISH_DT,ORDER_NO,FUNDING,AUTHORISEDP_EMAIL,GRANT_MGR_EMAIL,GRANT_MGR_EMAIL_2,APPLICANT_EMAIL,ADMIN_EMAIL,EDITOR_EMAIL,EDITOR_EMAIL_2,TAGS,PROJECT_STATUS,MERI_PLAN_STATUS,FUNDING_TYPE,ORIGIN_SYSTEM,FINANCIAL_YEAR_FUNDING_DESCRIPTION,FUNDING_21_22,FUNDING_22_23 -cep-1,,Grants project,Grants project description,Configurable MERI Plan Program,,,1/7/21,30/6/23,1234,,,,,,,,,"Grants hub",Completed,Approved,Grants,Business Grants Hub,Project funding,20000,10000 +APP_ID,EXTERNAL_ID,APP_NM,APP_DESC,PROGRAM_NM,ABN,ORG_ID,START_DT,FINISH_DT,ORDER_NO,FUNDING,AUTHORISEDP_EMAIL,GRANT_MGR_EMAIL,GRANT_MGR_EMAIL_2,APPLICANT_EMAIL,ADMIN_EMAIL,EDITOR_EMAIL,EDITOR_EMAIL_2,TAGS,PROJECT_STATUS,MERI_PLAN_STATUS,FUNDING_TYPE,ORIGIN_SYSTEM,FINANCIAL_YEAR_FUNDING_DESCRIPTION,FUNDING_21_22,FUNDING_22_23 +cep-1,,Grants project,Grants project description,Configurable MERI Plan Program,,test_organisation,1/7/2021,30/6/2023,1234,,,,,,,,,Grants hub,Completed,Approved,Grants,Business Grants Hub,Project funding,20000,10000 \ No newline at end of file diff --git a/src/integration-test/resources/multiple-project-import-data.csv b/src/integration-test/resources/multiple-project-import-data.csv index a28074509..12f4042c4 100644 --- a/src/integration-test/resources/multiple-project-import-data.csv +++ b/src/integration-test/resources/multiple-project-import-data.csv @@ -1,3 +1,3 @@ -CONTRACT_END_DT,LOC_DESC,ENV_DATA_TYPE,RISK_IMPACT,EDITOR_EMAIL_2,UNITS_COMPLETED,CONTRACT_START_DT,PGAT_ACTIVITY_DELIVERABLE_GMS_CODE,LOC_LATITUDE,EXTERNAL_ID,PGAT_ACTIVITY_UNIT,RISK_MITIGATION,PGAT_ACTIVITY_TYPE,RISK_DESC,DATA_TYPE,SERVICE_PROVIDER,EDITOR_EMAIL,LOC_LONGITUDE,PGAT_PRIORITY,PGAT_UOM,AUTHORISEDP_EMAIL,LOC_URL,PGAT_ACTIVITY_DELIVERABLE,RISK_LIKELIHOOD,PGAT_ACTIVITY_DESCRIPTION,MANAGEMENT_UNIT,PROGRAM_NM,APP_ID,WORK_ORDER_ID,APP_NM,APP_DESC,START_DT,FINISH_DT,ABN,ORG_TRADING_NAME,APPLICANT_EMAIL,ADMIN_EMAIL,GRANT_MGR_EMAIL,GRANT_MGR_EMAIL_2,TAGS,PGAT_ACTIVITY_UNIT,ROUND_NM,FUNDING -,,,,,,,,,,,,,,,,,,,,,,,,,Test management unit,Test program,project 2,,project 2,,1/7/19,30/6/23,12345678901,THE TRUSTEE FOR PSS FUND Test,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,Test management unit,Test program,project 3,,project 3,,1/7/19,30/6/23,12345678901,THE TRUSTEE FOR PSS FUND Test,,,,,,,, \ No newline at end of file +CONTRACT_END_DT,LOC_DESC,ENV_DATA_TYPE,RISK_IMPACT,EDITOR_EMAIL_2,UNITS_COMPLETED,CONTRACT_START_DT,PGAT_ACTIVITY_DELIVERABLE_GMS_CODE,LOC_LATITUDE,EXTERNAL_ID,PGAT_ACTIVITY_UNIT,RISK_MITIGATION,PGAT_ACTIVITY_TYPE,RISK_DESC,DATA_TYPE,EDITOR_EMAIL,LOC_LONGITUDE,PGAT_PRIORITY,PGAT_UOM,AUTHORISEDP_EMAIL,LOC_URL,PGAT_ACTIVITY_DELIVERABLE,RISK_LIKELIHOOD,PGAT_ACTIVITY_DESCRIPTION,MANAGEMENT_UNIT,PROGRAM_NM,APP_ID,WORK_ORDER_ID,APP_NM,APP_DESC,START_DT,FINISH_DT,ORG_ID,APPLICANT_EMAIL,ADMIN_EMAIL,GRANT_MGR_EMAIL,GRANT_MGR_EMAIL_2,TAGS,PGAT_ACTIVITY_UNIT,ROUND_NM,FUNDING +,,,,,,,,,,,,,,,,,,,,,,,,Test management unit,Test program,project 2,,project 2,,1/7/2019,30/6/2023,test_organisation,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,Test management unit,Test program,project 3,,project 3,,1/7/2019,30/6/2023,test_organisation,,,,,,,, \ No newline at end of file diff --git a/src/integration-test/resources/single-project-import-data.csv b/src/integration-test/resources/single-project-import-data.csv index e7b15f56e..4ff589dc1 100644 --- a/src/integration-test/resources/single-project-import-data.csv +++ b/src/integration-test/resources/single-project-import-data.csv @@ -1,2 +1,2 @@ -CONTRACT_END_DT,LOC_DESC,ENV_DATA_TYPE,RISK_IMPACT,EDITOR_EMAIL_2,UNITS_COMPLETED,CONTRACT_START_DT,PGAT_ACTIVITY_DELIVERABLE_GMS_CODE,LOC_LATITUDE,EXTERNAL_ID,PGAT_ACTIVITY_UNIT,RISK_MITIGATION,PGAT_ACTIVITY_TYPE,RISK_DESC,DATA_TYPE,SERVICE_PROVIDER,EDITOR_EMAIL,LOC_LONGITUDE,PGAT_PRIORITY,PGAT_UOM,AUTHORISEDP_EMAIL,LOC_URL,PGAT_ACTIVITY_DELIVERABLE,RISK_LIKELIHOOD,PGAT_ACTIVITY_DESCRIPTION,MANAGEMENT_UNIT,PROGRAM_NM,APP_ID,WORK_ORDER_ID,APP_NM,APP_DESC,START_DT,FINISH_DT,ABN,ORG_TRADING_NAME,APPLICANT_EMAIL,ADMIN_EMAIL,GRANT_MGR_EMAIL,GRANT_MGR_EMAIL_2,TAGS,PGAT_ACTIVITY_UNIT,ROUND_NM,FUNDING -,,,,,,,,,,,,,,,,,,,,,,,,,Test management unit,Test program,project 1,,project 1,,1/7/19,30/6/23,12345678901,THE TRUSTEE FOR PSS FUND Test,,,,,,,, \ No newline at end of file +CONTRACT_END_DT,LOC_DESC,ENV_DATA_TYPE,RISK_IMPACT,EDITOR_EMAIL_2,UNITS_COMPLETED,CONTRACT_START_DT,PGAT_ACTIVITY_DELIVERABLE_GMS_CODE,LOC_LATITUDE,EXTERNAL_ID,PGAT_ACTIVITY_UNIT,RISK_MITIGATION,PGAT_ACTIVITY_TYPE,RISK_DESC,DATA_TYPE,EDITOR_EMAIL,LOC_LONGITUDE,PGAT_PRIORITY,PGAT_UOM,AUTHORISEDP_EMAIL,LOC_URL,PGAT_ACTIVITY_DELIVERABLE,RISK_LIKELIHOOD,PGAT_ACTIVITY_DESCRIPTION,MANAGEMENT_UNIT,PROGRAM_NM,APP_ID,WORK_ORDER_ID,APP_NM,APP_DESC,START_DT,FINISH_DT,ORG_ID,APPLICANT_EMAIL,ADMIN_EMAIL,GRANT_MGR_EMAIL,GRANT_MGR_EMAIL_2,TAGS,PGAT_ACTIVITY_UNIT,ROUND_NM,FUNDING +,,,,,,,,,,,,,,,,,,,,,,,,Test management unit,Test program,project 1,,project 1,,1/7/2019,30/6/2023,test_organisation,,,,,,,, \ No newline at end of file diff --git a/src/integration-test/resources/wiremock/mappings/ws_objects.json b/src/integration-test/resources/wiremock/mappings/ws_objects.json new file mode 100644 index 000000000..38dbca835 --- /dev/null +++ b/src/integration-test/resources/wiremock/mappings/ws_objects.json @@ -0,0 +1,15 @@ +{ + "request": { + "urlPattern": "/ws/objects/.+", + + "method": "GET" + }, + "response" : { + "status": 200, + "headers": { + "content-Type": "application/json" + }, + "body": "[]" + + } +} diff --git a/src/main/groovy/au/org/ala/merit/DateUtils.groovy b/src/main/groovy/au/org/ala/merit/DateUtils.groovy index cae4a85fb..f80a0df56 100644 --- a/src/main/groovy/au/org/ala/merit/DateUtils.groovy +++ b/src/main/groovy/au/org/ala/merit/DateUtils.groovy @@ -135,8 +135,9 @@ class DateUtils { dateTime.format(ISO_DATE_FORMATTER) } - static String format(DateTime date, String formatString) { - DateTimeFormatter formatter = DateTimeFormat.forPattern(formatString).withZone(date.getZone()) + static String format(DateTime date, String formatString, DateTimeZone zone = null) { + zone = zone ?: date.getZone() + DateTimeFormatter formatter = DateTimeFormat.forPattern(formatString).withZone(zone) return formatter.print(date) } diff --git a/src/main/groovy/au/org/ala/merit/GmsMapper.groovy b/src/main/groovy/au/org/ala/merit/GmsMapper.groovy index 8feac3ef6..be79041d2 100644 --- a/src/main/groovy/au/org/ala/merit/GmsMapper.groovy +++ b/src/main/groovy/au/org/ala/merit/GmsMapper.groovy @@ -1,6 +1,7 @@ package au.org.ala.merit import au.com.bytecode.opencsv.CSVWriter +import org.apache.commons.lang.WordUtils import org.apache.commons.validator.EmailValidator import java.text.DecimalFormat @@ -63,7 +64,8 @@ class GmsMapper { ROUND_NM:[name:'associatedSubProgram', type:'string'], MANAGEMENT_UNIT:[name:'managementUnitName', type:'string', mandatory: false, description: 'The management unit the project is being conducted in'], ABN:[name: 'abn', type: 'string', description:'The ABN of the organisation receiving the funding'], - ORG_TRADING_NAME:[name:'organisationName', type:'string',description:'The trading name of the organisation receiving the funding (only used if the ABN is not supplied)'], + ORG_ID:[name:'organisationId', type:'string',description:'The organisationId of the organisation in MERIT (only used if the ABN is not supplied)'], + ORG_CONTRACT_NAME:[name:'organisationContractName', type: 'string', description: 'The name used in the project contract. Appears as the organisation name on the project page.'], START_DT:[name:'plannedStartDate', type:'date', mandatory:true, description:'The planned start date of the project'], FINISH_DT:[name:'plannedEndDate', type:'date', mandatory:true, description:'The planned end date of the project'], CONTRACT_START_DT:[name:'contractStartDate', type:'date'], @@ -76,7 +78,6 @@ class GmsMapper { AUTHORISEDP_EMAIL:[name:'adminEmail', type:'email', description:'This user will be added as an admin to the project'], GRANT_MGR_EMAIL:[name:'grantManagerEmail', type:'email', description:'This user will be added as a project grant manager to the project'], GRANT_MGR_EMAIL_2:[name:'grantManagerEmail2', type:'email', description:'This user will be added as a project grant manager to the project'], - SERVICE_PROVIDER:[name:'serviceProviderName', type:'string'], APPLICANT_EMAIL:[name:'applicantEmail', type:'email',description:'This user will be added as a project admin'], ADMIN_EMAIL:[name:'adminEmail2', type:'email', description:'This user will be added as a project admin'], EDITOR_EMAIL:[name:'editorEmail', type:'email', description:'This user will be added as a project editor'], @@ -210,20 +211,10 @@ class GmsMapper { return errors } - private Map findProgram(String name) { - Map program = programModel.programs.find {it.name == name} - if (!program) { - programModel.programs.find { - program = it.subprograms.find{ it.name == name} - program - } - } - program - } - def mapProject(projectRows) { List errors = [] + List messages = [] Map result = gmsToMerit(projectRows[0], projectMapping) // All project rows have the project details. def project = result.mappedData project.projectType = 'works' @@ -233,17 +224,15 @@ class GmsMapper { String programName = project.associatedSubProgram ?: project.associatedProgram - String programId = programs[programName] + Map program = programs[programName] + String programId = program?.programId if (programId) { project.remove('associatedProgram') project.remove('associatedSubProgram') project.programId = programId } else { - String program = findProgram(programName) - if (!program) { - errors << "Programme ${project.associatedProgram} doesn't match an existing MERIT programme" - } + errors << "Program ${programName} doesn't match an existing MERIT programme" } if (project.managementUnitName) { @@ -254,18 +243,7 @@ class GmsMapper { } } - lookupOrganisation(project, errors) - - - if (project.serviceProviderName) { - def serviceProviderOrganisation = organisations.find{it.name == project.serviceProviderName} - if (serviceProviderOrganisation) { - project.orgIdSvcProvider = serviceProviderOrganisation.organisationId - } - else { - errors << "No (service provider) organisation exists with name ${project.serviceProviderName}" - } - } + Map organisation = mapOrganisation(project, program, errors, messages) errors.addAll(result.errors) project.planStatus = project.planStatus ?: 'not approved' @@ -281,45 +259,83 @@ class GmsMapper { project.custom = [details:meriPlan] } - [project:project, sites:sites, activities:activities, errors:errors] + [project:project, sites:sites, activities:activities, errors:errors, messages:messages, organisation:organisation] + + } + + private Map findExistingOrganisation(String organisationId, String abn) { + organisations.find{ + (abn && (it.abn == abn)) || + (organisationId && (it.organisationId == organisationId)) } } - private void lookupOrganisation(Map project, List errors) { - def organisation + private Map mapOrganisation(Map project, Map program, List errors, List messages) { + Map organisation Map abnLookup - if (project.organisationName || project.abn) { - organisation = organisations.find{ (project.abn && (it.abn == project.abn)) || (project.organisationName && (it.name == project.organisationName)) } - if (organisation) { - project.organisationId = organisation.organisationId - } else { - String abn = project.abn - if (!abn) { - if (!organisation && project.organisationName) { - errors << "No organisation exists with organisation name ${project.organisationName}" - } - } else { - abnLookup = abnLookupService.lookupOrganisationNameByABN(abn) + String error = null + + boolean createOrganisation = false + String organisationId = project.remove('organisationId') + String abn = project.remove('abn')?.replaceAll(' ', '') + String contractName = project.remove('organisationContractName') + if (organisationId || abn) { + organisation = findExistingOrganisation(organisationId, abn) + if (!organisation) { + if (abn) { + abnLookup = abnLookupService.lookupOrganisationDetailsByABN(abn) if (abnLookup && !abnLookup.error) { - organisation = organisations.find{ it.name == abnLookup.entityName } + List names = [abnLookup.entityName] + abnLookup.businessNames + if (contractName) { + names << contractName + } + organisation = organisations.find { Map org -> + names.find{it && (it.toLowerCase() == org.name?.toLowerCase())} + } if (organisation) { - project.organisationId = organisation.organisationId - project.organisationName = organisation.name + error = "An existing organisation name was matched via the entity/business name ${organisation.name} but the ABN doesn't match the abn of the MERIT organisation (${organisation.abn})" } else { - if (abnLookup.entityName == "") { - errors << "${project.abn} is invalid abn number. Please Enter the correct one" - } else { - project.organisationName = abnLookup.entityName + createOrganisation = true + String name + if (contractName) { + name = contractName } + else { + name = WordUtils.capitalizeFully(abnLookup.entityName) + } + organisation = abnLookup + [name: name] + messages << "An organisation will be created with ABN: ${abn} and name: ${name}" } } else { - errors << "${project.abn} is invalid. Please Enter the correct one" + error = "An error was encountered looking up the ABN ${abn}${abnLookup?.error ? ': '+abnLookup.error : ''}" } } + else { + error = "No organisation exists with abn: '${abn}' and/or organisationId: '${organisationId}'" + } + } + + // Validate we can use the contract name + if (organisation && contractName) { + List names = [organisation.name] + organisation.contractNames + if (contractName && !contractName in names) { + error = "The organisation name in the contract ${contractName} doesn't match a known organisation name" + } + } + if (!error) { + // We are standardising on "Recipient" as the default organisation relationship + String description = 'Recipient' + project.associatedOrgs = [ + [organisationId:organisation.organisationId, name: contractName ?: organisation.name, description:description]] } } else { - errors << "No organisation exists with abn ${project.abn} number and organisation name ${project.organisationName}" + error = "Please supply an organisationId (ORG_ID) or ABN (ABN) for the project" + } + if (error) { + errors << error } + createOrganisation ? organisation : null + } diff --git a/src/main/groovy/au/org/ala/merit/Score.groovy b/src/main/groovy/au/org/ala/merit/Score.groovy index a89d94a53..1a6b9ec89 100644 --- a/src/main/groovy/au/org/ala/merit/Score.groovy +++ b/src/main/groovy/au/org/ala/merit/Score.groovy @@ -32,6 +32,7 @@ class Score { String label String units String category + String name boolean isOutputTarget int overDeliveryThreshold = OVER_DELIVERY_PERCENTAGE_THRESHOLD diff --git a/src/main/groovy/au/org/ala/merit/command/EditOrViewReportCommand.groovy b/src/main/groovy/au/org/ala/merit/command/EditOrViewReportCommand.groovy index 2e777a494..20a401f08 100644 --- a/src/main/groovy/au/org/ala/merit/command/EditOrViewReportCommand.groovy +++ b/src/main/groovy/au/org/ala/merit/command/EditOrViewReportCommand.groovy @@ -1,6 +1,7 @@ package au.org.ala.merit.command import au.org.ala.merit.ReportService +import au.org.ala.merit.reports.ReportLifecycleListener import grails.artefact.Controller import grails.core.GrailsApplication import grails.validation.Validateable @@ -40,6 +41,11 @@ abstract class EditOrViewReportCommand implements Validateable { model.saveReportUrl = linkGenerator.link(controller:entityType, action:'saveReport', id:id) model.documentOwner = [activityId:model.activity?.activityId, reportId:reportId] model.documentOwner[getEntityIdField()] = id + + ReportLifecycleListener listener = reportService.reportLifeCycleListener(model.report) + if (listener) { + model.context.putAll(listener.getContextData(entity, model.report)) + } } } diff --git a/src/main/groovy/au/org/ala/merit/config/ProgramConfig.groovy b/src/main/groovy/au/org/ala/merit/config/ProgramConfig.groovy index 6730d792d..3f22e6b68 100644 --- a/src/main/groovy/au/org/ala/merit/config/ProgramConfig.groovy +++ b/src/main/groovy/au/org/ala/merit/config/ProgramConfig.groovy @@ -151,6 +151,9 @@ class ProgramConfig implements Map { template != null } + /** This flag controls whether the invoice field in the dashboard is shown */ + boolean showsDashboardInvoiceField = true + } diff --git a/src/main/groovy/au/org/ala/merit/reports/RegionalCapacityServicesReportLifecycleListener.groovy b/src/main/groovy/au/org/ala/merit/reports/RegionalCapacityServicesReportLifecycleListener.groovy new file mode 100644 index 000000000..69eeecdcc --- /dev/null +++ b/src/main/groovy/au/org/ala/merit/reports/RegionalCapacityServicesReportLifecycleListener.groovy @@ -0,0 +1,32 @@ +package au.org.ala.merit.reports + +import au.org.ala.merit.OrganisationService +import groovy.util.logging.Slf4j +import org.springframework.beans.factory.annotation.Autowired + +@Slf4j +class RegionalCapacityServicesReportLifecycleListener extends ReportLifecycleListener { + + @Autowired + OrganisationService organisationService + + Map getContextData(Map organisation, Map report) { + List outputTargets = organisation.custom?.details?.services?.targets + Map periodTargets = getTargetsForReportPeriod(report, outputTargets) + def funding = getFundingForPeriod(organisation, report) + [periodTargets:periodTargets, totalContractValue:funding] + } + + private static def getFundingForPeriod(Map organisation, Map report) { + String endDate = report.toDate + String previousPeriod = '' + def index = organisation.custom?.details?.funding?.headers?.findIndexOf { + String period = it.data.value + boolean result = previousPeriod < endDate && period >= endDate + previousPeriod = period + result + } + index >= 0 ? organisation.custom?.details?.funding?.rows[0].costs[index].dollar : 0 + + } +} diff --git a/src/main/groovy/au/org/ala/merit/reports/ReportLifecycleListener.groovy b/src/main/groovy/au/org/ala/merit/reports/ReportLifecycleListener.groovy index 20f29f82f..546842b41 100644 --- a/src/main/groovy/au/org/ala/merit/reports/ReportLifecycleListener.groovy +++ b/src/main/groovy/au/org/ala/merit/reports/ReportLifecycleListener.groovy @@ -1,6 +1,7 @@ package au.org.ala.merit.reports import au.org.ala.ecodata.forms.ActivityFormService +import au.org.ala.merit.MetadataService import groovy.util.logging.Slf4j import org.springframework.beans.factory.annotation.Autowired /** @@ -13,6 +14,8 @@ class ReportLifecycleListener { boolean deleteSiteOnReset = true @Autowired ActivityFormService activityFormService + @Autowired + MetadataService metadataService Map getContextData(Map context, Map report) { [:] } Map getOutputData(Map context, Map outputConfig, Map report) { [:] } @@ -91,5 +94,26 @@ class ReportLifecycleListener { result } + Map getTargetsForReportPeriod(Map report, List outputTargets) { + String endDate = report.toDate + + outputTargets?.collectEntries { Map outputTarget -> + String scoreId = outputTarget.scoreId + String name = scoreName(scoreId) ?: scoreId + String previousPeriod = '' + Map matchingPeriodTarget = outputTarget?.periodTargets?.find { Map periodTarget -> + boolean result = previousPeriod < endDate && periodTarget.period >= endDate + previousPeriod = periodTarget.period + result + } + [(name): matchingPeriodTarget?.target] + } + } + + String scoreName(String scoreId) { + List scores = metadataService.getScores(false) + scores.find { it.scoreId == scoreId }?.name + } + } diff --git a/src/main/scripts/releases/3.2/adhoc/createUrbanRiversAndCatchmentsSubProgram.js b/src/main/scripts/releases/3.2/adhoc/createUrbanRiversAndCatchmentsSubProgram.js index e52f714db..cabed405a 100644 --- a/src/main/scripts/releases/3.2/adhoc/createUrbanRiversAndCatchmentsSubProgram.js +++ b/src/main/scripts/releases/3.2/adhoc/createUrbanRiversAndCatchmentsSubProgram.js @@ -45,10 +45,13 @@ var config = { "template": "additionalOutcomes", "model": { + "maximumPriorities": 1000, "outcomePriority": "Additional outcome/s", + "maxAdditionalOutcomes": 15, "helpTextHeading": "If the project is not delivering additional benefits, delete the row using the 'x' in the right-most column.", "title": "Additional benefits", "priority": "Additional Investment Priorities", + "renderPrioritiesWithSelect2": true, "priorityHelpText": "Other investment priorities that will benefit from the project. Delete the row if there are no additional outcomes." } }, @@ -60,7 +63,8 @@ var config = "minimumNumberOfOutcomes": 0, "subtitle": "Medium-term outcome statement/s", "title": "Project Outcomes", - "extendedOutcomes": true + "extendedOutcomes": true, + "multiplePriorities": true } }, { @@ -69,7 +73,8 @@ var config = "outcomeType": "short", "helpText": "Outline the degree of impact having undertaken the services for up to three years. Ensure the outcomes are measurable with consideration to the baseline and proposed monitoring regime", "subtitle": "Short-term outcome statement/s", - "extendedOutcomes": true + "extendedOutcomes": true, + "multiplePriorities": true } }, { @@ -85,7 +90,7 @@ var config = { "template": "projectMethodology", "model": { - "helpText": "Include all those conditions or factors that are sufficient to guarantee the success of the project, for example, on ground activities were not impacted by adverse weather conditions. Ensure what’s documented here aligns to those assumptions documented within the Project Logic.", + "helpText": "In addition to listing your project assumptions, please list any nominated project services that will not be charged for.\nInclude all those conditions or factors that are sufficient to guarantee the success of the project, for example, on ground activities were not impacted by adverse weather conditions. Ensure what’s documented here aligns to those assumptions documented within the Project Logic.", "maxSize": "4000", "tableHeading": "Project delivery assumptions (4000 character limit [approx. 650 words])" } @@ -153,7 +158,7 @@ var config = ], "excludes": [], "programServiceConfig": { - "serviceFormName": "Priority Threatened Species Progress Report", + "serviceFormName": "Grants and Others Progress Report", "programServices": [ { "serviceTargets": [ @@ -406,6 +411,25 @@ var config = "b8304577-afd8-45e0-8ef4-b71ae10998f5" ], "serviceId": 44 + }, + { + "serviceTargets": [ + "9ed0ab84-6d04-4926-ae36-c75a8763e09b" + ], + "serviceId": 45 + }, + { + "serviceTargets": [ + "8113ab8a-17e6-43c9-be32-9ca72dd01454", + "9f6f06ac-b055-48c1-9d80-b305acdeae79" + ], + "serviceId": 6 + }, + { + "serviceTargets": [ + "0e887410-a3c5-49ca-a6f5-0f2f6fae30db" + ], + "serviceId": 46 } ] }, @@ -440,7 +464,7 @@ var config = "minimumReportDurationInDays": 3, "label": "Semester", "category": "12 Monthly Progress Reports", - "activityType": "Priority Threatened Species Progress Report", + "activityType": "Grants and Others Progress Report", "reportsAlignedToCalendar": true, "canSubmitDuringReportingPeriod": true }, @@ -455,7 +479,7 @@ var config = "label": "Final Report", "category": "Final Report", "reportsAlignedToCalendar": false, - "activityType": "Priority Threatened Species Final Report", + "activityType": "Grants and Others Final Report", "alignToOwnerStart": true } ], @@ -464,13 +488,13 @@ var config = "Climate Change - Changed rainfall patterns", "Climate Change - Sea level rises", "Climate Change - Unexpected seasonal/temperature extremes", - "Disconnection from Country - Altered/disrupted connection with land and sea country", "Disconnection from Country - Altered or disrupted First Nations engagement/leadership in caring for land and sea country", "Disconnection from Country - Altered or disrupted transfer of First Nations knowledge systems", + "Disconnection from Country - Altered/disrupted connection with land and sea country", "Disconnection from Country - Inadequate recognition of Traditional knowledge and practices", - "Disengagement of community - Community are not informed and are not engaged in managing the environment", "Disease/pathogens - Areas that are infected", "Disease/pathogens - Possible infection of disease free areas", + "Disengagement of community - Community are not informed and are not engaged in managing the environment", "Fire - Inappropriate fire regime", "Fire - Lack of protection for ecological assets during fire control activities", "Genetics - Bottleneck/inbreeding", @@ -488,6 +512,8 @@ var config = "Human interference - Recreational fishing", "Human interference - Recreational pressures", "Human interference - Road/vehicle strike", + "Knowledge/Capacity - Inadequate scientific and/or technological capacity", + "Knowledge/Capacity - Insufficient knowledge to inform appropriate management or intervention actions", "Land management practices - Changes to hydrology and aquatic systems", "Land management practices - Domestic grazing/stock impacts", "Land management practices - Excess recharge of groundwater", @@ -527,7 +553,7 @@ var config = "Kangaroo Island – SA", "MacDonnell Ranges – NT", "Mallee Birds Ecological Community – VIC/SA/NSW", - "Midlands region of central Tasmania – TAS", + "Midlands region of central Tasmanian – TAS", "Norfolk Island – External Territory", "Raine Island – Queensland", "Remnant WA Wheatbelt Woodlands – WA", @@ -545,13 +571,11 @@ var outcomes = [ "priorities": [ { "category": "Waterways" - }, - { - "category": "Threatened Species" } ], "targeted": true, "shortDescription": "Ecological health", + "type": "primary", "category": "Waterways", "outcome": "The ecological health and condition of waterways is improved and/or repaired to benefit native plants and animals (including threatened species), threatened ecological communities, and the ecological character of Ramsar sites, in urban, outer urban /peri-urban and regional centres" }, @@ -559,12 +583,22 @@ var outcomes = [ "priorities": [ { "category": "Waterways" + }, + { + "category": "Threatened Species" + }, + { + "category": "Threatened Ecological Communities" + }, + { + "category": "Ramsar" } ], - "targeted": true, - "shortDescription": "River health", - "category": "River health", - "outcome": "The health and qualities of waterways is improved and/or repaired to benefit local communities in urban, outer urban /peri-urban and regional centres." + "shortDescription": "Waterways", + "category": "Waterways", + "type": "secondary", + "supportsMultiplePrioritiesAsSecondary": true, + "outcome": "By 30 June 2028, there is measurable repair of water quality, hydrology and in stream connectivity to benefit native plants and animals (including threatened species and ecological communities), and the ecological character of Ramsar sites, in urban, peri-urban and regional centres." }, { "category": "Threatened Species", @@ -576,23 +610,18 @@ var outcomes = [ "type": "medium", "outcome": "By 30 June 2028, there is measurable repair of water quality, hydrology and in stream connectivity to benefit native plants and animals (including threatened species and ecological communities), and the ecological character of Ramsar sites, in urban, peri-urban and regional centres." }, - { - "category": "Threatened Species", - "type": "medium", - "outcome": "By June 2028 there is a measurable improvement to the services provided by urban green and blue space to benefit local communities in urban, outer urban /peri-urban and regional centres." - }, { "category": "River health", "type": "short", "outcome": "By 30 June 2025, there is measurable repair of waterway habitats (in-stream and terrestrial) to benefit native plants and animals (including threatened species and ecological communities), and the ecological character of Ramsar sites, in urban, peri-urban and regional centres." }, { - "category":"River health", + "category": "River health", "type": "short", "outcome": " By 30 June 2025, there is measurable repair of water quality, hydrology and in stream connectivity to benefit native plants and animals (including threatened species and ecological communities), and the ecological character of Ramsar sites, in urban, peri-urban and regional centres." }, { - "category":"River health", + "category": "River health", "type": "short", "outcome": "By June 2025 there is a measurable improvement to the services provided by urban green and blue space to benefit local communities in urban, outer urban /peri-urban and regional centres." } @@ -601,151 +630,435 @@ var outcomes = [ var priorities = [ { "category": "Waterways", - "priority": "Saltwater Creek, Cairns" + "priority": "Alstonville Creek, Alstonville NSW" + }, + { + "category": "Waterways", + "priority": "Archerfield Wetlands, Brisbane QLD" + }, + { + "category": "Waterways", + "priority": "Ashfield Flats, Perth WA" + }, + { + "category": "Waterways", + "priority": "Black Hill Wetland, Newcastle NSW" }, { "category": "Waterways", - "priority": "Bulimba Creek" + "priority": "Brook and Grogan Swamp, Perth WA" }, { "category": "Waterways", - "priority": "Cubberla Creek" + "priority": "Bullockhead Creek, Brisbane QLD" }, { "category": "Waterways", - "priority": "Bremer River" + "priority": "Bunurong Wetland, Melbourne VIC" }, { "category": "Waterways", - "priority": "Saltwater Creek, Gold Coast" + "priority": "Byron Creek, Bangalow NSW" }, { "category": "Waterways", - "priority": "Fig Tree Creek, Yeppoon" + "priority": "Cleland National Park, Adelaide SA" }, { "category": "Waterways", - "priority": "Downfall Creek" + "priority": "Cox Creek, Adelaide SA" }, { "category": "Waterways", - "priority": "Dowse Lagoon" + "priority": "Crendon Street channel, Burpengary QLD" }, { "category": "Waterways", - "priority": "McCready's Creek, Mackay" + "priority": "Curly Sedge Creek, Melbourne VIC" }, { "category": "Waterways", - "priority": "Slacks Creek" + "priority": "Currumbin Creek, QLD" }, { "category": "Waterways", - "priority": "Lake Macquarie" + "priority": "Eumemmerring Creek, Melbourne VIC" }, { "category": "Waterways", - "priority": "Hawkesbury River" + "priority": "Field River, Adelaide SA" }, { "category": "Waterways", - "priority": "Tuggerah Lakes" + "priority": "Fifth Creek, Adelaide SA" }, { "category": "Waterways", - "priority": "Shoalhaven and Crookshaven Rivers" + "priority": "Forest Creek, Castlemaine VIC" }, { "category": "Waterways", - "priority": "Cooks River" + "priority": "Gardiners Creek, Melbourne VIC" }, { "category": "Waterways", - "priority": "Canberra Waterways" + "priority": "Georges River, Sydney NSW" }, { "category": "Waterways", - "priority": "Peter Hopper Lake" + "priority": "Horsehose Bay tributaries and Laratinga Wetland, SA" }, { "category": "Waterways", - "priority": "Moonee Ponds Creek" + "priority": "Hunter River, Newcastle NSW" }, { "category": "Waterways", - "priority": "Karaaf Wetlands" + "priority": "Jacksons Creek & catchment, Gisborne VIC" }, { "category": "Waterways", - "priority": "KooyongKoot (Tooronga Park wetland)" + "priority": "Jerrys Creek, Wallacia NSW" }, { "category": "Waterways", - "priority": "Diamond Creek" + "priority": "King River, WA" }, { "category": "Waterways", - "priority": "Yarra Flats" + "priority": "Lane Cove River, Sydney NSW" }, { "category": "Waterways", - "priority": "Elster Creek" + "priority": "Lismore catchments, NSW" }, { "category": "Waterways", - "priority": "Redan Wetlands and Yarrowee River" + "priority": "Mary River, Gympie QLD" }, { "category": "Waterways", - "priority": "Werribee River" + "priority": "Mason Park Wetlands, Sydney NSW" }, { "category": "Waterways", - "priority": "Darebin Creek" + "priority": "Mersey River, TAS" }, { "category": "Waterways", - "priority": "Merri Creek" + "priority": "Moorabool and Barwon Rivers, VIC" }, { "category": "Waterways", - "priority": "Gardiners Creek" + "priority": "Murray River, Albury Wodonga VIC" }, { "category": "Waterways", - "priority": "Derwent River" + "priority": "Oxley Creek, Brisbane QLD" }, { "category": "Waterways", - "priority": "Tamar Estuary" + "priority": "Petrie Creek, Nambour QLD" }, { "category": "Waterways", - "priority": "Onkaparinga River" + "priority": "Pimpama River, QLD" }, { "category": "Waterways", - "priority": "Pedler Creek" + "priority": "Pitt Water, TAS" }, { "category": "Waterways", - "priority": "Brownhill Creek" + "priority": "Queanbeyan River, Queanbeyan NSW" }, { "category": "Waterways", - "priority": "Port River" + "priority": "Romaine and Shorewell Creeks, TAS" }, { "category": "Waterways", - "priority": "Sturt River" + "priority": "Sauerbier and Homestead Creeks, Adelaide SA" }, { "category": "Waterways", - "priority": "Swan and Canning Rivers" + "priority": "Sixth Creek, SA" }, { "category": "Waterways", - "priority": "Darwin creeks (Rapid Creek, Mitchell Creek, Ludmilla Creek and Sandy Creek)" + "priority": "South Creek, Sydney NSW" + }, + { + "category": "Waterways", + "priority": "Spring Street Creek, Sydney NSW" + }, + { + "category": "Waterways", + "priority": "Stony Creek, Sydney NSW" + }, + { + "category": "Waterways", + "priority": "Swan River, South Perth WA" + }, + { + "category": "Waterways", + "priority": "Tarralla Creek, Melbourne VIC" + }, + { + "category": "Waterways", + "priority": "Tributaries of Brisbane River, QLD" + }, + { + "category": "Waterways", + "priority": "Upper Georges River, Sydney NSW" + }, + { + "category": "Waterways", + "priority": "Upper Serpentine River, Perth WA" + }, + { + "category": "Waterways", + "priority": "Upper Tucki Creek, Goonellabah NSW" + }, + { + "category": "Waterways", + "priority": "Urban wetlands, Perth WA" + }, + { + "category": "Waterways", + "priority": "Washpool Creek, Bundaberg QLD" + }, + { + "category": "Waterways", + "priority": "Watiparinga Creek, Adelaide SA" + }, + { + "category": "Waterways", + "priority": "Wingecarribee River, Moss Vale NSW" + }, + { + "category": "Waterways", + "priority": "Wollundry and Flowerdale Lagoons, Wagga Wagga NSW" + }, + { + "category": "Waterways", + "priority": "Wylies Creek, Melbourne VIC" + }, + { + "category": "Waterways", + "priority": "Yakamia Creek, Albany WA" + }, + { + "category": "Waterways", + "priority": "12 strategic platypus catchments, VIC" + }, + { + "category": "Ramsar", + "priority": "Hunter Estuary Wetlands Ramsar site" + }, + { + "category": "Ramsar", + "priority": "Moreton Bay Ramsar site" + }, + { + "category": "Ramsar", + "priority": "Pitt Water-Orielton Lagoon Ramsar site" + }, + { + "category": "Ramsar", + "priority": "Port Phillip Bay & Bellerine Peninsula" + }, + { + "category": "Threatened Ecological Communities", + "priority": "Banksia Woodlands of the Swan Coastal Plain" + }, + { + "category": "Threatened Ecological Communities", + "priority": "Clay Pans of the Swan Coastal Plain" + }, + { + "category": "Threatened Ecological Communities", + "priority": "Coastal Swamp Oak (Casuarina glauca) Forest of New South Wales and South East Queensland" + }, + { + "category": "Threatened Ecological Communities", + "priority": "Coastal Swamp Sclerophyll Forest of New South Wales and South East Queensland" + }, + { + "category": "Threatened Ecological Communities", + "priority": "Grey Box (Eucalyptus microcarpa) Grassy Woodlands and Derived Native Grasslands of South-eastern Australia" + }, + { + "category": "Threatened Ecological Communities", + "priority": "Grey Box-Grey Gum Wet Forest of subtropical eastern Australia" + }, + { + "category": "Threatened Ecological Communities", + "priority": "Lowland Rainforest of Subtropical Australia" + }, + { + "category": "Threatened Ecological Communities", + "priority": "Natural Temperate Grassland of the Victorian Volcanic Plain" + }, + { + "category": "Threatened Ecological Communities", + "priority": "River-flat eucalypt forest on coastal floodplains of southern New South Wales and eastern Victoria" + }, + { + "category": "Threatened Ecological Communities", + "priority": "Subtropical and Temperate Coastal Saltmarsh" + }, + { + "category": "Threatened Ecological Communities", + "priority": "Subtropical eucalypt floodplain forest and woodland of the New South Wales North Coast and South East Queensland bioregions" + }, + { + "category": "Threatened Ecological Communities", + "priority": "Tuart (Eucalyptus gomphocephala) woodlands and forests of the Swan Coastal Plain ecological community" + }, + { + "category": "Threatened Species", + "priority": "Angle-stemmed Myrtle Gossia gonoclada" + }, + { + "category": "Threatened Species", + "priority": "Australasian Bittern Botaurus poiciloptilus" + }, + { + "category": "Threatened Species", + "priority": "Australian Grayling Prototroctes maraena" + }, + { + "category": "Threatened Species", + "priority": "Black swan Cygnus atratus" + }, + { + "category": "Threatened Species", + "priority": "Burnie Burrowing Crayfish Engaeus yabbimunna" + }, + { + "category": "Threatened Species", + "priority": "Carnaby’s Black Cockatoo Zanda latirostris" + }, + { + "category": "Threatened Species", + "priority": "Carter's Freshwater Mussel Westralunio carteri" + }, + { + "category": "Threatened Species", + "priority": "Cumberland Plain Land Snail Meridolum corneovirens" + }, + { + "category": "Threatened Species", + "priority": "Cunningham's Skink Egernia cunninghami" + }, + { + "category": "Threatened Species", + "priority": "Curlew Sandpiper Calidris ferruginea" + }, + { + "category": "Threatened Species", + "priority": "Eastern Curlew Numenius madagascariensis" + }, + { + "category": "Threatened Species", + "priority": "Eltham Copper Butterfly Paralucia pyrodiscus lucida" + }, + { + "category": "Threatened Species", + "priority": "Forest Red-tailed Black-Cockatoo Calyptorhynchus banksii naso" + }, + { + "category": "Threatened Species", + "priority": "Gang Gang Cockatoo Callocephalon fimbriatum" + }, + { + "category": "Threatened Species", + "priority": "Glossy Black Cockatoo Calyptorhynchus lathami lathami" + }, + { + "category": "Threatened Species", + "priority": "Grey-headed Flying-fox Pteropus poliocephalus" + }, + { + "category": "Threatened Species", + "priority": "Growling Grass Frog Litoria raniformis" + }, + { + "category": "Threatened Species", + "priority": "Koala Phascolarctos cinereus" + }, + { + "category": "Threatened Species", + "priority": "Latham’s Snipe Gallinago hardwickii" + }, + { + "category": "Threatened Species", + "priority": "Mary River Turtle Elusor macrurus" + }, + { + "category": "Threatened Species", + "priority": "Matted Flax-lily Dianella amoena" + }, + { + "category": "Threatened Species", + "priority": "Murray Cod Maccullochella peelii" + }, + { + "category": "Threatened Species", + "priority": "Narrow-leaf Wilsonia Wilsonia backhousei" + }, + { + "category": "Threatened Species", + "priority": "Native Guava Rhodomyrtus psidioides" + }, + { + "category": "Threatened Species", + "priority": "Ormeau Bottle Tree Brachychiton sp. Ormeau" + }, + { + "category": "Threatened Species", + "priority": "Paddys River Box Eucalyptus macarthurii" + }, + { + "category": "Threatened Species", + "priority": "Perameles gunnii gunnii" + }, + { + "category": "Threatened Species", + "priority": "Platypus Ornithorhynchus anatinus" + }, + { + "category": "Threatened Species", + "priority": "Rakali Hydromys chrysogaster" + }, + { + "category": "Threatened Species", + "priority": "Rock Logania Logania saxitilis" + }, + { + "category": "Threatened Species", + "priority": "Southern Brown Bandicoot Isoodon obesulus" + }, + { + "category": "Threatened Species", + "priority": "Scarlet Robin Petroica boodang boodang" + }, + { + "category": "Threatened Species", + "priority": "Southern Pink Underwing Moth Phyllodes imperialis" + }, + { + "category": "Threatened Species", + "priority": "Southern Pygmy Perch Nannoperca australis" + }, + { + "category": "Threatened Species", + "priority": "Western Ringtail Possum Pseudocheirus occidentalis" + }, + { + "category": "Threatened Species", + "priority": "Yarra Pygmy Perch Nannoperca obscura" } ]; diff --git a/src/main/scripts/releases/3.4/adhoc/createCapacityBuildingGrantsRound1SubProgram.js b/src/main/scripts/releases/3.4/adhoc/createCapacityBuildingGrantsRound1SubProgram.js index 16890842c..0157e16f1 100644 --- a/src/main/scripts/releases/3.4/adhoc/createCapacityBuildingGrantsRound1SubProgram.js +++ b/src/main/scripts/releases/3.4/adhoc/createCapacityBuildingGrantsRound1SubProgram.js @@ -119,13 +119,6 @@ var config = "title": "Project review, improvement and evaluation methodology and approach (3000 character limit [approximately 500 words])" } }, - { - "template": "nationalAndRegionalPlans", - "model": { - "includeUrl": true, - "headingTitle": "Conservation and management plans" - } - }, { "template": "serviceOutcomeTargets", "model": { @@ -398,6 +391,19 @@ var config = "b8304577-afd8-45e0-8ef4-b71ae10998f5" ], "serviceId": 44 + }, + { + "serviceTargets": [ + "8113ab8a-17e6-43c9-be32-9ca72dd01454", + "9f6f06ac-b055-48c1-9d80-b305acdeae79" + ], + "serviceId": 6 + }, + { + "serviceTargets": [ + "0e887410-a3c5-49ca-a6f5-0f2f6fae30db" + ], + "serviceId": 46 } ] }, @@ -435,7 +441,7 @@ var config = "minimumReportDurationInDays": 3, "label": "Semester", "category": "Progress Reports", - "activityType": "Progress Report", + "activityType": "Grants and Others Progress Report", "reportsAlignedToCalendar": true, "canSubmitDuringReportingPeriod": true }, @@ -471,13 +477,13 @@ var config = "Climate Change - Changed rainfall patterns", "Climate Change - Sea level rises", "Climate Change - Unexpected seasonal/temperature extremes", - "Disconnection from Country - Altered/disrupted connection with land and sea country", "Disconnection from Country - Altered or disrupted First Nations engagement/leadership in caring for land and sea country", "Disconnection from Country - Altered or disrupted transfer of First Nations knowledge systems", + "Disconnection from Country - Altered/disrupted connection with land and sea country", "Disconnection from Country - Inadequate recognition of Traditional knowledge and practices", - "Disengagement of community - Community are not informed and are not engaged in managing the environment", "Disease/pathogens - Areas that are infected", "Disease/pathogens - Possible infection of disease free areas", + "Disengagement of community - Community are not informed and are not engaged in managing the environment", "Fire - Inappropriate fire regime", "Fire - Lack of protection for ecological assets during fire control activities", "Genetics - Bottleneck/inbreeding", @@ -495,6 +501,8 @@ var config = "Human interference - Recreational fishing", "Human interference - Recreational pressures", "Human interference - Road/vehicle strike", + "Knowledge/Capacity - Inadequate scientific and/or technological capacity", + "Knowledge/Capacity - Insufficient knowledge to inform appropriate management or intervention actions", "Land management practices - Changes to hydrology and aquatic systems", "Land management practices - Domestic grazing/stock impacts", "Land management practices - Excess recharge of groundwater", diff --git a/src/main/scripts/releases/3.4/adhoc/createPartnershipsAndInnovationGrantsSubProgram.js b/src/main/scripts/releases/3.4/adhoc/createPartnershipsAndInnovationGrantsSubProgram.js index 904e6371f..639787770 100644 --- a/src/main/scripts/releases/3.4/adhoc/createPartnershipsAndInnovationGrantsSubProgram.js +++ b/src/main/scripts/releases/3.4/adhoc/createPartnershipsAndInnovationGrantsSubProgram.js @@ -119,13 +119,6 @@ var config = "title": "Project review, improvement and evaluation methodology and approach (3000 character limit [approximately 500 words])" } }, - { - "template": "nationalAndRegionalPlans", - "model": { - "includeUrl": true, - "headingTitle": "Conservation and management plans" - } - }, { "template": "serviceOutcomeTargets", "model": { @@ -398,6 +391,19 @@ var config = "b8304577-afd8-45e0-8ef4-b71ae10998f5" ], "serviceId": 44 + }, + { + "serviceTargets": [ + "8113ab8a-17e6-43c9-be32-9ca72dd01454", + "9f6f06ac-b055-48c1-9d80-b305acdeae79" + ], + "serviceId": 6 + }, + { + "serviceTargets": [ + "0e887410-a3c5-49ca-a6f5-0f2f6fae30db" + ], + "serviceId": 46 } ] }, @@ -435,7 +441,7 @@ var config = "minimumReportDurationInDays": 3, "label": "Semester", "category": "Progress Reports", - "activityType": "Progress Report", + "activityType": "Grants and Others Progress Report", "reportsAlignedToCalendar": true, "canSubmitDuringReportingPeriod": true }, @@ -471,13 +477,13 @@ var config = "Climate Change - Changed rainfall patterns", "Climate Change - Sea level rises", "Climate Change - Unexpected seasonal/temperature extremes", - "Disconnection from Country - Altered/disrupted connection with land and sea country", "Disconnection from Country - Altered or disrupted First Nations engagement/leadership in caring for land and sea country", "Disconnection from Country - Altered or disrupted transfer of First Nations knowledge systems", + "Disconnection from Country - Altered/disrupted connection with land and sea country", "Disconnection from Country - Inadequate recognition of Traditional knowledge and practices", - "Disengagement of community - Community are not informed and are not engaged in managing the environment", "Disease/pathogens - Areas that are infected", "Disease/pathogens - Possible infection of disease free areas", + "Disengagement of community - Community are not informed and are not engaged in managing the environment", "Fire - Inappropriate fire regime", "Fire - Lack of protection for ecological assets during fire control activities", "Genetics - Bottleneck/inbreeding", @@ -495,6 +501,8 @@ var config = "Human interference - Recreational fishing", "Human interference - Recreational pressures", "Human interference - Road/vehicle strike", + "Knowledge/Capacity - Inadequate scientific and/or technological capacity", + "Knowledge/Capacity - Insufficient knowledge to inform appropriate management or intervention actions", "Land management practices - Changes to hydrology and aquatic systems", "Land management practices - Domestic grazing/stock impacts", "Land management practices - Excess recharge of groundwater", diff --git a/src/main/scripts/releases/4.0/adhoc/addSeedCollectingToOMPGRound4.js b/src/main/scripts/releases/4.0/adhoc/addSeedCollectingToOMPGRound4.js new file mode 100644 index 000000000..bebed7763 --- /dev/null +++ b/src/main/scripts/releases/4.0/adhoc/addSeedCollectingToOMPGRound4.js @@ -0,0 +1,4 @@ +load('../../../utils/audit.js'); +load('../../../utils/addService.js'); + +addServiceOutput(NumberInt(36), 'Grants and Others Progress Report', 'NHT - Seed Collection', 'system'); \ No newline at end of file diff --git a/src/main/scripts/releases/4.0/adhoc/removeSitesFromDataSets.js b/src/main/scripts/releases/4.0/adhoc/removeSitesFromDataSets.js index 8c714a446..b2cc2baa3 100644 --- a/src/main/scripts/releases/4.0/adhoc/removeSitesFromDataSets.js +++ b/src/main/scripts/releases/4.0/adhoc/removeSitesFromDataSets.js @@ -1,9 +1,9 @@ load('../../../utils/dataSets.js'); let adminUserId = ''; -let projectId = 'tbs'; +let projectId = '38f9f4b2-a33f-4f10-9b79-b514653e5abd'; -let dataSets = ['ds1','ds2']; +let dataSets = ['44cc5fb3-dcc5-49bf-8d2d-ba841bcf638c','d3b9a7cd-5b11-4a66-bce7-3d9354c743d7']; for (let i=0; i> wsResponse diff --git a/src/test/groovy/au/org/ala/merit/GmsMapperSpec.groovy b/src/test/groovy/au/org/ala/merit/GmsMapperSpec.groovy index ae9316d6c..c23573a95 100644 --- a/src/test/groovy/au/org/ala/merit/GmsMapperSpec.groovy +++ b/src/test/groovy/au/org/ala/merit/GmsMapperSpec.groovy @@ -21,11 +21,16 @@ class GmsMapperSpec extends Specification{ ] def activitiesModel + def programs = [ + "Green Army Round 1": [programId:"gar1", name:"Green Army Round 1"], + "Green Army": [programId:"ga", name:"Green Army"], + "Test program":[programId:'p1', name:"Test program", fundingType:"Grant"] + ] def setup() { activitiesModel = JSON.parse(new InputStreamReader(getClass().getResourceAsStream('/activities-model.json'))) Map programModel = [programs:[[name:'Green Army']]] List organisations = [[ organisationId: "123", name:'Test org 1', abn:'12345678901'], [organisationId:'2', name:"Org 2", abn:""]] - gmsMapper = new GmsMapper(activitiesModel, programModel, organisations, abnLookupService,scores) + gmsMapper = new GmsMapper(activitiesModel, programModel, organisations, abnLookupService, scores, programs) } /** @@ -49,11 +54,11 @@ class GmsMapperSpec extends Specification{ 'GreenArmy-1234567-1' == project.externalId 'Test Project Name' == project.name 'Test Project Description' == project.description - 'Test Organisation 2' == project.organisationName - 'Green Army' == project.associatedProgram + [[organisationId:"123", name:"Test org 1", description:"Recipient"]] == project.associatedOrgs + 'gar1' == project.programId [[idType:'INTERNAL_ORDER_NUMBER', externalId:'111111']] == project.externalIds - 'Green Army Round 1' == project.associatedSubProgram + 'gar1' == project.programId expectedStartDate == project.plannedStartDate expectedEndDate == project.plannedEndDate 0 == project.funding @@ -167,7 +172,7 @@ class GmsMapperSpec extends Specification{ def "Programs can be mapped from the supplied name via the program map"() { setup: - gmsMapper.programs = ["Program name 1":"p1id", "Program name 2":"p2id"] + gmsMapper.programs = ["Program name 1":[programId:"p1id"], "Program name 2":[programId:"p2id"]] Map projectData = [APP_ID:'g1', ORG_TRADING_NAME:'Test org 1', ABN:'12345678901', FUNDING_TYPE:"RLP", FUNDING:"1000", START_DT:'2019/07/01', FINISH_DT:'2020/07/01'] when: @@ -178,20 +183,8 @@ class GmsMapperSpec extends Specification{ !result.errors } - def "Programs can be mapped from the programs model as a fallback if they aren't mapped in the program map"() { - gmsMapper.programs = ["Program name 1":"p1id", "Program name 2":"p2id"] - Map projectData = [APP_ID:'g1', ORG_TRADING_NAME:'Test org 1', ABN: '12345678901',FUNDING_TYPE:"RLP", FUNDING:"1000", START_DT:'2019/07/01', FINISH_DT:'2020/07/01'] - - when: - Map result = gmsMapper.mapProject([ projectData + [PROGRAM_NM: 'Green Army'] ]) - - then: - result.project.associatedProgram == "Green Army" - !result.errors - } - def "An error will be raised if the program is unable to be mapped or missing"() { - gmsMapper.programs = ["Program name 1":"p1id", "Program name 2":"p2id"] + gmsMapper.programs = ["Program name 1":[programId:"p1id"], "Program name 2":[programId:"p2id"]] Map projectData = [APP_ID:'g1', ORG_TRADING_NAME:'Test org 1',ABN: '12345678901', FUNDING_TYPE:"RLP", FUNDING:"1000", START_DT:'2019/07/01', FINISH_DT:'2020/07/01'] when: @@ -208,7 +201,7 @@ class GmsMapperSpec extends Specification{ } def "Tags can be mapped by the GMS mapper"() { - gmsMapper.programs = ["Program name 1":"p1id", "Program name 2":"p2id"] + gmsMapper.programs = ["Program name 1":[programId:"p1id"], "Program name 2":[programId:"p2id"]] Map projectData = [APP_ID:'g1',PROGRAM_NM:'Program name 1', ORG_TRADING_NAME:'Test org 1', ABN: '12345678901',FUNDING_TYPE:"RLP", FUNDING:"1000", START_DT:'2019/07/01', FINISH_DT:'2020/07/01', TAGS:"Fires, Flood, Test"] when: @@ -233,77 +226,96 @@ class GmsMapperSpec extends Specification{ def "An Error will raised organisation unable to map using organisation name"(){ setup: - Map projectData = [APP_ID:'g1', ORG_TRADING_NAME:'Test org 2',FUNDING_TYPE:"RLP", FUNDING:"1000", START_DT:'2019/07/01', FINISH_DT:'2020/07/01'] + Map projectData = [APP_ID:'g1', ORG_ID:'1234',FUNDING_TYPE:"RLP", FUNDING:"1000", START_DT:'2019/07/01', FINISH_DT:'2020/07/01'] when: def result = gmsMapper.mapProject([projectData]) then: - result.errors[1].toString() == "No organisation exists with organisation name Test org 2" + result.errors[1].toString() == "No organisation exists with abn: '' and/or organisationId: '1234'" } - def "If an ABN is supplied in the project load, the looked up entity name will be used instead of any organisation name supplied in the load"(){ + def "If an ABN is supplied in the project load, an organisation can be created from the ABN lookup"(){ setup: Map projectData = [APP_ID:'g1', ABN: '12345678900', START_DT:'2019/07/01', FINISH_DT:'2020/07/01', ORG_TRADING_NAME:'Org 1'] String abn = "12345678900" - Map abnValue = [abn:"12345678900", entityName:"Test org 1"] + Map abnValue = [abn:"12345678900", entityName:"Test org 12345678900"] when: def result = gmsMapper.mapProject([projectData]) then: - 1 * abnLookupService.lookupOrganisationNameByABN(abn) >> abnValue + 1 * abnLookupService.lookupOrganisationDetailsByABN(abn) >> abnValue and: - result.project.organisationName == abnValue.entityName + result.project.associatedOrgs == [[organisationId:null, name:"Test Org 12345678900", description:"Recipient"]] + result.messages[0] == "An organisation will be created with ABN: 12345678900 and name: Test Org 12345678900" } - def "A blank ABN won't be matched to an organisation with a blank ABN"() { + def "The organisation relationship can be derived from the program"(){ setup: - Map projectData = [APP_ID:'g1', ABN: '', START_DT:'2019/07/01', FINISH_DT:'2020/07/01', ORG_TRADING_NAME:'Org 1'] + Map projectData = [APP_ID:'g1', ABN: '12345678900', PROGRAM_NM:'Test program', START_DT:'2019/07/01', FINISH_DT:'2020/07/01', ORG_TRADING_NAME:'Org 1'] + String abn = "12345678900" + Map abnValue = [abn:"12345678900", entityName:"Test org 12345678900"] when: def result = gmsMapper.mapProject([projectData]) then: - !result.project.organisationId - result.project.organisationName == 'Org 1' + 1 * abnLookupService.lookupOrganisationDetailsByABN(abn) >> abnValue and: - result.errors.find{it == "No organisation exists with organisation name Org 1"} + result.project.associatedOrgs == [[organisationId:null, name:"Test Org 12345678900", description:"Recipient"]] + result.messages[0] == "An organisation will be created with ABN: 12345678900 and name: Test Org 12345678900" } - def "An error is raised when an invalid abn number is provided"(){ + def "If an ABN is supplied in the project load, the looked up entity name cannot match another MERIT organisation"(){ setup: - Map projectData = [APP_ID:'g1', ABN: '12345678900', START_DT:'2019/07/01', FINISH_DT:'2020/07/01'] + Map projectData = [APP_ID:'g1', ABN: '12345678900', START_DT:'2019/07/01', FINISH_DT:'2020/07/01', ORG_TRADING_NAME:'Org 1'] String abn = "12345678900" - Map abnValue = null + Map abnValue = [abn:"12345678900", entityName:"Test org 1"] when: def result = gmsMapper.mapProject([projectData]) then: - 1 * abnLookupService.lookupOrganisationNameByABN(abn) >> abnValue + 1 * abnLookupService.lookupOrganisationDetailsByABN(abn) >> abnValue and: - result.errors[1].toString() == "12345678900 is invalid. Please Enter the correct one" + result.project.associatedOrgs == null + result.errors[1] == "An existing organisation name was matched via the entity/business name Test org 1 but the ABN doesn't match the abn of the MERIT organisation (12345678901)" } - def "An error is raise when abn number return the empty map"(){ + def "A blank ABN won't be matched to an organisation with a blank ABN"() { + setup: + Map projectData = [APP_ID:'g1', ABN: '', START_DT:'2019/07/01', FINISH_DT:'2020/07/01'] + + when: + def result = gmsMapper.mapProject([projectData]) + + then: + !result.project.organisationId + result.project.associatedOrgs == null + + and: + result.errors.find{it == "Please supply an organisationId (ORG_ID) or ABN (ABN) for the project"} + } + + def "An error is raised when an invalid abn number is provided"(){ setup: Map projectData = [APP_ID:'g1', ABN: '12345678900', START_DT:'2019/07/01', FINISH_DT:'2020/07/01'] String abn = "12345678900" - Map abnValue = [abn: "", entityName: ""] + Map abnValue = null when: def result = gmsMapper.mapProject([projectData]) then: - 1 * abnLookupService.lookupOrganisationNameByABN(abn) >> abnValue + 1 * abnLookupService.lookupOrganisationDetailsByABN(abn) >> abnValue and: - result.errors[1].toString() == "12345678900 is invalid abn number. Please Enter the correct one" + result.errors[1].toString() == "An error was encountered looking up the ABN 12345678900" } def "The new fields for the grants hub import can be mapped"() { diff --git a/src/test/groovy/au/org/ala/merit/HomeControllerSpec.groovy b/src/test/groovy/au/org/ala/merit/HomeControllerSpec.groovy index 7a5ef1f7c..1aa5310c1 100644 --- a/src/test/groovy/au/org/ala/merit/HomeControllerSpec.groovy +++ b/src/test/groovy/au/org/ala/merit/HomeControllerSpec.groovy @@ -48,7 +48,7 @@ class HomeControllerSpec extends Specification implements ControllerUnitTest> searchResponse and: "The query is limited to the data we need to display" - params.include == ['name', 'description', 'lastUpdated', 'organisationName', 'managementUnitName','managementUnitId', 'programId', 'associatedProgram', 'associatedSubProgram'] + params.include == ['name', 'description', 'lastUpdated', 'associatedOrgs', 'managementUnitName','managementUnitId', 'programId', 'associatedProgram', 'associatedSubProgram'] and: Map response = response.json @@ -96,7 +96,7 @@ class HomeControllerSpec extends Specification implements ControllerUnitTest> [statusCode: HttpStatus.SC_OK, resp:[shp_id:shapefileId, "0":["GRANT_ID":"g1", "EXTERNAL_I":"e1"]]] 1 * projectService.search([grantId:"g1", externalId:"e1"]) >> [resp:[projects:[[projectId:"p1", grantId: "g1"]]]] 1 * projectService.get('p1', _) >> [name:'p1 name', description:'p1 description'] - 1 * siteService.createSiteFromUploadedShapefile(shapefileId, "0", shapefileId+'-0', "g1 - Site 1", _, "p1", false) >> [success:true, siteId:'s1'] + 1 * siteService.createSiteFromUploadedShapefile(shapefileId, "0", shapefileId+'-0', "g1 - Site 1", _, "p1") >> [success:true, siteId:'s1'] result.success == true result.message.sites.size() == 1 } @@ -77,7 +77,7 @@ class ImportServiceSpec extends Specification implements ServiceUnitTest> [resp:[projects:[]]] 1 * projectService.search([grantId:"g1"]) >> [resp:[projects:[[projectId:"p1", grantId: "g1"]]]] 1 * projectService.get('p1', _) >> [name:'p1 name', description:'p1 description'] - 1 * siteService.createSiteFromUploadedShapefile(shapefileId, "0", shapefileId+'-0', "g1 - Site 1", _, "p1", false) >> [success:true, siteId:'s1'] + 1 * siteService.createSiteFromUploadedShapefile(shapefileId, "0", shapefileId+'-0', "g1 - Site 1", _, "p1") >> [success:true, siteId:'s1'] result.success == true result.message.sites.size() == 1 @@ -89,7 +89,7 @@ class ImportServiceSpec extends Specification implements ServiceUnitTest> [resp:[projects:[]]] 1 * projectService.search([grantId:"g1"]) >> [resp:[projects:[[projectId:"p1", grantId: "g1"], [projectId:'p2', grantId:'g1']]]] 0 * projectService.get('p1', _) >> [name:'p1 name', description:'p1 description'] - 0 * siteService.createSiteFromUploadedShapefile(shapefileId, "0", shapefileId+'-0', "g1 - Site 1", _, "p1", false) >> [success:true, siteId:'s1'] + 0 * siteService.createSiteFromUploadedShapefile(shapefileId, "0", shapefileId+'-0', "g1 - Site 1", _, "p1") >> [success:true, siteId:'s1'] result.success == true result.message.sites.size() == 0 result.message.errors.size() == 1 @@ -107,14 +107,14 @@ class ImportServiceSpec extends Specification implements ServiceUnitTest> [statusCode: HttpStatus.SC_OK, resp:[shp_id:shapefileId, "0":["GRANT_ID":"g1", "EXTERNAL_I":"e1"]]] 1 * projectService.search([grantId:"g1", externalId:"e1"]) >> [resp:[projects:[[projectId:"p1", grantId: "g1"]]]] 1 * projectService.get('p1', _) >> [name:'p1 name', description:'p1 description'] - 0 * siteService.createSiteFromUploadedShapefile(shapefileId, "0", shapefileId+'-0', "g1 - Site 1", _, "p1", false) >> [success:true, siteId:'s1'] + 0 * siteService.createSiteFromUploadedShapefile(shapefileId, "0", shapefileId+'-0', "g1 - Site 1", _, "p1") >> [success:true, siteId:'s1'] result.success == true result.message.sites.size() == 1 } def "The import service can create projects that have been loaded and mapped via CSV"() { setup: - GmsMapper mapper = new GmsMapper(activitiesModel, [:], [],abnLookupService, scores, [:]) + GmsMapper mapper = new GmsMapper(activitiesModel, [:], [[organisationId:"123", name:"Test organisation"]],abnLookupService, scores, ["Test program":["programId":"p1"]], ["Test MU":"m1"]) List projectRows = projectRowData() List status = [] String projectId = 'p1' @@ -130,9 +130,11 @@ class ImportServiceSpec extends Specification implements ServiceUnitTest> [list:[[name:"Test Organisation 2", organisationId:'org2Id', abn:'12345678901']]] 1 * metadataService.programsModel() >> [programs:[[name:'Green Army', subprograms:[[name:"Green Army Round 1"]]]]] 1 * managementUnitService.getByName("ACT") >> [managementUnitId:"actId", name:"ACT"] - 1 * programService.getByName("Green Army Round 1") >> null + 1 * programService.getByName("Green Army Round 1") >> [programId:"gar1", name:"Green Army Round 1"] and: "The project was processed without errors" !result.error @@ -195,7 +196,7 @@ class ImportServiceSpec extends Specification implements ServiceUnitTest> [list:[[name:"Test Organisation 2", organisationId:'org2Id', abn:'12345678901']]] 1 * metadataService.programsModel() >> [programs:[[name:'Green Army', subprograms:[[name:"Green Army Round 1"]]]]] 1 * managementUnitService.getByName("ACT") >> [managementUnitId:"actId", name:"ACT"] - 1 * programService.getByName("Green Army Round 1") >> null + 1 * programService.getByName("Green Army Round 1") >> [programId:"gar1"] 1 * projectService.update('', _) >> [resp:[projectId:'p1']] 1 * userService.checkEmailExists('editor@test.com') >> "u3" 1 * userService.checkEmailExists('editor2@test.com') >> "u4" @@ -229,7 +230,7 @@ class ImportServiceSpec extends Specification implements ServiceUnitTest> expected + 1 * abnLookupService.lookupOrganisationDetailsByABN(abn) >> expected and: abnDetails.abn == "11111111111" - abnDetails.name == "Test abn" + abnDetails.entityName == "Test abn" } def "When user provide an invalid abn number return an error message"(){ @@ -149,7 +149,7 @@ class OrganisationServiceSpec extends Specification implements ServiceUnitTest> expected + 1 * abnLookupService.lookupOrganisationDetailsByABN(abn) >> expected and: abnDetails.error == "invalid" @@ -215,9 +215,9 @@ class OrganisationServiceSpec extends Specification implements ServiceUnitTest> [] 1 * documentService.search(_) >> [documents:[]] } diff --git a/src/test/groovy/au/org/ala/merit/ProjectControllerSpec.groovy b/src/test/groovy/au/org/ala/merit/ProjectControllerSpec.groovy index 80951e477..e13c390b3 100644 --- a/src/test/groovy/au/org/ala/merit/ProjectControllerSpec.groovy +++ b/src/test/groovy/au/org/ala/merit/ProjectControllerSpec.groovy @@ -577,7 +577,6 @@ class ProjectControllerSpec extends Specification implements ControllerUnitTest< model.projectContent.admin.visible == false model.projectContent.reporting.visible == false model.projectContent.datasets.visible == false - model.projectContent.overview.template == 'rlpOverview' model.projectContent.overview.visible == true model.projectContent.documents.visible == true } diff --git a/src/test/groovy/au/org/ala/merit/SiteServiceSpec.groovy b/src/test/groovy/au/org/ala/merit/SiteServiceSpec.groovy index d792022ad..0b83d5e3d 100644 --- a/src/test/groovy/au/org/ala/merit/SiteServiceSpec.groovy +++ b/src/test/groovy/au/org/ala/merit/SiteServiceSpec.groovy @@ -2,7 +2,6 @@ package au.org.ala.merit import grails.testing.spring.AutowiredTest import org.apache.http.HttpStatus -import grails.core.GrailsApplication import spock.lang.Specification class SiteServiceSpec extends Specification implements AutowiredTest{ @@ -33,17 +32,14 @@ class SiteServiceSpec extends Specification implements AutowiredTest{ String description = "description" String projectId = "projectId" Map geojson = [type:'Point', coordinates:[-35, 100]] - int id = 1234 when: Map result = service.createSiteFromUploadedShapefile(shapefileId, featureId, externalId, name, description, projectId) then: "the object representing the site is created in the spatial portal" - 1 * spatialService.createObjectFromShapefileFeature(shapefileId, featureId, name, description) >> [statusCode: HttpStatus.SC_OK, resp:[id:id]] - and: "the geometry is retrieved from the spatial portal for storage with the site" - 1 * spatialService.objectGeometry(Integer.toString(id)) >> [statusCode: HttpStatus.SC_OK, resp:geojson] + 1 * spatialService.createObjectFromShapefileFeature(shapefileId, featureId) >> [statusCode: HttpStatus.SC_OK, resp:[geoJson: geojson]] and: "the site is created in ecodata" - 1 * webService.doPost("site/", [extent:[source:'pid', pid:Integer.toString(id), geometry:[type:'Point', coordinates:[-35, 100], pid:Integer.toString(id)]], projects:[projectId], name:name, description:description, type:'worksArea', externalId:externalId, visibility:'private']) >> [statusCode: HttpStatus.SC_OK, resp:[siteId:'site12']] + 1 * webService.doPost("site/", [extent:[source:'drawn', geometry:[type:'Point', coordinates:[-35, 100]]], projects:[projectId], name:name, description:description, type:'worksArea', externalId:externalId, visibility:'private']) >> [statusCode: HttpStatus.SC_OK, resp:[siteId:'site12']] and: "the return value contains the siteId of the new site" result.success == true result.siteId == 'site12' @@ -58,17 +54,12 @@ class SiteServiceSpec extends Specification implements AutowiredTest{ String description = "description" String projectId = "projectId" Map geojson = [type:'Point', coordinates:[-35, 100]] - int id = 1234 when: - Map result = service.createSiteFromUploadedShapefile(shapefileId, featureId, externalId, name, description, projectId, false) + Map result = service.createSiteFromUploadedShapefile(shapefileId, featureId, externalId, name, description, projectId) then: "the object representing the site is created in the spatial portal" - 1 * spatialService.createObjectFromShapefileFeature(shapefileId, featureId, name, description) >> [statusCode: HttpStatus.SC_OK, resp:[id:id]] - and: "the geometry is retrieved from the spatial portal for storage with the site" - 1 * spatialService.objectGeometry(Integer.toString(id)) >> [statusCode: HttpStatus.SC_OK, resp:geojson] - and: "the feature is removed from the spatial portal after the geometry is retrieved" - 1 * spatialService.deleteFromSpatialPortal(Integer.toString(id)) >> HttpStatus.SC_OK + 1 * spatialService.createObjectFromShapefileFeature(shapefileId, featureId) >> [statusCode: HttpStatus.SC_OK, resp:[geoJson:geojson]] and: "the site is created in ecodata as if it was a drawn shape" 1 * webService.doPost("site/", [extent:[source:'drawn', geometry:[type:'Point', coordinates:[-35, 100]]], projects:[projectId], name:name, description:description, type:'worksArea', externalId:externalId, visibility:'private']) >> [statusCode: HttpStatus.SC_OK, resp:[siteId:'site12']] and: "the return value contains the siteId of the new site" @@ -84,17 +75,13 @@ class SiteServiceSpec extends Specification implements AutowiredTest{ String name = "name" String description = "description" String projectId = "projectId" - int id = 1234 + Map geojson = [type:'Point', coordinates:[-35, 100]] when: - Map result = service.createSiteFromUploadedShapefile(shapefileId, featureId, externalId, name, description, projectId, false) + Map result = service.createSiteFromUploadedShapefile(shapefileId, featureId, externalId, name, description, projectId) - then: "the object representing the site is created in the spatial portal" - 1 * spatialService.createObjectFromShapefileFeature(shapefileId, featureId, name, description) >> [statusCode: HttpStatus.SC_OK, resp:[id:id]] - and: "an attempt is made to retrieve the site geometry, which fails in this case" - 1 * spatialService.objectGeometry(Integer.toString(id)) >> [statusCode: HttpStatus.SC_INTERNAL_SERVER_ERROR, error:"Failed to retrieve geojson"] - and: "the feature is removed from the spatial portal as it doesn't have valid geometry" - 1 * spatialService.deleteFromSpatialPortal(Integer.toString(id)) >> HttpStatus.SC_OK + then: "the object representing the site is invalid" + 1 * spatialService.createObjectFromShapefileFeature(shapefileId, featureId) >> [statusCode: HttpStatus.SC_BAD_REQUEST, resp:[error: "Invalid geometry"]] and: "no site is created in ecodata " 0 * webService.doPost("site/", _) and: "the return value indicates failure" @@ -112,19 +99,14 @@ class SiteServiceSpec extends Specification implements AutowiredTest{ String description = "description" String projectId = "projectId" Map geojson = [type:'Point', coordinates:[-35, 100]] - int id = 1234 when: Map result = service.createSiteFromUploadedShapefile(shapefileId, featureId, externalId, name, description, projectId) then: "the object representing the site is created in the spatial portal" - 1 * spatialService.createObjectFromShapefileFeature(shapefileId, featureId, name, description) >> [statusCode: HttpStatus.SC_OK, resp:[id:id]] - and: "the geometry is retrieved from the spatial portal for storage with the site" - 1 * spatialService.objectGeometry(Integer.toString(id)) >> [statusCode: HttpStatus.SC_OK, resp:geojson] + 1 * spatialService.createObjectFromShapefileFeature(shapefileId, featureId) >> [statusCode: HttpStatus.SC_OK, resp:[geoJson: geojson]] and: "the site is attempted to be created in ecodata, which fails for this test case" 1 * webService.doPost("site/", _) >> [statusCode: HttpStatus.SC_INTERNAL_SERVER_ERROR, error:"Failed to create site"] - and: "the feature is removed from the spatial portal to keep consistency with ecodata" - 1 * spatialService.deleteFromSpatialPortal(Integer.toString(id)) >> HttpStatus.SC_OK and: "the return value indicates failure" result.success == false diff --git a/src/test/groovy/au/org/ala/merit/SpatialServiceSpec.groovy b/src/test/groovy/au/org/ala/merit/SpatialServiceSpec.groovy index 3a976b9f3..6c6e9c05b 100644 --- a/src/test/groovy/au/org/ala/merit/SpatialServiceSpec.groovy +++ b/src/test/groovy/au/org/ala/merit/SpatialServiceSpec.groovy @@ -1,9 +1,8 @@ package au.org.ala.merit -import grails.config.Config + import grails.testing.spring.AutowiredTest import org.apache.http.HttpStatus -import grails.core.GrailsApplication import org.springframework.mock.web.MockMultipartFile import org.springframework.web.multipart.MultipartFile import spock.lang.Specification @@ -25,6 +24,7 @@ class SpatialServiceSpec extends Specification implements AutowiredTest{ service.userService = userService service.grailsApplication = grailsApplication grailsApplication.config.spatial.layersUrl= '' + grailsApplication.config.ecodata.baseUrl= '' } def cleanup() { @@ -53,7 +53,7 @@ class SpatialServiceSpec extends Specification implements AutowiredTest{ Map result = service.uploadShapefile(file) then: - 1 * webService.postMultipart("/shape/upload/shp", [:], file, 'files', true) >> [statusCode:HttpStatus.SC_OK, resp:resp] + 1 * webService.postMultipart("/shapefile", [:], file, 'files', true) >> [statusCode:HttpStatus.SC_OK, resp:resp] result.statusCode == HttpStatus.SC_OK result.resp == resp @@ -66,14 +66,14 @@ class SpatialServiceSpec extends Specification implements AutowiredTest{ String shapefileId = "s1" String name = "site 1" String description = "site description" - Map resp = [id:1325] + Map resp = [geoJson:[type:"Point", coordinates:[-35, 100]]] userService.getCurrentUserId() >> "1234" when: - Map result = service.createObjectFromShapefileFeature(shapefileId, featureId, name, description) + Map result = service.createObjectFromShapefileFeature(shapefileId, featureId) then: - 1 * webService.doPost("/shape/upload/shp/$shapefileId/$featureId", [user_id:userId, name:name, description:description], true) >> [statusCode:HttpStatus.SC_OK, resp:resp] + 1 * webService.getJson2("/shapefile/geojson/$shapefileId/$featureId") >> [statusCode:HttpStatus.SC_OK, resp:resp] result.statusCode == HttpStatus.SC_OK result.resp == resp diff --git a/src/test/groovy/au/org/ala/merit/reports/ReportLifecycleListenerSpec.groovy b/src/test/groovy/au/org/ala/merit/reports/ReportLifecycleListenerSpec.groovy index 53b8d4734..1baeb3ea6 100644 --- a/src/test/groovy/au/org/ala/merit/reports/ReportLifecycleListenerSpec.groovy +++ b/src/test/groovy/au/org/ala/merit/reports/ReportLifecycleListenerSpec.groovy @@ -1,6 +1,7 @@ package au.org.ala.merit.reports import au.org.ala.ecodata.forms.ActivityFormService +import au.org.ala.merit.MetadataService import groovy.json.JsonSlurper import spock.lang.Specification @@ -8,9 +9,11 @@ class ReportLifecycleListenerSpec extends Specification { ReportLifecycleListener reportData = new ReportLifecycleListener() ActivityFormService activityFormService = Mock(ActivityFormService) + MetadataService metadataService = Mock(MetadataService) def setup() { reportData.activityFormService = activityFormService + reportData.metadataService = metadataService } @@ -59,6 +62,29 @@ class ReportLifecycleListenerSpec extends Specification { [entityType:"au.org.ala.ecodata.DataSetSummary", entityIds:["5b1255a4-3b91-4fae-a243-02bd4d163898"]]] } + def "getTargetForReportPeriod should return the correct target for the report period"() { + setup: + Map report = [toDate: '2023-12-31'] + String scoreId = 'score1' + List values = [ + [scoreId: 'score1', periodTargets: [ + [period: '2023-01-01', target: 10], + [period: '2023-12-31', target: 20], + [period: '2024-01-01', target: 30] + ]], + [scoreId: 'score2', periodTargets: [ + [period: '2023-01-01', target: 5], + [period: '2023-12-31', target: 15] + ]] + ] + + when: + def result = reportData.getTargetsForReportPeriod(report, values) + + then: + result == [score1:20, score2: 15] + } + private static Map nhtActivityForm() { File file = new File('forms/nht/nhtOutputReport.json') diff --git a/src/test/js/spec/OrganisationSpec.js b/src/test/js/spec/OrganisationSpec.js index f94333922..c59799a08 100644 --- a/src/test/js/spec/OrganisationSpec.js +++ b/src/test/js/spec/OrganisationSpec.js @@ -1,4 +1,5 @@ describe("OrganisationViewModel Spec", function () { + var hasSimpleDirtyFlag = true; beforeAll(function() { window.fcConfig = { imageLocation:'/' @@ -11,9 +12,20 @@ describe("OrganisationViewModel Spec", function () { if (!$.unblockUI) { $.unblockUI = function() {}; } + if (!ko.simpleDirtyFlag) { + hasSimpleDirtyFlag = false; + ko.simpleDirtyFlag = function() { + this.isDirty = ko.observable(false); + return this; + }; + } + }); afterAll(function() { delete window.fcConfig; + if (!hasSimpleDirtyFlag) { + delete ko.simpleDirtyFlag; + } }); it("should serialize into JSON which does not contain any fields that are only useful to the view", function() { @@ -22,11 +34,23 @@ describe("OrganisationViewModel Spec", function () { {label:'Quarterly (First period ends 30 September 2023)', firstReportingPeriodEnd:'2023-09-30T14:00:00Z', reportingPeriodInMonths:3, reportConfigLabel:'Quarterly'} ]; - var organisation = { organisationId:'1', description:'Org 1 description', collectoryInstitutionId:'dr123', newsAndEvents:'this is the latest news', - documents:[], links:[] + var organisation = { + organisationId:'1', + description:'Org 1 description', + collectoryInstitutionId:'dr123', + newsAndEvents:'this is the latest news', + orgType:'Individual/Sole Trader', + entityType:'IND', + postcode:1234, + externalIds:[], + associatedOrgs:[], + documents:[], links:[], + businessNames:[], + contractNames:[], + indigenousOrganisationRegistration: [] }; - var model = new OrganisationViewModel(organisation); + var model = new EditOrganisationViewModel(organisation, {healthCheckUrl:'/'}); var json = model.modelAsJSON(true); @@ -47,7 +71,7 @@ describe("OrganisationViewModel Spec", function () { it('should get name based on the abn provided', function () { let options = {prepopulateAbnUrl: "test/url"}; - let abnDetails = {abn: "11111111111", name: "test org"} + let abnDetails = {abn: "11111111111", entityName: "test org", businessNames:['test org 1']} let organisation = {organisationId: "1234", name: "OrgName"} spyOn($, 'get').and.returnValue( @@ -58,7 +82,7 @@ describe("OrganisationViewModel Spec", function () { model.abn = "11111111111"; model.prepopulateFromABN(); - expect(model.name()).toEqual(abnDetails.name); + expect(model.name()).toEqual(organisation.name); //Org name is not overwritten unless empty }); // end it diff --git a/src/test/js/spec/ProjectSpec.js b/src/test/js/spec/ProjectSpec.js index e1cd3c63f..7a6987f5f 100755 --- a/src/test/js/spec/ProjectSpec.js +++ b/src/test/js/spec/ProjectSpec.js @@ -19,9 +19,8 @@ describe("ProjectViewModel Spec", function () { name:'Name', description:'Description' }; - var organisations = []; - var isEditor = true; - var project = new ProjectViewModel(projectData, isEditor, organisations); + + var project = new ProjectViewModel(projectData); expect(project.name()).toEqual(projectData.name); expect(project.description()).toEqual(projectData.description); @@ -71,9 +70,7 @@ describe("ProjectViewModel Spec", function () { status: 'terminated', terminationReason: "Termination Reason" } - var org = []; - var isEditor = true - let project = new ProjectViewModel(projectData, isEditor, org) + let project = new ProjectViewModel(projectData) expect(project.status()).toEqual(projectData.status) expect(project.terminationReason()).toEqual(projectData.terminationReason) }); diff --git a/src/test/resources/gmsMappingTestData1.csv b/src/test/resources/gmsMappingTestData1.csv index fcae073e4..0e7e99f53 100644 --- a/src/test/resources/gmsMappingTestData1.csv +++ b/src/test/resources/gmsMappingTestData1.csv @@ -1,34 +1,34 @@ -PROGRAM_NM,ROUND_NM,APP_ID,EXTERNAL_ID,APP_NM,APP_DESC,START_DT,FINISH_DT,ORDER_NO,FUNDING,APPLICANT_NAME,ORG_TRADING_NAME,ABN,APPLICANT_EMAIL,AUTHORISEDP_CONTACT_TYPE,AUTHORISEDP_EMAIL,GRANT_MGR_EMAIL,GRANT_MGR_EMAIL_2,EDITOR_EMAIL,EDITOR_EMAIL_2,DATA_TYPE,ENV_DATA_TYPE,PGAT_PRIORITY,PGAT_GOAL_CATEGORY,PGAT_GOALS,PGAT_OTHER_DETAILS,PGAT_ACTIVITY_DELIVERABLE_GMS_CODE,PGAT_PRIMARY_ACTIVITY,PGAT_ACTIVITY_DELIVERABLE,PGAT_ACTIVITY_TYPE,PGAT_ACTIVITY_DESCRIPTION,PGAT_ACTIVITY_UNIT,PGAT_UOM,PGAT_THREAT,PGAT_THREAT_DESC,LOC_LATITUDE,LOC_LONGITUDE,LOC_DESC,SITE_NAME,LOC_URL,RISK_DESC,RISK_IMPACT,RISK_LIKELIHOOD,RISK_MITIGATION -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Activities,,,,,RVA,Revegetation ,(area revegetated),,Test activity,150,no,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Activities,,,,,RVA,Revegetation ,(area revegetated),,Test activity 2,250,no,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Activities,,,,,RVN,Revegetation ,(no. of plants),,Third revegetation activity,1500,no,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Activities,,,,,WDT,Weed treatment ,(total area),,,1.5,ha,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Activities,,,,,PPRP,Plant propagation ,(no. of plants),,,500,no,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Goals,,Remnant vegetation,Eucalypt Open Woodlands,"Current condition of vegetation: Class III: transformed - Native vegetation community structure, composition and regenerative capacity significantly altered by land use or land management practice.",,,,0,,,,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Goals,,Indigenous cultural values,Other,Description: Bushtucker and medicine plants,,,,0,,,,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Goals,,Awareness of community environment protection values,Other,"Description: Water quality, restoration and conservation native vegetation",,,,0,,,,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Primary Activity,,,,,Creek bank regeneration,,,0,,,,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Priorities,"Protect and conserve Australias natural, historic and Indigenous heritage.",,,,,,,0,,,,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Threats,,,,,,,,0,,Flood,The establishment of clusters of weeds on the banks of the creek inhibits the flow of water during high flow events and also the stability of the creek banks,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Threats,,,,,,,,0,,Competition caused by invasive weeds,Invasion by exotic vines and woody weeds is displacing and effecting the health and extent of native vegetation which in turn is affecting habitat for local fauna and the stability of the creek banks,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Threats,,,,,,,,0,,Pollution (nutrient enrichment),Through establishing native vegetation on the creek banks we hope to improve water quality,,,,,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Location Data,NA,,,,,,,,,,,,-34.1658,150.6082,"The proposed activities will occur along Stonequarry Creek (-34.1658, 150.6082), Picton and Kennedy Creek, Appin (-34.201032, 150.788709)",,,,,,,, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Risk Data,NA,,,,,,,,,,,,,,,,,Insects Spiders and snakes,Major,Very unlikely,"PPE, First aid kit onsite, Insect repellant/spray, seek medical attention",, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Risk Data,NA,,,,,,,,,,,,,,,,,Needle Stick Injuries,Major,Very unlikely,"PPE, visually inspect area for sharps, vaccination for hep A & B. contact Council officers who are trained to pick up sharps",, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Risk Data,NA,,,,,,,,,,,,,,,,,Hazardous Substances,Major,Very unlikely,"Review need to use chemicals for the job, Review MSDS, Hazardous substance stored and labeled correctly, Use in open ventilated area, Appropriate PPE, Carry water and MSDS on site",, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Risk Data,NA,,,,,,,,,,,,,,,,,Falling or Protruding objects,Moderate,Very unlikely,"Wear appropriate PPE, Assess location and weather conditions, Remove or Mark protruding objects",, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Risk Data,NA,,,,,,,,,,,,,,,,,"Slips, trips and Falls",Moderate,Possible,"PPE, identify best access point for worksite. Assess site for obstacles. Don't run onsite.",, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Risk Data,NA,,,,,,,,,,,,,,,,,Extreme Weather,Moderate,Very unlikely,"Wear appropriate PPE, Schedule extra breaks in hot conditions, Re-asses situation if weather conditions change, vary activities dependent on weather conditions.",, -Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/14,23/3/15,111111,,Test Organisation 1,Test Organisation 2,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Risk Data,NA,,,,,,,,,,,,,,,,,Manual handling,Moderate,Unlikely,"Assess load before lifting, Lighten the load, share the load, use appropriate equipment, PPE",, \ No newline at end of file +PROGRAM_NM,ROUND_NM,APP_ID,EXTERNAL_ID,APP_NM,APP_DESC,START_DT,FINISH_DT,ORDER_NO,FUNDING,ABN,APPLICANT_EMAIL,AUTHORISEDP_CONTACT_TYPE,AUTHORISEDP_EMAIL,GRANT_MGR_EMAIL,GRANT_MGR_EMAIL_2,EDITOR_EMAIL,EDITOR_EMAIL_2,DATA_TYPE,ENV_DATA_TYPE,PGAT_PRIORITY,PGAT_GOAL_CATEGORY,PGAT_GOALS,PGAT_OTHER_DETAILS,PGAT_ACTIVITY_DELIVERABLE_GMS_CODE,PGAT_PRIMARY_ACTIVITY,PGAT_ACTIVITY_DELIVERABLE,PGAT_ACTIVITY_TYPE,PGAT_ACTIVITY_DESCRIPTION,PGAT_ACTIVITY_UNIT,PGAT_UOM,PGAT_THREAT,PGAT_THREAT_DESC,LOC_LATITUDE,LOC_LONGITUDE,LOC_DESC,SITE_NAME,LOC_URL,RISK_DESC,RISK_IMPACT,RISK_LIKELIHOOD,RISK_MITIGATION +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Eligibility Data,NA,,,,,,,,,,,,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Activities,,,,,RVA,Revegetation ,(area revegetated),,Test activity,150,no,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Activities,,,,,RVA,Revegetation ,(area revegetated),,Test activity 2,250,no,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Activities,,,,,RVN,Revegetation ,(no. of plants),,Third revegetation activity,1500,no,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Activities,,,,,WDT,Weed treatment ,(total area),,,1.5,ha,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Activities,,,,,PPRP,Plant propagation ,(no. of plants),,,500,no,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Goals,,Remnant vegetation,Eucalypt Open Woodlands,"Current condition of vegetation: Class III: transformed - Native vegetation community structure, composition and regenerative capacity significantly altered by land use or land management practice.",,,,0,,,,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Goals,,Indigenous cultural values,Other,Description: Bushtucker and medicine plants,,,,0,,,,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Goals,,Awareness of community environment protection values,Other,"Description: Water quality, restoration and conservation native vegetation",,,,0,,,,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Primary Activity,,,,,Creek bank regeneration,,,0,,,,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Priorities,"Protect and conserve Australias natural, historic and Indigenous heritage.",,,,,,,0,,,,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Threats,,,,,,,,0,,Flood,The establishment of clusters of weeds on the banks of the creek inhibits the flow of water during high flow events and also the stability of the creek banks,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Threats,,,,,,,,0,,Competition caused by invasive weeds,Invasion by exotic vines and woody weeds is displacing and effecting the health and extent of native vegetation which in turn is affecting habitat for local fauna and the stability of the creek banks,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Environmental Data,Threats,,,,,,,,0,,Pollution (nutrient enrichment),Through establishing native vegetation on the creek banks we hope to improve water quality,,,,,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Location Data,NA,,,,,,,,,,,,-34.1658,150.6082,"The proposed activities will occur along Stonequarry Creek (-34.1658, 150.6082), Picton and Kennedy Creek, Appin (-34.201032, 150.788709)",,,,,,,, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Risk Data,NA,,,,,,,,,,,,,,,,,Insects Spiders and snakes,Major,Very unlikely,"PPE, First aid kit onsite, Insect repellant/spray, seek medical attention",, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Risk Data,NA,,,,,,,,,,,,,,,,,Needle Stick Injuries,Major,Very unlikely,"PPE, visually inspect area for sharps, vaccination for hep A & B. contact Council officers who are trained to pick up sharps",, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Risk Data,NA,,,,,,,,,,,,,,,,,Hazardous Substances,Major,Very unlikely,"Review need to use chemicals for the job, Review MSDS, Hazardous substance stored and labeled correctly, Use in open ventilated area, Appropriate PPE, Carry water and MSDS on site",, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Risk Data,NA,,,,,,,,,,,,,,,,,Falling or Protruding objects,Moderate,Very unlikely,"Wear appropriate PPE, Assess location and weather conditions, Remove or Mark protruding objects",, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Risk Data,NA,,,,,,,,,,,,,,,,,"Slips, trips and Falls",Moderate,Possible,"PPE, identify best access point for worksite. Assess site for obstacles. Don't run onsite.",, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Risk Data,NA,,,,,,,,,,,,,,,,,Extreme Weather,Moderate,Very unlikely,"Wear appropriate PPE, Schedule extra breaks in hot conditions, Re-asses situation if weather conditions change, vary activities dependent on weather conditions.",, +Green Army,Green Army Round 1,B0000000001,GreenArmy-1234567-1,Test Project Name,Test Project Description,13/10/2014,23/3/2015,111111,,12345678901,test@test.com,Authorised Person,test@test.com,gm@test.com,gm2@test.com,editor@test.com,editor2@test.com,Risk Data,NA,,,,,,,,,,,,,,,,,Manual handling,Moderate,Unlikely,"Assess load before lifting, Lighten the load, share the load, use appropriate equipment, PPE",, \ No newline at end of file
    ${g.message(code:'label.merit.projectID')} / Contracted recipient name/s Name Start Date End Date
    ${project.grantId} + + ${project.associatedOrgs?.collect{it.name?.encodeAsHTML()}?.join(', ')} ${project.name?.encodeAsHTML()} ${au.org.ala.merit.DateUtils.isoToDisplayFormat(project.plannedStartDate)} ${au.org.ala.merit.DateUtils.isoToDisplayFormat(project.plannedEndDate)}