Change Working status to Available

This commit is contained in:
Keannu Christian Bernasol 2023-12-16 15:00:13 +08:00
parent 8abf689544
commit 9e16bda918
6 changed files with 110 additions and 33 deletions

View file

@ -0,0 +1,23 @@
# Generated by Django 4.2.7 on 2023-12-16 06:53
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('equipments', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='equipmentinstance',
name='status',
field=models.CharField(choices=[('Available', 'Available'), ('Broken', 'Broken'), ('Borrowed', 'Borrowed')], default='Available', max_length=20),
),
migrations.AlterField(
model_name='historicalequipmentinstance',
name='status',
field=models.CharField(choices=[('Available', 'Available'), ('Broken', 'Broken'), ('Borrowed', 'Borrowed')], default='Available', max_length=20),
),
]

View file

@ -24,13 +24,13 @@ class Equipment(models.Model):
class EquipmentInstance(models.Model):
EQUIPMENT_INSTANCE_STATUS_CHOICES = (
('Working', 'Working'),
('Available', 'Available'),
('Broken', 'Broken'),
('Borrowed', 'Borrowed'),
)
equipment = models.ForeignKey(Equipment, on_delete=models.CASCADE)
status = models.CharField(
max_length=20, choices=EQUIPMENT_INSTANCE_STATUS_CHOICES, default='PENDING')
max_length=20, choices=EQUIPMENT_INSTANCE_STATUS_CHOICES, default='Available')
remarks = models.TextField(max_length=512, null=True)
date_added = models.DateTimeField(default=now, editable=False)
last_updated = models.DateTimeField(auto_now=True, editable=False)
@ -46,12 +46,12 @@ def create_superuser(sender, **kwargs):
EQUIPMENT, CREATED = Equipment.objects.get_or_create(
name="Pyrex Beaker", description="", category="Glassware")
EQUIPMENT_INSTANCE, CREATED = EquipmentInstance.objects.get_or_create(
equipment=EQUIPMENT, status="Working", remarks="First beaker of equipment tracker!")
equipment=EQUIPMENT, status="Available", remarks="First beaker of equipment tracker!")
EQUIPMENT, CREATED = Equipment.objects.get_or_create(
name="Bunsen Burner", description="", category="Miscellaneous")
EQUIPMENT_INSTANCE, CREATED = EquipmentInstance.objects.get_or_create(
equipment=EQUIPMENT, status="Working", remarks="First bunsen burner of equipment tracker!")
equipment=EQUIPMENT, status="Available", remarks="First bunsen burner of equipment tracker!")
EQUIPMENT, CREATED = Equipment.objects.get_or_create(
name="Microscope", description="", category="Miscellaneous")
EQUIPMENT_INSTANCE, CREATED = EquipmentInstance.objects.get_or_create(
equipment=EQUIPMENT, status="Working", remarks="First microscope of equipment tracker!")
equipment=EQUIPMENT, status="Available", remarks="First microscope of equipment tracker!")

View file

@ -159,12 +159,12 @@ class EquipmentInstanceSerializer(serializers.HyperlinkedModelSerializer):
equipments=instance, resolved=False).first()
# If there is one
if associated_breakage_report:
# Check if all the equipments of the currently associated BreakageReport are "Working"
all_working = all(
eq.status == 'Working' for eq in associated_breakage_report.equipments.all())
# Check if all the equipments of the currently associated BreakageReport are "Available"
all_available = all(
eq.status == 'Available' for eq in associated_breakage_report.equipments.all())
# If all the equipments are "Working", set Breakage Report to be resolved (resolved=True)
if all_working:
# If all the equipments are "Available", set Breakage Report to be resolved (resolved=True)
if all_available:
associated_breakage_report.resolved = True
associated_breakage_report.save()