示例#1
0
 def get_auth_signup_qcontext(self):
     """ Shared helper returning the rendering context for signup and reset password.
         Check Condition If Email not Exists, then Signup with Mobile.
     """
     if request.params.items() and request.params['mobile']:
         try:
             carrier._is_mobile(
                 number_type(phonenumbers.parse(request.params['mobile'])))
         except NumberParseException:
             request.params['error'] = _("Please Enter Valid Mobile Number")
     if request.params.items() and request.params['login']:
         if not tools.single_email_re.match(request.params['login']):
             request.params['error'] = _("Please Enter Valid Email")
     if request.params.items(
     ) and request.params['mobile'] and request.params['login'] == '':
         request.params['login'] = request.params['mobile']
     qcontext = request.params.copy()
     qcontext.update(self.get_auth_signup_config())
     if qcontext.get('token'):
         try:
             # retrieve the user info (name, login or email) corresponding to a signup token
             token_infos = request.env['res.partner'].sudo(
             ).signup_retrieve_info(qcontext.get('token'))
             for k, v in token_infos.items():
                 qcontext.setdefault(k, v)
         except:
             qcontext['error'] = _("Invalid signup token")
             qcontext['invalid_token'] = True
     return qcontext
示例#2
0
 def action_check_valid_phone(self, country_id, mobile):
     return_item = {'error': '', 'valid': True}
     # check mobile
     if not mobile or mobile is None:
         return_item['valid'] = False
         return_item['error'] = _('It is necessary to define a mobile')
     # check_country_code
     if country_id.id == 0:
         return_item['valid'] = False
         return_item['error'] = _('The prefix is NOT defined')
     # check prefix in phone
     if mobile:
         if '+' in mobile:
             return_item['valid'] = False
             return_item['error'] = \
                 _('The prefix must NOT be defined in the mobile')
     # phonenumbers
     if return_item['valid']:
         number_to_check = '+' + str(country_id.phone_code) + str(mobile)
         number_to_check = '+%s%s' % (country_id.phone_code, mobile)
         try:
             return_is_mobile = carrier._is_mobile(
                 number_type(
                     phonenumbers.parse(number_to_check, country_id.code)))
             if not return_is_mobile:
                 return_item['valid'] = False
                 return_item['error'] = _('The mobile is not valid')
         except phonenumbers.NumberParseException:
             return_item['valid'] = False
             return_item['error'] = \
                 _('The phone is not valid (NumberParseException)')
     # return
     return return_item
示例#3
0
文件: bot.py 项目: zshanabek/shaqyru
def process_phone_step(message):
    try:
        chat_id = message.chat.id
        user = user_dict[chat_id]
        if message.contact:
            number = message.contact.phone_number
        else:
            number = message.text
            if not (carrier._is_mobile(number_type(parse(number)))):
                raise Exception
        if conn.exist_phone(user.phone_number):
            raise PhoneExists
        # Get last 10 characters
        user.phone_number = f'8{number[-10:]}'
        markup = types.ReplyKeyboardRemove(selective=False)
        msg = bot.send_message(chat_id,
                               config.l10n[user.language]['name'],
                               reply_markup=markup)
        bot.register_next_step_handler(msg, process_name_step)
    except PhoneExists:
        msg = bot.send_message(message.chat.id,
                               config.l10n[user.language]['number_exists'],
                               reply_markup=utils.gen_reply_markup([], 1,
                                                                   False,
                                                                   False))
        bot.register_next_step_handler(msg, process_phone_step)
    except Exception:
        buttons = (config.l10n[user.language]['send_contact'], )
        msg = bot.send_message(message.chat.id,
                               config.l10n[user.language]['number_invalid'],
                               reply_markup=utils.gen_reply_markup(
                                   buttons, 1, False, True))
        bot.register_next_step_handler(msg, process_phone_step)
