예제 #1
0
class SiteForm(ModelForm):
    status_code_list = list(
        map(lambda status: status["code"], http_status_list))
    status_list = MultipleChoiceField(choices=status_code_list, required=True)

    class Meta:
        model = Site
        fields = ["owner", "name", "url", "status_list"]
class SecretRoleInfoForm(SelectRoleForm):
    conference = ModelMultipleChoiceField(
        queryset=Conference.objects.all().order_by('conference_name'),
        widget=MultipleHiddenInput(),
        required=True)
    roles = MultipleChoiceField(widget=MultipleHiddenInput(),
                                required=True,
                                choices=role_options)
예제 #3
0
class _ExampleForm(Form):
    single = ChoiceField(choices=((1, 'one'), (2, 'two'), (3, 'three')),
                         required=False)
    multi = MultipleChoiceField(
        choices=((1, 'one'), (2, 'two'), (3, 'three'), (4, 'four'), (5,
                                                                     'five')),
        required=False,
    )
예제 #4
0
 def __init__(self, required=True, widget=None, label=None, initial=None):
     fields = (
         CharField(),
         MultipleChoiceField(choices=beatles),
         SplitDateTimeField(),
     )
     super(ComplexField, self).__init__(fields, required, widget, label,
                                        initial)
예제 #5
0
 def set_choices(self, notes):
     choices = tuple([(note.id, str(note)) for note in notes])
     lbl = 'Select some notes to interact with.'
     widget = CheckboxSelectMultiple()
     self.fields['picked'] = MultipleChoiceField(label=lbl,
                                                 choices=choices,
                                                 widget=widget,
                                                 required=False)
예제 #6
0
 def formfield(self, **kwargs):
     plugins = ((v, v) for v in get_plugins_by_feature(self.features))
     required = not self.null
     return MultipleChoiceField(
         required=required,
         choices=plugins,
         widget=CheckboxSelectMultiple,
     )
예제 #7
0
 class BillAPIGetForm(Form):
     choices = (
         ("user", "user"),
         ("amount", "amount"),
         ("date", "date"),
         ("info", "info"),
     )
     column = MultipleChoiceField(choices=choices)
예제 #8
0
class ShoppingListSelect(forms.Form):
    ingredients = MultipleChoiceField(choices=('', ''),
                                      widget=CheckboxSelectMultiple,
                                      required=False)

    def __init__(self, choices=('', ''), *args, **kwargs):
        super(ShoppingListSelect, self).__init__(*args, **kwargs)
        self.fields['ingredients'].choices = choices
예제 #9
0
 class CourseInstanceAPIGetForm(Form):
     choices = (
         ("course", "course"),
         ("student", "student"),
         ("teacher", "teacher"),
         ("quota", "quota"),
     )
     column = MultipleChoiceField(choices=choices)
예제 #10
0
    def __init__(self, possible_reviewers, default_conflict_reviewers, *args, **kwargs):
        super(SubmitForm, self).__init__(*args, **kwargs)

        choices = []
        for r in possible_reviewers:
            choices.append((r.username, r))

        self.fields['conflicts'] = MultipleChoiceField(widget=CheckboxSelectMultiple(), required=False, choices=choices, initial=list(default_conflict_reviewers))
예제 #11
0
 class CouponCodeListAPIGetForm(Form):
     offset = IntegerField(initial=1, required=False)
     limit = IntegerField(initial=10, required=False)
     choices = (
         ("code", "code"),
         ("discount", "discount"),
     )
     column = MultipleChoiceField(choices=choices)
예제 #12
0
파일: forms.py 프로젝트: hansmeijs/tsa
    def __init__(self, *args, **kwargs):
        self.request = kwargs.pop(
            'request', None
        )  # pop() removes and returns an element from a dictionary, second argument is default when not found
        super(UserAddForm, self).__init__(*args, **kwargs)

        self.request_user = self.request.user

        self.request_user_company = None
        if self.request_user.company:
            self.request_user_company = self.request_user.company

            # ---  field 'last_name'
            # field 'first_name' is not in use
            self.fields['last_name'] = CharField(
                max_length=c.NAME_MAX_LENGTH,
                required=True,
                label=_('Full name'),
                help_text=_('Required, %(len)s characters or fewer.') %
                {'len': c.NAME_MAX_LENGTH},
            )

