From 16aa18429a4123022fa4837853c030e026f25ff1 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Thu, 14 May 2020 16:55:33 +1000 Subject: [PATCH 1/3] Use bootstrap3 styling for django crispy forms --- InvenTree/InvenTree/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index 797924fd36..dda110e834 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -341,7 +341,7 @@ if DEBUG: print("STATIC_ROOT:", STATIC_ROOT) # crispy forms use the bootstrap templates -CRISPY_TEMPLATE_PACK = 'bootstrap' +CRISPY_TEMPLATE_PACK = 'bootstrap3' # Use database transactions when importing / exporting data IMPORT_EXPORT_USE_TRANSACTIONS = True From 007d2d4054e3519cac392d7f5f2cd1bdc5799130 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Thu, 14 May 2020 21:51:44 +1000 Subject: [PATCH 2/3] Add prepended text to order references for forms --- InvenTree/InvenTree/forms.py | 12 ++++++++++++ InvenTree/order/forms.py | 37 ++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/InvenTree/InvenTree/forms.py b/InvenTree/InvenTree/forms.py index f0dd5f3d43..c794f7ca25 100644 --- a/InvenTree/InvenTree/forms.py +++ b/InvenTree/InvenTree/forms.py @@ -7,6 +7,8 @@ from __future__ import unicode_literals from django import forms from crispy_forms.helper import FormHelper +from crispy_forms.layout import Field, Layout +from crispy_forms.bootstrap import PrependedText from django.contrib.auth.models import User @@ -19,6 +21,16 @@ class HelperForm(forms.ModelForm): self.helper.form_tag = False + """ + Create a default 'layout' for this form. + Ref: https://django-crispy-forms.readthedocs.io/en/latest/layouts.html + This is required to do fancy things later (like adding PrependedText, etc). + + Simply create a 'blank' layout for each available field. + """ + + self.helper.layout = Layout(*self.fields.keys()) + class DeleteForm(forms.Form): """ Generic deletion form which provides simple user confirmation diff --git a/InvenTree/order/forms.py b/InvenTree/order/forms.py index 9991fe6670..e7e26064f8 100644 --- a/InvenTree/order/forms.py +++ b/InvenTree/order/forms.py @@ -8,6 +8,9 @@ from __future__ import unicode_literals from django import forms from django.utils.translation import ugettext as _ +from crispy_forms.layout import Field, Layout +from crispy_forms.bootstrap import PrependedText + from mptt.fields import TreeNodeChoiceField from InvenTree.forms import HelperForm @@ -88,6 +91,23 @@ class ReceivePurchaseOrderForm(HelperForm): class EditPurchaseOrderForm(HelperForm): """ Form for editing a PurchaseOrder object """ + def __init__(self, *args, **kwargs): + + super().__init__(*args, **kwargs) + + # TODO - Refactor this? + self.helper.layout = Layout( + Field(PrependedText( + 'reference', + 'PO', + placeholder=_("Purchase Order") + )), + Field('supplier'), + Field('supplier_reference'), + Field('description'), + Field('link'), + ) + class Meta: model = PurchaseOrder fields = [ @@ -102,6 +122,23 @@ class EditPurchaseOrderForm(HelperForm): class EditSalesOrderForm(HelperForm): """ Form for editing a SalesOrder object """ + def __init__(self, *args, **kwargs): + + super().__init__(*args, **kwargs) + + # TODO - Refactor? + self.helper.layout = Layout( + Field(PrependedText( + 'reference', + 'SO', + placeholder=_("Sales Order") + )), + Field('customer'), + Field('customer_reference'), + Field('description'), + Field('link'), + ) + class Meta: model = SalesOrder fields = [ From 0f00205256a7366982351ad9cf065aa2d9036bfc Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Thu, 14 May 2020 21:52:39 +1000 Subject: [PATCH 3/3] PEP fix --- InvenTree/InvenTree/forms.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/InvenTree/InvenTree/forms.py b/InvenTree/InvenTree/forms.py index c794f7ca25..3d8871f824 100644 --- a/InvenTree/InvenTree/forms.py +++ b/InvenTree/InvenTree/forms.py @@ -7,8 +7,7 @@ from __future__ import unicode_literals from django import forms from crispy_forms.helper import FormHelper -from crispy_forms.layout import Field, Layout -from crispy_forms.bootstrap import PrependedText +from crispy_forms.layout import Layout from django.contrib.auth.models import User @@ -30,7 +29,7 @@ class HelperForm(forms.ModelForm): """ self.helper.layout = Layout(*self.fields.keys()) - + class DeleteForm(forms.Form): """ Generic deletion form which provides simple user confirmation