From cbb84217202055c761d5d5d0620b44dad23f44a6 Mon Sep 17 00:00:00 2001 From: Mathieu Pillard Date: Fri, 22 Jan 2010 12:48:42 +0100 Subject: [PATCH] Raise an error if trying to upload an avatar when the maximum number was already reached --- avatar/forms.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/avatar/forms.py b/avatar/forms.py index ef2f246..9c32188 100644 --- a/avatar/forms.py +++ b/avatar/forms.py @@ -2,6 +2,7 @@ from django import forms from django.forms import widgets from django.utils.safestring import mark_safe +from avatar.models import Avatar from avatar import AVATAR_MAX_AVATARS_PER_USER def avatar_img(avatar, size): @@ -22,9 +23,19 @@ class UploadAvatarForm(forms.Form): pass def clean_avatar(self): - # data = self.cleaned_data['avatar'] + data = self.cleaned_data['avatar'] # FIXME use AVATAR_MAX_AVATARS_PER_USER - pass + count = Avatar.objects.filter(user=self.user).count() + if AVATAR_MAX_AVATARS_PER_USER > 1 and \ + count >= AVATAR_MAX_AVATARS_PER_USER: + # Note: there is a special case for AVATAR_MAX_AVATARS_PER_USER = 1, + # we delete the old one and replace it directly with ours, in the + # model. + raise forms.ValidationError( + "You already have %d avatars, and the maximum allowed is %d." % + (count, AVATAR_MAX_AVATARS_PER_USER)) + print data + return class PrimaryAvatarForm(forms.Form):