diff --git a/README.md b/README.md
index c2894f1..277f581 100644
--- a/README.md
+++ b/README.md
@@ -8,3 +8,13 @@
Привязывать на карте к точкам топологии устройства
Есть привязка монтажника к группам абонентов
Есть менеджер задач на абонентов. Это оператор может выбрать абонента и описать проблему. Система отправит оповещение через telegram ответственному за групу указанного абонента монтажнику с текстом проблемы, адресом и телефоном абонента.
+
+## Установка(не завершил описание):
+На ArchLinux нужые пакеты я устанавливаю так:
+```
+# pacman -Sy mariadb-clients python3 python-pip nginx uwsgi
+```
+Дальше ставим всё для python через pip:
+```
+# pip install git+https://github.com/nerosketch/djing.git
+```
diff --git a/abonapp/templates/abonapp/buy_tariff.html b/abonapp/templates/abonapp/buy_tariff.html
index 430c3da..8e84d97 100644
--- a/abonapp/templates/abonapp/buy_tariff.html
+++ b/abonapp/templates/abonapp/buy_tariff.html
@@ -28,7 +28,7 @@
@@ -44,4 +44,4 @@
-{% endblock %}
\ No newline at end of file
+{% endblock %}
diff --git a/abonapp/views.py b/abonapp/views.py
index 1573f7d..69c3dcf 100644
--- a/abonapp/views.py
+++ b/abonapp/views.py
@@ -309,27 +309,30 @@ def opt82(request, gid, uid):
try:
abon = models.Abon.objects.get(pk=uid)
if request.method == 'POST':
- if abon.opt82 is None:
+ try:
+ opt82_instance = models.Opt82.objects.get(
+ mac=request.POST.get('mac'),
+ port=request.POST.get('port')
+ )
+ except models.Opt82.DoesNotExist:
frm = forms.Opt82Form(request.POST)
- else:
- frm = forms.Opt82Form(request.POST, instance=abon.opt82)
- if frm.is_valid():
- abon.opt82 = frm.save()
- abon.save(update_fields=['opt82'])
- else:
- messages.error(request, _('fix form errors'))
+ if frm.is_valid():
+ opt82_instance = frm.save()
+ else:
+ messages.error(request, _('fix form errors'))
+ return redirect('abonapp:abon_home', gid=gid, uid=uid)
+
+ abon.opt82 = opt82_instance
else:
act = request.GET.get('act')
if act is not None and act == 'release':
if abon.opt82 is not None:
abon.opt82.delete()
abon.opt82 = None
- abon.save(update_fields=['opt82'])
+ abon.save(update_fields=['opt82'])
except models.Abon.DoesNotExist:
messages.error(request, _('User does not exist'))
- except models.Opt82.DoesNotExist:
- messages.error(request, _(''))
return redirect('abonapp:abon_home', gid=gid, uid=uid)
diff --git a/taskapp/migrations/0013_auto_20170413_1944.py b/taskapp/migrations/0013_auto_20170413_1944.py
new file mode 100644
index 0000000..6feeb90
--- /dev/null
+++ b/taskapp/migrations/0013_auto_20170413_1944.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9 on 2017-04-13 16:44
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('taskapp', '0012_auto_20170407_0124'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='task',
+ name='attachment',
+ field=models.ImageField(blank=True, null=True, upload_to='task_attachments/%Y.%m.%d'),
+ ),
+ ]
diff --git a/taskapp/models.py b/taskapp/models.py
index e738742..649ad70 100644
--- a/taskapp/models.py
+++ b/taskapp/models.py
@@ -67,7 +67,7 @@ class Task(models.Model):
out_date = models.DateField(null=True, blank=True, default=_delta_add_days)
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='media/task_attachments/%Y.%m.%d', blank=True, null=True)
+ 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])
abon = models.ForeignKey(Abon, on_delete=models.SET_NULL, null=True, blank=True, related_name='+')