forked from CGM_Public/pretix_original
* add copy item info functionality * fix formatting * Revert "fix formatting" This reverts commit 779bd79e8b1364bf244904c4b857443d3341fb93. * Revert "add copy item info functionality" This reverts commit dbec76bf5ae7c9b08da71a51b1a122026bf4d3ac. * add copy functionality * copy questions from item * add copy functionality * copy questions from item * add copy functionality * copy questions from item
This commit is contained in:
committed by
Raphael Michel
parent
4c2c302bfd
commit
8661bfe4a4
@@ -105,12 +105,32 @@ class ItemCreateForm(I18nModelForm):
|
||||
'You can select the variations in the next step.'),
|
||||
required=False)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.event = kwargs['event']
|
||||
super().__init__(*args, **kwargs)
|
||||
self.fields['copy_from'] = forms.ModelChoiceField(
|
||||
label=_("Copy product information"),
|
||||
queryset=self.event.items.all(),
|
||||
widget=forms.Select,
|
||||
empty_label=_('Do not copy'),
|
||||
required=False
|
||||
)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
instance = super().save(*args, **kwargs)
|
||||
if self.cleaned_data.get('has_variations'):
|
||||
ItemVariation.objects.create(
|
||||
item=instance, value=__('Standard')
|
||||
)
|
||||
if self.cleaned_data.get('copy_from') and self.cleaned_data.get('copy_from').has_variations:
|
||||
for variation in self.cleaned_data['copy_from'].variations.all():
|
||||
ItemVariation.objects.create(item=instance, value=variation.value, active=variation.active,
|
||||
position=variation.position, default_price=variation.default_price)
|
||||
else:
|
||||
ItemVariation.objects.create(
|
||||
item=instance, value=__('Standard')
|
||||
)
|
||||
|
||||
for question in Question.objects.filter(items=self.cleaned_data.get('copy_from')):
|
||||
question.items.add(instance)
|
||||
|
||||
return instance
|
||||
|
||||
class Meta:
|
||||
|
||||
Reference in New Issue
Block a user