Browse Source

Add remove button for group

devel
bashmak 8 years ago
parent
commit
9ff1180bf2
  1. 65
      group_app/locale/ru/LC_MESSAGES/django.po
  2. 13
      group_app/templates/group_app/group_confirm_delete.html
  3. 7
      group_app/templates/group_app/group_list.html
  4. 3
      group_app/urls.py
  5. 24
      group_app/views.py

65
group_app/locale/ru/LC_MESSAGES/django.po

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-04-24 23:27+0300\n"
"POT-Creation-Date: 2018-05-19 12:21+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Dmitry Novikov <nerosketch@gmail.com>\n"
"Language: ru\n"
@ -19,63 +19,78 @@ msgstr ""
"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
"%100>=11 && n%100<=14)? 2 : 3);\n"
#: group_app/models.py:7 group_app/templates/group_app/group_list.html:21
#: models.py:7 templates/group_app/group_list.html:22
msgid "Title"
msgstr "Название"
#: group_app/models.py:16
#: models.py:8
msgid "Tech code"
msgstr "Технический код"
#: models.py:17
msgid "Can view group"
msgstr "Может видеть группы"
#: group_app/models.py:18
#: models.py:19
msgid "Group"
msgstr "Группа"
#: group_app/models.py:19 group_app/templates/group_app/ext.html:7
#: group_app/templates/group_app/ext.html:8
#: group_app/templates/group_app/ext.html:14
#: group_app/templates/group_app/group_list.html:7
#: group_app/templates/group_app/group_list.html:10
#: models.py:20 templates/group_app/ext.html:7 templates/group_app/ext.html:8
#: templates/group_app/ext.html:14 templates/group_app/group_list.html:7
#: templates/group_app/group_list.html:10
msgid "Groups"
msgstr "Группы"
#: group_app/templates/group_app/add_group.html:4
#: group_app/templates/group_app/add_group.html:9
#: group_app/templates/group_app/group_list.html:49
#: templates/group_app/add_group.html:4 templates/group_app/add_group.html:9
#: templates/group_app/group_list.html:58
msgid "Add group"
msgstr "Добавить группу"
#: group_app/templates/group_app/add_group.html:16
#: templates/group_app/add_group.html:16
msgid "Add"
msgstr "Добавить"
#: group_app/templates/group_app/edit_group.html:4
#: group_app/templates/group_app/edit_group.html:9
#: templates/group_app/edit_group.html:4 templates/group_app/edit_group.html:9
msgid "Edit group"
msgstr "Изменить группу"
#: group_app/templates/group_app/edit_group.html:16
#: templates/group_app/edit_group.html:16
msgid "Save"
msgstr "Сохранить"
#: group_app/templates/group_app/group_list.html:41
#: templates/group_app/group_confirm_delete.html:5
msgid "Remove group"
msgstr "Удалить группу"
#: templates/group_app/group_confirm_delete.html:8
#, python-format
msgid "Are you sure you want to delete group %(object)s?"
msgstr "Вы уверены что хотите удалить группу %(object)s?"
#: templates/group_app/group_confirm_delete.html:10
msgid "Delete"
msgstr "Удалить"
#: templates/group_app/group_list.html:19
msgid "TeCo"
msgstr "Тех. код"
#: templates/group_app/group_list.html:50
msgid "Groups was not found"
msgstr "Не найдено ни одной группы"
#: group_app/views.py:31
#: views.py:34
msgid "Group changes has been saved"
msgstr "Изменения сохранены"
#: group_app/views.py:35 group_app/views.py:51
#: views.py:38 views.py:54
msgid "Please fix form errors"
msgstr "Исправьте ошибки формы"
#: group_app/views.py:47
#: views.py:50
msgid "New group are created"
msgstr "Новая группа успешно создана"
msgid "Tech code"
msgstr "Технический код"
msgid "TeCo"
msgstr "Тех. код"
#: views.py:72
msgid "Group is contain subscribers. Remove them before delete group"
msgstr "Группа содержит абонентов. Удалите их перед удалением группы"

13
group_app/templates/group_app/group_confirm_delete.html

@ -0,0 +1,13 @@
{% load i18n %}
<form role="form" action="{% url 'group_app:del' object.pk %}" method="post">{% csrf_token %}
<div class="modal-header warning">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title"><span class="glyphicon glyphicon-list-alt"></span>{% trans 'Remove group' %}</h4>
</div>
<div class="modal-body">
<h4>{% blocktrans %}Are you sure you want to delete group {{ object }}?{% endblocktrans %}</h4>
<button type="submit" class="btn btn-danger" value="DELETE">
<span class="glyphicon glyphicon-remove"></span> {% trans 'Delete' %}
</button>
</div>
</form>

7
group_app/templates/group_app/group_list.html

@ -36,10 +36,13 @@
{{ gr.title }}
</a>
</td>
<td>
<a href="{% url 'group_app:edit' gr.pk %}" class="btn btn-sm btn-default btn-modal">
<td class="btn-group btn-group-sm">
<a href="{% url 'group_app:edit' gr.pk %}" class="btn btn-default btn-modal">
<span class="glyphicon glyphicon-cog"></span>
</a>
<a href="{% url 'group_app:del' gr.pk %}" class="btn btn-danger btn-modal">
<span class="glyphicon glyphicon-remove"></span>
</a>
</td>
</tr>
{% empty %}

3
group_app/urls.py

@ -6,5 +6,6 @@ app_name = 'group_app'
urlpatterns = [
url(r'^$', views.GroupListView.as_view(), name='group_list'),
url(r'^add/$', views.AddGroupView.as_view(), name='add'),
url(r'^(?P<group_id>\d{1,6})/edit/$', views.EditGroupView.as_view(), name='edit')
url(r'^(?P<group_id>\d{1,6})/edit/$', views.EditGroupView.as_view(), name='edit'),
url(r'^(?P<group_id>\d{1,6})/del/$', views.DeleteGroupView.as_view(), name='del')
]

24
group_app/views.py

@ -1,10 +1,13 @@
from django.views.generic import ListView, UpdateView, CreateView
from django.db.models import Count
from django.http import HttpResponseRedirect
from django.views.generic import ListView, UpdateView, CreateView, DeleteView
from django.contrib.auth.decorators import login_required
from django.utils.translation import gettext_lazy as _
from django.utils.decorators import method_decorator
from django.urls import reverse_lazy
from django.contrib import messages
from django.conf import settings
from guardian.decorators import permission_required_or_403 as permission_required
from . import models
from . import forms
@ -50,3 +53,22 @@ class AddGroupView(CreateView):
def form_invalid(self, form):
messages.success(self.request, _('Please fix form errors'))
return super(AddGroupView, self).form_invalid(form)
@method_decorator(login_required, name='dispatch')
@method_decorator(permission_required('group_app:delete_group'), name='dispatch')
class DeleteGroupView(DeleteView):
model = models.Group
pk_url_kwarg = 'group_id'
success_url = reverse_lazy('group_app:group_list')
def delete(self, request, *args, **kwargs):
group_id = self.kwargs.get('group_id')
group_with_subscribers = models.Group.objects.annotate(
subscribers_count=Count('abon')
).filter(subscribers_count__gt=0, pk=group_id).first()
print('group_with_subscribers:', group_with_subscribers)
if group_with_subscribers is not None:
messages.error(request, _('Group is contain subscribers. Remove them before delete group'))
return HttpResponseRedirect(self.success_url)
return super().delete(request, *args, **kwargs)
Loading…
Cancel
Save