forked from CGM_Public/pretix_original
Connect giftcards with customer accounts (#5126)
Connect giftcards with customer accounts, show giftcards during checkout and in account , show giftcard list in backend customer view
This commit is contained in:
@@ -731,6 +731,21 @@ class GiftCardCreateForm(forms.ModelForm):
|
||||
kwargs['initial'] = initial
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
if self.organizer.settings.customer_accounts:
|
||||
self.fields['customer'].queryset = self.organizer.customers.all()
|
||||
self.fields['customer'].widget = Select2(
|
||||
attrs={
|
||||
'data-model-select2': 'generic',
|
||||
'data-select2-url': reverse('control:organizer.customers.select2', kwargs={
|
||||
'organizer': self.organizer.slug,
|
||||
}),
|
||||
}
|
||||
)
|
||||
self.fields['customer'].widget.choices = self.fields['customer'].choices
|
||||
self.fields['customer'].required = False
|
||||
else:
|
||||
del self.fields['customer']
|
||||
|
||||
def clean_secret(self):
|
||||
s = self.cleaned_data['secret']
|
||||
if GiftCard.objects.filter(
|
||||
@@ -749,9 +764,10 @@ class GiftCardCreateForm(forms.ModelForm):
|
||||
|
||||
class Meta:
|
||||
model = GiftCard
|
||||
fields = ['secret', 'currency', 'testmode', 'expires', 'conditions']
|
||||
fields = ['secret', 'currency', 'testmode', 'expires', 'conditions', 'customer']
|
||||
field_classes = {
|
||||
'expires': SplitDateTimeField
|
||||
'expires': SplitDateTimeField,
|
||||
'customer': SafeModelChoiceField,
|
||||
}
|
||||
widgets = {
|
||||
'expires': SplitDateTimePickerWidget,
|
||||
@@ -762,10 +778,11 @@ class GiftCardCreateForm(forms.ModelForm):
|
||||
class GiftCardUpdateForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = GiftCard
|
||||
fields = ['expires', 'conditions', 'owner_ticket']
|
||||
fields = ['expires', 'conditions', 'owner_ticket', 'customer']
|
||||
field_classes = {
|
||||
'expires': SplitDateTimeField,
|
||||
'owner_ticket': SafeOrderPositionChoiceField,
|
||||
'customer': SafeModelChoiceField,
|
||||
}
|
||||
widgets = {
|
||||
'expires': SplitDateTimePickerWidget,
|
||||
@@ -788,6 +805,21 @@ class GiftCardUpdateForm(forms.ModelForm):
|
||||
self.fields['owner_ticket'].widget.choices = self.fields['owner_ticket'].choices
|
||||
self.fields['owner_ticket'].required = False
|
||||
|
||||
if organizer.settings.customer_accounts:
|
||||
self.fields['customer'].queryset = organizer.customers.all()
|
||||
self.fields['customer'].widget = Select2(
|
||||
attrs={
|
||||
'data-model-select2': 'generic',
|
||||
'data-select2-url': reverse('control:organizer.customers.select2', kwargs={
|
||||
'organizer': organizer.slug,
|
||||
}),
|
||||
}
|
||||
)
|
||||
self.fields['customer'].widget.choices = self.fields['customer'].choices
|
||||
self.fields['customer'].required = False
|
||||
else:
|
||||
del self.fields['customer']
|
||||
|
||||
|
||||
class ReusableMediumUpdateForm(forms.ModelForm):
|
||||
error_messages = {
|
||||
|
||||
Reference in New Issue
Block a user