88 lines
1.7 KiB
Python
88 lines
1.7 KiB
Python
import uuid
|
|
|
|
from django.db import models
|
|
from django.contrib import admin
|
|
from django.db.models.functions import Now
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from ..misc.units import Units
|
|
from .formone import FormOne
|
|
|
|
# Part identifies a part with its part number and associated properties:
|
|
# such as torage quantity, min reorder quantities and expiry date.
|
|
|
|
class PartAdmin(admin.ModelAdmin):
|
|
list_display = ()
|
|
list_filter = ()
|
|
|
|
class Part(models.Model):
|
|
id = models.UUIDField(
|
|
primary_key=True,
|
|
default=uuid.uuid4,
|
|
db_index=True,
|
|
editable=False,
|
|
serialize=str
|
|
)
|
|
|
|
reg_date = models.DateTimeField(
|
|
auto_created=True,
|
|
editable=False,
|
|
db_default=Now()
|
|
)
|
|
|
|
part_number = models.CharField(
|
|
db_index=True,
|
|
max_length=64,
|
|
null=False,
|
|
unique=True
|
|
)
|
|
|
|
serial_number = models.CharField(
|
|
db_index=True,
|
|
max_length=64,
|
|
null=True,
|
|
unique=True
|
|
)
|
|
|
|
quantity = models.PositiveIntegerField(
|
|
null=False,
|
|
default=0
|
|
)
|
|
|
|
unit = models.CharField(
|
|
choices=Units,
|
|
default=Units.NUM,
|
|
null=False
|
|
)
|
|
|
|
last_stock = models.DateField(
|
|
null=False,
|
|
auto_created=True,
|
|
editable=False,
|
|
db_default=Now()
|
|
)
|
|
|
|
expiry_time = models.DurationField(
|
|
null=True,
|
|
)
|
|
|
|
min_reorder = models.PositiveIntegerField(
|
|
null=True
|
|
)
|
|
|
|
properties = models.JSONField(
|
|
null=True
|
|
)
|
|
|
|
form_one = models.OneToOneField(
|
|
FormOne,
|
|
on_delete=models.DO_NOTHING,
|
|
db_index=True,
|
|
unique=True,
|
|
null=True
|
|
)
|
|
|
|
active = models.BooleanField(
|
|
db_default=True
|
|
)
|