Event settings: Extend product metadata (Z#23116647) (#3241)

Co-authored-by: Richard Schreiber <schreiber@rami.io>
Co-authored-by: Raphael Michel <michel@rami.io>
This commit is contained in:
Phin Wolkwitz
2023-05-26 14:09:41 +02:00
committed by GitHub
parent 7801d06d17
commit b3298c91c3
16 changed files with 541 additions and 36 deletions

View File

@@ -1674,7 +1674,7 @@ QuickSetupProductFormSet = formset_factory(
class ItemMetaPropertyForm(forms.ModelForm):
class Meta:
fields = ['name', 'default']
fields = ['name', 'default', 'required', 'allowed_values']
widgets = {
'default': forms.TextInput()
}

View File

@@ -1102,16 +1102,26 @@ class ItemMetaValueForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.property = kwargs.pop('property')
super().__init__(*args, **kwargs)
self.fields['value'].required = False
self.fields['value'].widget.attrs['placeholder'] = self.property.default
self.fields['value'].widget.attrs['data-typeahead-url'] = (
reverse('control:event.items.meta.typeahead', kwargs={
'organizer': self.property.event.organizer.slug,
'event': self.property.event.slug
}) + '?' + urlencode({
'property': self.property.name,
})
)
if self.property.allowed_values:
self.fields['value'] = forms.ChoiceField(
label=self.property.name,
choices=[(
"", _("Default ({value})").format(value=self.property.default)
if self.property.default else ""
)] + [(a.strip(), a.strip()) for a in self.property.allowed_values.splitlines()]
)
else:
self.fields['value'].label = self.property.name
self.fields['value'].widget.attrs['placeholder'] = self.property.default
self.fields['value'].widget.attrs['data-typeahead-url'] = (
reverse('control:event.items.meta.typeahead', kwargs={
'organizer': self.property.event.organizer.slug,
'event': self.property.event.slug
}) + '?' + urlencode({
'property': self.property.name,
})
)
self.fields['value'].required = self.property.required and not self.property.default
class Meta:
model = ItemMetaValue