diff --git a/InvenTree/common/files.py b/InvenTree/common/files.py index 1a4de55cb9..976daf992d 100644 --- a/InvenTree/common/files.py +++ b/InvenTree/common/files.py @@ -152,10 +152,25 @@ class FileManager: headers = [] for header in self.data.headers: - headers.append({ - 'name': header, - 'guess': self.guess_header(header) - }) + # Guess header + guess = self.guess_header(header, threshold=95) + # Check if already present + guess_exists = False + for idx, data in enumerate(headers): + if guess == data['guess']: + guess_exists = True + break + + if not guess_exists: + headers.append({ + 'name': header, + 'guess': guess + }) + else: + headers.append({ + 'name': header, + 'guess': None + }) return headers diff --git a/InvenTree/common/forms.py b/InvenTree/common/forms.py index ba844c3651..ee70755dbc 100644 --- a/InvenTree/common/forms.py +++ b/InvenTree/common/forms.py @@ -92,6 +92,9 @@ class MatchField(forms.Form): self.fields[field_name] = forms.ChoiceField( choices=[('', '-' * 10)] + headers_choices, required=False, + widget=forms.Select(attrs={ + 'class': 'select fieldselect', + }) ) if col['guess']: self.fields[field_name].initial = col['guess'] @@ -134,7 +137,7 @@ class MatchItem(forms.Form): required=True, widget=forms.NumberInput(attrs={ 'name': 'quantity' + str(row['index']), - 'class': 'numberinput', + 'class': 'numberinput', # form-control', 'type': 'number', 'min': '0', 'step': 'any', @@ -181,7 +184,7 @@ class MatchItem(forms.Form): if 'price' in col['column']['guess'].lower(): self.fields[field_name] = MoneyField( label=_(col['column']['guess']), - default_currency='USD', + default_currency=InvenTreeSetting.get_setting('INVENTREE_DEFAULT_CURRENCY'), decimal_places=5, max_digits=19, required=False, diff --git a/InvenTree/order/templates/order/order_wizard/match_fields.html b/InvenTree/order/templates/order/order_wizard/match_fields.html index bb96c2223f..8885526093 100644 --- a/InvenTree/order/templates/order/order_wizard/match_fields.html +++ b/InvenTree/order/templates/order/order_wizard/match_fields.html @@ -86,4 +86,14 @@ {% endblock form_content %} {% block form_buttons_bottom %} -{% endblock form_buttons_bottom %} \ No newline at end of file +{% endblock form_buttons_bottom %} + +{% block js_ready %} +{{ block.super }} + +$('.fieldselect').select2({ + width: '100%', + matcher: partialMatcher, +}); + +{% endblock %} \ No newline at end of file diff --git a/InvenTree/order/templates/order/order_wizard/match_parts.html b/InvenTree/order/templates/order/order_wizard/match_parts.html index 0808ac4259..6cfcd334f3 100644 --- a/InvenTree/order/templates/order/order_wizard/match_parts.html +++ b/InvenTree/order/templates/order/order_wizard/match_parts.html @@ -99,4 +99,8 @@ $('.bomselect').select2({ matcher: partialMatcher, }); +$('.currencyselect').select2({ + dropdownAutoWidth: true, +}); + {% endblock %} \ No newline at end of file