diff --git a/abonapp/locale/ru/LC_MESSAGES/django.po b/abonapp/locale/ru/LC_MESSAGES/django.po index d060efd..762aeda 100644 --- a/abonapp/locale/ru/LC_MESSAGES/django.po +++ b/abonapp/locale/ru/LC_MESSAGES/django.po @@ -300,10 +300,6 @@ msgstr "График использования" msgid "Static info was Not found" msgstr "Статистика не найдена" -#: templates/abonapp/charts.html:51 -msgid "Graphs by dates" -msgstr "Графики по датам" - #: templates/abonapp/debtors.html:9 msgid "Debtors" msgstr "Должники" @@ -992,3 +988,10 @@ msgstr "Звонки" msgid "No have ip" msgstr "Нет ip адреса" +#, python-format +msgid "Graph of use by %(wantdate_d)s" +msgstr "График использования за %(wantdate_d)s" + +msgid "Show graph by date" +msgstr "Показать график по дате" + diff --git a/abonapp/models.py b/abonapp/models.py index cc95e28..e7d0e73 100644 --- a/abonapp/models.py +++ b/abonapp/models.py @@ -36,9 +36,9 @@ class AbonGroup(models.Model): class AbonLog(models.Model): - abon = models.ForeignKey('Abon') + abon = models.ForeignKey('Abon', models.CASCADE) amount = models.FloatField(default=0.0) - author = models.ForeignKey(UserProfile, related_name='+') + author = models.ForeignKey(UserProfile, models.CASCADE, related_name='+') comment = models.CharField(max_length=128) date = models.DateTimeField(auto_now_add=True) @@ -53,7 +53,7 @@ class AbonLog(models.Model): class AbonTariff(models.Model): - tariff = models.ForeignKey(Tariff, related_name='linkto_tariff') + tariff = models.ForeignKey(Tariff, models.CASCADE, related_name='linkto_tariff') # время начала действия услуги time_start = models.DateTimeField(null=True, blank=True, default=None) @@ -86,7 +86,7 @@ class AbonTariff(models.Model): class AbonStreet(models.Model): name = models.CharField(max_length=64) - group = models.ForeignKey(AbonGroup) + group = models.ForeignKey(AbonGroup, models.CASCADE) def __str__(self): return self.name @@ -289,7 +289,7 @@ class PassportInfo(models.Model): class InvoiceForPayment(models.Model): - abon = models.ForeignKey(Abon) + abon = models.ForeignKey(Abon, models.CASCADE) status = models.BooleanField(default=False) amount = models.FloatField(default=0.0) comment = models.CharField(max_length=128) @@ -363,7 +363,7 @@ class AllPayLog(models.Model): class AbonRawPassword(models.Model): - account = models.OneToOneField(Abon, primary_key=True) + account = models.OneToOneField(Abon, models.CASCADE, primary_key=True) passw_text = models.CharField(max_length=64) def __str__(self): @@ -374,7 +374,7 @@ class AbonRawPassword(models.Model): class AdditionalTelephone(models.Model): - abon = models.ForeignKey(Abon, related_name='additional_telephones') + abon = models.ForeignKey(Abon, models.CASCADE, related_name='additional_telephones') telephone = models.CharField( max_length=16, verbose_name=_('Telephone'), diff --git a/abonapp/templates/abonapp/charts.html b/abonapp/templates/abonapp/charts.html index a9481b0..97bcd2f 100644 --- a/abonapp/templates/abonapp/charts.html +++ b/abonapp/templates/abonapp/charts.html @@ -3,14 +3,22 @@ {% block content %}
-
+
-

{% trans 'Graph of use' %}

+

{% blocktrans with wantdate_d=wantdate|date:'j E Y' %}Graph of use by {{ wantdate_d }}{% endblocktrans %}

