62 changed files with 755 additions and 163 deletions
-
BINabonapp/locale/ru/LC_MESSAGES/django.mo
-
2abonapp/locale/ru/LC_MESSAGES/django.po
-
24abonapp/migrations/0011_auto_20170222_2224.py
-
21abonapp/models.py
-
38abonapp/templates/abonapp/editAbon.html
-
2abonapp/views.py
-
BINaccounts_app/locale/ru/LC_MESSAGES/django.mo
-
61accounts_app/locale/ru/LC_MESSAGES/django.po
-
21accounts_app/migrations/0005_auto_20170222_2224.py
-
5accounts_app/models.py
-
13accounts_app/templates/accounts/ext.htm
-
14accounts_app/templates/accounts/group.html
-
16accounts_app/templates/accounts/group_list.html
-
2accounts_app/templates/accounts/index.html
-
7accounts_app/templates/accounts/login.html
-
20accounts_app/views.py
-
1bugs.txt
-
3devapp/dev_types.py
-
3devapp/forms.py
-
116devapp/locale/ru/LC_MESSAGES/django.po
-
22devapp/migrations/0004_device_user_group.py
-
1devapp/models.py
-
92devapp/templates/devapp/add_dev.html
-
33devapp/templates/devapp/dev.html
-
43devapp/templates/devapp/devices.html
-
81devapp/templates/devapp/devices_null_group.html
-
26devapp/templates/devapp/ext.htm
-
51devapp/templates/devapp/group_list.html
-
29devapp/templates/devapp/ports.html
-
12devapp/urls.py
-
88devapp/views.py
-
BINdjango_messages/locale/ar/LC_MESSAGES/django.mo
-
BINdjango_messages/locale/cs/LC_MESSAGES/django.mo
-
BINdjango_messages/locale/da/LC_MESSAGES/django.mo
-
BINdjango_messages/locale/de/LC_MESSAGES/django.mo
-
BINdjango_messages/locale/el/LC_MESSAGES/django.mo
-
BINdjango_messages/locale/es/LC_MESSAGES/django.mo
-
BINdjango_messages/locale/es_AR/LC_MESSAGES/django.mo
-
BINdjango_messages/locale/fa/LC_MESSAGES/django.mo
-
BINdjango_messages/locale/fr/LC_MESSAGES/django.mo
-
BINdjango_messages/locale/it/LC_MESSAGES/django.mo
-
BINdjango_messages/locale/ko/LC_MESSAGES/django.mo
-
BINdjango_messages/locale/lt/LC_MESSAGES/django.mo
-
BINdjango_messages/locale/nl/LC_MESSAGES/django.mo
-
BINdjango_messages/locale/pl/LC_MESSAGES/django.mo
-
BINdjango_messages/locale/pt_BR/LC_MESSAGES/django.mo
-
BINdjango_messages/locale/ro/LC_MESSAGES/django.mo
-
BINdjango_messages/locale/ru/LC_MESSAGES/django.mo
-
BINdjango_messages/locale/zh_CN/LC_MESSAGES/django.mo
-
12systemd_units/djing.service
-
12systemd_units/djing.timer
-
8tariff_app/views.py
-
3taskapp/locale/ru/LC_MESSAGES/django.po
-
4taskapp/models.py
-
2taskapp/templates/taskapp/tasklist.html
-
2taskapp/templates/taskapp/tasklist_active.html
-
2taskapp/templates/taskapp/tasklist_all.html
-
2taskapp/templates/taskapp/tasklist_finish.html
-
2taskapp/templates/taskapp/tasklist_own.html
-
2taskapp/views.py
-
6templates/base.html
-
14templates/toolbar_page.html
@ -0,0 +1,24 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.9 on 2017-02-22 19:24 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('abonapp', '0010_auto_20170220_1630'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterModelOptions( |
|||
name='abon', |
|||
options={'permissions': (('can_buy_tariff', 'Покупка тарифа абоненту'), ('can_view_passport', 'Может просматривать паспортные данные'))}, |
|||
), |
|||
migrations.AlterField( |
|||
model_name='extrafieldsmodel', |
|||
name='field_type', |
|||
field=models.CharField(choices=[('int', 'Цифровое поле'), ('str', 'Текстовое поле'), ('dbl', 'Дробное с плавающей точкой')], max_length=3), |
|||
), |
|||
] |
|||
@ -0,0 +1,21 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.9 on 2017-02-22 19:24 |
|||
from __future__ import unicode_literals |
|||
|
|||
import django.core.validators |
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('accounts_app', '0004_auto_20170128_1316'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='userprofile', |
|||
name='telephone', |
|||
field=models.CharField(max_length=16, validators=[django.core.validators.RegexValidator('^\\+[7,8,9,3]\\d{10,11}$')], verbose_name='Номер телефона'), |
|||
), |
|||
] |
|||
@ -0,0 +1,116 @@ |
|||
# SOME DESCRIPTIVE TITLE. |
|||
# Copyright (C) YEAR THE PACKAGE"S COPYRIGHT HOLDER |
|||
# This file is distributed under the same license as the PACKAGE package. |
|||
# Dmitry Novikov nerosketch@gmail.com, 2017. |
|||
# |
|||
#, fuzzy |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: PACKAGE VERSION\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2017-02-22 01:50+0300\n" |
|||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
|||
"Last-Translator: Dmitry Novikov nerosketch@gmail.com\n" |
|||
"Language: ru\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: 8bit\n" |
|||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && 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" |
|||
|
|||
msgid "Device info" |
|||
msgstr "Инфа о железке" |
|||
|
|||
msgid "Ip address" |
|||
msgstr "Ip адрес" |
|||
|
|||
msgid "Comment" |
|||
msgstr "Комментарий" |
|||
|
|||
msgid "Device type" |
|||
msgstr "Тип устройства" |
|||
|
|||
msgid "SNMP password" |
|||
msgstr "Пароль SNMP" |
|||
|
|||
msgid "Map point" |
|||
msgstr "Точка топологии" |
|||
|
|||
msgid "Save" |
|||
msgstr "Сохранить" |
|||
|
|||
msgid "Reset" |
|||
msgstr "Сбросить" |
|||
|
|||
msgid "Devices" |
|||
msgstr "Устройства" |
|||
|
|||
msgid "Devices does not found" |
|||
msgstr "Нет созданных устройств" |
|||
|
|||
msgid "Create" |
|||
msgstr "Cоздать" |
|||
|
|||
msgid "Not assigned" |
|||
msgstr "<Не назначено>" |
|||
|
|||
msgid "Ports" |
|||
msgstr "Порты" |
|||
|
|||
msgid "Port" |
|||
msgstr "Порт" |
|||
|
|||
msgid "Edit" |
|||
msgstr "Редактировать" |
|||
|
|||
msgid "Title of the type of switch" |
|||
msgstr "Название типа свича" |
|||
|
|||
msgid "Uptime" |
|||
msgstr "Без перезагрузки" |
|||
|
|||
msgid "We have not received info, please check options :(" |
|||
msgstr "Инфа не получена, проверьте настройки :(" |
|||
|
|||
msgid "Device log" |
|||
msgstr "Лог устройства" |
|||
|
|||
msgid "Level" |
|||
msgstr "Уровень" |
|||
|
|||
msgid "Description" |
|||
msgstr "Описание" |
|||
|
|||
msgid "Date" |
|||
msgstr "Дата" |
|||
|
|||
msgid "Ports comment" |
|||
msgstr "Комментарии портов" |
|||
|
|||
msgid "Title" |
|||
msgstr "Название" |
|||
|
|||
msgid "We have not received info for ports" |
|||
msgstr "Инфа о портах не получена" |
|||
|
|||
msgid "Delete failed" |
|||
msgstr "Неизвестная ошибка при удалении :(" |
|||
|
|||
msgid "Device info has been saved" |
|||
msgstr "Инфа о точке сохранена" |
|||
|
|||
msgid "Form is invalid, check fields and try again" |
|||
msgstr "Ошибка в данных, проверте их ещё раз" |
|||
|
|||
msgid "Not Set snmp device password" |
|||
msgstr "Не указан snmp пароль для устройства" |
|||
|
|||
msgid "Dot was not pinged" |
|||
msgstr "Эта точка не пингуется" |
|||
|
|||
msgid "wait for a reply from the SNMP Timeout" |
|||
msgstr "Время ожидания ответа от SNMP истекло" |
|||
|
|||
msgid "Devices without group" |
|||
msgstr "Устройства без группы" |
|||
@ -0,0 +1,22 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.9 on 2017-02-22 19:24 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('abonapp', '0011_auto_20170222_2224'), |
|||
('devapp', '0003_device_map_dot'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AddField( |
|||
model_name='device', |
|||
name='user_group', |
|||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='abonapp.AbonGroup'), |
|||
), |
|||
] |
|||
@ -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 %} |
|||
@ -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 %} |
|||
@ -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 %} |
|||
@ -0,0 +1,12 @@ |
|||
[Unit] |
|||
Description=A job for djing |
|||
|
|||
[Service] |
|||
Type=simple |
|||
ExecStart=/usr/bin/python3 cron.py > /dev/null |
|||
WorkingDirectory=/srv/http/djing |
|||
User=http |
|||
Group=http |
|||
|
|||
[Install] |
|||
WantedBy=multi-user.target |
|||
@ -0,0 +1,12 @@ |
|||
[Unit] |
|||
Description=Run every 30 minutes a job for djing |
|||
|
|||
[Timer] |
|||
OnCalendar=*-*-* *:30:00 |
|||
Persistent=true |
|||
RandomizedDelaySec=300 |
|||
Unit=djing.service |
|||
|
|||
[Install] |
|||
WantedBy=timers.target |
|||
|
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue