   selected = this[property] or opt.selected or undefined
   if(opt.addDefault)
     list =[{id: undefined, label: ''}].concat(list)
-  isRequired = if !opt.isRequired? or !opt.isRequired then "" else "<span class='input-group-addon'>*</span>"
+  metadata = getMetadataFor(property, this)
+  domain = domains_definition[metadata.domain] or {}
+  #console.log "domain", domain
+  isRequired = ()=>
+    isDisplayRequired = false
+    if opt.isRequired?
+      isDisplayRequired = opt.isRequired
+    else if metadata.required?
+      isDisplayRequired = metadata.required
+    return if isDisplayRequired then "<span class='input-group-addon'>*</span>" else ""
   translationRoot = opt.translationRoot or undefined
   isAtLine = opt.isAtLine or false
   readonly = opt.readonly or false

                <select id='#{property}' #{readonly} #{optName} #{optToTriggerName} #{optToTriggerListKey} #{dataMapping} class='form-control input-sm'>"
  #add options foreach options in the list
  addOption(elt) for elt in list
  html +=      "</select>#{isRequired} 
              </div>
              #{errors()}
            </div>

  opt = options.hash or {}
  metadata = getMetadataFor(property, this)
  domain = domains_definition[metadata.domain] or {}
  #console.log "domain", domain
  isDisplayRequired = false
  isRequired = ()=>
    isDisplayRequired = false
    if opt.isRequired?
