Exemplo n.º 1
0
class SearchForm(Form):
    text = fields.CharField(max_length='255', required=False)
    genre = fields.IntegerField(min_value=0, required=False)
    year_old = fields.IntegerField(min_value=0, required=False)
    rating = fields.FloatField(min_value=0, required=False)
    price = fields.FloatField(min_value=0, required=False)
    instock = fields.BooleanField(required=False)
    recommend = fields.BooleanField(required=False)

    def __init__(self, *args, **kwargs):
        super(SearchForm, self).__init__(*args, **kwargs)

        for k, v in self.fields.items():
            if k in kwargs['data'] and kwargs['data'][k]:
                if self.fields[k].required == False:
                    self.fields[k].required = True

    class Meta:
        fields = (
            'text',
            'genre',
            'year_old',
            'rating',
            'price',
            'instock',
        )
Exemplo n.º 2
0
class CheckInForm(Form):
    t_shirt = fields.BooleanField(label='T-shirt', required=False)
    swag = fields.BooleanField(label='Swag Bag', required=False)
    nametag = fields.BooleanField(required=False)
    room_key = fields.BooleanField(required=False)
    key_card = fields.CharField(required=False)
    notes = fields.CharField(
        required=False,
        widget=widgets.Textarea(attrs={'rows': 3}),
    )

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.include_media = False
        self.helper.layout = Layout(
            't_shirt',
            'swag',
            'nametag',
            'room_key',
            'key_card',
        )
        self.helper.layout.fields += [
            'notes',
            ButtonHolder(
                Submit('submit', 'Check In'),
                HTML(
                    '<a href="{}" class="btn btn-secondary">Cancel</a>'.format(
                        reverse('front_desk'))),
            ),
        ]
Exemplo n.º 3
0
class GlobalSettingsForm(Form):
    new_wenda_money = fields.IntegerField(error_messages={
        "required": "第一项不能为空!",
        "invalid": "第一项格式错误,请填写整数格式!",
    }, )
    old_wenda_money = fields.IntegerField(error_messages={
        "required": "第二项不能为空!",
        "invalid": "第二项格式错误,请填写整数格式!",
    }, )
    xie_wenda_money = fields.IntegerField(error_messages={
        "required": "第三项不能为空!",
        "invalid": "第三项格式错误,请填写整数格式!",
    }, )
    fa_wenda_money = fields.IntegerField(error_messages={
        "required": "第四项不能为空!",
        "invalid": "第四项格式错误,请填写整数格式!",
    }, )

    fugaibaobiao_shengcheng_moshi = fields.BooleanField(
        required=False,
        error_messages={
            "required": "第五项调试模式类型错误!",
            # "invalid": "第五项格式错误",
        },
    )
    bianji_shifou_dianji_add_map = fields.BooleanField(
        required=False,
        error_messages={
            "required": "第六项添加地图类型错误!",
            # "invalid": "第六项格式错误",
        },
    )
Exemplo n.º 4
0
class CheckoutAddressPluginForm(DialogPluginBaseForm):
    ADDRESS_CHOICES = [
        ('shipping', _("Shipping")),
        ('billing', _("Billing")),
    ]

    address_form = fields.ChoiceField(choices=ADDRESS_CHOICES,
                                      widget=widgets.RadioSelect,
                                      label=_("Address Form"),
                                      initial=ADDRESS_CHOICES[0][0])

    allow_multiple = fields.BooleanField(
        label=_("Multiple Addresses"),
        initial=False,
        required=False,
        help_text=_("Allow the customer to add and edit multiple addresses."),
    )

    allow_use_primary = fields.BooleanField(
        label=_("Use primary address"),
        initial=False,
        required=False,
        help_text=
        _("Allow the customer to use the primary address, if this is the secondary form."
          ),
    )

    class Meta:
        entangled_fields = {
            'glossary':
            ['address_form', 'allow_multiple', 'allow_use_primary']
        }
Exemplo n.º 5
0
class CheckOutForm(Form):
    returned_key = fields.BooleanField(label='Returned Room Key',
                                       required=False)
    returned_card = fields.BooleanField(label='Returned Dorm Card',
                                        required=False)
    notes = fields.CharField(
        required=False,
        widget=widgets.Textarea(attrs={'rows': 3}),
    )

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.include_media = False
        self.helper.layout = Layout(
            'returned_key',
            'returned_card',
            'notes',
            ButtonHolder(
                Submit('submit', 'Check Out'),
                HTML(
                    '<a href="{}" class="btn btn-secondary">Cancel</a>'.format(
                        reverse('front_desk'))),
            ),
        )
