diff --git a/appa/admin.py b/appa/admin.py index d82166e..9755239 100644 --- a/appa/admin.py +++ b/appa/admin.py @@ -1,6 +1,7 @@ from django import forms from django.contrib import admin +from django.db.models import Q from django.utils.safestring import mark_safe from ace_editor import AceJSONWidget from rangefilter.filters import DateRangeFilterBuilder @@ -96,7 +97,11 @@ class CallRequestAdmin(admin.ModelAdmin): @admin.action(description='Отправить выбранные записи на обзвон') def send_call_request(self, request, queryset): - ids = [item.id for item in queryset.filter(request_status=CallRequest.RequestStatus.NOT_SENT)] + items = queryset.filter( + Q(request_status=CallRequest.RequestStatus.NOT_SENT) | + Q(status=CallRequest.Status.WITHOUT_ANSWER) + ) + ids = list(set([item.id for item in items])) if len(ids) > 0: send_call_request_task.apply_async(args=(ids,)) diff --git a/appa/tasks.py b/appa/tasks.py index b079415..45cb70d 100644 --- a/appa/tasks.py +++ b/appa/tasks.py @@ -5,6 +5,7 @@ import datetime from django.contrib.sessions.models import Session from django.utils import timezone +from django.db.models import Q from appa.celery import app from appa.models import * from appa.call_api import api as call_api @@ -15,8 +16,10 @@ from appa.medicine_api import api as medicine_api def send_call_request_task(self, ids=None): call_requests = CallRequest.objects.filter( id__in=ids, - is_active=True, - request_status=CallRequest.RequestStatus.NOT_SENT + is_active=True + ).filter( + Q(request_status=CallRequest.RequestStatus.NOT_SENT) | + Q(status=CallRequest.Status.WITHOUT_ANSWER) ) for call_request in call_requests: