Example #1
0
 def add_fields(self, form, index):
     super(BaseDynamicInlineFormSet, self).add_fields(form, index)
     if self.can_delete:
         form_id = self.management_form.auto_id % self.management_form.prefix
         js_delete = "javascript:{BaseDynamicFormSet.markAsDeleted('%s-%s-', '%s');}"
         widget = widgets.CheckboxInput(
             attrs={
                 'onchange':
                 mark_safe(js_delete %
                           (form_id, index, formsets.DELETION_FIELD_NAME))
             })
         form.fields[formsets.DELETION_FIELD_NAME].widget = widget
Example #2
0
    def __init__(self, result, *args, **kwargs):
        self.redirect_url = kwargs.pop("redirect_url", "")
        self.update_id = kwargs.pop("update_id", None)

        # Create the form instance, with initial data if it was given
        if result:
            self.result = result
            data = self._flatten_dictionary(result.params)

            super(BraintreeForm, self).__init__(data, *args, **kwargs)

            # Are there any errors we should display?
            errors = self._flatten_errors(result.errors.errors.data)
            self.errors.update(errors)

        else:
            super(BraintreeForm, self).__init__(*args, **kwargs)

        # Dynamically setup all the required form fields
        # This is required because of the strange naming scheme that uses
        # characters not supported in Python variable names.
        labels = self._flatten_dictionary(self.tr_labels)
        helptext = self._flatten_dictionary(self.tr_help)
        for key in self._flatten_dictionary(self.tr_fields).keys():
            if key in labels:
                label = labels[key]
            else:
                label = key.split("[")[-1].strip("]").replace("_", " ").title()
            
            #override for default field
            if isinstance(self._flatten_dictionary(self.tr_fields)[key], forms.Field): 
                self.fields[key] = self._flatten_dictionary(self.tr_fields)[key]
                self.fields[key].label = label
                continue
            
            if key in self.tr_boolean_fields:
                # A checkbox MUST set value="true" for Braintree to pick
                # it up properly, refer to Braintree ticket #26438
                field = forms.BooleanField(label=label, required=False, widget=widgets.CheckboxInput(attrs={"checked": True, "value": "true", "class": "checkbox"}))
            elif key.endswith("[expiration_month]"):
                # Month selection should be a simple dropdown
                field = forms.ChoiceField(choices=[(x,x) for x in range(1, 13)], required=False, label=label)
            elif key.endswith("[expiration_year]"):
                # Year selection should be a simple dropdown
                year = datetime.date.today().year
                field = forms.ChoiceField(choices=[(x,x) for x in range(year, year + 16)], required=False, label=label)
            else:
                field = forms.CharField(label=label, required=False)

            if key in helptext:
                field.help_text = helptext[key]
                
            self.fields[key] = field
Example #3
0
 class Meta:
     model = Lunchbox
     fields = '__all__'
     widgets = {
         'name': widgets.TextInput(attrs={'class': 'lb-name', 'placeholder': _('Name of lunchbox')}),
         'desc': widgets.Textarea(attrs={'class': 'lb-name', 'placeholder': _('DESCRIPTION: Describe your lunchbox right now!')}),
         'available_from': widgets.TextInput(attrs={'class': 'datepicker'}),
         'available_till': widgets.TextInput(attrs={'class': 'datepicker'}),
         'price': widgets.TextInput(attrs={'class': 'd4','placeholder': 'XX.XX'}),
         'rate': widgets.TextInput(attrs={'class': 'd4', 'placeholder': 'XX.XX'}),
         'total_calories': widgets.TextInput(attrs={'class': 'd4', 'placeholder': 'XXX'}),
         'protein': widgets.TextInput(attrs={'class': 'd4', 'placeholder': 'XX'}),
         'carbohydrates': widgets.TextInput(attrs={'class': 'd4', 'placeholder': 'XX'}),
         'fat': widgets.TextInput(attrs={'class': 'd4', 'placeholder': 'XX'}),
         'sugar': widgets.TextInput(attrs={'class': 'd4', 'placeholder': 'XX'}),
         'sodium': widgets.TextInput(attrs={'class': 'd4', 'placeholder': 'XX'}),
         'min_order': widgets.TextInput(attrs={'class': 'd2','placeholder': 'XX'}),
         'photoshoot_requested': widgets.CheckboxInput(),
         'publishing_requested': widgets.CheckboxInput(),
         'published': widgets.CheckboxInput(),
     }
