コード例 #1
0
ファイル: code.py プロジェクト: vanthaiunghoa/coursys
 def __init__(self, *args, **kwargs):
     super(Code.ComponentForm, self).__init__(*args, **kwargs)
     self.fields['description'].widget = Textarea(attrs={
         'cols': 50,
         'rows': 5
     })
     self.fields['max_size'].widget = TextInput(
         attrs={'style': 'width:5em'})
     self.fields['allowed'].widget = SelectMultiple(choices=CODE_TYPES,
                                                    attrs={
                                                        'style':
                                                        'width:40em',
                                                        'size': 15
                                                    })
     self.initial['allowed'] = self._initial_allowed
コード例 #2
0
ファイル: forms.py プロジェクト: vinaychutake/eskool
class NoticeForm(forms.Form):
    """
    """

    title = forms.CharField(max_length=48,
                            required=True,
                            widget=forms.TextInput(attrs={'class':'form-control'}),
                            help_text=_('Maximum 48 characters are allowed'))

    to = forms.ModelMultipleChoiceField(Group.objects.all(), required=True,
                                        widget=SelectMultiple(attrs={'class': 'form-control select',
                                                                     'data-live-search': "true"}),
                                        help_text=_('Select groups who can see this notice.'))

    notice = forms.CharField(widget=forms.Textarea(attrs={'class':'summernote'}))
コード例 #3
0
class NotificationForm(ModelForm):
    recipients = forms.ChoiceField(choices=(("contributors", "Contributors"),
                                            ("clients",
                                             "Clients"), ("custom", "Custom")))
    recipient = forms.ModelMultipleChoiceField(
        models.SowarStockUser.objects.all(),
        label="Recipient (select multiple)",
        widget=SelectMultiple(attrs={'style': 'height:200%'}))

    class Meta:
        model = Notification
        fields = ["recipients", "recipient", "level", "verb"]
        labels = {
            'verb': _('Message'),
            'level': _('Type'),
        }
コード例 #4
0
ファイル: forms.py プロジェクト: c0debrain/newco-legacy
 class Meta:
     model = Question
     fields = ("content", "parents", "items", "tags")
     widgets = {
         "content":
         Textarea(
             attrs={
                 "class": "input-block-level",
                 "rows": 2,
                 "placeholder": _("Ask something specific.")
             }),
         "items":
         SelectMultiple(attrs={"class": "input-block-level"}),
         "tags":
         TagWidget(attrs={"class": "input-block-level"})
     }
コード例 #5
0
class TeamUpdateForm(forms.ModelForm):
    name = forms.CharField(required=True,
                           widget=TextInput(attrs={'class': 'form-control'}))
    description = forms.CharField(
        required=False,
        widget=TextInput(attrs={
            'class': 'form-control',
            'placeholder': 'Description'
        }))
    members = forms.ModelMultipleChoiceField(
        required=False,
        queryset=Account.objects.all(),
        widget=SelectMultiple(attrs={'class': 'form-control'}))

    class Meta:
        model = Team
        fields = ['name', 'description', 'members']
コード例 #6
0
    def get_form_field_instances(self, request=None, form_entry=None,
                                 form_element_entries=None, **kwargs):
        """Get form field instances."""
        queryset = self.get_queryset()

        field_kwargs = {
            'label': self.data.label,
            'help_text': self.data.help_text,
            'initial': self.data.initial,
            'required': self.data.required,
            'queryset': queryset,
            'widget': SelectMultiple(
                attrs={'class': theme.form_element_html_class}
            ),
        }

        return [(self.data.name, ModelMultipleChoiceField, field_kwargs)]
コード例 #7
0
    def __init__(self, *args, **kwargs):
        user = kwargs.pop("user")
        super().__init__(*args, **kwargs)
        is_instance = "instance" in kwargs and kwargs["instance"]

        self.fields["authorized_users"].initial = (
            get_user_model().objects.filter(
                visualisationuserpermission__visualisation=kwargs["instance"])
            if is_instance else get_user_model().objects.none())
        if not user.is_superuser and not user.has_perm(
                self.can_change_user_permission_codename):
            self.fields["user_access_type"].disabled = True

            self.fields["authorized_users"].disabled = True
            self.fields["authorized_users"].widget = SelectMultiple(choices=(
                (user.id, user.email)
                for user in self.fields["authorized_users"].queryset.all()))
