diff --git a/InvenTree/order/migrations/0056_alter_salesorderallocation_shipment.py b/InvenTree/order/migrations/0056_alter_salesorderallocation_shipment.py new file mode 100644 index 0000000000..7a2c255be3 --- /dev/null +++ b/InvenTree/order/migrations/0056_alter_salesorderallocation_shipment.py @@ -0,0 +1,19 @@ +# Generated by Django 3.2.5 on 2021-10-25 11:40 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('order', '0055_auto_20211025_0645'), + ] + + operations = [ + migrations.AlterField( + model_name='salesorderallocation', + name='shipment', + field=models.ForeignKey(help_text='Sales order shipment reference', on_delete=django.db.models.deletion.CASCADE, to='order.salesordershipment', verbose_name='Shipment'), + ), + ] diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py index dcb63430a3..7277897488 100644 --- a/InvenTree/order/models.py +++ b/InvenTree/order/models.py @@ -1039,7 +1039,6 @@ class SalesOrderAllocation(models.Model): shipment = models.ForeignKey( SalesOrderShipment, on_delete=models.CASCADE, - null=True, blank=True, verbose_name=_('Shipment'), help_text=_('Sales order shipment reference'), ) diff --git a/InvenTree/order/test_migrations.py b/InvenTree/order/test_migrations.py index 6e4d6668d3..d62449613e 100644 --- a/InvenTree/order/test_migrations.py +++ b/InvenTree/order/test_migrations.py @@ -27,10 +27,12 @@ class TestForwardMigrations(MigratorTestCase): supplier = Company.objects.create( name='Supplier A', description='A great supplier!', - is_supplier=True + is_supplier=True, + is_customer=True, ) PurchaseOrder = self.old_state.apps.get_model('order', 'purchaseorder') + SalesOrder = self.old_state.apps.get_model('order', 'salesorder') # Create some orders for ii in range(10): @@ -45,19 +47,32 @@ class TestForwardMigrations(MigratorTestCase): with self.assertRaises(AttributeError): print(order.reference_int) + sales_order = SalesOrder.objects.create( + customer=supplier, + reference=f"{ii}-xyz", + description="A test sales order", + ) + + # Initially, the 'reference_int' field is unavailable + with self.assertRaises(AttributeError): + print(sales_order.reference_int) + def test_ref_field(self): """ Test that the 'reference_int' field has been created and is filled out correctly """ PurchaseOrder = self.new_state.apps.get_model('order', 'purchaseorder') + SalesOrder = self.new_state.apps.get_model('order', 'salesorder') for ii in range(10): - order = PurchaseOrder.objects.get(reference=f"{ii}-abcde") + po = PurchaseOrder.objects.get(reference=f"{ii}-abcde") + so = SalesOrder.objects.get(reference=f"{ii}-xyz") # The integer reference field must have been correctly updated - self.assertEqual(order.reference_int, ii) + self.assertEqual(po.reference_int, ii) + self.assertEqual(so.reference_int, ii) class TestShipmentMigration(MigratorTestCase): @@ -93,6 +108,10 @@ class TestShipmentMigration(MigratorTestCase): order.save() + # The "shipment" model does not exist yet + with self.assertRaises(LookupError): + self.old_state.apps.get_model('order', 'salesordershipment') + def test_shipment_creation(self): """ Check that a SalesOrderShipment has been created