consolidated error messages for post flood with img sit errors.

This commit is contained in:
Chinua Shaw 2012-12-17 06:00:01 -05:00
parent 2cc0d21786
commit e424166dc5
2 changed files with 21 additions and 31 deletions

View file

@ -94,6 +94,22 @@ class AddPostForm(forms.ModelForm):
except UnapprovedImageError as e:
self._errors['body'] = self.error_class([e.user_error()])
del cleaned_data['body']
try:
recent_post = Post.objects.filter(user=self.user).latest()
lastpost_diff = datetime.now() - recent_post.created
except Post.DoesNotExist:
lastpost_diff = timedelta(1) # one day if first post
if forum_settings.POST_FLOOD and not self.user.has_perm('djangobb_forum.fast_post'):
if self.user.has_perm('djangobb_forum.med_post'):
if lastpost_diff.total_seconds() < forum_settings.POST_FLOOD_MED:
self._errors['body'] = _("Sorry, you have to wait %d seconds between posts." % forum_settings.POST_FLOOD_MED)
else:
if lastpost_diff.total_seconds() < forum_settings.POST_FLOOD_SLOW:
self._errors['body'] = _("Sorry, you have to wait %d seconds between posts." % forum_settings.POST_FLOOD_SLOW)
return cleaned_data
def clean_attachment(self):

View file

@ -405,27 +405,12 @@ def show_topic(request, topic_id, full=True):
ip = request.META.get('REMOTE_ADDR', None)
post_form_kwargs = {"topic":topic, "user":request.user, "ip":ip}
if post_request and AddPostForm.FORM_NAME in request.POST:
skip = False
try:
recent_post = Post.objects.filter(user=request.user).latest()
lastpost_diff = datetime.now() - recent_post.created
except Post.DoesNotExist:
lastpost_diff = timedelta(1) # one day if first post
if forum_settings.POST_FLOOD and not request.user.has_perm('djangobb_forum.fast_post'):
if request.user.has_perm('djangobb_forum.med_post'):
if lastpost_diff.total_seconds() < forum_settings.POST_FLOOD_MED:
skip = True
messages.error(request, _("Sorry, you have to wait %d seconds between posts." % forum_settings.POST_FLOOD_MED))
else:
if lastpost_diff.total_seconds() < forum_settings.POST_FLOOD_SLOW:
skip = True
messages.error(request, _("Sorry, you have to wait %d seconds between posts." % forum_settings.POST_FLOOD_SLOW))
reply_form = AddPostForm(request.POST, request.FILES, **post_form_kwargs)
if not skip:
if reply_form.is_valid():
post = reply_form.save()
messages.success(request, _("Your reply saved."))
return HttpResponseRedirect(post.get_absolute_url())
if reply_form.is_valid():
post = reply_form.save()
messages.success(request, _("Your reply saved."))
return HttpResponseRedirect(post.get_absolute_url())
else:
reply_form = AddPostForm(
initial={
@ -520,17 +505,6 @@ def add_topic(request, forum_id):
elif not poll_form.is_valid():
all_valid = False
if forum_settings.POST_FLOOD and not request.user.has_perm('djangobb_forum.fast_post'):
recent_post = Post.objects.filter(user=request.user).latest()
lastpost_diff = datetime.now() - recent_post.created
if request.user.has_perm('djangobb_forum.med_post'):
if lastpost_diff < timedelta(seconds=forum_settings.POST_FLOOD_MED):
all_valid = False
messages.error(request, _("Sorry, you have to wait %d seconds between posts.") % forum_settings.POST_FLOOD_MED)
else:
if lastpost_diff < timedelta(seconds=forum_settings.POST_FLOOD_SLOW):
all_valid = False
messages.error(request, _("Sorry, you have to wait %d seconds between posts.") % forum_settings.POST_FLOOD_SLOW)
if all_valid:
post = form.save()
if create_poll: