refactor(itam): Migration for updating model inheritance for DeviceDeviceOperatingSystem model
ref:#817 #801
This commit is contained in:
@ -0,0 +1,69 @@
|
|||||||
|
# Generated by Django 5.1.9 on 2025-06-11 08:24
|
||||||
|
|
||||||
|
import access.models.tenancy_abstract
|
||||||
|
import django.db.models.deletion
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("access", "0016_remove_tenant_slug_alter_tenant_manager_and_more"),
|
||||||
|
("itam", "0016_alter_devicemodel_manufacturer"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="deviceoperatingsystem",
|
||||||
|
name="is_global",
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="deviceoperatingsystem",
|
||||||
|
name="model_notes",
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="deviceoperatingsystem",
|
||||||
|
name="id",
|
||||||
|
field=models.AutoField(
|
||||||
|
help_text="ID of the item",
|
||||||
|
primary_key=True,
|
||||||
|
serialize=False,
|
||||||
|
unique=True,
|
||||||
|
verbose_name="ID",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="deviceoperatingsystem",
|
||||||
|
name="installdate",
|
||||||
|
field=models.DateTimeField(
|
||||||
|
blank=True,
|
||||||
|
help_text="Date and time detected as installed",
|
||||||
|
null=True,
|
||||||
|
verbose_name="Install Date",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="deviceoperatingsystem",
|
||||||
|
name="operating_system_version",
|
||||||
|
field=models.ForeignKey(
|
||||||
|
help_text="Operating system version",
|
||||||
|
on_delete=django.db.models.deletion.PROTECT,
|
||||||
|
to="itam.operatingsystemversion",
|
||||||
|
verbose_name="Operating System/Version",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="deviceoperatingsystem",
|
||||||
|
name="organization",
|
||||||
|
field=models.ForeignKey(
|
||||||
|
help_text="Tenant this belongs to",
|
||||||
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
|
related_name="+",
|
||||||
|
to="access.tenant",
|
||||||
|
validators=[
|
||||||
|
access.models.tenancy_abstract.TenancyAbstractModel.validatate_organization_exists
|
||||||
|
],
|
||||||
|
verbose_name="Tenant",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
@ -685,8 +685,13 @@ class DeviceSoftware(DeviceCommonFields, SaveHistory):
|
|||||||
return history
|
return history
|
||||||
|
|
||||||
|
|
||||||
class DeviceOperatingSystem(DeviceCommonFields, SaveHistory):
|
class DeviceOperatingSystem(
|
||||||
|
CenturionModel,
|
||||||
|
):
|
||||||
|
|
||||||
|
_audit_enabled = False
|
||||||
|
|
||||||
|
_notes_enabled = False
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
||||||
@ -698,6 +703,7 @@ class DeviceOperatingSystem(DeviceCommonFields, SaveHistory):
|
|||||||
|
|
||||||
verbose_name_plural = 'Device Operating Systems'
|
verbose_name_plural = 'Device Operating Systems'
|
||||||
|
|
||||||
|
model_notes = None
|
||||||
|
|
||||||
device = models.OneToOneField(
|
device = models.OneToOneField(
|
||||||
Device,
|
Device,
|
||||||
@ -714,9 +720,9 @@ class DeviceOperatingSystem(DeviceCommonFields, SaveHistory):
|
|||||||
blank = False,
|
blank = False,
|
||||||
help_text = 'Operating system version',
|
help_text = 'Operating system version',
|
||||||
null = False,
|
null = False,
|
||||||
on_delete = models.CASCADE,
|
on_delete = models.PROTECT,
|
||||||
verbose_name = 'Operating System/Version',
|
verbose_name = 'Operating System/Version',
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
version = models.CharField(
|
version = models.CharField(
|
||||||
@ -729,7 +735,6 @@ class DeviceOperatingSystem(DeviceCommonFields, SaveHistory):
|
|||||||
|
|
||||||
installdate = models.DateTimeField(
|
installdate = models.DateTimeField(
|
||||||
blank = True,
|
blank = True,
|
||||||
default = None,
|
|
||||||
help_text = 'Date and time detected as installed',
|
help_text = 'Date and time detected as installed',
|
||||||
null = True,
|
null = True,
|
||||||
verbose_name = 'Install Date',
|
verbose_name = 'Install Date',
|
||||||
@ -762,35 +767,19 @@ class DeviceOperatingSystem(DeviceCommonFields, SaveHistory):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
def get_url_kwargs(self) -> dict:
|
def get_url_kwargs(self, many = False) -> dict:
|
||||||
|
|
||||||
return {
|
kwargs = super().get_url_kwargs( many = many )
|
||||||
|
|
||||||
|
kwargs.update({
|
||||||
'device_id': self.device.id,
|
'device_id': self.device.id,
|
||||||
'pk': self.pk
|
})
|
||||||
}
|
|
||||||
|
|
||||||
|
return kwargs
|
||||||
def get_url_kwargs_notes(self):
|
|
||||||
|
|
||||||
return FeatureNotUsed
|
|
||||||
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def parent_object(self):
|
def parent_object(self):
|
||||||
""" Fetch the parent object """
|
""" Fetch the parent object """
|
||||||
|
|
||||||
return self.device
|
return self.device
|
||||||
|
|
||||||
|
|
||||||
def save_history(self, before: dict, after: dict) -> bool:
|
|
||||||
|
|
||||||
from itam.models.device_operating_system_history import DeviceOperatingSystemHistory
|
|
||||||
|
|
||||||
history = super().save_history(
|
|
||||||
before = before,
|
|
||||||
after = after,
|
|
||||||
history_model = DeviceOperatingSystemHistory,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
return history
|
|
||||||
|
Reference in New Issue
Block a user