adds feature #560
This commit is contained in:
parent
9e88f9e826
commit
9cf7eb2871
3 changed files with 12 additions and 4 deletions
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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,
|
||||
})
|
||||
|
||||
|
||||
|
|
Reference in a new issue