from wtforms import ( BooleanField, validators, FloatField ) from changedetectionio.forms import processor_text_json_diff_form class processor_settings_form(processor_text_json_diff_form): in_stock_only = BooleanField('Only trigger when product goes BACK to in-stock', default=True) price_change_min = FloatField('Minimum amount to trigger notification', [validators.Optional()], render_kw={"placeholder": "No limit", "size": "10"}) price_change_max = FloatField('Maximum amount to trigger notification', [validators.Optional()], render_kw={"placeholder": "No limit", "size": "10"}) price_change_threshold_percent = FloatField('Threshold in % for price changes', validators=[ validators.Optional(), validators.NumberRange(min=0, max=100, message="Should be between 0 and 100"), ], render_kw={"placeholder": "0%", "size": "5"}) follow_price_changes = BooleanField('Follow price changes', default=False) def extra_tab_content(self): return 'Restock & Price Detection' def extra_form_content(self): return """ {% from '_helpers.html' import render_field, render_checkbox_field, render_button %}
{{ render_checkbox_field(form.in_stock_only) }} Only trigger notifications when page changes from out of stock to back in stock
{{ render_checkbox_field(form.follow_price_changes) }} Changes in price should trigger a notification When OFF - only care about restock detection
{{ render_field(form.price_change_min, placeholder=watch['restock']['price']) }} Minimum amount, only trigger a change when the price is less than this amount.
{{ render_field(form.price_change_max, placeholder=watch['restock']['price']) }} Maximum amount, only trigger a change when the price is more than this amount.
{{ render_field(form.price_change_threshold_percent) }} Price must change more than this % to trigger a change.
For example, If the product is $1,000 USD, 2% would mean it has to change more than $20 since the first check.
"""