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 "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Dmitry Novikov <nerosketch@gmail.com>\n" "Last-Translator: Dmitry Novikov <nerosketch@gmail.com>\n"
"Language: ru\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" "%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" "%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" msgid "Title"
msgstr "Название" msgstr "Название"
#: group_app/models.py:16
#: models.py:8
msgid "Tech code"
msgstr "Технический код"
#: models.py:17
msgid "Can view group" msgid "Can view group"
msgstr "Может видеть группы" msgstr "Может видеть группы"
#: group_app/models.py:18
#: models.py:19
msgid "Group" msgid "Group"
msgstr "Группа" 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" msgid "Groups"
msgstr "Группы" 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" msgid "Add group"
msgstr "Добавить группу" msgstr "Добавить группу"
#: group_app/templates/group_app/add_group.html:16
#: templates/group_app/add_group.html:16
msgid "Add" msgid "Add"
msgstr "Добавить" 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" msgid "Edit group"
msgstr "Изменить группу" msgstr "Изменить группу"
#: group_app/templates/group_app/edit_group.html:16
#: templates/group_app/edit_group.html:16
msgid "Save" msgid "Save"
msgstr "Сохранить" 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" msgid "Groups was not found"
msgstr "Не найдено ни одной группы" msgstr "Не найдено ни одной группы"
#: group_app/views.py:31
#: views.py:34
msgid "Group changes has been saved" msgid "Group changes has been saved"
msgstr "Изменения сохранены" msgstr "Изменения сохранены"
#: group_app/views.py:35 group_app/views.py:51
#: views.py:38 views.py:54
msgid "Please fix form errors" msgid "Please fix form errors"
msgstr "Исправьте ошибки формы" msgstr "Исправьте ошибки формы"
#: group_app/views.py:47
#: views.py:50
msgid "New group are created" msgid "New group are created"
msgstr "Новая группа успешно создана" 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 }} {{ gr.title }}
</a> </a>
</td> </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> <span class="glyphicon glyphicon-cog"></span>
</a> </a>
<a href="{% url 'group_app:del' gr.pk %}" class="btn btn-danger btn-modal">
<span class="glyphicon glyphicon-remove"></span>
</a>
</td> </td>
</tr> </tr>
{% empty %} {% empty %}

3
group_app/urls.py

@ -6,5 +6,6 @@ app_name = 'group_app'
urlpatterns = [ urlpatterns = [
url(r'^$', views.GroupListView.as_view(), name='group_list'), url(r'^$', views.GroupListView.as_view(), name='group_list'),
url(r'^add/$', views.AddGroupView.as_view(), name='add'), 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.contrib.auth.decorators import login_required
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator
from django.urls import reverse_lazy from django.urls import reverse_lazy
from django.contrib import messages from django.contrib import messages
from django.conf import settings from django.conf import settings
from guardian.decorators import permission_required_or_403 as permission_required
from . import models from . import models
from . import forms from . import forms
@ -50,3 +53,22 @@ class AddGroupView(CreateView):
def form_invalid(self, form): def form_invalid(self, form):
messages.success(self.request, _('Please fix form errors')) messages.success(self.request, _('Please fix form errors'))
return super(AddGroupView, self).form_invalid(form) 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