refactor(core): migrate ticket enums to own class

ref: #292
This commit is contained in:
2024-09-16 15:44:54 +09:30
parent 22f7b1e7c5
commit 383bca4ff9
28 changed files with 1339 additions and 1261 deletions

View File

@ -2,7 +2,7 @@ from rest_framework.fields import empty
from api.serializers.core.ticket import TicketSerializer
from core.models.ticket.ticket import Ticket
from core.models.ticket import Ticket

View File

@ -6,7 +6,7 @@ from rest_framework.fields import empty
from api.serializers.core.ticket_comment import TicketCommentSerializer
from core.forms.validate_ticket import TicketValidation
from core.models.ticket.ticket import Ticket
from core.models.ticket import Ticket

View File

@ -2,7 +2,7 @@ from rest_framework.fields import empty
from api.serializers.core.ticket import TicketSerializer
from core.models.ticket.ticket import Ticket
from core.models.ticket import Ticket

View File

@ -2,7 +2,7 @@ from rest_framework.fields import empty
from api.serializers.core.ticket import TicketSerializer
from core.models.ticket.ticket import Ticket
from core.models.ticket import Ticket

View File

@ -2,7 +2,7 @@ from rest_framework.fields import empty
from api.serializers.core.ticket import TicketSerializer
from core.models.ticket.ticket import Ticket
from core.models.ticket import Ticket

View File

@ -2,7 +2,7 @@ from rest_framework.fields import empty
from api.serializers.core.ticket import TicketSerializer
from core.models.ticket.ticket import Ticket
from core.models.ticket import Ticket

View File

@ -11,7 +11,7 @@ from api.serializers.itim.problem import ProblemTicketSerializer
from api.serializers.project_management.project_task import ProjectTaskSerializer
from api.views.mixin import OrganizationPermissionAPI
from core.models.ticket.ticket import Ticket
from core.models.ticket import Ticket

View File

@ -6,7 +6,7 @@ from app import settings
from core.forms.common import CommonModelForm
from core.models.ticket.ticket import RelatedTickets
from core.models.ticket import RelatedTickets
class RelatedTicketForm(CommonModelForm):

View File

@ -7,7 +7,7 @@ from app import settings
from core.forms.common import CommonModelForm
from core.forms.validate_ticket import TicketValidation
from core.models.ticket.ticket import Ticket, RelatedTickets
from core.models.ticket import Ticket, RelatedTickets

View File