Example #4
0
 def value_from_datadict(self, data, files, name):
     """
     Modify value_from_datadict, so that delete takes precedence over
     upload.
     """
     file_value = super(widgets.ClearableFileInput, self)\
         .value_from_datadict(data, files, name)
     checkbox_value = widgets.CheckboxInput()\
         .value_from_datadict(data, files, self.clear_checkbox_name(name))
     if not self.is_required and checkbox_value:
         return False
     return file_value
Example #5
0
 def __init__(self, sub_widget=widgets.TextInput, attrs=None, sub_label=''):
     super().__init__(
         widgets=(
             widgets.CheckboxInput(
                 attrs={
                     'onchange': 'creme.forms.optionalWidgetHandler(this)'
                 }),
             sub_widget,
         ),
         attrs=attrs,
     )
     self.sub_label = sub_label
Example #6
0
 class Meta:
     model = Product
     exclude = ['id', 'developer', 'manufacturer']
     widgets = {'name': widgets.TextInput(attrs={'class': 'form-control'}),
                'type': widgets.Select(attrs={'class': 'form-control'}),
                'description': widgets.TextInput(attrs={'class': 'form-control'}),
                'developer': widgets.TextInput(attrs={'class': 'form-control'}),
                'manufacturer': widgets.Select(attrs={'class': 'form-control'}),
                'release_year': widgets.NumberInput(attrs={'class': 'form-control'}),
                'price': widgets.NumberInput(attrs={'class': 'form-control'}),
                'on_sale': widgets.CheckboxInput(attrs={'class': 'checkbox'})
                }
Example #7
0
class BootstrapAccordionPlugin(TransparentMixin, BootstrapPluginBase):
    name = _("Accordion")
    form = AccordionForm
    default_css_class = 'panel-group'
    require_parent = True
    parent_classes = ('BootstrapColumnPlugin', )
    allow_children = True
    child_classes = None
    render_template = 'cascade/bootstrap3/{}/accordion.html'
    fields = (
        'num_children',
        'glossary',
    )
    glossary_fields = (
        PartialFormField('close_others',
                         widgets.CheckboxInput(),
                         label=_("Close others"),
                         initial=True,
                         help_text=_("Open only one panel at a time.")),
        PartialFormField('first_is_open',
                         widgets.CheckboxInput(),
                         label=_("First panel open"),
                         initial=True,
                         help_text=_("Start with the first panel open.")),
    )

    @classmethod
    def get_identifier(cls, obj):
        identifier = super(BootstrapAccordionPlugin, cls).get_identifier(obj)
        num_cols = obj.get_children().count()
        content = ungettext_lazy('with {0} panel', 'with {0} panels',
                                 num_cols).format(num_cols)
        return format_html('{0}{1}', identifier, content)

    def save_model(self, request, obj, form, change):
        wanted_children = int(form.cleaned_data.get('num_children'))
        super(BootstrapAccordionPlugin,
              self).save_model(request, obj, form, change)
        self.extend_children(obj, wanted_children,
                             BootstrapAccordionPanelPlugin)
Example #8
0
class LoginForm(Form):
    """登录验证FORM"""
    username = fields.CharField(
        label="用户名:",
        widget=widgets.TextInput(attrs={
            "id": "username",
            "class": "form-control",
            "placeholder": "请输入用户名"
        }),
        error_messages={"required": "用户名不能为空!"})

    pwd = fields.CharField(
        label="密码:",
        widget=widgets.PasswordInput(attrs={
            "id": "pwd",
            "class": "form-control",
            "placeholder": "请输入密码"
        }),
        error_messages={"required": "密码不能为空!"})

    check_code = fields.CharField(
        label="验证码:",
        widget=widgets.TextInput(attrs={
            "id": "check_code",
            "class": "form-control",
            "placeholder": "请输入验证码"
        }),
        error_messages={"required": "验证码不能为空!"})

    remember = fields.CharField(required=False, widget=widgets.CheckboxInput())

    def clean_username(self):
        """检查用户输入的用户名"""
        username = self.cleaned_data.get("username")
        obj = models.User.objects.filter(username=username).first()
        if not obj:
            raise ValidationError("用户不存在!", "invalid")
        return username

    def clean(self):
        """整体验证"""
        username = self.cleaned_data.get("username")  # 获取用户输入的用户名
        pwd = self.cleaned_data.get("pwd")  # 获取用户输入的密码
        if username:
            m_obj = hashlib.md5()  # 获取一个加密对象
            m_obj.update(pwd.encode())  # 加密密码
            password = m_obj.hexdigest()  # 获取加密的密码
            obj = models.User.objects.filter(
                username=username).first()  # 获取用户对象
            if password != obj.pwd:  # 检测密码输入是否正确
                self.add_error("pwd", "密码错误!")
        return self.cleaned_data