# ---  field 'Role_list'
# request.user with role=School: role = request.user.role, field is disabled
# request.user with role=Insp can set role=Insp and role=School
# request.user with role=System can set all roles
# PR2018-08-04
        self.choices = [
            (c.ROLE_01_COMPANY, _('Company')),
        ]
        if self.request_user.is_role_system:
            self.choices.append((c.ROLE_02_SYSTEM, _('System')))

        self.fields['role_list'] = ChoiceField(
            required=True,
            # choises must be tuple or list, dictionary gives error: 'int' object is not iterable
            choices=self.choices,
            label=_('Organization'),
            initial=self.request_user.role)
        self.fields[
            'role_list'].disabled = not self.request_user.is_role_system

        # ---  field 'Permits'
        # permits_choices_tuple: ((1, 'Read'), (2, 'Write'), (4, 'Authorize'), (8, 'Admin'))
        self.fields['permit_list'] = MultipleChoiceField(
            required=False,
            widget=SelectMultiple,
            choices=self.request_user.
            permits_choices,  # choises must be tuple or list, dictionary gives error: 'int' object is not iterable
            label='Permissions',
            help_text=
            _('Select one or more permissions from the list. Press the Ctrl button to select multiple permissions.'
              ),
            initial=c.PERMIT_01_READ)

        # ---  remove fields 'password1'
        self.fields.pop('password1')
        self.fields.pop('password2')
class SummerActForm(SummerActDraftForm):
    shows_preferences = MultipleChoiceField(
        widget=CheckboxSelectMultiple,
        choices=more_shows_options,
        label=act_bid_labels['summer_shows_preferences'],
        help_text=act_help_texts['shows_preferences'])

    act_duration = DurationField(required=True,
                                 help_text=summer_help_texts['act_duration'])
예제 #14
0
class PluginUpdateForm(Form):
    jails = MultipleChoiceField(required=True)

    def __init__(self, *args, **kwargs):
        oid = kwargs.pop('oid')
        super(PluginUpdateForm, self).__init__(*args, **kwargs)

        plugins = get_installed_plugins_by_remote_oid(oid)
        self.fields['jails'].choices = [(p.plugin_jail, p.plugin_jail) for p in plugins]
예제 #15
0
파일: forms.py 프로젝트: xolir/DTAS
class QuestionForm(ModelForm):
    myfield = MultipleChoiceField(choices=['a', 'b'], widget=SelectMultiple)

    class Meta:
        model = Question
        fields = (
            'question_text',
            'pub_date',
        )
예제 #16
0
 def test_multiplechoicefield_changed(self):
     f = MultipleChoiceField(choices=[('1', 'One'), ('2', 'Two'), ('3', 'Three')])
     self.assertFalse(f.has_changed(None, None))
     self.assertFalse(f.has_changed([], None))
     self.assertTrue(f.has_changed(None, ['1']))
     self.assertFalse(f.has_changed([1, 2], ['1', '2']))
     self.assertFalse(f.has_changed([2, 1], ['1', '2']))
     self.assertTrue(f.has_changed([1, 2], ['1']))
     self.assertTrue(f.has_changed([1, 2], ['1', '3']))
예제 #17
0
 class RedemptionCodeListAPIGetForm(Form):
     offset = IntegerField(initial=1, required=False)
     limit = IntegerField(initial=10, required=False)
     choices = (
         ("code", "code"),
         ("amount", "amount"),
         ("is_available", "is_available"),
     )
     column = MultipleChoiceField(choices=choices)
