コード例 #1
0
    def __init__(self, *args, **kwargs):
        """mode argument is required for distinguish ajax sources"""
        mode = kwargs.get('mode')
        if mode:
            del kwargs['mode']
        else:
            raise ModeNotSetException("mode argument not given.")
        super(BasePartForm, self).__init__(*args, **kwargs)

        channel = 'asset_dcdevice' if mode == 'dc' else 'asset_bodevice'
        self.fields['device'] = AutoCompleteSelectField(
            LOOKUPS[channel],
            required=False,
            help_text='Enter barcode, sn, or model.',
        )
        self.fields['source_device'] = AutoCompleteSelectField(
            LOOKUPS[channel],
            required=False,
            help_text='Enter barcode, sn, or model.',
        )
        if self.instance.source_device:
            self.fields[
                'source_device'].initial = self.instance.source_device.id
        if self.instance.device:
            self.fields['device'].initial = self.instance.device.id
コード例 #2
0
ファイル: forms.py プロジェクト: alhayden/lnldb
class BulkCreateForm(forms.Form):
    def __init__(self, *args, **kwargs):
        self.helper = FormHelper()
        self.helper.form_class = "form-horizontal"
        self.helper.form_method = "GET"
        self.helper.layout = Layout(
            Field('contact'), Field('billing'),
            Field(
                'date_first',
                css_class="datepick",
            ), Field(
                'date_second',
                css_class="datepick",
            ), FormActions(Submit('save', 'Continue'), ))
        super(BulkCreateForm, self).__init__(*args, **kwargs)

    contact = AutoCompleteSelectField(
        'Users',
        required=True,
        plugin_options={
            'position':
            "{ my : \"right top\", at: \"right bottom\", of: \"#id_person_name_text\"},'minlength':4"
        })
    billing = AutoCompleteSelectField(
        'Orgs',
        required=True,
        plugin_options={
            'position':
            "{ my : \"right top\", at: \"right bottom\", of: \"#id_person_name_text\"},'minlength':4"
        })
    date_first = forms.DateField(label="Date of first movie")
    date_second = forms.DateField(label="Date of last movie")
コード例 #3
0
class SGAEditorForm(forms.Form):
    #warningwords = forms.ModelChoiceField(queryset=WarningWord.objects.all(),
    #                                     label=_("Warning Word"))
    dangerindication = AutoCompleteSelectField('dangerindication',
                                               label=_("Danger Indication"))
    prudenceadvice = AutoCompleteSelectField('prudenceadvices',
                                             label=_("Prudence Advices"))
コード例 #4
0
class CommissionForm(ModelForm):
    author = AutoCompleteSelectField("authors",
                                     required=False,
                                     help_text=None,
                                     label="Payee")
    article = AutoCompleteSelectField('articles',
                                      required=False,
                                      help_text=None)

    def clean_author(self):
        data = self.cleaned_data['author']
        if data is None:
            raise forms.ValidationError("Please enter a user")
        return data

    class Meta:
        model = Commission
        fields = [
            'author',
            'article',
            'description',
            'notes',
            'commission_due',
            'taxable',
            'vatable',
            'fund',
        ]
コード例 #5
0
class CommissionForm(ModelForm):
    author = AutoCompleteSelectField("authors",
                                     required=False,
                                     help_text=None,
                                     label="Payee")
    article = AutoCompleteSelectField('articles',
                                      required=False,
                                      help_text=None)
    fund = forms.ModelChoiceField(
        queryset=Fund.objects.filter(ledger=True).filter(deprecated=False),
        label='Pastel',
        required=False)

    def clean_author(self):
        data = self.cleaned_data['author']
        if data is None:
            raise forms.ValidationError("Please enter a user")
        return data

    class Meta:
        model = Commission
        fields = [
            'author', 'article', 'fund', 'description', 'notes',
            'commission_due', 'taxable', 'vatable', 'vat_amount'
        ]
