Browse Source

continue develop

devel
Dmitry 9 years ago
parent
commit
2d48cac99e
  1. BIN
      abonapp/locale/ru/LC_MESSAGES/django.mo
  2. 38
      abonapp/templates/abonapp/editAbon.html
  3. 2
      abonapp/views.py
  4. BIN
      accounts_app/locale/ru/LC_MESSAGES/django.mo
  5. 7
      accounts_app/templates/accounts/login.html
  6. 3
      devapp/dev_types.py
  7. 1
      devapp/models.py
  8. 92
      devapp/templates/devapp/add_dev.html
  9. 16
      devapp/templates/devapp/dev.html
  10. 20
      devapp/templates/devapp/devices.html
  11. 81
      devapp/templates/devapp/devices_null_group.html
  12. 21
      devapp/templates/devapp/ext.htm
  13. 51
      devapp/templates/devapp/group_list.html
  14. 4
      devapp/templates/devapp/ports.html
  15. 12
      devapp/urls.py
  16. 61
      devapp/views.py
  17. BIN
      django_messages/locale/ar/LC_MESSAGES/django.mo
  18. BIN
      django_messages/locale/cs/LC_MESSAGES/django.mo
  19. BIN
      django_messages/locale/da/LC_MESSAGES/django.mo
  20. BIN
      django_messages/locale/de/LC_MESSAGES/django.mo
  21. BIN
      django_messages/locale/el/LC_MESSAGES/django.mo
  22. BIN
      django_messages/locale/es/LC_MESSAGES/django.mo
  23. BIN
      django_messages/locale/es_AR/LC_MESSAGES/django.mo
  24. BIN
      django_messages/locale/fa/LC_MESSAGES/django.mo
  25. BIN
      django_messages/locale/fr/LC_MESSAGES/django.mo
  26. BIN
      django_messages/locale/it/LC_MESSAGES/django.mo
  27. BIN
      django_messages/locale/ko/LC_MESSAGES/django.mo
  28. BIN
      django_messages/locale/lt/LC_MESSAGES/django.mo
  29. BIN
      django_messages/locale/nl/LC_MESSAGES/django.mo
  30. BIN
      django_messages/locale/pl/LC_MESSAGES/django.mo
  31. BIN
      django_messages/locale/pt_BR/LC_MESSAGES/django.mo
  32. BIN
      django_messages/locale/ro/LC_MESSAGES/django.mo
  33. BIN
      django_messages/locale/ru/LC_MESSAGES/django.mo
  34. BIN
      django_messages/locale/zh_CN/LC_MESSAGES/django.mo
  35. 4
      taskapp/models.py
  36. 2
      taskapp/templates/taskapp/tasklist.html
  37. 2
      taskapp/templates/taskapp/tasklist_active.html
  38. 2
      taskapp/templates/taskapp/tasklist_all.html
  39. 2
      taskapp/templates/taskapp/tasklist_finish.html
  40. 2
      taskapp/templates/taskapp/tasklist_own.html
  41. 6
      templates/base.html

BIN
abonapp/locale/ru/LC_MESSAGES/django.mo

38
abonapp/templates/abonapp/editAbon.html

