예제 #1
0
 class Meta:
     model = Card
     # exclude = ['modified_time']
     fields = (
         # 'title',
         # 'description',
         'column',
         'priority',
         'type',
         'start_time',
         'due_date',
         'owner',
         'watchers',
         'company',
         'estimate',
         'board',
         'tags',
     )
     widgets = {
         'title':
         forms.TextInput(
             attrs={
                 'placeholder': "Enter card title",
                 'style': 'width: 86%; border: 0px; font-size: 16pt;',
             }),
         'description':
         forms.Textarea(),
         'board':
         forms.HiddenInput(),
         'estimate':
         forms.NumberInput(
             attrs={
                 'required': False,
                 'style':
                 'width: 60px; border: 1px solid #FFBBD7; text-align: center;',
                 'min': '15',
                 'step': '15',
                 'value': '15',
             }),
         'watchers':
         autocomplete.Select2Multiple(url='watcher-autocomplete', ),
         'tags':
         autocomplete.TagSelect2(url='tag-autocomplete'),
         'company':
         autocomplete.Select2(
             url='company-autocomplete',
             attrs={'data-placeholder': 'Select Company'},
         ),
         'owner':
         autocomplete.Select2(url='owner-autocomplete'),
     }
     labels = {
         'title': '',
         'description': '',
         'column': 'Choose the column',
         'tags': '',
     }
예제 #2
0
class TestForm(autocomplete.FutureModelForm):
    test = autocomplete.TagulousField(
        required=False,
        queryset=TestModel.test.tag_model.objects.all(),
        widget=autocomplete.TagSelect2(url='select2_tagulous'),
    )

    class Meta:
        model = TestModel
        fields = ('name', 'test')
예제 #3
0
class AutocompleteCharField(forms.CharField):
    widget = autocomplete.TagSelect2(
        url='vocabs-ac:external-link-ac',
        forward=['endpoint'],
        attrs={
            'data-placeholder':
            'Type at least 3 characters to get autocomplete suggestions ...',
            'data-minimum-input-length': 3,
        },
    )

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.required = False

    def to_python(self, value):
        """Normalize data to keep only URIs."""
        clean_value = ",".join(re.findall("(?P<url>https?://[^\s\,]+)", value))
        return clean_value
예제 #4
0
class ExpressionStudyCreateForm(forms.ModelForm):

    ome = autocomplete.Select2ListCreateChoiceField(
                required=False,
                widget=autocomplete.TagSelect2(url='/studies/ome-autocomplete', attrs={"data-tags":"true", "data-html":True})
              )

    experimental_design = autocomplete.Select2ListCreateChoiceField(
                required=False,
                widget=autocomplete.TagSelect2(url='/studies/experimental-design-autocomplete', attrs={"data-tags":"true", "data-html":True})
              )

    topics = autocomplete.Select2ListCreateChoiceField(
                required=False,
                widget=autocomplete.TagSelect2(url='/studies/topic-autocomplete', attrs={"data-tags":"true", "data-html":True})
              )

    tissues = autocomplete.Select2ListCreateChoiceField(
                required=False,
                widget=autocomplete.TagSelect2(url='/studies/tissue-autocomplete', attrs={"data-tags":"true", "data-html":True})
              )
    age = SimpleArrayField(forms.CharField(), required=False)

    sex = autocomplete.Select2ListCreateChoiceField(
                required=False,
                widget=autocomplete.TagSelect2(url='/studies/sex-autocomplete', attrs={"data-tags":"true", "data-html":True})
              )

    dev_stage = autocomplete.Select2ListCreateChoiceField(
                required=False,
                widget=autocomplete.TagSelect2(url='/studies/dev-stage-autocomplete', attrs={"data-tags":"true", "data-html":True})
              )

    antibody = autocomplete.Select2ListCreateChoiceField(
                required=False,
                widget=autocomplete.TagSelect2(url='/studies/antibody-autocomplete', attrs={"data-tags":"true", "data-html":True})
              )

    mutant = autocomplete.Select2ListCreateChoiceField(
                required=False,
                widget=autocomplete.TagSelect2(url='/studies/mutant-autocomplete', attrs={"data-tags":"true", "data-html":True})
              )

    cell_sorted = autocomplete.Select2ListCreateChoiceField(
                required=False,
                widget=autocomplete.TagSelect2(url='/studies/cell-sorted-autocomplete', attrs={"data-tags":"true", "data-html":True})
              )

    keywords = SimpleArrayField(forms.CharField(), required=False)

    class Meta:
        model = ExpressionStudy
        fields = ["article", "pmid", "samples_count", "read_groups", "edit_groups"]

    def __init__(self, *args, **kwargs):
        self.user = kwargs.pop('user')
        super(ExpressionStudyCreateForm, self).__init__(*args, **kwargs)
        self.fields['read_groups'].help_text = "Groups with viewing permission on project and subentities. Will be ignored if the visibility is set to public. Use 'ctrl' to select multiple/unselect."
        self.fields['edit_groups'].help_text = "Groups with editing permission on project and subentities. Use 'ctrl' to select multiple/unselect."

        # TODO : Give link to group creation interface?
        groups = self.user.groups.all()
        self.fields['read_groups'].queryset = groups
        self.fields['edit_groups'].queryset = groups

        self.fields.keyOrder = [
            'article',
            'pmid',
            'samples_count',
            'species'
            'ome',
            'technology',
            'experimental_design',
            'topics',
            'tissues',
            'age',
            'sex',
            'dev_stage',
            'antibody'
            'mutant',
            'cell_sorted',
            'edit_groups',
            'read_groups']

        self.helper = FormHelper(self)
        self.helper.form_method = 'POST'
        self.helper.add_input(Submit('save', 'Save'))
예제 #5
0
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')