Skip to content

Releases: nofusscomputing/centurion_erp

1.29.0

09 Feb 07:07

Choose a tag to compare

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 triage permission from all ticket comment types
  • itam: Update ticketmodel_device serializer 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_required from 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...
Read more

1.28.1

01 Feb 01:21

Choose a tag to compare

1.28.1 (2026-02-01)

Fixes

  • core: When fetching model history, if value not a model use raw value
  • access: If migrations have not run when loading permissions, catch error gracefully
  • celery: Setup prometheus on main process only

Refactoring

  • docker: remove build artifacts from container layers
  • base: Limit errors to permission fetching loop

Images part of this release

The following images were built and published:

  • docker pull docker.io/nofusscomputing/centurion-erp:dev
  • docker pull docker.io/nofusscomputing/centurion-erp:0607dc13485757bc23fb86d55f11ca13aca5ed4a
  • docker pull docker.io/nofusscomputing/centurion-erp:1.28.1

1.28.0

23 Jan 04:28

Choose a tag to compare

1.28.0 (2026-01-23)

Images part of this release

The following images were built and published:

  • docker pull docker.io/nofusscomputing/centurion-erp:dev
  • docker pull docker.io/nofusscomputing/centurion-erp:356b85290dfec76bf362bdbf80b241bda93dd371
  • docker pull docker.io/nofusscomputing/centurion-erp:1.28.0

1.28.0-rc1

23 Jan 01:04

Choose a tag to compare

1.28.0-rc1 Pre-release
Pre-release

1.28.0-rc1 (2026-01-23)

Features

  • Build and Release python package
  • python: Update django 5.1.13 -> 5.1.15

Fixes

  • core: some models may not be centurion models, so use their pk
  • within settings import use relative
  • python: use module namespace for script
  • when fetching audit history, if A==B, try fetching history before validation
  • docker: remove pip uninstall prompt during build
  • docker: requirements_test was renamed to requirements_dev

Refactoring

  • build: split prod requirements further to docker
  • docker: Remove setuptools as its not required

Tests

  • core: use audit values func to ensure before and after the same for validation test
  • integration: fix. ensure test cont is rebuilt
  • integration: fix. use cont env var for checking hash
  • fix. ensure the var is cast bool
  • docker: Dont test work with settings.Debug=True
  • remove code migrated to pytest-simplified plugin

Images part of this release

The following images were built and published:

  • docker pull docker.io/nofusscomputing/centurion-erp:dev
  • docker pull docker.io/nofusscomputing/centurion-erp:37081a86750dbd733d805025b73303485a04fd3b
  • docker pull docker.io/nofusscomputing/centurion-erp:1.28.0-rc1

1.27.0

02 Nov 07:13

Choose a tag to compare

1.27.0 (2025-11-02)

feat

  • core: Migration signal to migrate manufacturers to companies
  • itam: Add Company field to model itam.Software
  • itam: Add Company field to model itam.OperatingSystem
  • itam: Add Company field to model itam.DeviceModels
  • access: Add Global settings option to set company to global organization

Refactoring

  • itam: Migrate Manufacturer management command to use access.company model

Tests

  • base: Correct migration update so it works properly
  • access: Add Test cases to Company model to ensure that global org is correctly set
  • access: Add Functional Model Test Suite for Company model

Images part of this release

The following images were built and published:

  • docker pull docker.io/nofusscomputing/centurion-erp:dev
  • docker pull docker.io/nofusscomputing/centurion-erp:a6a7f76b40ad415c79de042382ec4b92a05983c4
  • docker pull docker.io/nofusscomputing/centurion-erp:1.27.0

1.26.1

19 Oct 05:25

Choose a tag to compare

1.26.1 (2025-10-19)

Refactoring

  • human_resources: Adjust employee id field, int -> bigint

Images part of this release

The following images were built and published:

  • docker pull docker.io/nofusscomputing/centurion-erp:dev
  • docker pull docker.io/nofusscomputing/centurion-erp:da5a061d75494b2e638a5cf48cfbb6f85650b6b7
  • docker pull docker.io/nofusscomputing/centurion-erp:1.26.1

1.26.0

18 Oct 07:00

Choose a tag to compare

1.26.0 (2025-10-18)

feat

  • core: When a ticket comment is created, associate with currently authenticated user
  • core: ensure that when attempting to link sub-model reqs are met
  • human_resources: Add user field to Employee details page
  • human_resources: Add Migration signal to ensure that all users have an Employy entity created.
  • core: Add Linking of parent models when sub-model is being created
  • human_resources: Migration for field user to Employee Entity model
  • human_resources: Add field user to Employee Entity model
  • human_resources: remove feature flag 2025-00005

