コード例 #1
0
class PriceForm(forms.Form):
    amount = forms.DecimalField(
        __("Amount"),
        validators=[
            forms.validators.InputRequired(
                __("Please specify an price amount")),
            forms.validators.NumberRange(min=0),
        ],
    )
    currency = forms.SelectField(__("Currency"),
                                 choices=[('INR', 'INR')],
                                 default='INR')
    start_at = forms.DateTimeField(
        __("Start date & time"),
        validators=[
            forms.validators.DataRequired(
                __("Please specify a start date & time"))
        ],
        naive=False,
    )
    end_at = forms.DateTimeField(
        __("End date & time"),
        validators=[
            forms.validators.DataRequired(
                __("Please specify an end date & time")),
            forms.validators.GreaterThan(
                'start_at', __("The price can’t end before it starts")),
        ],
        naive=False,
    )
コード例 #2
0
ファイル: forms.py プロジェクト: praveenscience/hasjob
class CampaignForm(forms.Form):
    title = forms.StringField(
        __("Title"),
        description=__("A reference name for looking up this campaign again"),
        validators=[
            forms.validators.DataRequired(__("A title is required")),
            forms.validators.StripWhitespace()
        ])
    start_at = forms.DateTimeField(__("Start at"),
                                   timezone=lambda: g.user.timezone
                                   if g.user else None)
    end_at = forms.DateTimeField(__("End at"),
                                 timezone=lambda: g.user.timezone
                                 if g.user else None)
    public = forms.BooleanField(__("This campaign is live"))
    position = forms.RadioField(__("Display position"),
                                choices=CAMPAIGN_POSITION.items(),
                                coerce=int)
    priority = forms.IntegerField(
        __("Priority"),
        default=0,
        description=__(
            "A larger number is higher priority when multiple campaigns are running on the "
            "same dates. 0 implies lowest priority"))
    boards = QuerySelectMultipleField(
        __("Boards"),
        widget=ListWidget(),
        option_widget=CheckboxInput(),
        query_factory=lambda: Board.query.order_by('title'),
        get_label='title',
        validators=[forms.validators.Optional()],
        description=__(u"Select the boards this campaign is active on"))
    geonameids = forms.GeonameSelectMultiField(
        "Locations",
        description=__(
            "This campaign will be targetted at users and jobs with matching locations"
        ))
    user_required = forms.RadioField(__("User is required"),
                                     coerce=getbool,
                                     choices=[(None, __("N/A")),
                                              (True, __("Yes")),
                                              (False, __("No"))])
    flags = forms.RadioMatrixField(
        "Flags",
        coerce=getbool,
        fields=Campaign.flag_choices,
        description=__(
            "All selected flags must match the logged in user for the campaign to be shown"
        ),
        choices=[('None', __("N/A")), ('True', __("True")),
                 ('False', __("False"))])
    content = forms.FormField(CampaignContentForm, __("Campaign content"))

    def validate_geonameids(self, field):
        field.data = [int(x) for x in field.data if x.isdigit()]

    def validate_end_at(self, field):
        if field.data <= self.start_at.data:
            raise forms.ValidationError(
                __(u"The campaign can’t end before it starts"))
コード例 #3
0
ファイル: test_fields.py プロジェクト: hasgeek/baseframe
class DateTimeForm(forms.Form):
    naive = forms.DateTimeField("Date/time Field",
                                naive=True,
                                timezone='Asia/Kolkata')
    aware = forms.DateTimeField("Date/time Field",
                                naive=False,
                                timezone='Asia/Kolkata')
コード例 #4
0
ファイル: project.py プロジェクト: vishwatejharer/funnel
class CfpForm(forms.Form):
    instructions = forms.MarkdownField(
        __("Proposal guidelines"),
        validators=[forms.validators.DataRequired()],
        default='',
        description=__(
            "Set guidelines for the type of sessions"
            "(talks, workshops, other format) your project is accepting, "
            "your review process and any other info for participants"
        ),
    )
    cfp_start_at = forms.DateTimeField(
        __("Proposal submissions open at"),
        validators=[forms.validators.Optional()],
        naive=False,
    )
    cfp_end_at = forms.DateTimeField(
        __("Proposal submissions close at"),
        validators=[
            forms.validators.Optional(),
            forms.validators.AllowedIf(
                'cfp_start_at',
                message=__("This requires open time for submissions to be specified"),
            ),
            forms.validators.GreaterThanEqualTo(
                'cfp_start_at', __("Submissions cannot close before they open")
            ),
        ],
        naive=False,
    )
コード例 #5
0
ファイル: discount.py プロジェクト: hasgeek/boxoffice
class DiscountPriceForm(forms.Form):
    title = forms.StringField(
        __("Discount price title"),
        validators=[
            forms.validators.DataRequired(
                __("Please specify a title for the discount price")),
            forms.validators.Length(max=250),
        ],
        filters=[forms.filters.strip()],
    )
    amount = forms.IntegerField(
        __("Amount"),
        validators=[
            forms.validators.DataRequired(__("Please specify an amount"))
        ],
    )
    currency = forms.RadioField(
        __("Currency"),
        validators=[
            forms.validators.DataRequired(__("Please select the currency"))
        ],
        choices=list(CURRENCY.items()),
        default=CURRENCY.INR,
    )
    start_at = forms.DateTimeField(
        __("Price start date"),
        validators=[
            forms.validators.DataRequired(
                __("Please specify a start date and time"))
        ],
        naive=False,
    )
    end_at = forms.DateTimeField(
        __("Price end date"),
        validators=[
            forms.validators.DataRequired(
                __("Please specify an end date and time")),
            forms.validators.GreaterThan(
                'start_at',
                __("Please specify an end date for the price that is greater than the start date"
                   ),
            ),
        ],
        naive=False,
    )
    item = forms.QuerySelectField(
        __("Item"),
        get_label='title',
        validators=[
            forms.validators.DataRequired(
                __("Please select a item for which the discount is to be applied"
                   ))
        ],
    )

    def set_queries(self):
        self.item.query = (Item.query.join(ItemCollection).filter(
            ItemCollection.organization ==
            self.edit_parent.organization).options(db.load_only('id',
                                                                'title')))