Example #9
0
class Bootstrap4ContainerPlugin(BootstrapPluginBase):
    name = _("Container")
    parent_classes = None
    require_parent = False
    form = BootstrapContainerForm
    glossary_variables = ['container_max_widths', 'media_queries']
    glossary_field_order = ('breakpoints', 'fluid')

    breakpoints = GlossaryField(
        ContainerBreakpointsWidget(choices=get_widget_choices()),
        label=_('Available Breakpoints'),
        initial=list(BS4_BREAKPOINTS)[::-1],
        help_text=_("Supported display widths for Bootstrap's grid system."))

    fluid = GlossaryField(
        widgets.CheckboxInput(),
        label=_('Fluid Container'),
        initial=False,
        help_text=_(
            "Changing your outermost '.container' to '.container-fluid'."))

    @classmethod
    def get_identifier(cls, obj):
        identifier = super(Bootstrap4ContainerPlugin, cls).get_identifier(obj)
        breakpoints = obj.glossary.get('breakpoints')
        content = obj.glossary.get('fluid') and '(fluid) ' or ''
        if breakpoints:
            devices = ', '.join(
                [force_text(BS4_BREAKPOINTS[bp][2]) for bp in breakpoints])
            content = _("{0}for {1}").format(content, devices)
        return format_html('{0}{1}', identifier, content)

    @classmethod
    def get_css_classes(cls, obj):
        css_classes = cls.super(Bootstrap4ContainerPlugin,
                                cls).get_css_classes(obj)
        if obj.glossary.get('fluid'):
            css_classes.append('container-fluid')
        else:
            css_classes.append('container')
        return css_classes

    def save_model(self, request, obj, form, change):
        super(Bootstrap4ContainerPlugin,
              self).save_model(request, obj, form, change)
        obj.sanitize_children()

    @classmethod
    def sanitize_model(cls, obj):
        sanitized = super(Bootstrap4ContainerPlugin, cls).sanitize_model(obj)
        compute_media_queries(obj)
        return sanitized
Example #10
0
class BootstrapContainerPlugin(BootstrapPluginBase):
    name = _("Container")
    parent_classes = None
    require_parent = False
    form = BootstrapContainerForm
    glossary_variables = ['container_max_widths', 'media_queries']
    glossary_field_order = ['breakpoints', 'fluid']
    model_mixins = (ContainerGridMixin, )

    breakpoints = GlossaryField(
        ContainerBreakpointsWidget(choices=get_widget_choices()),
        label=_('Available Breakpoints'),
        initial=[
            bp.name for bp in app_settings.CMSPLUGIN_CASCADE['bootstrap4']
            ['fluid_bounds'].keys()
        ],
        help_text=_("Supported display widths for Bootstrap's grid system."),
    )

    fluid = GlossaryField(
        widgets.CheckboxInput(),
        label=_('Fluid Container'),
        initial=False,
        help_text=_(
            "Changing your outermost '.container' to '.container-fluid'."))

    @classmethod
    def get_identifier(cls, obj):
        identifier = super(BootstrapContainerPlugin, cls).get_identifier(obj)
        breakpoints = obj.glossary.get('breakpoints')
        content = obj.glossary.get('fluid') and '(fluid) ' or ''
        if breakpoints:
            breakpoints = app_settings.CMSPLUGIN_CASCADE['bootstrap4'][
                'fluid_bounds']
            devices = ', '.join([force_text(bp.label) for bp in breakpoints])
            content = _("{0}for {1}").format(content, devices)
        return format_html('{0}{1}', identifier, content)

    @classmethod
    def get_css_classes(cls, obj):
        css_classes = cls.super(BootstrapContainerPlugin,
                                cls).get_css_classes(obj)
        if obj.glossary.get('fluid'):
            css_classes.append('container-fluid')
        else:
            css_classes.append('container')
        return css_classes

    def save_model(self, request, obj, form, change):
        super(BootstrapContainerPlugin,
              self).save_model(request, obj, form, change)
        obj.sanitize_children()
