1.29.0
·
176 commits
to development
since this release
1.29.0 (2026-02-09)
Features
- core: Convert comment with only time tracking command, to action comment
- core: Enable linking ticket sub models to parent model
- base: Add oauth token required claim check to sso pipeline
- core: TicketPermission must check if user has perm for create
- access: remove super user check from centurion user function has_perm
- access: remove super user check from tenancy permission
- core: Add post_migration signal for cleaning up stale permissions
- core: Add triage check within TicketBase Serializer
- core: TicketComment ViewSet Permission_classes updated to require Ticket or SuperUser
- core: Ticket ViewSet Permission_classes updated to require Ticket or SuperUser
- core: Add TicketPermissions Class
- access: Cache the tenancy within Tenancy Permission class
- access: Adjust permissions for Tenancy mixin to be Tenancy or SuperUser
- core: Update Markdown Serializer field to provide render data for UI
- itim: Add Menu Feature Flag to model ProblemTicket
- itim: Add Menu Feature Flag to model IncidentTicket
- itim: Add Menu Feature Flag to model ChangeTicket
- python: Update django 5.1.14 -> 5.1.15
- core: Task comment Permissions must also have ticket triage
- core: Add parent_model to CenturionNote so that tenancy can be obtained during creation
- core: Add ability to specify additional ViewSet permissions
- core: remove
triagepermission from all ticket comment types - itam: Update
ticketmodel_deviceserializer to corrrect inheritance. - core: Always return the sub-model serializer when accessing the TicketModel base serializer
- core: Only add threads URL to comment if there are threads
- core: Ticket Comment base endpoint to use sub-models serializer
- core: Serializer model core.TicketCommentTask
- core: migrations model core.TicketCommentTask
- core: new model core.TicketCommentTask
- core: Create an action comment when a dependency is removed from ticket
- core: Create an action comment when a model link is removed from ticket
- core: model audit_values must return ALL fields for a model
- core: Add the ticket action comment signal
- core: Add m2m field data to model get_audit_values function
- itim: Add Feature Flag 2025-00011 for ProblemTicket
- itim: Add Feature Flag 2025-00010 for IncidentTicket
- itim: Add Feature Flag 2025-00009 for ChangeTicket
- itim: Add Navigation entries for ticket models
- project_management: Add Migrations for project task ticket models
- itim: Add Migrations for ticket models
- project_management: Add Serializer for model project_management.ProjectTaskTicket
- itim: Add Serializer for model itim.IncidentTicket
- itim: Add Serializer for model itim.ProblemTicket
- itim: Add Serializer for model itim.ChangeTicket
- project_management: Add model project_management.ProjectTaskTicket
- itim: Add model itim.ProblemTicket
- itim: Add model itim.ChangeTicket
- itim: Add model itim.IncidentTicket
- core: filter ticket linked models to that of the ticket viewing
- core: Re-import new ticket model linking to slash commands
- core: When a ticket depedency is added via ticket description, create Action comment
- core: When a ticket depedency is added via comment, create Action comment
- python: update django 5.1.13 -> 5.1.14
- core: Add New slash command for ticket dependencies to new ticket model
- core: Updated Migrations to create model core.TicketDependency
- core: Depreciate old ticket linked items
- core: Depreciate old related tickets/ticket dependencies
- core: Migrations to create model core.TicketDependency
- core: Add URL Route for model core.TicketDependency
- core: Add ViewSet for model core.TicketDependency
- core: Add Serializer for model core.TicketDependency
- core: Add model core.TicketDependency
Fixes
- docker: use pip and apk cache from build
- core: Correct which fields are read-only for both import and triage user
- human_resources: signal centurion_user_add_entity must use log instead of stdout
- core: User requires access to add/update ticket urgency field
- core: if user lacks tenancy permissions dont process additional for ticket
- Correct permission inheritence
- core: Capture errors in perms_map for TicketComment ViewSet
- core: TicketModel manager must inherit from TenancyManager
- access: Always filter tenancy objects to tenancy list even if empty
- access: During permission get_tenancy, use the parent model if one exists and the action=create
- access: When checking tenancy permissions and a tenancy is required, ensure it exists
- access: Capture exceptions within tenancy permissions
- access: Function has_perms for user model must cater for obj or direct tenancy passed, inc no tenancy
- core: Ticket sub-model must return display_name as markdown model_tag
- core: Add missing ticket type fields to ticket comment category serializer
- core: when fetching related model ensure the model is of the correct type
- core: If replying to a ticket comment, the parent comment must be set as not closed
- core: dont create modelticket link tables for sub-models
- core: use correct var for solution comment when checking type
- core: When creating a standard ticket comment, set its status to closed
- core: When creating a ticket action comment, set its status to closed
- core: When cleaning viewset model context, dont remove if not exists
- core: Allow HTTP/DELETE on ticket_model_link endpoint
- core: When cleaning up request context from model, only remove the modifications instead of replacing with clean
- api: Use correct field to determine ticket rendering options
Refactoring
- use get_organization function instead of property
- api: remove superflous code paths
- core: Add time tracking slash command for new ticket models
- core: instead of throwing an error for wrong comment type, set it as per meta
- access: All TenancyPermission.has_permission() to be within try..catch
- accounting: Update modelticket serializer inheritence for AssetBase model
- settings: Update modelticket serializer inheritence for ExternalLink model
- project_management: Update modelticket serializer inheritence for ProjectType model
- project_management: Update modelticket serializer inheritence for ProjectState model
- itim: Update modelticket serializer inheritence for Service model
- itim: Update modelticket serializer inheritence for Port model
- itim: Update modelticket serializer inheritence for ClusterType model
- itim: Update modelticket serializer inheritence for Cluster model
- itam: Update modelticket serializer inheritence for SoftwareVersion model
- itam: Update modelticket serializer inheritence for SoftwareCategory model
- itam: Update modelticket serializer inheritence for Software model
- itam: Update modelticket serializer inheritence for OperatingSystemVersion model
- itam: Update modelticket serializer inheritence for OperatingSystem model
- itam: Update modelticket serializer inheritence for ITAMAssetBase model
- itam: Update modelticket serializer inheritence for DeviceType model
- itam: Update modelticket serializer inheritence for DeviceModel model
- itam: Update modelticket serializer inheritence for Device model
- core: Update modelticket serializer inheritence for TicketCommentCategory model
- core: Update modelticket serializer inheritence for TicketCategory model
- devops: Update modelticket serializer inheritence for GitRepository model
- devops: Update modelticket serializer inheritence for GitlabRepository model
- devops: Update modelticket serializer inheritence for GithubRepository model
- devops: Update modelticket serializer inheritence for GitGroup model
- devops: Update modelticket serializer inheritence for FeatureFlag model
- config_management: Update modelticket serializer inheritence for ConfigGroups model
- assistance: Update modelticket serializer inheritence for KnowledgeBaseCategory model
- assistance: Update modelticket serializer inheritence for KnowledgeBase model
- accounting: Update modelticket serializer inheritence for AssetBase model
- access: Update modelticket serializer inheritence for Tenant model
- access: Update modelticket serializer inheritence for Role model
- human_resources: Update modelticket serializer inheritence for Employee model
- access: Update modelticket serializer inheritence for Person model
- access: Update modelticket serializer inheritence for Contact model
- access: Update modelticket serializer inheritence for Company model
- access: Update modelticket serializer inheritence for Entity model
- api: set mock viewset kwargs before calling model within ComonViewSet test cases
- access: When checking a list of user permissions, check ALL permissions first, then return the result.
- access: User permissions checks to use plural check instead of singular permission check
- core: remove superflous function
get_permission_requiredfrom ViewSet - api: Update ticket model linking to use the new ticket sub-models for markdown rendering
- core: Adjust ticket fields name to be single word for fields assigned and subscribed
- core: Use Centurion fileds history for tickets
- api: Update ticket linked models metadata to use refactored model
- core: Dont use link model serializer within slash command for linkmodel
- core: move model validation from serializer to model for TicketDependency model.
Tests
- core: Add functional test suite for slash command time tracking
- base: OAuth Pipeline required claim Test Suite
- core: Ticket Model Test Case to ensure that triage user can update their designated fields.
- core: Ticket Model Test Case to ensure that import user can update their designated fields.
- core: Test fields created and modified as part of Ticket models serializer checks
- core: TicketPermission Test Cases based off of action and HTTP method
- core: TicketPermission Unit Test Suite
- api: Serializer Unit test case to ensure
<user>.is_superuseris not called - api: Ensure that common permission function
has_object_permissiondoes not call<user>.is_superuser - api: Ensure that common permission function
has_permissiondoes not call<user>.is_superuser - core: Unit Test suite for serializer field Markdown
- core: Ensure that if a ticket comment has no threads, no url is in the API response
- core: Ensure that TicketModel Manager filters to those the use has access to
- core: Ensure that a user whom is add/edit/delete/update a ticket task also has triage permissions
- core: Test Cases for ModelTicket to ensure sub-models serializer inherit from parent serializers
- core: Update testcase for triage permission check for TicketCommment models to fetch the correct ticket type
- core: Exclude depreciated model
manufacturerfrom ModelTicket tests - core: ensure that the _base_model attribute of the model_ticket models returns the actual base model
- core: API Fields render functional Test Suite for model core.TicketCommentTaskl
- core: ViewSet functional Test Suite for model core.TicketCommentTaskl
- core: Model functional Test Suite for model core.TicketCommentTaskl
- core: ViewSet unit Test Suite for model core.TicketCommentTaskl
- core: Serializer unit Test Suite for model core.TicketCommentTaskl
- core: Model unit Test Suite for model core.TicketCommentTaskl
- core: Functional Test Cases to ensure that editing a ticket field creates an action comment
- core: Functional Test Cases to ensure that a ticket dependency add/remove creates an action commend
- core: Unit Test Suite for signal ticket_action_comment
- core: Model Functional test case to ensure that when ticket when subscribers is updated an action comment is created
- core: Model Functional test case to ensure that when ticket assignees is updated an action comment is created
- core: Model Functional test case to ensure that when unlinked from ticket that an action comment is created on ticket
- core: Functional model tests to ensure linking models to ticket via ticket comment creates an action comment
- core: Add Unit ViewSet Test Suite for Centurion Audit
- core: Add Unit Serializer Test Suite for Centurion Audit
- core: Add Functional ViewSet Test Suite for Centurion Audit
- core: Add Functional API Fields render Test Suite for Centurion Audit
- core: Add Functional API Fields render Test Suite for Ticket Comment Category
- core: Add Functional model Test Suite for Ticket Comment Category
- core: Add Functional model Test Suite for Ticket Category
- core: Add Functional API fields render Test Suite for Ticket Category
- core: Add Unit Serializer Test Suite for Ticket Comment Category
- core: Add Unit ViewSet Test Suite for Ticket Comment Category
- core: Add Unit Serializer Test Suite for Ticket Category
- core: Add Unit ViewSet Test Suite for Ticket Category
- core: Add Functional ViewSet Test Suite for Ticket Comment Category
- core: Add Functional ViewSet Test Suite for Ticket Category
- core: Add Functional test suite for Link slash command
- core: Add Ticket slash command test suit for relate command for ticket description
- core: Add Ticket slash command test suit for relate command for ticket comment
- api: Completed Test suite for API Metadata Fields
- core: API MetaData Functional test suite for model TicketDependency
- api: Initial Test suite for API Metadata Fields
- core: ViewSet Functional test suite for model TicketDependency
- core: API Fields render Functional test suite for model TicketDependency
- core: Model Functional test suite for model TicketDependency
- core: Serializer Unit test suite for model TicketDependency
- core: ViewSet Unit test suite for model TicketDependency
- core: Model Unit test suite for model TicketDependency
- core: API functional permission test suite for model TicketDependency
Images part of this release
The following images were built and published:
docker pull docker.io/nofusscomputing/centurion-erp:devdocker pull docker.io/nofusscomputing/centurion-erp:ee64489312b89b2c2e9d1ba34e5262cd47ca9ffbdocker pull docker.io/nofusscomputing/centurion-erp:1.29.0