def RegisterUser(Email,ISDCode,PhoneNo,FirstName,LastName):
    status=False
    msg=''
    Email = str(Email).lower()
    PhoneNo = ISDCode+PhoneNo
    if carrier._is_mobile(number_type(phonenumbers.parse("+"+PhoneNo))):
        try:
            user = User.objects.get(username=PhoneNo,)
            msg='Phone number already exits.'
        except User.DoesNotExist:
            try:
                password=User.objects.make_random_password(length=6)
                new_user = User.objects.create_user(PhoneNo, Email, password)
                new_user.first_name = FirstName
                new_user.last_name = LastName
                new_user.save()
                
                
                userProfile = UserProfile()
                userProfile.User=new_user
                userProfile.save()
                status=True
                
                msg='Sign Up Success. Please check your email for login credentials.'
            except Exception as e:
                print(e)
                msg='An error occured. Please try later.'
                
    else:
        msg='Please use a valid Phone number.'
    
    
    return {'isSuccess':status,'msg':msg}
示例#5
0
def validate_phone(value):
    try:
        number = phonenumbers.parse('+' + str(value), None)
        if not carrier._is_mobile(number_type(number)):
            raise ValidationError
    except:
        raise ValidationError('Incorrect phone number')
示例#6
0
    def validate_phonenumber(self, field):
        data = field.data
        print("DATA: ", data)
        if not data:
            # Don't validate if nothing was provided
            return field
        try:
            if not data.startswith('+'):
                # Maybe they forgot this?
                data = '+' + data
            parsed = phonenumbers.parse(data)
        except:
            flash(
                "Please ensure you prefix the phone number with your country code."
            )
            raise ValidationError("This is not a valid phone number")
        user = User.query.filter_by(phonenumber=data).first()
        if user and user.id != self.user.id:
            raise ValidationError("Phone number already on record.")
        if not phonenumbers.is_valid_number(parsed):
            flash(
                "Please ensure you prefix the phone number with your country code."
            )
            raise ValidationError("This is not a valid phone number")

        if not carrier._is_mobile(phonenumberutil.number_type(parsed)):
            raise ValidationError(
                "This phone number doesn't look like a mobile phone number")
        self.phonenumber_locale = phonenumbers.region_code_for_country_code(
            parsed.country_code)
示例#7
0
    def onchange_mobile(self, cr, uid, ids, mobile, context=None):
        value = {}
        warning = {}

        if mobile:
            id_number = phonenumbers.parse(mobile, "ID")
            if not carrier._is_mobile(number_type(id_number)):
                warning = {
                    'title': ('Perhatian !'),
                    'message':
                    (('Masukkan nomor handphone dengan benar, misal: 0817989800'
                      )),
                }
                value['mobile'] = ''
            else:
                formatted_mobile = phonenumbers.format_number(
                    id_number, phonenumbers.PhoneNumberFormat.E164)
                provider_mobile = eval(
                    repr(carrier.name_for_number(id_number, "en")))
                value['mobile'] = formatted_mobile
                value['mobile_provider'] = provider_mobile

        return {
            'warning': warning,
            'value': value,
        }
    def post(self):
        try:
            mobile_number = request.get_json().get('mobile_number', '')
            emulator_name = request.get_json().get('emulator_name', '')
            message_body = request.get_json().get('message_body', '')
            if mobile_number == '' or emulator_name == '' or message_body == '':
                return make_response(
                    jsonify({
                        "status": "0",
                        "message": "Insufficient Parameters"
                    }), 422)

            mobile_format_validation = carrier._is_mobile(
                number_type(phonenumbers.parse(mobile_number)))

            if not mobile_format_validation:
                return make_response(
                    jsonify({
                        "status":
                        "0",
                        "message":
                        "Mobile number not in International Indian Format. Ex: +91 XXXXX XXXXX"
                    }), 400)

            final_message = json.dumps({
                "mobile_number": mobile_number,
                "emulator_name": emulator_name,
                "message_body": message_body
            })

            single_message_queue_name = configp.get('queue_name',
                                                    'single_message')

            corr_id = Rabbit().msgproducer(single_message_queue_name,
                                           final_message, emulator_name,
                                           'send_only')

            if corr_id:
                return make_response(
                    jsonify({
                        "status": "1",
                        "message": "Singal received for sending message",
                        "corr_id": corr_id
                    }), 200)
            else:
                return make_response(
                    jsonify({
                        "status": "0",
                        "message": "Signal Failed",
                        "corr_id": 0
                    }), 400)

        except Exception as e:
            self.apilog.error("SGLog:" + str(e))
            return make_response(
                jsonify({
                    "status": "0",
                    "message": "Exception Occured. Check Logs"
                }), 500)
