Commit 2f64da625ef0e28aa7c92f41be0e9bb10febfb37

Authored by Zambom
1 parent bfc4ec8f

Adding comment deletion

amadeus/static/css/base/amadeus.css
... ... @@ -1026,7 +1026,7 @@ li.item .notify_badge {
1026 1026 margin: 0;
1027 1027 }
1028 1028  
1029   -.post .post-user .btn-group .dropdown-menu a {
  1029 +.post .post-user .btn-group .dropdown-menu a, .comment .comment-user .btn-group .dropdown-menu a {
1030 1030 cursor: pointer;
1031 1031 }
1032 1032  
... ...
amadeus/static/js/mural.js
... ... @@ -268,4 +268,47 @@ function setCommentFormSubmit(post, comment = "") {
268 268  
269 269 return false;
270 270 });
  271 +}
  272 +
  273 +function deleteComment(btn) {
  274 + var url = btn.data('url');
  275 + var comment = btn.data('id');
  276 +
  277 + console.log(comment);
  278 +
  279 + $.ajax({
  280 + url: url,
  281 + success: function (data) {
  282 + $('#post-modal-form').html(data);
  283 +
  284 + setCommentDeleteSubmit(comment);
  285 +
  286 + $('#post-modal-form').modal('show');
  287 + }
  288 + });
  289 +}
  290 +
  291 +function setCommentDeleteSubmit (comment) {
  292 + var frm = $("#delete_form");
  293 +
  294 + frm.submit(function () {
  295 + $.ajax({
  296 + type: frm.attr('method'),
  297 + url: frm.attr('action'),
  298 + data: frm.serialize(),
  299 + success: function (response) {
  300 +
  301 + $("#comment-" + comment).remove();
  302 +
  303 + $('#post-modal-form').modal('hide');
  304 +
  305 + alertify.success(response.msg);
  306 + },
  307 + error: function (data) {
  308 + console.log(data);
  309 + }
  310 + });
  311 +
  312 + return false;
  313 + });
271 314 }
272 315 \ No newline at end of file
... ...
mural/templates/mural/_view_comment.html
... ... @@ -21,7 +21,7 @@
21 21 <ul class="dropdown-menu pull-right" aria-labelledby="moreActions">
22 22 <li><a onclick="editComment($(this));" data-url="{% url 'mural:update_comment' comment.id %}" data-id="{{ comment.id }}" data-post="{{ comment.post.id }}"><i class="fa fa-pencil fa-fw" aria-hidden="true"></i> {% trans 'Edit' %}</a></li>
23 23 <li>
24   - <a onclick="deletePost($(this))" aria-hidden="true"><i class="fa fa-trash fa-fw" aria-hidden="true"></i> {% trans 'Remove' %}</a></li>
  24 + <a onclick="deleteComment($(this))" data-url="{% url 'mural:delete_comment' comment.id %}" data-id="{{ comment.id }}" aria-hidden="true"><i class="fa fa-trash fa-fw" aria-hidden="true"></i> {% trans 'Remove' %}</a></li>
25 25 </ul>
26 26 </span>
27 27 {% endif %}
... ...
mural/templates/mural/delete.html
... ... @@ -5,7 +5,7 @@
5 5 <div class="modal-body">
6 6 <form id="delete_form" action="{{ form_url }}" method="post">
7 7 {% csrf_token %}
8   - <h4>{% trans 'Are you sure you want to delete this post' %}?</h4>
  8 + <h4>{{ message }}</h4>
9 9 </form>
10 10 </div>
11 11 <div class="modal-footer">
... ...
mural/urls.py
... ... @@ -10,6 +10,8 @@ urlpatterns = [
10 10 url(r'^deleted/$', views.deleted_post, name='deleted_post'),
11 11 url(r'^comment/(?P<post>[\w_-]+)/$', views.CommentCreate.as_view(), name='create_comment'),
12 12 url(r'^update_comment/(?P<pk>[\w_-]+)/$', views.CommentUpdate.as_view(), name='update_comment'),
  13 + url(r'^delete_comment/(?P<pk>[\w_-]+)/$', views.CommentDelete.as_view(), name='delete_comment'),
  14 + url(r'^deleted_comment/$', views.deleted_comment, name='deleted_comment'),
13 15 url(r'^render_comment/([\w_-]+)/([\w_-]+)/$', views.render_comment, name='render_comment'),
14 16 url(r'^render_post/([\w_-]+)/([\w_-]+)/$', views.render_gen_post, name='render_post_general'),
15 17 url(r'^suggest_users/$', views.suggest_users, name='suggest_users'),
... ...
mural/views.py
... ... @@ -186,6 +186,7 @@ class GeneralDelete(LoginRequiredMixin, generic.DeleteView):
186 186 context = super(GeneralDelete, self).get_context_data(*args, **kwargs)
187 187  
188 188 context['form_url'] = reverse_lazy("mural:delete_general", args = (), kwargs = {'pk': self.object.id})
  189 + context['message'] = _('Are you sure you want to delete this post?')
189 190  
190 191 return context
191 192  
... ... @@ -332,6 +333,32 @@ class CommentUpdate(LoginRequiredMixin, generic.UpdateView):
332 333 def get_success_url(self):
333 334 return reverse_lazy('mural:render_comment', args = (self.object.id, 'update', ))
334 335  
  336 +class CommentDelete(LoginRequiredMixin, generic.DeleteView):
  337 + login_url = reverse_lazy("users:login")
  338 + redirect_field_name = 'next'
  339 +
  340 + template_name = 'mural/delete.html'
  341 + model = Comment
  342 +
  343 + def get_context_data(self, *args, **kwargs):
  344 + context = super(CommentDelete, self).get_context_data(*args, **kwargs)
  345 +
  346 + context['form_url'] = reverse_lazy("mural:delete_comment", args = (), kwargs = {'pk': self.object.id})
  347 + context['message'] = _('Are you sure you want to delete this comment?')
  348 +
  349 + return context
  350 +
  351 + def get_success_url(self):
  352 + users = User.objects.all().exclude(id = self.request.user.id)
  353 +
  354 + notify_type = "mural"
  355 + pathname = reverse("mural:manage_general")
  356 +
  357 + #for user in users:
  358 + # Group("user-%s" % user.id).send({'text': json.dumps({"type": notify_type, "subtype": "delete", "pathname": pathname, "post_id": self.object.id})})
  359 +
  360 + return reverse_lazy('mural:deleted_comment')
  361 +
335 362 def render_comment(request, comment, msg):
336 363 comment = get_object_or_404(Comment, id = comment)
337 364  
... ... @@ -349,6 +376,9 @@ def render_comment(request, comment, msg):
349 376  
350 377 return JsonResponse({'message': msg, 'view': html, 'new_id': comment.id})
351 378  
  379 +def deleted_comment(request):
  380 + return JsonResponse({'msg': _('Comment deleted successfully!')})
  381 +
352 382 def suggest_users(request):
353 383 param = request.GET.get('param', '')
354 384  
... ...