コード例 #6
0
ファイル: item.py プロジェクト: pacmad/boxoffice-8
class ItemForm(forms.Form):
    title = forms.StringField(__("Item title"),
        validators=[forms.validators.DataRequired(__("Please specify a title")),
            forms.validators.Length(max=250)], filters=[forms.filters.strip()])
    description = forms.TextAreaField(__("Description"), filters=[format_description],
        validators=[forms.validators.DataRequired(__("Please specify a description"))])
    restricted_entry = forms.BooleanField(__("Restrict entry?"))
    seq = forms.IntegerField(__("Sequence"),
        description=__("The sequence of the ticket on the listing"),
        validators=[forms.validators.DataRequired(__("Please specify the sequence order"))])
    category = QuerySelectField(__("Category"), get_label='title',
        validators=[forms.validators.DataRequired(__("Please select a category"))])
    quantity_total = forms.IntegerField(__("Quantity available"),
        validators=[forms.validators.DataRequired(__("Please specify the quantity available for sale"))])
    assignee_details = forms.TextAreaField(__("Assignee details"), filters=[format_json],
        validators=[validate_json], default=ASSIGNEE_DETAILS_PLACEHOLDER)
    event_date = forms.DateField(__("Event date"),
        description=__("The date on which this item will be invoiced"),
        validators=[forms.validators.DataRequired(__("Please specify a date for the event"))])
    transferable_until = forms.DateTimeField(__("Transferable until"),
        validators=[forms.validators.Optional()],
        naive=False)
    cancellable_until = forms.DateTimeField(__("Cancellable until"),
        validators=[forms.validators.Optional()],
        naive=False)
    place_supply_state_code = forms.SelectField(__("State"),
        description=__("State of supply"), coerce=int, default=indian_states_dict['KA']['short_code'],
        validators=[forms.validators.DataRequired(__("Please select a state"))])
    place_supply_country_code = forms.SelectField(__("Country"),
        description=__("Country of supply"), default='IN',
        validators=[forms.validators.DataRequired(__("Please select a country"))])

    def set_queries(self):
        self.place_supply_state_code.choices = [(0, '')] + [(state['short_code'], state['name']) for state in sorted(indian_states, key=lambda k: k['name'])]
        self.place_supply_country_code.choices = [('', '')] + localized_country_list()
        self.category.query = Category.query.join(ItemCollection).filter(
            Category.item_collection == self.edit_parent).options(db.load_only('id', 'title'))

    def validate_place_supply_state_code(self, field):
        if field.data <= 0:
            # state short codes start from 1,
            # and 0 means empty value as mentioned above in set_queries
            raise forms.ValidationError(__("Please select a state"))

    def validate_transferable_until(self, field):
        if field.data and field.data.date() > self.event_date.data:
            raise forms.ValidationError(__("Ticket transfer deadline cannot be after event date"))
コード例 #7
0
ファイル: campaign.py プロジェクト: saurabh17a/hasjob
class CampaignForm(forms.Form):
    title = forms.StringField(
        __("Title"),
        description=__("A reference name for looking up this campaign again"),
        validators=[forms.validators.DataRequired(__("A title is required"))],
        filters=[forms.filters.strip()],
    )
    start_at = forms.DateTimeField(__("Start at"), naive=False)
    end_at = forms.DateTimeField(
        __("End at"),
        validators=[
            forms.validators.GreaterThan(
                'start_at', __("The campaign can’t end before it starts")
            )
        ],
        naive=False,
    )
    public = forms.BooleanField(__("This campaign is live"))
    position = forms.RadioField(
        __("Display position"), choices=list(CAMPAIGN_POSITION.items()), coerce=int
    )
    priority = forms.IntegerField(
        __("Priority"),
        default=0,
        description=__(
            "A larger number is higher priority when multiple campaigns are running on the "
            "same dates. 0 implies lowest priority"
        ),
    )
    boards = QuerySelectMultipleField(
        __("Boards"),
        widget=ListWidget(),
        option_widget=CheckboxInput(),
        query_factory=lambda: Board.query.order_by(Board.featured.desc(), Board.title),
        get_label='title_and_name',
        validators=[forms.validators.Optional()],
        description=__("Select the boards this campaign is active on"),
    )
    geonameids = forms.GeonameSelectMultiField(
        "Locations",
        description=__(
            "This campaign will be targetted at users and jobs with matching locations"
        ),
    )
    user_required = forms.RadioField(
        __("User is required"),
        coerce=getbool,
        choices=[
            (None, __("N/A – Don’t target by login status")),
            (True, __("Yes – Show to logged in users only")),
            (False, __("No – Show to anonymous users only")),
        ],
    )
    flags = forms.RadioMatrixField(
        "Flags",
        coerce=getbool,
        fields=Campaign.flag_choices,
        description=__(
            "All selected flags must match the logged in user for the campaign to be shown"
        ),
        choices=[('None', __("N/A")), ('True', __("True")), ('False', __("False"))],
    )
    content = forms.FormField(CampaignContentForm, __("Campaign content"))

    def validate_geonameids(self, field):
        field.data = [int(x) for x in field.data if x.isdigit()]