Example #11
0
class LoginForm(forms.Form):
    username = fields.CharField(
        max_length=16,
        min_length=1,
        required=True,
        strip=True,
        widget=widgets.TextInput(attrs={"placeholder": "用户名"}))
    pwd = fields.CharField(
        required=True,
        max_length=32,
        min_length=6,
        strip=True,
        widget=widgets.PasswordInput(attrs={"placeholder": "密码"}))
    confirm_code = fields.CharField(
        required=True,
        max_length=4,
        min_length=4,
        strip=True,
        widget=widgets.TextInput(attrs={"placeholder": "验证码", "style": "width: 50%; float: left;"}))
    remenber_me = fields.CharField(
        required=False,
        widget=widgets.CheckboxInput(attrs={"id": "brand1"})
    )

    def __init__(self, right_code="", *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.right_code = right_code

    def clean(self):
        try:
            username = self.cleaned_data["username"]
            pwd = self.cleaned_data["pwd"]
            if not models.User.objects.filter(username=username, pwd=pwd).exists():
                raise ValidationError("密码输入有误")
            return self.cleaned_data
        except KeyError:
            return self.cleaned_data

    def clean_username(self):
        # 验证用户名是否输入正确
        username = self.cleaned_data["username"]
        if not models.User.objects.filter(username=username).exists():
            # 如果不存在,抛异常
            raise ValidationError("用户名有误")
        return username

    def clean_confirm_code(self):
        # 判断验证码是否输入正确
        code = self.cleaned_data['confirm_code']
        if not self.right_code == code:
            raise ValidationError("验证码有误")
        return code
Example #12
0
class XFormSerializer(serializers.HyperlinkedModelSerializer):
    formid = serializers.Field(source='id')
    metadata = serializers.SerializerMethodField('get_xform_metadata')
    owner = serializers.HyperlinkedRelatedField(view_name='user-detail',
                                                source='user',
                                                lookup_field='username')
    created_by = serializers.HyperlinkedRelatedField(view_name='user-detail',
                                                     source='created_by',
                                                     lookup_field='username')
    public = BooleanField(source='shared', widget=widgets.CheckboxInput())
    public_data = BooleanField(source='shared_data')
    require_auth = BooleanField(source='require_auth',
                                widget=widgets.CheckboxInput())
    submission_count_for_today = serializers.Field(
        source='submission_count_for_today')
    tags = TagListSerializer(read_only=True)
    title = serializers.CharField(max_length=255, source='title')
    url = serializers.HyperlinkedIdentityField(view_name='xform-detail',
                                               lookup_field='pk')
    users = serializers.SerializerMethodField('get_xform_permissions')

    class Meta:
        model = XForm
        read_only_fields = ('json', 'xml', 'date_created', 'date_modified',
                            'encrypted', 'bamboo_dataset',
                            'last_submission_time')
        exclude = ('id', 'json', 'xml', 'xls', 'user', 'has_start_time',
                   'shared', 'shared_data')

    def get_xform_permissions(self, obj):
        return get_object_users_with_permissions(obj)

    def get_xform_metadata(self, obj):
        if obj:
            return MetaDataSerializer(obj.metadata_set.all(),
                                      many=True,
                                      context=self.context).data

        return []
Example #13
0
    def value_from_datadict(self, data, files, name):
        upload = super().value_from_datadict(data, files, name)
        if not self.is_required and widgets.CheckboxInput(
        ).value_from_datadict(data, files, self.clear_checkbox_name(name)):

            if upload:
                # If the user contradicts themselves (uploads a new file AND
                # checks the "clear" checkbox), we return a unique marker
                # object that FileField will turn into a ValidationError.
                return FILE_INPUT_CONTRADICTION
            # False signals to clear any existing value, as opposed to just None
            return False
        return upload
Example #14
0
File: forms.py Project: wjcyxx/ISMS
    class Meta:
        model = envruleswitch
        fields = '__all__'

        widgets = {
            'FID': Fwidgets.Input(attrs={'type': 'hidden'}),
            'FPID': Fwidgets.Input(attrs={'type': 'hidden'}),
            'FPort': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}),
            'FStatus': Fwidgets.CheckboxInput(attrs={'lay-skin': 'switch', 'lay-text': '通|断'}),
            'FCommand': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}),
            'FDriverdevice': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}),
            'FDesc': Fwidgets.Textarea(attrs={'class': 'layui-textarea', 'autocomplete': 'off', 'rows': '1'})

        }