@ -12,59 +12,59 @@
<form role="form" class="form-horizontal" action="{% url 'abonapp:abon_home' abon_group.id abon.id %}" method="post"> {% csrf_token %}
<div class="form-group-sm">
<label for="id_username" class="col-sm-2 control-label">{% trans 'login' %}</label>
<div class="col-sm-10">
<label for="id_username" class="col-sm-4 control-label">{% trans 'login' %}</label>
<div class="col-sm-8">
{{ form.username }}{{ form.username.errors }}
</div>
</div>
<div class="form-group-sm">
<label for="id_fio" class="col-sm-2 control-label">{% trans 'fio' %}</label>
<div class="col-sm-10">
<label for="id_fio" class="col-sm-4 control-label">{% trans 'fio' %}</label>
<div class="col-sm-8">
{{ form.fio }}{{ form.fio.errors }}
</div>
</div>
<div class="form-group-sm">
<label for="id_telephone" class="col-sm-2 control-label">{% trans 'Telephone' %}</label>
<div class="col-sm-10">
<label for="id_telephone" class="col-sm-4 control-label">{% trans 'Telephone' %}</label>
<div class="col-sm-8">
{{ form.telephone }}{{ form.telephone.errors }}
</div>
</div>
<div class="form-group-sm">
<label for="id_street" class="col-sm-2 control-label">{% trans 'Street' %}</label>
<label for="id_street" class="col-sm-4 control-label">{% trans 'Street' %}</label>
<div class="col-sm-10">
<div class="col-sm-8">
{{ form.street }}{{ form.street.errors }}
</div>
</div>
<div class="form-group-sm">
<label for="id_house" class="col-sm-2 control-label">{% trans 'House' %}</label>
<label for="id_house" class="col-sm-4 control-label">{% trans 'House' %}</label>
<div class="col-sm-10">
<div class="col-sm-8">
{{ form.house }}{{ form.house.errors }}
</div>
</div>
<div class="form-group-sm">
<label for="id_is_active" class="col-sm-2 control-label">{% trans 'Is active' %}</label>
<div class="col-sm-10">
<label for="id_is_active" class="col-sm-4 control-label">{% trans 'Is active' %}</label>
<div class="col-sm-8">
{{ form.is_active }}
</div>
</div>
<div class="form-group-sm">
<label for="id_group" class="col-sm-2 control-label">{% trans 'User group' %}</label>
<div class="col-sm-10">
<label for="id_group" class="col-sm-4 control-label">{% trans 'User group' %}</label>
<div class="col-sm-8">
{{ form.group }}{{ form.group.errors }}
</div>
</div>
<div class="form-group-sm">
<label for="id_password" class="col-sm-2 control-label">{% trans 'Password' %}</label>
<div class="col-sm-10">
<label for="id_password" class="col-sm-4 control-label">{% trans 'Password' %}</label>
<div class="col-sm-8">
<div class="input-group input-group-sm">
{{ form.password }}{{ form.password.errors }}
<span class="input-group-btn">
@ -77,14 +77,14 @@
</div>
<div class="form-group-sm">
<label for="id_description" class="col-sm-2 control-label">{% trans 'Comment' %}</label>
<div class="col-sm-10">
<label for="id_description" class="col-sm-4 control-label">{% trans 'Comment' %}</label>
<div class="col-sm-8">
{{ form.description }}{{ form.description.errors }}
</div>
</div>
<div class="form-group-sm">
<div class="col-sm-offset-2 col-sm-10 btn-group">
<div class="col-sm-offset-4 col-sm-8 btn-group btn-group-sm">
<button type="submit" class="btn btn-primary btn-sm">
<span class="glyphicon glyphicon-save"></span> {% trans 'Save' %}
</button>

2
abonapp/views.py

@ -8,7 +8,7 @@ from django.contrib.auth.decorators import login_required, permission_required
from django.utils import timezone
from django.http import HttpResponse
from django.contrib import messages
from django.utils.translation import ugettext as _
from django.utils.translation import ugettext_lazy as _
from tariff_app.models import Tariff
from agent import NasFailedResult, Transmitter, NasNetworkError

BIN
accounts_app/locale/ru/LC_MESSAGES/django.mo

7
accounts_app/templates/accounts/login.html

@ -11,8 +11,7 @@
background-color: #ececec;
}
.form-signin {
max-width: 35%;
min-width: 222px;
width: 478px;
margin: 10% auto;
position: relative;
}
@ -50,10 +49,10 @@
<div class="btn-group">
<button type="submit" class="btn btn-sm btn-primary">
<span class="glyphicon glyphicon-save"></span> {% trans 'Login' %}
<span class="glyphicon glyphicon-log-in"></span> {% trans 'Login' %}
</button>
<button type="reset" class="btn btn-sm btn-default">
<span class="glyphicon glyphicon-remove-circle"></span> {% trans 'Reset' %}
<span class="glyphicon glyphicon-remove-sign"></span> {% trans 'Reset' %}
</button>
</div>