コード例 #6
0
ファイル: forms.py プロジェクト: brunoprograma/scj
class FormPessoa(MyModelForm):
    def clean(self):
        cleaned_data = self.cleaned_data
        ini = cleaned_data.get('inicio_mandato')
        fim = cleaned_data.get('fim_mandato')

        if ini and fim and (ini > fim):
            raise forms.ValidationError(
                'O inicio do mandato não pode ser posterior ao fim do mandato!'
            )

    class Meta:
        model = Pessoa
        exclude = []

    deputado = AutoCompleteSelectField('deputados',
                                       label='Deputado',
                                       help_text=None)
    instituicao = AutoCompleteSelectField('instituicao',
                                          label='Instituição',
                                          help_text=None)
    cargo = AutoCompleteSelectField('cargos', label='Cargo', help_text=None)
    partido = AutoCompleteSelectField('partidos',
                                      label='Partido',
                                      help_text=None)
コード例 #7
0
class BulkEmailForm(EmailForm):
    group = forms.ChoiceField(choices=EMAIL_GROUPS)
    institute = AutoCompleteSelectField('institute',
                                        required=False,
                                        label="Institute")
    project = AutoCompleteSelectField('project',
                                      required=False,
                                      label="Project")

    def get_person_query(self):
        person_query = Person.active.all()

        group = self.cleaned_data['group']
        if group == 'leaders':
            person_query = person_query.filter(leads__isnull=False)

        elif group == 'users':
            pass

        elif group == 'cluster_users':
            person_query = person_query.filter(account__isnull=False)

        else:
            person_query = None

        institute = self.cleaned_data['institute']
        if institute is not None:
            person_query = person_query.filter(institute=institute)

        project = self.cleaned_data['project']
        if project is not None:
            person_query = person_query.filter(groups__project=project)

        return person_query
コード例 #8
0
class PostulationForm(ModelForm):
    class Meta:
        model = Postulation
        fields = ('postulant', 'name', 'province', 'city', 'description',
                  'business_area', 'status', 'progress')
        labels = {
            'name': 'nombre del proyecto',
            'province': 'departamento',
            'city': 'ciudad',
            'postulant': 'postulante',
            'business_area': 'rubro',
            'description': 'descripción',
            'status': 'estado',
            'progress': 'progreso',
        }

    postulant = AutoCompleteSelectField('entrepreneurs',
                                        label='emprendedores',
                                        help_text='Búsqueda por CI o nombre')
    city = AutoCompleteSelectField(
        'city',
        label="Ciudad",
        help_text='Ingresa el nombre de la ciudad o de su departamento',
        required=False)

    def __init__(self, *args, **kwargs):
        super(PostulationForm, self).__init__(*args, **kwargs)
        for visible in self.visible_fields():
            set_attribute(visible)
コード例 #9
0
class FormVoo(MyModelForm):
    def clean(self):
        cleaned_data = self.cleaned_data
        data_p = cleaned_data.get('data_hora_partida')
        cidade_p = cleaned_data.get('cidade_partida')
        data_c = cleaned_data.get('data_hora_chegada')
        cidade_c = cleaned_data.get('cidade_chegada')

        if data_p and data_c and data_p >= data_c:
            raise forms.ValidationError(
                'Data e hora de partida anterior a data e hora de chegada!')

        if cidade_p and cidade_c and cidade_p == cidade_c:
            raise forms.ValidationError(
                'A cidade de chegada deve ser diferente da cidade de partida!')

        return cleaned_data

    class Meta:
        model = Voo
        exclude = []

    deputado = AutoCompleteSelectField('deputados',
                                       label='Deputado',
                                       help_text=None)
    cidade_partida = AutoCompleteSelectField('cidades',
                                             label='Cidade de partida',
                                             help_text=None)
    cidade_chegada = AutoCompleteSelectField('cidades',
                                             label='Cidade de chegada',
                                             help_text=None)
    companhia = AutoCompleteSelectField('companhias',
                                        label='Companhia aérea',
                                        help_text=None)
コード例 #10
0
class MergeForm(forms.Form):
    user1 = AutoCompleteSelectField("users",
                                    label=_("User that will be kept"),
                                    help_text=None,
                                    required=True)
    user2 = AutoCompleteSelectField("users",
                                    label=_("User that will be deleted"),
                                    help_text=None,
                                    required=True)