Example #15
0
    def render(self, name, value, attrs=None, renderer=None):
        html_id = attrs and attrs.get('id', name) or name
        has_image_set = self.is_initial(value)
        is_required = self.is_required

        file_placeholder = ugettext('Select a picture from your local folder.')
        file_input = super().render(name, None, {
            'id': html_id,
            'class': 'form-control form-control-file'
        })

        if has_image_set:
            file_name = basename(value.name)
            file_url = conditional_escape(value.url)
        else:
            file_name = ""
            file_url = ""

        text_input = widgets.TextInput().render(
            '__noname__', file_name, {
                'class': 'form-control form-control-file-dummy',
                'placeholder': file_placeholder,
                'tabindex': '-1',
                'id': 'text-{}'.format(html_id)
            })

        checkbox_id = self.clear_checkbox_id(name)
        checkbox_name = self.clear_checkbox_name(name)
        checkbox_input = widgets.CheckboxInput().render(
            checkbox_name, False, {
                'id': checkbox_id,
                'class': 'clear-image',
                'data-upload-clear': html_id,
            })

        context = {
            'id': html_id,
            'has_image_set': has_image_set,
            'is_required': is_required,
            'file_url': file_url,
            'file_input': file_input,
            'file_id': html_id + '-file',
            'text_input': text_input,
            'checkbox_input': checkbox_input,
            'checkbox_id': checkbox_id
        }

        return loader.render_to_string('a4images/image_upload_widget.html',
                                       context)
Example #16
0
class BootstrapAccordionPlugin(TransparentWrapper, BootstrapPluginBase):
    name = _("Accordion")
    form = AccordionForm
    default_css_class = 'accordion'
    require_parent = True
    parent_classes = ['BootstrapColumnPlugin']
    direct_child_classes = ['BootstrapAccordionGroupPlugin']
    allow_children = True
    render_template = 'cascade/bootstrap4/{}/accordion.html'
    fields = ['num_children', 'glossary']

    close_others = GlossaryField(widgets.CheckboxInput(),
                                 label=_("Close others"),
                                 initial=True,
                                 help_text=_("Open only one card at a time."))

    first_is_open = GlossaryField(
        widgets.CheckboxInput(),
        label=_("First open"),
        initial=True,
        help_text=_("Start with the first card open."))

    @classmethod
    def get_identifier(cls, obj):
        identifier = super(BootstrapAccordionPlugin, cls).get_identifier(obj)
        num_cards = obj.get_num_children()
        content = ungettext_lazy('with {0} card', 'with {0} cards',
                                 num_cards).format(num_cards)
        return format_html('{0}{1}', identifier, content)

    def save_model(self, request, obj, form, change):
        wanted_children = int(form.cleaned_data.get('num_children'))
        super(BootstrapAccordionPlugin,
              self).save_model(request, obj, form, change)
        self.extend_children(obj, wanted_children,
                             BootstrapAccordionGroupPlugin)
Example #17
0
File: forms.py Project: wjcyxx/ISMS
    class Meta:
        model = appkey
        fields = '__all__'

        widgets = {
            'FID': Fwidgets.Input(attrs={'type': 'hidden'}),
            'FAppID': Fwidgets.Input(attrs={'class': 'layui-input', 'autocomplete': 'off'}),
            'FAppkey': Fwidgets.Input(attrs={'class': 'layui-input', 'autocomplete': 'off'}),
            'FAppSecret': Fwidgets.Input(attrs={'class': 'layui-input', 'autocomplete': 'off'}),
            'FType': Fwidgets.Select(attrs={'lay-verify': 'required'}),
            'FAppName': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}),
            'FAppCreateTime': Fwidgets.Input(attrs={'class': 'layui-input', 'autocomplete': 'off'}),
            'FDesc': Fwidgets.Textarea(attrs={'class': 'layui-textarea', 'autocomplete': 'off', 'rows': '1'}),
            'FStatus': Fwidgets.CheckboxInput(attrs={'lay-skin': 'switch', 'lay-text': '启用|禁用', 'disabled': 'disabled'})
        }
