diff --git a/InvenTree/stock/migrations/0020_auto_20200206_1213.py b/InvenTree/stock/migrations/0020_auto_20200206_1213.py new file mode 100644 index 0000000000..34be29fd39 --- /dev/null +++ b/InvenTree/stock/migrations/0020_auto_20200206_1213.py @@ -0,0 +1,19 @@ +# Generated by Django 2.2.9 on 2020-02-06 12:13 + +from django.db import migrations +import markdownx.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('stock', '0019_auto_20200202_1024'), + ] + + operations = [ + migrations.AlterField( + model_name='stockitem', + name='notes', + field=markdownx.models.MarkdownxField(blank=True, help_text='Stock Item Notes', null=True), + ), + ] diff --git a/InvenTree/stock/models.py b/InvenTree/stock/models.py index d0bc23f14d..57f390415f 100644 --- a/InvenTree/stock/models.py +++ b/InvenTree/stock/models.py @@ -360,7 +360,7 @@ class StockItem(models.Model): choices=StockStatus.items(), validators=[MinValueValidator(0)]) - notes = MarkdownxField(blank=True, help_text=_('Stock Item Notes')) + notes = MarkdownxField(blank=True, null=True, help_text=_('Stock Item Notes')) # If stock item is incoming, an (optional) ETA field # expected_arrival = models.DateField(null=True, blank=True) diff --git a/InvenTree/stock/views.py b/InvenTree/stock/views.py index 9b5c65f37a..9d5e2b5dc4 100644 --- a/InvenTree/stock/views.py +++ b/InvenTree/stock/views.py @@ -884,28 +884,31 @@ class StockItemCreate(AjaxCreateView): form.errors['serial_numbers'] = [_('The following serial numbers already exist: ({sn})'.format(sn=exists))] valid = False - # At this point we have a list of serial numbers which we know are valid, - # and do not currently exist - form.clean() + else: + # At this point we have a list of serial numbers which we know are valid, + # and do not currently exist + form.clean() - data = form.cleaned_data + form_data = form.cleaned_data - for serial in serials: - # Create a new stock item for each serial number - item = StockItem( - part=part, - quantity=1, - serial=serial, - supplier_part=data.get('supplier_part'), - location=data.get('location'), - batch=data.get('batch'), - delete_on_deplete=False, - status=data.get('status'), - notes=data.get('notes'), - URL=data.get('URL'), - ) + for serial in serials: + # Create a new stock item for each serial number + item = StockItem( + part=part, + quantity=1, + serial=serial, + supplier_part=form_data.get('supplier_part'), + location=form_data.get('location'), + batch=form_data.get('batch'), + delete_on_deplete=False, + status=form_data.get('status'), + URL=form_data.get('URL'), + ) - item.save(user=request.user) + item.save(user=request.user) + + data['success'] = _('Created {n} new stock items'.format(n=len(serials))) + valid = True except ValidationError as e: form.errors['serial_numbers'] = e.messages