コード例 #8
0
class RoleCombinePreview(forms.Form):
    """
    Django form to preview Role combinations.
    """

    roles = forms.MultipleChoiceField(
        required=False,
        widget=SelectMultiple(attrs={
            'class': 'multiselect',
            'style': 'height: auto;'
        }))
    error_css_class = 'error'
    required_css_class = 'required'

    def __init__(self, *args, **kwargs):
        super(RoleCombinePreview, self).__init__(*args, **kwargs)
        self.fields['roles'].choices = [(c.name, c.name)
                                        for c in get_item_names(Role, True)]
コード例 #9
0
    def get_form_field_instances(self, request=None):
        """
        Get form field instances.
        """
        choices = get_select_field_choices(self.data.choices)

        kwargs = {
            'label': self.data.label,
            'help_text': self.data.help_text,
            'initial': self.data.initial,
            'required': self.data.required,
            'choices': choices,
            'widget': SelectMultiple(attrs={'class': theme.form_element_html_class}),
        }

        if self.data.max_choices:
            kwargs['max_choices'] = self.data.max_choices

        return [(self.data.name, MultipleChoiceWithMaxField, kwargs)]
コード例 #10
0
    def get_form_field_instances(self, request=None, form_entry=None,
                                 form_element_entries=None, **kwargs):
        """Get form field instances."""
        app_label, model_name = get_app_label_and_model_name(self.data.model)
        model = apps.get_model(app_label, model_name)
        queryset = model._default_manager.all()

        field_kwargs = {
            'label': self.data.label,
            'help_text': self.data.help_text,
            'initial': self.data.initial,
            'required': self.data.required,
            'queryset': queryset,
            'widget': SelectMultiple(
                attrs={'class': theme.form_element_html_class}
            ),
        }

        return [(self.data.name, TreeNodeMultipleChoiceField, field_kwargs)]
コード例 #11
0
class ReportForm(forms.Form):
    from_date = forms.DateField(required=True)
    to_date = forms.DateField(required=True)
    regions = forms.ModelMultipleChoiceField(
        queryset=Region.objects.all(),
        required=False,
        widget=SelectMultiple(attrs={"class": "hidden"}))

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

        today = datetime.today()

        if today.month < 7:
            self.fields['from_date'].initial = date(today.year - 1, 7, 1)
            self.fields['to_date'].initial = date(today.year, 6, 30)
        else:
            self.fields['from_date'].initial = date(today.year, 7, 1)
            self.fields['to_date'].initial = date(today.year + 1, 6, 30)
コード例 #12
0
ファイル: export.py プロジェクト: Narsil/django-adminactions
class CSVOptions(forms.Form):
    _selected_action = forms.CharField(widget=forms.MultipleHiddenInput)
    header = forms.BooleanField(required=False)
    delimiter = forms.ChoiceField(choices=zip(delimiters, delimiters))
    quotechar = forms.ChoiceField(choices=zip(quotes, quotes))
    quoting = forms.ChoiceField(choices=((csv.QUOTE_ALL, 'All'),
                                         (csv.QUOTE_MINIMAL,
                                          'Minimal'), (csv.QUOTE_NONE, 'None'),
                                         (csv.QUOTE_NONNUMERIC,
                                          'Non Numeric')))

    escapechar = forms.ChoiceField(choices=(('', ''), ('\\', '\\')),
                                   required=False)
    datetime_format = forms.CharField(
        initial=formats.get_format('DATETIME_FORMAT'))
    date_format = forms.CharField(initial=formats.get_format('DATE_FORMAT'))
    time_format = forms.CharField(initial=formats.get_format('TIME_FORMAT'))
    columns = forms.MultipleChoiceField(widget=SelectMultiple(
        attrs={'size': 20}))
コード例 #13
0
class RoleSourceEdit(forms.Form):
    """
    Django form to edit sources for a Role.
    """

    sources = forms.MultipleChoiceField(
        required=False,
        widget=SelectMultiple(attrs={
            'class': 'multiselect',
            'style': 'height: auto;'
        }))
    error_css_class = 'error'
    required_css_class = 'required'

    def __init__(self, *args, **kwargs):
        super(RoleSourceEdit, self).__init__(*args, **kwargs)
        self.fields['sources'].choices = [
            (c.name, c.name) for c in get_source_names(False, False, None)
        ]
