From 4f76b58fc4d6051e8cd6aef64fed294056d8de45 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Sun, 15 Jan 2017 23:31:26 +0000 Subject: [PATCH] =?UTF-8?q?=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8=20=D1=82=D0=B5?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D1=8C=20=D0=BD=D0=B5=20=D0=BE=D0=B1=D1=8F?= =?UTF-8?q?=D0=B7=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- taskapp/views.py | 53 +++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/taskapp/views.py b/taskapp/views.py index 6921351..45da024 100644 --- a/taskapp/views.py +++ b/taskapp/views.py @@ -5,6 +5,7 @@ from django.shortcuts import render, redirect, get_object_or_404 from django.contrib import messages from abonapp.models import Abon from datetime import date +from chatbot.models import TelegramBot from models import Task from mydefs import pag_mn, only_admins, safe_int from forms import TaskFrm @@ -125,33 +126,35 @@ def task_add_edit(request, task_id=0): selected_abon = get_object_or_404(Abon, username=str(uid)) if request.method == 'POST': - - tsk.author = request.user - frm = TaskFrm(request.POST, request.FILES, instance=tsk) - - if frm.is_valid(): - task_instance = frm.save() - # получим абонента, выбранного в форме - selected_abon = task_instance.abon - if selected_abon: - # получаем аккаунты назначенные на группу выбранного абонента - profiles = selected_abon.group.profiles.filter(is_active=True).filter(is_admin=True) - - # если нашли кого-нибудь - if profiles.count() > 0: - # выбираем их id в базе - profile_ids = [prof.id for prof in profiles] - # добавляем найденных работников в задачу - task_instance.recipients.add(*profile_ids) - # окончательно сохраняемся - task_instance.save() - return redirect('taskapp:home') + try: + tsk.author = request.user + frm = TaskFrm(request.POST, request.FILES, instance=tsk) + + if frm.is_valid(): + task_instance = frm.save() + # получим абонента, выбранного в форме + selected_abon = task_instance.abon + if selected_abon: + # получаем аккаунты назначенные на группу выбранного абонента + profiles = selected_abon.group.profiles.filter(is_active=True).filter(is_admin=True) + + # если нашли кого-нибудь + if profiles.count() > 0: + # выбираем их id в базе + profile_ids = [prof.id for prof in profiles] + # добавляем найденных работников в задачу + task_instance.recipients.add(*profile_ids) + # окончательно сохраняемся + task_instance.save() + return redirect('taskapp:home') + else: + messages.error(request, u'Нет ответственных за группу, в которой находится выбранный абонент') else: - messages.error(request, u'Нет ответственных за группу, в которой находится выбранный абонент') + messages.error(request, u'Нужно выбрать абонента') else: - messages.error(request, u'Нужно выбрать абонента') - else: - messages.error(request, u'Ошибка в полях формы в задаче') + messages.error(request, u'Ошибка в полях формы в задаче') + except TelegramBot.DoesNotExist: + messages.error(request, u'Исполнитель ещё не подписался на оповещения') return render(request, 'taskapp/add_edit_task.html', { 'form': frm,