コード例 #11
0
 def __init__(self, *args, **kwargs):
     super(PrincipalRoleRelationForm, self).__init__(*args, **kwargs)
     self.fields['content'].widget = forms.HiddenInput()
     self.fields['user'] = AutoCompleteSelectField('perms_user',
                                                   required=False)
     self.fields['group'] = AutoCompleteSelectField('perms_group',
                                                    required=False)
     self.fields['role'].queryset = self.fields['role'].queryset.exclude(
         slug=ANONYMOUS_ROLE_SLUG)
コード例 #12
0
ファイル: forms.py プロジェクト: lsimons/crichton
class OrphanBuildJobsForm(Form):
    """ Allows user to select and link build jobs to one product """
    
    product = AutoCompleteSelectField('product', required=True, label='Product')
    # MultipleField is throwing an error at the moment,
    # so just allow one at once for the moment
    # FIXME
    #build_jobs = AutoCompleteSelectMultipleField('orphan_build_job', required=True)
    build_jobs = AutoCompleteSelectField('orphan_build_job', required=True, label='Build Job')
コード例 #13
0
ファイル: forms.py プロジェクト: supervisitor20/MyJobs
class MarketPlaceEnableForm(forms.Form):
    company = AutoCompleteSelectField('companies',
                                      required=True,
                                      help_text=None)
    site = AutoCompleteSelectField('sites', required=True, help_text=None)

    def __init__(self, *args, **kwargs):
        super(MarketPlaceEnableForm, self).__init__(*args, **kwargs)
        self.fields['company'].help_text = (
            'The company to add MarketPlace access to.')
        self.fields['site'].help_text = (
            'The microsite that purchased jobs will appear on.')
コード例 #14
0
ファイル: forms.py プロジェクト: brunoprograma/scj
class FormInstituicao(MyModelForm):
    class Meta:
        model = Instituicao
        exclude = []

    deputado = AutoCompleteSelectField('deputados',
                                       label='Deputado',
                                       help_text=None)
    regional = AutoCompleteSelectField('regionais',
                                       label='Regional',
                                       help_text=None)
    cidade = AutoCompleteSelectField('cidades', label='Cidade', help_text=None)
コード例 #15
0
class ProfessorForm(NiceErrorModelForm, ACFieldModelForm):
    """ Find or create a Professor. """
    # AutoCompleteField would make sense for these fields because it only
    # returns the value while AutoCompleteSelectField returns the object.
    # This way, Javascript on the front end can autofill the other field based
    # on the autocompletion of one field because the whole object is available.

    # first argument is ajax channel name, defined in models as LookupChannel.
    name = AutoCompleteSelectField('professor_object_by_name', help_text='',
        label=mark_safe('Professor\'s name <span class="required-field">(required)</span>'),
        # allows creating a new Professor on the fly
        required=False)
    email = AutoCompleteSelectField('professor_object_by_email', help_text='',
        label="Professor's email address",
        # allows creating a new Professor on the fly
        required=False)

    class Meta:
        model = Professor
        # order the fields
        fields = ('name', 'email')

    def _clean_distinct_field(self, field, value_required=False, *args, **kwargs):
        """
        Check to see if Professor model is found before grabbing the field.
        Ensure that if Professor was already found, the new field corresponds.

        In theory, Javascript could and should ensure this.
        In practice, better safe than incoherent.
        """
        oldprof = None
        if hasattr(self, 'instance') and self.instance and self.instance.pk:
            # Professor was already autocompleted. Save that object.
            oldprof = self.instance
        # Extract the field value, possibly replacing self.instance
        value = self._clean_field(field, *args, **kwargs)
        if value_required and not value:
            raise ValidationError('This field is required.')
        if oldprof and not value:
            # This field was not supplied, but another one determined the prof.
            # Grab field from prof model object.
            value = getattr(oldprof, field)
        if oldprof and self.instance != oldprof:
            # Two different Professor objects have been found across fields.
            raise ValidationError('It looks like two or more different Professors have been autocompleted.')

        return value

    def clean_name(self, *args, **kwargs):
        return self._clean_distinct_field('name', value_required=True, *args, **kwargs)

    def clean_email(self, *args, **kwargs):
        return self._clean_distinct_field('email', *args, **kwargs)