예제 #18
0
class DatasetForm(ModelForm):
    selected_poses = MultipleChoiceField(choices=TOKEN_POS['ko'], widget=FilteredSelectMultiple(is_stacked=False, verbose_name=_('POS')))

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

        self.fields['removed_nicknames_keywords'].required = False
        self.fields['date'].required = False
        self.fields['result_dir'].required = False
        self.fields['status'].required = False
        self.fields['status_training'].required = False

        self.fields['selected_poses'].label = _('Selected POS')

    def clean_original_file(self):
        original_file = self.cleaned_data['original_file']

        try:
            df = pd.read_excel(original_file, index_col=0)
        except FileNotFoundError:
            raise ValidationError(_('File not found'), code='invalid')
        except PermissionError:
            raise ValidationError(_('Permission denied'), code='invalid')
        except XLRDError:
            raise ValidationError(_('Wrong format - please upload excel file'), code='invalid')

        if len(df.columns) != 3 or df.columns[0] != 'Date' or df.columns[1] != 'Question' or df.columns[2] != 'Answer':
            raise ValidationError(_('Wrong format - please check header in your dataset'), code='invalid')

        if not len(df):
            raise ValidationError(_('Your dataset file is empty'), code='invalid')

        return original_file

    def clean_selected_poses(self):
        selected_poses = self.cleaned_data['selected_poses']
        pos_list = [key for key, value in TOKEN_POS['ko']]

        for pos in selected_poses:
            if pos not in pos_list:
                raise ValidationError(_('Wrong value - %(pos)s is not a valid POS'), params={'pos': pos})

        return ','.join(selected_poses)

    def clean_removed_nicknames_keywords(self):
        raw_value = self.cleaned_data['removed_nicknames_keywords']
        keywords = []

        for word in raw_value.split(','):
            keywords.append(word.strip())

        return ','.join(keywords)

    class Meta:
        model = Dataset
        exclude = []
예제 #19
0
 class BillListAPIGetForm(Form):
     offset = IntegerField(initial=1, required=False)
     limit = IntegerField(initial=10, required=False)
     choices = (
         ("user", "user"),
         ("amount", "amount"),
         ("date", "date"),
         ("info", "info"),
     )
     column = MultipleChoiceField(choices=choices)
예제 #20
0
 class Meta:
     model = models.PedidoFijo
     dias = MultipleChoiceField(required=True,
                                widget=CheckboxSelectMultiple,
                                choices=models.TIPODIAS)
     fields = ['cliente', 'fecha_inicio', 'fecha_cancelacion', 'dias']
     widgets = {
         'fecha_inicio': forms.DateInput(attrs={'class': 'datepicker'}),
         'fecha_cancelacion': forms.DateInput(attrs={'class': 'datepicker'})
     }
예제 #21
0
class SummerActDraftForm(ActEditDraftForm):
    shows_preferences = MultipleChoiceField(
        widget=CheckboxSelectMultiple,
        choices=more_shows_options,
        label=summer_bid_label,
        help_text=summer_help_texts['shows_preferences'],
        required=False)
    other_performance = MultipleChoiceField(
        widget=CheckboxSelectMultiple,
        choices=summer_other_perf_options,
        label=act_bid_labels['other_performance'],
        help_text=act_help_texts['other_performance'],
        required=False)
    act_duration = DurationFormField(
        required=False, help_text=summer_help_texts['act_duration'])
    track_duration = DurationFormField(
        required=False,
        help_text=summer_help_texts['track_duration'],
        label=act_bid_labels['track_duration'])
예제 #22
0
class BootstrapPictureFormMixin(ImageFormMixin):
    responsive_heights = BootstrapMultiSizeField(
        label=_("Adapt Picture Heights"),
        required=False,
        require_all_fields=False,
        allowed_units=['px', '%'],
        initial='100%',
        help_text=
        _("Heights of picture in percent or pixels for distinct Bootstrap's breakpoints."
          ),
    )

    responsive_zoom = BootstrapMultiSizeField(
        label=_("Adapt Picture Zoom"),
        required=False,
        require_all_fields=False,
        allowed_units=['%'],
        initial=['0%', '0%', '0%', '0%', '0%'],
        help_text=
        _("Magnification of picture in percent for distinct Bootstrap's breakpoints."
          ),
    )

    resize_options = MultipleChoiceField(
        label=_("Resize Options"),
        choices=IMAGE_RESIZE_OPTIONS,
        widget=widgets.CheckboxSelectMultiple,
        initial=['subject_location', 'high_resolution'],
        help_text=_("Options to use when resizing the image."),
    )

    image_shapes = MultipleChoiceField(label=_("Image Shapes"),
                                       choices=IMAGE_SHAPE_CHOICES,
                                       widget=widgets.CheckboxSelectMultiple,
                                       initial=['img-fluid'])

    class Meta:
        entangled_fields = {
            'glossary': [
                'responsive_heights', 'responsive_zoom', 'resize_options',
                'image_shapes'
            ]
        }