def check_no(number):
    value = False
    try:
        value = carrier._is_mobile(number_type(phonenumbers.parse(number)))
    except:
        value = False
    finally:
        return (value)
示例#10
0
def phone_detector(input_value):
    try:
        if carrier._is_mobile(number_type(
                phonenumbers.parse(input_value))) == True:
            return input_value
        else:
            return None
    except:
        return None
示例#11
0
 def _validate_type_phone_number(self, value):
     """Enables validation for `phone_number` schema attribute.
     :param field: field name.
     :param value: field value.
     """
     try:
         return carrier._is_mobile(number_type(phonenumbers.parse(value)))
     except:
         return False
示例#12
0
def validate_mobile(field, value, error):
    #pattern = re.compile("^\+[0-9]+$")
    #valid = bool(pattern.match(value))
    a_mobile = carrier._is_mobile(number_type(phonenumbers.parse(value)))
    if not a_mobile:
        error(
            field,
            "This field should contain an international mobile number, e.g. +457543788853"
        )
示例#13
0
def subscribe():
    """
    This is the function for handling subscription requests. It will error clearly if a new phone number wasn't passed
    in when the page was requested.
    :return: A tuple of an HTML page and an HTTP Status code.
    """
    logging.info('subscribe page started.')
    try:
        form_response = request.form
        subscriber_number = form_response['subscriber_number']
        if not subscriber_number:
            raise Exception('No subscriber number was passed in!')

        logging.info('subscribe page checking subscriber_number is valid.')
        # Checking if subscriber_number matches valid format: +18885554444
        carrier._is_mobile(number_type(phonenumbers.parse(subscriber_number)))

        logging.info(
            'subscribe page got valid subscriber_number of {}.'.format(
                subscriber_number))
        # Try to subscribe the number.
        topic_arn = 'arn:aws:sns:us-west-2:277012880214:BunAlert'
        snsclient = boto3.client('sns', region_name='us-west-2')

        logging.info('subscribe page made SNS client.')
        subscribe_response = snsclient.subscribe(
            TopicArn=topic_arn,
            Protocol='sms',
            Endpoint='{}'.format(subscriber_number))

        logging.info('subscribe page subscribed the new subscriber_number.')
        # If all's good, render the response page.
        template = Environment(
            loader=FileSystemLoader('html/')).get_template('subscribe.j2')
        page = template.render(subscriber_number=subscriber_number)
        logging.info('subscribe page returned.')
        return page, 200

    except Exception as e:
        logging.info('subscribe page errored.')
        page = 'Something went wrong! Exception: {}'.format(e)
        logging.error(page)
        return page, 400
示例#14
0
 def randomize(self):
     fake_number, fake_number_no_prefix = randomize_local(prefix=self.prefix, header=self.header)
     if 'False' in fake_number or 'False' in str(fake_number_no_prefix):
         return False
     counter = 0
     while not carrier._is_mobile(number_type(phonenumbers.parse(fake_number))) and counter < 5:
         fake_number, fake_number_no_prefix = randomize_local(prefix=self.prefix, header=self.header)
         counter += 1
         if counter == 5:
             return 0
     return fake_number, fake_number_no_prefix
示例#15
0
    def validate_phone(phone_number):
        """validate national phone number
        http://stackoverflow.com/questions/16135069/python-validation-mobile-number
        https://github.com/daviddrysdale/python-phonenumbers

        :param phone_number:
        """
        try:
            return carrier._is_mobile(
                number_type(phonenumbers.parse(phone_number)))
        except Exception:
            return False