コード例 #14
0
class MirrorlistForm(forms.Form):
    country = forms.MultipleChoiceField(
        required=False, widget=SelectMultiple(attrs={'size': '12'}))
    protocol = forms.MultipleChoiceField(required=False,
                                         widget=CheckboxSelectMultiple)
    ip_version = forms.MultipleChoiceField(required=False,
                                           label="IP version",
                                           choices=(('4', 'IPv4'), ('6',
                                                                    'IPv6')),
                                           widget=CheckboxSelectMultiple)
    use_mirror_status = forms.BooleanField(required=False)

    def __init__(self, *args, **kwargs):
        super(MirrorlistForm, self).__init__(*args, **kwargs)
        fields = self.fields
        fields['country'].choices = [('all', 'All')] + self.get_countries()
        fields['country'].initial = ['all']
        protos = [(p.protocol, p.protocol)
                  for p in MirrorProtocol.objects.filter(is_download=True)]
        initial = MirrorProtocol.objects.filter(is_download=True, default=True)
        fields['protocol'].choices = protos
        fields['protocol'].initial = [p.protocol for p in initial]
        fields['ip_version'].initial = ['4']

    def get_countries(self):
        country_codes = set()
        country_codes.update(
            MirrorUrl.objects.filter(active=True, mirror__active=True).exclude(
                country='').values_list('country',
                                        flat=True).order_by().distinct())
        code_list = [(code, countries.name(code)) for code in country_codes]
        return sorted(code_list, key=itemgetter(1))

    def as_div(self):
        "Returns this form rendered as HTML <divs>s."
        return self._html_output(
            normal_row=
            u'<div%(html_class_attr)s>%(label)s %(field)s%(help_text)s</div>',
            error_row=u'%s',
            row_ender='</div>',
            help_text_html=u' <span class="helptext">%s</span>',
            errors_on_separate_row=True)
コード例 #15
0
    def get(self, request, *args, **kwargs):
        self._validate_args(request, *args)

        tags = Tag.objects.all().values_list('id', 'tag')

        tags_list = SelectMultiple(choices=tags)
        voter_opts = Voter._meta
        tag_field = voter_opts.many_to_many[0]
        model_admin = site._registry[Voter]
        admin_tags_list = RelatedFieldWidgetWrapper(tags_list,
                                                    tag_field.remote_field,
                                                    site, True, False, False)
        media = model_admin.media
        kwargs['media'] = media
        kwargs['tags_related'] = admin_tags_list.render('tags',
                                                        None,
                                                        attrs={
                                                            'id': 'id_tags',
                                                        })
        return super().get(request, *args, **kwargs)
コード例 #16
0
 class Meta:
     model = EDM
     fields = ('title', 'cover_image', 'cover_hype_link',
               'cover_description', 'selection_articles', 'publish_time')
     widgets = {
         'publish_time': DateTimeInput(attrs={'class': 'form-control'}),
         'cover_description': Textarea(attrs={'class': 'form-control'}),
         'selection_articles':
         SelectMultiple(attrs={'class': 'chosen-select'}),
         'title': TextInput(attrs={'class': 'form-control'}),
         'cover_hype_link': URLInput(attrs={'class': 'form-control'})
     }
     labels = {
         'title': _('title'),
         'cover_image': _('cover image'),
         'cover_hype_link': _('cover hype link'),
         'cover_description': _('cover description'),
         'selection_articles': _('selection articles'),
         'publish_time': _('publish time')
     }
コード例 #17
0
ファイル: forms.py プロジェクト: binu456m/billing
 class Meta:
     model = Profile
     exclude = [
         'id', 'creator', 'updater', 'date_added', 'date_updated', 'user',
         'current_shop', 'is_deleted'
     ]
     widgets = {
         'user_type':
         Select(
             attrs={
                 'placeholder': 'Select User Type',
                 'class': 'required form-control'
             }),
         'shops':
         SelectMultiple(attrs={
             'placeholder': 'Select Shops',
             'class': 'form-control'
         }),
         'tax_only':
         CheckboxInput()
     }