예제 #23
0
 def test_multiplechoicefield(self):
     e = {
         "required": "REQUIRED",
         "invalid_choice": "%(value)s IS INVALID CHOICE",
         "invalid_list": "NOT A LIST",
     }
     f = MultipleChoiceField(choices=[("a", "aye")], error_messages=e)
     self.assertFormErrors(["REQUIRED"], f.clean, "")
     self.assertFormErrors(["NOT A LIST"], f.clean, "b")
     self.assertFormErrors(["b IS INVALID CHOICE"], f.clean, ["b"])
예제 #24
0
class TagSearchForm(Form):
    selectedTags = MultipleChoiceField()
    results_preview = BooleanField()

    def __init__(self, tags, conn=None, *args, **kwargs):
        super(TagSearchForm, self).__init__(*args, **kwargs)

        # Process Tags into choices (lists of tuples)
        self.fields['selectedTags'].choices = tags
        self.conn = conn
예제 #25
0
class OverrideForm(FormOverrideMixIn, Form):
    single_choices = [
        ('A', 'Option A'),
        ('B', 'Option B'),
        ('C', 'Option C'),
    ]
    multi_choices = [
        ('A', 'Include A'),
        ('B', 'Include B'),
        ('C', 'Include C'),
    ]

    first = CharField(initial='first_value')
    second = CharField(initial='second_value')
    generic_field = CharField(initial='original_value')
    large_comment = CharField(initial='initial large comment',
                              widget=Textarea(attrs={
                                  "rows": 10,
                                  "cols": 40
                              }))
    small_comment = CharField(widget=Textarea(attrs={"rows": 2, "cols": 10}))
    simple_comment = CharField(widget=Textarea())
    hide_field = CharField(widget=HiddenInput(), initial='hide_data')
    bool_field = BooleanField(required=False)  # single checkbox
    single_select = ChoiceField(
        choices=single_choices)  # default widget select
    multi_select = MultipleChoiceField(choices=multi_choices)  # SelectMultiple
    radio_select = ChoiceField(choices=single_choices, widget=RadioSelect)
    single_check = ChoiceField(choices=single_choices,
                               required=False,
                               widget=CheckboxInput)  # single/boolean choice
    multi_check = MultipleChoiceField(choices=multi_choices,
                                      widget=CheckboxSelectMultiple)
    email_test = EmailField(
    )  # like CharField, can have: max_length, min_length, and empty_value
    last = CharField(initial='last_value')

    test_condition_response = False

    def condition_alt_test_feature(self):
        """Methods with condition_<label> return Boolean for when to apply alt_field_info[label] attrs.  """
        # logic for determining if the alternative attrs should be applied.
        return self.test_condition_response
예제 #26
0
 class BookingAPIGetForm(Form):
     choices = (
         ("course", "course"),
         ("start_date", "start_date"),
         ("end_date", "end_date"),
         ("teacher", "teacher"),
         ("student", "student"),
         ("info", "info"),
     )
     column = MultipleChoiceField(choices=choices)
예제 #27
0
    def __init__(self, *args, **kwargs):
        super(SurveyForm, self).__init__(*args, **kwargs)
        surv_id = kwargs['initial'].pop('survey')
        quest = Questions.objects.filter(survey=surv_id)

        for q in quest:
            q_choices = q.get_choices()
            self.fields["question_%d" % q.pk] = MultipleChoiceField(label=q.question,
                                                                    widget=CheckboxSelectMultiple,
                                                                    choices=q_choices)
 def test_multiplechoicefield(self):
     e = {
         'required': 'REQUIRED',
         'invalid_choice': '%(value)s IS INVALID CHOICE',
         'invalid_list': 'NOT A LIST',
     }
     f = MultipleChoiceField(choices=[('a', 'aye')], error_messages=e)
     self.assertFormErrors(['REQUIRED'], f.clean, '')
     self.assertFormErrors(['NOT A LIST'], f.clean, 'b')
     self.assertFormErrors(['b IS INVALID CHOICE'], f.clean, ['b'])