コード例 #16
0
ファイル: admin.py プロジェクト: ashudwi/artshow-jockey
class ArtistForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        if 'instance' not in kwargs:
            kwargs.setdefault('initial',{})
            kwargs['initial']['artistid'] = \
                (Artist.objects.aggregate(artistid=Max('artistid')).get('artistid', 0) or 0) + 1
        super(ArtistForm, self).__init__(*args, **kwargs)

    class Meta:
        model = Artist
    person = AutoCompleteSelectField('person', required=True)
    payment_to = AutoCompleteSelectField('person', required=False)
コード例 #17
0
class BaseAssetForm(ModelForm):
    class Meta:
        model = Asset
        fields = (
            'niw',
            'type',
            'model',
            'invoice_no',
            'order_no',
            'request_date',
            'delivery_date',
            'invoice_date',
            'production_use_date',
            'provider_order_date',
            'price',
            'support_price',
            'support_period',
            'support_type',
            'support_void_reporting',
            'provider',
            'status',
            'remarks',
            'sn',
            'barcode',
            'warehouse',
        )
        widgets = {
            'remarks': Textarea(attrs={'rows': 3}),
            'support_type': Textarea(attrs={'rows': 5}),
        }

    model = AutoCompleteSelectField(
        LOOKUPS['asset_model'],
        required=True,
        plugin_options=dict(
            add_link='/admin/ralph_assets/assetmodel/add/?name=', ))
    warehouse = AutoCompleteSelectField(
        LOOKUPS['asset_warehouse'],
        required=True,
        plugin_options=dict(
            add_link='/admin/ralph_assets/warehouse/add/?name=', ))

    def __init__(self, *args, **kwargs):
        mode = kwargs.get('mode')
        if mode:
            del kwargs['mode']
        super(BaseAssetForm, self).__init__(*args, **kwargs)
        if mode == "dc":
            self.fields['type'].choices = [(c.id, c.desc)
                                           for c in AssetType.DC.choices]
        elif mode == "back_office":
            self.fields['type'].choices = [(c.id, c.desc)
                                           for c in AssetType.BO.choices]
コード例 #18
0
class ReleaseElementForm(ModelForm):
    release = AutoCompleteSelectField('release')
    package = AutoCompleteSelectField('package', label="Package")
    application = AutoCompleteSelectField('application', label="Application", required=False)
    
    class Meta:
        model = ReleaseElement

    def __init__(self, *args, **kwargs):
        super(ReleaseElementForm, self).__init__(*args, **kwargs)
        instance = getattr(self, 'instance', None)
        if instance and instance.id and instance.release.deployment_requests.exists():
            force_readonly(self)
コード例 #19
0
class featuresForm(forms.ModelForm):
    url = forms.CharField(label='URI',
                          required=True,
                          widget=forms.TextInput(attrs={'size': '50'}))
    authority_record = AutoCompleteSelectField('authority_record',
                                               required=False)
    time_frame = AutoCompleteSelectField('time_frame', required=False)
    feature_type = AutoCompleteSelectField('feature_type', required=False)

    #  exclude = ('info',)

    class Meta:
        model = Feature
コード例 #20
0
class CompanyFormSet(forms.ModelForm):
    local_tax_office = AutoCompleteSelectField('local_tax',
                                               label='地税局',
                                               show_help_text=False,
                                               required=False)

    national_tax_office = AutoCompleteSelectField('national_tax',
                                                  label='国税局',
                                                  show_help_text=False,
                                                  required=False)

    class Meta:
        model = Company
        fields = '__all__'
コード例 #21
0
class ApplicantForm(forms.ModelForm):
    class Meta:
        model = Applicant
        widgets = {
            'total_income':
            NumberInput(attrs={
                'style': 'text-align:right;',
                'step': .01
            }),
            'adjusted_available_income':
            NumberInput(attrs={
                'style': 'text-align:right;',
                'step': .01
            }),
            'calculated_payment':
            NumberInput(attrs={
                'style': 'text-align:right;',
                'step': .01
            }),
        }

    ssn = USSocialSecurityNumberField(required=False, label="SSN")
    siblings = AutoCompleteSelectMultipleField('all_student', required=False)
    parent_guardians = AutoCompleteSelectMultipleField('emergency_contact',
                                                       required=False)
    application_decision_by = AutoCompleteSelectField('faculty_user',
                                                      required=False)
