Example #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
Example #2
0
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")
Example #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"))
Example #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',
        ]
Example #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'
        ]
Example #6
0
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)
Example #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
Example #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)
Example #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)
Example #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)
Example #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)
Example #12
0
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')
Example #13
0
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.')
Example #14
0
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)
Example #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)
Example #16
0
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)
Example #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]
Example #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)
Example #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
Example #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__'
Example #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)
Example #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,
    )
Example #23
0
class AllTaxon(forms.Form):
    taxon = AutoCompleteSelectField("valid_and_syn",
                                    required=True,
                                    help_text=None)

    class Meta:
        model = Taxon
Example #24
0
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']
Example #25
0
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')
Example #26
0
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'
        ]
Example #27
0
class PlayerSearchForm(forms.Form):
	q = AutoCompleteSelectField(
		'player',
		required=True,
		help_text="help_text",
		label="label",
		)
Example #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)
Example #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__" 
Example #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