Commit d9a7dc25b22b8eb7763e324185b8ea9d7f1d57d8

Authored by Luan
1 parent 1d346cf0

closes #113

Showing 1 changed file with 13 additions and 7 deletions   Show diff stats
src/badger/forms.py
@@ -10,7 +10,7 @@ from .models import Badge @@ -10,7 +10,7 @@ from .models import Badge
10 10
11 11
12 class BadgeForm(forms.ModelForm): 12 class BadgeForm(forms.ModelForm):
13 - image = forms.ImageField(label=_(u'Image')) 13 + image = forms.ImageField(label=_(u'Image'), required=False)
14 14
15 class Meta: 15 class Meta:
16 model = Badge 16 model = Badge
@@ -19,16 +19,22 @@ class BadgeForm(forms.ModelForm): @@ -19,16 +19,22 @@ class BadgeForm(forms.ModelForm):
19 'value', 'awardees' 19 'value', 'awardees'
20 ) 20 )
21 21
  22 + def clean_image(self):
  23 + if not self.instance.pk and not self.cleaned_data['image']:
  24 + raise forms.ValidationError(_(u'You must add an Image'))
  25 + return self.cleaned_data['image']
  26 +
22 def save(self, commit=True): 27 def save(self, commit=True):
23 28
24 instance = super(BadgeForm, self).save(commit=False) 29 instance = super(BadgeForm, self).save(commit=False)
25 30
26 - img = Image.open(self.cleaned_data['image'])  
27 - img = img.resize((50, 50), Image.ANTIALIAS)  
28 - f = StringIO.StringIO()  
29 - img.save(f, 'png')  
30 - instance.image_base64 = f.getvalue().encode('base64')  
31 - f.close() 31 + if self.cleaned_data['image']:
  32 + img = Image.open(self.cleaned_data['image'])
  33 + img = img.resize((50, 50), Image.ANTIALIAS)
  34 + f = StringIO.StringIO()
  35 + img.save(f, 'png')
  36 + instance.image_base64 = f.getvalue().encode('base64')
  37 + f.close()
32 38
33 if commit: 39 if commit:
34 instance.save() 40 instance.save()