Commit 2146f0a66bf5f1cb3a4c82dfc0617c6068cd8dc6

Authored by Zambom
1 parent e05c0b18

Adding general post deletion

amadeus/static/css/base/amadeus.css
... ... @@ -1018,6 +1018,10 @@ li.item .notify_badge {
1018 1018 margin: 0;
1019 1019 }
1020 1020  
  1021 +.post .post-user .btn-group .dropdown-menu a {
  1022 + cursor: pointer;
  1023 +}
  1024 +
1021 1025 .post .post-user .btn-group .btn_menu i {
1022 1026 font-size: 18px;
1023 1027 }
... ...
mural/models.py
... ... @@ -30,18 +30,28 @@ class Mural(KnowsChild):
30 30 def update_link(self):
31 31 pass
32 32  
  33 + @always_as_child
  34 + def delete_link(self):
  35 + pass
  36 +
33 37 class GeneralPost(Mural):
34 38 space = models.IntegerField(_('Space'), default = 0, blank = True)
35 39  
36 40 def update_link(self):
37 41 return "mural:update_general"
38 42  
  43 + def delete_link(self):
  44 + return "mural:delete_general"
  45 +
39 46 class CategoryPost(Mural):
40 47 space = models.ForeignKey(Category, verbose_name = ('Category'), related_name = 'post_category')
41 48  
42 49 def update_link(self):
43 50 return ""
44 51  
  52 + def delete_link(self):
  53 + return ""
  54 +
45 55 class SubjectPost(Mural):
46 56 space = models.ForeignKey(Subject, verbose_name = _('Subject'), related_name = 'post_subject')
47 57 resource = models.ForeignKey(Resource, verbose_name = _('Resource'), related_name = 'post_resource', null = True)
... ... @@ -49,6 +59,9 @@ class SubjectPost(Mural):
49 59 def update_link(self):
50 60 return ""
51 61  
  62 + def delete_link(self):
  63 + return ""
  64 +
52 65 class Comment(models.Model):
53 66 comment = models.TextField(_('Comment'), blank = True)
54 67 image = models.ImageField(verbose_name = _('Image'), null=True, blank = True, upload_to = 'posts/comments/', validators = [validate_img_extension])
... ...
mural/templates/mural/_view.html
... ... @@ -20,7 +20,7 @@
20 20 <ul class="dropdown-menu pull-right" aria-labelledby="moreActions">
21 21 <li><a onclick="editPost($(this));" data-url="{% url post.update_link post.id %}" data-post="{{ post.id }}"><i class="fa fa-pencil fa-fw" aria-hidden="true"></i> {% trans 'Edit' %}</a></li>
22 22 <li>
23   - <a href="" aria-hidden="true"><i class="fa fa-trash fa-fw" aria-hidden="true"></i> {% trans 'Remove' %}</a></li>
  23 + <a onclick="deletePost($(this))" data-url="{% url post.delete_link post.id %}" data-post="{{ post.id }}" aria-hidden="true"><i class="fa fa-trash fa-fw" aria-hidden="true"></i> {% trans 'Remove' %}</a></li>
24 24 </ul>
25 25 </span>
26 26 {% endif %}
... ...
mural/templates/mural/delete.html 0 → 100644
... ... @@ -0,0 +1,20 @@
  1 +{% load i18n %}
  2 +
  3 +<div class="modal-dialog" role="document">
  4 + <div class="modal-content">
  5 + <div class="modal-body">
  6 + <form id="delete_form" action="{{ form_url }}" method="post">
  7 + {% csrf_token %}
  8 + <h4>{% trans 'Are you sure you want to delete this post' %}?</h4>
  9 + </form>
  10 + </div>
  11 + <div class="modal-footer">
  12 + <div class="pull-right">
  13 + <button type="button" class="btn btn-default btn-raised" data-dismiss="modal">{% trans "Close" %}</button>
  14 + </div>
  15 + <div class="pull-left">
  16 + <button type="submit" form="delete_form" class="btn btn-success btn-raised">{% trans "Delete" %}</button>
  17 + </div>
  18 + </div>
  19 + </div>
  20 +</div>
