Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: version 1.4 #344

Merged
merged 619 commits into from
Nov 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
619 commits
Select commit Hold shift + click to select a range
805cc88
test(core): Linked Ticket Common API field checks
jon-nfc Oct 28, 2024
7632025
test(core): Config Group Linked Tickets API field checks
jon-nfc Oct 28, 2024
5381b96
test(itam): device Linked Tickets API field checks
jon-nfc Oct 28, 2024
873f8e1
test(itam): Operating System Linked Tickets API field checks
jon-nfc Oct 28, 2024
68ee0b3
test(itam): Software Linked Tickets API field checks
jon-nfc Oct 28, 2024
0ba1a34
test(itim): Cluster Linked Tickets API field checks
jon-nfc Oct 28, 2024
5cb329c
test(itim): Service Linked Tickets API field checks
jon-nfc Oct 28, 2024
71ad05e
test(core): Related Tickets API field checks
jon-nfc Oct 28, 2024
848c342
feat(core): Add Ticket Comment Category API v2 endpoint
jon-nfc Oct 28, 2024
858217d
test(core): Ticket Comment Category API field checks
jon-nfc Oct 28, 2024
28805ed
test(core): Ticket Common API v2 ViewSet permission checks
jon-nfc Oct 28, 2024
846eb79
test(assistance): Request Ticket API v2 ViewSet permission checks
jon-nfc Oct 28, 2024
c06d09f
test(core): Ticket Category API v2 ViewSet permission checks
jon-nfc Oct 28, 2024
7869ff4
test(core): Ticket Comment Category API v2 ViewSet permission checks
jon-nfc Oct 28, 2024
95f9a26
test(core): Ticket Comment API v2 ViewSet permission checks
jon-nfc Oct 28, 2024
fffe78a
fix(core): Add missing ticket comment category url
jon-nfc Oct 28, 2024
d4aa3e6
fix(config_management): Correct ticket url in group serializer
jon-nfc Oct 28, 2024
31af109
test(config_management): Group Ticket URL API field checks
jon-nfc Oct 28, 2024
f1332ce
test(itam): Device Ticket URL API field checks
jon-nfc Oct 28, 2024
da414d7
test(itam): Operating System Ticket URL API field checks
jon-nfc Oct 28, 2024
0b37f8f
test(itam): Software Ticket URL API field checks
jon-nfc Oct 28, 2024
e220303
test(itim): Cluster Ticket URL API field checks
jon-nfc Oct 28, 2024
b972ea1
test(itim): Service Ticket URL API field checks
jon-nfc Oct 28, 2024
863b2d4
fix(core): Correct serializer item field to be for view serializer ONLY
jon-nfc Oct 28, 2024
6b6b70d
test(itim): Ticket Linked Item API field checks
jon-nfc Oct 28, 2024
4c927ef
test(core): Ticket Category API v2 Serializer checks
jon-nfc Oct 31, 2024
fdd50c3
feat(core): Ensure that ticket category cant assign self as parent
jon-nfc Oct 31, 2024
0404b52
test(core): Ticket Comment Category API v2 Serializer checks
jon-nfc Oct 31, 2024
14776a0
feat(core): Ensure that ticket comment category cant assign self as p…
jon-nfc Oct 31, 2024
7b70fd3
feat(core): Ensure that ticket linked item validates if ticket supplied
jon-nfc Oct 31, 2024
32e3a97
test(core): Ticket Linked Item API v2 Serializer checks
jon-nfc Oct 31, 2024
fe5aac0
feat(core): Ensure ticket comment Serializer is picked based off of c…
jon-nfc Oct 31, 2024
a75a56e
feat(core): Ensure ticket comment Serializer validates for existance …
jon-nfc Oct 31, 2024
821ba0e
feat(core): Add custom exception class
jon-nfc Oct 31, 2024
8479f8c
feat(core): Determine serializer from action and user permissions for…
jon-nfc Oct 31, 2024
80b8cdb
test(core): Ticket Comment API v2 Serializer checks
jon-nfc Oct 31, 2024
0965f56
test(core): Related Ticket API v2 ViewSet permission checks
jon-nfc Nov 1, 2024
2c934d4
fix(api): Ensure `METHOD_NOT_ALLOWED` exception is thrown
jon-nfc Nov 1, 2024
f450190
fix(core): Ensure related ticket slash command works for ticket comments
jon-nfc Nov 1, 2024
7d62d6b
test(core): Related Ticket API v2 Serializer checks
jon-nfc Nov 1, 2024
daa8dbe
feat(core): Add MethodNot Allowed to Centurion exceptions
jon-nfc Nov 1, 2024
bf56b27
feat(core): Ensure Related Tickets validate against duplicate entries
jon-nfc Nov 1, 2024
04ae338
refactor(core): Related ticket slash command to use serializer
jon-nfc Nov 1, 2024
e61b883
fix(core): Only use Import Serializer on Ticket Comment Create if use…
jon-nfc Nov 1, 2024
9fe4883
refactor(core): Ticket Linked Item slash command to use serializer
jon-nfc Nov 1, 2024
effa290
fix(core): Ensure Ticket Linked Item slash command works for ticket c…
jon-nfc Nov 1, 2024
f27e037
refactor(core): Ensure Ticket Linked Serializer works for Item Tickets
jon-nfc Nov 1, 2024
08e13a7
test(core): Item Linked Ticket API v2 ViewSet permission checks
jon-nfc Nov 1, 2024
7d3a4c7
test(core): Item Ticket API v2 Serializer checks
jon-nfc Nov 1, 2024
4acfe5f
test(core): fix broken tests from 8b701785b3489db567f5ae08c58e28ae765…
jon-nfc Nov 1, 2024
e39ec70
fix(core): Ensure triage and import permissions are catered for Tickets
jon-nfc Nov 1, 2024
dac01ac
refactor(core): Move ticket validation from is_valid -> validate method
jon-nfc Nov 1, 2024
df55cf0
feat(api): Depreciate v1 API Endpoint Ticket Categories
jon-nfc Nov 1, 2024
91e38a8
feat(api): Depreciate v1 API Endpoint Ticket Comment Categories
jon-nfc Nov 1, 2024
8e21cb5
feat(api): Depreciate v1 API Endpoint Ticket Comments
jon-nfc Nov 1, 2024
8cd442e
feat(api): Depreciate v1 API Endpoint Assistance
jon-nfc Nov 1, 2024
a04cfee
feat(api): Depreciate v1 API Endpoint Request Ticket
jon-nfc Nov 1, 2024
429f3a9
docs(views): update to denote dynamic permissions
jon-nfc Nov 1, 2024
d20a146
feat(api): Depreciate v1 API Endpoint Assistance
jon-nfc Nov 1, 2024
223e78a
docs(views): update to denote dynamic permissions
jon-nfc Nov 1, 2024
189b811
feat(itim): Add Change Ticket API v2 endpoint
jon-nfc Nov 2, 2024
73d7338
feat(itim): Add Incident Ticket API v2 endpoint
jon-nfc Nov 2, 2024
7fc5138
feat(itim): Add Problem Ticket API v2 endpoint
jon-nfc Nov 2, 2024
74d55fb
feat(itim): Add Project Task API v2 endpoint
jon-nfc Nov 2, 2024
74c6ee2
fix(core): When obtaining ticket type use it's enum value
jon-nfc Nov 2, 2024
9908253
fix(core): Add Ticket Category URL to all Ticket Types
jon-nfc Nov 2, 2024
6428e96
fix(core): Add project URL to all Ticket Types
jon-nfc Nov 2, 2024
352b342
feat(core): Ticket serializer to validate organization
jon-nfc Nov 2, 2024
11ce8cc
feat(core): Ticket serializer to validate milestone
jon-nfc Nov 2, 2024
f522e6f
feat(core): Ticket serializer to ensure user who opens ticket is subs…
jon-nfc Nov 2, 2024
a2cac47
feat(core): Add Parse error to exceptions
jon-nfc Nov 2, 2024
13ab073
fix(core): Ticket serializer org validator to access correct data
jon-nfc Nov 2, 2024
a00cc52
fix(core): Ensure that when fetching ticket permission, spaces are re…
jon-nfc Nov 2, 2024
66d7d51
fix(core): Ensure Organization can be set when creating a ticket
jon-nfc Nov 2, 2024
fe56fab
test(itim): Change Ticket API v2 ViewSet permission checks
jon-nfc Nov 2, 2024
e8629b2
test(itim): Incident Ticket API v2 ViewSet permission checks
jon-nfc Nov 2, 2024
525e826
test(itim): Problem Ticket API v2 ViewSet permission checks
jon-nfc Nov 2, 2024
ec3ab3e
test(project_management): PRoject_task API v2 ViewSet permission checks
jon-nfc Nov 2, 2024
8c782b1
test(project_management): Ensure ticket assigned project for all API …
jon-nfc Nov 2, 2024
39a2f4c
feat(core): Show project using base serializer for all ticket types
jon-nfc Nov 2, 2024
bf1e211
feat(core): Show milestone using base serializer for all ticket types
jon-nfc Nov 2, 2024
b53f4aa
test(assistance): Update request field checks to cater for project an…
jon-nfc Nov 2, 2024
67fa708
test(itim): Change Ticket API field checks
jon-nfc Nov 2, 2024
3ef7d17
test(itim): Incident Ticket API field checks
jon-nfc Nov 2, 2024
85a9cf1
test(itim): Problem Ticket API field checks
jon-nfc Nov 2, 2024
1b286d0
test(project_management): Project Task API field checks
jon-nfc Nov 2, 2024
b1a42e0
fix(core): Correct inheritence order for ticket serializers
jon-nfc Nov 3, 2024
5821c5b
fix(core): Correct Ticket read-only fields
jon-nfc Nov 3, 2024
e771631
fix(core): Ensure that when creating a ticket an organization is spec…
jon-nfc Nov 3, 2024
3bb7978
fix(core): When creating a ticket, by default give it a status of new
jon-nfc Nov 3, 2024
552bce4
fix(core): correct missing or incomplete ticket model fields
jon-nfc Nov 3, 2024
18db1f5
test(core): Common Ticket Test Cases for API v2 serializers
jon-nfc Nov 3, 2024
ed87241
test(core): Request Ticket API v2 Serializer Checks
jon-nfc Nov 3, 2024
84dafca
test(itim): Change Ticket API v2 Serializer Checks
jon-nfc Nov 3, 2024
80575e0
test(itim): Problem Ticket API v2 Serializer Checks
jon-nfc Nov 3, 2024
5e6d675
test(itim): Incident Ticket API v2 Serializer Checks
jon-nfc Nov 3, 2024
7a4edc6
test(project_management): Project Task API v2 Serializer Checks
jon-nfc Nov 3, 2024
72fe8b8
test(core): Related Item Ticket Slash command checks.
jon-nfc Nov 5, 2024
df73e86
fix(core): Related ticket slash command requires model to be imported
jon-nfc Nov 5, 2024
ce170ff
test(core): Blocks Slash command Checks.
jon-nfc Nov 5, 2024
5dabf00
test(core): Blocked by Slash command Checks.
jon-nfc Nov 5, 2024
5ef5103
test(core): Action command Related Item Ticket Slash command checks.
jon-nfc Nov 5, 2024
e89dff1
test(core): Ensure a non-existing item cant be Linked to a Ticket.
jon-nfc Nov 5, 2024
86d4f76
feat(core): New signal for cleaning linked ticket items when the item…
jon-nfc Nov 5, 2024
c415d53
fix(core): When an item that may be linked to a ticket is deleted, re…
jon-nfc Nov 5, 2024
8fbbf12
test(core): Ensure that an item that may be linked to a ticket, when …
jon-nfc Nov 5, 2024
e28d25b
test(core): Relate Slash command Checks.
jon-nfc Nov 5, 2024
da9799c
test(core): Spend Slash command Checks.
jon-nfc Nov 7, 2024
89b0a6b
fix(core): Correct duration slash command regex
jon-nfc Nov 7, 2024
0b258b3
test(core): Ensure test setup correctly for ticket checks
jon-nfc Nov 7, 2024
a47da4d
fix(core): Ensure import user can set field `opened_by` when importin…
jon-nfc Nov 7, 2024
0eb8803
feat(api): Depreciate API V1 endpoint /api/config
jon-nfc Nov 7, 2024
d64d163
test(project_management): Organization API v2 ViewSet permission checks
jon-nfc Nov 7, 2024
e31511c
test(access): Organization API v2 Serializer Checks
jon-nfc Nov 7, 2024
febf271
fix(access): Dont capture exceptions within team serializer
jon-nfc Nov 7, 2024
211ead9
fix(access): Team name required when creating, don't use default value.
jon-nfc Nov 7, 2024
b25bd4c
test(access): Team API v2 Serializer Checks
jon-nfc Nov 7, 2024
873411c
test(access): Team User API v2 Serializer Checks
jon-nfc Nov 7, 2024
48541f1
fix(access): Team User team and user fields required when creating, d…
jon-nfc Nov 7, 2024
3f92afe
fix(access): Team User serializer not to capture exceptions
jon-nfc Nov 7, 2024
506c535
test(access): Organization API v2 Serializer Checks, only super user …
jon-nfc Nov 7, 2024
f695f14
test(functional): Move functional test cases to relevant functional t…
jon-nfc Nov 7, 2024
198232a
test(functional): Move request ticket checks from unit
jon-nfc Nov 8, 2024
bfbaac0
test(access): External Link API v2 Serializer Checks
jon-nfc Nov 8, 2024
ad9ed13
test(settings): External Link API ViewSet permission checks
jon-nfc Nov 8, 2024
5987e62
test(core): Ensure that when ticket is assigned it's status is update…
jon-nfc Nov 8, 2024
1c5fb0d
feat(itam): Add Inventory API v2 endpoint
jon-nfc Nov 8, 2024
06b936b
test(itam): Inventory API v2 Serializer Checks
jon-nfc Nov 8, 2024
3dac12c
refactor(task): Adjust inventory to use API v2 serializer
jon-nfc Nov 8, 2024
e196033
fix(task): Ensure if inventory RX is a string, serialize it
jon-nfc Nov 8, 2024
cd0bcf6
chore(api): Correct DRF Swagger Docs errors
jon-nfc Nov 8, 2024
98c753d
chore(compose): updaate docker compose file for testing
jon-nfc Nov 8, 2024
b258800
test(core): move unit tests that check functionality to func test for…
jon-nfc Nov 9, 2024
c4f396a
fix(core): correct navigation metadata
jon-nfc Nov 9, 2024
8837811
chore: add UI to docker-compose.yaml
jon-nfc Nov 10, 2024
696b6e7
feat(core): add RElated Items choices to metadata
jon-nfc Nov 11, 2024
5be205a
feat(core): new field type char
jon-nfc Nov 11, 2024
c54c91f
feat(core): new field type markdown
jon-nfc Nov 11, 2024
f345dd3
feat(api): Add a Common Model serializer to be inherited by all model…
jon-nfc Nov 11, 2024
2b25e2b
refactor(api): set fields that are for markdown to use the markdown f…
jon-nfc Nov 11, 2024
e42a009
feat: Add timezone support
jon-nfc Nov 11, 2024
55b123a
fix(core): Ensure ticket and comment bodies are set to required
jon-nfc Nov 11, 2024
e94e28a
feat(api): Added abilty to specify a css class for markdown field
jon-nfc Nov 13, 2024
d7c24c3
feat(api): Support setting char field as an anchor field using .urls.…
jon-nfc Nov 13, 2024
46441aa
feat(access): render team_name field as anchor
jon-nfc Nov 13, 2024
228e36d
fix(access): Ensure organization is a mandatory field
jon-nfc Nov 13, 2024
6668c6a
fix(core): Dont attempt to use ticket instance organization if it's a…
jon-nfc Nov 13, 2024
56dd268
fix(core): Ensure API v1 Ticket sets the ticket type prior to validation
jon-nfc Nov 13, 2024
279967d
feat(settings): Add `page_layout` to AppSettings model
jon-nfc Nov 13, 2024
20c09ec
feat(project_management): Add `page_layout` to Milestone model
jon-nfc Nov 13, 2024
1e556f1
feat(itam): Add `page_layout` to OperatingSystemVersion model
jon-nfc Nov 13, 2024
5129a8d
fix(core): Set notes _self url to empty val then attempt to sset
jon-nfc Nov 14, 2024
16927fc
feat(itam): Add `page_layout` to SoftwareVersion model
jon-nfc Nov 14, 2024
5899bb1
fix(config_management): show parent groups only on index
jon-nfc Nov 15, 2024
e016864
feat(config_management): Add field child group count to table fields …
jon-nfc Nov 15, 2024
18aa58b
fix(core): Always set the organization to the ticket org when adding …
jon-nfc Nov 15, 2024
7a5c55a
fix(core): Automagic fetch data for fields and only require ticket id…
jon-nfc Nov 15, 2024
9667085
fix(api): Ensure queryset filters to actual item if pk is defined
jon-nfc Nov 15, 2024
10bade6
feat(api): Add return URL to metadata if model has attribute `get_url`
jon-nfc Nov 15, 2024
a60cf6c
fix(core): Always set the organization to the ticket org when adding …
jon-nfc Nov 15, 2024
f420bc6
chore: update nav icons
jon-nfc Nov 17, 2024
05f03ef
refactor: Add function `get_url` to tenancy models
jon-nfc Nov 17, 2024
463774a
test: model get_url function checks
jon-nfc Nov 17, 2024
be2699e
fix(core): dont attempt to fetch org for ticket comment if no data su…
jon-nfc Nov 17, 2024
20f6b4f
refactor(core): ticket comment url name updated to match model name
jon-nfc Nov 17, 2024
81e63cc
fix(core): ticket comment model url requires kwargs
jon-nfc Nov 17, 2024
048956f
fix(core): ticket model url requires kwargs
jon-nfc Nov 17, 2024
11fa102
fix(access): correct team get_url
jon-nfc Nov 17, 2024
21c7022
fix(core): correct notes get_url
jon-nfc Nov 17, 2024
c2751f9
fix(access): correct team get_url requires kwargs
jon-nfc Nov 17, 2024
7930af2
fix(access): correct team users get_url
jon-nfc Nov 17, 2024
84c6541
fix(core): add missing dep to notes
jon-nfc Nov 17, 2024
0c3c6ad
fix(core): correct get_url function notes
jon-nfc Nov 17, 2024
581598d
fix(core): add kwargs to notes
jon-nfc Nov 17, 2024
5f7b6ef
refactor: update serializers to use model `get_url` function
jon-nfc Nov 17, 2024
3afc63d
refactor(config_management): config_group ref to use full model name
jon-nfc Nov 17, 2024
aebd0f3
refactor: ensure filed organization is required
jon-nfc Nov 20, 2024
06fff3b
refactor(itam): ensure device is unique for device os model
jon-nfc Nov 20, 2024
bd7c0a4
test(core): remove duplicate functional slash commands
jon-nfc Nov 20, 2024
f4c06da
feat(itam): Add device operating system API v2 endpoint
jon-nfc Nov 20, 2024
a7b0ace
test(itam): Device Operating System Serializer Validation checks
jon-nfc Nov 20, 2024
744f448
test(itim): Device Operating System API v2 ViewSet permission checks
jon-nfc Nov 20, 2024
f81373b
test(itam): Device Operating System API field checks checks
jon-nfc Nov 20, 2024
a35684d
test(itam): Update Device Operating System history checks to cater fo…
jon-nfc Nov 20, 2024
855d5b0
fix(core): ticket comment to use model serializer for meta
jon-nfc Nov 20, 2024
c6a1790
feat(base): use senisible settings for SSL
jon-nfc Nov 20, 2024
2e6db41
feat(base): move setting `SECURE_SSL_REDIRECT = True` to etc/settings
jon-nfc Nov 20, 2024
09f432f
test(core): Ticket comment category field checks corrected
jon-nfc Nov 20, 2024
7551a38
feat(api): return_url to default to list view
jon-nfc Nov 20, 2024
5b8da99
fix(itam): device os serializer not to show org and device
jon-nfc Nov 20, 2024
92b1222
feat(itim): Add nodes and devices to detail view
jon-nfc Nov 20, 2024
49554f7
fix(core): Enusure project_task serializer sets the project_id
jon-nfc Nov 20, 2024
e2c059c
test(core): Ticket comment serializer checks corrected to use mock view
jon-nfc Nov 20, 2024
058eb47
test(core): Ticket serializer checks corrected to use project_id with…
jon-nfc Nov 20, 2024
96c4c59
docs(release_notes): Notate API v2 is beta and subject to change
jon-nfc Nov 20, 2024
6fe6c58
feat(api): add ticket icons
jon-nfc Nov 20, 2024
f1780cc
feat(config_management): add hosts to new UI
jon-nfc Nov 20, 2024
3c88a55
feat(itim): add cluster and device to Services in new UI
jon-nfc Nov 20, 2024
56b5c2c
feat(itam): Add Software installs endpoint
jon-nfc Nov 21, 2024
2ac9137
feat(itam): based off of the request kwaargs, adjust device serialize…
jon-nfc Nov 22, 2024
79fbd40
test(itam): Software Installs API v2 Field checks
jon-nfc Nov 22, 2024
ad7f387
refactor(itam): update device software serializer validator
jon-nfc Nov 22, 2024
3188818
test(itam): Software Installs API v2 Validation checks
jon-nfc Nov 22, 2024
86f4a2f
test(itam): Software Installs API v2 Permission checks
jon-nfc Nov 22, 2024
dd4e624
refactor(itam): update device software serializer validator
jon-nfc Nov 22, 2024
5fe1e39
test(itam): Operating_system Installs API v2 Validation checks
jon-nfc Nov 22, 2024
9f1e04f
test(itam): Software Installs API v2 Permission checks
jon-nfc Nov 22, 2024
426f7ab
test(itam): Operating System Installs API v2 Field checks
jon-nfc Nov 22, 2024
59f842b
feat(itam): Add Operating System Installs API v2 endpoint
jon-nfc Nov 22, 2024
89c3fee
fix(itam): Add Operating System API v2 field typo
jon-nfc Nov 22, 2024
e9298d7
feat(itam): Split device software serializer to include seperate soft…
jon-nfc Nov 23, 2024
8cca6e3
test: Added skipped test for checking model mandatory values.
jon-nfc Nov 23, 2024
95ac6a4
test: Test Cases to confirm the correct serializer is returned from V…
jon-nfc Nov 23, 2024
ad54494
test: Add ViewSet Returned Serializer Checks to a majority of models
jon-nfc Nov 23, 2024
2647bbd
chore: correct linting error
jon-nfc Nov 23, 2024
cad8452
fix(core): dont exclude self for ticket comment category if not exists
jon-nfc Nov 25, 2024
faf441b
test: during delete operation dont include data
jon-nfc Nov 25, 2024
87108e9
fix(core): Ensure for update of ticket the correct serializer is sele…
jon-nfc Nov 25, 2024
7acb73f
test(core): Ticket Test Cases for Viewset Serializer returned
jon-nfc Nov 25, 2024
2429a94
test(assistance): Request ticket Viewset Serializer checks
jon-nfc Nov 25, 2024
f9209e8
test(assistance): Change ticket Viewset Serializer checks
jon-nfc Nov 25, 2024
3a132e2
test(assistance): Incident ticket Viewset Serializer checks
jon-nfc Nov 25, 2024
0d9cab0
test(assistance): Problem ticket Viewset Serializer checks
jon-nfc Nov 25, 2024
c09baf0
test(assistance): Project Taask ticket Viewset Serializer checks
jon-nfc Nov 25, 2024
ab6a965
test(Core): Remove duplicate test for ticket linked items
jon-nfc Nov 25, 2024
e17de29
test(Core): Ticket linked items API V2 Serializer returned checks
jon-nfc Nov 25, 2024
e10a497
feat(api): Implement Sanity error handling for uncaught exceptions
jon-nfc Nov 25, 2024
82ed07e
test(itam): update device model test name Device -> DeviceModel
jon-nfc Nov 25, 2024
579e55a
docs: update roadmap
jon-nfc Nov 27, 2024
c3547a4
test: Test Case for viewsets that confirms returned results from user…
jon-nfc Nov 27, 2024
0cda597
test(itam): Ensure items returned are from users orgs only for API v2…
jon-nfc Nov 27, 2024
4544c07
test(access): Ensure items returned are from users orgs only for API …
jon-nfc Nov 27, 2024
42621e3
test(assistance): Ensure items returned are from users orgs only for …
jon-nfc Nov 27, 2024
dd3c8e5
test(config_management): Ensure items returned are from users orgs on…
jon-nfc Nov 27, 2024
baa4f68
test(core): Ensure items returned are from users orgs only for API v2…
jon-nfc Nov 27, 2024
4db65bc
test(core): Correct test case for ticket category returned serializer…
jon-nfc Nov 27, 2024
3d980de
test(itim): Correct test case for ticket category returned serializer…
jon-nfc Nov 27, 2024
346b41c
test(project_management): Ensure items returned are from users orgs o…
jon-nfc Nov 27, 2024
ae2891f
test(settings): Ensure items returned are from users orgs only for AP…
jon-nfc Nov 27, 2024
ba85c69
test(itam): correct test setup for device note viewset
jon-nfc Nov 27, 2024
b291b98
fix(core): use the view pk to filter self out for ticket category update
jon-nfc Nov 27, 2024
de987f1
fix(core): when fetching ticket serializer set org=None
jon-nfc Nov 27, 2024
d923490
Merge pull request #397 from nofusscomputing/359-returned-results
jon-nfc Nov 27, 2024
795c698
fix(core): Prevent a ticket from being related to itself
jon-nfc Nov 28, 2024
bcf353b
test(core): Ensure a ticket cant be related to itself
jon-nfc Nov 28, 2024
1d9d426
feat(project_management): add project completed field
jon-nfc Nov 28, 2024
545d417
fix(project_management): Correct All tickets query for calculating pr…
jon-nfc Nov 28, 2024
184f419
test(project_management): Ensure that project field completed exists …
jon-nfc Nov 28, 2024
2f259ea
docs(development): added model page_layout and table_fields attributes
jon-nfc Nov 28, 2024
8050a7a
Merge pull request #401 from nofusscomputing/related-ticket
jon-nfc Nov 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@