Example #18
0
File: forms.py Project: wjcyxx/ISMS
    class Meta:
        model = envrule
        fields = '__all__'

        widgets = {
            'FID': Fwidgets.Input(attrs={'type': 'hidden'}),
            'FRule': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}),
            'FNodename': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}),
            'FMonitoritem': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}),
            'FMonitorvalue': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}),
            'FMonitorcondition': Fwidgets.Select(attrs={'lay-verify': 'required'}),
            'FStatus': Fwidgets.CheckboxInput(attrs={'lay-skin': 'switch', 'lay-text': '启用|禁用', 'disabled': 'disabled'}),
            'FDesc': Fwidgets.Textarea(attrs={'class': 'layui-textarea', 'autocomplete': 'off', 'rows': '1'})

        }
Example #19
0
    def render(self, name, value, attrs=None):
        has_file_set = self.is_initial(value)
        is_required = self.is_required

        file_placeholder = ugettext('Select a file from your local folder.')
        file_input = super().render(name, None, {
            'id': name,
            'class': 'form-control form-control-file'
        })

        if has_file_set:
            file_name = basename(value.name)
            file_url = conditional_escape(value.url)
        else:
            file_name = ""
            file_url = ""

        text_input = widgets.TextInput().render('__noname__', file_name, {
            'class': 'form-control form-control-file-dummy',
            'placeholder': file_placeholder
        })

        checkbox_id = self.clear_checkbox_id(name)
        checkbox_name = self.clear_checkbox_name(name)
        checkbox_input = widgets.CheckboxInput().render(checkbox_name, False, {
            'id': checkbox_id,
            'class': 'clear-image',
            'data-upload-clear': name,
        })

        context = {
            'name': name,
            'has_image_set': has_file_set,
            'is_required': is_required,
            'file_url': file_url,
            'file_input': file_input,
            'file_id': name + '-file',
            'text_input': text_input,
            'checkbox_input': checkbox_input,
            'checkbox_id': checkbox_id
        }

        return mark_safe(
            loader.render_to_string(
                'euth_offlinephases/file_upload_widget.html',
                context
            )
        )
Example #20
0
class ShopProceedButton(BootstrapButtonMixin, ShopButtonPluginBase):
    """
    This button is used to proceed from one checkout step to the next one.
    """
    name = _("Proceed Button")
    parent_classes = [
        'BootstrapColumnPlugin', 'ProcessStepPlugin',
        'ValidateSetOfFormsPlugin'
    ]
    model_mixins = (LinkElementMixin, )
    glossary_field_order = [
        'disable_invalid', 'button_type', 'button_size', 'button_options',
        'quick_float', 'icon_align', 'symbol'
    ]
    form = ProceedButtonForm
    ring_plugin = 'ProceedButtonPlugin'

    disable_invalid = GlossaryField(
        widgets.CheckboxInput(),
        label=_("Disable if invalid"),
        initial='',
        help_text=_("Disable button if any form in this set is invalid"),
    )

    class Media:
        css = {
            'all': [
                'cascade/css/admin/bootstrap4-buttons.css',
                'cascade/css/admin/iconplugin.css'
            ]
        }
        js = ['shop/js/admin/proceedbuttonplugin.js']

    def get_render_template(self, context, instance, placeholder):
        if instance.link == 'RELOAD_PAGE':
            button_template = 'reload-button'
        elif instance.link == 'PURCHASE_NOW':
            button_template = 'purchase-button'
        elif instance.link == 'DO_NOTHING':
            button_template = 'noop-button'
        else:
            button_template = 'proceed-button'
        template_names = [
            '{}/checkout/{}.html'.format(app_settings.APP_LABEL,
                                         button_template),
            'shop/checkout/{}.html'.format(button_template),
        ]
        return select_template(template_names)
Example #21
0
class Question(forms.Form):
    title = forms.CharField(
        error_messages={
            'required': '请输入问卷名称',
        },
        widget=widgets.EmailInput(attrs={
            'placeholder': "问卷名称",
            'class': "form-control"
        }),
    )
    cls = forms.CharField(
        error_messages={
            'required': '请输入国家代码',
        },
        widget=widgets.CheckboxInput(attrs={'class': "form-control"}),
    )
Example #22
0
 class Meta:
     model = TravelInquiry
     fields = [
         'name', 'email', 'num_of_non_hunters', 'hunting_type',
         'accommodation', 'time_start', 'time_end', 'inquiry',
         'consent_to_be_contacted', 'phone'
     ]
     exclude = ['date', 'trip', 'user']
     widgets = {
         'time_start':
         widgets.DateInput(attrs={'placeholder': _('dd.mm.yyyy')}),
         'time_end':
         widgets.DateInput(attrs={'placeholder': _('dd.mm.yyyy')}),
         'consent_to_be_contacted':
         widgets.CheckboxInput(attrs={'required': True})
     }
