def send_sms_messages_bulk(msg_data, replace_names=False): from orders_manager.models import Client, SmsDeliveryMessage from orders_manager.sms_delivery_service import SmsDeliveryService from orders_manager.transliterate_service import (transliterate_message, need_transliteration) clients = Client.objects.filter( pk__in=[i.get('client_id') for i in msg_data]).all() messages = [] for client in clients: for item in msg_data: if item.get('client_id') == client.id: client_name = (transliterate_message(client.name) if need_transliteration() else client.name) msg = (item.get('message').format(client_name=client_name) if replace_names else item.get('message')) messages.append({'recipient': client.phone, 'message': msg}) sms_service = SmsDeliveryService() sms_service.send_messages(messages) sms_ids = [i.get('id') for i in msg_data if i.get('id')] if sms_ids: for sms_model in SmsDeliveryMessage.objects.filter(pk__in=sms_ids): sms_model.is_checked = True sms_model.is_sent = True sms_model.save() return sms_ids
def send_sms_messages_bulk(msg_data, replace_names=False): from orders_manager.models import Client, SmsDeliveryMessage from orders_manager.sms_delivery_service import SmsDeliveryService from orders_manager.transliterate_service import (transliterate_message, need_transliteration) clients = Client.objects.filter( pk__in=[i.get('client_id') for i in msg_data]).all() messages = [] for client in clients: for item in msg_data: if item.get('client_id') == client.id: client_name = (transliterate_message(client.name) if need_transliteration() else client.name) msg = (item.get('message').format(client_name=client_name) if replace_names else item.get('message')) messages.append({ 'recipient': client.phone, 'message': msg }) sms_service = SmsDeliveryService() sms_service.send_messages(messages) sms_ids = [i.get('id') for i in msg_data if i.get('id')] if sms_ids: for sms_model in SmsDeliveryMessage.objects.filter(pk__in=sms_ids): sms_model.is_checked = True sms_model.is_sent = True sms_model.save() return sms_ids