Exemple #1
0
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'
        }))
Exemple #2
0
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))