Browse Source

add question before free user ip address

devel
Dmitry Novikov 7 years ago
parent
commit
4eaa83f2ea
  1. 3
      abonapp/locale/ru/LC_MESSAGES/django.po
  2. 2
      abonapp/templates/abonapp/editAbon.html
  3. 14
      abonapp/templates/abonapp/modal_confirm_ip_free.html
  4. 2
      abonapp/urls.py
  5. 57
      abonapp/views.py

3
abonapp/locale/ru/LC_MESSAGES/django.po

@ -1170,3 +1170,6 @@ msgstr "Обновить ip адрес"
msgid "Please pick NAS for consumer"
msgstr "Выберите шлюз для абонента"
msgid "Are you sure you want to free ip user session?"
msgstr "Вы уверены что хотите удалить ip абонента?"

2
abonapp/templates/abonapp/editAbon.html

@ -197,7 +197,7 @@
<dt>{{ abon.ip_address }}</dt>
<dd>
<div class="btn-group btn-group-xs">
<a href="{% url 'abonapp:user_session_free' group.pk abon.username %}" class="btn btn-danger" title="{% trans 'Free session' %}" data-toggle="tooltip">
<a href="{% url 'abonapp:user_session_free' group.pk abon.username %}" class="btn btn-danger btn-modal" title="{% trans 'Free session' %}" data-toggle="tooltip">
<span class="glyphicon glyphicon-remove"></span>
</a>
{% if perms.abonapp.can_ping %}

14
abonapp/templates/abonapp/modal_confirm_ip_free.html

@ -0,0 +1,14 @@
{% extends 'base_delete_modal.html' %}
{% load i18n %}
{% block modal_form_url %}
{% url 'abonapp:user_session_free' gid object.username %}
{% endblock %}
{% block modal_form_title %}
{% trans 'Free session' %}
{% endblock %}
{% block modal_form_text %}
<h4>{% trans 'Are you sure you want to free ip user session?' %}</h4>
{% endblock %}

2
abonapp/urls.py

@ -25,7 +25,7 @@ subscriber_patterns = [
path('tel/add/', views.tel_add, name='telephone_new'),
path('tel/del/', views.tel_del, name='telephone_del'),
path('markers/', views.EditSibscriberMarkers.as_view(), name='markers_edit'),
path('session/free/', views.user_session_free, name='user_session_free'),
path('session/free/', views.UserSessionFree.as_view(), name='user_session_free'),
path('periodic_pay/', views.add_edit_periodic_pay, name='add_periodic_pay'),
path('periodic_pay/<int:periodic_pay_id>/', views.add_edit_periodic_pay, name='add_periodic_pay'),
path('periodic_pay/<int:periodic_pay_id>/del/', views.del_periodic_pay, name='del_periodic_pay'),

57
abonapp/views.py

@ -23,7 +23,6 @@ from django.utils.decorators import method_decorator
from django.utils.translation import gettext_lazy as _
from django.views.generic import ListView, UpdateView, CreateView, DeleteView
from djing import lib
from djing import ping
from djing.global_base_views import OrderedFilteredList, SecureApiView
from djing.lib.decorators import json_view, only_admins
from djing.lib.mixins import (
@ -1222,21 +1221,47 @@ class EditSibscriberMarkers(LoginAdminPermissionMixin, UpdateView):
return v
@login_required
@only_admins
@permission_required('abonapp.change_abon')
def user_session_free(request, gid: int, uname):
abon = get_object_or_404(models.Abon, username=uname)
if abon.nas is None:
messages.error(request, _('gateway required'))
return redirect('abonapp:abon_home', gid, uname)
if abon.ip_address:
abon.free_ip_addr()
customer_nas_command.delay(abon.pk, 'remove')
messages.success(request, _('Ip lease has been freed'))
else:
messages.error(request, _('User not have ip'))
return redirect('abonapp:abon_home', gid, uname)
class UserSessionFree(LoginRequiredMixin, OnlyAdminsMixin, PermissionRequiredMixin, UpdateView):
permission_required = 'abonapp.change_abon'
model = models.Abon
slug_url_kwarg = 'uname'
slug_field = 'username'
fields = 'ip_address',
template_name = 'abonapp/modal_confirm_ip_free.html'
def get(self, request, *args, **kwargs):
r = super().get(request, *args, **kwargs)
abon = self.object
if abon.nas is None:
messages.error(self.request, _('gateway required'))
return redirect(
'abonapp:abon_home',
gid=self.kwargs.get('gid'),
uname=self.kwargs.get('uname')
)
return r
def post(self, request, *args, **kwargs):
self.object = self.get_object()
abon = self.object
if abon.ip_address:
abon.free_ip_addr()
customer_nas_command.delay(abon.pk, 'remove')
messages.success(request, _('Ip lease has been freed'))
else:
messages.error(request, _('User not have ip'))
return redirect(
'abonapp:abon_home',
gid=self.kwargs.get('gid'),
uname=self.kwargs.get('uname')
)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context.update({
'gid': self.kwargs.get('gid'),
})
return context
@login_required

Loading…
Cancel
Save