-
Jared Hancock authored
This feature addresses a major issue with the initial implementation of the custom data system. The original system confused the usage of database-backed field (dynamic-fields) and their corresponding implementation. This created the need to crate awkward caching pieces to ensure that validation errors and data was maintained. Furthermore, the system confused the linking between form instances (dynamic-entry) and the form used to represent that entry. This patch addresses the confusion in two ways: Dynamic form entries do not link directly to the dynamic form. Instead, the ::getForm() method returns something from the forms API directly. Furthermore, the ::getFields() method does not return dynamic field instances (database backed / designed fields). Instead, the actual implementation of the fields from the forms API is retrieved. This allows the fields to *always* be cached, which helps preserve data and validation state. Secondly, the dynamic form uses the same system, so that requests to turn a dynamic form into a form (via ::getForm) will also result in the same behavior, again, where the fields are represented as forms API fields rather than the dynamic fields. So going forward, the dynamic fields are *only* used to create corresponding forms API field implementations. The are associated with the dynamic counterparts as sparingly as possible.
4efef017