예제 #1
0
class OtkSmsForm(HealthcareBaseForm):
    """
    A form to specify patient phone number for receiving one time key (otk) by SMS
    """

    error_messages = {
        "phone_number2": _("Phone numbers must match"),
    }

    phone_number = PhoneNumberField(
        label=_("Enter patient’s mobile phone number"), max_length=100)
    phone_number2 = PhoneNumberField(label=_("Enter the number again"),
                                     max_length=100)

    def clean(self):
        super().clean()
        if ("phone_number" in self.cleaned_data
                and self.cleaned_data["phone_number"] !=
                self.cleaned_data["phone_number2"]):
            raise ValidationError(
                {"phone_number2": [self.error_messages["phone_number2"]]})
        return self.cleaned_data

    @inject
    def send_sms(
        self,
        language,
        otk,
        notify_service: NotifyService = Provide[Container.notify_service],
    ):
        notify_service.send_sms(
            phone_number=str(self.cleaned_data.get("phone_number")),
            template_id=settings.OTK_SMS_TEMPLATE_ID.get(language or "en"),
            details={"code": otk["code"]},
        )
예제 #2
0
class UserForm(forms.Form):
    name = forms.CharField(max_length=64)
    email = forms.EmailField(max_length=64)
    phone = PhoneNumberField(required=False)
    mobile = PhoneNumberField(required=False)

    status = forms.ChoiceField(choices=STATUS_CHOICES)
예제 #3
0
class HealthcarePhoneEditForm(HealthcareBaseEditForm):
    title = _("Change your mobile phone number")
    phone_number = PhoneNumberField(
        label=_("Mobile phone number"),
        help_text=
        _("You must enter a new security code each time you log in. We’ll text the code to your mobile phone number."
          ),
    )
    phone_number.error_messages["required"] = validation_messages[
        "phone_number"]["required"]

    phone_number2 = PhoneNumberField(
        label=_("Confirm your mobile phone number"),
        help_text=_("Enter the same mobile number as above."),
    )
    phone_number2.error_messages["required"] = validation_messages[
        "phone_number2"]["required"]

    error_messages = {
        "phone_number_mismatch": _("You entered 2 different phone numbers."),
    }

    class Meta:
        model = HealthcareUser
        fields = ("phone_number", )

    def clean_phone_number(self):
        phone_number = self.cleaned_data.get("phone_number")
        phone_number2 = self.data.get("phone_number2")
        if phone_number and phone_number2 and phone_number != phone_number2:
            raise ValidationError(
                self.error_messages.get("phone_number_mismatch"),
                code="phone_number_mismatch",
            )
        return phone_number
예제 #4
0
class BoomForm(forms.Form):
    error_css_class = 'error'
    required_css_class = 'required'
    source_num = PhoneNumberField()
    target_num = PhoneNumberField()
    time_scheduled = forms.DateTimeField(
        input_formats=['%Y-%m-%d %H:%M'],
        widget=DateTimePicker(
            options={
                "format": "YYYY-MM-DD HH:mm",
                "sideBySide": True,
                "minDate": "moment",
                # 5 minute increments
                "stepping": 5
            }))
    # TODO (rebecca): Add back in for TZ
    # timezone = TimeZoneFormField()
    time_scheduled_utc = forms.DateTimeField(
        input_formats=['%Y-%m-%dT%H:%M:%S.%fZ'], widget=forms.HiddenInput())

    def __init__(self, *args, **kwargs):
        super(BoomForm, self).__init__(*args, **kwargs)
        self.fields['source_num'].label = "Your number"
        self.fields['source_num'].widget.attrs[
            'placeholder'] = "e.g. +15555555555"
        self.fields['target_num'].label = "Sen. Harris (SF Office)"
        # TODO (rebecca): Remove below to allow editing once out of user research
        self.fields['target_num'].widget.attrs['readonly'] = "readonly"
        self.fields['time_scheduled'].label = "Call Time (PT)"
예제 #5
0
class EditPhoneNumbers(forms.Form):
    primary_phone = PhoneNumberField(label='Primary Phone', required=True)
    secondary_phone = PhoneNumberField(label='Secondary Phone', required=False)

    def save(self, employee):
        employee.primary_phone = self.cleaned_data['primary_phone']
        employee.secondary_phone = self.cleaned_data['secondary_phone']

        employee.save()
