2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-17 12:35:46 +00:00

Add order status field

- Display status field in PurchaseOrder list view
This commit is contained in:
Oliver Walters
2019-06-04 23:09:51 +10:00
parent da53de844a
commit 76a72be926
11 changed files with 112 additions and 12 deletions

View File

@ -12,6 +12,7 @@ class PurchaseOrderAdmin(admin.ModelAdmin):
list_display = (
'reference',
'supplier',
'status',
'description',
'creation_date'
)

View File

@ -0,0 +1,18 @@
# Generated by Django 2.2 on 2019-06-04 12:52
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('order', '0003_auto_20190604_2226'),
]
operations = [
migrations.AddField(
model_name='purchaseorder',
name='status',
field=models.PositiveIntegerField(choices=[(10, 'Pending'), (20, 'Placed'), (30, 'Complete'), (40, 'Cancelled'), (50, 'Lost'), (60, 'Returned')], default=10, help_text='Order status'),
),
]

View File

@ -8,6 +8,8 @@ from part.models import Part
from company.models import Company
from stock.models import StockItem
from InvenTree.status_codes import OrderStatus
class Order(models.Model):
""" Abstract model for an order.
@ -26,13 +28,17 @@ class Order(models.Model):
"""
# Order status codes
PENDING = 10 # Order is pending (not yet placed)
PLACED = 20 # Order has been placed
RECEIVED = 30 # Order has been received
CANCELLED = 40 # Order was cancelled
LOST = 50 # Order was lost
RETURNED = 60 # Order was returned
ORDER_PREFIX = ""
def __str__(self):
el = []
if self.ORDER_PREFIX:
el.append(self.ORDER_PREFIX)
el.append(self.reference)
return " ".join(el)
class Meta:
abstract = True
@ -45,6 +51,9 @@ class Order(models.Model):
creation_date = models.DateField(auto_now=True, editable=False)
status = models.PositiveIntegerField(default=OrderStatus.PENDING, choices=OrderStatus.items(),
help_text='Order status')
created_by = models.ForeignKey(User,
on_delete=models.SET_NULL,
blank=True, null=True,
@ -64,6 +73,8 @@ class PurchaseOrder(Order):
"""
ORDER_PREFIX = "PO"
supplier = models.ForeignKey(Company, on_delete=models.CASCADE,
limit_choices_to={
'is_supplier': True,

View File

@ -0,0 +1,13 @@
{% if order.status == order.PENDING %}
<span class='label label-info'>
{% elif order.status == order.PLACED %}
<span class='label label-primary'>
{% elif order.status == order.COMPLETE %}
<span class='label label-success'>
{% elif order.status == order.CANCELLED or order.status == order.RETURNED %}
<span class='label label-warning'>
{% else %}
<span class='label label-danger'>
{% endif %}
{{ order.get_status_display }}
</span>