From 5de617c27da01736e916ad8751337f1262afcd16 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Fri, 2 Dec 2016 12:28:52 +0000 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- taskapp/forms.py | 3 ++- taskapp/models.py | 32 +++++++++++++++++++++++++- templates/taskapp/add_edit_task.html | 8 +++++++ templates/taskapp/tasklist.html | 8 ++++--- templates/taskapp/tasklist_active.html | 8 ++++--- templates/taskapp/tasklist_finish.html | 8 ++++--- templates/taskapp/tasklist_own.html | 8 ++++--- 7 files changed, 61 insertions(+), 14 deletions(-) diff --git a/taskapp/forms.py b/taskapp/forms.py index 839d4e6..f718e1c 100644 --- a/taskapp/forms.py +++ b/taskapp/forms.py @@ -20,7 +20,8 @@ class TaskFrm(forms.ModelForm): 'priority': forms.Select(attrs={'class': 'form-control'}), 'state': forms.Select(attrs={'class': 'form-control'}), 'out_date': forms.DateInput(attrs={'class': 'form-control'}), - 'attachment': forms.FileInput(attrs={'class': 'form-control'}) + 'attachment': forms.FileInput(attrs={'class': 'form-control'}), + 'mode': forms.Select(attrs={'class': 'form-control'}) } initials = { 'out_date': datetime.now()+timedelta(days=7) diff --git a/taskapp/models.py b/taskapp/models.py index 15443d0..6f87169 100644 --- a/taskapp/models.py +++ b/taskapp/models.py @@ -2,11 +2,13 @@ from __future__ import unicode_literals from datetime import datetime, timedelta - +import os +from subprocess import call from django.db import models from django.conf import settings from devapp.models import Device +from djing.settings import BASE_DIR TASK_PRIORITIES = ( @@ -23,6 +25,18 @@ TASK_STATES = ( (b'F', u'Выполнена') ) +TASK_TYPES = ( + (b'na', u'не выбрано'), + (b'yt', u'жёлтый треугольник'), + (b'rc', u'красный крестик'), + (b'ls', u'слабая скорость'), + (b'cf', u'обрыв кабеля'), + (b'cn', u'подключение'), + (b'pf', u'переодическое пропадание'), + (b'cr', u'настройка роутера'), + (b'ot', u'другое') +) + class Task(models.Model): descr = models.CharField(max_length=128) @@ -34,6 +48,7 @@ class Task(models.Model): time_of_create = models.DateTimeField(auto_now_add=True) state = models.CharField(max_length=1, choices=TASK_STATES, default=TASK_STATES[0][0]) attachment = models.ImageField(upload_to='task_attachments/%Y.%m.%d', blank=True, null=True) + mode = models.CharField(max_length=2, choices=TASK_TYPES, default=TASK_TYPES[0][0]) def __unicode__(self): return self.descr @@ -48,3 +63,18 @@ class Task(models.Model): def begin(self, current_user): self.state = 'C' # Начата + + +def task_handler(sender, instance, **kwargs): + cur_dir = os.path.join(BASE_DIR, "taskapp") + if kwargs['created']: + call(['%s/handle.sh' % cur_dir, 'start', instance.mode, instance.device.ip_address, + instance.state, instance.descr]) + print 'Create task from', instance.author, ' to ', instance.recipient + else: + call(['%s/handle.sh' % cur_dir, 'change', instance.mode, instance.device.ip_address, + instance.state, instance.descr]) + print 'Change task' + + +models.signals.post_save.connect(task_handler, sender=Task) diff --git a/templates/taskapp/add_edit_task.html b/templates/taskapp/add_edit_task.html index e4d5f91..5bb0784 100644 --- a/templates/taskapp/add_edit_task.html +++ b/templates/taskapp/add_edit_task.html @@ -48,6 +48,14 @@ {{ form.device }}{{ form.device.errors }} +
+ + +
+ + {{ form.mode }}{{ form.mode.errors }} +
+
diff --git a/templates/taskapp/tasklist.html b/templates/taskapp/tasklist.html index e45efea..328899e 100644 --- a/templates/taskapp/tasklist.html +++ b/templates/taskapp/tasklist.html @@ -6,9 +6,10 @@ # - Пару слов.. + Пару слов.. Кому назначена Кто назначил + Характер поломки Состояние Приоритет Устройство @@ -37,6 +38,7 @@ {{ task.descr }} {{ task.recipient.username }} {{ task.author.username }} + {{ task.get_mode_display }} {{ task.get_state_display }} {{ task.get_priority_display }} {{ task.device.ip_address }} @@ -56,13 +58,13 @@ {% empty %} - Список пуст + Список пуст {% endfor %} - + diff --git a/templates/taskapp/tasklist_active.html b/templates/taskapp/tasklist_active.html index fa0240e..9af8eb0 100644 --- a/templates/taskapp/tasklist_active.html +++ b/templates/taskapp/tasklist_active.html @@ -6,9 +6,10 @@ # - Пару слов.. + Пару слов.. Кому назначена Кто назначил + Характер поломки Состояние Приоритет Устройство @@ -39,6 +40,7 @@ title="{{ task.recipient.get_full_name }}">{{ task.recipient.username }} {{ task.author.username }} + {{ task.get_mode_display }} {{ task.get_state_display }} {{ task.get_priority_display }} {{ task.device.ip_address }} @@ -58,13 +60,13 @@ {% empty %} - Список пуст + Список пуст {% endfor %} - + diff --git a/templates/taskapp/tasklist_finish.html b/templates/taskapp/tasklist_finish.html index 8ad2b7d..dc4126a 100644 --- a/templates/taskapp/tasklist_finish.html +++ b/templates/taskapp/tasklist_finish.html @@ -6,9 +6,10 @@ # - Пару слов.. + Пару слов.. Кому назначена Кто назначил + Характер поломки Состояние Приоритет Устройство @@ -39,6 +40,7 @@ title="{{ task.recipient.get_full_name }}">{{ task.recipient.username }} {{ task.author.username }} + {{ task.get_mode_display }} {{ task.get_state_display }} {{ task.get_priority_display }} {{ task.device.ip_address }} @@ -55,13 +57,13 @@ {% empty %} - Список пуст + Список пуст {% endfor %} - + diff --git a/templates/taskapp/tasklist_own.html b/templates/taskapp/tasklist_own.html index 3c93671..323b467 100644 --- a/templates/taskapp/tasklist_own.html +++ b/templates/taskapp/tasklist_own.html @@ -6,8 +6,9 @@ # - Пару слов.. + Пару слов.. Кому назначена + Характер поломки Состояние Приоритет Устройство @@ -36,6 +37,7 @@ {{ task.descr }} {{ task.recipient.username }} + {{ task.get_mode_display }} {{ task.get_state_display }} {{ task.get_priority_display }} {{ task.device.ip_address }} @@ -52,13 +54,13 @@ {% empty %} - Все ваши задачи выполнены + Все ваши задачи выполнены {% endfor %} - +