Allow to change slug in admin sessions

This commit is contained in:
Raphael Michel
2018-10-09 09:19:36 +02:00
parent 3eea4d6945
commit ab336678ce
4 changed files with 20 additions and 4 deletions

View File

@@ -202,17 +202,22 @@ class EventMetaValueForm(forms.ModelForm):
class EventUpdateForm(I18nModelForm):
def clean_slug(self):
return self.instance.slug
def __init__(self, *args, **kwargs):
self.change_slug = kwargs.pop('change_slug', False)
super().__init__(*args, **kwargs)
self.fields['slug'].widget.attrs['readonly'] = 'readonly'
if not self.change_slug:
self.fields['slug'].widget.attrs['readonly'] = 'readonly'
self.fields['location'].widget.attrs['rows'] = '3'
self.fields['location'].widget.attrs['placeholder'] = _(
'Sample Conference Center\nHeidelberg, Germany'
)
def clean_slug(self):
if self.change_slug:
return self.cleaned_data['slug']
return self.instance.slug
class Meta:
model = Event
localized_fields = '__all__'

View File

@@ -35,6 +35,7 @@ class OrganizerUpdateForm(OrganizerForm):
def __init__(self, *args, **kwargs):
self.domain = kwargs.pop('domain', False)
self.change_slug = kwargs.pop('change_slug', False)
kwargs.setdefault('initial', {})
self.instance = kwargs['instance']
if self.domain and self.instance:
@@ -43,7 +44,8 @@ class OrganizerUpdateForm(OrganizerForm):
kwargs['initial'].setdefault('domain', initial_domain.domainname)
super().__init__(*args, **kwargs)
self.fields['slug'].widget.attrs['readonly'] = 'readonly'
if not self.change_slug:
self.fields['slug'].widget.attrs['readonly'] = 'readonly'
if self.domain:
self.fields['domain'] = forms.CharField(
max_length=255,
@@ -53,6 +55,8 @@ class OrganizerUpdateForm(OrganizerForm):
)
def clean_slug(self):
if self.change_slug:
return self.cleaned_data['slug']
return self.instance.slug
def save(self, commit=True):