コード例 #18
0
ファイル: forms.py プロジェクト: osaimola/django-adminactions
class CSVOptions(forms.Form):
    _selected_action = forms.CharField(widget=forms.MultipleHiddenInput)
    select_across = forms.BooleanField(label='', required=False, initial=0,
                                       widget=forms.HiddenInput({'class': 'select-across'}))
    action = forms.CharField(label='', required=True, initial='', widget=forms.HiddenInput())

    header = forms.BooleanField(label=_('Header'), required=False)
    delimiter = forms.ChoiceField(label=_('Delimiter'), choices=list(zip(delimiters, delimiters)), initial=',')
    quotechar = forms.ChoiceField(label=_('Quotechar'), choices=list(zip(quotes, quotes)), initial="'")
    quoting = forms.ChoiceField(
        label=_('Quoting'),
        choices=((csv.QUOTE_ALL, _('All')),
                 (csv.QUOTE_MINIMAL, _('Minimal')),
                 (csv.QUOTE_NONE, _('None')),
                 (csv.QUOTE_NONNUMERIC, _('Non Numeric'))), initial=csv.QUOTE_ALL)

    escapechar = forms.ChoiceField(label=_('Escapechar'), choices=(('', ''), ('\\', '\\')), required=False)
    datetime_format = forms.CharField(label=_('Datetime format'), initial=formats.get_format('DATETIME_FORMAT'))
    date_format = forms.CharField(label=_('Date format'), initial=formats.get_format('DATE_FORMAT'))
    time_format = forms.CharField(label=_('Time format'), initial=formats.get_format('TIME_FORMAT'))
    columns = forms.MultipleChoiceField(label=_('Columns'), widget=SelectMultiple(attrs={'size': 20}))
コード例 #19
0
ファイル: forms.py プロジェクト: osaimola/django-adminactions
class XLSOptions(forms.Form):
    _selected_action = forms.CharField(widget=forms.MultipleHiddenInput)
    select_across = forms.BooleanField(label='', required=False, initial=0,
                                       widget=forms.HiddenInput({'class': 'select-across'}))
    action = forms.CharField(label='', required=True, initial='', widget=forms.HiddenInput())

    header = forms.BooleanField(label=_('Header'), required=False)
    use_display = forms.BooleanField(label=_('Use display'), required=False)
    # delimiter = forms.ChoiceField(choices=zip(delimiters, delimiters), initial=',')
    # quotechar = forms.ChoiceField(choices=zip(quotes, quotes), initial="'")
    # quoting = forms.ChoiceField(
    #     choices=((csv.QUOTE_ALL, 'All'),
    #              (csv.QUOTE_MINIMAL, 'Minimal'),
    #              (csv.QUOTE_NONE, 'None'),
    #              (csv.QUOTE_NONNUMERIC, 'Non Numeric')), initial=csv.QUOTE_ALL)
    #
    # escapechar = forms.ChoiceField(choices=(('', ''), ('\\', '\\')), required=False)
    # datetime_format = forms.CharField(initial=formats.get_format('DATETIME_FORMAT'))
    # date_format = forms.CharField(initial=formats.get_format('DATE_FORMAT'))
    # time_format = forms.CharField(initial=formats.get_format('TIME_FORMAT'))
    columns = forms.MultipleChoiceField(label=_('Columns'), widget=SelectMultiple(attrs={'size': 20}))
コード例 #20
0
class NewHostForm(forms.ModelForm):
    name = forms.CharField(widget=TextInput(
        attrs={
            'class': 'form-control',
            'placeholder': 'Host name',
            'autofocus': 'true'
        }))
    description = forms.CharField(
        required=False,
        widget=TextInput(attrs={
            'class': 'form-control',
            'placeholder': 'Description'
        }))
    ip = forms.GenericIPAddressField(widget=TextInput(
        attrs={
            'class': 'form-control',
            'placeholder': 'IP'
        }))
    environment = forms.ModelChoiceField(
        queryset=Environment.objects.all(),
        widget=Select(attrs={'class': 'form-control'}))
    groups = forms.ModelMultipleChoiceField(
        required=False,
        queryset=Hostgroup.objects.all(),
        widget=SelectMultiple(attrs={'class': 'form-control'}),
        help_text='Select multiple groups')

    class Meta:
        model = Host
        fields = ['name', 'description', 'ip', 'environment', 'groups']

    def clean_ip(self):
        ip = self.cleaned_data['ip']
        if Host.objects.filter(ip=ip, ip__iexact=ip).exists():
            host = Host.objects.get(ip=ip)
            raise ValidationError(
                mark_safe((
                    'Host {0} with that ip already exists, click <a href="{0}">here</a>'
                ).format(host)))
        return ip
