Add Form UI overlay, to block user interaction while loading and upon wizard state and submission.
Improve the installation (post_init_hook
) to auto install the latest stable formio.js (library) version from the GitHub tags API.
Instead of relying (using) the system parameter (ir.config_parameter
) formio.default_version
, which isn't reliable due to the GitHub tags API (30 limit) results and leaves no installed formio.js (library) version.
Fix form formio.form
create, to set public_share
by its formio.builder``public
field.
This is still done (but not harmful) by _onchange_builder
which needs to be fixed or removed.
Fix ir.actions.server
model _constraint_unique_formio_ref
method:
ValueError: Expected singleton: ir.actions.server
Improvement, avoid browser caching for certain assets files (CSS, JS):
- Form Builder
- Form (backend, portal, public)
Workaround for Safari 16.6 (AFAIK), with Columns in a Data Grid.
The Columns become too narrow and unusable in a Data Grid.
GitHub issue: formio/formio.js#5426
This workaround adds 1 CSS rule, which adds a width: 100%
to the
first <td/>
(column) targeted in a Data Grid table.
#formio_form_app table.datagrid-table tbody tr td:first-child {
width: 100%;
}
Hide field builder_id_domain
in formio.form
form view.
- Sidebar pabel disappears for long forms. This reverts some (resizing) changes from 15.0.7.0.
- Show the "Auto-save" setting in the dock before State.
Possibility to redirect the (parent) window upon submit of an embedded public form.
The redirect occurs if the <iframe/>
has set:
- URL query-param
?embed
(any value allowed). - Following
sandbox
attribute with values (AFAIK):sandbox="allow-same-origin allow-scripts allow-top-navigation"
Fix portal form AttributeError: 'tuple' object has no attribute 'formio_ietf_code'
.
Add (again) language
template variable in the render values of endpoint /formio/portal/form/<string:uuid>
Issue: #257
Rename label of formio.form
field submission_data
, from Data
to Submission Data
.
Add formio.form
(Form) after_save_draft
method and execute it in the /submit
endpoints (backend, portal, public).
Fix:
Still one Form loading regression (bug) in template formio_form_public_embed
.
Due to incomplete implementation of the new (loading) spinner implementation in v15.0.6.6.
Fix:
Form loading on portal and public/website.
Due to incomplete implementation of the new (loading) spinner implementation in v15.0.6.6.
Improvement:
Put the form builder (loading) spinner in dedicated <div/>
which hides when the form builder has been rendered.
Improvements:\
- Menu renaming: 'Forms' to 'Form Submissions'
- Put the form (loading) spinner in dedicated
<div/>
which hides when the form has been rendered.
Improvements:\
- Menu renaming: 'Forms' to 'Form Submissions'
- Put the form (loading) spinner in dedicated
<div/>
which hides when the form has been rendered.
Security fix / meaurement:
Deny update of submission_data
(field) upon form update, if the form has state 'Completed' or 'Cancelled'.
Improvement for translations:
- Add translate function in
formio.builder
model - Set language (IETF code) in payload of
customValidation
hook.
In Form Builder form-view, add group "main" in top of the notebook/page "formio_components_api".
Fix standalone form (formio.form
) record create, shouldn't set the res_id
.
This also results in a visible button to open the linked resource.
Changes:\
- Implement the formio.js
customValidation
hook, which XHR posts to the API / validation endpoint. - Some code reorder, cleanup and comments.
Add to Python eval context of ir.actions.server
code:
_logger
- logger objectos.getenv
- get (os) environment variable function
Implement a api=getData
model access-rights bypass, by obtaining a direct record rule (ir.rule
).
Provide the record-rule (ir.rule
) ID in the query-param &module_rule_id=<model('ir.rule'):model_rule_id>
, shown in the example below.
The domain of the record-rule applies and the model search_read
shall be executed with superuser mode (sudo()
).
Example URL (query params):
http://localhost:8069/formio/portal/form/new/FORMIO_BUILDER_NAME?api=getData&model=stock.production.lot&label=name&model_rule_id=99
Fix and improve 'datetime' component localization and translations:\
- Fix and improve
patchRequireLibrary
(JS function) to gradually determine the arguments. - Fix and improve Form Builder
setLanguage
to localize datetime components.
Ensure external JavaScript libraries get loaded as expected by a common CDN.
This introduces the patchRequireLibrary
(JS function) which alters some library URLs the formio.js CDN
class fetches.
Currently the Flatpickr localizations URLs are altered.
Render a new portal form by the generic QWeb form template.
This ensures to apply any extra form builder config/settings.
Backwards formio.js compatibility fix:
Apply patchCDN
if there's an instantiated Formio.cdn
object.
Make formio.js CDN for hot-loaded dependencies configurable.
Make use of the formio.js CDN class to override the base URL for all 3rd party assets that are loaded on-the-fly by formio.js lib.
This includes for example ACE, CKEditor, Flatpickr, Quill etc.
The Cloudflare CDN is set as the default value.
They have a page about the GDPR: https://www.cloudflare.com/trust-hub/gdpr/
It's also possible to override the default value to a (paid) GDPR-aware CDN like KeyCDN.com or GlobalConnect.no and host the required files there,
or simply point it to the base URL of their Odoo install and ship the files.
This would require pinning the formio.js version, since different versions of the library need different dependencies.
Fix migration for version 15.0.14.1 upgrade error:
UniqueViolation: duplicate key value violates unique constraint "ir_config_parameter_key_uniq"
Style (highlight) active language button.
The "Forms" Button in the Form Builder view.
Archive functionality for formio.js versions (also unarchive and search filter).
Wizard draft autosave mode.
This allows complex components to serialize their data on the form before submitting it.
Improve app/module installation, by downloading and installing a default formio.js library version after install.
Also log a warning in case an error (eg ConnectionError) occurs.
This solves the deprecation warning, regarding a domain that may not be returned by an onchange method.
Replace the _onchange_builder_id
method (implementation), by a new computed field builder_id_domain
and 2 new methods:
_compute_builder_domain
_get_builder_domain
.
This also affects the implementation replacement in additional modules which should be updated as well !
Eg: formio_crm
, formio_partner
, formio_purchase
, formio_sale
.
WARNING / UPDATE REQUIREMENT
Update all modules which implemented the _onchange_builder_id
method.
For the (Nova Code) Forms modules those are:
- formio_crm
- formio_partner
- formio_purchase
- formio_sale
Add new feature which allows Form Builders in "Draft" or "Obsolete" state to be choosen in a new Form in the backend.
The 2 setting fields are available in the Form Builder:
- Use Draft in Backend
- Use Obsolete in Backend
In the Form Builder, implement conditional warning (also extendable) in case there are integrated APIs.
This warns the Form Builder user about components being removed or updated, which could lead the API regression/breakage.
- Fix language determination (cascade) for public Form load by UUID.
- Add cascade delete on
formio_version_id
in modelformio.version.translation
.
Update iframe-resizer v4.3.6 (JS library).
Add form/builder heightCalculationMethod 'taggedElement' targets in portal and public templates.
Change form 'heightCalculationMethod' from 'grow' to 'taggedElement'.
This solves issues for components with dynamic height, eg the collapsible Edit Grid (type editgrid
).
Fix formio.js version (action/button) Download and install error:
ValueError: max() arg is an empty sequence
.
Initialize the translations sequence properly.
Improvements for Version Translations (model: formio.version.translation
):
- Compute and store origin (base translation, user added).
- Compute and show whether a copied (origin) base translation has been updated.
- Add sequence field. So translations can be ordered to ease admnistration and the translation override implementation.
Fix name_get
method (models: formio.translation
, formio.version.translation
)
Major improvements for translations:
- Specific Version Translations instead of linking (Many2many) to the available Base Translations.
- Translations (overrides) of formio.js source properties in the form builder.
Add noupdate=1
for the xmlid formio.version_dummy
data (record).
This prevents recreation when the dummy version has been archived (is inactive).
Fix the component data URL check in the Form JS (rendering) code.
Improve loading "Extra Assets" (js, css), by targetting before
or after
the core assets.
Form Builder: Disallow create and edit for field "formio.js version".
Form Builder Lock/Unlock buttons with primary color.
Cleanup/fix migrations (apparently picked from 16.0)
Improve Form Builder "Actions API" tab (layout and info).
Improvements for administration of "Extra Assets" (js, css) with link/relation to attachments.
Affected models: formio.extra.asset
, ir.attachment
.
Implement "Forms Ref" field on several models regarding assets and attachments:
formio.version.asset
, formio.extra.asset
, ir.attachment
This facilitates purposes like export/import tools.
Improve form builder wizard save as draft: previous page, page clicked.
Fix formio.builder
typo in _constaint_check_name
.
Fix and improve email templates:
- Migrate Jinja to QWeb syntax.
- Replace
email_to
bypartner_to
.
Add unique constraint on formio.builder.translation
(fields: builder_id
, lang_id
, source
).
This release brings datetime component localization and translations:
- Add
formio.extra.asset
(model, views) to store extra JS and CSS assets, egflatpickr
(JS library) and its localization files. - Implement locales administration and passing to the (JS) frontend.
- Set default and update the datetime (flatpickr) locale by language chooser in a form.
Fix typo menu (sequence).
Menu: put Form Builders first.
Field "Forms Ref" (formio_ref
) is required in Server Action (view) when Model is a Form (formio.form
).
Add field "Forms Ref" (formio_ref
) in Server Actions list view.
Rename field formio_code
to formio_ref
.
It has more meaning and cannot be confused with coding.
Enable loading the config (eg options) of Forms using the backend _etl_odoo_config
method:
- Add form builder method
_etl_odoo_config
. - Extend controllers
/config
(http) endpoints with updating the config by_etl_odoo_config
. - Change the (JavaScript)
loadForm
method, to obtain and add possible URL query string/params from the window or parent window.
Provide an informational reference (link) between Form Builder and Server Actions:
- Form Builder (form view): new tab "Actions API" where server actions can be linked.
- Add char field "Forms Code" in server action (form view).
- Ensure users with (group) "Administration Settings" are assigned to the "Forms Administrator" group.
- Improve Form (iFrame) resizing, especially for wizard Forms.
Ensure iFrame height shall be recomputed in wizard Forms upon next/prev page.\ - Revert the
heightCalculationMethod
fromlowestElement
togrow
again.
ThelowestElement
added too much space at the bottom (stil no clue why that happens).
Improve Form (iFrame) resizing, especially for wizard Forms.
Change the heightCalculationMethod
from grow
to lowestElement
.
This resizes upon every (component) change by obtaining the lowest bottom element.
Solve Form height resizing issues, by applying the iFrame Resizer bodyMargin
option.
Eg. ensure the rendering of select component at the bottom of a Form won't break anymore.
Issue: #20
- Update iFrame Resizer (JS) library to version 4.3.2 (Dec 2021).
- Add configurable
iframe_resizer_body_margin
field in Form Builder, with a (sensible) default value. - Change Form templates (backend, portal) to apply the configurable iFrame Resizer
bodyMargin
. - Add callable template
formio.form_iframe
(with options:src
,bodyMargin
,form
), which applies the iFrame Resizer (with fallback onform
its Form Builder).
- Add Form (JS)
apiUrl
property (backend, portal, public). - Implement Form (JS)
change
event, which posts to/api/onChange
endpoint (determined byapiUrl
).
Implement missing api=getData
(fetching) endpoints in backend, portal, public.
Add default Form Builder formio.js Options data.
This contains an editForm
configuration for the select
component.
More info about the overrideEditForm
property: formio/formio.js#2280
However the dataSrc
property currently (December 2022) doesn't seem to work, also mentoined in: formio/formio.js#2489
Rename /data
(fetching) endpoints query param from api=get_data
to api=getData
.
- Moved transalations button after form builder.
- For clarity (between code and Components API), renamed field added in 10.1:
fromsubmission_url_add_query_string
tosubmission_url_add_query_params_from
.
Refactor (and deprecate) the /data
(fetching) endpoints to form root-level endpoints by new query string api=get_data
.
Unfortunately this is required to allow the query string feature added in 10.1 to use with the data endpoint as well.
Fundamentals to implement prepopulation* of component values for new (portal, public) forms.
Prepopulation* by means of the Components (server) API.
- Form Builder configuration and frontend/JS: add possible URL query string from window, to submission URL.
- New (portal) endpoint:
/formio/portal/form/new/<string:builder_uuid>/submission
Can be used to prepopulate a (new) form.
- Portal form: render new (not yet stored) or a direct create (old style)
- Refactor
_generate_odoo_domain
.
- Extend the form
/data
endpoints to support advanced domain filter. - Add the basic
_generate_odoo_domain
function informio.form
model, used in form/data
endpoint.
- Don't copy the Form Builder Locked field.
- Improve the "Redirect After Submit" feature, to also support when the form is in the same window (not only iframe).
- Fix Dummy version info in Builder.
- Archive Dummy version upon install of a real version.
- Builder: formio.js version (field) domain/filter exclude Dummy.
- Builder: hide the Assigned user (
user_id
) field.
Let's see if this still needed, otherwise change toMany2many
. - Remove menu to
formio.res.model
Issue: #190
- Remove
formio.version
and related assets data - Add Dummy
formio.version
record (without assets) - Add Dummy
formio.version
toformio.builder
Demo data - Show warning about Dummy version
formio.builder
form view.
- Fix language determination in public Form.
Derive in order: context, user, base.lang_en.
- Dutch (nl_NL) translations improvements.
- Form Builder set to "Draft" state now unlocks too.
Code change:action_draft
now updatesis_locked=False
, ifis_locked
.
- Minor change: name (attr) on 2 view groups
portal_redirect_after_submit
,public_redirect_after_submit
- Fix completed wizard form, with "Save draft on next page" (setting).
When navigating pages, the form state has been updated from "complete" to "draft".
Issue: #184
- Remove searchbar from Builder and Form.
- Set the (form) language in the fetch
/data
URL.
- Upon copy
formio.version
record, also copy the (One2many) assets.
- Fix backend submit-URL (endpoint) of Form in Wizard-mode, when Form Builder enables the "Wizard on next Page Save Draft".
This concerns (fixes) changes in versions, 9.8, 8.32.
- Form Builder: unlock/lock feature, allows to modify a published Form Builder (in state: Current).
- Improve
formio.form
its_compute_access
method, to allow root user (self.env.su
).
- Layout improvements in Builder and Form (backend form) views.
- Fix duplicate field label warnings for model
formio.builder.translation
.
- Store related fields in model
formio.builder.translation
, to enable sorting.
- Fix submit-URL of Form in Wizard-mode for backend auth-mode, when Form Builder enables the "Wizard on next Page Save Draft".
This concerns the feature added in version 8.32. - Upon submit
/formio/public/form/create/<builder_uuid>/submit
set the Form (record) fieldpublic_share=True
.
This allows an internal user to use (eg test) such public Form as well, with identical public (share expiration) functionality.
- Public existing (eg invited) form: Redirect submit-done URL feature.
Similar feature already available with public created (website) and portal Forms.
- Form Builder: Translations button with action window.
Ease the editting, export/import of Form Builder Translations.
- Public (website): Fix JavaScript (frontend) to set the proper
/data
URL-path on component objects, which fetch (Odoo) model records.
- Portal: Fix
/data
URL-path to fetch (Odoo) model records.
This required to change the Form URL in (embed) iframe:\- from:
/formio/form/<string:uuid>?portal=true
\ - to:
/formio/portal/form/<string:uuid>
- from:
- Public (website): Implemented feature
/data
URL-path, to fetch (Odoo) model records.
This configuration requires additional model read-access for the public user, on the model to fetch the records from.
- Improve the formio.js library Downloader and Installer tool.
Fetch 100 tags by adding (URL query) parameterper_page=100
.
Previously, 30 tags were fetched (defaultper_page=30
).
- Fix Form submit: Error
_logger is undefined
in methodmail_activity_partner_linking
.
Affected feature: Components API (tab in Builder) Partner
- Fix Form Builder: Access Error (read)
ir.ui.view
upon action "Create New Version".
This now correctly determines the views (form, tree) by xmlid.
- Improve the formio.js library Downloader and Installer tool.
Downloads and installs belong and go in their.attachment
model and filestore which ensures proper permissions.
Previous implementation located these into theformio
module itsstatic/installed
directory.
- Fix settings view (res.config.settings). Some settings and info appeared while searching for other settings. Issue: #164
- Fix warning:
Two fields (formio_version_name, formio_version_id) of formio.builder() have the same label.
- Fix warning:
The domain term '('formio_version_id', '=', [py:int])' should use the 'in' or 'not in' operator.
- New feature for public Form in Wizard mode: on next page perform a save draft.
This is a (boolean/checkbox) setting in the Builder.
- Add formio.js (library project) license file, also with GitHub downloader/installer.
formio.js - https://github.com/formio/formio.js
- Improve the submitDone redirect feature.
Config should be explicit; don't wait on timeout and then redirect anymore.
- Add session variable
formio_last_form_uuid
upon POST/formio/public/form/create
.
- Correct misunderstanding, leftover names regarding the formio.js library.
- Fix bug/regression in
formio.form
(create)_prepare_create_vals
andwrite
, due to timezone feature added in version 8.25
- Fix bug/regression in
formio.form
(create)_prepare_create_vals
, due to timezone feature added in version 8.25
- Store timezone (from the partner) of the Form submission.
- Add translation for the alert message(s), in top of the Form.
- Translated for language codes: nl, nl_BE, pt_BR, zh_CN.
- Relates to: formio/formio.js#3105, formio/formio.js#2627
- Add translation for the submitError message, near submit button of the Form.
- Translated for language codes: nl, nl_BE, pt_BR, zh_CN.
- Fix: Nested components (eg inside datagrid, editgrid) Data Source URL
- Prefix the Data Source URL with the Odoo controller endpoint, with format:
/formio/form/<string:uuid>/data/?query...
- Fix: Language determination in Public Form (also used by the
website_formio
module). - Improve JsonRPC client using Odoo's JsonRpc internals (from
web.ajax
).
- Form Builder (UI) improvement: Extend width to 95% of container (viewport), which was too narrow before.
- Fix: Ordering of "formio.js version" in (Many2one) selection fields e.g. in Form and Config settings.
- Fix: Translations didn't worked, due to regression by latest change in
formio.builder
functioni18n_translations
- Fix: Issue in Form (form-view) searching Builder(s) really didn't worked properly.
Technical details:
This change addresses theformio.builder
, adding thesearch
method for the computed fielddisplay_name_full
which is used as_rec_name
.
- Fix: Error when uninstall and installing again.
Record does not exist or has been deleted. (Record: formio.builder.js.options(1,), User: 2)
Uninstall now deletes the system parameter (record) with keyformio.default_builder_js_options_id
- New feature: Grant copy Forms persmission (button), also in portal, configured by Form Builder.
It's also possible to configure whether the Form should be copied and merged into the latest/current Form Builder schema (design).
- Removed rigorous record rule
ir_attachment_unlink_formio_form
(Attachments of completed Forms can't be deleted).
This was intended, now moved and improved in the moduleformio_storage_filestore
.
- Fix: delete and cancel actions of Form in the portal.
- Forms app/module Category.
- In User form, ensure User Groups in dropdown/select instead of checkboxes.
- Form (field) Title is required and indexed.
- Fix singleton error, when matching multiple Partners by email in the Form (e.g. for following and report emails).
PR: #109 - Schedule Activity (on Form) if found multiple Partners with same email submitted in the Form.
- JavaScript: Set the
baseUrl
(value:window.location.href
) on the (formio.js) Formio object.
ThebaseUrl
is the Form it's<iframe src=.../>
attribute.
This can be used in other (integration) modules e.g. for security/access checking etc.
- Fix server crashing due to request unbound error, while installing or updating module.
Bug has been introduced in version 8.7,formio.builder
function_compute_public_url
of computed fieldpublic_url
.
- In model
ir.attachment
define the relational fieldformio_form_id = fields.Many2one('formio.form')
Can be used for all kinds of integration e.g. files upload storage.
- In Form Builder show URL/link to public create Form (e.g. to embed, share).
- Fix: Language determination in Public Form (also used by
website_formio
module).
PR: #101
- Fix (4): language switcher buttons and translations in public Forms (also used by
website_formio
module).
Convert the Odoo language code (underscore "_") to Formio (formio.js) JavaScript's i18n expected IETF code (hyphen "-").
PR: #100
- Fix: formio.js version updates in Windows environments are not available.
PR: #92
- Fix (3): language switcher buttons and translations in Form Builder and Forms.
Convert the Odoo language code (underscore "_") to Formio (formio.js) JavaScript's i18n expected IETF code (hyphen "-").
Issues: #91, #93, #95
- Fix (1): language switcher buttons in Form Builder and Forms.
Shown languages (buttons) are determined by configured languages in the Form Builder.
Issues: #91, #93 - Add translations pt_BR: Portuguese (BR)
- Rename the App and other UI parts (titles, labels) to "Forms"
- Fix: obtaining the latest GitHub 30 release versions often get (HTTP) 403 errors.
Adds a GitHub personal access token in the Settings, to get a higher rate limit.
- Fix: Forms should be accessible when user belongs to both groups: User: Assigned forms and User: All forms Group User: All forms takes precedence over User: Assigned forms.
- Translatable (multilingual) public Forms, with language-switcher buttons.
This addresses issues: #58, #47 - Translatable (multilingual) Form Builder, with language-switcher buttons.
- New feature: specify Form Builder Javascript options API/argument.
Form Builder JavaScript options can be specified in the form-view (tab) and shall be stored informio.builder
record.
Default (global) JavasScript options can be specified in the Forms Settings, which are by default loaded while creating a Form Builder.
For example, the Form Builder editForm File component options: https://github.com/formio/formio.js/tree/master/src/components/file/editForm
- Fix Form Builder save (JavaScript event handler).
Use the event handler its argument (schema/components) instead ofself.schema
(scary change/bug)
Issue: #66
- Implemented Form Builder
copy()
method, which previously was blocked / not possible. This due to unique contraint validation on fieldsname
andversion
.
Upon copy, the new Form Builder its name (field value) shall be suffixed with a datetime-stamp.
- Configurable redirect, after (submit) submission of Portal and Public (website) Form:
- Configuration in Form Builder
- Handle whether to redirect or reload (new) Form.
- Redirect after Submit-done configuration for Portal and Public (website) Forms.
- Fix Form not loaded. Javascript workaround (known) browser incompatibility errors.
- Mac: Safari 12.x, 13.1
- iOS: Safari
Issues: - Safari 13.1 on Mac experienced error: 1unexpected token '='. expected an opening '(' before a method's parameter list`
- iOS issue solved, but details not debugged. Dev Tools not ready/present in iOS browsers.
- Fix frontend JavaScript: Execute
loadForm()
after the DOM has beenmounted()
, not upon (async)willStart()
.
(This of course failed to bootstrap the (formio) App when the DOM wasn't loaded, which results in nothing). - Improve frontend JavaScript: Add
initForm()
hook and implement specific constructor/object properties in the App classes (backend_app.js, public_app.js, public_create_app.js).
E.g. to setconfig_url = '/formio/public/form/' + this.form_uuid + '/config';
- Frontend rebuild with Owl (Odoo Javascript framework) - Form Builder and Form:
- Use the Owl - https://odoo.github.io/owl - JavaScript framework, to abstract the Form component into a Component class.
- JavaScript modules (export/import) to bind the Owl classes into specific backend and public Form (Owl) Apps.
- This also breaks/ends support for Internet Explorer, which is already published EOL.
- Changed some endpoint URLs (to improve URL conventions).
- Version GitHub tags: Add scheduled action (ir.cron daily) which checks and registers new client/library Versions (GitHub tags).
- Version GitHub tags: Add field "Installed on", which stores the installation datetime.
- Version GitHub tags: Highlight installed version records with color (success/green).
- New feature: formio.js (client/library) Version Checker, Importer and Installer tool.
Now administrators can check, import (from GitHub) and install new releases/versions by a single click in Odoo.
Soon a scheduled Cron action shall be implemeneted which does the (default daily) checking and importing. - New feature: Configuration setting to specify the default formio.js (client/library) Version for any new Form Builder.
- New Components API feature: create a Partner after Form submission. Possibility to add the Partner to Followers of the Form record. Configuration in Form Builder: Partner field/component (email, name), Add to Followers (checkbox/boolean).
- Add Form Builder UUID (field).
- Data migration: update all
formio_builder
records, set UUID (field) with generated value. - Change the public Form loading and submit (URLs, handling) from ID to UUID.
This slightly protects from abuse of public Forms (some obfuscation of the real id). Issue: #46
- New tab Components API in Form Builder form-view.
- Public Forms - Access configuration and check (by interval expiration settings: minutes, hours, days).
- Public Forms - Improvements in (web)controller, templating and JavaScript:
- Split up JavaScript files, which implement the Form handling (backend, public, public new).
- This change is subjected to redundant code (DRY), but works for now and shall be addressed by using a JavaScript framework (probably Owl).
- Change
formio.form
toplevel URLs: remove the/root
suffix.
This was introduced in 1.8. Seems not to be an issue anymore.
- Add optional UUID (field) into Forms list view.
- Change 4.3 implementation (
>final_res
fields), which was rather confusing:- Remove the
final_res_model
,final_res_id
fields. - Instead: in model
formio.form
added fieldsinitial_res_model_id
,initial_res_id
. - These fields store the initial (referenced) resource record. So swapping the
res_model_id
andres_id
afterwards is supported, for specific implementation requirements. - Add migration to update
formio_form
records:res_model_id
(determined byformio_builder
), copyres_id
toinitial_res_id
.
- Remove the
- In model
formio.form
added fieldsfinal_res_model
,final_res_id
.
These fields can be used to swap the (referenced) resource record, for specific implementation requirements. - In model
formio.builder
added fieldres_model
, which represents the technical model-name.
- In the create Form (form-view) by default provide only Form Builders without Resource-model in the Form Builder drop-down field.
Specific modules extend this (domain) filter to add appropriate Form Builders related to the (active) Resource-model - e.g. formio_sale, formio_stock.
- Improvement: ETL Odoo (resource) data into Form, requires to bypass access control on the target/resource model. (Use
sudo
here).
- Basic setup to deploy/share public Forms, by a setting (checkbox) in Form Builder.
- Implement sequence field in Form. Usefull when storing and listing forms in an ordered way.
- New setting (in Form Builder) which instructs the Form whether to show/hide the UUID in Form footer.
- Store those show/hide setting fields in the Form, instead of joining its relational Builder value (in readonly mode).
- Improvements in tree/list and form views regarding Form and Builder.
- New setting (in Form Builder) which instructs the Form whether to show/hide the Title.
- Moved the Form Title from the main HTML-document into the embedded document (iframe).
This improves the embedded Form experience.
- New settings (in Form Builder) which instructs the Form whether to show/hide some metadata: Assigned user, Submission user & date, ID, State.
The default is to show all these metadata fields (for backwards compatibility and no data migration needed). - Import formio.js version 3.x assets and bootstrap (CSS) instead of CDN.
- Fix silly Javascript bug:
_.extend
(underscore.js ain't loaded here). Use jQuery extend. - Add help text regarding issue with (formio.js) and
view_as_html
setting formio/formio.js#1545
- Add formio.js v4.9.26 assets
https://github.com/formio/formio.js/releases/tag/v4.9.26
- User in group "Forms Admin" can edit the Form it's submission data, for a new Form (if ain't stored).
- Don't override provided vals in
formio.form
function_prepare_create_vals()
.
- New feature: ETL Odoo (resource) data into Form.
Supported fields:- Scalar fields e.g. Char, Text, Integer, Boolean, Date, Datetime
- Many2one field (load it's leaf/scalar field)
- One2many field, supported by formio.js Datagrid component
- Optional configuration to allow specific User Group(s) to force update of a Form state field (draft, complete, cancel) e.g. by buttons.
Feature/issue: #36
- Fix portal iframe (height) resizing issue #35
- Changed the way Resource Fields are determined and stored. Not by dependent/computed fields anymore, which caused all kind of troubles.
Affected fields:res_name
,res_info
,res_act_window_url
andres_partner_id
.
!! CAUTION, BEFORE UPGRADE: Test first and be sure all Forms data (regarding these fields) has been migrated properly.
- Form Builder layout improvements: full width, remove horizontal scrollbar.
- Fix (workaround) to solve form height-resizing issues #20
- Add formio.js v4.9.23 assets
(https://github.com/formio/formio.js/releases/tag/v4.9.23)
- Remove formio.js "latest" version (CDN URLs). Requests from CDN caused time-outs.
- Odoo formio view types for Builder and Form. Finally one can switch view types (form, formio) within the window action.
- Moved the so-called Form dock (info bar) into the iframe. This updates the info on a (iframe) window reload.
- Remove the submit done url implementation, which is useless in a backend usage/context.
- Other improvements and simplification.
- Extend
formio.form create
methods with_prepare_create_vals
method, which in turn specific modules could call to assign fieldvals
. - Fix method
compute_res_fields
which stores fields regarding the resource model (made possible by change in former point).
- Computed fields regarding resource model: Store res_name and res_partner_id. Change dependent compute method.
- Add (related) field submission partner.
- Change URLs and controllers FROM
/formio/form/<action>/<string:uuid>
URLs TO/formio/form/<string:uuid>/<action>
.
This solves issues regarding relative URLs from a Javascript perspective (components). The UUID was stripped by the Javascript client lib.
Should solve: #11 - Remove 2 legacy (obsolete) controller methods for routes:
/formio/form/<string:uuid>
and/formio/builder/<int:builder_id>
- Prevent Javascript clashes between Odoo and formio.js. Hence remove all Odoo Javascript (assets) loading in the formio.js iframe.
- Add and load standalone JsonRPC client.
- Portal: Improved (refactored) controller layout values method.
- Portal: form buttons now keep query-params.
- Demo Builder: Save as Draft (button).
- Form update to Draft fix (workaround). Remove
submission_data['submit']
.
- Include and serve the formio.js library assets (JS, CSS) within the module. Don't use CDN anymore.
- Click button to display the Form Builder in Full Screen.
- Portal: Improved (refactored) controller layout values method.
- Portal: form buttons now keep query-params.
- Rename (consistency) Builder form-view id/ref: from
view_formio_builder
toview_formio_builder_form
.
- Possible "Resource model(s)" needs to be registered from sub-modules e.g. formio_sale.
Just choosing from all models is useless and confuses the user about its functionality.
- Form embedded in iframe. This avoids clashes (Javascript and CSS) between Odoo and formio.js.
- Redesign of templates
- Search filters on Form Builder and Forms.
- Assign a user (owner/author/designer) to a Form Builder.
- Change default forms view to list.
- Improve forms kanban to group by state.
- Form Builder versioning. Also create a new Builder version-record (from existing one).
- Form Builder states: Draft (in design), Current (published) and Obsolete (unpublished).
- Redesign of Builder and Form templates. A simplification and improvement.
- Hopefully fixed enough styling issues due to Bootstrap 4 VS 3 in Odoo and loaded JS Form (Builder).
- Other small improvements
- Include new formio.js versions and assets (3.27.3, 4.0.8)
- Add recommendation into the description of the "latest" formio.js version.
- Translation system for Form labels, placeholders etc.
- Language selector on Form.
- Simple Form wizard (is a Form rendering/display mode).
- Access-check improvements.
- UI improvements.
- Dutch translations.
- Dropdown button in Portal, to add and fill-in new Form(s).
- Form state (Pending, In Progress, Complete, Canceled).
- Form is readonly if state is Complete or Canceled.
- Form invitation mail.
- Improvements regarding form assignment (user filter).
- Portal User can use forms.
- Restrict access to assigned forms (Portal User, Internal User).
- Translations system to manage the translatable terms and load into the form.
- formio.js (library: JS, CSS) version management and loading.
Initial version.