generalising for done()

This commit is contained in:
Matthias 2021-05-18 10:47:56 +02:00
parent ad4902ea44
commit 64f8846e99
3 changed files with 29 additions and 42 deletions

View File

@ -450,6 +450,33 @@ class FileManagementFormView(MultiStepFormView):
""" """
pass pass
def get_clean_items(self):
""" returns dict with all cleaned values """
items = {}
for form_key, form_value in self.get_all_cleaned_data().items():
# Split key from row value
try:
(field, idx) = form_key.split('-')
except ValueError:
continue
try:
if idx not in items:
# Insert into items
items.update({
idx: {
self.form_field_map[field]: form_value,
}
})
else:
# Update items
items[idx][self.form_field_map[field]] = form_value
except KeyError:
pass
return items
def check_field_selection(self, form): def check_field_selection(self, form):
""" Check field matching """ """ Check field matching """

View File

@ -767,26 +767,7 @@ class PurchaseOrderUpload(FileManagementFormView):
""" Once all the data is in, process it to add PurchaseOrderLineItem instances to the order """ """ Once all the data is in, process it to add PurchaseOrderLineItem instances to the order """
order = self.get_order() order = self.get_order()
items = self.get_clean_items()
items = {}
for form_key, form_value in self.get_all_cleaned_data().items():
# Split key from row value
try:
(field, idx) = form_key.split('-')
except ValueError:
continue
if idx not in items:
# Insert into items
items.update({
idx: {
self.form_field_map[field]: form_value,
}
})
else:
# Update items
items[idx][self.form_field_map[field]] = form_value
# Create PurchaseOrderLineItem instances # Create PurchaseOrderLineItem instances
for purchase_order_item in items.values(): for purchase_order_item in items.values():

View File

@ -822,28 +822,7 @@ class PartImport(FileManagementFormView):
def done(self, form_list, **kwargs): def done(self, form_list, **kwargs):
""" Create items """ """ Create items """
items = {} items = self.get_clean_items()
for form_key, form_value in self.get_all_cleaned_data().items():
# Split key from row value
try:
(field, idx) = form_key.split('-')
except ValueError:
continue
try:
if idx not in items:
# Insert into items
items.update({
idx: {
self.form_field_map[field]: form_value,
}
})
else:
# Update items
items[idx][self.form_field_map[field]] = form_value
except KeyError:
pass
import_done = 0 import_done = 0
import_error = [] import_error = []