示例#16
0
def phone_number_validator(num):
    # phone_regex = re.compile(r'^(?:\+?44)?[07]\d{9,13}$')

    # if check_blank_fields(num) == False:
    # if not re.match(num):
    # return False

    if carrier._is_mobile(number_type(phonenumbers.parse(num))):
        return True
    else:
        e = 4
        return messageBox.window(e)
    def validate_phone(phone_number):
        """validate national phone number
        http://stackoverflow.com/questions/16135069/python-validation-mobile-number
        https://github.com/daviddrysdale/python-phonenumbers

        :param phone_number:
        """
        try:
            return carrier._is_mobile(number_type(
                phonenumbers.parse(phone_number))
            )
        except Exception:
            return False
示例#18
0
 def FindPhoneNumber(self, metadata, Collector) -> None:
     """This function requires a metadata and collector for registering data"""
     for phone in re.finditer(self.pattern, str(self.sourcecode)):
         try:
             if carrier._is_mobile(
                     number_type(phonenumbers.parse(phone.group(), None))):
                 config.debug("Phone Number Found: {}".format(
                     phone.group()))
                 self.PhoneNumbers.append(phone.group())
                 metadata.Phones.append(phone.group())
         except phonenumbers.phonenumberutil.NumberParseException:
             pass
     set(self.PhoneNumbers)
     Collector.PhoneNumbers += len(self.PhoneNumbers)
示例#19
0
 def phone_number(self, phone):
     new_number = ""
     for i in range(phone.__len__()):
         if i == 0:
             pass
         else:
             new_number = new_number + phone[i]
     number = "+255" + new_number
     if not carrier._is_mobile(number_type(phonenumbers.parse(number))):
         toast("wrong number")
         te = self.root.ids.user_phone
         te.text = "start with 07 or 06"
         return False
     else:
         return True
示例#20
0
文件: main.py 项目: aqulline/Yummy
 def phone_number_check_admin(self, phone):
     new_number = ""
     if phone != "":
         for i in range(phone.__len__()):
             if i == 0:
                 pass
             else:
                 new_number = new_number + phone[i]
         number = "+255" + new_number
         if not carrier._is_mobile(number_type(phonenumbers.parse(number))):
             toast("Please check your phone number!", 1)
             return False
         else:
             return True
     else:
         toast("enter phone number!")
示例#21
0
文件: forms.py 项目: Waiyaki/maintraq
    def validate_phonenumber(self, field):
        data = field.data
        try:
            if not data.startswith("+"):
                # Maybe they forgot this?
                data = "+" + data
            parsed = phonenumbers.parse(data)
        except:
            flash("Please ensure you prefix the phone number with your country code.")
            raise ValidationError("This is not a valid phone number")

        if not phonenumbers.is_valid_number(parsed):
            flash("Please ensure you prefix the phone number with your country code.")
            raise ValidationError("This is not a valid phone number")

        if not carrier._is_mobile(phonenumberutil.number_type(parsed)):
            raise ValidationError("This phone number doesn't look like a mobile phone number")
        self.phonenumber_locale = phonenumbers.region_code_for_country_code(parsed.country_code)
示例#22
0
def select_sub_issue(id):
    subissues = SubIssue.query.filter_by(issue_id=id)
    form = SubIssueForm()
    form.subissue.query = subissues
    form.subissue.choices = [(subissue.id, subissue.name)
                             for subissue in subissues]
    if (form.subissue.data != "None"):
        subissue = request.form['subissue']
        subissue_id = form.subissue.data
        print(subissue_id, subissue)
        additional_info = form.additional_info.data
        send_url = 'http://freegeoip.net/json'
        r = requests.get(send_url)
        j = json.loads(r.text)
        lat = j['latitude']
        lon = j['longitude']
        location = str(lat) + "," + str(lon)
        phone = form.phone.data
        if (carrier._is_mobile(number_type(
                phonenumbers.parse(phone)))) and phone != '':
            query = Query(employee_id=current_user.id,
                          issue_id=id,
                          subissue_id=subissue_id,
                          additional_info=additional_info,
                          location=location,
                          phone=phone,
                          zip_code=j['zip_code'])
            try:
                db.session.add(query)
                db.session.commit()
                flash('You have successfully added a query')
            except:
                flash('Error: Query already exists.')
        else:
            flash('Please enter a valid contact number')
            return redirect(url_for('home.select_sub_issue', id=id))

        return redirect(url_for('home.list_user_issues'))

    return render_template('home/selectsubissue.html',
                           subissues=subissues,
                           form=form,
                           title="Select Sub Issue")