예제 #6
0
class CompanyForm(forms.ModelForm):

    phone = PhoneNumberField(required=True,
                             initial='+971',
                             help_text='+971 XXX XXXXXXX')

    tel = PhoneNumberField(required=True,
                           initial='+971',
                           help_text='+971 04-XXXXXXX')

    class Meta:
        model = Company
        fields = '__all__'
예제 #7
0
class adminform2(forms.ModelForm):
    Adminstrative_name=forms.CharField(widget=forms.TextInput(attrs={'class':'form-control','placeholder':'Adminstrative_Name'}),required=True,max_length=200)
    DateOfEstablish=forms.CharField(max_length=100)
    Adress=forms.CharField(widget=forms.TextInput(attrs={'class':'form-control','placeholder':'principal_name'}),required=True,max_length=100) 
    City=forms.CharField(widget=forms.TextInput(attrs={'class':'form-control','placeholder':'lastname'}),required=True,max_length=100)
    Country=CountryField()
    Principal_Phone_No=PhoneNumberField()
    Contact_no=PhoneNumberField()
    Adminstrative_type=forms.CharField(max_length=100)

    class Meta():
        model=Profile
        fields=['Adminstrative_name','DateOfEstablish','Adress','City','Country','Principal_Phone_No','Contact_no','Adminstrative_type']
예제 #8
0
class RegistrationForm(forms.Form):
    team_name = forms.CharField(
        label='Team Name',
        max_length=255,
        required=True,
        widget=forms.TextInput(
            attrs={'class': 'form-control form-control-sm mb-2 text-dark'}))
    player_one_name = forms.CharField(
        label='Player 1 Name',
        max_length=255,
        required=True,
        widget=forms.TextInput(
            attrs={'class': 'form-control form-control-sm mb-2 text-dark'}))
    player_one_email = forms.EmailField(
        label='Player 1 Email',
        max_length=255,
        required=True,
        widget=forms.EmailInput(
            attrs={'class': 'form-control form-control-sm mb-2 text-dark'}))
    player_one_contact = PhoneNumberField(widget=forms.TextInput(
        attrs={'class': 'form-control form-control-sm mb-2 text-dark'}),
                                          label="Player 1 Contact",
                                          required=True)
    player_one_hall = forms.CharField(
        label='Player 1 Hall Number',
        required=True,
        widget=forms.Select(
            choices=HALL_CHOICES,
            attrs={'class': 'form-control form-control-sm mb-2 text-dark'}))
    player_two_name = forms.CharField(
        label='Player 2 Name',
        max_length=255,
        required=True,
        widget=forms.TextInput(
            attrs={'class': 'form-control form-control-sm mb-2 text-dark'}))
    player_two_email = forms.EmailField(
        label='Player 2 Email',
        max_length=255,
        required=True,
        widget=forms.EmailInput(
            attrs={'class': 'form-control form-control-sm mb-2 text-dark'}))
    player_two_contact = PhoneNumberField(widget=forms.TextInput(
        attrs={'class': 'form-control form-control-sm mb-2 text-dark'}),
                                          label="Player 2 Contact",
                                          required=True)
    player_two_hall = forms.CharField(
        label='Player 2 Hall Number',
        required=True,
        widget=forms.Select(
            choices=HALL_CHOICES,
            attrs={'class': 'form-control form-control-sm mb-2 text-dark'}))
예제 #9
0
class FormProfileHostUpdate(forms.ModelForm):
    phone = PhoneNumberField(
        widget=forms.TextInput(attrs={'placeholder': 'Phone'}),
        label="Phone number",
        required=False)

    class Meta:
        model = ProfileHost
        fields = [
            'photo', 'name', 'type', 'phone', 'description', 'address',
            'geolocation'
        ]
        labels = {
            'photo': "Profile picture",
            'name': "Organization Name",
            'type': "Organization Type",
        }
        widgets = {
            "address":
            GoogleMapsAddressWidget,
            "geolocation":
            forms.Textarea(attrs={
                'placeholder': 'To be filled automatically.',
            }),
            'description':
            forms.Textarea(
                attrs={'placeholder': 'Tell us more about your organization.'})
        }
