forked from CGM_Public/pretix_original
Add option to require company name
This commit is contained in:
@@ -199,6 +199,16 @@ class BaseInvoiceAddressForm(forms.ModelForm):
|
|||||||
|
|
||||||
if event.settings.invoice_name_required:
|
if event.settings.invoice_name_required:
|
||||||
self.fields['name'].required = True
|
self.fields['name'].required = True
|
||||||
|
elif event.settings.invoice_address_company_required:
|
||||||
|
self.initial['is_business'] = True
|
||||||
|
|
||||||
|
self.fields['is_business'].widget = BusinessBooleanRadio(require_business=True)
|
||||||
|
self.fields['company'].required = True
|
||||||
|
self.fields['company'].widget.is_required = True
|
||||||
|
self.fields['company'].widget.attrs['required'] = 'required'
|
||||||
|
del self.fields['company'].widget.attrs['data-display-dependency']
|
||||||
|
if 'vat_id' in self.fields:
|
||||||
|
del self.fields['vat_id'].widget.attrs['data-display-dependency']
|
||||||
else:
|
else:
|
||||||
self.fields['company'].widget.attrs['data-required-if'] = '#id_is_business_1'
|
self.fields['company'].widget.attrs['data-required-if'] = '#id_is_business_1'
|
||||||
self.fields['name'].widget.attrs['data-required-if'] = '#id_is_business_0'
|
self.fields['name'].widget.attrs['data-required-if'] = '#id_is_business_0'
|
||||||
|
|||||||
@@ -110,14 +110,22 @@ class SplitDateTimePickerWidget(forms.SplitDateTimeWidget):
|
|||||||
|
|
||||||
|
|
||||||
class BusinessBooleanRadio(forms.RadioSelect):
|
class BusinessBooleanRadio(forms.RadioSelect):
|
||||||
def __init__(self, attrs=None):
|
def __init__(self, require_business=False, attrs=None):
|
||||||
choices = (
|
self.require_business = require_business
|
||||||
('individual', _('Individual customer')),
|
if self.require_business:
|
||||||
('business', _('Business customer')),
|
choices = (
|
||||||
)
|
('business', _('Business customer')),
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
choices = (
|
||||||
|
('individual', _('Individual customer')),
|
||||||
|
('business', _('Business customer')),
|
||||||
|
)
|
||||||
super().__init__(attrs, choices)
|
super().__init__(attrs, choices)
|
||||||
|
|
||||||
def format_value(self, value):
|
def format_value(self, value):
|
||||||
|
if self.require_business:
|
||||||
|
return 'business'
|
||||||
try:
|
try:
|
||||||
return {True: 'business', False: 'individual'}[value]
|
return {True: 'business', False: 'individual'}[value]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
@@ -125,6 +133,8 @@ class BusinessBooleanRadio(forms.RadioSelect):
|
|||||||
|
|
||||||
def value_from_datadict(self, data, files, name):
|
def value_from_datadict(self, data, files, name):
|
||||||
value = data.get(name)
|
value = data.get(name)
|
||||||
|
if self.require_business:
|
||||||
|
return True
|
||||||
return {
|
return {
|
||||||
'business': True,
|
'business': True,
|
||||||
True: True,
|
True: True,
|
||||||
|
|||||||
@@ -57,6 +57,10 @@ DEFAULTS = {
|
|||||||
'default': 'False',
|
'default': 'False',
|
||||||
'type': bool,
|
'type': bool,
|
||||||
},
|
},
|
||||||
|
'invoice_address_company_required': {
|
||||||
|
'default': 'False',
|
||||||
|
'type': bool,
|
||||||
|
},
|
||||||
'invoice_address_vatid': {
|
'invoice_address_vatid': {
|
||||||
'default': 'False',
|
'default': 'False',
|
||||||
'type': bool,
|
'type': bool,
|
||||||
|
|||||||
@@ -518,6 +518,12 @@ class InvoiceSettingsForm(SettingsForm):
|
|||||||
required=False,
|
required=False,
|
||||||
widget=forms.CheckboxInput(attrs={'data-checkbox-dependency': '#id_invoice_address_asked'}),
|
widget=forms.CheckboxInput(attrs={'data-checkbox-dependency': '#id_invoice_address_asked'}),
|
||||||
)
|
)
|
||||||
|
invoice_address_company_required = forms.BooleanField(
|
||||||
|
label=_("Require a business addresses"),
|
||||||
|
help_text=_('This will require users to enter a company name.'),
|
||||||
|
required=False,
|
||||||
|
widget=forms.CheckboxInput(attrs={'data-checkbox-dependency': '#id_invoice_address_required'}),
|
||||||
|
)
|
||||||
invoice_name_required = forms.BooleanField(
|
invoice_name_required = forms.BooleanField(
|
||||||
label=_("Require customer name"),
|
label=_("Require customer name"),
|
||||||
required=False,
|
required=False,
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
{% bootstrap_field form.invoice_name_required layout="control" %}
|
{% bootstrap_field form.invoice_name_required layout="control" %}
|
||||||
{% bootstrap_field form.invoice_generate layout="control" %}
|
{% bootstrap_field form.invoice_generate layout="control" %}
|
||||||
{% bootstrap_field form.invoice_email_attachment layout="control" %}
|
{% bootstrap_field form.invoice_email_attachment layout="control" %}
|
||||||
|
{% bootstrap_field form.invoice_address_company_required layout="control" %}
|
||||||
{% bootstrap_field form.invoice_address_vatid layout="control" %}
|
{% bootstrap_field form.invoice_address_vatid layout="control" %}
|
||||||
{% bootstrap_field form.invoice_numbers_consecutive layout="control" %}
|
{% bootstrap_field form.invoice_numbers_consecutive layout="control" %}
|
||||||
{% bootstrap_field form.invoice_numbers_prefix layout="control" %}
|
{% bootstrap_field form.invoice_numbers_prefix layout="control" %}
|
||||||
|
|||||||
Reference in New Issue
Block a user