|
| 1 | +## 1.29.0 (2026-02-09) |
| 2 | + |
| 3 | +### Features |
| 4 | + |
| 5 | +- **core**: Convert comment with only time tracking command, to action comment |
| 6 | +- **core**: Enable linking ticket sub models to parent model |
| 7 | +- **base**: Add oauth token required claim check to sso pipeline |
| 8 | +- **core**: TicketPermission must check if user has perm for create |
| 9 | +- **access**: remove super user check from centurion user function has_perm |
| 10 | +- **access**: remove super user check from tenancy permission |
| 11 | +- **core**: Add post_migration signal for cleaning up stale permissions |
| 12 | +- **core**: Add triage check within TicketBase Serializer |
| 13 | +- **core**: TicketComment ViewSet Permission_classes updated to require Ticket or SuperUser |
| 14 | +- **core**: Ticket ViewSet Permission_classes updated to require Ticket or SuperUser |
| 15 | +- **core**: Add TicketPermissions Class |
| 16 | +- **access**: Cache the tenancy within Tenancy Permission class |
| 17 | +- **access**: Adjust permissions for Tenancy mixin to be Tenancy or SuperUser |
| 18 | +- **core**: Update Markdown Serializer field to provide render data for UI |
| 19 | +- **itim**: Add Menu Feature Flag to model ProblemTicket |
| 20 | +- **itim**: Add Menu Feature Flag to model IncidentTicket |
| 21 | +- **itim**: Add Menu Feature Flag to model ChangeTicket |
| 22 | +- **python**: Update django 5.1.14 -> 5.1.15 |
| 23 | +- **core**: Task comment Permissions must also have ticket triage |
| 24 | +- **core**: Add parent_model to CenturionNote so that tenancy can be obtained during creation |
| 25 | +- **core**: Add ability to specify additional ViewSet permissions |
| 26 | +- **core**: remove `triage` permission from all ticket comment types |
| 27 | +- **itam**: Update `ticketmodel_device` serializer to corrrect inheritance. |
| 28 | +- **core**: Always return the sub-model serializer when accessing the TicketModel base serializer |
| 29 | +- **core**: Only add threads URL to comment if there are threads |
| 30 | +- **core**: Ticket Comment base endpoint to use sub-models serializer |
| 31 | +- **core**: Serializer model core.TicketCommentTask |
| 32 | +- **core**: migrations model core.TicketCommentTask |
| 33 | +- **core**: new model core.TicketCommentTask |
| 34 | +- **core**: Create an action comment when a dependency is removed from ticket |
| 35 | +- **core**: Create an action comment when a model link is removed from ticket |
| 36 | +- **core**: model audit_values must return ALL fields for a model |
| 37 | +- **core**: Add the ticket action comment signal |
| 38 | +- **core**: Add m2m field data to model get_audit_values function |
| 39 | +- **itim**: Add Feature Flag 2025-00011 for ProblemTicket |
| 40 | +- **itim**: Add Feature Flag 2025-00010 for IncidentTicket |
| 41 | +- **itim**: Add Feature Flag 2025-00009 for ChangeTicket |
| 42 | +- **itim**: Add Navigation entries for ticket models |
| 43 | +- **project_management**: Add Migrations for project task ticket models |
| 44 | +- **itim**: Add Migrations for ticket models |
| 45 | +- **project_management**: Add Serializer for model project_management.ProjectTaskTicket |
| 46 | +- **itim**: Add Serializer for model itim.IncidentTicket |
| 47 | +- **itim**: Add Serializer for model itim.ProblemTicket |
| 48 | +- **itim**: Add Serializer for model itim.ChangeTicket |
| 49 | +- **project_management**: Add model project_management.ProjectTaskTicket |
| 50 | +- **itim**: Add model itim.ProblemTicket |
| 51 | +- **itim**: Add model itim.ChangeTicket |
| 52 | +- **itim**: Add model itim.IncidentTicket |
| 53 | +- **core**: filter ticket linked models to that of the ticket viewing |
| 54 | +- **core**: Re-import new ticket model linking to slash commands |
| 55 | +- **core**: When a ticket depedency is added via ticket description, create Action comment |
| 56 | +- **core**: When a ticket depedency is added via comment, create Action comment |
| 57 | +- **python**: update django 5.1.13 -> 5.1.14 |
| 58 | +- **core**: Add New slash command for ticket dependencies to new ticket model |
| 59 | +- **core**: Updated Migrations to create model core.TicketDependency |
| 60 | +- **core**: Depreciate old ticket linked items |
| 61 | +- **core**: Depreciate old related tickets/ticket dependencies |
| 62 | +- **core**: Migrations to create model core.TicketDependency |
| 63 | +- **core**: Add URL Route for model core.TicketDependency |
| 64 | +- **core**: Add ViewSet for model core.TicketDependency |
| 65 | +- **core**: Add Serializer for model core.TicketDependency |
| 66 | +- **core**: Add model core.TicketDependency |
| 67 | + |
| 68 | +### Fixes |
| 69 | + |
| 70 | +- **docker**: use pip and apk cache from build |
| 71 | +- **core**: Correct which fields are read-only for both import and triage user |
| 72 | +- **human_resources**: signal centurion_user_add_entity must use log instead of stdout |
| 73 | +- **core**: User requires access to add/update ticket urgency field |
| 74 | +- **core**: if user lacks tenancy permissions dont process additional for ticket |
| 75 | +- Correct permission inheritence |
| 76 | +- **core**: Capture errors in perms_map for TicketComment ViewSet |
| 77 | +- **core**: TicketModel manager must inherit from TenancyManager |
| 78 | +- **access**: Always filter tenancy objects to tenancy list even if empty |
| 79 | +- **access**: During permission get_tenancy, use the parent model if one exists and the action=create |
| 80 | +- **access**: When checking tenancy permissions and a tenancy is required, ensure it exists |
| 81 | +- **access**: Capture exceptions within tenancy permissions |
| 82 | +- **access**: Function has_perms for user model must cater for obj or direct tenancy passed, inc no tenancy |
| 83 | +- **core**: Ticket sub-model must return display_name as markdown model_tag |
| 84 | +- **core**: Add missing ticket type fields to ticket comment category serializer |
| 85 | +- **core**: when fetching related model ensure the model is of the correct type |
| 86 | +- **core**: If replying to a ticket comment, the parent comment must be set as not closed |
| 87 | +- **core**: dont create modelticket link tables for sub-models |
| 88 | +- **core**: use correct var for solution comment when checking type |
| 89 | +- **core**: When creating a standard ticket comment, set its status to closed |
| 90 | +- **core**: When creating a ticket action comment, set its status to closed |
| 91 | +- **core**: When cleaning viewset model context, dont remove if not exists |
| 92 | +- **core**: Allow HTTP/DELETE on ticket_model_link endpoint |
| 93 | +- **core**: When cleaning up request context from model, only remove the modifications instead of replacing with clean |
| 94 | +- **api**: Use correct field to determine ticket rendering options |
| 95 | + |
| 96 | +### Refactoring |
| 97 | + |
| 98 | +- use get_organization function instead of property |
| 99 | +- **api**: remove superflous code paths |
| 100 | +- **core**: Add time tracking slash command for new ticket models |
| 101 | +- **core**: instead of throwing an error for wrong comment type, set it as per meta |
| 102 | +- **access**: All TenancyPermission.has_permission() to be within try..catch |
| 103 | +- **accounting**: Update modelticket serializer inheritence for AssetBase model |
| 104 | +- **settings**: Update modelticket serializer inheritence for ExternalLink model |
| 105 | +- **project_management**: Update modelticket serializer inheritence for ProjectType model |
| 106 | +- **project_management**: Update modelticket serializer inheritence for ProjectState model |
| 107 | +- **itim**: Update modelticket serializer inheritence for Service model |
| 108 | +- **itim**: Update modelticket serializer inheritence for Port model |
| 109 | +- **itim**: Update modelticket serializer inheritence for ClusterType model |
| 110 | +- **itim**: Update modelticket serializer inheritence for Cluster model |
| 111 | +- **itam**: Update modelticket serializer inheritence for SoftwareVersion model |
| 112 | +- **itam**: Update modelticket serializer inheritence for SoftwareCategory model |
| 113 | +- **itam**: Update modelticket serializer inheritence for Software model |
| 114 | +- **itam**: Update modelticket serializer inheritence for OperatingSystemVersion model |
| 115 | +- **itam**: Update modelticket serializer inheritence for OperatingSystem model |
| 116 | +- **itam**: Update modelticket serializer inheritence for ITAMAssetBase model |
| 117 | +- **itam**: Update modelticket serializer inheritence for DeviceType model |
| 118 | +- **itam**: Update modelticket serializer inheritence for DeviceModel model |
| 119 | +- **itam**: Update modelticket serializer inheritence for Device model |
| 120 | +- **core**: Update modelticket serializer inheritence for TicketCommentCategory model |
| 121 | +- **core**: Update modelticket serializer inheritence for TicketCategory model |
| 122 | +- **devops**: Update modelticket serializer inheritence for GitRepository model |
| 123 | +- **devops**: Update modelticket serializer inheritence for GitlabRepository model |
| 124 | +- **devops**: Update modelticket serializer inheritence for GithubRepository model |
| 125 | +- **devops**: Update modelticket serializer inheritence for GitGroup model |
| 126 | +- **devops**: Update modelticket serializer inheritence for FeatureFlag model |
| 127 | +- **config_management**: Update modelticket serializer inheritence for ConfigGroups model |
| 128 | +- **assistance**: Update modelticket serializer inheritence for KnowledgeBaseCategory model |
| 129 | +- **assistance**: Update modelticket serializer inheritence for KnowledgeBase model |
| 130 | +- **accounting**: Update modelticket serializer inheritence for AssetBase model |
| 131 | +- **access**: Update modelticket serializer inheritence for Tenant model |
| 132 | +- **access**: Update modelticket serializer inheritence for Role model |
| 133 | +- **human_resources**: Update modelticket serializer inheritence for Employee model |
| 134 | +- **access**: Update modelticket serializer inheritence for Person model |
| 135 | +- **access**: Update modelticket serializer inheritence for Contact model |
| 136 | +- **access**: Update modelticket serializer inheritence for Company model |
| 137 | +- **access**: Update modelticket serializer inheritence for Entity model |
| 138 | +- **api**: set mock viewset kwargs before calling model within ComonViewSet test cases |
| 139 | +- **access**: When checking a list of user permissions, check ALL permissions first, then return the result. |
| 140 | +- **access**: User permissions checks to use plural check instead of singular permission check |
| 141 | +- **core**: remove superflous function `get_permission_required` from ViewSet |
| 142 | +- **api**: Update ticket model linking to use the new ticket sub-models for markdown rendering |
| 143 | +- **core**: Adjust ticket fields name to be single word for fields assigned and subscribed |
| 144 | +- **core**: Use Centurion fileds history for tickets |
| 145 | +- **api**: Update ticket linked models metadata to use refactored model |
| 146 | +- **core**: Dont use link model serializer within slash command for linkmodel |
| 147 | +- **core**: move model validation from serializer to model for TicketDependency model. |
| 148 | + |
| 149 | +### Tests |
| 150 | + |
| 151 | +- **core**: Add functional test suite for slash command time tracking |
| 152 | +- **base**: OAuth Pipeline required claim Test Suite |
| 153 | +- **core**: Ticket Model Test Case to ensure that triage user can update their designated fields. |
| 154 | +- **core**: Ticket Model Test Case to ensure that import user can update their designated fields. |
| 155 | +- **core**: Test fields created and modified as part of Ticket models serializer checks |
| 156 | +- **core**: TicketPermission Test Cases based off of action and HTTP method |
| 157 | +- **core**: TicketPermission Unit Test Suite |
| 158 | +- **api**: Serializer Unit test case to ensure `<user>.is_superuser` is not called |
| 159 | +- **api**: Ensure that common permission function `has_object_permission` does not call `<user>.is_superuser` |
| 160 | +- **api**: Ensure that common permission function `has_permission` does not call `<user>.is_superuser` |
| 161 | +- **core**: Unit Test suite for serializer field Markdown |
| 162 | +- **core**: Ensure that if a ticket comment has no threads, no url is in the API response |
| 163 | +- **core**: Ensure that TicketModel Manager filters to those the use has access to |
| 164 | +- **core**: Ensure that a user whom is add/edit/delete/update a ticket task also has triage permissions |
| 165 | +- **core**: Test Cases for ModelTicket to ensure sub-models serializer inherit from parent serializers |
| 166 | +- **core**: Update testcase for triage permission check for TicketCommment models to fetch the correct ticket type |
| 167 | +- **core**: Exclude depreciated model `manufacturer` from ModelTicket tests |
| 168 | +- **core**: ensure that the _base_model attribute of the model_ticket models returns the actual base model |
| 169 | +- **core**: API Fields render functional Test Suite for model core.TicketCommentTaskl |
| 170 | +- **core**: ViewSet functional Test Suite for model core.TicketCommentTaskl |
| 171 | +- **core**: Model functional Test Suite for model core.TicketCommentTaskl |
| 172 | +- **core**: ViewSet unit Test Suite for model core.TicketCommentTaskl |
| 173 | +- **core**: Serializer unit Test Suite for model core.TicketCommentTaskl |
| 174 | +- **core**: Model unit Test Suite for model core.TicketCommentTaskl |
| 175 | +- **core**: Functional Test Cases to ensure that editing a ticket field creates an action comment |
| 176 | +- **core**: Functional Test Cases to ensure that a ticket dependency add/remove creates an action commend |
| 177 | +- **core**: Unit Test Suite for signal ticket_action_comment |
| 178 | +- **core**: Model Functional test case to ensure that when ticket when subscribers is updated an action comment is created |
| 179 | +- **core**: Model Functional test case to ensure that when ticket assignees is updated an action comment is created |
| 180 | +- **core**: Model Functional test case to ensure that when unlinked from ticket that an action comment is created on ticket |
| 181 | +- **core**: Functional model tests to ensure linking models to ticket via ticket comment creates an action comment |
| 182 | +- **core**: Add Unit ViewSet Test Suite for Centurion Audit |
| 183 | +- **core**: Add Unit Serializer Test Suite for Centurion Audit |
| 184 | +- **core**: Add Functional ViewSet Test Suite for Centurion Audit |
| 185 | +- **core**: Add Functional API Fields render Test Suite for Centurion Audit |
| 186 | +- **core**: Add Functional API Fields render Test Suite for Ticket Comment Category |
| 187 | +- **core**: Add Functional model Test Suite for Ticket Comment Category |
| 188 | +- **core**: Add Functional model Test Suite for Ticket Category |
| 189 | +- **core**: Add Functional API fields render Test Suite for Ticket Category |
| 190 | +- **core**: Add Unit Serializer Test Suite for Ticket Comment Category |
| 191 | +- **core**: Add Unit ViewSet Test Suite for Ticket Comment Category |
| 192 | +- **core**: Add Unit Serializer Test Suite for Ticket Category |
| 193 | +- **core**: Add Unit ViewSet Test Suite for Ticket Category |
| 194 | +- **core**: Add Functional ViewSet Test Suite for Ticket Comment Category |
| 195 | +- **core**: Add Functional ViewSet Test Suite for Ticket Category |
| 196 | +- **core**: Add Functional test suite for Link slash command |
| 197 | +- **core**: Add Ticket slash command test suit for relate command for ticket description |
| 198 | +- **core**: Add Ticket slash command test suit for relate command for ticket comment |
| 199 | +- **api**: Completed Test suite for API Metadata Fields |
| 200 | +- **core**: API MetaData Functional test suite for model TicketDependency |
| 201 | +- **api**: Initial Test suite for API Metadata Fields |
| 202 | +- **core**: ViewSet Functional test suite for model TicketDependency |
| 203 | +- **core**: API Fields render Functional test suite for model TicketDependency |
| 204 | +- **core**: Model Functional test suite for model TicketDependency |
| 205 | +- **core**: Serializer Unit test suite for model TicketDependency |
| 206 | +- **core**: ViewSet Unit test suite for model TicketDependency |
| 207 | +- **core**: Model Unit test suite for model TicketDependency |
| 208 | +- **core**: API functional permission test suite for model TicketDependency |
| 209 | + |
1 | 210 | ## 1.28.1 (2026-02-01) |
2 | 211 |
|
3 | 212 | ### Fixes |
|
0 commit comments