A view to edit selected fields of a content type.
- Useable by simply calling a view with a the fields you want to edit as query-string-parameters
- Select the field or fields you want to edit
- For each field you can choose between input, display and hidden
- Uses the same widgets and validators as the default edit-form
- Respects schema-hints like field-permissions, invariants and widgets
- Nice to use in modals/popups fo allow editing one ore more fields (but not all)
Use it by adding a link to the view @@field_edit_form
and pass the fiels you want to edit as a query-string with up to three parameters separated by a ":" for each field.
Edit the text of a document:
http://localhost:8080/Plone/front-page/@@field_edit_form?fields=IRichTextBehavior.text
Edit the fields title and subjects:
http://localhost:8080/Plone/front-page/@@field_edit_form?fields=IDublinCore.subjects&fields=IDublinCore.title
Display the text and edit the publishing date:
http://localhost:8080/Plone/front-page/@@field_edit_form?fields=IRichTextBehavior.text:display:0&fields=IRelatedItems.relatedItems
Render a link to edit the title in a modal:
<a href="${python:context.absolute_url()}/field_edit_form?fields=IDublinCore.title" class="pat-plone-modal" data-pat-plone-modal='{"actionOptions": {"reloadWindowOnClose": false, "redirectOnResponse": true, "disableAjaxFormSubmit": true}, "buttons": ".formControls > button"'> Edit the Title in a modal </a>
Edit multiple fields:
<a href="${python:context.absolute_url()}/@@field_edit_form?fields=field1&fields=field2&fields=field3" Edit some fields. </a>
Display one field, edit another"
<a href="${python:context.absolute_url()}/@@field_edit_form?fields=field1:display&fields=field2" Edit one field, display another. </a>
Hide the label:
<a href="${python:context.absolute_url()}/@@field_edit_form?fields=field1::0" Edit one field, display another. </a>
Add a hidden field:
<a href="${python:context.absolute_url()}/@@field_edit_form?fields=field1:hidden&fields=field2" Edit one field, display another. </a>
Behavior-fields need to be prefixed with the Behavior:
<a href="${python:context.absolute_url()}/@@field_edit_form?fields=IBasic.title" Edit one field, display another. </a>
collective.fieldedit is tested in Plone 5.1, 5.2 and 6.
Install collective.fieldedit by adding it to your buildout:
[buildout] ... eggs = collective.fieldedit
and then running bin/buildout
Then got to the add-on controlpanel (/prefs_install_products_form
) to enable it.
- Issue Tracker: https://github.com/collective/collective.fieldedit/issues
- Source Code: https://github.com/collective/collective.fieldedit
The project is licensed under the GPLv2.