@ -54,7 +54,7 @@ def plugin(
ticket_id = match.group(1)
try:
from core.models.ticket.ticket import Ticket
from core.models.ticket import Ticket
ticket = Ticket.objects.get(pk=ticket_id)

View File

@ -48,7 +48,7 @@ For this command to process the following conditions must be met:
if ticket_id is not None:
from core.models.ticket.ticket import RelatedTickets
from core.models.ticket import RelatedTickets
if command == 'relate':

View File

@ -3,7 +3,7 @@
import access.fields
import access.models
import core.lib.slash_commands
import core.models.ticket.ticket
import core.models.ticket
import core.models.ticket.ticket_comment
import django.db.models.deletion
import django.utils.timezone
@ -114,7 +114,7 @@ class Migration(migrations.Migration):
('priority', models.IntegerField(blank=True, choices=[(1, 'Very Low'), (2, 'Low'), (3, 'Medium'), (4, 'High'), (5, 'Very High'), (6, 'Major')], default=1, help_text='What priority should this ticket for its completion', null=True, verbose_name='Priority')),
('external_ref', models.IntegerField(blank=True, default=None, help_text='External System reference', null=True, verbose_name='Reference Number')),
('external_system', models.IntegerField(blank=True, choices=[(1, 'Github'), (2, 'Gitlab'), (9999, 'Custom #1 (Imported)'), (9998, 'Custom #2 (Imported)'), (9997, 'Custom #3 (Imported)'), (9996, 'Custom #4 (Imported)'), (9995, 'Custom #5 (Imported)'), (9994, 'Custom #6 (Imported)'), (9993, 'Custom #7 (Imported)'), (9992, 'Custom #8 (Imported)'), (9991, 'Custom #9 (Imported)')], default=None, help_text='External system this item derives', null=True, verbose_name='External System')),
('ticket_type', models.IntegerField(choices=[(1, 'Request'), (2, 'Incident'), (3, 'Change'), (4, 'Problem'), (5, 'Issue'), (6, 'Merge Request'), (7, 'Project Task')], help_text='The type of ticket this is', validators=[core.models.ticket.ticket.Ticket.validation_ticket_type], verbose_name='Type')),
('ticket_type', models.IntegerField(choices=[(1, 'Request'), (2, 'Incident'), (3, 'Change'), (4, 'Problem'), (5, 'Issue'), (6, 'Merge Request'), (7, 'Project Task')], help_text='The type of ticket this is', validators=[core.models.ticket.Ticket.validation_ticket_type], verbose_name='Type')),
('is_deleted', models.BooleanField(default=False, help_text='Is the ticket deleted? And ready to be purged', verbose_name='Deleted')),
('date_closed', models.DateTimeField(blank=True, help_text='Date ticket closed', null=True, verbose_name='Closed Date')),
('planned_start_date', models.DateTimeField(blank=True, help_text='Planned start date.', null=True, verbose_name='Planned Start Date')),

View File

@ -0,0 +1,49 @@
# Generated by Django 5.0.8 on 2024-09-16 05:19
import core.models.ticket
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('core', '0007_alter_ticket_milestone_alter_ticket_project'),
]
operations = [
migrations.AlterField(
model_name='ticket',
name='external_system',
field=models.IntegerField(blank=True, choices=[], default=None, help_text='External system this item derives', null=True, verbose_name='External System'),
),
migrations.AlterField(
model_name='ticket',
name='impact',
field=models.IntegerField(blank=True, choices=[], default=('1', 'Very Low'), help_text='End user assessed impact', null=True, verbose_name='Impact'),
),
migrations.AlterField(
model_name='ticket',
name='priority',
field=models.IntegerField(blank=True, choices=[], default=('1', 'Very Low'), help_text='What priority should this ticket for its completion', null=True, verbose_name='Priority'),
),
migrations.AlterField(
model_name='ticket',
name='status',
field=models.IntegerField(choices=[], default=('2', 'New'), help_text='Status of ticket', verbose_name='Status'),
),
migrations.AlterField(
model_name='ticket',
name='ticket_type',
field=models.IntegerField(choices=[], help_text='The type of ticket this is', validators=[core.models.ticket.Ticket.validation_ticket_type], verbose_name='Type'),
),
migrations.AlterField(
model_name='ticket',
name='urgency',
field=models.IntegerField(blank=True, choices=[], default=('1', 'Very Low'), help_text='How urgent is this tickets resolution for the user?', null=True, verbose_name='Urgency'),
),
migrations.AlterField(
model_name='ticketcomment',
name='external_system',
field=models.IntegerField(blank=True, choices=[], default=None, help_text='External system this item derives', null=True, verbose_name='External System'),
),
]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ from access.models import TenancyObject, Team
from core.lib.slash_commands import SlashCommands
from .ticket import Ticket
from . import Ticket
from .ticket_comment_category import TicketCommentCategory

View File

@ -0,0 +1,109 @@
class TicketValues:
_DRAFT_INT = '1'
_NEW_INT = '2'
_ASSIGNED_INT = '3'
_CLOSED_INT = '4'
_INVALID_INT = '5'
#
# ITSM statuses
#
# Requests / Incidents / Problems / Changed
_ASSIGNED_PLANNING_INT = '6'
_PENDING_INT = '7'
# Requests / Incidents / Problems
_SOLVED_INT = '8'
# Problem
_OBSERVATION_INT = '9'
# Problems / Changes
_ACCEPTED_INT = '10'
# Changes
_EVALUATION_INT = '11'
_APPROVALS_INT = '12'
_TESTING_INT = '13'
_QUALIFICATION_INT = '14'
_APPLIED_INT = '15'
_REVIEW_INT = '16'
_CANCELLED_INT = '17'
_REFUSED_INT = '18'
_DRAFT_STR = 'Draft'
_NEW_STR = 'New'
_ASSIGNED_STR = 'Assigned'
_CLOSED_STR = 'Closed'
_INVALID_STR = 'Invalid'
#
# ITSM statuses
#
# Requests / Incidents / Problems / Changed
_ASSIGNED_PLANNING_STR = 'Assigned (Planning)'
_PENDING_STR = 'Pending'
# Requests / Incidents / Problems
_SOLVED_STR = 'Solved'
# Problem
_OBSERVATION_STR = 'Under Observation'
# Problems / Changes
_ACCEPTED_STR = 'Accepted'
# Changes
_EVALUATION_STR = 'Evaluation'
_APPROVALS_STR = 'Approvals'
_TESTING_STR = 'Testing'
_QUALIFICATION_STR = 'Qualification'
_APPLIED_STR = 'Applied'
_REVIEW_STR = 'Review'
_CANCELLED_STR = 'Cancelled'
_REFUSED_STR = 'Refused'
class ExternalSystem:
_GITHUB_INT = '1'
_GITHUB_VALUE = 'Github'
_GITLAB_INT = '2'
_GITLAB_VALUE = 'Gitlab'
_CUSTOM_1_INT = '9999'
_CUSTOM_1_VALUE = 'Custom #1 (Imported)'
_CUSTOM_2_INT = '9998'
_CUSTOM_2_VALUE = 'Custom #2 (Imported)'
_CUSTOM_3_INT = '9997'
_CUSTOM_3_VALUE = 'Custom #3 (Imported)'
_CUSTOM_4_INT = '9996'
_CUSTOM_4_VALUE = 'Custom #4 (Imported)'
_CUSTOM_5_INT = '9995'
_CUSTOM_5_VALUE = 'Custom #5 (Imported)'
_CUSTOM_6_INT = '9994'
_CUSTOM_6_VALUE = 'Custom #6 (Imported)'
_CUSTOM_7_INT = '9993'
_CUSTOM_7_VALUE = 'Custom #7 (Imported)'
_CUSTOM_8_INT = '9992'
_CUSTOM_8_VALUE = 'Custom #8 (Imported)'
_CUSTOM_9_INT = '9991'
_CUSTOM_9_VALUE = 'Custom #9 (Imported)'