示例#23
0
文件: main.py 项目: aqulline/Yummy
 def phone_number_check(self, phone):
     new_number = ""
     if phone != "":
         for i in range(phone.__len__()):
             if i == 0:
                 pass
             else:
                 new_number = new_number + phone[i]
         number = "+255" + new_number
         if not carrier._is_mobile(number_type(phonenumbers.parse(number))):
             toast("Please check your phone number!", 1)
             return False
         else:
             self.phone_number = phone
             thread = threading.Thread(target=self.Business(self.product_name, self.quantity, self.phone_number))
             thread.start()
             self.kill_phone()
             return True
     else:
         toast("check your number")
示例#24
0
def settings_addPhone():
    if request.referrer is None:
        return redirect(url_for('user_settings.settings_auth'))

    form = UpdatePhoneForm()

    if form.validate_on_submit():
        number = form.country.data.split()[0] + str(form.phone.data)
        try:
            b = carrier._is_mobile(number_type(phonenumbers.parse(number)))
            if b:
                current_user.phone = number
                db.session.commit()
                return redirect(url_for('user_settings.settings_phone'))
            else:
                flash('Please enter a valid phone number.')
        except NumberParseException:
            flash('Please enter a valid phone number.')

    return render_template('settings_addPhone.html', form=form)
示例#25
0
def settings_addPhone(request):
    if request.META.get('HTTP_REFERER') is None:
        return redirect('settings_phone')

    form = UpdatePhoneForm(request.POST or None)
    if form.is_valid():
        number = form.cleaned_data.get('country_code').split()[0] + \
            str(form.cleaned_data.get('phone'))
        try:
            b = carrier._is_mobile(number_type(phonenumbers.parse(number)))
            if b:
                request.user.profile.country_code = form.cleaned_data.get(
                    'country_code')
                request.user.profile.phone = form.cleaned_data.get('phone')
                request.user.save()
                return redirect('settings_phone')
            else:
                form.add_error(None, 'Please enter a valid phone number.')
        except NumberParseException:
            form.add_error(None, 'Please enter a valid phone number.')

    context = {'form': form}
    return render(request, 'settings_addPhone.html', context)
示例#26
0
def host():
    if request.method == "POST":
        details = request.form
        #getting details from teh form
        Name = details['name']
        Email = details['email']
        Phone = details['phone']
        #checking for validity of email and phone of host
        number = "+91" + str(Phone)
        v = carrier._is_mobile(number_type(phonenumbers.parse(number)))
        is_valid = validate_email(Email, verify=True, check_mx=True)
        print(v)
        print(is_valid)
        if v == True and is_valid == True:
            try:
                #inserting the host data into database
                cur = mysql.connection.cursor()
                cur.execute(
                    "INSERT INTO Host(Name, Email, Phone) VALUES(%s, %s, %s)",
                    (Name, Email, Phone))
                mysql.connection.commit()
                cur.close()
            except Exception as e:
                datax = "You have already checked in or database server is down! Please try again"
                return render_template('log.html', datax=datax)
            return render_template('success.html',
                                   datax="Thanks for filling details")

        else:
            if v == False:
                datax = "You entered a wrong phone number! Please try again"
                return render_template('log.html', datax=datax)
            else:
                datax = "You entered a wrong email id! Please try again"
                return render_template('log.html', datax=datax)

    return render_template('host.html')
