Releases: nofusscomputing/centurion_erp
1.17.1
1.17.1 (2025-06-02)
Fixes
- base: Add python metrics to prometheus exporter
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:4fb94bdd6dae9cf23b924f52b9df20686d739ac8
docker pull docker.io/nofusscomputing/centurion-erp:1.17.1
1.17.0
1.17.0 (2025-05-16)
⚠️ Important 🛑
As Organizations was renamed to Tenant the migrations will have to be done in two stages. The migrations commands are:
python manage.py migrate access 0007_rename_organization_tenant
This does the table rename and triggers the creation of the new permissions.- python manage.py migrate
This will complete the migrations
Note: If you fail to do the migrations in two steps you will receive an error stating django.contrib.auth.models.Permission.DoesNotExist: Permission matching query does not exist
. If you jumped the gun and failed to run the migrations as above. Roll the migrations back by running python manage.py migrate access 0007_rename_organization_tenant
feat
- access: model access.Company feature flag
2025-00008
- access: URL route for model access.Company
- access: Migration for model access.Company
- access: Serializer for model access.Company
- access: New model access.Company
- access: Organization -> Tenant Permission Migration
- docker: Serve a robots.txt file for NO indexing
- access: Organization -> Tenant Permission Migration
- base: Add var
AUTH_USER_MODEL
to settings - core: Add Action comments on ticket change
- core: Remove add, change and delete permissions for model TicketCommentAction from permission selector
- core: Serializer for model TicketCommentAction
- core: Migrations for model TicketCommentAction
- core: New model TicketCommentAction
- core: Setup serializer to meet requirements
- core: Setup model to meet requirements
- api: Add exception logging to ViewSetCommon
- python: Upgrade DRF Spectacular 0.27.2 -> 0.28.0
- python: Upgrade DRF 3.15.2 -> 3.16.0
- core: When processing slash command duration, cater for new ticket models
- api: Add Logging function to Common ViewSet
- access: Add Logging function to Tenancy model
- base: Enable user to customize log file location
- core: Do validate the comment_type field for TicketCommentBase
- itam: Add Feature Flag
2025-00007
ITAMAssetBase - itam: Add endpoint for ITAMAssetBase
- Model tag migration for Asset and IT Asset
- itam: Model tag for ITAsset
- accounting: Model tag for Asset
- accounting: Add app label to kb articles for notes
- accounting: Migrations for notes model for AssetBase
- accounting: Migrations for history model for AssetBase
- accounting: Notes Viewset for AssetBase
- accounting: Notes Serializer for AssetBase
- accounting: Notes model for AssetBase
- accounting: History model for AssetBase
- itam: Serializer for ITAssetBase
- itam: Migrations for ITAssetBase
- itam: Add Model ITAssetBase
- accounting: Viewset for Assets
- accounting: Serializer for model AssetBase
- accounting: Migrations for model AssetBase
- accounting: Add Model AssetBase
Fixes
- api: Dont try to access attribute if not exist in common viewset
- api: Dont try to access attribute if not exist in common viewset
- api: Correct ViewSet Sub-Model lookup
- core: Only take action on ticket comment if view exists
- api: Ensure multi-nested searching for sub-models works
- core: ensure slash command is called on ticket description
- core: Spent slash command is valid for time spent
- core: Correct logic for TicketCommentSolution
- core: Correct logic for TicketCommentBase
- accounting: Ensure correct sub-model check is conducted within model type
- itam: ensure RO field asset_type is set
- itim: Ensure that itam base model is always imported
Refactoring
- human_resources: Update Functional ViewSet to use PyTest for Employee Model
- Access: Update Functional ViewSet to use PyTest for Person Model
- Access: Update Functional ViewSet to use PyTest for Entity Model
- Access: Update Functional ViewSet to use PyTest for Contact Model
- Access: Update Functional Permission to use PyTest for Person Model
- Access: Update Functional Permission to use PyTest for Entity Model
- Access: Update Functional Permission to use PyTest for Contact Model
- Access: Update Functional Serializer to use PyTest for Contact Model
- Access: Update Functional Serializer to use PyTest for Entity Model
- Access: Update Functional Serializer to use PyTest for Person Model
- human_resources: Update Functional Serializer to use PyTest for Employee Model
- human_resources: Update Functional Permissions to use PyTest for Employee Model
- human_resources: Update Functional Metadata to use PyTest for Employee Model
- access: Update Functional Metadata to use PyTest for Person Model
- access: Update Functional Metadata to use PyTest for Entity Model
- access: Update Functional Metadata to use PyTest for Contact Model
- access: Update Model Entity to use PyTest for Model Test Suite
- access: Update Model Contact to use PyTest for Model Test Suite
- access: Update Model Person to use PyTest for Model Test Suite
- human_resources: Update Model Employee to use PyTest for Model Test Suite
- human_resources: Update Model Employee to use PyTest API Fields Render
- access: Update Model Person to use PyTest API Fields Render
- access: Update Model Contact to use PyTest API Fields Render
- access: Update Model Entity to use PyTest API Fields Render
- access: Rename model Organization -> Tenant
- settings: Update all references to
User
to useget_user_model()
- project_management: Update all references to
User
to useget_user_model()
- itam: Update all references to
User
to useget_user_model()
- devops: Update all references to
User
to useget_user_model()
- core: Update all references to
User
to useget_user_model()
- config_management: Update all references to
User
to useget_user_model()
- assistance: Update all references to
User
to useget_user_model()
- app: Update all references to
User
to useget_user_model()
- api: Update all references to
User
to useget_user_model()
- accounting: Update all references to
User
to useget_user_model()
- access: Update all references to
User
to useget_user_model()
- access: when fetching parent object, use the parent_model get function
- api: Limit url pk regex to ensure the value is a number
Tests
- access: Functional ViewSet Test Suite Company model
- access: Functional Serializer Test Suite Company model
- access: Functional Permissions Test Suite Company model
- access: Functional MetaData Test Suite Company model
- access: ViewSet Test Suite Company model
- access: API field render Test Suite Company model
- access: Model Test Suite Company model
- core: Unit viewset Test Cases for TicketCommentAction model
- core: Unit model Test Cases for TicketCommentAction model
- core: Unit API Render Test Cases for TicketCommentAction model
- core: Interim Functional model Test Case TicketCommentAction
- core: Ensure that a ticket milestone comes from the same assigned project
- core: SKIP Tests TicketBase Description Slash command Checks
- core: TicketBase Description Slash command Checks
- core: TicketBase Remaining Serializer Chacks
- core: Partial functional Model Test Suite covering some slash commande for TicketCommentSolution
- core: ensure ticket is un-solved for ticketcomment unit api render fields check
- core: ensure slash command is called on ticket comment
- core: Unit ViewSet Test Suite for TicketCommentSolution
- core: Unit ViewSet Test Suite for TicketCommentBase
- core: Skip Related slash command checks until migrating tickets to new model
- core: Add ability to unit api field rendering test case for second api request if required
- core: Partial Functional Model test cases (Slash Commands) for TicketCommentBase
- core: Functional Model test cases (Slash Commands) for TicketBaseModel
- core: Partial Slash Command re-write
- core: correct field so its valid for unit TicketCommentBase model
- core: Unit API Fields Render for TicketCommentSolution model
- core: Unit API Fields Render for TicketCommentBase model
- core: Unit Model assert save and call are called for TicketBase
- core: Unit Model Checks for TicketCommentSolution
- core: Unit Model Checks for TicketCommentBase
- itam: test meta attribute itam_sub_model_type for ITAMBaseModel
- itam: Dont use constants where variables should be used
- itam: Remaining Unit Model test cases for AssetBase
- accounting: Remaining Unit Model test cases for AssetBase
- itam: Functional ViewSet Test Cases for ITAMAssetBase
- itam: Functional Serializer Test Cases for ITAMAssetBase
- itam: Functional Permissions Test Cases for ITAMAssetBase
- itam: Functional Metadata Test Cases for ITAMAssetBase
- itam: Functional History Test Cases for ITAMAssetBase
- accounting: Functional ViewSet Test Cases for AssetBase
- accounting: Functional Serializer Test Cases for AssetBase
- accounting: Functional Permissions Test Cases for AssetBase
- accounting: Functional Metadata Test Cases for AssetBase
- accounting: History Test Cases for AssetBase
- add missing merge of add_data for api permissions tests
- remove ticket only vars from api permissions tests
- api: dont use constants for variable data
- correct viewset tests
- itam: Unit Viewset checks for AssetBase Model
- core: Add missing fields is_global checks for ticket base
- api: Add submodel url resolution for metadata
- itam: Unit API Fields checks for ITAM AssetBase Model
- **ac...
1.16.0
1.16.0 (2025-05-04)
feat
- core: Add ViewSet for Ticket Comments
- project_management: Depreciate Project Task Ticket Endpoint
- itim: Depreciate Problem Ticket Endpoint
- itim: Depreciate Incident Ticket Endpoint
- itim: Depreciate Change Ticket Endpoint
- assistance: Depreciate Ticket Comment
- assistance: Depreciate Request Ticket Endpoint
- core: Add routes for Ticket Comments
- core: update ticket serializer to use new comment base url
- core: Add permissions
import
,purge
andtriage
to model TicketCommentSolution - core: Add permissions
import
,purge
andtriage
to model TicketCommentBase - core: Filter ticket_comment_model routes to those defined in
Meta.sub_model_type
- core: Filter ticket_model routes to those defined in
Meta.sub_model_type
- access: Filter entity_model routes to thos defined in
Meta.sub_model_type
- core: Serializer for TicketCommentBase
- core: Serializer for TicketCommentSolution
- core: Ticket Comment Get URL functions
- core: Ticket Comment Validation for comment_type
- core: Update choices fields for TicketCommentBase model
- core: init for model TicketCommentSolution
- core: Migrations for choice fields for TicketBase model
- core: Migrations for model TicketCommentSolution
- core: Update choice fields for TicketBase model
- core: New model TicketCommentSolution
- api: when fetching related_object, default to base_model for SubModelViewSet
- Add field
Meta.sub_model_type
to sub-models - core: New interim model TicketCommentSolution
- core: add ticket routes
- itim: serializer for SLMTicketBase
- itim: Serializer for RequestTicket
- itim: migrations for RequestTicket
- itim: New Model RequestTicket
- itim: migration for SLMTicketBase
- itim: New Model SLMTicketBase
- core: migrations for TicketCommentBase
- core: New Model TicketCommentBase
- core: viewset for TicketBase
- core: serializer for TicketBase
- core: migrations for TicketBase
- core: New Model TicketBase
- project_management: add estimation field to project api fields
- human_resources: nav menu entries for Employee
- human_resources: Serializer for Employee
- human_resources: Migration for Employee
- human_resources: New model Employee
- devops: add missing api index menu entry for devops
- access: add missing nav menu entries for entities
- human_resources: add module to perms selector
Fixes
- test: correct typo in attribute parameterized_
- core: Ticktet comment can have empty body
- core: If model does not save history, dont attempt to cache before
- itam: provide return_url as part of software version meta
- itim: correct ticket_slm serializer
- itim: correct ticket_request serializer
- api: SubModelViewSet.related_objects must be the same class as the base model
- access: Ensure related model is a sub-model
- human_resources: Correct history link generation and add docs
- human_resources: Correct history link generation
- access: add missing attribute to Tenancy object
Refactoring
- test: rewrite model unit tests to use PyTest
- test: Update test parameterization
- api: SubModelViewSet must inherit from ModelViewSet as it's an extension
- core: rename ticket model filename in preparation for base ticket model
- access: migrate sub-model viewset logic to common
- project_management: add duration field to project api fields
- human_resources: Move employee details to its own section
Tests
- core: Serializer Validation for ticket status change for TicketBase model
- core: Prevent Closing / Solving of TicketBase Model if not ready
- itim: Incomplete Model Unit Tests for RequestTicket
- itim: Incomplete Model Unit Tests for SLMTicketBase
- core: Incomplete Model Unit Tests for TicketBase
- itim: RequestTicket Updated, yet incomplete Test Suite for Serializer
- itim: SLMTicketBase Updated, yet incomplete Test Suite for Serializer
- core: TicketBase Updated, yet incomplete Test Suite for Serializer
- Correct Test Suite for Serializer for models TicketBase, TicketRequest and TicketSLM
- itim: RequestTicket Initial Test Suite for Serializer
- itim: SLMTicket Initial Test Suite for Serializer
- core: TicketBase Initial Test Suite for Serializer
- core: SLMTicket Test Suite for ViewSet
- core: SLMTicket Test Suite for Metadata
- core: Request Test Suite for ViewSet
- core: Request Test Suite for Metadata
- core: TicketBase Test Suite for ViewSet
- core: TicketBase Test Suite for Metadata
- api: update test cases for SubModelViewSet Base Test Class
- itim: RequestTicket ViewSet Test Suite
- core: TicketBase ViewSet Test Suite
- api: Incomplete SubModelViewSet Test Cases
- api: SubModelViewSet Test Suite Setup
- correct tests from Meta.sub_model_type changes
- correct serializer imports from recent file renames
- Fixture for creating model with random data
- itim: API Field checks for TicketSLMBase
- itim: API Field checks for TicketRequest
- core: API fields Tests for TicketBase
- core: API fields Unit Test Suite
- core: Correct model notes test suite
- core: API Permission Test Cases for ticket_base model
- api: add API Permission Test Cases
- access: Correct history link test cases
- project_management: Add test cases for api field render for model fields
estimation_project
andduration_project
- human_resources: History Serializer and ViewSet Functional test suites for employee
- human_resources: APIv2, History, Model and ViewSet Unit test suites for employee
- Migrate models to use refactored model tests
- Consolidate All model tests to remove duplicates and to simplify
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:975a71bdd695c7c20eb9a804cb277805c82e5a94
docker pull docker.io/nofusscomputing/centurion-erp:1.16.0
1.15.1
1.15.1 (2025-04-10)
Fixes
- python: Downgrade django 5.2 -> 5.1.8
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:04780767c006d128d9b5ce217001c6192b8b0bf3
docker pull docker.io/nofusscomputing/centurion-erp:1.15.1
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:04780767c006d128d9b5ce217001c6192b8b0bf3
docker pull docker.io/nofusscomputing/centurion-erp:1.15.1
1.15.0
1.15.0 (2025-04-10)
feat
- settings: Move Ticket Comment Category from settings to ITOps menu
- settings: Move Ticket Category from settings to ITOps menu
- access: place roles nav behind feature flag 2025-00003
- access: place directory nav behind feature flag 2025-00002
- accounting: add new module
- access: Ensure that the same person cant be created more than once
- access: Place Roles Model behind feature flag
2025-00003
- access: When querying permissions, select related field
content_type
- core: Model tag for Access/Role
- access: Model Role notes endpoint
- access: Add navigation entry for roles
- access: Model Role History migrations
- access: Add model Role History
- access: Role Notes model viewset
- access: Role Notes model serializer
- access: Model Role Notes migrations
- access: Add model Role Notes
- access: Role model viewset
- access: Role model serializer
- access: Model Role migrations
- access: Add model Role
- python: Upgrade Django 5.1.7 -> 5.2
- access: Place Entity URLs behind feature flag
2025-00002
- access: Add detail page layout for contact model
- access: Add Menu entry for corporate directory
- access: Add back_url to Entity metadata
- core: Add Entity model tag
- access: Update Entity field
entity_type
if it does not match the entity type - access: All Entity models to use the entity history endpoint
- access: Enable specifying the history model to use for audit history for a model
- access: Enable specifying the kb model to use for linking kb article to a model
- access: All Entity models to use the entity notes endpoint
- access: Enable specifying the notes
basename
for a model - access: ViewSet for Entity Notes model
- access: Serializer for Entity Notes model
- access: new model Entity Notes
- access: New model Entity History
- access: Add Entity URL routes
- access: new serializer Contact
- access: new model Contact
- access: new serializer Person
- access: new model Person
- access: new ViewSet for for Entity and sub-entities
- access: new serializer Entity
- access: new model Entity
- human_resources: Add navigation menu entry for Human Resources (HR)
- human_resources: Add module Human Resources (HR) to API Urls
- base: Add module Human Resources (HR) to installed apps
- Add module Human Resources (HR)
Fixes
- api: Correct documentation link to use models verbose name
- feature_flag: cater for settings flag overrides
- access: Add missing field directory to contact model
- settings: Add Application Settings to Admin page
- access: Remove app_namespace from Entity
- access: add missing tenancy object fields to non-tenancy object models
- core: Dont attempt to fetch history related objects if no history exists
- api: Dont attempt to access kwargs if not exists within common serializer
Refactoring
- core: When saving history, ensure field
_prefetched_objects_cache
is not included
Tests
- settings: Correct nav menu entry for Ticket Category and Ticket Comment Category
- access: Ensure Model Contacts inherits from Person Model
- access: Functional Test Suite for Contact API Metadata, API Permissions and ViewSet
- access: Functional Test Suite for Contact serializer
- access: Functional Test Suite for Contact history
- access: Correct Entity and person functional Test Suite so sub-model testing works
- access: Correct table_fields test case to cater for dynamic field
- access: Unit Test for Contact ViewSet
- access: Unit Test for Contact model
- access: Unit Test for Contact history API field checks
- access: Unit Test for Contact API field checks
- access: Unit Test for Person Tenancy Object
- access: Correct Entity and person unit Test Suite so sub-model testing works
- access: Entity Function Serializer test cases
- access: Person Model field test cases
- access: Functional Test for Person ViewSet, Permissions and Metadata
- access: Functional Test for Person History
- access: Correct Entity Function Test Suite so sub-model testing works
- access: Unit Test for Person ViewSet
- access: Unit Test for Person Model
- access: Unit Test for Person History API fields
- access: Unit Test for Person API fields
- access: Unit Test for Person Tenancy Object
- access: Correct Entity Test Suite so sub-model testing works
- app: exclude any field check that ends in
_ptr_id
- access: Remove teardown from Function Test cases for Role serializer
- access: Test cases for Role serializer
- access: Function Test cases for Role SPI Permissions, ViewSet and Metadata
- access: Function Test cases for Role History
- access: Unit Test case to ensure Role is by organization
- access: Unit Test case to ensure Role cant be set as global object
- access: Unit Test cases for Role ViewSet
- access: Unit Test cases for Role model
- access: Unit Test cases for Role History API v2
- access: Unit Test cases for Role API v2
- access: Unit Test cases for Role Tenancy Object
- During testing add debug_feature_flags so object behind can be tested
- access: Notes ViewSet Functional Tests for Entity Model
- access: Notes API Field Functional Tests for Entity Model
- access: Correct functional ViewSet test suite for Entity model
- access: History functional Tests for Entity model
- access: PermissionsAPI, ViewSet and Metadata Tests for Entity model
- access: Model test cases for Entity
- access: API Rendering test cases for Entity model
- api: Ensure that when mocking the request the viewset is instantiated
- access: History tests for Entity model
- access: ViewSet tests for Entity model
- access: Tenancy object test for Entity 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:db25eabfdd0662c9f56aeb1d6466a3c8e5711748
docker pull docker.io/nofusscomputing/centurion-erp:1.15.0
1.14.0
1.14.0 (2025-03-29)
feat
- itops: Add navigation menu
- New Module ITOps
- devops: Ensure GitHub Groups can't be nested
- devops: Models Git Repository must use organization from
git_group
as must group if parent set - devops: Add git provider badge to git_group table fields
- devops: Add git provider badge to git_repository table fields
- devops: Add Git GRoup to navigation
- itam: Add
back_url
to Software Version ViewSet - itam: Add
back_url
to Operating System ViewSet - devops: Add
page_layout
to Git Group model - devops: Add
page_layout
to GitLab repository model - devops: Add
page_layout
to GitHub repository model - devops: git_repository ViewSet updated to fetch queryset based off of repository provider
- devops: Add ti git_repository ViewSet return and back urls
- devops: Make fields
provider
andprovider_id
unique_together for git_repository model - devops: Add fields to ALL git_repository serializers
- devops: Add fetching of URL to base git_repository model
- api: Enable fetching of app_namespace from model
- access: Add function get_page_layout
- feature_flag: Provide user with ability to override feature flags
- base: Add middleware feature_flag
- devops: Disable notes for GIT Repository Base Model
- devops: Add git_repository model tag migration
- devops: Add git_repository as a model that can be linked to a ticket
- devops: Git Group Notes Migration
- devops: Git Group Notes ViewSet
- devops: Git Group Notes Serializer
- devops: Git Group Notes Model
- devops: GitHub and GitLab Repository Notes Migrations
- devops: GitLab Repository Notes Viewset
- devops: GitHub Repository Notes Viewset
- devops: GitLab Repository Notes Serializer
- devops: GitHub Repository Notes Serializer
- devops: GitLab Repository Notes Model
- devops: GitHub Repository Notes Model
- devops: Git Group History Migrations
- devops: Git Group History
- devops: GitLab and GitHub Repository History Migrations
- devops: GitLab Repository History
- devops: GitHub Repository History
- devops: [2025-00001] Git Group and Repositories URLs
- devops: Git Group and Repositories Migrations
- devops: GIT Group ViewSet
- devops: GIT Group Serializer
- devops: GIT Group Model
- devops: GIT Repositories Viewset
- devops: GitLab Serializer for git repositories
- devops: GitHub Serializer for git repositories
- devops: Base Serializer for git repositories
- devops: GitLab Repository Model
- devops: GitHub Repository Model
- devops: Base model for git repositories
- core: Enable slash command related ticket to have multiple ticket references
- core: Enable slash command linked model to have multiple models
- core: process ticket slash commands by line
- core: Migrations for new slash commands
- project_management: Add project_state slash command
- core: Add ticket_comment_category slash command
- core: Add ticket_category slash command
- itam: when displaying software version, add prefix with software name
- itam: Add markdown tag $software_version
- itam: Enable ticket tab on software version page
Fixes
- devops: Correct git_group serializer parameter name
- devops: Correct field path to no be unique for git_repository
- feature_flag: if over_rides not set ensure val set to empty dict
- devops: git_group serializers must define fields
- devops: git_group serializers must return urls
- devops: Correct git_repository notes urls
- devops: Correct git_repository url regex
- devops: Correct ViewSerializer for GitLab Repository
- devops: Correct ViewSerializer for GitHib Repository
- devops: Correct model git_group modified field name part 2
- devops: Correct model git_group modified field name
- api: Fetching of serializer_class must be dynamic
- core: Don't create an empty ticket comment if the body is empty when slash commands removed
- core: when processing slash commands trim each line prior to processing
- core: slash command NL char is
\r\n
not\n
, however support both - core: When processing slash commands trim whitespace on return
- core: Ensure linked ticket models are unique
- itam: Add back url to software_version model
Refactoring
- devops: remove model unique_together constraint for git group and repository
- devops: Field
provider_id
must not be user editable for git group or repository - api: mv _nav property to function get_nav_items
Tests
- api: Correct test cases for view_name and view_description
- Refactor all ViewSet Unit Test cases to use new test cases class
- api: Common ViewSet classes Tests and Test cases for classes that inherit them
- api: correct nav menu setup to use mock request
- core: un-mark tests as skipped so that multiple linked items per ticket can be tested
- core: correct ticket linked item to prevent duplicate creation
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:b7880de54d55be7b5ceb4256df753351ced6fcf2
docker pull docker.io/nofusscomputing/centurion-erp:1.14.0
1.13.1
1.13.1 (2025-03-17)
Fixes
- devops: After fetching feature flags dont attempt to access results unless status=200
- docker: only download feature flags when not a worker
- devops: Use correct stderr function when using feature_flag management command
- devops: Cater for connection timeout when fetching feature flags
- when building feature flag version, use first 8 chars of build hash
Refactoring
- docker: Use crontabs not cron.d
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:7a9680d988b4ae13f68f9d6fba413efebd039938
docker pull docker.io/nofusscomputing/centurion-erp:1.13.1
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:7a9680d988b4ae13f68f9d6fba413efebd039938
docker pull docker.io/nofusscomputing/centurion-erp:1.13.1
1.13.0
1.13.0 (2025-03-16)
feat
- devops: Add ability for user to turn off feature flagging check-in
- devops: When displaying the feature_flag deployments, limit to last 24-hours
- devops: During feature flag
Checkin
derive the version from the last field of the user-agent - devops: Add missing column to model
Checkin
- devops: Remove model
Checkin
permissions from permissions selector - devops: Display the days total unique check-ins for feature flags within software feature flagging tab
- devops: Record to check-in table every time feature flags are obtained
- devops: Migrations for model
CheckIns
- devops: New model
CheckIns
- Generate a deployment unique ID
- devops: Provide user with option to disable downloading feature flags
- devops: Feature Flagging url.path wrapper
- docker: Configure cron to download feature flags every four hours
- docker: Start and run crond within container
- docker: Download feature flags on container start
- devops: Feature Flagging DRF Router wrapper
- devops: Feature Flagging middleware
- devops: Feature Flagging management command
- devops: Add Feature Flagging lib
- devops: add temp application for feature flag client
- devops: public feature flag endpoint pagination limited to 20 results
- devops: Add support for
if-modified-since
header for Feature Flags public endpoint - api: Add public API feature flag index endpoint
- api: Add public API endpoint
- devops: Add feature flag public ViewSet
- devops: Add feature flag public serializer
- api: Add common viewset for public RO list
- Remove serializer caching from ALL viewsets
- devops: Add delete col to software enabled feature flags
- devops: Prevent deletion of software when it has feature flagging enabled and/or feature flags
- devops: limit feature_flag to organizations that's had feature flags enabled
- devops: limit feature_flag to software that's had feature flags enabled
- python: Update Django 5.1.5 -> 5.1.7
- devops: Serializer limiting of software and os disabled for time being
- devops: Serializer validate software and org
- devops: Serializer software filter to enabled feature_flag software
- devops: Serializer org filter to enabled feature_flag organizations
- devops: Add endpoint for enabling software for feature flagging
- devops: Add serializer for enabling software for feature flagging
- devops: Add model for enabling software for feature flagging
- devops: Add model tag feature_flag to ticket linked item
- devops: Add KB tab to feature flag model
- devops: Add Notes to feature flag model
- core: Migration for feature_flag model reference
- core: url endpoints added for ticket comment category and ticket category notes
- itam: disable model notes for model device os
- api: disable model notes for model auth token
- core: disable model notes for model teamuser
- core: disable model notes for model notes
- core: Migrations for adding notes to ticket category and ticket comment category
- core: Add Feature Flag model reference
- devops: Add devops module to installed applications
- devops: Add Feature Flag viewset
- devops: Add Feature Flag serializer
- devops: Add devops Navigation menu
- devops: Add devops module URL includes
- devops: Add devops to permissions
- devops: DB Migrations for Feature Flag and History model
- devops: Add Feature Flag History model
- devops: Add Feature Flag model
- access: add support for nested application namespaces
- devops: Add devops module
Fixes
- devops: Only track checkin if no other error occured
- devops: during feature flag checkin, if no
client-id
provided, use valuenot-provided
- devops: When init the feature flag clients, look for all args within settings
- devops: Only add
Last-Modified
header to response if exists - devops: Correct logic for data changed check for public endpoint for feature flagging
- devops: feature flag public ViewSet serializer name correction and qs cache correction
- devops: feature flag public endpoint field modified name typo
- devops: Filter public feature flag endpoint to org and software where software is enabled
- devops: Move software field filter for feature flag to the serializer
- devops: Dont attempt to validate feature flag software or organization if it is absent
- devops: Correct feature flagging validation for enabled software and enabled orgs
- devops: dont cache serializer for featureflag
- devops: Correct Feature Flag serializer validation to cater for edit
- devops: Feature Flag field is mandatory
- api: make history url dynamic. only display if history should save
- devops: if software is deleted delete feature flags
- core: disable of notes for models not requiring it
- api: when generating notes url, use correct object
- api: Add missing import for featurenotused
- core: Add ability to add notes for ticket comment category
- core: Add ability to add notes for ticket category
- core: Serializer
_urls.notes
URL generation now dynamic - api: Dont attempt to access model.get_app_namespace if it doesnt exist
Tests
- devops: Feature Flag History API render checks
- devops: Feature Flag Serializer checks
- devops: CheckIn Entry created of fetching feature flags
- devops: CheckIn model test cases
- devops: public feature flag fields corrections
- devops: public feature flag functional ViewSet checks
- devops: feature flag ViewSet checks
- api: Update vieset test cases to cater for mockrequest to contain headers attribute
- devops: feature flag public endpoint API field, header checks
- devops: Ensure that only enabled org and enabled software is possible
- devops: software_feature_flag_enable ViewSet checks
- devops: software_feature_flag_enable Serializer checks
- devops: Update feature flag test case setup to enable feature flag for testing software
- devops: Update feature flag test case setup to enable feature flag for testing software
- api: Remove serializer cache test cases
- devops: software_feature_flag_enable api field checks
- devops: software_feature_flag_enable viewset checks
- devops: software_feature_flag_enable model checks
- devops: software_feature_flag_enable tenancy object checks
- devops: correct dir name for tests
- devops: Notes feature flag model checks
- core: Ticket Comment Category Notes checks
- core: Ticket Category Notes checks
- app: Model test cases for api field rendering
_urls.notes
- app: Model test cases for get_url_kwargs_notes function
- access: Correct Team notes url route name
- devops: Feature Flag viewset unit Checks
- devops: Feature Flag model Checks
- devops: Feature Flag api Checks
- devops: Feature Flag tenancy object Checks
- devops: Feature Flag viewset functional Checks
- devops: Feature Flag serializer Checks
- devops: Feature Flag History Checks
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:3925b96cb0eba94141f10de9b357a0c07ac25203
docker pull docker.io/nofusscomputing/centurion-erp:1.13.0
1.12.0
1.12.0 (2025-03-01)
feat
- api: Add delete column to AuthToken Table
- docker: Upgrade system packages on build
- api: AuthToken requires viewset get_back_url
- api: Add auth token api endpoint
- settings: Add section title to auth tokens
- settings: Add tokens url to user settings
_urls
- api: Update Auth Token model for use with serializer
- api: Add user Auth Token viewset
- api: Add user Auth Token serializer
- settings: Add
page_layout
attribute to User Settings
Fixes
- api: correct usage of
AuthToken.generate
to a property
Tests
- api: AuthToken ViewSet checks (unit)
- api: AuthToken API Field checks
- api: AuthToken Serializer checks
- api: AuthToken ViewSet checks
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:fa03f7471bf49f5792c67ce03e6608c7f358e4ec
docker pull docker.io/nofusscomputing/centurion-erp:1.12.0
1.11.0
1.11.0 (2025-02-21)
feat
- core: Enable App settings History to save without specifying an organization
- settings: save_history method added to App Settings
- settings: History Model for App Settings Version added
- core: Migration for history data to new history tables
- access: save_history method added to Team
- access: History Model for Team added
- access: save_history method added to Organization
- access: History Model for Organization added
- core: add org field History Model api rendering
- core: Show the model name within history
- project_management: Project Milestone added to modelhistory.child_history_models
- settings: History Model migrations for External Link
- settings: save_history method added to External Link
- settings: History Model for External Link added
- project_management: History Model migrations for Project Type
- project_management: save_history method added to Project Type
- project_management: History Model for Project TYpe added
- project_management: History Model migrations for Project State
- project_management: save_history method added to Project State
- project_management: History Model for Project State added
- project_management: History Model migrations for Project Milestone
- project_management: save_history method added to Project Milestonr
- project_management: History Model for Project Milestone added
- project_management: History Model migrations for Project
- project_management: save_history method added to Project
- project_management: History Model for Project added
- itim: History Model migrations for Service
- itim: save_history method added to Service
- itim: History Model for Service added
- itim: History Model migrations for Port
- itim: save_history method added to Port
- itim: History Model for Port added
- itim: History Model migrations for Cluster Type
- itim: save_history method added to Cluster TYpe
- itim: History Model for Cluster Type added
- itim: History Model migrations for Cluster
- itim: save_history method added to Cluster
- itim: History Model for Cluster added
- itam: History Model migrations for Software Version
- itam: save_history method added to Software Version
- itam: History Model for Software Version added
- itam: History Model migrations for Software Category
- itam: save_history method added to Software Category
- itam: History Model for Software Category added
- itam: History Model migrations for Software
- itam: save_history method added to Software
- itam: History Model for Software added
- itam: History Model migrations for Operating System Version
- itam: save_history method added to Operating System Version
- itam: History Model for Operating System Version added
- itam: History Model migrations for Device Type
- itam: save_history method added to Device Type
- itam: History Model for Device Type added
- itam: History Model migrations for Device Operating System
- itam: save_history method added to Device Operating System
- itam: History Model for Device Operating System added
- itam: History Model migrations for Operating System
- itam: save_history method added to Operating System
- itam: History Model migrations for Operating System
- itam: History Model migrations for Device Software
- itam: History Model for Device Software added
- itam: save_history method added to Device
- itam: History Model migrations for Device Model
- itam: save_history method added to Device Model
- itam: History Model for Device Model added
- core: History Model migrations for Ticket Comment Category
- core: save_history method added to Ticket Comment Category
- core: History Model for Ticket Comment Category added
- config_management: Child History Models added to child model lists for config group hosts and software
- core: History Model migrations for Ticket Category
- core: save_history method added to Ticket Category
- core: History Model for Ticket Category added
- core: History Model migrations for Manufacturer
- core: save_history method added to Manufacturer
- core: History Model for Manufacturer added
- config_management: save_history method added to Config Group Software
- config_management: save_history method added to Config Group Hosts
- config_management: save_history method added to Config Groups
- assistance: save_history method added to Knowledge base
- assistance: save_history method added to Knowledge base category
- config_management: History Model migrations for Config Groupse + children
- config_management: History Model for Config Group Software added
- config_management: History Model for Config Group Hosts added
- config_management: History Model for Config Groups added
- assistance: History Model migrations for Knowledge base + children
- assistance: History Model for Knowledge base category added
- assistance: History Model for Knowledge base added
- itam: Add device history model
- core: History view to only display objects from the model being requested
- core: Add new history model to History Serializer
- core: Add new history model
- development: lint for un-used imports
- development: add pylit settings
- core: added new history model
- api: Device Software Viewset requires its own function to obtain the model view serializer
- api: Ticket Comment Viewset requires its own function to obtain the model view serializer
- api: Ticket Viewset requires its own function to obtain the model view serializer
- api: Always use a models
View
serializer for the response - core: Add logic to ensure when organization changes, an action comment is created
- core: Add logic to ensure when parnet ticket changes, an action comment is created
Fixes
- settings: App settings serializer fielad name does not exist
- access: dont use organization property within organization model
- project_management: Project milestone is not a child model
- core: Child models on delete must make model field null
- project_management: Project Milestone History is a primaryu model
- core: When a child model is deleted ensure entry is still created on parent model history
- core: when fetching url_kwargs for model history, make it dynamic for related field name
- core: Xorrect logic for determining view_action
- core: dynamically search for history object name
- config_management: Remove parent property from config groups
- tests: Correct Permission Import due to removing from access.models
- project_management: project Model serializer must inherit common serializer
- core: History audit objects must be a valid dict
- api: history app names can contain an underscore
- core: when saving history, use audit_model for content type
- core: add missing functions for fetching item url
- project_management: Opened by field set to read only for project task ticket
- itim: Opened by field set to read only for problem ticket
- itim: Opened by field set to read only for incident ticket
- itim: Opened by field set to read only for change ticket
- assistance: Opened by field set to read only for request ticket
- core: Ensure that if the parent ticket changes, that the logic caters for none
- assistance: Category can be empty for Project Task Ticket
- assistance: Category can be empty for Problem Ticket
- assistance: Category can be empty for Incident Ticket
- assistance: Category can be empty for Change Ticket
- assistance: Category can be empty for Request Ticket
- core: Ticket Action comment for category change must use category field
Refactoring
- core: Update access imports to new path
- core: Update access imports to new path
- Update migrations imports to new path
- config_management: Update access imports to new path
- api: Update access imports to neew path
- settings: Update access imports to new path
- project_management: Update access imports to new path
- itim: Update access imports to new path
- itam: Update access imports to new path
- core: Update access imports to new path
- config_management: Update access imports to new path
- assistance: Update access imports to new path
- base: Update access imports to new path
- api: Update access imports to neew path
- access: Update access imports to neew path
- access: Move models to their own file
- core: move get_url to common serializer
- api: Update history url kwargs to use vals from model._meta
- core: superuser changed from import to triage access
- core: Ticket action comment logic only requires a single check
Tests
- settings: History Entry checks for App Settings History
- settings: API Field Checks for App Settings History
- Model History not to save history on self
- core: Correct lookup for model history test setup
- access: remove test cases for Team prarent_object
- access: History Entry checks for Team model
- access: API Field Checks for Team History
- access: History Entry checks for Organization model
- access: API Field Checks for Organization History
- Fix History API checks for kb
- Fix History API checks for project milestone
- Fix History Entry checks for models
- config_management: History Entry checks for Config_group_hosts model
- settings: History Entry checks for External Link model
- project_management: History Entry checks for Project Type model
- project_management: History Entry checks for Project State model
- project_management: History Entry checks for Project Milestone model
- project_management: History Entry...