class MeetUpdateView(UpdateModelView): """ Retrieve, update or delete a meet instance. """ template_name = "meets/meet_update_form.html" model = Meet form_class = MeetDetailForm layout = Layout('name', Row('team', 'group'), Row('starttime', 'duration', 'location'), Fieldset('Attendees', Row('manager'), Row('min_attendees', 'max_attendees'))) def get_object_data(self, **kwargs): """List of object fields to display. Choice fields values are expanded to readable choice label. """ #logger.debug(self.object._meta.fields) return super().get_object_data() def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['attendees_header'] = [('object', 'player'), ('attendance', 'attendance'), ('substitute', 'substitute') ] context['attendee_display_links'] = ['name'] return context pass
class ContactForm(forms.Form): name = forms.CharField(label='Nome') email = forms.EmailField(label='E-Mail') message = forms.CharField(label='Mensagem', widget=forms.Textarea) layout = Layout( Fieldset("Fale Conosco", Row(Span6('name'), Span6('email')), Row(Span12('message')))) def send_mail(self): name = self.cleaned_data['name'] email = self.cleaned_data['email'] message = self.cleaned_data['message'] message = 'Nome: {0}\nE-Mail:{1}\n{2}'.format(name, email, message) send_mail('Contato do Elias Cabeção', message, settings.DEFAULT_FROM_EMAIL, [email]) # msg = MIMEText('Email configurado com sucesso!') # msg['Subject'] = "Email enviado pelo python" # msg['From'] = "*****@*****.**" # msg['To'] = "*****@*****.**" # # s = smtplib.SMTP('smtp.mailgun.org', 587) # # s.login('*****@*****.**', 'r3****f9') # s.sendmail(msg['From'], msg['To'], msg.as_string()) # s.quit()
class DoesNeedPriceQuote(FlowMixin, generic.UpdateView): form_class = NecessaryPriceQuoteForm layout = CustomLayout( Row('support_user'), Fieldset( "Purchase Team", Row('need_price_quote'), Row('purchase_team_comment'), Row('price_quoted', 'currency_quoted'), ), ) + SupportView.layout def get_form_kwargs(self): kwargs = super(DoesNeedPriceQuote, self).get_form_kwargs() task_dict = self.activation.process.get_task_map() kwargs['initial'].update({ "created_by": task_dict['start'].owner.username, "support_user": task_dict['support'].owner.username }) return kwargs def get_object(self): return self.activation.process.purchase def activation_done(self, form): purchase = form.save(commit=False) self.activation.process.purchase = purchase purchase.save() super(DoesNeedPriceQuote, self).activation_done(form)
class SupportView(FlowMixin, generic.UpdateView): form_class = SupportForm layout = CustomLayout( Fieldset( "Purchase Details", Row('created_by'), Row('description'), Row('items'), ), Fieldset( "Support", Row('support_comment'), Row('support_approval'), )) def get_form_kwargs(self): kwargs = super(SupportView, self).get_form_kwargs() task_dict = self.activation.process.get_task_map() kwargs['initial'].update( {"created_by": task_dict['start'].owner.username}) return kwargs def get_object(self): return self.activation.process.purchase def activation_done(self, form): purchase = form.save(commit=False) self.activation.process.purchase = purchase purchase.save() super(SupportView, self).activation_done(form)
class UsuarioForm(forms.Form): username = forms.CharField( error_messages={'required': 'Campo obligatorio'}, min_length=8, max_length=30, label='Nombre de Usuario', help_text='Al menos 8 caracteres.') first_name = forms.CharField( error_messages={'required': 'Campo obligatorio'}, label='Nombre') last_name = forms.CharField( error_messages={'required': 'Campo obligatorio'}, label='Apellidos') email = forms.EmailField(error_messages={'required': 'Campo obligatorio'}, label='Dirección de Correo Electrónico') try: groups = forms.ChoiceField( choices=[(x.id, x.name) for x in Group.objects.all()], label='Perfil de Acceso', help_text= 'Por favor seleccione el Perfil de Acceso que tendrá este Usuario') except: pass layout = Layout(Fieldset('Agregar Usuario: '), Row('username', 'email'), Row('first_name', 'last_name'), Row('groups')) def clean_email(self): email = self.cleaned_data['email'].lower() username = self.cleaned_data.get('username') if email and User.objects.filter(email=email).exclude( username=username).exists(): raise forms.ValidationError("¡Ya existe un usuario con ese email!") return email
class RegistrationForm(forms.Form): username = forms.CharField() email = forms.EmailField(label="Email Address") password = forms.CharField(widget=forms.PasswordInput) password_confirm = forms.CharField(widget=forms.PasswordInput, label="Confirm password") first_name = forms.CharField(required=False) last_name = forms.CharField(required=False) gender = forms.ChoiceField(choices=((None, ''), ('F', 'Female'), ('M', 'Male'), ('O', 'Other'))) receive_news = forms.BooleanField( required=False, label='I want to receive news and special offers') agree_toc = forms.BooleanField( required=True, label='I agree with the Terms and Conditions') layout = Layout( 'username', 'email', Row('password', 'password_confirm'), Fieldset('Pesonal details', Row('first_name', 'last_name'), 'gender', 'receive_news', 'agree_toc')) template = Template(""" {% form %} {% part form.username prefix %}<i class="material-icons prefix">account_box</i>{% endpart %} {% part form.email prefix %}<i class="material-icons prefix">email</i>{% endpart %} {% part form.password prefix %}<i class="material-icons prefix">lock_open</i>{% endpart %} {% endform %} """) buttons = Template(""" <button class="waves-effect waves-light btn" type="submit">Submit</button> """) title = "Registration form"
class UserCreateForm(UserCreationForm): """ This form class handles the sign up """ class Meta: fields = ('first_name', 'last_name', 'email', 'password1','password2') model = get_user_model() def __init__(self,*args,**kwargs): super().__init__(*args,**kwargs) # some additional customization for fieldname in ['first_name', 'last_name', 'email']: self.fields[fieldname].required = True for fieldname in ['password1', 'password2']: self.fields[fieldname].help_text = None self.fields['email'].error_messages = "Please provide a valid email address" def save(self, commit=True): user = super(UserCreateForm, self).save(commit=False) user.email = self.cleaned_data["email"] user.username = user.email if commit: user.save() return user layout = Layout(Row('first_name', 'last_name'), 'email', Row('password1', 'password2'))
class OrderForm(forms.Form): name = forms.CharField() company = forms.CharField() email = forms.EmailField() phone = forms.CharField() interest = forms.ChoiceField(choices=((None, 'Interested in'), ('D', 'Design'), ('C', 'Development'), ('I', 'Illustration'), ('B', 'Branding'), ('V', 'Video'))) budget = forms.ChoiceField(choices=((None, 'Budget'), ('S', 'Less than $5000'), ('M', '$5000-$10000'), ('L', '$10000-$20000'), ('XL', 'More than $20000'))) start_date = forms.DateField(label="Expected start date") finish_date = forms.DateField(label="Expected finish date") attachment = forms.FileField(label="Include some file...") message = forms.CharField(widget=forms.Textarea) layout = Layout('name', 'company', 'email', 'phone', Row('interest', 'budget'), Row('start_date', 'finish_date'), 'attachment', 'message') template = Template(""" {% form %} {% part form.name prefix %}<i class="mdi-action-account-box prefix"></i>{% endpart %} {% part form.company prefix %}<i class="mdi-communication-business prefix"></i>{% endpart %} {% part form.email prefix %}<i class="mdi-communication-email prefix"></i>{% endpart %} {% part form.phone prefix %}<i class="mdi-communication-call prefix"></i>{% endpart %} {% endform %} """) buttons = Template(""" <button class="btn btn-primary pull-right" type="submit">Submit request</button> """) title = "Order services"
class CustomSignupForm(SignupForm): def __init__(self, *args, **kwargs): super(CustomSignupForm, self).__init__(*args, **kwargs) self.initial['timezone'] = 'Europe/London' first_name = forms.CharField(max_length=30, label='First Name') last_name = forms.CharField(max_length=30, label='Last Name') fav_team = forms.ModelChoiceField( queryset=Team.objects.filter(Active=True), empty_label=None, label='Favourite Team') timezone = forms.ChoiceField(choices=timezonelist, label='Timezone') layout = Layout('email', Row('password1', 'password2'), Row('first_name', 'last_name'), Row('fav_team', 'timezone')) class Meta: model = get_user_model() def signup(self, request, user): user.first_name = self.cleaned_data['first_name'] user.last_name = self.cleaned_data['last_name'] user.FavouriteTeam = self.cleaned_data['fav_team'] user.Timezone = self.cleaned_data['timezone'] user.save() return user
class CreateUserForm(SignUpFormMedical): group_name = forms.ChoiceField(choices=(('doctor', 'Doctor'), ('pharmacy', 'Pharmacy'), ('diagnosis_center', 'Diagnosis Center')), required=True, label='Add this user as') other_info = forms.CharField( widget=forms.TextInput( attrs={ 'placeholder': 'About the institution, add info regarding services it provides etc.' }), required=False, label='About', ) license = forms.FileField(required=False) layout = Layout( 'username', 'email', Row('password1', 'password2'), 'group_name', Fieldset( 'More Details', 'first_name', 'address', 'pin_code', Row('mobile_no', 'emergency_mobile'), 'other_info', )) class Meta: model = User fields = [ 'username', 'email', 'first_name', 'mobile_no', 'emergency_mobile', 'address', 'pin_code', 'other_info' ]
class EditProfileFormMedical(forms.ModelForm): email = forms.EmailField(label="Email Address") first_name = forms.CharField(required=True, label='Name') mobile_no = forms.CharField(required=True) emergency_mobile = forms.CharField(required=True, label='Secondary Phone Number') address = forms.CharField(required=True) pin_code = forms.CharField(required=True) other_info = forms.CharField(widget=forms.TextInput( attrs={'placeholder': 'Any other information you want us to know.'}), required=False) layout = Layout( 'email', Fieldset( 'More Details', Row('first_name'), Row('mobile_no', 'emergency_mobile'), 'address', 'pin_code', 'other_info', )) class Meta: model = User fields = [ 'email', 'first_name', 'mobile_no', 'emergency_mobile', 'address', 'pin_code', 'other_info' ]
class TeamMemberCreateView(CreateModelView): model = TeamMember form_class = TeamMemberCreateForm template_name = 'team/member_join.html' layout = Layout(Row('team'), Row('password'), Row('rating'), ) def get_form_kwargs(self, **kwargs): '''pass current user to form''' kwargs = super().get_form_kwargs() kwargs['current_user'] = self.request.user return kwargs def has_add_permission(self, request): """Anyone can join a team as long as you know the password. """ return True def get_success_url(self): '''When a team registration is done, go back to the list of teams.''' team_model = Team opts = team_model._meta module = module_registry.get_module(opts.app_label) return reverse(module.get_named_url(opts.model_name, 'list')) pass
class RegistrationForm(forms.Form, UserCreationForm): username = forms.CharField(max_length=30, required=True, label='Login') email = forms.EmailField(label="E-mail", required=True) #senha = forms.CharField(widget=forms.PasswordInput,label='Senha') #confirma_senha = forms.CharField(widget=forms.PasswordInput, label="Confirmar senha") nome = forms.CharField(required=True, label='Nome Completo') cep = forms.IntegerField(max_value=99999999, required=True, label='CEP') #tipo_logradouro = forms.CharField(required=True,label='Tipo') logradouro = forms.CharField(required=True, label='Logradouro') numero = forms.CharField(required=True, label='Número') bairro = forms.CharField(required=True, label='Bairro') cidade = forms.CharField(required=True, label='Cidade') estado = forms.CharField(required=True, label='UF') #last_name = forms.CharField(required=True, label='Último nome') #gender = forms.ChoiceField(choices=((None, ''), ('F', 'Feminino'), ('M', 'Masculino'), ('O', 'Outro')),label='Gênero',required=False) profissional = forms.BooleanField(required=False, label='Sou profissional.') agree_toc = forms.BooleanField( required=True, label='Eu aceito os termos e condições de uso.') layout = Layout( Fieldset('Cadastrar em SOS my PC', 'username', 'email', Row('password1', 'password2')), Fieldset( 'Dados Pessoais', 'nome', Row( Span2('cep'), # Span2('tipo_logradouro'), Span8('logradouro'), Span2('numero')), Row(Span5('bairro'), Span5('cidade'), Span2('estado'))), 'profissional', 'agree_toc')
class AdidasSignupForm(forms.ModelForm): layout = Layout( Row( 'username', 'email', ), Row( 'password1', 'password2', ), Row( 'first_name', 'last_name', ), Row('birth_date'), Row('image', 'phone_number'), ) class Meta: model = get_user_model() fields = ('username', 'email', 'first_name', 'last_name', 'birth_date', 'phone_number', 'image') def signup(self, request, user): user.username = self.cleaned_data['username'] user.email = self.cleaned_data['email'] user.first_name = self.cleaned_data['first_name'] user.last_name = self.cleaned_data['last_name'] user.birth_date = self.cleaned_data['birth_date'] user.phone_number = self.cleaned_data['phone_number'] user.image = self.cleaned_data['image'] user.save()
class NewWasherView(CreateView): model = Register form_class = UploadForm def get_success_url(self): return reverse('done') layout = Layout( Row('first_name'), Row('emiil', 'sex'), ) def form_valid(self, form): form.instance.status = False form.instance.working = False first_name = form.instance.first_name emiil = form.instance.emiil dir = os.path.join(settings.BASE_DIR, "templates", "email_washer.html") archivo = open(dir, "r") contenido = archivo.read() contenido = contenido.format(first_name) subject = 'washme' text_content = 'Mensaje...nLinea 2nLinea3' html_content = contenido from_email = '"origen" <*****@*****.**>' to = emiil msg = EmailMultiAlternatives(subject, text_content, from_email, [to]) msg.attach_alternative(html_content, "text/html") msg.send() return super(NewWasherView, self).form_valid(form)
class QuieroSerFiscal2(forms.ModelForm): nombre = forms.CharField() apellido = forms.CharField() telefono = forms.CharField(label='Teléfono', help_text='Preferentemente celular') movilidad = forms.BooleanField( label='¿Tenés Movilidad propia?', required=False, help_text= 'Marcá la casilla si tenés cómo movilizarte el día de la elección') seccion = forms.ModelChoiceField( label='Sección electoral', queryset=Seccion.objects.all(), help_text=mark_safe( f'Sección/departamento donde votás y/o preferís fiscalizar. {LINK}' )) layout = Layout(Row('nombre', 'apellido'), 'telefono', Row('movilidad', 'disponibilidad'), Fieldset('¿Dónde votás?', 'seccion')) class Meta: model = Fiscal fields = [ 'nombre', 'apellido', 'telefono', 'movilidad', 'disponibilidad', 'seccion' ] def clean_telefono(self): valor = self.cleaned_data['telefono'] try: valor = validar_telefono(valor) except (AttributeError, phonenumbers.NumberParseException): raise forms.ValidationError('No es un teléfono válido') return valor
class QuestionForm(forms.ModelForm): # Interessante level = forms.ChoiceField( choices=( ('0', 'Dependencia'), ('1', 'Confianca'), ('2', 'Comprometimento'), ('3', 'Preditiva'),), label='Escolha o nível', widget=forms.RadioSelect) class Meta: model = Question fields = ( 'question', 'level', ) layout = Layout( Fieldset("Inclua uma Pergunta", Row('question', ), Row('level') ) )
class RepresentativeForm(forms.ModelForm): class Meta: model = Client fields = ( 'cdalterdata', 'name', 'phone', 'cpf_cnpj', 'email', 'cep', 'logradouro', 'numero', 'bairro', 'cidade', 'estado', ) exclude = ('representative', 'is_representative', 'last_search', 'priority',) layout = Layout( Fieldset("Filial ou Representação", Row(Span3('cdalterdata'), Span9('name'), ), Row(Span4('phone'), Span8('cpf_cnpj')), Row(Span12('email'), ), ), Fieldset('Endereço', Row(Span2('cep'), Span8('logradouro'), Span2('numero')), Row(Span5('bairro'), Span5('cidade'), Span2('estado'))) )
class RegisterAbsenceForm(forms.Form): layout = Layout( Fieldset("", Row("date_start", "date_end"), Row("from_period", "to_period")), Fieldset("", Row("absent", "excused"), Row("excuse_type"), Row("remarks")), ) date_start = forms.DateField(label=_("Start date"), initial=datetime.today) date_end = forms.DateField(label=_("End date"), initial=datetime.today) from_period = forms.ChoiceField(label=_("Start period")) to_period = forms.ChoiceField(label=_("End period")) absent = forms.BooleanField(label=_("Absent"), initial=True, required=False) excused = forms.BooleanField(label=_("Excused"), initial=True, required=False) excuse_type = forms.ModelChoiceField( label=_("Excuse type"), queryset=ExcuseType.objects.all(), widget=Select2Widget, required=False, ) remarks = forms.CharField(label=_("Remarks"), max_length=30, required=False) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) period_choices = TimePeriod.period_choices self.fields["from_period"].choices = period_choices self.fields["to_period"].choices = period_choices self.fields["from_period"].initial = TimePeriod.period_min self.fields["to_period"].initial = TimePeriod.period_max
class EditProfileForm(forms.ModelForm): email = forms.EmailField(label="Email Address") first_name = forms.CharField(required=False) last_name = forms.CharField(required=False) gender = forms.ChoiceField(choices=((None, ''), ('F', 'Female'), ('M', 'Male'), ('O', 'Other')), required=False) birthdate = forms.DateField(required=False) mobile_no = forms.CharField(required=False) emergency_mobile = forms.CharField(required=False) other_info = forms.CharField(widget=forms.TextInput( attrs={ 'placeholder': 'Any other information you want us to know (for example, allergy)' }), required=False) layout = Layout( 'email', Fieldset( 'Personal details', Row('first_name', 'last_name'), Row('gender', 'birthdate'), Row('mobile_no', 'emergency_mobile'), 'other_info', )) class Meta: model = User fields = [ 'email', 'first_name', 'last_name', 'gender', 'birthdate', 'mobile_no', 'emergency_mobile', 'other_info' ]
def get_context_data(self, **kwargs: Any) -> Dict[str, Any]: context = super().get_context_data(**kwargs) context["title"] = _("Edit FAQ question") context["layout"] = Layout(Row("question_text"), Row("icon", "show", "section"), Row("answer_text")) return context
class FilterRegisterObjectForm(forms.Form): """Form for filtering register objects in ``RegisterObjectTable``.""" layout = Layout(Row("school_term", "date_start", "date_end"), Row("has_documentation", "group", "subject")) school_term = forms.ModelChoiceField(queryset=None, label=_("School term")) has_documentation = forms.NullBooleanField( label=_("Has lesson documentation")) group = forms.ModelChoiceField(queryset=None, label=_("Group"), required=False) subject = forms.ModelChoiceField(queryset=None, label=_("Subject"), required=False) date_start = forms.DateField(label=_("Start date")) date_end = forms.DateField(label=_("End date")) @classmethod def get_initial(cls, has_documentation: Optional[bool] = None): date_end = timezone.now().date() date_start = date_end - timedelta(days=30) return { "school_term": SchoolTerm.current, "date_start": date_start, "date_end": date_end, "has_documentation": has_documentation, } def __init__(self, request: HttpRequest, *args, for_person: bool = True, default_documentation: Optional[bool] = None, groups: Optional[Sequence[Group]] = None, **kwargs): self.request = request person = self.request.user.person kwargs["initial"] = self.get_initial( has_documentation=default_documentation) super().__init__(*args, **kwargs) self.fields["school_term"].queryset = SchoolTerm.objects.all() if not groups and for_person: groups = Group.objects.filter( Q(lessons__teachers=person) | Q(lessons__lesson_periods__substitutions__teachers=person) | Q(events__teachers=person) | Q(extra_lessons__teachers=person)) elif not for_person: groups = Group.objects.all() self.fields["group"].queryset = groups # Filter subjects by selectable groups subject_qs = Subject.objects.filter( Q(lessons__groups__in=groups) | Q(extra_lessons__groups__in=groups)).distinct() self.fields["subject"].queryset = subject_qs
class SystemSettingsForm(forms.ModelForm): registrationTime = forms.IntegerField( label='Время на регистрацию', required=True, error_messages=my_default_errors, ) inactiveTime = forms.IntegerField( label='Время на отключение ветви', required=True, error_messages=my_default_errors, ) crawlEmail = forms.CharField( label='Логин', required=True, error_messages=my_default_errors, ) crawlPassword = forms.CharField( label='Пароль', widget=forms.PasswordInput, required=True, error_messages=my_default_errors, ) layout = Layout(Row('registrationTime'), Row('inactiveTime'), Fieldset("Учетная запись", 'crawlEmail', 'crawlPassword')) class Meta: model = SuperAdminSettings fields = ('registrationTime', 'inactiveTime', 'crawlEmail', 'crawlPassword') def clean_registrationTime(self): cleaned_data = self.cleaned_data time = cleaned_data.get('registrationTime') if time < 2: raise forms.ValidationError( "Время для регистрации должно быть не менее 2 минут") return time def clean_crawlEmail(self): cleaned_data = self.cleaned_data id = cleaned_data.get('crawlEmail') print("CLEAND") print(cleaned_data) # print(id.isdigit()) if not id.isdigit(): print("CLEANED DIGIT") raise forms.ValidationError( "Ваш логин должен содержать только цифры") if id.__len__() != 6: print("CLEANED HERE") raise forms.ValidationError("Ваш логин должен состоять из 6 цифр") return id
class CapacityViewSet(NotifierBaseViewSet): model = models.Capacity layout = Layout( "unit", "date", Fieldset("Leitos clínicos/enfermaria", Row("beds_adults", "beds_pediatric")), Fieldset("Leitos UTI", Row("icu_adults", "icu_pediatric")), )
class SearchForm(forms.ModelForm): class Meta: model = Search fields = '__all__' exclude = () layout = Layout( Fieldset("Responda com Calma.", Row('person', 'search_key'), Row('researched',),))
class ItemForm(forms.ModelForm): class Meta: model = Item fields = ['orden', 'nombre', 'nivel', 'descripcion', 'precio', 'precio_2', 'activo'] exclude = ['categoria'] layout = Layout(Row('orden', 'activo'), 'nombre', 'descripcion', Row('nivel', 'precio', 'precio_2'))
class NewShipmentView(LayoutMixin, CreateView): title = "New Shipment" model = Shipment layout = Layout( Row('first_name', 'last_name', 'email'), Row('phone'), Fieldset('Address', Row(Span7('address'), Span5('zipcode')), Row(Span5('city'), Span2('state'), Span5('country'))), )
class CategoriaForm(forms.ModelForm): class Meta: model = Categoria fields = ['orden', 'nombre', 'activa', 'mask_height', 'header_price_1', 'header_price_2'] exclude = ['restaurante'] layout = Layout(Row('orden', 'activa'), 'nombre', Row('mask_height', 'header_price_1', 'header_price_2'))
class ShipmentAdmin(admin.ModelAdmin): list_display = ('pk', 'email', 'first_name', 'last_name', 'city') layout = Layout( Row('first_name', 'last_name'), Row('email', 'phone'), Fieldset('Address', Row('address'), Row('city', 'state', 'zipcode'), Row('country')), TabularInline(ShipmentItemInline)) inlines = [ShipmentItemInline]
class LayoutForm(forms.Form): test_field1 = forms.CharField() test_field2 = forms.CharField() test_field3 = forms.CharField() test_field4 = forms.CharField() test_field5 = forms.CharField() layout = Layout(Row('test_field1', 'test_field2'), Row('test_field3', Column('test_field4', 'test_field5')))