- [ ] :checkered_flag: Milestone assigned

- [ ] :gear: :test_tube: [Functional Test(s) Written](https://nofusscomputing.com/projects/centurion_erp/development/testing/)

- [ ] :test_tube: [Unit Test(s) Written](https://nofusscomputing.com/projects/centurion_erp/development/testing/)

_ensure test coverage delta is not less than zero_
Expand Down
17 changes: 15 additions & 2 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"version": "0.2.0",
"configurations": [
{
"name": "Debug: Django",
"name": "Centurion",
"type": "debugpy",
"request": "launch",
"args": [
Expand All @@ -17,6 +17,7 @@
"program": "${workspaceFolder}/app/manage.py"
},
{

"name": "Debug: Gunicorn",
"type": "debugpy",
"request": "launch",
Expand All @@ -35,9 +36,21 @@
"autoStartBrowser": false,
"cwd": "${workspaceFolder}/app"
},
{
"name": "Migrate",
"type": "debugpy",
"request": "launch",
"args": [
"migrate"
],
"django": true,
"autoStartBrowser": false,
"program": "${workspaceFolder}/app/manage.py"

},
{
"name": "Debug: Celery",
"type": "python",
"type": "debugpy",
"request": "launch",
"module": "celery",
"console": "integratedTerminal",
Expand Down
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,5 @@
"ITSM"
],
"cSpell.language": "en-AU",
"jest.enable": false,
}
8 changes: 8 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,14 @@ Included within the root of the repository is a makefile that can be used during
> this doc is yet to receive a re-write


## Docker Container

within the `deploy/` directory there is a docker compose file. running `docker compose up` from this directory will launch a full stack deployment locally containing Centurion API, User Interface, a worker and a RabbitMQ server. once launched you can navigate to `http://127.0.0.1/` to start browsing the site.

You may need to run migrations if your not mounting your own DB. to do this run `docker exec -ti centurion-erp python manage.py migrate`



# Old working docs


Expand Down
30 changes: 28 additions & 2 deletions Release-Notes.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,27 @@
## Version 1.4.0

API redesign in preparation for moving the UI out of centurion to it's [own project](https://github.com/nofusscomputing/centurion_erp_ui). This release introduces a **Feature freeze** to the current UI. Only bug fixes will be done for the current UI.
API v2 is a beta release and is subject to change. On completion of the new UI, API v2 will more likely than not be set as stable.

- A large emphasis is being placed upon API stability. This is being achieved by ensuring the following:

- Actions can only be carried out by users whom have the correct permissions

- fields are of the correct type and visible when required as part of the API response

- Data validations work and notify the user of any issue

We are make the above possible by ensuring a more stringent test policy.

- New API will be at path `api/v2`.

- API v1 is now **Feature frozen** with only bug fixes being completed. It's recommended that you move to and start using API v2 as this has feature parity with API v1.

- API v1 is **depreciated**

- Depreciation of **ALL** API urls. API v1 Will be [removed in v2.0.0](https://github.com/nofusscomputing/centurion_erp/issues/343) release of Centurion.


# Version 1.3.0

!!! danger "Security"
Expand All @@ -14,10 +38,12 @@ This release updates the docker container to be a production setup for deploymen
- To setup container as "Worker", set `IS_WORKER='True'` environmental variable within container. _**Note:** You can still use command `celery -A app worker -l INFO`, although **not** recommended as the container health check will not be functioning_


# Version 1.0.0
## Version 1.0.0


Initial Release of Centurion ERP.

## Breaking changes

### Breaking changes

- Nil
34 changes: 34 additions & 0 deletions app/access/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,20 @@ class AutoCreatedField(models.DateTimeField):

"""

help_text = 'Date and time of creation'

verbose_name = 'Created'

def __init__(self, *args, **kwargs):

kwargs.setdefault("editable", False)

kwargs.setdefault("default", now)

kwargs.setdefault("help_text", self.help_text)

kwargs.setdefault("verbose_name", self.verbose_name)

super().__init__(*args, **kwargs)


Expand All @@ -28,6 +36,18 @@ class AutoLastModifiedField(AutoCreatedField):

"""

help_text = 'Date and time of last modification'

verbose_name = 'Modified'

def __init__(self, *args, **kwargs):

kwargs.setdefault("help_text", self.help_text)

kwargs.setdefault("verbose_name", self.verbose_name)

super().__init__(*args, **kwargs)

def pre_save(self, model_instance, add):

value = now()
Expand All @@ -45,6 +65,20 @@ class AutoSlugField(models.SlugField):

"""

help_text = 'slug for this field'

verbose_name = 'Slug'


def __init__(self, *args, **kwargs):

kwargs.setdefault("help_text", self.help_text)

kwargs.setdefault("verbose_name", self.verbose_name)

super().__init__(*args, **kwargs)


def pre_save(self, model_instance, add):

if not model_instance.slug or model_instance.slug == '_':
Expand Down
17 changes: 17 additions & 0 deletions app/access/migrations/0002_alter_team_options.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Generated by Django 5.1.2 on 2024-10-13 06:42

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
('access', '0001_initial'),
]

operations = [
migrations.AlterModelOptions(
name='team',
options={'ordering': ['team_name'], 'verbose_name': 'Team', 'verbose_name_plural': 'Teams'},
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Generated by Django 5.1.2 on 2024-10-13 15:27

import access.models
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('access', '0002_alter_team_options'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]

operations = [
migrations.AlterField(
model_name='organization',
name='id',
field=models.AutoField(help_text='ID of this item', primary_key=True, serialize=False, unique=True, verbose_name='ID'),
),
migrations.AlterField(
model_name='organization',
name='manager',
field=models.ForeignKey(help_text='Manager for this organization', null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='Manager'),
),
migrations.AlterField(
model_name='organization',
name='model_notes',
field=models.TextField(blank=True, default=None, help_text='Tid bits of information', null=True, verbose_name='Notes'),
),
migrations.AlterField(
model_name='organization',
name='name',
field=models.CharField(help_text='Name of this Organization', max_length=50, unique=True, verbose_name='Name'),
),
migrations.AlterField(
model_name='team',
name='is_global',
field=models.BooleanField(default=False, help_text='Is this a global object?', verbose_name='Global Object'),
),
migrations.AlterField(
model_name='team',
name='model_notes',
field=models.TextField(blank=True, default=None, help_text='Tid bits of information', null=True, verbose_name='Notes'),
),
migrations.AlterField(
model_name='team',
name='organization',
field=models.ForeignKey(help_text='Organization this belongs to', null=True, on_delete=django.db.models.deletion.CASCADE, to='access.organization', validators=[access.models.TenancyObject.validatate_organization_exists], verbose_name='Organization'),
),
migrations.AlterField(
model_name='team',
name='team_name',
field=models.CharField(default='', help_text='Name to give this team', max_length=50, verbose_name='Name'),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Generated by Django 5.1.2 on 2024-10-16 06:54

import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('access', '0003_alter_organization_id_alter_organization_manager_and_more'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]

operations = [
migrations.AlterModelOptions(
name='organization',
options={'ordering': ['name'], 'verbose_name': 'Organization', 'verbose_name_plural': 'Organizations'},
),
migrations.AlterModelOptions(
name='teamusers',
options={'ordering': ['user'], 'verbose_name': 'Team User', 'verbose_name_plural': 'Team Users'},
),
migrations.AlterField(
model_name='teamusers',
name='id',
field=models.AutoField(help_text='ID of this Team User', primary_key=True, serialize=False, unique=True, verbose_name='ID'),
),
migrations.AlterField(
model_name='teamusers',
name='manager',
field=models.BooleanField(blank=True, default=False, help_text='Is this user to be a manager of this team', verbose_name='manager'),
),
migrations.AlterField(
model_name='teamusers',
name='team',
field=models.ForeignKey(help_text='Team user belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='team', to='access.team', verbose_name='Team'),
),
migrations.AlterField(
model_name='teamusers',
name='user',
field=models.ForeignKey(help_text='User who will be added to the team', on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='User'),
),
]
18 changes: 18 additions & 0 deletions app/access/migrations/0005_alter_team_team_name.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 5.1.2 on 2024-11-07 06:28

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('access', '0004_alter_organization_options_alter_teamusers_options_and_more'),
]

operations = [
migrations.AlterField(
model_name='team',
name='team_name',
field=models.CharField(help_text='Name to give this team', max_length=50, verbose_name='Name'),
),
]
20 changes: 20 additions & 0 deletions app/access/migrations/0006_alter_team_organization.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generated by Django 5.1.2 on 2024-11-20 02:41

import access.models
import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('access', '0005_alter_team_team_name'),
]

operations = [
migrations.AlterField(
model_name='team',
name='organization',
field=models.ForeignKey(help_text='Organization this belongs to', on_delete=django.db.models.deletion.CASCADE, to='access.organization', validators=[access.models.TenancyObject.validatate_organization_exists], verbose_name='Organization'),
),
]
19 changes: 16 additions & 3 deletions app/access/mixin.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@

if hasattr(self, '_object_organization'):

return self._object_organization
return int(self._object_organization)

try:

Expand Down Expand Up @@ -124,9 +124,13 @@

is_member = False

if organization in self.user_organizations():
if organization is None:

return True
return False

if int(organization) in self.user_organizations():

is_member = True

return is_member

Expand All @@ -136,6 +140,10 @@
Override of 'PermissionRequiredMixin' method so that this mixin can obtain the required permission.
"""

if not hasattr(self, 'permission_required'):

return []

if self.permission_required is None:
raise ImproperlyConfigured(
f"{self.__class__.__name__} is missing the "
Expand Down Expand Up @@ -216,6 +224,11 @@

organization = self.object_organization()

else:

organization = int(organization)


if self.is_member(organization) or organization == 0:

groups = Group.objects.filter(pk__in=self.user_groups)
Expand Down Expand Up @@ -418,6 +431,6 @@

if not self.permission_check(request):

raise PermissionDenied('You are not part of this organization')

Check failure on line 434 in app/access/mixin.py

View workflow job for this annotation

GitHub Actions / Python / Unit Test (3.10)

You are not part of this organization

Check failure on line 434 in app/access/mixin.py

View workflow job for this annotation

GitHub Actions / Python / Unit Test (3.10)

You are not part of this organization

Check failure on line 434 in app/access/mixin.py

View workflow job for this annotation

GitHub Actions / Python / Unit Test (3.11)

You are not part of this organization

Check failure on line 434 in app/access/mixin.py

View workflow job for this annotation

GitHub Actions / Python / Unit Test (3.11)

You are not part of this organization

Check failure on line 434 in app/access/mixin.py

View workflow job for this annotation

GitHub Actions / Python / Unit Test (3.12)

You are not part of this organization

Check failure on line 434 in app/access/mixin.py

View workflow job for this annotation

GitHub Actions / Python / Unit Test (3.12)

You are not part of this organization

Check failure on line 434 in app/access/mixin.py

View workflow job for this annotation

GitHub Actions / Python / Unit Test (3.13)

You are not part of this organization

Check failure on line 434 in app/access/mixin.py

View workflow job for this annotation

GitHub Actions / Python / Unit Test (3.13)

You are not part of this organization

return super().dispatch(self.request, *args, **kwargs)
Loading
Loading