View File

@ -6,7 +6,7 @@ from django.test import TestCase
from app.tests.abstract.models import TenancyModel
from core.models.ticket.ticket import Ticket
from core.models.ticket import Ticket
class TicketModel(

View File

@ -16,7 +16,7 @@ from app.tests.abstract.model_permissions import ModelPermissions
from project_management.models.projects import Project
from core.models.ticket.ticket import Ticket, RelatedTickets
from core.models.ticket import Ticket, RelatedTickets
from core.models.ticket.ticket_comment import TicketComment
from core.tests.unit.ticket.ticket_permission.field_based_permissions import ITSMTicketFieldBasedPermissions, ProjectTicketFieldBasedPermissions

View File

@ -10,7 +10,7 @@ from access.models import Organization, Team, TeamUsers, Permission
from api.tests.abstract.api_permissions import APIPermissions
from core.models.ticket.ticket import Ticket
from core.models.ticket import Ticket
class TicketPermissionsAPI(APIPermissions):

View File

@ -7,7 +7,7 @@ from django.core.exceptions import ValidationError
from django.shortcuts import reverse
from django.test import Client
from core.models.ticket.ticket import Ticket
from core.models.ticket import Ticket
class TicketFieldPermissionsAddUser:

View File

@ -16,7 +16,7 @@ from app.tests.abstract.model_permissions import ModelPermissions, ModelPermissi
from project_management.models.projects import Project
from core.models.ticket.ticket import Ticket, RelatedTickets
from core.models.ticket import Ticket, RelatedTickets
from core.models.ticket.ticket_comment import TicketComment

View File

@ -11,7 +11,7 @@ from access.models import Organization, Team, TeamUsers, Permission
from api.tests.abstract.api_permissions import APIPermissions, APIPermissionAdd, APIPermissionChange
from core.models.ticket.ticket import Ticket
from core.models.ticket import Ticket
from core.models.ticket.ticket_comment import TicketComment

View File

@ -6,7 +6,7 @@ from django_celery_results.models import TaskResult
from access.mixin import OrganizationPermission
from core.forms.related_ticket import RelatedTicketForm
from core.models.ticket.ticket import RelatedTickets
from core.models.ticket import RelatedTickets
from core.views.common import AddView, ChangeView, DeleteView, IndexView
from settings.models.user_settings import UserSettings

View File

@ -7,7 +7,7 @@ from django_celery_results.models import TaskResult
from access.mixin import OrganizationPermission
from core.forms.ticket import DetailForm, TicketForm
from core.models.ticket.ticket import Ticket
from core.models.ticket import Ticket
from core.views.common import AddView, ChangeView, DeleteView, IndexView
from settings.models.user_settings import UserSettings

View File

@ -112,7 +112,7 @@ class Project(ProjectCommonFieldsName):
duration_project: int = 0
from core.models.ticket.ticket import Ticket
from core.models.ticket import Ticket
tickets = Ticket.objects.filter(
project = self.id

View File

@ -10,7 +10,7 @@ from access.mixin import OrganizationPermission
from core.forms.comment import AddNoteForm
from core.models.notes import Notes
from core.models.ticket.ticket import Ticket
from core.models.ticket import Ticket
from core.views.common import AddView, ChangeView, DeleteView, DisplayView, IndexView
from project_management.forms.project import Project, ProjectForm, DetailForm

View File

@ -10,7 +10,7 @@ from access.mixin import OrganizationPermission
from core.forms.comment import AddNoteForm
from core.models.notes import Notes
from core.models.ticket.ticket import Ticket
from core.models.ticket import Ticket
from core.views.common import AddView, ChangeView, DeleteView, DisplayView, IndexView
from project_management.forms.project_milestone import DetailForm, ProjectMilestone, ProjectMilestoneForm