コード例 #22
0
class AssessmentForm(forms.Form):
    target = AutoCompleteSelectField(
        'digital_objects-embedded',
        required=True,
        help_text=None,
    )
    rubric = AutoCompleteSelectField(
        'rubrics-embedded',
        required=True,
        help_text=None,
    )
    project = AutoCompleteSelectField(
        'projects-embedded',
        required=False,
        help_text=None,
    )
コード例 #23
0
ファイル: forms.py プロジェクト: acheype/fatercal
class AllTaxon(forms.Form):
    taxon = AutoCompleteSelectField("valid_and_syn",
                                    required=True,
                                    help_text=None)

    class Meta:
        model = Taxon
コード例 #24
0
ファイル: forms.py プロジェクト: zhouli121018/nodejsgm
class CustomerSenderBlacklistBatchForm(forms.ModelForm):
    customer = AutoCompleteSelectField('customer',
                                       required=False,
                                       help_text=None,
                                       label=u'用户/公司',
                                       plugin_options={
                                           'autoFocus': True,
                                           'minLength': 1
                                       })
    senders = forms.CharField(label=u'发件人',
                              widget=forms.Textarea,
                              required=True,
                              help_text=u'一行一条记录')

    def __init__(self, *args, **kwargs):
        super(CustomerSenderBlacklistBatchForm,
              self).__init__(*args, **kwargs)  # populates the post
        self.fields['customer'].queryset = Customer.objects.all().order_by(
            'username')
        self.fields[
            'customer'].label_from_instance = lambda obj: "%s ( %s )" % (
                obj.username, obj.company)

    def clean_customer(self):
        data = self.cleaned_data['customer']
        is_global = self.data.get('is_global', False)
        if not is_global and not data:
            raise forms.ValidationError(u"如果是非全局变量,请添加相应客户")
        return data

    class Meta:
        model = CustomerSenderBlacklist
        exclude = ['creater', 'operater', 'operate_time', 'sender']
コード例 #25
0
ファイル: forms.py プロジェクト: alhayden/lnldb
class ProjectionistForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        self.helper = FormHelper()
        self.helper.form_class = "form-horizontal"
        self.helper.form_method = 'post'
        self.helper.form_action = ''
        self.helper.layout = Layout(
            'user',
            # 'pit_level',
            'license_number',
            Field('license_expiry', css_class="datepick"),
            FormActions(Submit('save', 'Save Changes'), ))
        super(ProjectionistForm, self).__init__(*args, **kwargs)
        self.fields['user'].queryset = get_user_model().objects.exclude(
            projectionist__isnull=False)

    user = AutoCompleteSelectField(
        'Users',
        required=True,
        plugin_options={
            'position':
            "{ my : \"right top\", at: \"right bottom\", of: \"#id_person_name_text\"},'minlength':4"
        })

    class Meta:
        model = Projectionist
        fields = ('user', 'license_number', 'license_expiry')
コード例 #26
0
ファイル: forms.py プロジェクト: zhouli121018/nodejsgm
class SpamRptBlacklistBatchForm(forms.ModelForm):
    customer = AutoCompleteSelectField('customer',
                                       required=True,
                                       help_text=None,
                                       label=u'用户/公司',
                                       plugin_options={
                                           'autoFocus': True,
                                           'minLength': 1
                                       })
    recipients = forms.CharField(label=u'收件人',
                                 widget=forms.Textarea,
                                 required=True,
                                 help_text=u'一行一条记录')

    def __init__(self, *args, **kwargs):
        super(SpamRptBlacklistBatchForm,
              self).__init__(*args, **kwargs)  # populates the post
        self.fields['customer'].queryset = Customer.objects.all().order_by(
            'username')
        self.fields[
            'customer'].label_from_instance = lambda obj: "%s ( %s )" % (
                obj.username, obj.company)

    class Meta:
        model = SpamRptBlacklist
        exclude = [
            'created', 'creater', 'operater', 'operate_time', 'recipient'
        ]
