class PIDModValueLower(FlaskForm): lower_min_amount = DecimalField(lazy_gettext('Min Amount (Lower)'), widget=NumberInput(step='any')) lower_max_amount = DecimalField(lazy_gettext('Max Amount (Lower)'), widget=NumberInput(step='any'))
class MeasurementEntry(FlaskForm): value = DecimalField(validators=[DataRequired()]) def __init__(self, csrf_enabled=False, *args, **kwargs): super(MeasurementEntry, self).__init__(csrf_enabled=csrf_enabled, *args, **kwargs)
class DashboardMeasurement(FlaskForm): measurement_id = StringField(lazy_gettext('Measurement')) max_measure_age = IntegerField(lazy_gettext('Max Age (seconds)')) font_em_value = DecimalField(lazy_gettext('Value Font (em)')) font_em_timestamp = DecimalField(lazy_gettext('Timestamp Font (em)')) decimal_places = IntegerField(lazy_gettext('Decimal Places'))
class FilterForm(FlaskForm): address = StringField('Address') radius = DecimalField('Radius') incident_type = SelectMultipleField('Incident Type', choices=[('animal','Animal'),('flood','Flooding'),('fire','Fire')])
class MemberAccountForm(FlaskForm): """Form to display member account details, like TAV, etc.""" tav = DecimalField("TAV") remit_date = DateField("Last Remittance") remit_amount = DecimalField("")
class InputDiagnosisData(FlaskForm): radius_mean = DecimalField('Radius Mean', validators = [DataRequired(), InputRequired()]) texture_mean = DecimalField('Texture Mean', validators = [DataRequired(), InputRequired()]) perimeter_mean = DecimalField('Perimeter Mean', validators = [DataRequired(), InputRequired()]) area_mean = DecimalField('Area Mean', validators = [DataRequired(), InputRequired()]) smoothness_mean = DecimalField('Smoothness Mean', validators = [DataRequired(), InputRequired()]) compactness_mean = DecimalField('Compactness Mean', validators = [DataRequired(), InputRequired()]) concavity_mean = DecimalField('Concavity Mean', validators = [DataRequired(), InputRequired()]) concave_points_mean = DecimalField('Concave Points Mean', validators = [DataRequired(), InputRequired()]) symmetry_mean = DecimalField('Symmetry Mean', validators = [DataRequired(), InputRequired()]) fractal_dimension_mean = DecimalField('Fractal Dimension Mean', validators = [DataRequired(), InputRequired()]) radius_se = DecimalField('Radius SE', validators = [DataRequired(), InputRequired()]) texture_se = DecimalField('Texture SE', validators = [DataRequired(), InputRequired()]) perimeter_se = DecimalField('Perimeter SE', validators = [DataRequired(), InputRequired()]) area_se = DecimalField('Area SE', validators = [DataRequired(), InputRequired()]) smoothness_se = DecimalField('Smoothness SE', validators = [DataRequired(), InputRequired()]) compactness_se = DecimalField('Compactness SE', validators = [DataRequired(), InputRequired()]) concavity_se = DecimalField('Concavity SE', validators = [DataRequired(), InputRequired()]) concave_points_se = DecimalField('Concave Points SE', validators = [DataRequired(), InputRequired()]) symmetry_se = DecimalField('Symmetry SE', validators = [DataRequired(), InputRequired()]) fractal_dimension_se = DecimalField('Fractal Dimension SE', validators = [DataRequired(), InputRequired()]) radius_worst = DecimalField('Radius Worst', validators = [DataRequired(), InputRequired()]) texture_worst = DecimalField('Texture Worst', validators = [DataRequired(), InputRequired()]) perimeter_worst = DecimalField('Perimeter Worst', validators = [DataRequired(), InputRequired()]) area_worst = DecimalField('Area Worst', validators = [DataRequired(), InputRequired()]) smoothness_worst = DecimalField('Smoothness Worst', validators = [DataRequired(), InputRequired()]) compactness_worst = DecimalField('Compactness Worst', validators = [DataRequired(), InputRequired()]) concavity_worst = DecimalField('Concavity Worst', validators = [DataRequired(), InputRequired()]) concave_points_worst = DecimalField('Concave Radius Mean', validators = [DataRequired(), InputRequired()]) symmetry_worst = DecimalField('Radius Mean', validators = [DataRequired(), InputRequired()]) fractal_dimension_worst = DecimalField('Radius Mean', validators = [DataRequired(), InputRequired()]) submit = SubmitField('Submit') def validateIsDecimal(self, form, field): if not isinstance(field.data, float): raise ValidationError("Field must be a float")
class FeaturesForm(FlaskForm): crim = DecimalField('CRIM', validators=[InputRequired()]) zn = DecimalField('ZN', validators=[InputRequired()]) indus = DecimalField('INDUS', validators=[InputRequired()]) chas = IntegerField('CHAS', validators=[InputRequired()]) nox = DecimalField('NOX', validators=[InputRequired()]) rm = DecimalField('RM', validators=[InputRequired()]) age = DecimalField('AGE', validators=[InputRequired()]) dis = DecimalField('DIS', validators=[InputRequired()]) rad = IntegerField('RAD', validators=[InputRequired()]) tax = DecimalField('TAX', validators=[InputRequired()]) ptratio = DecimalField('PTRATIO', validators=[InputRequired()]) b = DecimalField('B', validators=[InputRequired()]) lstat = DecimalField('LSTAT', validators=[InputRequired()])
class ProductForm(NameForm): price = DecimalField( "Price", validators=[InputRequired(), NumberRange(min=Decimal('0.0'))]) company = CompanyField("Company", validators=[InputRequired()], coerce=int) image = FileField("Product Image", validators=[FileRequired()])
class RoundForms(FlaskForm): name_of_the_round = StringField("Enter the name of the round") submit_round_name = SubmitField("Round name' Ok") submit_list_of_matches = SubmitField("List of matches is Ok") score_of_the_match = DecimalField("Enter the score at the match", places=1) submit_round = SubmitField("Submit scores")
class DepositForm(Form): amount = DecimalField('euro', validators=[DataRequired(), NumberRange(0, 1000000)], places=12, rounding=2)
class AnswerForm(FlaskForm): answer = DecimalField("Your answer", validators=[DataRequired()]) submit = SubmitField("Submit Answer")
class ListingForm(Form): name = StringField('name', validators=[DataRequired()]) description = TextAreaField('description', validators=[DataRequired()]) price = DecimalField('price', validators=[DataRequired()])
class CreateMoneyForm(FlaskForm): money = DecimalField('充值金额', validators=[DataRequired()], places=2) submit = SubmitField('充值')
class PIDModBase(FlaskForm): function_id = StringField('Function ID', widget=widgets.HiddenInput()) function_type = StringField('Function Type', widget=widgets.HiddenInput()) name = StringField(TRANSLATIONS['name']['title'], validators=[DataRequired()]) measurement = StringField(TRANSLATIONS['measurement']['title'], validators=[DataRequired()]) direction = SelectField(lazy_gettext('Direction'), choices=[('raise', lazy_gettext('Raise')), ('lower', lazy_gettext('Lower')), ('both', lazy_gettext('Both'))], validators=[DataRequired()]) period = DecimalField( TRANSLATIONS['period']['title'], validators=[validators.NumberRange(min=1, max=86400)], widget=NumberInput(step='any')) log_level_debug = BooleanField(TRANSLATIONS['log_level_debug']['title']) start_offset = DecimalField(TRANSLATIONS['start_offset']['title'], widget=NumberInput(step='any')) max_measure_age = DecimalField( TRANSLATIONS['max_age']['title'], validators=[validators.NumberRange(min=1, max=86400)], widget=NumberInput(step='any')) setpoint = DecimalField( TRANSLATIONS['setpoint']['title'], validators=[validators.NumberRange(min=-1000000, max=1000000)], widget=NumberInput(step='any')) band = DecimalField(lazy_gettext('Band (+/- Setpoint)'), widget=NumberInput(step='any')) send_lower_as_negative = BooleanField( lazy_gettext('Send Lower as Negative')) store_lower_as_negative = BooleanField( lazy_gettext('Store Lower as Negative')) k_p = DecimalField(lazy_gettext('Kp Gain'), validators=[validators.NumberRange(min=0)], widget=NumberInput(step='any')) k_i = DecimalField(lazy_gettext('Ki Gain'), validators=[validators.NumberRange(min=0)], widget=NumberInput(step='any')) k_d = DecimalField(lazy_gettext('Kd Gain'), validators=[validators.NumberRange(min=0)], widget=NumberInput(step='any')) integrator_max = DecimalField(lazy_gettext('Integrator Min'), widget=NumberInput(step='any')) integrator_min = DecimalField(lazy_gettext('Integrator Max'), widget=NumberInput(step='any')) raise_output_id = StringField(lazy_gettext('Output (Raise)')) raise_output_type = StringField(lazy_gettext('Action (Raise)')) lower_output_id = StringField(lazy_gettext('Output (Lower)')) lower_output_type = StringField(lazy_gettext('Action (Lower)')) setpoint_tracking_type = StringField( TRANSLATIONS['setpoint_tracking_type']['title']) setpoint_tracking_method_id = StringField('Setpoint Tracking Method') setpoint_tracking_input_math_id = StringField('Setpoint Tracking Input') setpoint_tracking_max_age = DecimalField('Max Age (seconds)', validators=[Optional()], widget=NumberInput(step='any')) pid_hold = SubmitField(lazy_gettext('Hold')) pid_pause = SubmitField(lazy_gettext('Pause')) pid_resume = SubmitField(lazy_gettext('Resume'))
class MenuForm(FlaskForm): meal_name = StringField('Name', validators=[DataRequired(), Length(max=50)]) meal_price = DecimalField('Price', validators=[DataRequired()]) meal_description = TextAreaField('Description') meal_special = BooleanField('Special') submit = SubmitField("Submit")
class ItemUpdateForm(FlaskForm): name = StringField('Name', validators=[DataRequired()]) price = DecimalField('Price', validators=[DataRequired(message='Please enter a proper decimal number'), NumberRange(min=1, message='The price should be atleast 1')]) image = FileField('Add Image (Leave blank to keep current image)', validators=[FileAllowed(['jpg', 'png'])]) percentage_off = IntegerField('Percentage Off', validators=[NumberRange(min=0, max=99, message='Enter a number between 0 and 99')], default=0) submit = SubmitField('Update')
class PartsForm(FlaskForm): part_name = StringField('Name', validators=[DataRequired(), Length(max=50)]) part_price = DecimalField('Price', validators=[DataRequired()]) image = FileField('Image') submit = SubmitField("Submit")
class ItemForm(FlaskForm): name = StringField('Name', validators=[DataRequired()]) price = DecimalField('Price', validators=[DataRequired(message='Please enter a proper decimal number'), NumberRange(min=1, message='The price should be atleast 1')]) image = FileField('Add Image (Leave blank to use default image)', validators=[FileAllowed(['jpg', 'png'])]) submit = SubmitField('Add')
def __init__(self, viz): self.viz = viz from caravel.viz import viz_types viz = self.viz datasource = viz.datasource if not datasource.metrics_combo: raise Exception("Please define at least one metric for your table") default_metric = datasource.metrics_combo[0][0] gb_cols = datasource.groupby_column_names default_groupby = gb_cols[0] if gb_cols else None group_by_choices = self.choicify(gb_cols) # Pool of all the fields that can be used in Caravel self.field_dict = { 'viz_type': SelectField('Viz', default='table', choices=[(k, v.verbose_name) for k, v in viz_types.items()], description="The type of visualization to display"), 'metrics': SelectMultipleSortableField( 'Metrics', choices=datasource.metrics_combo, default=[default_metric], description="One or many metrics to display"), 'metric': SelectField('Metric', choices=datasource.metrics_combo, default=default_metric, description="Chose the metric"), 'stacked_style': SelectField('Chart Style', choices=self.choicify(['stack', 'stream', 'expand']), default='stack', description=""), 'linear_color_scheme': SelectField('Color Scheme', choices=self.choicify([ 'fire', 'blue_white_yellow', 'white_black', 'black_white' ]), default='blue_white_yellow', description=""), 'normalize_across': SelectField( 'Normalize Across', choices=self.choicify(['heatmap', 'x', 'y']), default='heatmap', description=("Color will be rendered based on a ratio " "of the cell against the sum of across this " "criteria")), 'horizon_color_scale': SelectField('Color Scale', choices=self.choicify(['series', 'overall', 'change']), default='series', description="Defines how the color are attributed."), 'canvas_image_rendering': SelectField( 'Rendering', choices=( ('pixelated', 'pixelated (Sharp)'), ('auto', 'auto (Smooth)'), ), default='pixelated', description=( "image-rendering CSS attribute of the canvas object that " "defines how the browser scales up the image")), 'xscale_interval': SelectField( 'XScale Interval', choices=self.choicify(range(1, 50)), default='1', description=("Number of step to take between ticks when " "printing the x scale")), 'yscale_interval': SelectField( 'YScale Interval', choices=self.choicify(range(1, 50)), default='1', description=("Number of step to take between ticks when " "printing the y scale")), 'bar_stacked': BetterBooleanField('Stacked Bars', default=False, description=""), 'include_series': BetterBooleanField('Include Series', default=False, description="Include series name as an axis"), 'secondary_metric': SelectField('Color Metric', choices=datasource.metrics_combo, default=default_metric, description="A metric to use for color"), 'country_fieldtype': SelectField( 'Country Field Type', default='cca2', choices=( ('name', 'Full name'), ('cioc', 'code International Olympic Committee (cioc)'), ('cca2', 'code ISO 3166-1 alpha-2 (cca2)'), ('cca3', 'code ISO 3166-1 alpha-3 (cca3)'), ), description=( "The country code standard that Caravel should expect " "to find in the [country] column")), 'groupby': SelectMultipleSortableField( 'Group by', choices=self.choicify(datasource.groupby_column_names), description="One or many fields to group by"), 'columns': SelectMultipleSortableField( 'Columns', choices=self.choicify(datasource.groupby_column_names), description="One or many fields to pivot as columns"), 'all_columns': SelectMultipleSortableField('Columns', choices=self.choicify( datasource.column_names), description="Columns to display"), 'all_columns_x': SelectField('X', choices=self.choicify(datasource.column_names), description="Columns to display"), 'all_columns_y': SelectField('Y', choices=self.choicify(datasource.column_names), description="Columns to display"), 'druid_time_origin': FreeFormSelectField( 'Origin', choices=( ('', 'default'), ('now', 'now'), ), default='', description= ("Defines the origin where time buckets start, " "accepts natural dates as in 'now', 'sunday' or '1970-01-01'" )), 'granularity': FreeFormSelectField( 'Time Granularity', default="one day", choices=self.choicify([ 'all', '5 seconds', '30 seconds', '1 minute', '5 minutes', '1 hour', '6 hour', '1 day', '7 days', ]), description= ("The time granularity for the visualization. Note that you " "can type and use simple natural language as in '10 seconds', " "'1 day' or '56 weeks'")), 'domain_granularity': SelectField( 'Domain', default="month", choices=self.choicify([ 'hour', 'day', 'week', 'month', 'year', ]), description=("The time unit used for the grouping of blocks")), 'subdomain_granularity': SelectField( 'Subdomain', default="day", choices=self.choicify([ 'min', 'hour', 'day', 'week', 'month', ]), description= ("The time unit for each block. Should be a smaller unit than " "domain_granularity. Should be larger or equal to Time Grain" )), 'link_length': FreeFormSelectField('Link Length', default="200", choices=self.choicify([ '10', '25', '50', '75', '100', '150', '200', '250', ]), description="Link length in the force layout"), 'charge': FreeFormSelectField('Charge', default="-500", choices=self.choicify([ '-50', '-75', '-100', '-150', '-200', '-250', '-500', '-1000', '-2500', '-5000', ]), description="Charge in the force layout"), 'granularity_sqla': SelectField( 'Time Column', default=datasource.main_dttm_col or datasource.any_dttm_col, choices=self.choicify(datasource.dttm_cols), description=( "The time column for the visualization. Note that you " "can define arbitrary expression that return a DATETIME " "column in the table editor. Also note that the " "filter bellow is applied against this column or " "expression")), 'resample_rule': FreeFormSelectField('Resample Rule', default='', choices=self.choicify( ('1T', '1H', '1D', '7D', '1M', '1AS')), description=("Pandas resample rule")), 'resample_how': FreeFormSelectField('Resample How', default='', choices=self.choicify( ('', 'mean', 'sum', 'median')), description=("Pandas resample how")), 'resample_fillmethod': FreeFormSelectField('Resample Fill Method', default='', choices=self.choicify(('', 'ffill', 'bfill')), description=("Pandas resample fill method")), 'since': FreeFormSelectField( 'Since', default="7 days ago", choices=self.choicify([ '1 hour ago', '12 hours ago', '1 day ago', '7 days ago', '28 days ago', '90 days ago', '1 year ago' ]), description= ("Timestamp from filter. This supports free form typing and " "natural language as in '1 day ago', '28 days' or '3 years'" )), 'until': FreeFormSelectField('Until', default="now", choices=self.choicify([ 'now', '1 day ago', '7 days ago', '28 days ago', '90 days ago', '1 year ago' ])), 'max_bubble_size': FreeFormSelectField('Max Bubble Size', default="25", choices=self.choicify([ '5', '10', '15', '25', '50', '75', '100', ])), 'whisker_options': FreeFormSelectField( 'Whisker/outlier options', default="Tukey", description=( "Determines how whiskers and outliers are calculated."), choices=self.choicify([ 'Tukey', 'Min/max (no outliers)', '2/98 percentiles', '9/91 percentiles', ])), 'treemap_ratio': DecimalField( 'Ratio', default=0.5 * (1 + math.sqrt(5)), # d3 default, golden ratio description='Target aspect ratio for treemap tiles.', ), 'number_format': FreeFormSelectField('Number format', default='.3s', choices=[ ('.3s', '".3s" | 12.3k'), ('.3%', '".3%" | 1234543.210%'), ('.4r', '".4r" | 12350'), ('.3f', '".3f" | 12345.432'), ('+,', '"+," | +12,345.4321'), ('$,.2f', '"$,.2f" | $12,345.43'), ], description="D3 format syntax for numbers " "https://github.com/mbostock/\n" "d3/wiki/Formatting"), 'row_limit': FreeFormSelectField('Row limit', default=config.get("ROW_LIMIT"), choices=self.choicify([ 10, 50, 100, 250, 500, 1000, 5000, 10000, 50000 ])), 'limit': FreeFormSelectField( 'Series limit', choices=self.choicify(self.series_limits), default=50, description=( "Limits the number of time series that get displayed")), 'rolling_type': SelectField( 'Rolling', default='None', choices=[(s, s) for s in ['None', 'mean', 'sum', 'std', 'cumsum']], description=( "Defines a rolling window function to apply, works along " "with the [Periods] text box")), 'rolling_periods': IntegerField( 'Periods', validators=[validators.optional()], description=( "Defines the size of the rolling window function, " "relative to the time granularity selected")), 'series': SelectField( 'Series', choices=group_by_choices, default=default_groupby, description=( "Defines the grouping of entities. " "Each serie is shown as a specific color on the chart and " "has a legend toggle")), 'entity': SelectField( 'Entity', choices=group_by_choices, default=default_groupby, description="This define the element to be plotted on the chart" ), 'x': SelectField('X Axis', choices=datasource.metrics_combo, default=default_metric, description="Metric assigned to the [X] axis"), 'y': SelectField('Y Axis', choices=datasource.metrics_combo, default=default_metric, description="Metric assigned to the [Y] axis"), 'size': SelectField('Bubble Size', default=default_metric, choices=datasource.metrics_combo), 'url': TextField( 'URL', description=( "The URL, this field is templated, so you can integrate " "{{ width }} and/or {{ height }} in your URL string."), default='https://www.youtube.com/embed/JkI5rg_VcQ4', ), 'where': TextField( 'Custom WHERE clause', default='', description=( "The text in this box gets included in your query's WHERE " "clause, as an AND to other criteria. You can include " "complex expression, parenthesis and anything else " "supported by the backend it is directed towards.")), 'having': TextField( 'Custom HAVING clause', default='', description=( "The text in this box gets included in your query's HAVING" " clause, as an AND to other criteria. You can include " "complex expression, parenthesis and anything else " "supported by the backend it is directed towards.")), 'compare_lag': TextField( 'Comparison Period Lag', description=("Based on granularity, number of time periods to " "compare against")), 'compare_suffix': TextField( 'Comparison suffix', description="Suffix to apply after the percentage display"), 'table_timestamp_format': FreeFormSelectField('Table Timestamp Format', default='smart_date', choices=TIMESTAMP_CHOICES, description="Timestamp Format"), 'series_height': FreeFormSelectField('Series Height', default=25, choices=self.choicify( [10, 25, 40, 50, 75, 100, 150, 200]), description="Pixel height of each series"), 'x_axis_format': FreeFormSelectField('X axis format', default='smart_date', choices=TIMESTAMP_CHOICES, description="D3 format syntax for y axis " "https://github.com/mbostock/\n" "d3/wiki/Formatting"), 'y_axis_format': FreeFormSelectField('Y axis format', default='.3s', choices=[ ('.3s', '".3s" | 12.3k'), ('.3%', '".3%" | 1234543.210%'), ('.4r', '".4r" | 12350'), ('.3f', '".3f" | 12345.432'), ('+,', '"+," | +12,345.4321'), ('$,.2f', '"$,.2f" | $12,345.43'), ], description="D3 format syntax for y axis " "https://github.com/mbostock/\n" "d3/wiki/Formatting"), 'markup_type': SelectField("Markup Type", choices=self.choicify(['markdown', 'html']), default="markdown", description="Pick your favorite markup language"), 'rotation': SelectField("Rotation", choices=[(s, s) for s in ['random', 'flat', 'square']], default="random", description="Rotation to apply to words in the cloud"), 'line_interpolation': SelectField("Line Style", choices=self.choicify([ 'linear', 'basis', 'cardinal', 'monotone', 'step-before', 'step-after' ]), default='linear', description="Line interpolation as defined by d3.js"), 'code': TextAreaField("Code", description="Put your code here", default=''), 'pandas_aggfunc': SelectField( "Aggregation function", choices=self.choicify( ['sum', 'mean', 'min', 'max', 'median', 'stdev', 'var']), default='sum', description=("Aggregate function to apply when pivoting and " "computing the total rows and columns")), 'size_from': TextField( "Font Size From", default="20", description="Font size for the smallest value in the list"), 'size_to': TextField( "Font Size To", default="150", description="Font size for the biggest value in the list"), 'show_brush': BetterBooleanField( "Range Filter", default=False, description=( "Whether to display the time range interactive selector")), 'show_datatable': BetterBooleanField( "Data Table", default=False, description="Whether to display the interactive data table"), 'include_search': BetterBooleanField( "Search Box", default=False, description=("Whether to include a client side search box")), 'show_bubbles': BetterBooleanField( "Show Bubbles", default=False, description=( "Whether to display bubbles on top of countries")), 'show_legend': BetterBooleanField( "Legend", default=True, description="Whether to display the legend (toggles)"), 'x_axis_showminmax': BetterBooleanField( "X bounds", default=True, description=( "Whether to display the min and max values of the X axis" )), 'rich_tooltip': BetterBooleanField( "Rich Tooltip", default=True, description=( "The rich tooltip shows a list of all series for that" " point in time")), 'y_axis_zero': BetterBooleanField( "Y Axis Zero", default=False, description=( "Force the Y axis to start at 0 instead of the minimum " "value")), 'y_log_scale': BetterBooleanField("Y Log", default=False, description="Use a log scale for the Y axis"), 'x_log_scale': BetterBooleanField("X Log", default=False, description="Use a log scale for the X axis"), 'donut': BetterBooleanField("Donut", default=False, description="Do you want a donut or a pie?"), 'contribution': BetterBooleanField( "Contribution", default=False, description="Compute the contribution to the total"), 'num_period_compare': IntegerField( "Period Ratio", default=None, validators=[validators.optional()], description=("[integer] Number of period to compare against, " "this is relative to the granularity selected")), 'time_compare': TextField("Time Shift", default="", description=( "Overlay a timeseries from a " "relative time period. Expects relative time delta " "in natural language (example: 24 hours, 7 days, " "56 weeks, 365 days")), 'subheader': TextField( 'Subheader', description=("Description text that shows up below your Big " "Number")), }
class ReqresetnumForm(FlaskForm): num = DecimalField('Enter Code', validators=[DataRequired()]) Submit = SubmitField('submit')
class PriceForm(Form): name = StringField( 'Nazwa', [ InputRequired('Podaj nazwę'), Length(min=3, max=200, message='Długość nazwy musi zawierać się ' 'w przedziale %(min)d-%(max)d'), ], filters=[strip_filter], ) category = SelectField('Kategoria', choices=CATEGORIES) unit = StringField( 'Jednostka', [ InputRequired('Podaj jednostkę'), Length(min=1, max=10, message='Długość jednostki musi zawierać się ' 'w przedziale %(min)d-%(max)d'), ], filters=[strip_filter], ) cost = DecimalField('Cena') currency = SelectField('Waluta', choices=CURRENCIES) company = StringField( 'Firma', [ InputRequired('Podaj nazwę firmy'), Length(min=3, max=100, message='Długość firmy musi zawierać się ' 'w przedziale %(min)d-%(max)d'), ], filters=[strip_filter], ) project = StringField( 'Projekt', [ InputRequired('Podaj projekt'), Length(min=3, max=100, message='Długość projektu musi zawierać się ' 'w przedziale %(min)d-%(max)d'), ], filters=[strip_filter], ) city = StringField( 'Miasto', [ InputRequired('Podaj miasto'), Length(min=2, max=100, message='Długość miasta musi zawierać się ' 'w przedziale %(min)d-%(max)d'), ], filters=[strip_filter], ) description = TextAreaField('Opis', filters=[strip_filter])
class BidsForm(Form): bidder_id = StringField('bidder_id', [InputRequired(message=u'No bidder id')]) yearlyPaymentsPercentage = DecimalField( 'yearlyPaymentsPercentage', validators=[ validate_yearly_payments_percentage, InputRequired(message=u'Provide yearlyPaymentsPercentage') ]) contractDuration = IntegerField( 'contractDuration', validators=[ NumberRange( 0, MAX_CONTRACT_DURATION, 'contractDuration must be between %(min)s and %(max)s.') ]) contractDurationDays = IntegerField( 'contractDurationDays', validators=[ validate_contract_duration, NumberRange( 0, DAYS_IN_YEAR - 1, 'contractDurationDays must be between %(min)s and %(max)s.') ]) def validate_bidder_id(self, field): stage_id = self.document['current_stage'] if self.document['stages'][stage_id]['type'] == 'bids': validate_bidder_id_on_bidding(self, field) def validate(self): if super(BidsForm, self).validate(): try: if str(self.yearlyPaymentsPercentage.data) == "-0.01": return -1 if self.contractDuration.data == 0 and self.contractDurationDays.data == 0: message = u'You can\'t bid 0 days and 0 years' append_error_to_form(self, message) raise ValidationError(message) nbu_rate = self.auction.auction_document['NBUdiscountRate'] annual_costs_reduction = [ bid['annualCostsReduction'] for bid in self.document['initial_bids'] if bid['bidder_id'] == self.bidder_id.data ][0] amount = npv( self.contractDuration.data, self.contractDurationDays.data, self.yearlyPaymentsPercentage.data, annual_costs_reduction, parser.parse( self.auction.auction_document['noticePublicationDate'] ), # XXX TODO TEMP!!!!! nbu_rate) stage_id = self.document['current_stage'] if self.document['stages'][stage_id]['type'] == 'bids': validate_bid_change_on_bidding(self, amount) else: message = u'Stage not for bidding' append_error_to_form(self, message) raise ValidationError(message) return amount except ValidationError: return False return False
class UpperLimbData(FlaskForm): """ Render the necessary field types in the Jinja template when instantiated """ shoulder_height = DecimalField("Shoulder Height", validators=[DataRequired()]) chest_height = DecimalField("Chest Height", validators=[DataRequired()]) waist_length = DecimalField("Waist Length", validators=[DataRequired()]) gender = DecimalField("Gender", validators=[InputRequired()]) age = DecimalField("age", validators=[DataRequired()]) foot1 = DecimalField("Foot Length", validators=[DataRequired()]) foot2 = DecimalField("Foot Circumference", validators=[DataRequired()]) foreleg1 = DecimalField("Foreleg Length", validators=[DataRequired()]) foreleg2 = DecimalField("Foreleg Circumference", validators=[DataRequired()]) thigh1 = DecimalField("Thigh Length", validators=[DataRequired()]) thigh2 = DecimalField("Thigh Circumference", validators=[DataRequired()]) submit = SubmitField("Submit")
class AddForm(FlaskForm): Add_Portfolio = StringField(label='Email',validators=[DataRequired(), Email()]) Add_Ticker = StringField(label='Stock',validators=[DataRequired(), Length(max=5)]) Price = DecimalField(label='enter price', default=00.00, validators=[DataRequired()]) Quantity = IntegerField(label='enter quantity', default=0, validators=[DataRequired()]) SubmitAdd = SubmitField('submit')
class ProductionAddForm(FlaskForm): """ 创建表单 """ production_brand = StringField(_('production brand'), validators=[ DataRequired(), ], description='产品品牌(例如:SKF、F*G、NSK...)', render_kw={ 'placeholder': _('production brand'), 'rel': 'tooltip', 'title': _('production brand'), 'autocomplete': 'off', }) production_model = StringField(_('production model'), validators=[ DataRequired(), AddProductionModelRepeatValidate(), ], description='产品型号(例如:7008CEGA/HCP4A)', render_kw={ 'placeholder': _('production model'), 'rel': 'tooltip', 'title': _('production model'), 'autocomplete': 'off', }) production_sku = StringField(_('production sku'), validators=[ DataRequired(), Length(min=2, max=16), ], default='Pcs', description='单位(Pcs:个,Pair:对,Set:组)', render_kw={ 'placeholder': _('production sku'), 'rel': 'tooltip', 'title': _('production sku'), 'autocomplete': 'off', }) ind = IntegerField(_('ind'), validators=[], default=0, description=_('ind'), render_kw={ 'placeholder': _('ind'), 'rel': 'tooltip', 'title': _('ind'), 'type': 'number', 'step': 1, 'min': 0, 'max': 10000, }) oud = IntegerField(_('oud'), validators=[], default=0, description=_('oud'), render_kw={ 'placeholder': _('oud'), 'rel': 'tooltip', 'title': _('oud'), 'type': 'number', 'step': 1, 'min': 0, 'max': 10000, }) wid = IntegerField(_('wid'), validators=[], default=0, description=_('wid'), render_kw={ 'placeholder': _('wid'), 'rel': 'tooltip', 'title': _('wid'), 'type': 'number', 'step': 1, 'min': 0, 'max': 10000, }) cost_ref = DecimalField(_('cost ref'), validators=[], default=0.00, description=_('cost ref'), render_kw={ 'placeholder': _('cost ref'), 'rel': 'tooltip', 'title': _('cost ref'), 'type': 'number', 'step': 0.01, 'min': 0.00, 'max': 1000000.00, }) cost_new = DecimalField(_('cost new'), validators=[], default=0.00, description=_('cost new'), render_kw={ 'placeholder': _('cost new'), 'rel': 'tooltip', 'title': _('cost new'), 'type': 'number', 'step': 0.01, 'min': 0.00, 'max': 1000000.00, }) cost_avg = DecimalField(_('cost avg'), validators=[], default=0.00, description=_('cost avg'), render_kw={ 'placeholder': _('cost avg'), 'rel': 'tooltip', 'title': _('cost avg'), 'type': 'number', 'step': 0.01, 'min': 0.00, 'max': 1000000.00, }) note = StringField(_('production note'), validators=[], description='产品备注(例如:最小起订量12个)', render_kw={ 'placeholder': _('production note'), 'rel': 'tooltip', 'title': _('production note'), 'autocomplete': 'off', })
class CreateServiceForm(FlaskForm): name = StringField('Service Name', validators=[DataRequired()]) price = DecimalField('Price', validators=[NumberRange(min=0, max=1000)]) submit = SubmitField('Submit')
class ActionForm(FlaskForm): lval = DecimalField('lval', validators=[DataRequired()]) rval = DecimalField('rval', validators=[DataRequired()]) action = RadioField('action', choices=[('add', 'add'), ('sub', 'subtract')]) submit = SubmitField('submit')
class GoodForm(FlaskForm): cate_id = IntegerField(u'绑定类别') good_name = StringField(u'商品名') good_info = StringField(u'商品介绍') good_price = DecimalField(u'价格') good_status = BooleanField(u'状态-上线/下线')
class MyForm(FlaskForm): target = DecimalField( 'target', validators=[DataRequired(), NumberRange(0, MAX_NUMBER)])
class PIDModValueRaise(FlaskForm): raise_min_amount = DecimalField(lazy_gettext('Min Amount (Raise)'), widget=NumberInput(step='any')) raise_max_amount = DecimalField(lazy_gettext('Max Amount (Raise)'), widget=NumberInput(step='any'))