Implement edit componant form and adapt UI

This commit is contained in:
2021-11-11 20:51:02 +01:00
parent e2aba765d4
commit 69ed1092e0
15 changed files with 276 additions and 41 deletions

View File

@@ -111,10 +111,10 @@ class EditComponentForm(forms.Form):
description = forms.CharField(required=False, widget=forms.Textarea)
# Look up these fields later. Will be autocompleted in UI
manufacturer = forms.CharField(required=False)
component_type = forms.CharField(required=False, label='Component Type')
pref_distri = forms.CharField(required=False, label='Preferred Distributor')
package = forms.CharField(required=False)
manufacturer = forms.CharField(required=False, initial='')
component_type = forms.CharField(required=False, label='Component Type', initial='')
pref_distri = forms.CharField(required=False, label='Preferred Distributor', initial='')
package = forms.CharField(required=False, initial='')
image = forms.ImageField(required=False)

View File

@@ -0,0 +1,18 @@
# Generated by Django 3.2.5 on 2021-11-11 19:46
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('parts', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='componenttype',
name='possible_parameter',
field=models.ManyToManyField(blank=True, to='parts.ComponentParameterType'),
),
]

View File

@@ -32,7 +32,7 @@ class ComponentType(models.Model):
ordering = ['class_name']
class_name = models.CharField(max_length=50, unique=True)
passive = models.BooleanField()
possible_parameter = models.ManyToManyField(ComponentParameterType)
possible_parameter = models.ManyToManyField(ComponentParameterType, blank=True)
def __str__(self):
return '[' + self.class_name + ']'

View File

@@ -15,6 +15,7 @@ from .models import Storage, Stock, Component, Distributor, Manufacturer, Packag
from .qr_parser import QrCodeValidator
from django.core.paginator import Paginator
from django.core.exceptions import ValidationError
from django.db import IntegrityError
from .forms import MyTestForm, AddSubStorageForm, DeleteStockForm, EditWatermarkForm, EditStockAmountForm, AddStockForm, EditComponentForm
from django.db.models import Q
from django.db.models.functions import Lower
@@ -403,9 +404,15 @@ class ComponentDetailView(LoginRequiredMixin, BaseTemplateMixin, DetailView):
form = EditComponentForm(instance=self.object, data=request.POST, files=request.FILES)
if form.is_valid():
form.save()
try:
form.save()
except IntegrityError as ie:
form.add_error('name', 'Component name, package, and manufacturer are not unique!')
form.add_error('package', 'Component name, package, and manufacturer are not unique!')
form.add_error('manufacturer', 'Component name, package, and manufacturer are not unique!')
form_error = True
self.object = self.get_object()
else:
print("Error")
form_error = True
context = self.get_context_data(**kwargs)