diff --git a/app/views/events/_form.html.erb b/app/views/events/_form.html.erb
index 96875d3d8..9ee0ad165 100644
--- a/app/views/events/_form.html.erb
+++ b/app/views/events/_form.html.erb
@@ -105,7 +105,15 @@
<% end %>
- <%= f.multi_input :target_audience, errors: @event.errors[:target_audience], title: t('events.hints.targets') %>
+ <% if TeSS::Config.feature['controlled_vocabulary_vars'].include? 'target_audience' %>
+ <%= f.dropdown :target_audience,
+ options: TargetAudienceDictionary.instance.options_for_select,
+ label: 'Target Audience',
+ errors: @event.errors[:target_audience],
+ title: t('events.hints.targets') %>
+ <% else %>
+ <%= f.multi_input :target_audience, errors: @event.errors[:target_audience], title: t('events.hints.targets') %>
+ <% end %>
<% if !TeSS::Config.feature['disabled'].include? 'topics' %>
diff --git a/app/views/materials/_form.html.erb b/app/views/materials/_form.html.erb
index 68042a355..f52f0bbbc 100644
--- a/app/views/materials/_form.html.erb
+++ b/app/views/materials/_form.html.erb
@@ -76,8 +76,17 @@
visibility_toggle: TeSS::Config.feature['materials_disabled'] %>
- <%= f.multi_input :target_audience, label: 'Target audiences', errors: @material.errors[:target_audience],
- title: t('events.hints.targets'), visibility_toggle: TeSS::Config.feature['materials_disabled'] %>
+ <% if TeSS::Config.feature['controlled_vocabulary_vars'].include? 'target_audience' %>
+ <%= f.dropdown :target_audience,
+ options: TargetAudienceDictionary.instance.options_for_select,
+ label: 'Target Audience',
+ errors: @material.errors[:target_audience],
+ title: t('events.hints.targets'),
+ visibility_toggle: TeSS::Config.feature['materials_disabled'] %>
+ <% else %>
+ <%= f.multi_input :target_audience, label: 'Target audiences', errors: @material.errors[:target_audience],
+ title: t('events.hints.targets'), visibility_toggle: TeSS::Config.feature['materials_disabled'] %>
+ <% end %>
<%= f.input :prerequisites, as: :markdown_area, field_lock: true,
diff --git a/config/tess.example.yml b/config/tess.example.yml
index 1ee4cf00c..19d6eb0bf 100644
--- a/config/tess.example.yml
+++ b/config/tess.example.yml
@@ -166,6 +166,7 @@ default: &default
bioschemas_testing: false
collection_curation: true
auto_parse_vars: [] # available features to auto parse from description: ['keywords', 'target_audience']
+ controlled_vocabulary_vars: [] # available features: ['target audience']
# User login
invitation: false