class TradingRouteForm(forms.Form): source_character = forms.ModelChoiceField( EVEPlayerCharacter.objects.all(), widget=autocomplete.ModelSelect2( url='eve_api:eveapi-character-autocomplete')) source_structure = forms.ModelChoiceField( Structure.objects.all(), widget=autocomplete.ModelSelect2( url='eve_api:eveapi-structure-autocomplete', forward=[forward.Field('source_character', 'character')], attrs={ 'data-minimum-input-length': 3, 'data-autocomplete-minimum-characters': 3, 'data-placeholder': "Structure Name (may take up to 10secs)" })) price_per_m3 = forms.IntegerField(min_value=0, initial=1500) collateral_pct = forms.FloatField(min_value=0, max_value=1000, initial=1.00) sales_tax = forms.FloatField(min_value=0, max_value=100, initial=2.00) broker_fee = forms.FloatField(min_value=0, max_value=100, initial=3.00) destination_character = forms.ModelChoiceField( EVEPlayerCharacter.objects.all(), widget=autocomplete.ModelSelect2( url='eve_api:eveapi-character-autocomplete')) destination_structure = forms.ModelChoiceField( Structure.objects.all(), widget=autocomplete.ModelSelect2( url='eve_api:eveapi-structure-autocomplete', forward=[forward.Field('destination_character', 'character')], attrs={ 'data-minimum-input-length': 3, 'data-autocomplete-minimum-characters': 3, 'data-placeholder': "Structure Name (may take up to 10secs)" })) #item_groups = forms.ModelMultipleChoiceField( # queryset=ItemGroup.objects.filter(creator__isnull=True), # required=True, # label="Item groups to import", # widget=autocomplete.ModelSelect2Multiple( # url='market:item-group-autocomplete', # #Eforward=[forward.Field('source_character', 'character')], # attrs={ # 'data-minimum-input-length': 0, # 'data-autocomplete-minimum-characters': 0, # 'data-placeholder': "" # } # ) #) class Meta: fields = ('__all__')
class Meta: model = TModel fields = ('name', 'checkbox', 'owner', 'test') widgets = { 'test': autocomplete.ModelSelect2(url='linked_data_rf', forward=(forward.Field(src="checkbox"), forward.Field(src="owner", dst="possessor"), forward.Const(val=42, dst="secret"))) }
class SuraIzinPenelitianMahasiswaCreateForm(forms.ModelForm): mahasiswa = forms.ModelChoiceField( queryset=Mahasiswa.objects.all(), widget=autocomplete.ModelSelect2(url='autocomplete-mahasiswa')) penelitian = forms.ModelChoiceField( queryset=Penelitian.objects.all(), widget=autocomplete.ModelSelect2( url='autocomplete-penelitian-base-mahasiswa', forward=(forward.Field('mahasiswa', 'mhs'), ))) class Meta: model = SuratIzinPenelitianMahasiswa fields = ('mahasiswa', 'penelitian', 'nomor_surat', 'nama_instansi', 'tujuan_surat', 'petugas') widgets = { 'nomor_surat': forms.TextInput( attrs={'placeholder': 'Tiga digit nomor surat : XXX '}), 'tujuan_surat': forms.TextInput(attrs={'placeholder': 'Gorontalo'}), 'nama_instansi': forms.TextInput( attrs={'placeholder': 'Nama Kantor / Lembaga / Perusahaan'}), 'petugas': forms.TextInput(attrs={'placeholder': 'Nama Petugas Lemlit'}), }
def get_forwards(self): forwards = [] for field in self.forwards: forwards.append(forward.Field(field, field)) if forwards: return tuple(forwards) return None
class Meta: model = Category fields = ('name', 'cat_estudio', 'catest') widgets = { 'catest': autocomplete.ModelSelect2Multiple( url='linked_data_rf', forward=(forward.Field(src="cat_estudio", dst="possessor"), forward.Const(val=42, dst="secret"))) }
class StoryCharacterRevisionForm(forms.ModelForm): class Meta: model = StoryCharacterRevision fields = ['character', 'additional_information', 'role', 'group', 'is_flashback', 'is_origin', 'is_death', 'notes'] help_texts = { 'role': 'You can enter what role the character played in the story', 'group': 'Character is appearing as a member of these groups.', } labels = {'is_flashback': 'Flashback', 'is_origin': 'Origin', 'is_death': 'Death'} widgets = { 'notes': forms.TextInput(attrs={'class': 'wide'}), } def __init__(self, *args, **kwargs): super(StoryCharacterRevisionForm, self).__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_tag = True self.helper.layout = Layout(*(f for f in self.fields)) instance = kwargs.get('instance', None) if instance: if instance.role or instance.group.exists() or \ instance.is_flashback or instance.is_origin or \ instance.is_death or instance.notes: self.fields['additional_information'].initial = True character = forms.ModelChoiceField( queryset=CharacterNameDetail.objects.all(), widget=autocomplete.ModelSelect2(url='character_name_autocomplete', forward=['language_code'], attrs={'style': 'min-width: 60em'}), required=True, help_text='By entering (any part of) a name select a character from the' ' database.' ) group = forms.ModelMultipleChoiceField( queryset=Group.objects.all(), widget=autocomplete.ModelSelect2Multiple( url='group_autocomplete', attrs={'data-html': True, 'style': 'min-width: 60em'}, forward=[forward.Field('character', 'character_name'), 'language_code']), help_text='Select a group the character is appearing as a member of.', required=False, ) additional_information = forms.BooleanField( required=False, help_text='Click to enter role, group, flashback, origin, death, or ' 'notes.')
def _make_forward_dict(f): """Convert forward declaration to a dictionary. A returned dictionary will be dumped to JSON while rendering widget. """ if isinstance(f, six.string_types): return forward.Field(f).to_dict() elif isinstance(f, forward.Forward): return f.to_dict() else: raise TypeError("Cannot use {} as forwarded value".format(f))
class PersonFilter(AutocompleteFilter): autocomplete_url = 'person-autocomplete' title = 'Owner' parameter_name = 'owner' forwards = [ forward.Field( 'from_country__id__exact', # Field name of filter input 'country_id' # Field name passed to the autocomplete_url endpoint # Read more at https://django-autocomplete-light.readthedocs.io/en/master/tutorial.html#filtering-results-based-on-the-value-of-other-fields-in-the-form ) ]
class Meta: model = models.AnalogousProducts fields = '__all__' widgets = { 'analogous_product': autocomplete.ModelSelect2( url='product-autocomplete', forward=(forward.Field('slug', 'exclude_slug'), forward.Const(ANALOGOUS_PRODUCTS_TYPES, 'filter_sub_types'))) }
class ReplaceNewAgencyForm(forms.Form): """Form for rejecting and replacing a new agency""" replace_jurisdiction = forms.ModelChoiceField( queryset=Jurisdiction.objects.filter(hidden=False), widget=autocomplete.ModelSelect2( url="jurisdiction-autocomplete", attrs={"data-placeholder": "Search for jurisdiction"}, ), ) replace_agency = forms.ModelChoiceField( label="Move this agency's requests to:", queryset=Agency.objects.filter(status="approved"), widget=autocomplete.ModelSelect2( url="agency-autocomplete", forward=(forward.Field("replace_jurisdiction", "jurisdiction"), ), attrs={"data-placeholder": "Search agencies"}, ), )
class Meta: model = models.Product fields = '__all__' widgets_dict = SeoFormMixin.Meta.widgets widgets_dict.update({ 'parent': autocomplete.ModelSelect2( url='product-autocomplete', forward=( forward.Field('slug', 'exclude_slug'), forward.Const([PRODUCT_WITH_VARIANTS], 'filter_sub_types'), )), 'short_description_ru': CKEditorWidget, 'short_description_uk': CKEditorWidget, 'full_description_ru': CKEditorWidget, 'full_description_uk': CKEditorWidget, }) widgets = widgets_dict
def get_forwards(self): return tuple( forward.Field(field, field) if isinstance(field, str) else field for field in self.forwards) or None
class RequestJobForm(forms.ModelForm): class Meta: model = RequestJob exclude = ('job_id', 'tgt_directory', 'global_status') username = forms.CharField(widget=forms.HiddenInput) src_host = forms.CharField(label="Source Host ", help_text="host:port", required=True, widget=autocomplete.ListSelect2( url='ensembl_dbcopy:src-host-autocomplete', attrs={ 'data-placeholder': 'Source host', 'data-minimum-input-length': 2 })) tgt_host = TrimmedCharField(label="Target Hosts", help_text="List of target hosts", required=True, widget=autocomplete.TagSelect2( url='ensembl_dbcopy:tgt-host-autocomplete', attrs={ 'data-placeholder': 'Target(s)', 'data-result-html': True })) src_incl_db = TrimmedCharField( label="Databases to copy", help_text='db1,db2 or %variation_99% or % (use with caution)', max_length=2048, required=True, widget=autocomplete.TagSelect2( url='ensembl_dbcopy:host-db-autocomplete', forward=[forward.Field('src_host', 'db_host')], attrs={'data-placeholder': 'Included Db(s)'})) src_skip_db = TrimmedCharField( label="Databases to exclude", help_text='db1,db2 or %mart%', max_length=2048, required=False, widget=autocomplete.TagSelect2( url='ensembl_dbcopy:host-db-autocomplete', forward=[forward.Field('src_host', 'db_host')], attrs={'data-placeholder': 'Skip table(s)'})) src_incl_tables = TrimmedCharField( label="Only Copy these tables", help_text='table1,table2,..', max_length=2048, required=False, widget=autocomplete.TagSelect2( url='ensembl_dbcopy:host-db-table-autocomplete', forward=[ forward.Field('src_host', 'db_host'), forward.Field('src_incl_db') ], attrs={'data-placeholder': 'Include table(s)'})) src_skip_tables = TrimmedCharField( label="Skip these tables", help_text='table1,table2,..', max_length=2048, required=False, widget=autocomplete.TagSelect2( url='ensembl_dbcopy:host-db-table-autocomplete', forward=[ forward.Field('src_host', 'db_host'), forward.Field('src_incl_db') ], attrs={'data-placeholder': 'Exclude table(s)'})) tgt_db_name = TrimmedCharField(label="Rename DB(s)on target(s)", help_text='db1,db2,..', max_length=2048, widget=forms.TextInput(attrs={'size': 50}), required=False) email_list = TrimmedCharField(label="Email(s)", help_text='Comma separated mail list', max_length=2048) def __init__(self, *args, **kwargs): super(RequestJobForm, self).__init__(*args, **kwargs) if self.data.get('src_host', None) is not None or self.initial.get( 'src_host', None) is not None: src_host = self.data.get('src_host') if self.data.get( 'src_host') is not None else self.initial.get('src_host') self.fields['src_host'].initial = src_host self.fields['src_host'].widget.choices = [(src_host, src_host)] if self.data.get('tgt_host', None) is not None: tgt_hosts = self.data.get('tgt_host') self.fields['tgt_host'].initial = tgt_hosts self.fields['tgt_host'].choices = [(val, val) for val in tgt_hosts] target_host_group_list = TargetHostGroup.objects.target_host_group_for_user( self.user) if len(target_host_group_list) >= 1: tgt_group_host = forms.TypedChoiceField( required=False, choices=target_host_group_list, empty_value='--select target group--') tgt_group_host.widget.attrs = {'onblur': "targetHosts()"} tgt_group_host.label = 'Host Target HostGroup' tgt_group_host.help_text = "Select HostGroup to autofill the target host" self.fields['tgt_group_host'] = tgt_group_host self.fields.move_to_end('tgt_group_host')