Fixes

  • core: Whn attempting to link a model, if it already has an id, dont attempt to link to a parent
  • human_resources: when adding users as an employee as part of migration signal auto-generate the names if hey are blank
  • access: Entity qs must e cached
  • itam: Oranizatio field must be null if not defined for Software model
  • core: When validating a ticket comment always set its tenancy to the tickets tenancy
  • core: when saving a model if no before data is found (=None) set to empty dict by default
  • access: when fetching data, determine type by model
  • core: When fetching model history during save, when no pk exists, always assume creatung model
  • access: Contacts must be filtered to those who opt for directory listing
  • access: when setting display name for entiry models, use get_related_model function

Refactoring

  • core: When generating entity display name, look in the entity type class for it first
  • core: migrations for TicketBase field to be Entity model
  • core: migrate opened_by field to be Entity model
  • access: organization field must be null for tenancy_abstract_model
  • core: update get_url functions to use get_related_model function
  • migrate function get_related_model to Centurion mixin
  • migrate function get_related_field_name to Centurion mixin

Tests

  • base: Functional test cases to ensure that when creating and edting a model that the supplied data matches what's saved
  • core: Ensure ticket comment cant be created if the user has no entity assigned
  • core: Ensure ticket cant be created if the user has no entity assigned
  • access: Test cases to ensure that child model links to existing person model
  • access: Test cases to ensure that child model links to existing contact model
  • access: remove test for validation of duplicate
  • human_resources: Update Test suites for employee to perform fiels User checks
  • core: Remove centrion mixin function test to check returning related model name
  • human_resources: Unit ViewSet test suite for Employee model
  • human_resources: Unit serializer test suite for Employee model
  • human_resources: Functional model test suite for Employee model

Images part of this release

The following images were built and published:

  • docker pull docker.io/nofusscomputing/centurion-erp:dev
  • docker pull docker.io/nofusscomputing/centurion-erp:e04a196ec0389531843210b6a777fb64605f57c8
  • docker pull docker.io/nofusscomputing/centurion-erp:1.26.0

1.25.0

10 Oct 06:28

Choose a tag to compare

1.25.0 (2025-10-10)

feat

  • python: update social-auth-app-django 5.4.1 -> 5.6.0
  • python: Upgrade django 5.1.12 -> 5.1.13
  • base: prevent python depreciation warnings within the docker container
  • core: add model manager ModelTicket
  • core: Add new method for processing link slash command
  • core: enable posting to modelticket endpoint
  • Add field model to modelticket setializers
  • core: Make model core.ModelTicketMetaModel so ticket only assigned once
  • core: Add URL Route for model core.ModelTicketMetaModel
  • core: Add URL Route for model core.ModelTicket again
  • core: order model ModelTicket by created date
  • core: Add Migrations for model core.ModelTicket
  • core: Add URL Route for model core.ModelTicket
  • core: Add ViewSet for model core.ModelTicket
  • core: Add serializer for model core.ModelTicket
  • core: Add new model core.ModelTicket
  • core: Do not allow a ticket comment to be deleted when it has threads
  • core: Add TicketBase model permissions import, purge and triage

Fixes

  • core: Ensure model_type=tenant selects the right type
  • core: when validating ModelTicket uniqueness, exclude self
  • core: Correct model field name and description for ModelTicket
  • ModelTicket sub-Serializers require field ticket be writable
  • api: when converting viewset exception, check msg attr exists
  • core: TicketModel ViewSerializer to inherit from bas ViewSerializer
  • core: ret model_suffix to ViewSet
  • core: Field change detection for ticket must cater for foriegn field ids
  • core: When adding a comment of TicketCommentSolution, it must solve the ticket
  • core: Add delete method to TicketCommentBase
  • core: TicketCommentBase model method clean must call super
  • settings: AppSettings model method clean must call super
  • itim: Service model method clean must call super
  • itam: Software model method clean must call super
  • itam: SoftwareCategory model method clean must call super
  • itam: DeviceType model method clean must call super
  • itam: DeviceModel model method clean must call super
  • core: TicketBase model method clean must call super
  • core: Manufacturer model method clean must call super

Refactoring

  • core: move ticket sub url so it's fully-dynamic

