@@ -6,6 +6,7 @@ import au.org.ala.ecodata.metadata.OutputDateGetter
6
6
import au.org.ala.ecodata.metadata.OutputMetadata
7
7
import au.org.ala.ecodata.metadata.OutputModelProcessor
8
8
import au.org.ala.ecodata.metadata.OutputNumberGetter
9
+ import au.org.ala.ecodata.metadata.SpeciesUrlGetter
9
10
import grails.util.Holders
10
11
import org.apache.commons.logging.Log
11
12
import org.apache.commons.logging.LogFactory
@@ -26,6 +27,7 @@ class TabbedExporter {
26
27
ReportingService reportingService = Holders . grailsApplication. mainContext. getBean(" reportingService" )
27
28
ActivityFormService activityFormService = Holders . grailsApplication. mainContext. getBean(" activityFormService" )
28
29
OutputModelProcessor processor = new OutputModelProcessor ()
30
+ String biePrefix = Holders . grailsApplication. config. getProperty(" bie.url" )+ ' species/'
29
31
30
32
static String DATE_CELL_FORMAT = " dd/MM/yyyy"
31
33
Map<String , AdditionalSheet > sheets
@@ -35,6 +37,7 @@ class TabbedExporter {
35
37
TimeZone timeZone
36
38
Boolean useDateGetter = false
37
39
Boolean useNumberGetter = false
40
+ boolean useSpeciesUrlGetter = false
38
41
// These fields map full activity names to shortened names that are compatible with Excel tabs.
39
42
protected Map<String , String > activitySheetNames = [:]
40
43
protected Map<String , List<AdditionalSheet > > typedActivitySheets = [:]
@@ -232,6 +235,22 @@ class TabbedExporter {
232
235
getter :new OutputNumberGetter (propertyPath, dataNode, documentMap, timeZone)]
233
236
fieldConfiguration << field
234
237
}
238
+ else if ((dataNode. dataType == ' species' ) && useSpeciesUrlGetter) {
239
+ // Return a property for the species name and a property for the species URL
240
+ Map nameField = field + [
241
+ header :outputMetadata. getLabel(viewNode, dataNode),
242
+ property :propertyPath,
243
+ getter :new OutputDataGetter (propertyPath, dataNode, documentMap, timeZone)]
244
+ fieldConfiguration << nameField
245
+
246
+ Map urlField = field + [
247
+ description : " Link to species in the ALA" ,
248
+ header :outputMetadata. getLabel(viewNode, dataNode),
249
+ property :propertyPath,
250
+ getter :new SpeciesUrlGetter (propertyPath, dataNode, documentMap, timeZone, biePrefix)
251
+ ]
252
+ fieldConfiguration << urlField
253
+ }
235
254
else {
236
255
field + = [
237
256
header :outputMetadata. getLabel(viewNode, dataNode),
0 commit comments