def send_batch_sms(request): batch_type = request.POST.get('BATCH_TYPE') message = request.POST.get('message') user_obj = request.user user = serializers.serialize('json', [ user_obj, ]) if batch_type == 'KEYED_NUMBERS' or batch_type == 'SELECT_SUBSCRIBERS': sms = SMS() recipient_arr = json.loads(request.POST.get('recipientsArr')) #sms.send_batch_sms_from_recipient_list(recipient_arr, message, request.user.id) task_send_batch_sms_from_recipient_list.delay(recipient_arr, message, user) elif batch_type == 'UPLOAD_LIST': file_name = request.session['RECIPIENT_FILE_URL'] sms = SMS() #sms.send_batch_sms_from_excel_upload(file_name, message, request.user.id) task_send_batch_sms_from_excel_upload.delay(file_name, message, user) elif batch_type == 'ALL_SUBSCRIBERS': sms = SMS() user_id = request.user.id subscriber_filter = json.loads(request.POST.get('subscriberFilter')) subscriber_filter['user'] = request.user subscribers = sms.filter_sms_recipients(subscriber_filter) phone_numbers = [subscriber.phone_number for subscriber in subscribers] phone_numbers = json.dumps(phone_numbers) #sms.send_batch_sms_to_all_subscribers(user_id, phone_numbers, message) task_send_batch_sms_to_all_subscribers.delay(user_id, phone_numbers, message) elif batch_type == 'VOLUNTEERS': sms = SMS() user_id = request.user.id volunteers = Volunteer.objects.filter(aspirant=Client.objects.get( user=request.user)) phone_numbers = [volunteer.phone_number for volunteer in volunteers] phone_numbers = json.dumps(phone_numbers) #sms.send_batch_sms_to_all_subscribers(user_id, phone_numbers, message) task_send_batch_sms_to_all_subscribers.delay(user_id, phone_numbers, message) else: pass return HttpResponse( json.dumps({ 'MESSAGE': 'Message sent successfully', 'STATUS': '1' }))
def publish_new_survey(request): password = request.POST.get('password') return_data = {} if not request.user.check_password(password): return_data['STATUS'] = '0' return_data['MESSAGE'] = 'Wrong password' else: survey_title = request.POST.get('surveyTitle') survey_description = request.POST.get('surveyDescription') survey_content = json.loads(request.POST.get('surveyContent')) survey = Survey() survey.survey_title = survey_title survey.survey_desc = survey_description survey.aspirant = Client.objects.get(user=request.user) return_data['MESSAGE'] = [] try: survey.save() return_data['MESSAGE'].append({ 'STATUS': '1', 'MESSAGE': 'Survey has been created.' }) for content in survey_content: survey_question = SurveyQuestion() survey_question.survey = survey survey_question.question_number = content['question_number'] survey_question.question = content['question'] try: survey_question.save() return_data['MESSAGE'].append({ 'STATUS': '1', 'MESSAGE': "'{}' survey question has been added.".format(content['question']) }) options_list = content['option'].split('#') for option in options_list: try: survey_options = SurveyOptions() survey_options.option = option survey_options.survey_question = survey_question survey_options.save() return_data['MESSAGE'].append({ 'STATUS': '1', 'MESSAGE': "'{}' survey option has been added.".format(option) }) except Exception as ex: return_data['MESSAGE'].append({ 'STATUS': '0', 'MESSAGE': "'{}' survey option failed to be added. Error: {}".format(option, str(ex)) }) except Exception as ex: return_data['MESSAGE'].append({ 'STATUS': '0', 'MESSAGE': "'{}' survey question failed to be added. Error: ".format(content['question'], str(ex)) }) subscriber_filter = json.loads(request.POST.get('subscriber_filter')) subscriber_filter['user'] = request.user try: sms_utils = SmsUtil() subscribers = sms_utils.filter_sms_recipients(subscriber_filter) for subscriber in subscribers: survey_recipient = SurveyRecipient( survey=survey, subscriber=subscriber) survey_recipient.save() except Exception as exe: print(str(exe)) pass except Exception as ex: return_data['MESSAGE'].append({ 'STATUS': '0', 'MESSAGE': 'Survey failed to be created. Error: '.format(str(ex)) }) return HttpResponse(json.dumps(return_data))