Exemplo n.º 6
0
class SearchPagesForm(forms.Form):
    # state = fields.ChoiceField(choices=[])
    date1 = fields.ChoiceField(choices=[])
    date2 = fields.ChoiceField(choices=[])
    proxtext = fields.CharField()
    sequence = fields.BooleanField()
    issue_date = fields.BooleanField()

    def __init__(self, *args, **kwargs):
        super(SearchPagesForm, self).__init__(*args, **kwargs)

        # self.titles, self.states = _titles_states()

        # added by MK
        self.titles = _titles_options()
        self.cities = _cities_options()
        self.counties = _counties_options()
        self.types = _types_options()
        self.regions = _regions_options()

        fulltextStartYear, fulltextEndYear = _fulltext_range()

        self.years = [(year, year)
                      for year in range(fulltextStartYear, fulltextEndYear + 1)
                      ]
        self.fulltextStartYear = fulltextStartYear
        self.fulltextEndYear = fulltextEndYear

        # self.fields["state"].choices = self.states
        self.fields["date1"].choices = self.years
        self.fields["date1"].initial = fulltextStartYear
        self.fields["date2"].choices = self.years
        self.fields["date2"].initial = fulltextEndYear
        self.fields["sequence"].widget.attrs['value'] = 1
Exemplo n.º 7
0
class ExampleRegistrationForm(forms.Form):
    debcamp = fields.BooleanField(label=_('Plan to attend DebCamp'),
                                  required=False)
    debconf = fields.BooleanField(label=_('Plan to attend DebConf'),
                                  required=False)
    require_sponsorship = fields.BooleanField(
        label=_('Will require sponsorship'), required=False)

    def __init__(self, *args, **kwargs):
        super(ExampleRegistrationForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.layout = Layout(
            Fieldset(_('Pre-Registration'), 'debcamp', 'debconf',
                     'require_sponsorship'))
        self.helper.add_input(Submit('submit', _('Save')))

    @classmethod
    def is_registered(cls, kv_data):
        """
        Given a user's kv_data query, determine if they have registered to
        attend.
        """
        for item in kv_data.filter(key__in=('debcamp', 'debconf')):
            if item.value is True:
                return True
        return False

    def initial_values(self, user):
        """Set default values, based on the user"""
        return {'debconf': True}
Exemplo n.º 8
0
class DetailForm(Form):
    """
    Форма детализация для vbFilm
    """

    extend = fields.BooleanField(initial=False,
                                 required=False,
                                 help_text=u'Расширенный')
    persons = fields.BooleanField(initial=False,
                                  required=False,
                                  help_text=u'Персоны')
Exemplo n.º 9
0
class SearchPagesFormBase(forms.Form):
    state = fields.ChoiceField(choices=[])
    date1 = fields.ChoiceField(choices=[])
    date2 = fields.ChoiceField(choices=[])
    proxtext = fields.CharField()
    issue_date = fields.BooleanField()

    def __init__(self, *args, **kwargs):
        super(SearchPagesFormBase, self).__init__(*args, **kwargs)

        self.titles, self.states = _titles_states()

        fulltextStartYear, fulltextEndYear = _fulltext_range()

        self.years = [(year, year)
                      for year in range(fulltextStartYear, fulltextEndYear + 1)
                      ]
        self.fulltextStartYear = fulltextStartYear
        self.fulltextEndYear = fulltextEndYear

        self.fields["state"].choices = self.states
        self.fields["date1"].choices = self.years
        self.fields["date1"].initial = fulltextStartYear
        self.fields["date2"].choices = self.years
        self.fields["date2"].initial = fulltextEndYear
Exemplo n.º 10
0
class UserForm(ModelForm):
    # Fields related to user rights.
    is_admin = fields.BooleanField(label='System Administrator',
                                   required=False)

    def __init__(self, *args, **kwargs):
        super(UserForm, self).__init__(*args, **kwargs)
        # If there's an existing user, set the initial state of the user rights.
        if self.instance and self.instance.id:
            user_rights = UserRights.get(self.instance)
            self.initial.update({
                'is_admin': user_rights.is_admin,
            })

    def save(self, *args, **kwargs):
        user = self.save_user(*args, **kwargs)
        self.save_user_rights(user)
        return user

    def save_user(self, *args, **kwargs):
        return super(UserForm, self).save(*args, **kwargs)

    def save_user_rights(self, user):
        user_rights = UserRights.objects.get_or_create(user=user)[0]
        user_rights.is_admin = self.is_checkbox_set('is_admin')
        user_rights.save()

    def is_checkbox_set(self, name):
        if name not in self.cleaned_data:
            return False
        return True if self.cleaned_data[name] else False
Exemplo n.º 11
0
 def __init__(self, queryset, *args, **kwargs):
     kwargs.setdefault('require_all_fields', False)
     subfields = (
         fields.BooleanField(required=False),
         ColortagIEField(queryset, required=False)
     )
     super().__init__(subfields, *args, **kwargs)
Exemplo n.º 12
0
class BillingAddressForm(AddressForm):
    scope_prefix = 'data.billing_address'
    priority_field = 'priority_billing'

    use_shipping_address = fields.BooleanField(required=False, initial=True,
        widget=CheckboxInput(_("Use shipping address for billing")))

    def as_div(self):
        # Intentionally rendered without field `use_shipping_address`
        self.fields.pop('use_shipping_address', None)
        return super(BillingAddressForm, self).as_div()

    @classmethod
    def form_factory(cls, request, data, cart):
        """
        Overridden method to reuse data from ShippingAddressForm in case the checkbox for
        `use_shipping_address` is active.
        """
        if data and data.pop('use_shipping_address', False):
            cls.set_address(cart, cart.shipping_address)
        else:
            return super(BillingAddressForm, cls).form_factory(request, data, cart)

    @classmethod
    def set_address(cls, cart, instance):
        # TODO: super(BillingAddressForm, cls).set_address(cart, instance)
        cart.billing_address = instance
Exemplo n.º 13
0
class LoginForm(BaseForm, forms.Form):
    username = fields.CharField(error_messages={
        'required': '用户名不能为空',
    })
    pwd = fields.CharField(error_messages={
        'required': '密码不能为空',
    })
    checkCode = fields.CharField(error_messages={'required': '验证码不能为空.'})
    rbm = fields.BooleanField(required=False, )

    def clean_checkCode(self):
        value_data = self.cleaned_data
        if self.request.session['CheckCode'].upper() != value_data.get(
                "checkCode").upper():
            self.add_error("checkCode", "验证码错误")
            raise ValidationError(message='验证码错误', code='invalid')
        return value_data

    def clean(self):
        userName = self.cleaned_data.get("username")
        pwd = self.cleaned_data.get("pwd")
        # 可以使用Q查询 Q(username=userName) & Q(pwd=pwd)
        userInfo = UserInfo.objects.filter(username=userName, pwd=pwd)
        if userInfo:
            # 记录session,可用于修改headTar中的状态。
            self.request.session['user_info'] = userInfo.values(
                'uid', 'username', 'email', 'bloginfo__bid',
                'bloginfo__surfix').first()
            # 如果勾选了30免登陆,设置session的过期时间
            if self.cleaned_data.get('rbm'):
                self.request.session.set_expiry(60 * 60 * 24 * 7)
        else:
            self.add_error("username", "用户名不存在或密码错误")
            raise ValidationError(message='用户名不存在或密码错误', code='invalid')
        return self.cleaned_data
Exemplo n.º 14
0
class ProductForm(EntangledModelForm):
    name = fields.CharField()
    tenant = ModelChoiceField(queryset=get_user_model().objects.all(),
                              empty_label=None)
    active = fields.BooleanField()
    color = fields.CharField()
    size = fields.ChoiceField(choices=[
        ('s', "Small"),
        ('m', "Medium"),
        ('l', "Large"),
    ])
    categories = ModelMultipleChoiceField(queryset=Category.objects.all(),
                                          required=False)

    class Meta:
        model = Product
        untangled_fields = ['name']
        entangled_fields = {
            'properties': ['tenant', 'active', 'color', 'size', 'categories']
        }
        retangled_fields = {
            'color': 'extra.variants.color',
            'size': 'extra.variants.size',
            'tenant': 'ownership.tenant',
            'categories': 'extra.categories'
        }
Exemplo n.º 15
0
    def build_boolean_field(self, attr, **kwargs):
        """
        Build field for sqlalchemy boolean type.
        """
        if attr.column.nullable:
            return djangofields.NullBooleanField(**kwargs)

        return djangofields.BooleanField(**kwargs)
Exemplo n.º 16
0
 def __init__(self, choices, **kwargs):
     self.choices = choices
     fields = [django_fields.BooleanField(required=False) for c in choices]
     widget = widgets.DependentCheckboxes(choices)
     super(DependentBooleanField, self).__init__(widget=widget,
                                                 fields=fields,
                                                 require_all_fields=False,
                                                 **kwargs)
Exemplo n.º 17
0
    def get_implementation(self, widget_attrs={}):
        widget_attrs[u"data-id"] = self.id
        widget = widgets.CheckboxInput(attrs=widget_attrs)

        return fields.BooleanField(label=self.display_name,
                                   required=self.required,
                                   widget=widget,
                                   initial=self.default_checked)
Exemplo n.º 18
0
class DeleteParticipationForm(Form):
    yes_please = fields.BooleanField(label=_('Yes I am sure'), required=True)

    def __init__(self, *args, **kwargs) -> None:
        super().__init__(*args, **kwargs)
        self.helper = helper = MyFormHelper(self)
        helper.layout.append(
            Submit('submit',
                   _('Delete')))  # , css_class='btn-participation-continue'))
Exemplo n.º 19
0
class BillingAddressForm(AddressForm):
    scope_prefix = 'data.billing_address'
    legend = _("Billing Address")
    default_priority = 'nop'
    plugin_fields = AddressForm.plugin_fields + ('use_shipping_address', )

    use_shipping_address = fields.BooleanField(
        required=False,
        initial=True,
        widget=CheckboxInput(
            _("Use shipping address for billing"),
            attrs={'ng-change': 'switchEntity(billing_address_form)'}))

    class Meta(AddressForm.Meta):
        model = BillingAddressModel

    def __init__(self, initial=None, instance=None, *args, **kwargs):
        if instance:
            initial = initial or {}
            initial['use_shipping_address'] = False
        super(BillingAddressForm, self).__init__(initial=initial,
                                                 instance=instance,
                                                 *args,
                                                 **kwargs)

    @classmethod
    def get_address(cls, cart):
        return cart.billing_address

    def set_address(self, cart, instance):
        cart.billing_address = instance if not self[
            'use_shipping_address'].value() else None

    def full_clean(self):
        super(BillingAddressForm, self).full_clean()
        if self.is_bound and self['use_shipping_address'].value():
            # reset errors, since then the form is always regarded as valid
            self._errors = ErrorDict()

    def is_valid(self):
        return self['use_shipping_address'].value() or super(
            BillingAddressForm, self).is_valid()

    def save(self, commit=True):
        if not self['use_shipping_address'].value():
            return super(BillingAddressForm, self).save(commit)

    def as_div(self):
        # Intentionally rendered without field `use_shipping_address`
        self.fields.pop('use_shipping_address', None)
        return super(BillingAddressForm, self).as_div()

    def as_text(self):
        bound_field = self['use_shipping_address']
        if bound_field.value():
            return bound_field.field.widget.choice_label
        return super(BillingAddressForm, self).as_text()
Exemplo n.º 20
0
class ProductForm(EntangledModelForm):
    name = fields.CharField()
    active = fields.BooleanField()
    description = fields.CharField(required=False, widget=widgets.Textarea)

    class Meta:
        model = Product
        untangled_fields = ['name']
        entangled_fields = {'properties': ['active', 'description']}
Exemplo n.º 21
0
class SharableCascadeForm(forms.ModelForm):
    save_shared_glossary = fields.BooleanField(required=False, label=_("Remember these settings as:"))
    save_as_identifier = fields.CharField(required=False, label='')

    def clean_save_as_identifier(self):
        identifier = self.cleaned_data['save_as_identifier']
        if SharedGlossary.objects.filter(identifier=identifier).exclude(pk=self.instance.pk).exists():
            raise ValidationError(_("The identifier '{0}' has already been used, please choose another name.").format(identifier))
        return identifier
class CreateUserForm(UserCreationForm):
    broker = fields.BooleanField(required=False)

    class Meta:
        model = User
        fields = (
            "username",
            "email",
        )
Exemplo n.º 23
0
class DomainTransferTakeoverForm(forms.Form):

    domain_name = fields.CharField()
    transfer_code = fields.CharField()
    rewrite_contacts = fields.BooleanField(
        initial=True,
        label='Use my default contacts',
        help_text=
        'This will automatically rewrite current domain contacts with my default info'
    )
Exemplo n.º 24
0
class ShopAddToCartPluginForm(EntangledModelFormMixin):
    use_modal_dialog = fields.BooleanField(
        label=_("Use Modal Dialog"),
        initial=True,
        required=False,
        help_text=_("After adding product to cart, render a modal dialog"),
    )

    class Meta:
        entangled_fields = {'glossary': ['use_modal_dialog']}
Exemplo n.º 25
0
class MovePageForm(forms.Form):
    report_page = ModelChoiceField(queryset=ReportPage.objects.all(), required=True)
    move_up = fields.BooleanField(required=False)

    def __init__(self, *args, report=None, **kwargs):
        self.report = report
        super(MovePageForm, self).__init__(*args, **kwargs)

    def clean_report_page(self):
        report_page = self.cleaned_data['report_page']
        if report_page not in self.report.get_pages():
            raise ValidationError("Page is not part of this report", code='report_invalid')
        return report_page

    def clean(self):
        if 'report_page' not in self.cleaned_data:
            # There is no report page, so likely an error occured in clean_report_page
            return
        cur_link = ReportPageLink.objects.get(page=self.cleaned_data['report_page'])

        if self.cleaned_data['move_up']:
            if ReportPageLink.objects.filter(report=self.report, page_number__lt=cur_link.page_number).count() == 0:
                raise ValidationError(
                    "This page was already the first page", code='is_first_page'
                )
        else:
            if ReportPageLink.objects.filter(report=self.report, page_number__gt=cur_link.page_number).count() == 0:
                raise ValidationError(
                    "This page was already the last page", code='is_last_page'
                )

        return self.cleaned_data

    def save(self):
        """ Save the move by switching the page numbers of the two pages """
        this_page_link = self.cleaned_data['report_page'].reportpagelink
        current_page_number = this_page_link.page_number

        switch_with_link = ReportPageLink.objects. \
            filter(report=self.report). \
            order_by('page_number')

        if self.cleaned_data['move_up']:
            switch_with_link = switch_with_link.\
                filter(page_number__lt=current_page_number).\
                last()
        else:
            switch_with_link = switch_with_link. \
                filter(page_number__gt=current_page_number). \
                first()

        this_page_link.page_number = switch_with_link.page_number
        this_page_link.save()
        switch_with_link.page_number = current_page_number
        switch_with_link.save()
Exemplo n.º 26
0
class LoginForm(Form):
    email = fields.CharField(widget=widgets.EmailInput)
    password = fields.CharField(widget=widgets.PasswordInput)
    remember = fields.BooleanField(required=False)

    # 自定义字段验证信息,以 ["clean_%s" % "字段名"] 为方法名
    def clean_email(self):
        if not User.objects.filter(email=self.cleaned_data['email']):
            raise ValidationError('邮箱未注册', code=500)
        else:
            return self.cleaned_data['email']
Exemplo n.º 27
0
class ContactForm(forms.Form):
    email = fields.EmailField(widget=widgets.EmailInput(attrs=ATTRS))
    conditions = fields.BooleanField(widget=widgets.CheckboxInput(
        attrs=ATTRS.update({'class': ''})))
    message = fields.CharField(widget=widgets.Textarea(attrs=ATTRS))

    def clean_message(self):
        message = self.cleaned_data['message']
        if len(message) > 300:
            raise forms.ValidationError("Le messsage est trop long")
        super().clean()
Exemplo n.º 28
0
class MethodPluginForm(DialogPluginBaseForm):
    show_additional_charge = fields.BooleanField(
        label=_("Show additional charge"),
        initial=True,
        required=False,
        help_text=
        _("Add an extra line showing the additional charge depending on the chosen payment/shipping method."
          ),
    )

    class Meta:
        entangled_fields = {'glossary': ['show_additional_charge']}
Exemplo n.º 29
0
class LoginForm(Form):
    name = fields.CharField(
        required=True,
        error_messages={'required': '用户名不能为空'},
        widget=widgets.TextInput(attrs={'class': 'form-control', 'placeholder': '用户名', 'id': 'name'})
    )
    password = fields.CharField(
        required=True,
        error_messages={'required': '密码不能为空'},
        widget=widgets.PasswordInput(attrs={'class': 'form-control', 'placeholder': '密码', 'id': 'password'})
    )
    rmb = fields.BooleanField(required=False, widget=widgets.CheckboxInput(attrs={'value': 1}))
Exemplo n.º 30
0
class InquiryUserExcludeFilterForm(FilterInquiriesMixin, FilterFormBase):
    """ A checkbox that marks whether Inquiries made by Users should be ignored """
    exclude_users = fields.BooleanField(initial=False, required=False, label="Gestart door users")
    exclude_uncompleted = fields.BooleanField(initial=False, required=False)
    prefix = 'filter_users'
    description = "Exclude for..."

    def has_filter_data(self):
        """ Returns whether this filter has data it filters on """
        if not self.is_valid():
            # If a form is not valid, it should by definition not be filtered
            return False

        return any(self.cleaned_data.values())

    def filter(self, data):
        data = super(InquiryUserExcludeFilterForm, self).filter(data)
        if self.cleaned_data["exclude_users"]:
            data = data.filter(inquirer__user=None)
        if self.cleaned_data["exclude_uncompleted"]:
            data = data.filter(is_complete=True)
        return data