コード例 #21
0
ファイル: forms.py プロジェクト: stefanvangastel/crits
class SourceAccessForm(forms.Form):
    """
    Django form for updating a user's profile and source access.
    """

    error_css_class = 'error'
    required_css_class = 'required'
    username = forms.CharField(widget=forms.TextInput(attrs={'size': '50'}),
                               required=True)
    first_name = forms.CharField(widget=forms.TextInput(attrs={'size': '50'}),
                                 required=True)
    last_name = forms.CharField(widget=forms.TextInput(attrs={'size': '50'}),
                                required=True)
    email = forms.CharField(widget=forms.TextInput(attrs={'size': '50'}),
                            required=True)
    sources = forms.MultipleChoiceField(required=True,
                                        widget=SelectMultiple(attrs={'class':'multiselect',
                                                                     'style': 'height: auto;'}))
    organization = forms.ChoiceField(required=True, widget=forms.Select)
    role = forms.ChoiceField(required=True, widget=forms.Select)
    password = forms.CharField(widget=forms.PasswordInput(attrs={'class': 'textbox'}),
                               required=False)
    totp = forms.BooleanField(initial=False, required=False)
    secret = forms.CharField(widget=forms.TextInput(attrs={'size': '50'}),
                             required=False)
    subscriptions = forms.CharField(required=False, widget=forms.HiddenInput())

    def __init__(self, *args, **kwargs):
        super(SourceAccessForm, self).__init__(*args, **kwargs)
        self.fields['sources'].choices = [(c.name,
                                           c.name) for c in get_source_names(False,
                                                                             False,
                                                                             None)]
        self.fields['role'].choices = [(c.name,
                                        c.name) for c in get_item_names(UserRole,
                                                                           True)]
        self.fields['organization'].choices = [(c.name,
                                                c.name) for c in get_source_names(True,
                                                                                     False,
                                                                                     None)]
コード例 #22
0
class HostUpdateForm(forms.ModelForm):
    name = forms.CharField(required=True,
                           widget=TextInput(attrs={'class': 'form-control'}))
    description = forms.CharField(
        required=False,
        widget=TextInput(attrs={
            'class': 'form-control',
            'placeholder': 'Description'
        }))
    ip = forms.GenericIPAddressField(
        required=True, widget=TextInput(attrs={'class': 'form-control'}))
    environment = forms.ModelChoiceField(
        queryset=Environment.objects.all(),
        widget=Select(attrs={'class': 'form-control'}))
    groups = forms.ModelMultipleChoiceField(
        required=False,
        queryset=Hostgroup.objects.all(),
        widget=SelectMultiple(attrs={'class': 'form-control'}))

    class Meta:
        model = Host
        fields = ['name', 'description', 'ip', 'environment', 'groups']
コード例 #23
0
ファイル: forms.py プロジェクト: aculich/TextThresher
class SendTasksForm(forms.Form):
    project = SelectProjectField(Project.objects.all().order_by("name"),
                                 empty_label=None,
                                 help_text=help_select_project)
    topics = SelectTopicsField(
        Topic.objects.filter(parent=None).order_by("name"),
        help_text=help_select_topics,
        widget=SelectMultiple(attrs={"size": 11}))
    starting_article_id = forms.IntegerField(min_value=0)
    ending_article_id = forms.IntegerField(min_value=0)
    add_nlp_hints = forms.BooleanField(required=False,
                                       label="Begin NLP processing",
                                       help_text=help_with_nlp)
    debug_presenter = forms.BooleanField(required=False,
                                         initial=False,
                                         widget=HiddenInput)
    debug_server = forms.CharField(required=False,
                                   label="Debug presenter flag active",
                                   max_length=200,
                                   initial="http://localhost:3001",
                                   help_text=help_with_debug_server,
                                   widget=TextInput(attrs={"size": 40}))
コード例 #24
0
    def __init__(self, *args, **kwargs):

        # Формируем список возможных значений
        queryset = Terms.objects.filter(vocabulary=self.admin_field.vocabulary)
        if self.admin_field.lang_depended:
            queryset = queryset.filter(language=self.language)

        # Определяем язык
        language = self.admin_field.lang_depended and self.language or ''

        # Обращаемся к обработчику по-умолчанию
        super().__init__(*args, **kwargs)

        old_widget = self.fields['terms'].widget

        if self.admin_field.multiple:  # Если поле множественного выбора
            widget = SelectMultiple(old_widget.widget.attrs, queryset)
            widget_wrapped = SCMSRelatedFieldWidgetWrapper(
                widget, old_widget.rel, old_widget.admin_site,
                self.admin_field.vocabulary, language)
            self.fields['terms'] = ModelMultipleChoiceField(
                queryset, required=False, widget=widget_wrapped)
        else:  # Если поле одиночного выбора
            widget = Select(old_widget.widget.attrs, queryset)
            widget_wrapped = SCMSRelatedFieldWidgetWrapper(
                widget, old_widget.rel, old_widget.admin_site,
                self.admin_field.vocabulary, language)
            self.fields['terms'] = ModelChoiceField(queryset,
                                                    required=False,
                                                    widget=widget_wrapped)
            try:  # Определяем значение по умолчанию -- первое в списке значений
                initial = instance.terms.get_queryset()[0].id
            except:
                initial = None
            self.initial['terms'] = initial
            self.fields['terms'].initial = initial
        pass