{% if charts_data %}
+
+ + + + +
{% else %} @@ -46,18 +57,6 @@
-
-
-
{% trans 'Graphs by dates' %}
-
- {% for dat in dates %} - {{ dat|date:'j E' }} - {% empty %} - {% trans 'Static info was Not found' %} - {% endfor %} -
-
-
{% endblock %} diff --git a/abonapp/urls.py b/abonapp/urls.py index 44d792f..f0da48a 100644 --- a/abonapp/urls.py +++ b/abonapp/urls.py @@ -3,6 +3,8 @@ from django.conf.urls import url, include from . import views +app_name = 'abonapp' + urlpatterns = [ url(r'^$', views.grouplist, name='group_list'), diff --git a/abonapp/views.py b/abonapp/views.py index d6be42b..9bd7657 100644 --- a/abonapp/views.py +++ b/abonapp/views.py @@ -581,7 +581,7 @@ def charts(request, gid, uid): charts_data = None else: charts_data = StatElem.objects.chart( - abon.ip_address, + abon.username, count_of_parts=30, want_date=wandate ) @@ -608,7 +608,7 @@ def charts(request, gid, uid): 'abon': abon, 'charts_data': ',\n'.join(charts_data) if charts_data is not None else None, 'high': high, - 'dates': get_dates() + 'wantdate': wandate }) diff --git a/accounts_app/urls.py b/accounts_app/urls.py index 5224c1f..ad6d058 100644 --- a/accounts_app/urls.py +++ b/accounts_app/urls.py @@ -4,6 +4,8 @@ from django.conf.urls import url from . import views +app_name = 'account_app' + urlpatterns = [ url(r'^login/', views.to_signin, name='login'), @@ -27,4 +29,4 @@ urlpatterns = [ url(r'^(?P\d+)/user_group_access$', views.set_abon_groups_permission, name='set_abon_groups_permission') -] \ No newline at end of file +] diff --git a/agent/netflow/start_netflow.sh b/agent/netflow/start_netflow.sh index f876a41..40cd1b0 100755 --- a/agent/netflow/start_netflow.sh +++ b/agent/netflow/start_netflow.sh @@ -2,5 +2,5 @@ PATH=/usr/local/sbin:/usr/local/bin:/usr/bin -flow-capture -R /var/www/djing/agent/netflow/netflow_handler.sh -p /run/flow.pid -w /tmp/djing_flow -n1 -N0 0/0/6343 +flow-capture -R /var/www/djing/agent/netflow/netflow_handler.py -p /run/flow.pid -w /tmp/djing_flow -n1 -N0 0/0/6343 diff --git a/chatbot/models.py b/chatbot/models.py index d704e15..fffe6f1 100644 --- a/chatbot/models.py +++ b/chatbot/models.py @@ -10,7 +10,7 @@ class ChatException(Exception): class TelegramBot(models.Model): - user = models.ForeignKey(AUTH_USER_MODEL, verbose_name=_('Employee')) + user = models.ForeignKey(AUTH_USER_MODEL, models.CASCADE, verbose_name=_('Employee')) chat_id = models.PositiveIntegerField(_('Telegram chat id'), default=0) def __str__(self): @@ -23,7 +23,7 @@ class TelegramBot(models.Model): class MessageHistory(models.Model): - user = models.ForeignKey(AUTH_USER_MODEL) + user = models.ForeignKey(AUTH_USER_MODEL, models.CASCADE) message = models.CharField(max_length=255) date_sent = models.DateTimeField(auto_now_add=True) @@ -50,7 +50,7 @@ class MessageQueueManager(models.Manager): class MessageQueue(models.Model): - target_employee = models.ForeignKey(AUTH_USER_MODEL, verbose_name=_('Target employee')) + target_employee = models.ForeignKey(AUTH_USER_MODEL, models.CASCADE, verbose_name=_('Target employee')) message = models.CharField(_('Message'), max_length=255) STATUSES = ( ('n', 'New'), diff --git a/clientsideapp/urls.py b/clientsideapp/urls.py index 8e95779..61fa864 100644 --- a/clientsideapp/urls.py +++ b/clientsideapp/urls.py @@ -3,6 +3,9 @@ from django.conf.urls import url from . import views +app_name = 'clientsideapp' + + urlpatterns = [ url(r'^$', views.home, name='home'), url(r'^pays$', views.pays, name='pays'), diff --git a/devapp/models.py b/devapp/models.py index 8412abb..438a08c 100644 --- a/devapp/models.py +++ b/devapp/models.py @@ -132,7 +132,7 @@ class Device(models.Model): class Port(models.Model): - device = models.ForeignKey(Device, verbose_name=_('Device')) + device = models.ForeignKey(Device, models.CASCADE, verbose_name=_('Device')) num = models.PositiveSmallIntegerField(_('Number'), default=0) descr = models.CharField(_('Description'), max_length=60, null=True, blank=True) diff --git a/devapp/urls.py b/devapp/urls.py index f5cbef7..14dbd6c 100644 --- a/devapp/urls.py +++ b/devapp/urls.py @@ -3,6 +3,9 @@ from django.conf.urls import url from . import views +app_name = 'devapp' + + urlpatterns = [ url(r'^$', views.group_list, name='group_list'), url(r'^devices_without_groups$', views.devices_null_group, name='devices_null_group'), diff --git a/dialing_app/urls.py b/dialing_app/urls.py index 59d5837..1e58276 100644 --- a/dialing_app/urls.py +++ b/dialing_app/urls.py @@ -2,6 +2,9 @@ from django.conf.urls import url from . import views +app_name = 'dialing_app' + + urlpatterns = [ url(r'^$', views.home, name='home'), url(r'^filter$', views.vfilter, name='vfilter'), diff --git a/mapapp/urls.py b/mapapp/urls.py index 6333259..79106a2 100644 --- a/mapapp/urls.py +++ b/mapapp/urls.py @@ -4,6 +4,9 @@ from django.conf.urls import url from . import views +app_name = 'mapapp' + + urlpatterns = [ url(r'^$', views.home, name='home'), url(r'^options$', views.options, name='options'), diff --git a/msg_app/models.py b/msg_app/models.py index d69c4e6..9333b24 100644 --- a/msg_app/models.py +++ b/msg_app/models.py @@ -10,8 +10,8 @@ class MessageError(Exception): class MessageStatus(models.Model): - msg = models.ForeignKey('Message', related_name='msg_statuses') - user = models.ForeignKey(UserProfile, related_name='usr_msg_status') + msg = models.ForeignKey('Message', models.CASCADE, related_name='msg_statuses') + user = models.ForeignKey(UserProfile, models.CASCADE, related_name='usr_msg_status') MESSAGE_STATES = ( ('new', _('New')), ('old', _('Seen')), @@ -34,8 +34,8 @@ class MessageStatus(models.Model): class Message(models.Model): text = models.TextField(_("Body")) sent_at = models.DateTimeField(_("sent at"), auto_now_add=True) - author = models.ForeignKey(UserProfile, related_name='messages') - conversation = models.ForeignKey('Conversation', verbose_name=_('Conversation')) + author = models.ForeignKey(UserProfile, models.CASCADE, related_name='messages') + conversation = models.ForeignKey('Conversation', models.CASCADE, verbose_name=_('Conversation')) attachment = models.FileField(upload_to='messages_attachments/%Y_%m_%d', blank=True, null=True) account_status = models.ManyToManyField(UserProfile, through=MessageStatus, through_fields=('msg', 'user')) @@ -73,8 +73,8 @@ class Message(models.Model): class ConversationMembership(models.Model): - account = models.ForeignKey(UserProfile, related_name='memberships') - conversation = models.ForeignKey('Conversation') + account = models.ForeignKey(UserProfile, models.CASCADE, related_name='memberships') + conversation = models.ForeignKey('Conversation', models.CASCADE) PARTICIPANT_STATUS = ( ('adm', _('Admin')), ('gst', _('Guest')), @@ -82,7 +82,7 @@ class ConversationMembership(models.Model): ('inv', _('Inviter')) ) status = models.CharField(max_length=3, choices=PARTICIPANT_STATUS, default='gst') - who_invite_that_user = models.ForeignKey(UserProfile, null=True, blank=True, related_name='self_conversations') + who_invite_that_user = models.ForeignKey(UserProfile, models.CASCADE, null=True, blank=True, related_name='self_conversations') def __str__(self): return "%s < %s" % (self.conversation, self.account) @@ -139,7 +139,7 @@ class Conversation(models.Model): participants = models.ManyToManyField(UserProfile, related_name='conversations', through='ConversationMembership', through_fields=('conversation', 'account')) - author = models.ForeignKey(UserProfile) + author = models.ForeignKey(UserProfile, models.CASCADE) date_create = models.DateTimeField(auto_now_add=True) def __str__(self): diff --git a/msg_app/templates/msg_app/chat.html b/msg_app/templates/msg_app/chat.html index 89bf3fb..94686bf 100644 --- a/msg_app/templates/msg_app/chat.html +++ b/msg_app/templates/msg_app/chat.html @@ -42,7 +42,7 @@ {{ msg.sent_at|date:'d M, H:i:s' }} -

{{ msg.text }}

+
{{ msg.text }}
{% if msg.attachment %} {{ msg.attachment }} diff --git a/msg_app/urls.py b/msg_app/urls.py index d0e27a7..21a320c 100644 --- a/msg_app/urls.py +++ b/msg_app/urls.py @@ -2,6 +2,9 @@ from django.conf.urls import url from . import views +app_name = 'msg_app' + + urlpatterns = [ url(r'^$', views.home, name='home'), url(r'^new$', views.new_conversation, name='new_conversation'), diff --git a/searchapp/urls.py b/searchapp/urls.py index a955e6c..3a80e5b 100644 --- a/searchapp/urls.py +++ b/searchapp/urls.py @@ -3,6 +3,8 @@ from django.conf.urls import url from . import views +app_name = 'searchapp' + urlpatterns = [ url(r'^$', views.home, name='home'), diff --git a/static/css/custom.css b/static/css/custom.css index 97ac6d3..0fe073e 100644 --- a/static/css/custom.css +++ b/static/css/custom.css @@ -275,5 +275,9 @@ div#loading>div.gif { } -pre {border: 0; background-color: transparent;} +pre { + border: 0; background-color: transparent; + white-space: pre-wrap; + word-wrap: break-word; +} diff --git a/statistics/models.py b/statistics/models.py index c222edc..5e772c0 100644 --- a/statistics/models.py +++ b/statistics/models.py @@ -15,7 +15,7 @@ def get_dates(): class StatManager(models.Manager): - def chart(self, ip_addr, count_of_parts=12, want_date=date.today()): + def chart(self, username, count_of_parts=12, want_date=date.today()): def byte_to_mbit(x): return ((x/60)*8)/2**20 @@ -28,7 +28,7 @@ class StatManager(models.Manager): def avarage(elements): return sum(elements) / len(elements) - charts_data = self.filter(ip=ip_addr) + charts_data = self.filter(uname=username) charts_times = [cd.cur_time.timestamp()*1000 for cd in charts_data] charts_octets = [cd.octets for cd in charts_data] if len(charts_octets) > 0 and len(charts_octets) == len(charts_times): @@ -50,6 +50,7 @@ class StatManager(models.Manager): class StatElem(models.Model): cur_time = UnixDateTimeField(primary_key=True) + uname = models.CharField(max_length=127, blank=True, null=True, default=None) ip = MyGenericIPAddressField() octets = models.PositiveIntegerField(default=0) packets = models.PositiveIntegerField(default=0) @@ -64,6 +65,10 @@ class StatElem(models.Model): def delete(self, *args, **kwargs): pass + @property + def table_name(self): + return self._meta.db_table + def delete_month(self): cursor = connection.cursor() table_name = self._meta.db_table @@ -117,6 +122,5 @@ class StatCache(models.Model): def is_today(self): return date.today() == self.last_time.date() - class Meta: db_table = 'flowcache' diff --git a/statistics/urls.py b/statistics/urls.py index 7d2a74a..21eec76 100644 --- a/statistics/urls.py +++ b/statistics/urls.py @@ -3,6 +3,9 @@ from django.conf.urls import url from . import views +app_name = 'statistics' + + urlpatterns = [ url(r'^$', views.home, name='home'), ] diff --git a/tariff_app/urls.py b/tariff_app/urls.py index 48e93b9..5b25842 100644 --- a/tariff_app/urls.py +++ b/tariff_app/urls.py @@ -2,6 +2,7 @@ from django.conf.urls import url from . import views +app_name = 'tariff_app' urlpatterns = [ url(r'^$', views.tarifs, name='home'), diff --git a/taskapp/models.py b/taskapp/models.py index bf2bdbc..8c2a41e 100644 --- a/taskapp/models.py +++ b/taskapp/models.py @@ -39,7 +39,7 @@ TASK_TYPES = ( class ChangeLog(models.Model): - task = models.ForeignKey('Task') + task = models.ForeignKey('Task', models.CASCADE) ACT_CHOICES = ( ('e', _('Change task')), ('c', _('Create task')), @@ -49,7 +49,7 @@ class ChangeLog(models.Model): ) act_type = models.CharField(max_length=1, choices=ACT_CHOICES) when = models.DateTimeField(auto_now_add=True) - who = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='+') + who = models.ForeignKey(settings.AUTH_USER_MODEL, models.CASCADE, related_name='+') def __str__(self): return self.get_act_type_display() @@ -69,7 +69,7 @@ class Task(models.Model): state = models.CharField(_('Condition'), max_length=1, choices=TASK_STATES, default=TASK_STATES[0][0]) attachment = models.ImageField(_('Attached image'), upload_to='task_attachments/%Y.%m.%d', blank=True, null=True) mode = models.CharField(_('The nature of the damage'), max_length=2, choices=TASK_TYPES, default=TASK_TYPES[0][0]) - abon = models.ForeignKey(Abon, null=True, blank=True, verbose_name=_('Subscriber')) + abon = models.ForeignKey(Abon, models.CASCADE, null=True, blank=True, verbose_name=_('Subscriber')) class Meta: db_table = 'task' diff --git a/taskapp/urls.py b/taskapp/urls.py index d3fef6f..2e1c0fb 100644 --- a/taskapp/urls.py +++ b/taskapp/urls.py @@ -3,6 +3,9 @@ from django.conf.urls import url from . import views +app_name = 'taskapp' + + urlpatterns = [ url(r'^$', views.home, name='home'), url(r'^(?P\d+)$', views.view, name='view'),