--- menu name: Release Notes — v0.2.7 position: 3
Release Notes — v0.2.7 (June 28, 2026)
1. Approvalstatus Field Rename (Breaking Change)
Status: Uncommitted — feature/app branch
Plan: .kilo/plans/1782637172243-approvalstatus-field-rename.md
Renamed the workflow-eligibility field from status to Approvalstatus across the entire framework and workflow engine. The workflowstatus field is preserved as a legacy fallback.
Model Layer
frameworkapp/models.py: Renamedstatus→ApprovalstatusonFrameworktestdocument, updatedverbose_nameto"Approval Status".- Migration:
frameworkapp/migrations/0003_remove_frameworktestdocument_status_and_more.py— removes oldstatuscolumn and addsApprovalstatuson bothFrameworktestdocumentandHistoricalFrameworktestdocument.
Framework Layer
enezaframework/views/mixins.py: UpdatedWorkflowMixin.has_workflow_status_field()andget_document_status()to checkApprovalstatusfirst, thenworkflowstatusas legacy fallback. Removedstatuscheck entirely.
View Layer
frameworkapp/views/testviews.py: Updated all field references (disable_fields,Fieldcolumns,disable_ifblocks) from'status'→'Approvalstatus'across detail, create, and inline views.
Workflow Engine Services (8 services updated)
| Service File | Change |
|---|---|
enezaworkflowengine/services/workflow_submission.py |
Writes Approvalstatus; added pre-submission validation gate — raises WorkflowSubmissionError if document lacks both Approvalstatus and workflowstatus |
enezaworkflowengine/services/step_handlers.py |
_update_document_status() reads/writes Approvalstatus |
enezaworkflowengine/services/workflow_resubmission.py |
_update_document_status() reads/writes Approvalstatus |
enezaworkflowengine/services/workflow_completion.py |
complete_workflow() and cancel_workflow() read/write Approvalstatus |
enezaworkflowengine/services/step_dispatcher.py |
_finalize_workflow() reads/writes Approvalstatus |
enezaworkflowengine/tasks/workflow_tasks.py |
process_end_step() reads/writes Approvalstatus |
Files changed: 9 files (model, views, mixin, 6 workflow services), ~30 locations.
2. Notification Dropdown — Text Truncation with Expand/Collapse
Status: Uncommitted
Plan: .kilo/plans/1782638181299-notification-dropdown-text-truncation.md
Long notification messages in the header dropdowns (envelope and bell icons) are now truncated at 65 characters with a "see more" / "see less" toggle button, preventing text overflow beyond the dropdown container.
Changes
enezaframework/templates/components/common/header.html:- System notifications (envelope): Replaced
class="truncate"with Alpine.js conditional rendering — messages > 65 chars are truncated with...and a "see more" button. - Chat notifications (bell): Same treatment applied to the
<h6>element. enezaframework/static/assets/css/tailwind.css: Added.line-clamp-2CSS utility (-webkit-line-clamp,-webkit-box-orient,overflow: hidden) for 2-line clamping, available for future use.
Files changed: 2 files.
3. Aggregate COUNT on Child Models Without Numeric Fields
Status: Uncommitted
Plan: .kilo/plans/1782639150178-aggregate-count-no-numeric-field.md
Child models that have no integer/real fields were previously excluded from the aggregate dropdown entirely. Now they are available for COUNT aggregation, since counting rows does not require a numeric field.
Changes
enezaworkflowengine/views/mixin.py: Removed theif fields:guard inQueryBuilderMixin.get_aggregate_options()— child models with empty field lists now appear inrelated_models.enezaworkflowengine/utils.py: Relaxedparse_annotations()validation —fieldis no longer required when function iscount. Whencountis used without a field, generatesCount('relation_name')instead ofCount('relation_name__field').enezaworkflowengine/templates/saved_query/partials/query_builder_partial.html: UpdatedaddAggregate()alias generation and_updateAnnotationMeta()to handle null fields forcount— produces aliases likechildmodel_countand labels like "Count of Child Model".enezaworkflowengine/templates/saved_query/partials/edit_query_builder_partial.html: Same frontend updates for edit mode.
Files changed: 4 files.
4. Version Bump
setup.py: Version bumped from0.2.6→0.2.7.
Summary
| Area | Description | Files |
|---|---|---|
| Workflow Engine | status → Approvalstatus field rename across model, views, mixin, and 6 workflow services; added pre-submission validation |
9 |
| UI — Notifications | Long notification text truncated at 65 chars with expand/collapse toggle; .line-clamp-2 CSS utility added |
2 |
| Query Builder | COUNT aggregate now available on child models without numeric fields; backend validation relaxed, frontend updated | 4 |
| Versioning | Version bumped to 0.2.7 | 1 |
| Migration | New migration 0003 — removes status, adds Approvalstatus on Frameworktestdocument + history |
1 |
Total: 16 modified files, 1 new migration file, 104 insertions, 67 deletions.
Migration Notice: The migration
frameworkapp/migrations/0003_remove_frameworktestdocument_status_and_more.pyis uncommitted and not yet applied. The user is responsible for reviewing, applying (python manage.py migrate frameworkapp), and validating the migration before deployment.