예제 #10
0
class GuestForm(CheckoutFormMixin, CleanEmailMixin, forms.ModelForm):
    email = forms.EmailField(label=_('Email address'))
    phone_number = PhoneNumberField(label=_('Phone number'))

    class Meta:
        model = get_user_model()
        fields = ['email']

    def __init__(self, *args, **kwargs):
        super(GuestForm, self).__init__(*args, **kwargs)
        self.customer = Customer.objects.get_from_request(self.request)
        self.instance = self.customer.user
        self.fields['email'].initial = self.instance.email
        self.fields['phone_number'].initial = self.customer.phone_number
        self.fields['phone_number'].required = PHONE_NUMBER_REQUIRED

    def save(self, commit=True):
        self.customer.recognize_as_guest()
        self.instance.is_active = GUEST_IS_ACTIVE_USER
        if self.instance.is_active:
            password = get_user_model().objects.make_random_password(length=30)
            self.instance.set_password(password)
        self.customer.phone_number = self.cleaned_data.get('phone_number', '')
        self.customer.save()
        return super(GuestForm, self).save(commit)
예제 #11
0
class TalkProposalForm(forms.Form):
    location = forms.CharField(widget=forms.Textarea(
        attrs={
            'rows': 4,
            'class': 'form-control',
            'placeholder': 'Your location'
        }))
    name = forms.CharField(
        label="Your name",
        required=True,
        widget=forms.TextInput(attrs={
            'class': 'form-control text-center',
            'placeholder': 'Your Name'
        }))
    email = forms.EmailField(
        label="Email",
        required=True,
        widget=forms.EmailInput(attrs={
            'class': 'form-control text-center',
            'placeholder': 'Email Address'
        }))
    phone = PhoneNumberField(
        label="Phone Number",
        required=False,
        widget=forms.TextInput(attrs={
            'class': 'form-control text-center',
            'placeholder': 'Phone Number'
        }))
예제 #12
0
class RegistrationForm(UserCreationForm):
    email = forms.EmailField(max_length=254, help_text='Required. Add a valid email address.')
    phone_number = PhoneNumberField(region='IN', help_text='Required. Add a valid phone number')

    class Meta:
        model = Account
        fields = ('email', 'username','phone_number' ,'password1', 'password2', )
예제 #13
0
class SignUpForm(UserCreationForm):
    username = forms.CharField(widget=forms.TextInput(
        attrs={'class': 'form-control'}))
    email = forms.EmailField(widget=forms.EmailInput(
        attrs={'class': 'form-control'}))
    password1 = forms.CharField(
        label='Password',
        widget=forms.PasswordInput(attrs={'class': 'form-control'}))
    password2 = forms.CharField(
        label='Confirm password',
        widget=forms.PasswordInput(attrs={'class': 'form-control'}))
    phone_day = PhoneNumberField(
        widget=forms.TextInput(attrs={
            'placeholder': 'ie: +14030001234',
        }),
        label="Phone number",
        required=False,
    )

    class Meta:
        model = User
        fields = (
            'username',
            'email',
            'phone_day',
            'password1',
            'password2',
        )
예제 #14
0
파일: forms.py 프로젝트: hamzaumar8/sandvet
class CustomSignupForm(SignupForm):

    fullname = forms.CharField(
        min_length=7,
        widget=forms.TextInput(attrs={
            'placeholder': 'Full Name',
            'required': True,
        }),
    )

    phone_number = PhoneNumberField(
        required=True,
        label='Phone Number',
        widget=forms.TextInput(attrs={
            'placeholder': '+233557866983',
            'required': True
        }),
    )

    def save(self, request):
        user = super(CustomSignupForm, self).save(request)
        cleaned_data = super(CustomSignupForm, self).clean()
        fullname = cleaned_data["fullname"]
        if ' ' in fullname:
            user.first_name = fullname.split(' ')[0]
            user.last_name = fullname.split(' ')[1]
        else:
            user.first_fullname = fullname

        user_profile = user.profile
        user_profile.phone_number = cleaned_data['phone_number']
        user.save()
        user_profile.save()
        return user
예제 #15
0
class WorkerForm(forms.ModelForm):
    slack_username = forms.CharField()
    phone = PhoneNumberField(widget=PhoneNumberPrefixWidget(initial='US'))

    class Meta:
        model = Worker
        fields = ('slack_username', 'phone')
        exclude = ('user', 'start_datetime', 'slack_user_id')

    def clean_slack_username(self):
        slack_username = self.cleaned_data.get('slack_username')
        if slack_username:
            slack_user_id = get_slack_user_id(slack_username)
            if slack_user_id is None:
                raise forms.ValidationError(
                    'Incorrect slack username provided')
            self.cleaned_data['slack_user_id'] = slack_user_id
        return self.cleaned_data['slack_username']

    def save(self, commit=True):
        instance = super().save(commit=False)
        instance.slack_user_id = self.cleaned_data.get('slack_user_id')
        if commit:
            instance.save()
        return instance