コード例 #27
0
ファイル: views.py プロジェクト: Benmiller313/theKeeperPool
class PlayerSearchForm(forms.Form):
	q = AutoCompleteSelectField(
		'player',
		required=True,
		help_text="help_text",
		label="label",
		)
コード例 #28
0
 def __new__(cls, name, bases, attrs):
     new_attrs = {}
     if (hasattr(model_class, 'geo')):
         new_attrs['geo'] = FormField(GeoLocationForm, related=True)
     if (hasattr(model_class, 'user')):
         new_attrs['user'] = AutoCompleteSelectField('user',
                                                     required=False)
     if (hasattr(model_class, 'avatar')):
         new_attrs['avatar'] = FormField(ImageForm,
                                         related=True,
                                         required=False)
     opts = model_class._meta
     # Avoid circular import
     from django.db.models.fields import Field as ModelField
     sortable_virtual_fields = [
         f for f in opts.virtual_fields if isinstance(f, ModelField)
     ]
     fields = dict(
         (f.name, f)
         for f in sorted(opts.concrete_fields +
                         sortable_virtual_fields + opts.many_to_many))
     for key, value in new_attrs.items():
         value.label = fields[key].verbose_name
         value.help_text = fields[key].help_text
         value.required = (fields[key].blank == False
                           and fields[key].null == False)
     attrs.update(new_attrs)
     return super(BetterMetaClass, cls).__new__(cls, name, bases, attrs)
コード例 #29
0
class OrderForm(forms.ModelForm):
  customer = AutoCompleteSelectField('customer', required=False)
  
  def __init__(self, *args, **kwargs):
    super(OrderForm, self).__init__(*args, **kwargs)
    
    self.fields['number'].label = "Order/Receipt #"
    self.fields['number'].required = True
    
    self.fields['status'].initial='N'
    self.fields['status'].required = True
    
    #self.fields['order_date'].widget = BootstrapDateInput()
    self.fields['order_date'].widget = DateTimePicker(options=DATEPICKER_OPTIONS)
    self.fields['order_date'].label = "Ordered Date"
    self.fields['order_date'].widget.attrs['class'] += " order-date"
    
    self.fields['subtotal_after_discount'].required = True

  def clean_number(self):
    ''' 
    SO number validation: make sure that order 
    numbers are valid according to specific format
    '''
    number = self.cleaned_data.get('number')
    if not order_utils.is_valid_order_number(number):
      raise forms.ValidationError("Order number should be in the following format: %s" % settings.ORDER_FORMAT_DESC)
    elif order_utils.is_duplicate_order_exists(number, self.instance):
      raise forms.ValidationError("Order with the same number already exists")
    return number
    
  class Meta:
    model = Order
    fields = "__all__" 
コード例 #30
0
class ServiceCatalogMixin(forms.ModelForm):
    # although it is possible, this mixin shouldn't be instantiated on its own
    # (that's why it is still called a mixin, while technically it is a
    # subclass of ModelForm and therefore it *can* be instantiated)
    # -- just try to think of it as an abstract class, ok? ;)

    service = AutoCompleteSelectField(
        ('ralph.ui.channels', 'ServiceCatalogLookup'),
        required=True,
        label=_('Service catalog'),
    )
    device_environment = forms.ModelChoiceField(
        required=True,
        queryset=DeviceEnvironment.objects.all(),
        label=_('Device environment'),
    )

    def clean_device_environment(self):
        device_environment = self.cleaned_data['device_environment']
        service = self.cleaned_data['service']
        envs_allowed = service.get_environments()
        if device_environment not in envs_allowed:
            envs_allowed_str = ', '.join([e.name for e in envs_allowed])
            if len(envs_allowed) > 0:
                msg = (
                    "This value is not allowed for the service selected. "
                    "Use one of these instead: {}.".format(envs_allowed_str))
            else:
                msg = "This value is not allowed for the service selected."
            raise forms.ValidationError(msg)
        return device_environment