示例#27
0
    def validate_phonenumber(self, field):
        data = field.data
        try:
            if not data.startswith('+'):
                # Maybe they forgot this?
                data = '+' + data
            parsed = phonenumbers.parse(data)
        except:
            flash(
                "Please ensure you prefix the phone number with your country code."
            )
            raise ValidationError("This is not a valid phone number")

        if not phonenumbers.is_valid_number(parsed):
            flash(
                "Please ensure you prefix the phone number with your country code."
            )
            raise ValidationError("This is not a valid phone number")

        if not carrier._is_mobile(phonenumberutil.number_type(parsed)):
            raise ValidationError(
                "This phone number doesn't look like a mobile phone number")
        self.phonenumber_locale = phonenumbers.region_code_for_country_code(
            parsed.country_code)
示例#28
0
文件: forms.py 项目: Waiyaki/maintraq
    def validate_phonenumber(self, field):
        data = field.data
        print("DATA: ", data)
        if not data:
            # Don't validate if nothing was provided
            return field
        try:
            if not data.startswith('+'):
                # Maybe they forgot this?
                data = '+' + data
            parsed = phonenumbers.parse(data)
        except:
            flash("Please ensure you prefix the phone number with your country code.")
            raise ValidationError("This is not a valid phone number")
        user = User.query.filter_by(phonenumber=data).first()
        if user and user.id != self.user.id:
            raise ValidationError("Phone number already on record.")
        if not phonenumbers.is_valid_number(parsed):
            flash("Please ensure you prefix the phone number with your country code.")
            raise ValidationError("This is not a valid phone number")

        if not carrier._is_mobile(phonenumberutil.number_type(parsed)):
            raise ValidationError("This phone number doesn't look like a mobile phone number")
        self.phonenumber_locale = phonenumbers.region_code_for_country_code(parsed.country_code)
 def check_value(self, value):
     # NOTE: the phone number must be a valid international number
     return carrier._is_mobile(number_type(parse(value)))
def check_in_window(e1, e2, e3, e4, e5,
                    e6):  # This function start when check-in button is clicked
    if e1.get() and e2.get() and e3.get() and e4.get() and e5.get() and e6.get(
    ):  # If you forget to enter any one detail on home page it will display an error
        cursor1 = connection.cursor()
        s1 = e1.get()
        s2 = e2.get()
        formula = "select * from info where visitor_Email=%s"
        cursor1.execute(formula, (s2, ))
        fe = cursor1.fetchall()
        flag = 1
        #fe = cursor1.fetchall()
        for i in fe:
            nam = i[0]
            eml = i[1]
            if (s2 == eml):
                if not i[7]:
                    flag = 2
                    break
            nam1 = i[3]
            em11 = i[4]
            num1 = i[5]
            chkin = i[6]
        if flag == 2:
            messagebox.showerror("Error", " You have already been checked-In")
        else:
            if (
                    validate_email(s2, verify=True)
            ):  # This Function checks whether visitor email-id enter is correct or not
                s3 = e3.get()
                s3 = "+91" + s3  # Concate The number with +91
                try:
                    carrier._is_mobile(
                        number_type(phonenumbers.parse(s3))
                    )  # This Function checks whether the visitor Phone number enter is valid or not
                    s4 = e4.get()
                    s5 = e5.get()
                    if (
                            validate_email(s5, verify=True)
                    ):  # This Function checks whether host email-id enter is correct or not
                        s6 = e6.get()
                        s6 = "+91" + s6
                        try:
                            carrier._is_mobile(
                                number_type(phonenumbers.parse(s6))
                            )  # This Function checks whether the host Phone number enter is valid or not
                            hemail(s1, s5, s3)
                            sms(s1, s3, s6)
                            sql2 = "INSERT INTO info(visitor_Name,visitor_Email,visitor_Number,host_Name,host_Email,host_Number) VALUES(%s,%s,%s,%s,%s,%s)"
                            var = (s1, s2, s3, s4, s5, s6)
                            cursor1.execute(sql2, (var))
                            connection.commit()
                            popup1()
                        except:  # These errors are displayed when any details enter is wrong.
                            messagebox.showerror(
                                "Error", "Please enter correct Host Number!")
                    else:
                        messagebox.showerror(
                            "Error", "Please enter correct Host Email!")
                except:
                    messagebox.showerror(
                        "Error", "Please enter correct visitor Number!")
            else:
                messagebox.showerror("Error",
                                     "Please enter correct visitor email!")
    else:
        messagebox.showerror("Error", "Please fill the details")