예제 #16
0
class UserRegisterForm(UserCreationForm):
    email = forms.EmailField()
    name = forms.CharField()
    dateOfBirth = forms.DateField(
        label='Your date of birth',
        widget=forms.DateInput(attrs={'type': 'date'}))
    phone = PhoneNumberField()
    nationalId = forms.IntegerField(label='Your ID number')

    class Meta:
        model = User
        fields = [
            'name', 'nationalId', 'email', 'phone', 'dateOfBirth', 'password1',
            'password2'
        ]

    def clean_nationalId(self):
        nationalId_passed = self.cleaned_data.get("nationalId")
        is_valid = validate(nationalId_passed)  # could also be an integer
        if is_valid == False:
            raise forms.ValidationError("Not valid ID number")
        return nationalId_passed

    def save(self, commit=True):
        user = super(UserRegisterForm, self).save(commit=False)
        user.name = self.cleaned_data["name"]
        user.phone = self.cleaned_data["phone"]
        user.dateOfBirth = self.cleaned_data["dateOfBirth"]
        user.nationalId = self.cleaned_data["nationalId"]

        if commit:
            user.save()
        return user
예제 #17
0
class RegisterForm(Form):
    username = CharField(
        max_length=150,
        min_length=4,
        validators=[
            RegexValidator(
                r'^[\w]+$',
                message="Username can contain only letters and digits")
        ])
    password = CharField(max_length=128, min_length=4)
    confirm_password = CharField(max_length=128,
                                 min_length=4,
                                 label="Confirm Password")
    email = EmailField(max_length=254, label="Email Address")
    phone = PhoneNumberField(max_length=128, widget=PhoneNumberPrefixWidget)
    address = CharField(max_length=100, required=False)

    def clean(self):
        cleaned_data = super().clean()
        password = self.cleaned_data.get('password')
        confirm_password = self.cleaned_data.get('confirm_password')
        if password is None or confirm_password is None:
            return cleaned_data
        if password != confirm_password:
            self.add_error("confirm_password", "Passwords are not the same")
        return cleaned_data
예제 #18
0
class UserCreationForm(UserFormMixin, BaseUserCreationForm):
    phone_number = PhoneNumberField(widget=forms.TextInput(), required=False)

    class Meta(BaseUserCreationForm.Meta):
        fields = ['username', 'email', 'password1', 'password2']
        personal_fields = ['first_name', 'last_name', 'phone_number', 'birth_date']
        fieldsets = (
            (None, {'classes': ('wide',), 'fields': fields}),
            ('Personal Info', {'classes': ('wide',), 'fields': personal_fields}),
            (
                'Permissions',
                {'classes': ('wide',), 'fields': ['is_active', 'is_staff', 'groups']},
            ),
        )
        fieldsets_superuser = (
            (None, {'classes': ('wide',), 'fields': fields}),
            ('Personal Info', {'classes': ('wide',), 'fields': personal_fields}),
            (
                'Permissions',
                {
                    'classes': ('wide',),
                    'fields': ['is_active', 'is_staff', 'is_superuser', 'groups'],
                },
            ),
        )

    class Media:
        js = ('admin/js/jquery.init.js', 'openwisp-users/js/addform.js')
예제 #19
0
class SellSignForm(UserCreationForm):
    username = forms.CharField(widget=forms.TextInput(
        attrs={'class': 'form-control'}))
    first_name = forms.CharField(widget=forms.TextInput(
        attrs={'class': 'form-control'}))
    # last_name = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
    pno = PhoneNumberField(widget=forms.NumberInput(
        attrs={'class': 'form-control'}))
    email = forms.EmailField(widget=forms.EmailInput(
        attrs={'class': 'form-control'}))
    location = forms.CharField(widget=forms.TextInput(
        attrs={'class': 'form-control'}))
    password1 = forms.CharField(widget=forms.PasswordInput(
        attrs={'class': 'form-control'}))
    password2 = forms.CharField(widget=forms.PasswordInput(
        attrs={'class': 'form-control'}))
    role = forms.CharField(widget=forms.HiddenInput(attrs={
        'class': 'form-control',
        'value': 'user',
    }))

    class Meta:
        model = User
        fields = ('username', 'first_name', 'pno', 'email', 'location',
                  'password1', 'password2')