Example #23
0
class BillingAddressFormPlugin(CheckoutAddressPluginBase):
    name = _("Billing Address Form")
    form_class = 'shop.forms.checkout.BillingAddressForm'
    template_leaf_name = 'billing-address-{}.html'

    allow_use_shipping = GlossaryField(
        widgets.CheckboxInput(),
        label=_("Use shipping address"),
        initial=True,
        help_text=_(
            "Allow the customer to use the shipping address for billing."),
    )

    def get_address(self, cart):
        # if billing address is None, we use the shipping address
        return cart.billing_address
Example #24
0
class AskquestionForm(forms.Form):
    title = fields.CharField(
        min_length=2,
        max_length=30,
        error_messages={
            'required': '标题不能为空!',
            'max_length': '标题输入太长了',
            'min_length': '标题输入太短了'
        },
        widget=widgets.Input(attrs={'class': 'form-control'}))
    connet = fields.CharField(widget=widgets.Textarea(
        attrs={'class': 'form-control'}))
    feilei = forms.ModelChoiceField(
        queryset=Huafen.objects.filter(status=False), required=True)
    is_shi = fields.BooleanField(widget=widgets.CheckboxInput(),
                                 required=False)
Example #25
0
    class Meta:
        model = perfil_adoptante

        fields = (
            'circulo_familiar',
            'experiencia_mascotas',
            'hijos',
            'casa_apartemento',
            'casa_propia',
            'lugar_seg_mascota',
            'espacio_mascota',
            'alergia_mascota',
            'antes_mascotas',
            'mas_mascotas',
            'presupuesto_mascotas',
            'mascota_sola',
            'acepta_terminos',
        )
        widgets = {
            'circulo_familiar':
            TextInput(attrs={'class': 'form-control'}),
            'experiencia_mascotas':
            Select(attrs={'class': 'form-control'}),
            'hijos':
            Select(attrs={'class': 'form-control'}),
            'casa_apartemento':
            Select(attrs={'class': 'form-control'}),
            'casa_propia':
            Select(attrs={'class': 'form-control'}),
            'lugar_seg_mascota':
            Select(attrs={'class': 'form-control'}),
            'espacio_mascota':
            Select(attrs={'class': 'form-control'}),
            'alergia_mascota':
            Select(attrs={'class': 'form-control'}),
            'antes_mascotas':
            Select(attrs={'class': 'form-control'}),
            'mas_mascotas':
            Select(attrs={'class': 'form-control'}),
            'presupuesto_mascotas':
            Select(attrs={'class': 'form-control'}),
            'mascota_sola':
            Select(attrs={'class': 'form-control'}),
            'acepta_terminos':
            widgets.CheckboxInput(attrs={'class': 'form-control'}),
        }
Example #26
0
    class Meta:
        model = models.Discount
        fields = ['code', 'value_type', 'value', 'collection', 'on_entire_order',\
         'minimum_purchase', 'minimum_quantity', 'usage_limit', 'start_date', 'end_date']

        widgets = {
            'code': custom_widgets.TextInput(attrs={'placeholder': 'Code'}),
            'value_type': widgets.Select(attrs={'class': 'form-control'}),
            'value': custom_widgets.NumberInput(),
            'collection': widgets.Select(attrs={'class': 'form-control'}),
            'on_entire_order': widgets.CheckboxInput(),
            'minimum_purchase': custom_widgets.NumberInput(),
            'minimum_quantity': custom_widgets.NumberInput(),
            'usage_limit': custom_widgets.NumberInput(),
            'start_date': custom_widgets.DateInput(),
            'end_date': custom_widgets.DateInput(),
        }