0 21 \ No newline at end of file
... ...
mural/templates/mural/list.html
... ... @@ -136,20 +136,57 @@
136 136 function editPost(btn) {
137 137 var url = btn.data('url');
138 138 var post = btn.data('post');
  139 +
  140 + $.ajax({
  141 + url: url,
  142 + success: function (data) {
  143 + $('#post-modal-form').html(data);
139 144  
140   - console.log(url);
141   - console.log(post);
  145 + setPostFormSubmit(post);
  146 +
  147 + $('#post-modal-form').modal('show');
  148 + }
  149 + });
  150 + }
  151 +
  152 + function deletePost(btn) {
  153 + var url = btn.data('url');
  154 + var post = btn.data('post');
142 155  
143 156 $.ajax({
144 157 url: url,
145 158 success: function (data) {
146 159 $('#post-modal-form').html(data);
147 160  
148   - setPostFormSubmit(post);
  161 + setPostDeleteSubmit(post);
149 162  
150 163 $('#post-modal-form').modal('show');
151 164 }
152 165 });
153 166 }
  167 +
  168 + function setPostDeleteSubmit (post) {
  169 + var frm = $("#delete_form");
  170 +
  171 + frm.submit(function () {
  172 + $.ajax({
  173 + type: frm.attr('method'),
  174 + url: frm.attr('action'),
  175 + data: frm.serialize(),
  176 + success: function (response) {
  177 + $("#post-" + post).remove();
  178 +
  179 + $('#post-modal-form').modal('hide');
  180 +
  181 + alertify.success(response.msg);
  182 + },
  183 + error: function (data) {
  184 + console.log(data);
  185 + }
  186 + });
  187 +
  188 + return false;
  189 + });
  190 + }
154 191 </script>
155 192 {% endblock %}
156 193 \ No newline at end of file
... ...
mural/urls.py
... ... @@ -5,6 +5,8 @@ urlpatterns = [
5 5 url(r'^$', views.GeneralIndex.as_view(), name='manage_general'),
6 6 url(r'^create_gen/$', views.GeneralCreate.as_view(), name='create_general'),
7 7 url(r'^update_gen/(?P<pk>[\w_-]+)/$', views.GeneralUpdate.as_view(), name='update_general'),
  8 + url(r'^delete_gen/(?P<pk>[\w_-]+)/$', views.GeneralDelete.as_view(), name='delete_general'),
8 9 url(r'^render_post/([\w_-]+)/([\w_-]+)/$', views.render_gen_post, name='render_post_general'),
9 10 url(r'^favorite/([\w_-]+)/$', views.favorite, name='favorite'),
  11 + url(r'^deleted/$', views.deleted_post, name='deleted_post'),
10 12 ]
11 13 \ No newline at end of file
... ...
mural/views.py
... ... @@ -132,6 +132,23 @@ class GeneralUpdate(LoginRequiredMixin, generic.UpdateView):
132 132 def get_success_url(self):
133 133 return reverse_lazy('mural:render_post_general', args = (self.object.id, 'update', ))
134 134  
  135 +class GeneralDelete(LoginRequiredMixin, generic.DeleteView):
  136 + login_url = reverse_lazy("users:login")
  137 + redirect_field_name = 'next'
  138 +
  139 + template_name = 'mural/delete.html'
  140 + model = GeneralPost
  141 +
  142 + def get_context_data(self, *args, **kwargs):
  143 + context = super(GeneralDelete, self).get_context_data(*args, **kwargs)
  144 +
  145 + context['form_url'] = reverse_lazy("mural:delete_general", args = (), kwargs = {'pk': self.object.id})
  146 +
  147 + return context
  148 +
  149 + def get_success_url(self):
  150 + return reverse_lazy('mural:deleted_post')
  151 +
135 152 def render_gen_post(request, post, msg):
136 153 post = get_object_or_404(GeneralPost, id = post)
137 154  
... ... @@ -149,6 +166,9 @@ def render_gen_post(request, post, msg):
149 166  
150 167 return JsonResponse({'message': msg, 'view': html})
151 168  
  169 +def deleted_post(request):
  170 + return JsonResponse({'msg': _('Post deleted successfully!')})
  171 +
152 172 @login_required
153 173 def favorite(request, post):
154 174 action = request.GET.get('action', '')
... ...