diff --git a/InvenTree/InvenTree/views.py b/InvenTree/InvenTree/views.py index bb7c1e6f5d..eb168ad547 100644 --- a/InvenTree/InvenTree/views.py +++ b/InvenTree/InvenTree/views.py @@ -322,7 +322,7 @@ class AjaxCreateView(AjaxMixin, CreateView): """ pass - def post_save(self, **kwargs): + def post_save(self, new_object, **kwargs): """ Hook for doing something with the created object after it is saved """ @@ -356,7 +356,7 @@ class AjaxCreateView(AjaxMixin, CreateView): self.pre_save() self.object = self.form.save() - self.post_save() + self.post_save(self.object) # Return the PK of the newly-created object data['pk'] = self.object.pk diff --git a/InvenTree/build/forms.py b/InvenTree/build/forms.py index 74227adb9c..e39d0ba9cf 100644 --- a/InvenTree/build/forms.py +++ b/InvenTree/build/forms.py @@ -35,10 +35,11 @@ class EditBuildForm(HelperForm): 'title', 'part', 'quantity', + 'batch', + 'take_from', + 'destination', 'parent', 'sales_order', - 'take_from', - 'batch', 'link', ] diff --git a/InvenTree/build/migrations/0022_auto_20201020_0953.py b/InvenTree/build/migrations/0022_auto_20201020_0953.py new file mode 100644 index 0000000000..62a82ce7fd --- /dev/null +++ b/InvenTree/build/migrations/0022_auto_20201020_0953.py @@ -0,0 +1,26 @@ +# Generated by Django 3.0.7 on 2020-10-20 09:53 + +from django.db import migrations, models +import django.db.models.deletion +import mptt.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('stock', '0052_stockitem_is_building'), + ('build', '0021_auto_20201020_0908'), + ] + + operations = [ + migrations.AddField( + model_name='build', + name='destination', + field=models.ForeignKey(blank=True, help_text='Select location where the completed items will be stored', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='incoming_builds', to='stock.StockLocation', verbose_name='Destination Location'), + ), + migrations.AlterField( + model_name='build', + name='parent', + field=mptt.fields.TreeForeignKey(blank=True, help_text='BuildOrder to which this build is allocated', null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='children', to='build.Build', verbose_name='Parent Build'), + ), + ] diff --git a/InvenTree/build/models.py b/InvenTree/build/models.py index f4a66e6b6f..ca4bb586fe 100644 --- a/InvenTree/build/models.py +++ b/InvenTree/build/models.py @@ -102,7 +102,7 @@ class Build(MPTTModel): blank=True, null=True, related_name='children', verbose_name=_('Parent Build'), - help_text=_('Parent build to which this build is allocated'), + help_text=_('BuildOrder to which this build is allocated'), ) part = models.ForeignKey( @@ -137,6 +137,15 @@ class Build(MPTTModel): help_text=_('Select location to take stock from for this build (leave blank to take from any stock location)') ) + destination = models.ForeignKey( + 'stock.StockLocation', + verbose_name=_('Destination Location'), + on_delete=models.SET_NULL, + related_name='incoming_builds', + null=True, blank=True, + help_text=_('Select location where the completed items will be stored'), + ) + quantity = models.PositiveIntegerField( verbose_name=_('Build Quantity'), default=1, diff --git a/InvenTree/build/templates/build/index.html b/InvenTree/build/templates/build/index.html index d72807f9f1..c15b2c2d33 100644 --- a/InvenTree/build/templates/build/index.html +++ b/InvenTree/build/templates/build/index.html @@ -43,7 +43,7 @@ InvenTree | {% trans "Build Orders" %} launchModalForm( "{% url 'build-create' %}", { - follow: true + follow: true, } ); }); diff --git a/InvenTree/build/views.py b/InvenTree/build/views.py index 1296e42fae..c1431b5730 100644 --- a/InvenTree/build/views.py +++ b/InvenTree/build/views.py @@ -412,8 +412,17 @@ class BuildCreate(AjaxCreateView): initials = super(BuildCreate, self).get_initial().copy() - # User has provided a Part ID - initials['part'] = self.request.GET.get('part', None) + part = self.request.GET.get('part', None) + + if part: + + try: + part = Part.objects.get(pk=part) + # User has provided a Part ID + initials['part'] = part + initials['destination'] = part.get_default_location() + except (ValueError, Part.DoesNotExist): + pass initials['reference'] = Build.getNextBuildNumber() diff --git a/InvenTree/part/templates/part/detail.html b/InvenTree/part/templates/part/detail.html index 2714347414..facb8003a6 100644 --- a/InvenTree/part/templates/part/detail.html +++ b/InvenTree/part/templates/part/detail.html @@ -41,7 +41,7 @@ {% if part.getLatestSerialNumber %} {{ part.getLatestSerialNumber }} {% else %} - {% trans "No serial numbers recorded" %} + {% trans "No serial numbers recorded" %} {% endif %}