Example #27
0
    def __init__(self, request=None, *args, **kwargs):
        if request is None:
            raise TypeError("Keyword argument 'request' must be supplied.")
        super(ReportForm, self).__init__(*args, **kwargs)
        QUARTER_START_CHOICES = (
            ('', '---'),
            ('01', 'January'),
            ('02', 'February'),
            ('03', 'March'),
            ('04', 'April'),
            ('05', 'May'),
            ('06', 'June'),
            ('07', 'July'),
            ('08', 'August'),
            ('09', 'September'),
            ('10', 'October'),
            ('11', 'November'),
            ('12', 'December'),
        )
        self.request = request
        orgs = UserProfile.objects.filter(user__exact=request.user)

        org_choices, prod_choices, user_choices, cats_choices = [], [], [], []
        for o in orgs:
            org_choices.append((o.org.id, o.org))
            users = UserProfile.objects.filter(org=o.org)
            cats = Category.objects.filter(org=o.org)
            prods = Product.objects.filter(categories__in=cats)
            for p in prods:
                prod_choices.append((p.id, p.name))
            for u in users:
                user_choices.append((u.id, "%s [%s]" % (u.user.get_full_name(), o.org)))
            for c in cats:
                cats_choices.append((c.id, "[%d] %s" % (c.id, c.name)))

        self.fields['orgs'].choices = org_choices
        self.fields['products'].choices = prod_choices
        self.fields['ordered_by'].choices = user_choices
        self.fields['categories'].choices = cats_choices
        self.fields['quarter_start'].widget = widgets.Select(choices=QUARTER_START_CHOICES)
        self.fields['start_date'].widget = widgets.TextInput(attrs={'class': 'datepicker', 'size': '12'})
        self.fields['end_date'].widget = widgets.TextInput(attrs={'class': 'datepicker', 'size': '12'})
        self.fields['last_orders'].widget = widgets.TextInput(attrs={'size': '3'})
        self.fields['scheduled'].widget = widgets.CheckboxInput()
        self.fields['schedule'].widget = widgets.HiddenInput()
        self.fields['states'].widget = widgets.SelectMultiple(choices=Order.STATUS_CHOICES)
Example #28
0
class Loginform(Form):
    name = fields.CharField(required=True,
                            error_messages={'required': '不能为空'},
                            widget=widgets.TextInput(attrs={
                                'placeholder': '用户名',
                                'class': 'username'
                            }))
    password = fields.CharField(
        required=True,
        error_messages={'required': '不能为空'},
        widget=widgets.PasswordInput(attrs={
            'placeholder': '密码',
            'class': 'password'
        }))
    val = fields.BooleanField(
        required=False,
        widget=widgets.CheckboxInput(attrs={'value': 1}))  #这个是设置一周免费登录
Example #29
0
    class Meta:
        model = busmenu
        fields = '__all__'

        widgets = {
            'FID': Fwidgets.Input(attrs={'type': 'hidden'}),
            'FSequence': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}),
            'FMenuID': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}),
            'FMenuName': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}),
            'FUrl': Fwidgets.Input(attrs={'class': 'layui-input', 'autocomplete': 'off'}),
            'FMenuIcon': Fwidgets.Input(attrs={'class': 'layui-input', 'autocomplete': 'off'}),
            'FMenuPosition': Fwidgets.Select(),
            'FFoldState': Fwidgets.Select(),
            'FFormState': Fwidgets.Select(),
            'FStatus': Fwidgets.CheckboxInput(attrs={'lay-skin': 'switch', 'lay-text': '启用|禁用', 'disabled': 'disabled'}),

        }
Example #30
0
    class Meta:
        model = elecfencle
        fields = '__all__'

        widgets = {
            'FID':
            Fwidgets.Input(attrs={'type': 'hidden'}),
            'FElecFence':
            Fwidgets.Input(
                attrs={
                    'class': 'layui-input',
                    'lay-verify': 'required',
                    'autocomplete': 'off'
                }),
            'FMonitortype':
            Fwidgets.Select(attrs={'lay-verify': 'required'}),
            'FElecFenceCoordinate':
            Fwidgets.Input(
                attrs={
                    'class': 'layui-input',
                    'lay-verify': 'required',
                    'autocomplete': 'off'
                }),
            'FDeviation':
            Fwidgets.Input(
                attrs={
                    'class': 'layui-input',
                    'lay-verify': 'required',
                    'autocomplete': 'off'
                }),
            'FCoordinatetype':
            Fwidgets.Select(attrs={'lay-verify': 'required'}),
            'FStatus':
            Fwidgets.CheckboxInput(attrs={
                'lay-skin': 'switch',
                'lay-text': '启用|禁用',
                'disabled': 'disabled'
            }),
            'FDesc':
            Fwidgets.Textarea(attrs={
                'class': 'layui-textarea',
                'autocomplete': 'off',
                'rows': '1'
            })
        }