예제 #29
0
class QuestionForm(forms.ModelForm):
    #flags对应model.py里PushRule类的flags
    #https://docs.djangoproject.com/en/1.8/ref/forms/fields/#multiplechoicefield
    #https://docs.djangoproject.com/en/1.8/ref/forms/widgets/#checkboxselectmultiple
    #https://docs.djangoproject.com/en/2.2/ref/forms/widgets/#widget
    #initial决定默认选中哪个
    flags = MultipleChoiceField(initial=[
        '1',
        '4',
    ],
                                choices=[
                                    ('1', 'Sound'),
                                    ('2', 'Vibrate'),
                                    ('4', 'Light'),
                                ])
    form_text = CharField(widget=forms.Textarea)

    # logger.error('flags.widget:%s'%flags.widget)
    #ERROR:root:flags.widget:<django.forms.widgets.SelectMultiple object at 0x102679b90>
    # question_text = models.CharField(max_length=200)
    # date=models.DateField()

    # flags = MultipleChoiceField(widget=forms.CheckboxSelectMultiple(attrs={'class':'inline'}), initial='1|2|4', choices=[('1','Sound'),('2','Vibrate'),('4','Light')])
    # logger.error('flags.widget:%s'%flags.widget)
    #ERROR:root:flags.widget:<django.forms.widgets.CheckboxSelectMultiple object at 0x102679cd0>
    #is_stacked控制上下还是左右样式,label是左侧显示字样,Category123是选择框字样,required必要字段 choices是候选项
    # prefer_category = MultipleChoiceField(label='PreferCategory_label', required=False, widget=admin.widgets.FilteredSelectMultiple("Category123",is_stacked=False), initial=['1'],choices=[(c,c) for c in ['1','2']])
    # prefer_category = MultipleChoiceField(label='PreferCategory', required=False, choices=[(c,c) for c in ['1','2']])

    # logger.error('prefer_category:%s'%prefer_category.widget)

    # prefer_football = forms.CharField(label='FootballMatch', required=False, help_text='comma split match_ids')
    # prefer_football = forms.CharField(label='FootballMatch', required=False, widget=forms.TextInput(attrs={'style':'width:80%; margin-right:10px;'}), help_text='comma split match_ids')
    # logger.error('prefer_football.widget:%s'%prefer_football.widget)
    #ERROR:root:prefer_football.widget:<django.forms.widgets.TextInput object at 0x10a9b8dd0>
    class Meta:
        model = None
        # model = Question
        exclude = []

    logger.error('meta_mode:%s' % Meta.model)

    def __init__(self, *args, **kwargs):
        # logger.error('meta_mode:%s'%self.Meta.model)
        # logger.error('selflf.meta:%s'%self._meta)

        super(QuestionForm, self).__init__(*args, **kwargs)

        # self.initial['prefer_category'] = self.instance.news_tag.get('category',[])
        # self.initial['prefer_keyword']  = ','.join(self.instance.news_tag.get('keyword',[]))
        # self.initial['prefer_football'] = ','.join(self.instance.news_tag.get('football_match',[]))

    def clean(self):
        logger.error('self.cleaned_dat:%s' % self.cleaned_data)
        return self.cleaned_data
예제 #30
0
class AdHocEmailForm(Form):
    required_css_class = 'required'
    error_css_class = 'error'
    to = MultipleChoiceField(required=True, widget=CheckboxSelectMultiple())
    sender = EmailField(required=True, label="From")
    subject = CharField(widget=TextInput(attrs={'size': '79'}))
    html_message = CharField(widget=TinyMCE(attrs={
        'cols': 80,
        'rows': 30
    }),
                             label="Message")