diff --git a/grails-app/domain/au/org/ala/ecodata/ActivityForm.groovy b/grails-app/domain/au/org/ala/ecodata/ActivityForm.groovy index f7037b961..e49637f11 100644 --- a/grails-app/domain/au/org/ala/ecodata/ActivityForm.groovy +++ b/grails-app/domain/au/org/ala/ecodata/ActivityForm.groovy @@ -8,6 +8,10 @@ import org.bson.types.ObjectId */ class ActivityForm { + static String SURVEY_TAG = "survey" + static String INTERVENTION_TAG = "intervention" + static String SITE_TAG = "site" + static graphql = ActivityFormGraphQLMapper.graphqlMapping() /** The list of properties to be used when binding request data to an ActivityForm */ @@ -101,6 +105,9 @@ class ActivityForm { String createdUserId String lastUpdatedUserId + /** Currently only used to describe whether this form is collecting survey data (and hence a data set summary will be created) */ + List tags = [] + boolean isPublished() { return publicationStatus == PublicationStatus.PUBLISHED } diff --git a/grails-app/services/au/org/ala/ecodata/ParatooService.groovy b/grails-app/services/au/org/ala/ecodata/ParatooService.groovy index 3b062a4bb..bee6a463e 100644 --- a/grails-app/services/au/org/ala/ecodata/ParatooService.groovy +++ b/grails-app/services/au/org/ala/ecodata/ParatooService.groovy @@ -198,6 +198,8 @@ class ParatooService { result } + + private static Map mapActivity(Map surveyData, Map activity, ParatooProtocolConfig config) { activity.startDate = config.getStartDate(surveyData) activity.endDate = config.getEndDate(surveyData) @@ -282,6 +284,7 @@ class ParatooService { String guid = protocol.attributes.identifier guids << guid String name = protocol.attributes.name + ParatooProtocolConfig protocolConfig = getProtocolConfig(id) ActivityForm form = ActivityForm.findByExternalId(guid) if (!form) { form = new ActivityForm() @@ -312,7 +315,8 @@ class ParatooService { } - mapProtocolToActivityForm(protocol, form) + List tags = protocolConfig?.tags ?: [ActivityForm.SURVEY_TAG] + mapProtocolToActivityForm(protocol, form, tags) form.save() if (form.hasErrors()) { @@ -358,7 +362,7 @@ class ParatooService { syncParatooProtocols(response?.data) } - private static void mapProtocolToActivityForm(Map protocol, ActivityForm form) { + private static void mapProtocolToActivityForm(Map protocol, ActivityForm form, List tags) { form.name = protocol.attributes.name form.formVersion = protocol.attributes.version form.type = PARATOO_PROTOCOL_FORM_TYPE @@ -366,6 +370,7 @@ class ParatooService { form.external = true form.publicationStatus = PublicationStatus.PUBLISHED form.description = protocol.attributes.description + form.tags = tags } private ParatooProject mapProject(Project project, AccessLevel accessLevel, List sites) { diff --git a/src/main/groovy/au/org/ala/ecodata/paratoo/ParatooProtocolConfig.groovy b/src/main/groovy/au/org/ala/ecodata/paratoo/ParatooProtocolConfig.groovy index 5b83fa170..ab26e72bc 100644 --- a/src/main/groovy/au/org/ala/ecodata/paratoo/ParatooProtocolConfig.groovy +++ b/src/main/groovy/au/org/ala/ecodata/paratoo/ParatooProtocolConfig.groovy @@ -14,6 +14,7 @@ class ParatooProtocolConfig { String apiEndpoint boolean usesPlotLayout = true + List tags String geometryType = 'Polygon' String geometryPath