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"]}, )
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)
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
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)"
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()
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__'
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']
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'}))
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.'}) }
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)
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' }))
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', )
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', )
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
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
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
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
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')
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')
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' }))
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' ]
class loginform(UserCreationForm): Email = forms.EmailField() Phone = PhoneNumberField() class Meta: model = User fields = ['username', 'Email', 'Phone', 'password1', 'password2']
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']
class PhoneTokenCreateSerializer(ModelSerializer): phone_number = serializers.CharField( validators=PhoneNumberField().validators) class Meta: model = PhoneToken fields = ('reference_id', 'phone_number')
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', )
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()
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 )
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']
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 = ()