3
devapp/dev_types.py

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
from mydefs import RuTimedelta, safe_int
from datetime import timedelta
from .base_intr import DevBase, SNMPBaseWorker, BasePort
@ -77,7 +78,7 @@ class DLinkDevice(DevBase, SNMPBaseWorker):
def uptime(self):
uptimestamp = safe_int(self.get_item(oids['uptime']))
tm = RuTimedelta(seconds=uptimestamp/100) or RuTimedelta()
tm = RuTimedelta(timedelta(seconds=uptimestamp/100)) or RuTimedelta()
return tm

1
devapp/models.py

@ -18,6 +18,7 @@ class Device(models.Model):
devtype = models.CharField(max_length=2, default=DEVICE_TYPES[0][0], choices=_DeviceChoicesAdapter())
man_passw = models.CharField(max_length=16, null=True, blank=True)
map_dot = models.ForeignKey(Dot, on_delete=models.SET_NULL, null=True, blank=True)
user_group = models.ForeignKey('abonapp.AbonGroup', on_delete=models.SET_NULL, null=True, blank=True)
class Meta:
db_table = 'dev'

92
devapp/templates/devapp/add_dev.html

@ -0,0 +1,92 @@
{% extends request.is_ajax|yesno:'bajax.html,base.html' %}
{% load i18n %}
{% block main %}
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'devapp:group_list' %}">{% trans 'Groups' %}</a></li>
<li class="active">{% trans 'Add new device' %}</li>
</ol>
{% include 'message_block.html' %}
<div class="page-header">
<h2>{{ dev.comment|default:_('Not assigned') }}</h2>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">{% trans 'Device info' %}</h3>
</div>
<div class="panel-body">
<form role="form" action="{% url 'devapp:add' %}" method="post">{% csrf_token %}
<div class="form-group">
<label for="id_ip_address">{% trans 'Ip address' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-globe"></span></span>
{{ form.ip_address }}{{ form.ip_address.errors }}
</div>
</div>
<div class="form-group">
<label for="id_comment">{% trans 'Comment' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-comment"></span></span>
{{ form.comment }}{{ form.comment.errors }}
</div>
</div>
<div class="form-group">
<label for="id_devtype">{% trans 'Device type' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-hdd"></span></span>
{{ form.devtype }}{{ form.devtype.errors }}
</div>
</div>
<div class="form-group">
<label for="id_man_passw">{% trans 'SNMP password' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-lock"></span></span>
{{ form.man_passw }}{{ form.man_passw.errors }}
</div>
</div>
<div class="form-group">
<label for="id_map_dot">{% trans 'Map point' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-map-marker"></span></span>
{{ form.map_dot }}{{ form.devtype.errors }}
</div>
</div>
<div class="form-group">
<label for="id_user_group">{% trans 'User group' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-subscript"></span></span>
{{ form.user_group }}{{ form.user_group.errors }}
</div>
</div>
<div class="btn-group">
<button type="submit" class="btn btn-sm btn-primary">
<span class="glyphicon glyphicon-save"></span> {% trans 'Save' %}
</button>
<button type="reset" class="btn btn-sm btn-default">
<span class="glyphicon glyphicon-remove-circle"></span> {% trans 'Reset' %}
</button>
</div>
</form>
</div>
</div>
{% endblock %}

16
devapp/templates/devapp/dev.html

@ -8,12 +8,7 @@
</div>
<div class="panel-body">
<form role="form" action="
{% if dev.id == 0 %}
{% url 'devapp:add' %}
{% else %}
{% url 'devapp:edit' dev.id %}
{% endif %}" method="post">{% csrf_token %}
<form role="form" action="{% url 'devapp:edit' dev.user_group.pk|default:0 dev.pk %}" method="post">{% csrf_token %}
<div class="form-group">
<label for="id_ip_address">{% trans 'Ip address' %}</label>
@ -60,6 +55,15 @@
</div>
</div>
<div class="form-group">
<label for="id_user_group">{% trans 'User group' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-subscript"></span></span>
{{ form.user_group }}{{ form.user_group.errors }}
</div>
</div>
<div class="btn-group">
<button type="submit" class="btn btn-sm btn-primary">
<span class="glyphicon glyphicon-save"></span> {% trans 'Save' %}

20
devapp/templates/devapp/devices.html

@ -4,7 +4,8 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li class="active">{% trans 'Devices' %}</li>
<li><a href="{% url 'devapp:group_list' %}">{% trans 'Groups' %}</a></li>
<li class="active">{{ group.title }}</li>
</ol>
{% include 'message_block.html' %}
@ -15,19 +16,19 @@
<thead>
<tr>
<th>
<a href="{% url 'devapp:devs' %}?order_by=ip_address&dir={{ dir|default:"down" }}">
<a href="{% url 'devapp:devs' group.pk %}?order_by=ip_address&dir={{ dir|default:"down" }}">
{% trans 'Ip address' %}
</a>
{% if order_by == 'ip_address' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
</th>
<th>
<a href="{% url 'devapp:devs' %}?order_by=comment&dir={{ dir|default:"down" }}">
<a href="{% url 'devapp:devs' group.pk %}?order_by=comment&dir={{ dir|default:"down" }}">
{% trans 'Comment' %}
</a>
{% if order_by == 'comment' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
</th>
<th width="250">
<a href="{% url 'devapp:devs' %}?order_by=devtype&dir={{ dir|default:"down" }}">
<a href="{% url 'devapp:devs' group.pk %}?order_by=devtype&dir={{ dir|default:"down" }}">
{% trans 'Device type' %}
</a>
{% if order_by == 'devtype' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
@ -39,15 +40,20 @@
<tbody>
{% for dev in devices %}
<tr>
<td><a href="{% url 'devapp:view' dev.id %}">{{ dev.ip_address }}</a></td>
<td><a href="{% url 'devapp:view' dev.user_group.pk|default:0 dev.pk %}">{{ dev.ip_address }}</a></td>
<td>{{ dev.comment }}</td>
<td>{{ dev.get_devtype_display }}</td>
<td>
<td class="btn-group btn-group-sm">
{% if perms.devapp.delete_device %}
<a href="{% url 'devapp:del' dev.id %}" class="btn btn-danger btn-sm">
<a href="{% url 'devapp:del' dev.user_group.pk|default:0 dev.pk %}" class="btn btn-default btn-sm">
<span class="glyphicon glyphicon-remove"></span>
</a>
{% endif %}
{% if perms.devapp.change_device %}
<a href="{% url 'devapp:edit' dev.user_group.pk|default:0 dev.id %}" class="btn btn-default btn-sm">
<span class="glyphicon glyphicon-edit"></span>
</a>
{% endif %}
</td>
</tr>
{% empty %}

81
devapp/templates/devapp/devices_null_group.html

@ -0,0 +1,81 @@
{% extends request.is_ajax|yesno:'bajax.html,base.html' %}
{% load i18n %}
{% block main %}
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'devapp:group_list' %}">{% trans 'Groups' %}</a></li>
<li class="active">{% trans 'Devices' %}</li>
</ol>
{% include 'message_block.html' %}
<h3>{% trans 'Devices without group' %}</h3>
<div class="table-responsive">
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>
<a href="{% url 'devapp:devices_null_group' %}?order_by=ip_address&dir={{ dir|default:"down" }}">
{% trans 'Ip address' %}
</a>
{% if order_by == 'ip_address' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
</th>
<th>
<a href="{% url 'devapp:devices_null_group' %}?order_by=comment&dir={{ dir|default:"down" }}">
{% trans 'Comment' %}
</a>
{% if order_by == 'comment' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
</th>
<th width="250">
<a href="{% url 'devapp:devices_null_group' %}?order_by=devtype&dir={{ dir|default:"down" }}">
{% trans 'Device type' %}
</a>
{% if order_by == 'devtype' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
</th>
<th width="100">Do</th>
</tr>
</thead>
<tbody>
{% for dev in devices %}
<tr>
<td><a href="{% url 'devapp:view' dev.user_group.pk|default:0 dev.id %}">{{ dev.ip_address }}</a></td>
<td>{{ dev.comment }}</td>
<td>{{ dev.get_devtype_display }}</td>
<td class="btn-group btn-group-sm">
{% if perms.devapp.delete_device %}
<a href="{% url 'devapp:del' dev.user_group.pk|default:0 dev.id %}" class="btn btn-danger btn-sm">
<span class="glyphicon glyphicon-remove"></span>
</a>
{% endif %}
{% if perms.devapp.change_device %}
<a href="{% url 'devapp:edit' dev.user_group.pk|default:0 dev.id %}" class="btn btn-default btn-sm">
<span class="glyphicon glyphicon-edit"></span>
</a>
{% endif %}
</td>
</tr>
{% empty %}
<tr>
<td colspan="4">{% trans 'Devices does not found' %}. <a href="{% url 'devapp:add' %}">{% trans 'Create' %}</a></td>
</tr>
{% endfor %}
</tbody>
<tfoot>
<tr>
<td colspan="4">
<a href="{% url 'devapp:add' %}" class="btn btn-success btn-sm">
<span class="glyphicon glyphicon-plus"></span> {% trans 'Create' %}
</a>
</td>
</tr>
</tfoot>
</table>
</div>
{% include 'toolbar_page.html' with pag=devices %}
{% endblock %}

21
devapp/templates/devapp/ext.htm

@ -4,8 +4,13 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'devapp:devs' %}">{% trans 'Devices' %}</a></li>
<li class="active">{{ dev.ip_address }}</li>
<li><a href="{% url 'devapp:group_list' %}">{% trans 'Groups' %}</a></li>
{% if dev.user_group %}
<li><a href="{% url 'devapp:devs' dev.user_group.pk %}">{{ dev.user_group.title }}</a></li>
{% else %}
<li>{% trans 'Not assigned' %}</li>
{% endif %}
<li class="active">{{ dev.comment }}</li>
</ol>
{% include 'message_block.html' %}
@ -16,17 +21,19 @@
<ul class="nav nav-tabs">
{% url 'devapp:view' dev.id as devapp_view %}
{% url 'devapp:view' dev.user_group.pk|default:0 dev.id as devapp_view %}
<li{% if devapp_view == request.path %} class="active"{% endif %}>
<a href="{{ devapp_view }}">
{% trans 'Ports' %} {{ dev.ip_address }}
</a>
</li>
{% url 'devapp:edit' dev.id as devapp_edit %}
<li{% if devapp_edit == request.path %} class="active"{% endif %}>
<a href="{{ devapp_edit }}">{% trans 'Edit' %}</a>
</li>
{% if perms.devapp.change_device %}
{% url 'devapp:edit' dev.user_group.pk|default:0 dev.id as devapp_edit %}
<li{% if devapp_edit == request.path %} class="active"{% endif %}>
<a href="{{ devapp_edit }}">{% trans 'Edit' %}</a>
</li>
{% endif %}
</ul>
<div class="tab-content">

51
devapp/templates/devapp/group_list.html

@ -0,0 +1,51 @@
{% extends 'base.html' %}
{% load i18n %}
{% block main %}
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li class="active">{% trans 'Groups' %}</li>
</ol>
<h3>{% trans 'Groups' %}</h3>
{% include 'message_block.html' %}
<div class="table-responsive">
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>{% trans 'Group title' %}</th>
</tr>
</thead>
<tbody>
{% for gr in groups %}
<tr>
<td><a href="{% url 'devapp:devs' gr.id %}">{{ gr.title }}</a></td>
</tr>
{% empty %}
<tr>
<td><a href="#">{% trans 'Groups was not found' %}</a></td>
</tr>
{% endfor %}
</tbody>
<tfoot>
<tr>
<td class="btn-group">
{% if perms.abonapp.add_abongroup %}
<a href="{% url 'abonapp:add_group' %}" class="btn btn-success btn-sm">
<span class="glyphicon glyphicon-plus"></span> {% trans 'Add group' %}
</a>
{% endif %}
<a href="{% url 'devapp:devices_null_group' %}" class="btn btn-primary btn-sm">
<span class="glyphicon glyphicon-list-alt"></span> {% trans 'Devices without group' %}
</a>
</td>
</tr>
</tfoot>
</table>
</div>
{% include 'toolbar_page.html' with pag=groups %}
{% endblock %}

4
devapp/templates/devapp/ports.html

@ -30,10 +30,10 @@
<b>{{ port.num }}</b>
</a>
<div class="btn-group btn-group-xs btn-group-justified">
<a href="{% url 'devapp:port_toggle' dev.id port.num 1 %}" class="btn btn-success">
<a href="{% url 'devapp:port_toggle' dev.user_group.pk|default:0 dev.id port.num 1 %}" class="btn btn-success">
<span class="glyphicon glyphicon-ok"></span>
</a>
<a href="{% url 'devapp:port_toggle' dev.id port.num 0 %}" class="btn btn-danger">
<a href="{% url 'devapp:port_toggle' dev.user_group.pk|default:0 dev.id port.num 0 %}" class="btn btn-danger">
<span class="glyphicon glyphicon-off"></span>
</a>
</div>

12
devapp/urls.py

@ -4,10 +4,12 @@ from . import views
urlpatterns = [
url(r'^$', views.devices, name='devs'),
url(r'^$', views.group_list, name='group_list'),
url(r'^add$', views.dev, name='add'),
url(r'^(?P<did>\d+)$', views.devview, name='view'),
url(r'^(?P<did>\d+)/del$', views.devdel, name='del'),
url(r'^(?P<devid>\d+)/edit$', views.dev, name='edit'),
url(r'^(?P<did>\d+)/(?P<portid>\d+)_(?P<status>[0-1]{1})$', views.toggle_port, name='port_toggle')
url(r'^devices_without_groups$', views.devices_null_group, name='devices_null_group'),
url(r'^(?P<grp>\d+)$', views.devices, name='devs'),
url(r'^(\d+)/(?P<did>\d+)$', views.devview, name='view'),
url(r'^(\d+)/(?P<did>\d+)/del$', views.devdel, name='del'),
url(r'^(\d+)/(?P<devid>\d+)/edit$', views.dev, name='edit'),
url(r'^(\d+)/(?P<did>\d+)/(?P<portid>\d+)_(?P<status>[0-1]{1})$', views.toggle_port, name='port_toggle')
]

61
devapp/views.py

@ -1,31 +1,50 @@
# -*- coding: utf-8 -*-
from django.contrib.auth.decorators import login_required, permission_required
from django.core.exceptions import PermissionDenied
from django.shortcuts import render, redirect, get_object_or_404
from django.shortcuts import render, redirect, get_object_or_404, resolve_url
from django.contrib import messages
from django.utils.translation import ugettext as _
from django.utils.translation import ugettext_lazy as _
from easysnmp import EasySNMPTimeoutError
from .models import Device
from mydefs import pag_mn, res_success, res_error, only_admins, ping, order_helper
from .forms import DeviceForm
from abonapp.models import AbonGroup
@login_required
@only_admins
def devices(request):
devs = Device.objects.all()
def devices(request, grp):
group = get_object_or_404(AbonGroup, pk=grp)
devs = Device.objects.filter(user_group=grp)
# фильтр
dr, field = order_helper(request)
if field:
devs = devs.order_by(field)
print(type(request.GET), request.GET)
import django.http.request
devs = pag_mn(request, devs)
return render(request, 'devapp/devices.html', {
'devices': devs,
'dir': dr,
'order_by': request.GET.get('order_by'),
'group': group
})
@login_required
@only_admins
def devices_null_group(request):
devs = Device.objects.all()
# фильтр
dr, field = order_helper(request)
if field:
devs = devs.order_by(field)
devs = pag_mn(request, devs)
return render(request, 'devapp/devices_null_group.html', {
'devices': devs,
'dir': dr,
'order_by': request.GET.get('order_by')
@ -36,8 +55,10 @@ def devices(request):
@permission_required('devapp.delete_device')
def devdel(request, did):
try:
Device.objects.get(pk=did).delete()
return res_success(request, 'devapp:devs')
dev = Device.objects.get(pk=did)
back_url = resolve_url('devapp:devs', grp=dev.user_group.pk if dev.user_group else 0)
dev.delete()
return res_success(request, back_url)
except Device.DoesNotExist:
return res_error(request, _('Delete failed'))
@ -63,10 +84,15 @@ def dev(request, devid=0):
else:
frm = DeviceForm(instance=devinst)
return render(request, 'devapp/dev.html', {
'form': frm,
'dev': devinst
})
if devinst is None:
return render(request, 'devapp/add_dev.html', {
'form': frm
})
else:
return render(request, 'devapp/dev.html', {
'form': frm,
'dev': devinst
})
@login_required
@ -114,4 +140,13 @@ def toggle_port(request, did, portid, status=0):
messages.warning(request, _('Not Set snmp device password'))
else:
messages.error(request, _('Dot was not pinged'))
return redirect('devapp:view', did=did)
return redirect('devapp:view', dev.user_group or 0, did)
@login_required
@only_admins
def group_list(request):
groups = AbonGroup.objects.all()
return render(request, 'devapp/group_list.html', {
'groups': groups
})

BIN
django_messages/locale/ar/LC_MESSAGES/django.mo

BIN
django_messages/locale/cs/LC_MESSAGES/django.mo

BIN
django_messages/locale/da/LC_MESSAGES/django.mo

BIN
django_messages/locale/de/LC_MESSAGES/django.mo

BIN
django_messages/locale/el/LC_MESSAGES/django.mo

BIN
django_messages/locale/es/LC_MESSAGES/django.mo

BIN
django_messages/locale/es_AR/LC_MESSAGES/django.mo

BIN
django_messages/locale/fa/LC_MESSAGES/django.mo

BIN
django_messages/locale/fr/LC_MESSAGES/django.mo

BIN
django_messages/locale/it/LC_MESSAGES/django.mo

BIN
django_messages/locale/ko/LC_MESSAGES/django.mo

BIN
django_messages/locale/lt/LC_MESSAGES/django.mo

BIN
django_messages/locale/nl/LC_MESSAGES/django.mo

BIN
django_messages/locale/pl/LC_MESSAGES/django.mo

BIN
django_messages/locale/pt_BR/LC_MESSAGES/django.mo

BIN
django_messages/locale/ro/LC_MESSAGES/django.mo

BIN
django_messages/locale/ru/LC_MESSAGES/django.mo

BIN
django_messages/locale/zh_CN/LC_MESSAGES/django.mo

4
taskapp/models.py

@ -1,5 +1,6 @@
# coding=utf-8
from datetime import timedelta
import os
from django.db import models
from django.conf import settings
from django.utils import timezone
@ -96,6 +97,9 @@ class Task(models.Model):
)
self.save(update_fields=['state'])
def get_attachment_fname(self):
return os.path.basename(self.attachment.name)
def task_handler(sender, instance, **kwargs):
group = ''

2
taskapp/templates/taskapp/tasklist.html

@ -36,7 +36,7 @@
<td>{{ task.get_state_display }}</td>
<td>{{ task.get_priority_display }}</td>
<td>{{ task.time_of_create|date:'d N Y H:i:s' }}</td>
<td>{% if task.attachment %}<a href="{{ task.attachment.url }}" target="_blank">{{ task.attachment.name }}</a>{% else %}&horbar;{% endif %}</td>
<td>{% if task.attachment %}<a href="{{ task.attachment.url }}" target="_blank">{{ task.get_attachment_fname|truncatechars:32|truncatechars:32 }}</a>{% else %}&horbar;{% endif %}</td>
<td colspan="3" class="btn-group btn-group-justified">
<a href="{% url 'taskapp:begin' task.id %}" class="btn btn-primary btn-xs" title="{% trans 'Begin' %}">
<span class="glyphicon glyphicon-cog"></span>

2
taskapp/templates/taskapp/tasklist_active.html

@ -37,7 +37,7 @@
<td>{{ task.get_state_display }}</td>
<td>{{ task.get_priority_display }}</td>
<td>{{ task.time_of_create|date:'d N Y H:i:s' }}</td>
<td>{% if task.attachment %}<a href="{{ task.attachment.url }}" target="_blank">{{ task.attachment.name }}</a>{% else %}&horbar;{% endif %}</td>
<td>{% if task.attachment %}<a href="{{ task.attachment.url }}" target="_blank">{{ task.get_attachment_fname|truncatechars:32 }}</a>{% else %}&horbar;{% endif %}</td>
<td colspan="3" class="btn-group">
<a href="{% url 'taskapp:finish' task.id %}" class="btn btn-sm btn-success" title="{% trans 'Complete' %}">
<span class="glyphicon glyphicon-ok"></span>

2
taskapp/templates/taskapp/tasklist_all.html

@ -48,7 +48,7 @@
<td>{{ task.get_state_display }}</td>
<td>{{ task.get_priority_display }}</td>
<td>{{ task.time_of_create|date:'d N Y H:i:s' }}</td>
<td>{% if task.attachment %}<a href="{{ task.attachment.url }}" target="_blank">{{ task.attachment.name }}</a>{% else %}&horbar;{% endif %}</td>
<td>{% if task.attachment %}<a href="{{ task.attachment.url }}" target="_blank">{{ task.get_attachment_fname|truncatechars:32 }}</a>{% else %}&horbar;{% endif %}</td>
<td colspan="3" class="btn-group btn-group-justified">
{% if perms.taskapp.change_task %}
<a href="{% url 'taskapp:edit' task.id %}" class="btn btn-default btn-sm" title="{% trans 'Edit' %}">

2
taskapp/templates/taskapp/tasklist_finish.html

@ -37,7 +37,7 @@
<td>{{ task.get_state_display }}</td>
<td>{{ task.get_priority_display }}</td>
<td>{{ task.time_of_create|date:'d N Y H:i:s' }}</td>
<td>{% if task.attachment %}<a href="{{ task.attachment.url }}" target="_blank">{{ task.attachment.name }}</a>{% else %}&horbar;{% endif %}</td>
<td>{% if task.attachment %}<a href="{{ task.attachment.url }}" target="_blank">{{ task.get_attachment_fname|truncatechars:32 }}</a>{% else %}&horbar;{% endif %}</td>
<td colspan="3" class="btn-group">
{% if perms.taskapp.change_task %}
<a href="{% url 'taskapp:edit' task.id %}" class="btn btn-sm btn-default" title="{% trans 'Edit' %}">

2
taskapp/templates/taskapp/tasklist_own.html

@ -34,7 +34,7 @@
<td>{{ task.get_state_display }}</td>
<td>{{ task.get_priority_display }}</td>
<td>{{ task.time_of_create|date:'d N Y H:i:s' }}</td>
<td>{% if task.attachment %}<a href="{{ task.attachment.url }}" target="_blank">{{ task.attachment.name }}</a>{% else %}&horbar;{% endif %}</td>
<td>{% if task.attachment %}<a href="{{ task.attachment.url }}" target="_blank">{{ task.get_attachment_fname|truncatechars:32 }}</a>{% else %}&horbar;{% endif %}</td>
<td class="btn-group btn-group-justified">
{% if perms.taskapp.change_task %}
<a href="{% url 'taskapp:edit' task.id %}" class="btn btn-sm btn-default" title="{% trans 'Edit' %}">

6
templates/base.html

@ -70,9 +70,9 @@
<span class="glyphicon glyphicon-compressed"></span> ip пул
</a></li>
{% url 'devapp:devs' as devapp_devs %}
<li{% if devapp_devs in request.path %} class="active"{% endif %}>
<a href="{{ devapp_devs }}">
{% url 'devapp:group_list' as devapp_groups %}
<li{% if devapp_groups in request.path %} class="active"{% endif %}>
<a href="{{ devapp_groups }}">
<span class="glyphicon glyphicon-hdd"></span> железки
</a></li>

Loading…
Cancel
Save