mirror of
https://github.com/lemeow125/EquipmentTracker-Backend.git
synced 2024-11-17 06:09:26 +08:00
39 lines
1.5 KiB
Python
39 lines
1.5 KiB
Python
from django.db import models
|
|
from django.utils.timezone import now
|
|
from simple_history.models import HistoricalRecords
|
|
from django.db.models.signals import post_migrate
|
|
from django.dispatch import receiver
|
|
from equipments.models import EquipmentInstance
|
|
|
|
|
|
class EquipmentGroup(models.Model):
|
|
name = models.CharField(max_length=200)
|
|
remarks = models.TextField(max_length=512)
|
|
date_added = models.DateTimeField(default=now, editable=False)
|
|
last_updated = models.DateTimeField(auto_now=True, editable=False)
|
|
equipments = models.ManyToManyField(EquipmentInstance)
|
|
|
|
@property
|
|
def status(self):
|
|
if self.equipments.filter(status='Broken').exists():
|
|
return 'Broken'
|
|
elif self.equipments.filter(status='Under Maintenance').exists():
|
|
return 'Under Maintenance'
|
|
elif self.equipments.filter(status='Decomissioned').exists():
|
|
return 'Decomissioned'
|
|
else:
|
|
return 'Working'
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|
|
@receiver(post_migrate)
|
|
def create_superuser(sender, **kwargs):
|
|
if sender.name == 'equipment_groups':
|
|
PC = EquipmentInstance.objects.filter(id=1).first().id
|
|
KEYBOARD = EquipmentInstance.objects.filter(id=2).first().id
|
|
MOUSE = EquipmentInstance.objects.filter(id=3).first().id
|
|
GROUP, CREATED = EquipmentGroup.objects.get_or_create(
|
|
name="HP All-In-One PC Set", remarks="First PC set of citc tracker!")
|
|
GROUP.equipments.set([PC, KEYBOARD, MOUSE])
|