Skip to content

Commit 394c17c

Browse files
committed
refactor model into module in line with how it should be done
1 parent d8cf230 commit 394c17c

4 files changed

Lines changed: 36 additions & 24 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import dojo.cicd_infrastructure.admin # noqa: F401

dojo/cicd_infrastructure/admin.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from django.contrib import admin
2+
3+
from dojo.cicd_infrastructure.models import CICDInfrastructure
4+
5+
6+
@admin.register(CICDInfrastructure)
7+
class CICDInfrastructureAdmin(admin.ModelAdmin):
8+
9+
"""Admin support for the CICDInfrastructure model."""

dojo/cicd_infrastructure/models.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from django.db import models
2+
from django.utils.translation import gettext as _
3+
4+
5+
class CICDInfrastructure(models.Model):
6+
INFRASTRUCTURE_TYPE_CHOICES = (
7+
("build_server", "Build Server"),
8+
("scm_server", "SCM Server"),
9+
("orchestration", "Orchestration Engine"),
10+
)
11+
12+
name = models.CharField(max_length=200)
13+
description = models.CharField(max_length=2000, blank=True, default="")
14+
url = models.URLField(max_length=2000, blank=True, default="", help_text=_("Public URL of the tool (e.g., https://jenkins.company.com)"))
15+
infrastructure_type = models.CharField(max_length=30, choices=INFRASTRUCTURE_TYPE_CHOICES)
16+
17+
class Meta:
18+
ordering = ["name"]
19+
unique_together = [("name", "infrastructure_type")]
20+
21+
def __str__(self):
22+
return self.name

dojo/models.py

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
from titlecase import titlecase
4646

4747
from dojo.base_models.base import BaseModel
48+
from dojo.cicd_infrastructure.models import CICDInfrastructure
4849
from dojo.validators import cvss3_validator, cvss4_validator
4950

5051
if TYPE_CHECKING:
@@ -1337,26 +1338,6 @@ def __str__(self):
13371338
return self.name
13381339

13391340

1340-
class CICDInfrastructure(models.Model):
1341-
INFRASTRUCTURE_TYPE_CHOICES = (
1342-
("build_server", "Build Server"),
1343-
("scm_server", "SCM Server"),
1344-
("orchestration", "Orchestration Engine"),
1345-
)
1346-
1347-
name = models.CharField(max_length=200)
1348-
description = models.CharField(max_length=2000, blank=True, default="")
1349-
url = models.URLField(max_length=2000, blank=True, default="", help_text=_("Public URL of the tool (e.g., https://jenkins.company.com)"))
1350-
infrastructure_type = models.CharField(max_length=30, choices=INFRASTRUCTURE_TYPE_CHOICES)
1351-
1352-
class Meta:
1353-
ordering = ["name"]
1354-
unique_together = [("name", "infrastructure_type")]
1355-
1356-
def __str__(self):
1357-
return self.name
1358-
1359-
13601341
class Product_API_Scan_Configuration(models.Model):
13611342
product = models.ForeignKey(Product, null=False, blank=False, on_delete=models.CASCADE)
13621343
tool_configuration = models.ForeignKey(Tool_Configuration, null=False, blank=False, on_delete=models.CASCADE)
@@ -1493,9 +1474,9 @@ class Engagement(BaseModel):
14931474
branch_tag = models.CharField(editable=True, max_length=150,
14941475
null=True, blank=True, help_text=_("Tag or branch of the product the engagement tested."), verbose_name=_("Branch/Tag"))
14951476
source_code_management_uri = models.URLField(max_length=600, null=True, blank=True, editable=True, verbose_name=_("Repo"), help_text=_("Resource link to source code"))
1496-
cicd_build_server = models.ForeignKey("CICDInfrastructure", null=True, blank=True, related_name="engagements_as_build_server", on_delete=models.SET_NULL, limit_choices_to={"infrastructure_type": "build_server"}, verbose_name=_("Build Server"), help_text=_("Build server used for this CI/CD engagement"))
1497-
cicd_scm_server = models.ForeignKey("CICDInfrastructure", null=True, blank=True, related_name="engagements_as_scm_server", on_delete=models.SET_NULL, limit_choices_to={"infrastructure_type": "scm_server"}, verbose_name=_("SCM Server"), help_text=_("Source code management server used for this CI/CD engagement"))
1498-
cicd_orchestration_engine = models.ForeignKey("CICDInfrastructure", null=True, blank=True, related_name="engagements_as_orchestration", on_delete=models.SET_NULL, limit_choices_to={"infrastructure_type": "orchestration"}, verbose_name=_("Orchestration Engine"), help_text=_("Orchestration engine used for this CI/CD engagement"))
1477+
cicd_build_server = models.ForeignKey(CICDInfrastructure, null=True, blank=True, related_name="engagements_as_build_server", on_delete=models.SET_NULL, limit_choices_to={"infrastructure_type": "build_server"}, verbose_name=_("Build Server"), help_text=_("Build server used for this CI/CD engagement"))
1478+
cicd_scm_server = models.ForeignKey(CICDInfrastructure, null=True, blank=True, related_name="engagements_as_scm_server", on_delete=models.SET_NULL, limit_choices_to={"infrastructure_type": "scm_server"}, verbose_name=_("SCM Server"), help_text=_("Source code management server used for this CI/CD engagement"))
1479+
cicd_orchestration_engine = models.ForeignKey(CICDInfrastructure, null=True, blank=True, related_name="engagements_as_orchestration", on_delete=models.SET_NULL, limit_choices_to={"infrastructure_type": "orchestration"}, verbose_name=_("Orchestration Engine"), help_text=_("Orchestration engine used for this CI/CD engagement"))
14991480
deduplication_on_engagement = models.BooleanField(default=False, verbose_name=_("Deduplication within this engagement only"), help_text=_("If enabled deduplication will only mark a finding in this engagement as duplicate of another finding if both findings are in this engagement. If disabled, deduplication is on the product level."))
15001481

15011482
tags = TagField(blank=True, force_lowercase=True, help_text=_("Add tags that help describe this engagement. Choose from the list or add new tags. Press Enter key to add."))
@@ -4445,7 +4426,6 @@ def __str__(self):
44454426
admin.site.register(FileUpload)
44464427
admin.site.register(FileAccessToken)
44474428
admin.site.register(Engagement)
4448-
admin.site.register(CICDInfrastructure)
44494429
admin.site.register(Risk_Acceptance)
44504430
admin.site.register(Check_List)
44514431
admin.site.register(Test_Type)

0 commit comments

Comments
 (0)