示例#31
0
def validate_tell_region(data):
    number = data['phone']
    verify=carrier._is_mobile(number_type(phonenumbers.parse(number, "KE")))
    if False:
        return {'error': 'phone number must be a valid international number'}
    return None
示例#32
0
    def action_send_sms(self):
        '''
        This function opens a window to compose an sms, with the edi sale template message loaded by default
        '''
        self.ensure_one()
        #fix
        super(SaleOrder, self).action_generate_sale_order_link_tracker()

        allow_send = True

        if self.partner_id.id == 0:
            allow_send = False
            raise Warning("Es necesario definir un contacto")

        if allow_send == True and self.partner_id.mobile == False:
            allow_send = False
            raise Warning("Es necesario definir un movil")

        if allow_send == True and (
                self.partner_id.mobile_code == False
                or self.partner_id.mobile_code_res_country_id.id == 0):
            allow_send = False
            raise Warning("Es necesario prefijo de movil")

        if allow_send == True:
            if '+' in self.partner_id.mobile:
                allow_send = False
                raise Warning("El prefijo NO debe estar definido en el movil")

        if allow_send == True:
            number_to_check = '+' + str(self.partner_id.mobile_code) + str(
                self.partner_id.mobile)

            try:
                return_is_mobile = carrier._is_mobile(
                    number_type(
                        phonenumbers.parse(
                            number_to_check,
                            self.partner_id.mobile_code_res_country_id.code)))
                if return_is_mobile == False:
                    allow_send = False
                    raise Warning("El movil no es valido")
            except phonenumbers.NumberParseException:
                allow_send = False
                raise Warning("El movil no es valido")

        if allow_send == True and self.partner_id.opt_out == True:
            allow_send = False
            raise Warning("El cliente no acepta mensajes")

        if allow_send == True:
            ir_model_data = self.env['ir.model.data']

            try:
                sms_template_id = ir_model_data.get_object_reference(
                    'sms_arelux', 'sms_template_id_default_sale_order')[1]
            except ValueError:
                sms_template_id = False

            try:
                compose_form_id = ir_model_data.get_object_reference(
                    'mail', 'sms_compose_message_wizard_form')[1]
            except ValueError:
                compose_form_id = False

            #default_sender
            default_sender = 'Todocesped'
            if self.ar_qt_activity_type == 'arelux':
                default_sender = 'Arelux'
            elif self.ar_qt_activity_type == 'evert':
                default_sender = 'Evert'

            ctx = dict()
            ctx.update({
                'default_model':
                'sale.order',
                'default_res_id':
                self.ids[0],
                'default_use_template':
                True,
                'default_sms_template_id':
                sms_template_id,
                'default_country_id':
                self.partner_id.mobile_code_res_country_id.id,
                'default_mobile':
                self.partner_id.mobile,
                'default_sender':
                default_sender,
                'custom_layout':
                "sms_arelux.sms_template_data_notification_sms_sale_order"
            })
            return {
                'type': 'ir.actions.act_window',
                'view_type': 'form',
                'view_mode': 'form',
                'res_model': 'sms.compose.message',
                'views': [(compose_form_id, 'form')],
                'view_id': compose_form_id,
                'target': 'new',
                'context': ctx,
            }
def validate_phone(phone_number):
    try:
        return carrier._is_mobile(number_type(phonenumbers.parse(phone_number)))
    except Exception:
        return False
示例#34
0
def mobile_validation(number):
    try:
        return carrier._is_mobile(number_type(phonenumbers.parse(number)))
    except Exception:
        return False