예제 #20
0
class TeacherRegistrationForm(forms.ModelForm):
    class Meta:
        model = Teacher
        fields = [
            'name',
            'department',
            'phone',
        ]

    name = forms.CharField(widget=forms.TextInput(
        attrs={
            'placeholder': 'Name',
            'class': 'border p-3 w-100 my-2'
        }))
    email = forms.EmailField(widget=forms.EmailInput(
        attrs={
            'placeholder': 'Email',
            'class': 'border p-3 w-100 my-2'
        }))
    password = forms.CharField(widget=forms.PasswordInput(
        attrs={
            'placeholder': 'Password',
            'class': 'border p-3 w-100 my-2'
        }))
    phone = PhoneNumberField(
        region='IN',
        max_length=13,
        widget=forms.TextInput(attrs={
            'placeholder': 'Phone',
            'class': 'border p-3 w-100 my-2'
        }))
예제 #21
0
class DuskenUserForm(forms.ModelForm):
    first_name = fields.CharField(label=_('First name'))
    last_name = fields.CharField(label=_('Last name'))
    email = fields.EmailField(
        label=_('Email'),
        widget=forms.EmailInput(attrs={'placeholder': _('Email')}))
    phone_number = PhoneNumberField(label=_('Phone number'))
    password = fields.CharField(label=_('Password'),
                                widget=forms.PasswordInput())
    captcha = ReCaptchaField(label='')

    def clean_email(self):
        email = self.cleaned_data['email']
        if email_exists(email):
            raise ValidationError(_('Email already in use'))
        return email

    def clean_phone_number(self):
        phone_number = self.cleaned_data['phone_number']
        if phone_number_exist(phone_number):
            raise ValidationError(_('Phone number already in use'))
        return phone_number

    def clean_password(self):
        password = self.cleaned_data['password']
        validate_password(password)
        return password

    class Meta:
        model = DuskenUser
        fields = [
            'first_name', 'last_name', 'email', 'phone_number', 'password'
        ]
예제 #22
0
class loginform(UserCreationForm):
    Email = forms.EmailField()
    Phone = PhoneNumberField()
    class Meta:

        model = User
        fields = ['username', 'Email', 'Phone', 'password1', 'password2']
예제 #23
0
class DuskenUserActivateForm(DuskenUserForm):
    phone_number = PhoneNumberField(label=_('Phone number'), disabled=True)
    # Code is the first 8 letters of a transaction ID associated with the phone number
    code = forms.CharField(widget=forms.HiddenInput())

    def clean(self):
        # The view actually validates this before rendering, but why not do it again
        phone_number = self.cleaned_data.get('phone_number', '')
        code = self.cleaned_data.get('code', '')
        try:
            user = DuskenUser.objects.get(phone_number=phone_number)
        except DuskenUser.DoesNotExist:
            user = None
        valid = False
        if not user and len(code) == 8:
            valid = Order.objects.filter(
                phone_number=phone_number,
                transaction_id__startswith=code).exists()
        if not valid:
            raise ValidationError(
                _('You have already registered or the link is invalid.'))

    class Meta:
        model = DuskenUser
        fields = ['first_name', 'last_name', 'email', 'phone_number']
예제 #24
0
class PhoneTokenCreateSerializer(ModelSerializer):
    phone_number = serializers.CharField(
        validators=PhoneNumberField().validators)

    class Meta:
        model = PhoneToken
        fields = ('reference_id', 'phone_number')
예제 #25
0
class SignUpForm(UserCreationForm):
    first_name = forms.CharField(max_length=30,
                                 required=False,
                                 help_text='Optional.')
    last_name = forms.CharField(max_length=30,
                                required=False,
                                help_text='Optional.')
    email = forms.EmailField(max_length=254,
                             required=False,
                             help_text='optional')
    mobile = PhoneNumberField(help_text='compulsory')
    Locality = forms.CharField(max_length=100, help_text='compulsory')
    District = forms.CharField(max_length=50, help_text='compulsary')
    State = forms.CharField(max_length=50, help_text='compulsary')
    pincode = forms.IntegerField(help_text='compulsary')

    class Meta:
        model = User
        fields = (
            'username',
            'first_name',
            'last_name',
            'mobile',
            'email',
            'Locality',
            'District',
            'State',
            'pincode',
            'password1',
            'password2',
        )