コード例 #25
0
    class Meta:
        model = Article
        fields = [
            'title',
            'overview',
            'content',
            'author',
            'thumbnail',
            'categories',
        ]

        widgets = {
            'title':
            forms.TextInput(attrs={
                'class': 'form-control',
                'placeholder': 'Enter article title',
            }),
            'overview':
            forms.Textarea(attrs={
                'class': 'form-control',
                'placeholder': 'Enter article overview',
            }),
            'author':
            forms.HiddenInput(attrs={
                'class': 'form-control',
            }),
            'categories':
            SelectMultiple(attrs={
                'class': 'form-control',
                'data-height': '100%',
            }),
            'thumbnail':
            FileInput(attrs={
                'class': 'form-control',
            }),
        }
コード例 #26
0
    def get_form_field_instances(self):
        """
        Get form field instances.
        """
        app_label, model_name = self.data.model.split('.')
        model = models.get_model(app_label, model_name)
        queryset = model._default_manager.all()

        kwargs = {
            'label':
            self.data.label,
            'help_text':
            self.data.help_text,
            'initial':
            self.data.initial,
            'required':
            self.data.required,
            'queryset':
            queryset,
            'widget':
            SelectMultiple(attrs={'class': theme.form_element_html_class}),
        }

        return [(self.data.name, ModelChoiceField, kwargs)]
コード例 #27
0
class SolicitacaoPassagemRotaForm(forms.Form):

    tipo = forms.ChoiceField(choices=TIPO_CHOICE)
    origem = forms.ModelChoiceField(queryset=Aeroporto.objects.all(),
                                    required=False)
    destino = forms.ModelChoiceField(queryset=Aeroporto.objects.all(),
                                     required=False)
    data_ida = forms.DateField(required=False)
    data_volta = forms.DateField(required=False)
    passageiros = forms.ModelMultipleChoiceField(
        queryset=Passageiro.objects.all(),
        widget=SelectMultiple(),
        required=False)

    def __init__(self, *args, **kwargs):
        self.orgao = kwargs.pop('orgao')
        super(SolicitacaoPassagemRotaForm, self).__init__(*args, **kwargs)
        self.fields['tipo'].widget.attrs['class'] = 'form-control tipo'
        self.fields['origem'].widget.attrs[
            'class'] = 'form-control  chosen-select '
        self.fields['destino'].widget.attrs[
            'class'] = 'form-control chosen-select'
        self.fields['data_ida'].widget.attrs[
            'class'] = 'form-control data_ida date-picker'
        self.fields['data_volta'].widget.attrs[
            'class'] = 'form-control data_volta date-picker'
        self.fields['passageiros'].widget.attrs[
            'class'] = 'form-control  chosen-select multiple'

    # verificação para saber se o campo justificativa da urgência deve ser preenchido ou não (considerando somente dias úteis "seg a sex")

    def clean(self, **kwargs):
        cleaned_data = super(SolicitacaoPassagemRotaForm, self).clean()
        tipo = cleaned_data.get('tipo')
        origem = cleaned_data.get('origem')
        destino = cleaned_data.get('destino')
        passageiros = cleaned_data.get('passageiros')
        data_ida = cleaned_data.get('data_ida')
        data_volta = cleaned_data.get('data_volta')
        cota_quantidade = verifica_quantidade_cota(self.orgao)
        rota_ida = Rota.objects.filter(origem=origem, destino=destino)
        rota_volta = Rota.objects.filter(origem=destino, destino=origem)

        if not origem:
            self._errors['origem'] = self.error_class(['Campo obrigatório'])
        if not destino:
            self._errors['destino'] = self.error_class(['Campo obrigatório'])
        if not passageiros:
            self._errors['passageiros'] = self.error_class(
                ['Campo obrigatório'])
        if tipo == 'IV' and not data_volta:
            self._errors['data_volta'] = self.error_class(
                ['Campo obrigatório'])

        if tipo == 'I' and origem and destino and not rota_ida:
            self.add_error(None, ' #Rota de ida inexistente.')
        if tipo == 'IV' and origem and destino and not rota_ida:
            self.add_error(None, ' #Rota de ida inexistente.')
        if tipo == 'IV' and origem and destino and not rota_volta:
            self.add_error(None, ' #Rota de volta inexistente.')
        if passageiros and tipo == 'I' and cota_quantidade < len(passageiros):
            self.add_error(
                None,
                ' #Você não tem mais cota para solicitar passagem! Entre em contato com a Gestão de Passagens Aéreas da AMGESP.'
            )
        if passageiros and tipo == "IV" and cota_quantidade < len(
                passageiros) * 2:
            self.add_error(
                None,
                ' #Você não tem mais cota para solicitar passagem! Entre em contato com a Gestão de Passagens Aéreas da AMGESP.'
            )
        if tipo == "IV" and data_volta and data_ida > data_volta:
            self.add_error(
                None, ' #A data de ida informada é maior que a data de volta.')
        if data_ida and data_ida < date.today():
            self.add_error(
                None, ' #A data de ida informada é menor que a data atual.')

        return cleaned_data
