Dirty states for when there is a change that hasn’t been synced yet.
Add support for setting multiple classes for loading states.
Attempt to handle when the component gets out of sync with an invalid checksum error.
Performance tweaks when there isn’t a change to a model or dbModel with lazy or defer modifiers.
Add support for child components
Add discard action modifier
Add support for referring to components in a folder structure
Remove restriction that component templates must start with a div
Remove restriction that component root can’t also have
Prevent the currently focused model element from updating after the AJAX request finishes (#100).
Disable poll with a component field
Dynamically change polling options with PollUpdate
Basic support for
Component key to allow disambiguation of components of the same name
Get the last action method’s return value
Fix encoding issue with default component template on Windows (#91)
Fix circular import when creating the component (#92)
$modelspecial argument and decorator.
Support nested properties when using the set shortcut.
Fix action string arguments that would get spaces removed inadvertently.
Use LRU cache for constructed components to prevent ever-expanding memory.
Fix bug to handle floats so that they don’t lose precision when serialized to JSON.
Fix bug to handle related models (ForeignKeys, OneToOne, etc) fields in Django models.
Add support for passing kwargs into the component on the template
Provide access to the current request in the component’s methods
Fix: Prevent Django
CharFieldform field from stripping whitespaces when used for validation.
Fix: Handle edge case that would generate a null exception.
Fix: Only change loading state when an action method gets called, not on every event fire.
Handle child elements triggering an event which should be handled by a parent unicorn element.
Fix: certain actions weren’t triggering model values to get set correctly
Loading states for improved UX.
$eventspecial argument for
APPSsetting for determing where to look for components.
Add support for parent elements for non-db models.
Fix: Handle if
Metadoesn’t exist for db models.
Fix bug where multiple actions would trigger multiple payloads.
Handle lazy models that are children of an action model better.
Parse action method arguments as basic Python objects
Stop and prevent modifiers on actions
Defer modifier on model
Support for multiple actions on the same element
Use dash for poll timing instead of dot
Attempt to get the CSRF token from the cookie first before looking at the CSRF token.
Fix bug where lazy models weren’t sending values before an action was called
is_validmethod to component to more easily check if a component has validation errors.
Better error message if the CSRF token is not available.
Fix bug where model elements weren’t getting updated values when an action was being called during the same component update.
Fix bug where some action event listeners were duplicated.
More robust fix for de-duping multiple actions.
Fix bug where conditionally added actions didn’t get an event listener.
Fix model sync getting lost when there is an action (issue 39).
Small fix for validations.
Support classes, dictionaries, Django Models, (read-only) Django QuerySets properties on a component.
Debounce modifier to change how fast changes are sent to the backend from
Lazy modifier to listen for
Better support for
Set shortcut for setting properties.
Listen for any valid event, not just
Better handling for model updates when element ids aren’t unique.
Add mount hook.
Add reset action.
Remove lag when typing fast in a text input and overall improved performance.
Better error handling for exceptional cases.
UnicornViewto follow the conventions of class-based views.
Initial version with basic functionality.