Tests

  • core: Unit Test cases for ModelTicket Serializer Validate method
  • core: Unit Test cases for ModelTicket Serializer Validate method
  • core: ModelTicket Manager Test Suite
  • refactor fixtures to fixture factories
  • api: Ensure when checking queryset filtered results all of the test data is available.
  • core: Add functional model test to ensure ticket and model can only be assigned once
  • core: Add functional ViewSet Test suite for ALL ModelTickets models
  • core: Add functional Model Test suite for ALL ModelTickets models
  • core: Add functional API Permissions Test suite for ALL ModelTickets endpoints
  • core: Add API Fields REnder Functional Test suites for model ModelTicket
  • core: Add ViewSet Unit test suite for model ModelTicketMetaModels
  • core: Add Serializer Unit test suite for model ModelTicketMetaModels again
  • core: Add Serializer Unit test suite for model ModelTicketMetaModels
  • core: Add Serializer Unit test suite for model ModelTicketMeta
  • core: Add Model Unit test suite for model ModelTicketMetaModels
  • core: Add Model Unit test suite for model ModelTicketMetaModel
  • core: Correct Serializer Unit test case for model ModelTicket is_valid
  • core: Add Serializer Unit test suite for model ModelTicket
  • core: Add ViewSet Unit test suite for model ModelTicket
  • core: Add Unit test case for model attribute _ticket_linkable
  • core: Add Unit test suite for model ModelTicket
  • core: Add TicketCommentAction Unit Serializer test suite
  • core: Add TicketCommentSolution Unit Serializer test suite
  • core: Add TicketCommentSolution functional ViewSet test suite
  • core: Add TicketCommentAction functional ViewSer test suite
  • core: Add TicketCommentSolution functional model test cases for threads
  • core: Add TicketCommentAction functional model test cases for threads
  • core: Add TicketBaseComment functional model test cases for threads
  • core: Update TicketCommentSolution unit model test suite
  • core: Update TicketCommentSolution unit ViewSet test suite
  • core: Update TicketCommentAction unit ViewSet test suite
  • core: Update TicketCommentBase unit ViewSet test suite
  • core: Add TicketCommentBase unit Serializer test suite
  • itim: Remove skip for TicketCommentBase unit model test suite
  • itim: Add TicketCommentBase functional ViewSet test suite
  • itim: Remove skip for TicketCommentBase Functional api_fields test suite
  • itim: add RequestTicket Functional model test suite
  • itim: add SLMTicket Functional model test suite
  • core: skip clean_fields method super call test case as model is abstract for model MetaAbstract Note
  • core: skip clean_fields method super call test case as model is abstract for model MetaAbstract Audit
  • Add test cases to unit Model test suite for all model clean fields methods along inheritance chain
  • core: Add sub-Model unit test cases for model TicketBase
  • core: Model functional test cases for model TicketBase clean function
  • itim: Update viewset functional test suite for model RequestTicket
  • itim: Update viewset functional test suite for model SLMTicket
  • core: Update viewset functional test suite for model TicketBase
  • core: Update metadata functional test suite for model TicketBase
  • core: Model unit test case for model TicketBase checking milstone choices
  • core: Re-Enable Model unit test suit for model TicketBase
  • core: Add ViewSet unit test suit for model TicketBase
  • itim: Add ViewSet unit test suit for model SLMTicket
  • itim: Add Serializer unit test suit for model SLMTicket
  • itim: Add ViewSet unit test suit for model RequestTicket
  • itim: Add Serializer unit test suit for model RequestTicket
  • core: Add ViewSet unit test suit for model TicketBase
  • core: Add Serializer unit test suit for model TicketBase

Images part of this release

The following images were built and published:

  • docker pull docker.io/nofusscomputing/centurion-erp:dev
  • docker pull docker.io/nofusscomputing/centurion-erp:43447ec6e2600d131598316cad992147898d004c
  • docker pull docker.io/nofusscomputing/centurion-erp:1.25.0

Images part of this release

The following images were built and published:

  • docker pull docker.io/nofusscomputing/centurion-erp:dev
  • docker pull docker.io/nofusscomputing/centurion-erp:43447ec6e2600d131598316cad992147898d004c
  • docker pull docker.io/nofusscomputing/centurion-erp:1.25.0

1.24.1

17 Sep 12:11

Choose a tag to compare

1.24.1 (2025-09-17)

Fixes

  • base: remove gunicorn syslog address
  • feature_flag: when fetching a feature flag and it's not enabled, ALWAYS return false
  • base: gunicorn logging config setup
  • feature_flag: use get to fetch a potentially empty dict
  • base: Dont add syslog handler when no address is supplied

Refactoring

  • base: set gunicorn to only log errors
  • base: configure handlers for error log
  • base: Move supervisor app logs to own dir for clarity
  • base: Log ALL errors to own file in addition to specified log
  • base: Add logging levels to base class

Tests

  • devops: Ensure that feature flags are not obtained during HTTP request processing

Images part of this release

The following images were built and published:

  • docker pull docker.io/nofusscomputing/centurion-erp:dev
  • docker pull docker.io/nofusscomputing/centurion-erp:7c7426beb1e0723a04dfa0b005371d93bfe5332b
  • docker pull docker.io/nofusscomputing/centurion-erp:1.24.1

1.24.0

13 Sep 15:12

Choose a tag to compare

1.24.0 (2025-09-13)

feat

  • base: Add Optional Trace Debugging to Centurion

Images part of this release

The following images were built and published:

  • docker pull docker.io/nofusscomputing/centurion-erp:dev
  • docker pull docker.io/nofusscomputing/centurion-erp:75a4b8381fe6355861c01a02ffc7a9ea98be433a
  • docker pull docker.io/nofusscomputing/centurion-erp:1.24.0