コード例 #28
0
ファイル: widgets.py プロジェクト: katyasosa/is_project
 def render(self, name, value, attrs=None, choices=()):
     return SelectMultiple.render(self, name, value, attrs, choices)
コード例 #29
0
ファイル: widgets.py プロジェクト: katyasosa/is_project
 def value_from_datadict(self, data, files, name):
     return SelectMultiple.value_from_datadict(self, data, files, name)
コード例 #30
0
ファイル: widgets.py プロジェクト: katyasosa/is_project
 def _has_changed(self, initial, data):
     return SelectMultiple._has_changed(initial, data)
コード例 #31
0
ファイル: admin.py プロジェクト: den-gts/panopticum
UNKNOWN_REQUIREMENT_STATUS = 1  # it's unknown status. Check init.json fixture
OWNER_STATUS_PERMISSION = 'panopticum.change_owner_status'
SIGNEE_STATUS_PERMISSION = 'panopticum.change_signee_status'

formfields_large = {
    models.ForeignKey: {
        'widget': Select(attrs={
            'width': '300px',
            'style': 'width:300px'
        })
    },
    models.ManyToManyField: {
        'widget':
        SelectMultiple(attrs={
            'size': '7',
            'width': '300px',
            'style': 'width:300px'
        })
    },
    models.IntegerField: {
        'widget': NumberInput(attrs={
            'width': '300px',
            'style': 'width:300px'
        })
    },
    models.CharField: {
        'widget': TextInput(attrs={
            'width': '300px',
            'style': 'width:300px'
        })
    },
コード例 #32
0
ファイル: admin.py プロジェクト: perfguru87/panopticum
from django.utils.translation import gettext_lazy as _
import django.core.exceptions
from django.contrib.auth.models import AnonymousUser

# Register your models here.
import panopticum.fields
from panopticum.models import *

SIGNEE_STATUS_TYPE = 2 # Requirement status type with name = "approver person". Check init.json
OWNER_STATUS_TYPE = 1
UNKNOWN_REQUIREMENT_STATUS = 1 # it's unknown status. Check init.json fixture
OWNER_STATUS_PERMISSION = 'panopticum.change_owner_status'
SIGNEE_STATUS_PERMISSION = 'panopticum.change_signee_status'

formfields_large = {models.ForeignKey: {'widget': Select(attrs={'width': '300px', 'style': 'width:300px'})},
                    models.ManyToManyField: {'widget': SelectMultiple(attrs={'size': '7', 'width': '300px', 'style': 'width:300px'})},
                    models.IntegerField: {'widget': NumberInput(attrs={'width': '300px', 'style': 'width:300px'})},
                    models.CharField: {'widget': TextInput(attrs={'width': '300px', 'style': 'width:300px'})},
                    models.URLField: {'widget': TextInput(attrs={'width': '300px', 'style': 'width:300px'})},
                    models.TextField: {'widget': Textarea(attrs={'rows': 2, 'cols': 60})},
                    }

formfields_small = {models.ForeignKey: {'widget': Select(attrs={'width': '150px', 'style': 'width:150px'})},
                    models.ManyToManyField: {'widget': SelectMultiple(attrs={'size': '3', 'width': '150px', 'style': 'width:150px'})},
                    models.IntegerField: {'widget': NumberInput(attrs={'width': '150px', 'style': 'width:150px'})},
                    models.CharField: {'widget': TextInput(attrs={'width': '150px', 'style': 'width:150px'})},
                    models.URLField: {'widget': TextInput(attrs={'width': '150px', 'style': 'width:150px'})},
                    models.TextField: {'widget': Textarea(attrs={'rows': 2, 'cols': 30})},
                    }

コード例 #33
0
 class Meta:
     model = Oportunidad
     fields = ('titulo', 'carga_horaria', 'remuneracion',
               'remuneracion_min', 'remuneracion_max', 'ciudad', 'pais',
               'distrito', 'fecha_cese', 'resumen', 'edad_desde',
               'edad_hasta', 'genero', 'carga_horaria', 'tipo_puesto',
               'estado', 'estado_oportunidad', 'grado_estudio', 'idioma',
               'conocimiento', 'carrera', 'direccion_map', 'longitud',
               'latitud', 'tipo_carrera', 'rama_carrera',
               'area_experiencia', 'tiempo_experiencia', 'numero_vacantes',
               'beneficio', 'nivel_academico')
     widgets = {
         'titulo':
         TextInput(
             attrs={
                 'placeholder': 'Escriba el título de su vacante',
                 'class': 'form-control'
             }),
         'carga_horaria':
         RadioSelect(attrs={'class': 'form-check-input'}),
         'tipo_puesto':
         RadioSelect(attrs={
             'class': 'form-check-input',
             'required': 'required'
         }),
         'remuneracion':
         RadioSelect(attrs={'class': 'form-check-input'}),
         'resumen':
         Textarea(attrs={
             'class': 'form-control',
             'required': 'required'
         }),
         'remuneracion_min':
         TextInput(attrs={
             'placeholder': 'Valor mínimo',
             'class': 'form-control'
         }),
         'remuneracion_max':
         TextInput(attrs={
             'placeholder': 'Valor máximo',
             'class': 'form-control'
         }),
         'fecha_cese':
         Input(attrs={
             'type': 'date',
             'class': 'form-control'
         }),
         'direccion_map':
         TextInput(attrs={
             'placeholder': 'Dirección',
             'class': 'form-control'
         }),
         'distrito':
         Select(attrs={'class': 'form-control'}),
         'pais':
         Select(attrs={'class': 'form-control'}),
         'ciudad':
         Select(attrs={'class': 'form-control'}),
         'rama_carrera':
         SelectMultiple(
             attrs={
                 'class': 'select2 m-b-10 select2-multiple',
                 'style': 'width:100%;',
                 'multiple': 'multiple',
                 'required': 'required',
                 'data-placeholder': 'Seleccione una o más opciones'
             }),
         'idioma':
         SelectMultiple(
             attrs={
                 'class': 'select2 m-b-10 select2-multiple',
                 'style': 'width:100%;',
                 'multiple': 'multiple',
                 'data-placeholder': 'Seleccione una o más opciones'
             }),
         'grado_estudio':
         CheckboxSelectMultiple(attrs={
             'class': 'form-check-input',
             'required': 'required'
         }),
         'nivel_academico':
         CheckboxSelectMultiple(attrs={'class': 'form-control'}),
         'conocimiento':
         SelectMultiple(
             attrs={
                 'class': 'select2 m-b-10 select2-multiple',
                 'style': 'width:100%;',
                 'multiple': 'multiple',
                 'data-placeholder': 'Seleccione una o más opciones'
             }),
         'estado_oportunidad':
         Select(attrs={
             'class': 'form-control',
             'disabled': 'disabled'
         }),
         'edad_desde':
         TextInput(attrs={
             'class': 'form-control',
             'placeholder': 'Desde',
             'type': 'number'
         }),
         'edad_hasta':
         TextInput(attrs={
             'class': 'form-control',
             'placeholder': 'Hasta',
             'type': 'number'
         }),
         'numero_vacantes':
         TextInput(
             attrs={
                 'class': 'form-control',
                 'placeholder': 'Número de vacantes',
                 'type': 'number',
                 'value': '0'
             }),
         'genero':
         Select(attrs={'class': 'form-control'}),
         'division':
         Select(attrs={'class': 'form-control'}),
         'area_experiencia':
         Select(attrs={'class': 'form-control'}),
         'tiempo_experiencia':
         Select(attrs={'class': 'form-control'}),
         'beneficio':
         CheckboxSelectMultiple(attrs={'class': 'form-check-input'}),
     }