@@ -200,14 +200,16 @@ class ProjectController {
200
200
if (datasetsVisible && project. custom?. dataSets) {
201
201
projectService. filterDataSetSummaries(project. custom?. dataSets)
202
202
}
203
+ List downloadableProtocols = downloadableProtocols()
204
+
203
205
boolean showExternalIds = userService. userHasReadOnlyAccess() || userService. userIsSiteAdmin()
204
206
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],
205
207
documents : [label : ' Documents' , visible : config. includesContent(ProgramConfig.ProjectContent . DOCUMENTS ), type : ' tab' , user :user, template :' docs' , activityPeriodDescriptor :config. activityPeriodDescriptor ?: ' Stage' ],
206
208
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' ],
207
209
plan : [label : ' Activities' , visible : true , disabled : ! user?. hasViewAccess, type : ' tab' , template :' projectActivities' , grantManagerSettingsVisible :user?. isCaseManager, project :project, reports : project. reports, scores : scores, risksAndThreatsVisible : risksAndThreatsVisible],
208
210
site : [label : ' Sites' , visible : config. includesContent(ProgramConfig.ProjectContent . SITES ), disabled : ! user?. hasViewAccess, editable :user?. isEditor, type : ' tab' , template :' projectSites' ],
209
211
dashboard : [label : ' Dashboard' , visible : config. includesContent(ProgramConfig.ProjectContent . DASHBOARD ), disabled : ! user?. hasViewAccess, type : ' tab' ],
210
- datasets : [label : ' Data set summary' , visible : datasetsVisible, template : ' /project/dataset/dataSets' , type :' tab' ],
212
+ datasets : [label : ' Data set summary' , visible : datasetsVisible, template : ' /project/dataset/dataSets' , downloadableProtocols : downloadableProtocols, supportedFormats :bdrDataSetSupportedFormats(), type :' tab' ],
211
213
admin : [label : ' Admin' , visible : adminTabVisible, user :user, type : ' tab' , template :' projectAdmin' , project :project, canChangeProjectDates : canChangeProjectDates, minimumProjectEndDate :minimumProjectEndDate, showMERIActivityWarning :true , showAnnouncementsTab : showAnnouncementsTab, showSpecies :true , meriPlanTemplate :MERI_PLAN_TEMPLATE , showMeriPlanHistory :showMeriPlanHistory, requireMeriPlanApprovalReason :Boolean . valueOf(config. supportsMeriPlanHistory), config :config, activityPeriodDescriptor :config. activityPeriodDescriptor ?: ' Stage' , canRegenerateReports : canRegenerateReports, hasSubmittedOrApprovedFinalReportInCategory : hasSubmittedOrApprovedFinalReportInCategory, canModifyMeriPlan : canModifyMeriPlan, showRequestLabels :config. supportsParatoo, outcomeStartIndex :outcomeStartIndex]]
212
214
213
215
if (template == MERI_ONLY_TEMPLATE ) {
@@ -274,6 +276,17 @@ class ProjectController {
274
276
return [view : ' index' , model : model]
275
277
}
276
278
279
+ private List<String > downloadableProtocols () {
280
+ String BDR_DOWNLOAD_SUPPORTED_TAG = ' bdr_download_supported'
281
+ List<Map > forms = activityService. monitoringProtocolForms()
282
+ forms = forms. findAll{BDR_DOWNLOAD_SUPPORTED_TAG in it. tags}
283
+ forms. collect{it. externalId }
284
+ }
285
+
286
+ private List bdrDataSetSupportedFormats () {
287
+ grailsApplication. config. getProperty(" bdr.dataSet.formats" , List . class)
288
+ }
289
+
277
290
private Map buildRLPTargetsModel (Map model , project ){
278
291
// Verify project.outcomes (from program config) with primaryOutcome and secondaryOutcomes in project.custom.details.outcomes
279
292
Map primaryOutcome = project. custom?. details?. outcomes?. primaryOutcome
0 commit comments