Dexterity change contenttype fields

lets say i have a contenttype "employee", which should act like a plone default contenttype, but with additional and slightly different fields.

it has a schema:

  • title (readonly - will be a composition of first_name, last_name and degree using a IEmployeeTitle behavior)
  • biography
  • description
  • portrait
  • copyright_info

behaviors included:

title and description are done by, BUT how to make the title readonly without sub-classing and/or reimplementing the fields?

the positioning of the description after biography is also not easy to achieve.
plone.autoform.directives does allow to sort a field before or after a field name. BUT not fields not definded in the current schema. i can sort of understand that, but its hard to work ... i would have to sort n fields before a field in another behavior instead of telling that to be placed somewhere else.

portrait and copyright_info are, BUT how to rename the field titles from "lead image" and "lead image text" to "portrait" and "copyright information"?
biography would be done by, BUT how to - again - rename the field-title from "text" to "biography"

so two questions:

  1. why can't i do something like directive.order_before(IBasic.description='biography')
  2. why can't i change label texts and settings like title = IBasic.title; title.readonly = True or text = IRichText.text; text.title=u'Biography'

this is very old and unmaintained, but it contains some code that could make sense to you:

Because in your list plone.basic ( is not used?
You use the composed which introduced some problems here...

So, did you try directive.order_before(IDublinCore.description='biography')? I am not sure, but off-fead I would say that’s it.