adds feature #560

This commit is contained in:
Nathan Dinsmore 2013-02-19 01:05:40 -05:00
parent 9e88f9e826
commit 9cf7eb2871
3 changed files with 12 additions and 4 deletions

View file

@ -160,6 +160,7 @@ class AddPostForm(forms.ModelForm):
class EditPostForm(forms.ModelForm):
name = forms.CharField(required=False, label=_('Subject'),
widget=forms.TextInput(attrs={'size':'115'}))
silent_edit = forms.BooleanField(required=False, label=_('Silent edit?'))
class Meta:
model = Post
@ -188,7 +189,6 @@ class EditPostForm(forms.ModelForm):
def save(self, commit=True):
post = super(EditPostForm, self).save(commit=False)
post.updated = now()
topic_name = self.cleaned_data['name']
if topic_name:
post.topic.name = topic_name

View file

@ -35,7 +35,12 @@
{{ form.body.errors }}
{{ form.body }}
</label>
{% if moderator %}
<label>
{{ form.silent_edit }}
<strong>{% trans "Silent edit (don't display 'Edited by ...' in topic view)" %}</strong>
</label>
{% endif %}
<p class="form-submit">
<button type="submit" class="grey button"><span>{% trans "Save" %}</span></button>
<a href="javascript:history.go(-1)">{% trans "Go back" %}</a>

View file

@ -667,22 +667,25 @@ def get_topic_title(request, topic_id):
@transaction.commit_on_success
def edit_post(request, post_id):
from djangobb_forum.templatetags.forum_extras import forum_editable_by
post = get_object_or_404(Post, pk=post_id)
topic = post.topic
if not forum_editable_by(post, request.user):
messages.error(request, _("You don't have permission to edit this post."))
return HttpResponseRedirect(post.get_absolute_url())
moderator = request.user.is_superuser or request.user in topic.forum.moderators.all()
form = build_form(EditPostForm, request, topic=topic, instance=post)
if form.is_valid():
post = form.save(commit=False)
post.updated_by = request.user
if not form.cleaned_data['silent_edit']:
post.updated_by = request.user
post.updated = timezone.now()
post.save()
messages.success(request, _("Post updated."))
return HttpResponseRedirect(post.get_absolute_url())
return render(request, 'djangobb_forum/edit_post.html', {'form': form,
'post': post,
'moderator': moderator,
})