예제 #26
0
파일: forms.py 프로젝트: lttsh/LemonPie
class PersonalForm(EntryForm):
    name = forms.CharField(max_length=50)
    family_name = forms.CharField(max_length=50)
    given_name = forms.CharField(max_length=50)
    #TODO: PhoneNumberField() doesn't raise error in form when phone number is not valid.
    phone_number = PhoneNumberField()
    email_address = forms.EmailField()
예제 #27
0
class PatientRegisterForm(forms.UserCreationForm):
    phone_number = PhoneNumberField(required=False)
    error_message = forms.UserCreationForm.error_messages.update(
        {"duplicate_username": _("This username has already been taken.")})

    class Meta(forms.UserCreationForm.Meta):
        model = User
        fields = ('username', 'first_name', 'last_name', 'email')

    def clean_username(self):
        username = self.cleaned_data["username"]

        try:
            User.objects.get(username=username)
        except User.DoesNotExist:
            return username

        raise ValidationError(self.error_messages["duplicate_username"])

    def save(self, commit=True):
        user = super().save(commit=False)
        user.set_password(self.cleaned_data["password1"])
        user.is_patient = True
        if commit:
            user.save()
        return user
class UnlockForm(forms.Form):
    first_name = forms.CharField(
        label="Your first name",
        max_length=255,
        widget=forms.TextInput(attrs={"autocomplete": "given-name"}),
    )
    last_name = forms.CharField(
        label="Your last name",
        max_length=255,
        widget=forms.TextInput(attrs={"autocomplete": "family-name"}),
    )
    email = forms.EmailField(
        label="Your email",
        max_length=255,
        widget=forms.TextInput(attrs={"autocomplete": "email", "type": "email"}),
    )
    phone = PhoneNumberField(
        label="Your current phone number",
        widget=forms.TextInput(
            attrs={"autocomplete": "tel", "type": "phone", "autofocus": ""}
        ),
    )
    imei = IMEIField(
        label="The phone's IMEI (this can be found by dialing *#06#)", max_length=15
    )
예제 #29
0
class ContactForm(forms.ModelForm):

    address = forms.CharField(widget=forms.Textarea(attrs={
        'class': 'form-control',
        'rows': 4
    }),
                              max_length=300,
                              required=True)
    city = forms.CharField(
        widget=forms.TextInput(attrs={'class': 'form-control'}),
        max_length=30,
        required=True)
    state = forms.CharField(
        widget=forms.TextInput(attrs={'class': 'form-control'}),
        max_length=30,
        required=True)
    country = forms.CharField(
        widget=forms.TextInput(attrs={'class': 'form-control'}),
        max_length=30,
        required=True)
    phone = PhoneNumberField(
        widget=forms.TextInput(attrs={'placeholder': 'Phone'}),
        label="Phone number",
        required=False,
        help_text='+ Country Code 11 digit phone\n'
        'e.g. +8801XXXXXXXXX')
    zip = forms.IntegerField(
        widget=forms.TextInput(attrs={'class': 'form-control'}), required=True)

    class Meta:
        model = User
        fields = ['address', 'city', 'state', 'country', 'phone', 'zip']
예제 #30
0
class AddressForm(forms.ModelForm):
    province_options = (('AB', 'AB'), )
    street = forms.CharField(
        max_length=200,
        required=True,
        widget=forms.TextInput(attrs={'class': 'form-control'}))
    city = forms.CharField(
        max_length=200,
        required=True,
        widget=forms.TextInput(attrs={'class': 'form-control'}))
    province = forms.ChoiceField(
        choices=province_options,
        required=True,
        widget=forms.Select(attrs={'class': 'form-control'}))
    postal = forms.CharField(
        max_length=7,
        required=False,
        widget=forms.TextInput(attrs={'class': 'form-control'}))
    intercom = forms.IntegerField(
        required=False,
        widget=forms.TextInput(attrs={'class': 'form-control'}))
    tel = PhoneNumberField(
        required=False,
        widget=forms.TextInput(attrs={
            'placeholder': 'ie: +14030001234',
            'class': 'form-control'
        }),
        label="Phone Number")

    class Meta:
        model = PropertyAddress
        exclude = ()