コード例 #1
0
ファイル: datatables.py プロジェクト: atlas-comp-cog/acc
 def col_defs(self):
     type_col = Col(self,
                    'type',
                    model_col=models.Experiment.type,
                    choices=get_distinct_values(models.Experiment.type))
     if self.parameter:
         return [
             ValueNameCol(self, 'value'),
             LinkCol(self,
                     'language',
                     model_col=Language.name,
                     get_object=lambda i: i.valueset.language),
             Col(self,
                 'sample_size',
                 model_col=models.Experiment.sample_size),
             type_col,
             RefsCol(self, 'source'),
             DetailsRowLinkCol(self, '#', button_text='abstract'),
         ]
     if self.language:
         return [
             ValueNameCol(self, 'value'),
             Col(self,
                 'sample_size',
                 model_col=models.Experiment.sample_size),
             type_col,
             LinkCol(self,
                     'parameter',
                     model_col=Parameter.name,
                     get_object=lambda i: i.valueset.parameter),
             RefsCol(self, 'source'),
             DetailsRowLinkCol(self, '#', button_text='abstract'),
         ]
     return [
         ValueNameCol(self, 'value'),
         LinkCol(self,
                 'language',
                 model_col=Language.name,
                 get_object=lambda i: i.valueset.language),
         Col(self, 'sample_size', model_col=models.Experiment.sample_size),
         type_col,
         LinkCol(self,
                 'parameter',
                 model_col=Parameter.name,
                 get_object=lambda i: i.valueset.parameter),
         RefsCol(self, 'source'),
         DetailsRowLinkCol(self, '#', button_text='abstract'),
     ]
コード例 #2
0
ファイル: datatables.py プロジェクト: clld/kba
    def col_defs(self):
        name_col = ValueNameCol(self, 'value')
        if self.parameter and self.parameter.domain:
            name_col.choices = [de.name for de in self.parameter.domain]

        res = [DetailsRowLinkCol(self, 'd')]

        if self.parameter:
            return res + [
                LinkCol(self,
                        'language',
                        model_col=Language.name,
                        get_object=lambda i: i.valueset.language),
                name_col,
                RefsCol(self, 'source'),
                LinkToMapCol(
                    self, 'm', get_object=lambda i: i.valueset.language),
            ]

        if self.language:
            return res + [
                name_col,
                LinkCol(self,
                        'parameter',
                        sTitle=self.req.translate('Parameter'),
                        model_col=Parameter.name,
                        get_object=lambda i: i.valueset.parameter),
                # RefsCol(self, 'source'),
                Col(self,
                    'source orthography',
                    model_col=Word.sourceorthography),
                Col(self, 'KBA orthography', model_col=Word.kbaorthography),
                Col(self, 'Word class', model_col=Word.wordclass),
                Col(self, 'Grammatical notes',
                    model_col=Word.grammaticalnotes),
                Col(self,
                    'Idiolectal variant',
                    model_col=Word.idiolectalvariant),
                Col(self, 'comment', model_col=Word.comment),
                # Col(self, 'original translation', model_col=Word.originaltranslation)
            ]

        return res + [
            name_col,
            ValueSetCol(self, 'valueset', bSearchable=False, bSortable=False),
        ]
コード例 #3
0
ファイル: datatables.py プロジェクト: clld/grambank
    def col_defs(self):
        name_col = ValueNameCol(self, 'value')
        if self.parameter and self.parameter.domain:
            name_col.choices = [(de.name, de.description) for de in self.parameter.domain]

        cols = []
        if self.parameter:
            cols = [
                LinkCol(
                    self, 'Name',
                    model_col=common.Language.name,
                    get_object=lambda i: i.valueset.language),
                Col(
                    self, 'ISO-639-3',
                    model_col=common.Language.id,
                    get_object=lambda i: i.valueset.language),
                LinkCol(
                    self, 'Contributor',
                    model_col=common.Contributor.name,
                    get_object=lambda i: i.valueset.contribution.contributor_assocs[0].contributor,
                )
            ]
        elif self.language:
            cols = [
                FeatureIdCol(
                    self, 'Feature Id',
                    sClass='left', model_col=common.Parameter.id,
                    get_object=lambda i: i.valueset.parameter),
                LinkCol(
                    self, 'Feature',
                    model_col=common.Parameter.name,
                    get_object=lambda i: i.valueset.parameter)
            ]

        cols = cols + [
            name_col,
            RefsCol(self, 'Source',
                model_col=common.ValueSet.source,
                get_object=lambda i: i.valueset),
            Col(self, 'Comment', model_col=common.Value.description),
            #Col(self, 'Contributed By', model_col=common.Contribution.name,
            #        get_object=lambda i: i.valueset.contribution)
 
        ]
        return cols
コード例 #4
0
    def col_defs(self):
        name_col = ValueNameCol(self, 'value')
        if self.parameter and self.parameter.domain:
            name_col.choices = [(de.name, de.description)
                                for de in self.parameter.domain]

        cols = []
        if self.parameter:
            cols = [
                LinkCol(self,
                        'Name',
                        model_col=common.Language.name,
                        get_object=lambda i: i.valueset.language),
                Col(self,
                    'ISO-639-3',
                    model_col=common.Language.id,
                    get_object=lambda i: i.valueset.language)
            ]
        elif self.language:
            cols = [
                LinkCol(self,
                        'Feature',
                        model_col=common.Parameter.name,
                        get_object=lambda i: i.valueset.parameter),
                FeatureIdCol(self,
                             'Feature Id',
                             sClass='left',
                             model_col=common.Parameter.id,
                             get_object=lambda i: i.valueset.parameter)
            ]

        cols = cols + [
            name_col,
            Col(self,
                'Source',
                model_col=common.ValueSet.source,
                get_object=lambda i: i.valueset),
            Col(self, 'Comment', model_col=lsiValue.comment),
            CommentCol(self, '_'),
        ]
        return cols
コード例 #5
0
    def col_defs(self):
        name_col = ValueNameCol(self, 'value')
        if self.parameter and self.parameter.domain:
            name_col.choices = [de.name for de in self.parameter.domain]

        cols = []
        if self.parameter:
            cols = [
                LinkCol(
                    self, 'Name',
                    model_col=common.Language.name,
                    get_object=lambda i: i.valueset.language),
                LanguageIdCol(
                    self, 'ISO-639-3',
                    model_col=common.Language.id,
                    get_object=lambda i: i.valueset.language),
                FamilyCol(
                    self, 'Family',
                    get_object=lambda i: i.valueset.language.family)]
        elif self.language:
            cols = [
                FeatureIdCol(
                    self, 'Feature Id',
                    sClass='left', model_col=common.Parameter.id,
                    get_object=lambda i: i.valueset.parameter),
                LinkCol(
                    self, 'Feature',
                    model_col=common.Parameter.name,
                    get_object=lambda i: i.valueset.parameter)]

        cols = cols + [
            name_col,
            Col(self, 'description'),
            #RefsCol(self, 'source'),
            RefsCol(self, 'Source',
                model_col=common.ValueSet.source,
                get_object=lambda i: i.valueset),
            Col(self, 'Comment', model_col=sailsValue.comment)
        ]
        return cols
コード例 #6
0
ファイル: datatables.py プロジェクト: clld/sails
    def col_defs(self):
        name_col = ValueNameCol(self, 'value')
        if self.parameter and self.parameter.domain:
            name_col.choices = [de.name for de in self.parameter.domain]

        cols = []
        if self.parameter:
            cols = [
                LinkCol(
                    self, 'Name',
                    model_col=common.Language.name,
                    get_object=lambda i: i.valueset.language),
                LanguageIdCol(
                    self, 'ISO-639-3',
                    model_col=common.Language.id,
                    get_object=lambda i: i.valueset.language),
                FamilyCol(
                    self, 'Family',
                    get_object=lambda i: i.valueset.language.family)]
        elif self.language:
            cols = [
                FeatureIdCol(
                    self, 'Feature Id',
                    sClass='left', model_col=common.Parameter.id,
                    get_object=lambda i: i.valueset.parameter),
                LinkCol(
                    self, 'Feature',
                    model_col=common.Parameter.name,
                    get_object=lambda i: i.valueset.parameter)]

        cols = cols + [
            name_col,
            Col(self, 'description'),
            #RefsCol(self, 'source'),
            RefsCol(self, 'Source',
                model_col=common.ValueSet.source,
                get_object=lambda i: i.valueset),
            Col(self, 'Comment', model_col=sailsValue.comment)
        ]
        return cols
コード例 #7
0
    def col_defs(self):
        kw = {}
        if self.language:
            kw['bSearchable'] = False
            kw['bSortable'] = False
        name_col = ValueNameCol(self, 'value', **kw)
        if self.parameter and self.parameter.domain:
            name_col.choices = [de.name for de in self.parameter.domain]

        class ValueLanguageCol(LinkCol):
            def search(self, qs):
                if self.dt.language:
                    return ValueSet.language_pk == int(qs)
                if self.dt.parameter:
                    return icontains(self.dt.vs_lang.name, qs)

            def order(self):
                if self.dt.parameter:
                    return cast(self.dt.vs_lang.id, Integer)
                if self.dt.language:
                    return ValueSet.language_pk

        lang_col = ValueLanguageCol(
            self,
            'language',
            model_col=Language.name,
            get_obj=lambda item: item.valueset.language,
            bSearchable=bool(self.parameter or self.language),
            bSortable=bool(self.parameter or self.language))
        if self.language:
            if self.language.lects:
                lang_col.choices = [
                    (l.pk, l.name) for l in [self.language] + self.language.lects]
                lang_col.js_args['sTitle'] = 'lect'
            else:
                lang_col = None

        get_param = lambda i: i.valueset.parameter
        if self.parameter:
            return nfilter([
                lang_col,
                name_col,
                FrequencyCol(self, '%') if self.parameter.multivalued else None,
                Col(self,
                    'lexifier',
                    format=lambda i: i.valueset.language.lexifier,
                    model_col=self.vs_lect.lexifier,
                    choices=get_distinct_values(
                        Lect.lexifier,
                        key=lambda v: 'z' + v if v == 'Other' else v)),
                LinkToMapCol(
                    self, 'm', get_object=lambda i: None
                    if i.valueset.language.language_pk else i.valueset.language),
                DetailsRowLinkCol(self, 'more')
                if self.parameter.feature_type != 'sociolinguistic' else None,
                RefsCol(self, 'source')
                if self.parameter.feature_type != 'segment' else None,
            ])
        if self.language:
            return nfilter([
                IntegerIdCol(self, 'id', get_obj=get_param, model_col=Parameter.id),
                LinkCol(self, 'parameter', get_obj=get_param, model_col=Parameter.name),
                name_col,
                FrequencyCol(self, '%'),
                lang_col,
                DetailsRowLinkCol(self, 'more'),
                RefsCol(self, 'source'),
            ])
        return [
            LinkCol(self, 'parameter', get_obj=get_param, model_col=Parameter.name),
            name_col,
            FrequencyCol(self, '%'),
            lang_col,
            DetailsRowLinkCol(self, 'more'),
            RefsCol(self, 'source'),
        ]
コード例 #8
0
ファイル: datatables.py プロジェクト: HedvigS/grambank
    def col_defs(self):
        name_col = ValueNameCol(self, 'value')
        if self.parameter and self.parameter.domain:
            name_col.choices = [(de.name, de.description)
                                for de in self.parameter.domain]

        cols = []
        if self.parameter:
            cols = [
                LinkCol(self,
                        'Name',
                        model_col=common.Language.name,
                        get_object=lambda i: i.valueset.language),
                Col(self,
                    'Glottocode',
                    model_col=common.Language.id,
                    get_object=lambda i: i.valueset.language),
                LinkCol(
                    self,
                    'Contributor',
                    model_col=common.Contributor.name,
                    get_object=lambda i: i.valueset.contribution.
                    contributor_assocs[0].contributor,
                )
            ]
        elif self.language:
            cols = [
                IdCol(self,
                      'Feature Id',
                      sClass='left',
                      model_col=common.Parameter.id,
                      get_object=lambda i: i.valueset.parameter),
                LinkCol(self,
                        'Feature',
                        model_col=common.Parameter.name,
                        get_object=lambda i: i.valueset.parameter)
            ]
        elif self.family:
            cols = [
                LinkCol(self,
                        'Name',
                        model_col=common.Language.name,
                        get_object=lambda i: i.valueset.language)
            ]
            if not self.feature:
                cols.extend([
                    IdCol(self,
                          'Feature Id',
                          sClass='left',
                          model_col=common.Parameter.id,
                          get_object=lambda i: i.valueset.parameter),
                    LinkCol(
                        self,
                        'Feature',
                        model_col=common.Parameter.name,
                        get_object=lambda i: i.valueset.parameter,
                        choices=get_distinct_values(common.Parameter.name),
                    )
                ])

        cols = cols + [
            name_col,
            RefsCol(self,
                    'Source',
                    model_col=common.ValueSet.source,
                    get_object=lambda i: i.valueset),
            Col(self, 'Comment', model_col=common.Value.description),
            #Col(self, 'Contributed By', model_col=common.Contribution.name,
            #        get_object=lambda i: i.valueset.contribution)
        ]
        return cols
コード例 #9
0
ファイル: datatables.py プロジェクト: DarjaAppelganz/apics
    def col_defs(self):
        kw = {}
        if self.language:
            kw['bSearchable'] = False
            kw['bSortable'] = False
        name_col = ValueNameCol(self, 'value', **kw)
        if self.parameter and self.parameter.domain:
            name_col.choices = [de.name for de in self.parameter.domain]

        class ValueLanguageCol(LinkCol):
            def search(self, qs):
                if self.dt.language:
                    return ValueSet.language_pk == int(qs)
                if self.dt.parameter:
                    return icontains(self.dt.vs_lang.name, qs)

            def order(self):
                if self.dt.parameter:
                    return cast(self.dt.vs_lang.id, Integer)
                if self.dt.language:
                    return ValueSet.language_pk

        lang_col = ValueLanguageCol(
            self,
            'language',
            model_col=Language.name,
            get_obj=lambda item: item.valueset.language,
            bSearchable=bool(self.parameter or self.language),
            bSortable=bool(self.parameter or self.language))
        if self.language:
            if self.language.lects:
                lang_col.choices = [
                    (l.pk, l.name)
                    for l in [self.language] + self.language.lects
                ]
                lang_col.js_args['sTitle'] = 'lect'
            else:
                lang_col = None

        get_param = lambda i: i.valueset.parameter
        if self.parameter:
            return nfilter([
                lang_col,
                name_col,
                FrequencyCol(self, '%')
                if self.parameter.multivalued else None,
                Col(self,
                    'lexifier',
                    format=lambda i: i.valueset.language.lexifier,
                    model_col=self.vs_lect.lexifier,
                    choices=get_distinct_values(Lect.lexifier,
                                                key=lambda v: 'z' + v
                                                if v == 'Other' else v)),
                LinkToMapCol(self,
                             'm',
                             get_object=lambda i: None if i.valueset.language.
                             language_pk else i.valueset.language),
                DetailsRowLinkCol(self, 'more')
                if self.parameter.feature_type != 'sociolinguistic' else None,
                RefsCol(self, 'source')
                if self.parameter.feature_type != 'segment' else None,
            ])
        if self.language:
            return nfilter([
                IntegerIdCol(self,
                             'id',
                             get_obj=get_param,
                             model_col=Parameter.id),
                LinkCol(self,
                        'parameter',
                        get_obj=get_param,
                        model_col=Parameter.name),
                name_col,
                FrequencyCol(self, '%'),
                lang_col,
                DetailsRowLinkCol(self, 'more'),
                RefsCol(self, 'source'),
            ])
        return [
            LinkCol(self,
                    'parameter',
                    get_obj=get_param,
                    model_col=Parameter.name),
            name_col,
            FrequencyCol(self, '%'),
            lang_col,
            DetailsRowLinkCol(self, 'more'),
            RefsCol(self, 'source'),
        ]
コード例 #10
0
ファイル: datatables.py プロジェクト: SusanneMichaelis/apics
    def col_defs(self):
        kw = {}
        if self.language:
            kw['bSearchable'] = False
            kw['bSortable'] = False
        name_col = ValueNameCol(self, 'value', **kw)
        if self.parameter and self.parameter.domain:
            name_col.choices = [de.name for de in self.parameter.domain]

        class _ValueLanguageCol(ValueLanguageCol):
            def get_obj(self, item):
                return item.valueset.language

            def search(self, qs):
                if self.dt.language:
                    return ValueSet.language_pk == int(qs)
                if self.dt.parameter:
                    return icontains(self.dt.vs_lang.name, qs)

            def order(self):
                if self.dt.parameter:
                    return cast(self.dt.vs_lang.id, Integer)
                if self.dt.language:
                    return ValueSet.language_pk

        class LexifierCol(Col):
            def format(self, item):
                return item.valueset.language.lexifier

            def search(self, qs):
                return icontains(self.dt.vs_lect.lexifier, qs)

            def order(self):
                return self.dt.vs_lect.lexifier

        lang_col = _ValueLanguageCol(
            self,
            'language',
            model_col=Language.name,
            bSearchable=bool(self.parameter or self.language),
            bSortable=bool(self.parameter or self.language))
        if self.language:
            if self.language.lects:
                lang_col.choices = [(l.pk, l.name) for l in [self.language] + self.language.lects]
                lang_col.js_args['sTitle'] = 'lect'
                lang_col.js_args['sDescription'] = 'Some values pertain to sub-lects only'
            else:
                lang_col = None

        frequency_col = FrequencyCol(
            self, '%',
            sDescription='Frequency',
            sClass='center',
            bSearchable=False,
            model_col=Value.frequency,
            input_size='mini')

        if self.parameter:
            return filter(None, [
                lang_col,
                name_col,
                frequency_col if self.parameter.multivalued else None,
                LexifierCol(
                    self,
                    'lexifier',
                    choices=get_distinct_values(
                        Lect.lexifier,
                        key=lambda v: 'z' + v if v == 'Other' else v)),
                _LinkToMapCol(self, 'm'),
                DetailsRowLinkCol(self, 'more') if self.parameter.feature_type != 'sociolinguistic' else None,
                RefsCol(self, 'source', bSearchable=False, bSortable=False) if self.parameter.feature_type != 'segment' else None,
            ])
        if self.language:
            return filter(None, [
                _ParameterIdCol(self, 'feature id', input_size='mini', sClass='right'),
                _ParameterCol(self, 'parameter', model_col=Parameter.name),
                name_col,
                frequency_col,
                lang_col,
                DetailsRowLinkCol(self, 'more'),
                RefsCol(self, 'source', bSearchable=False, bSortable=False),
            ])
        return [
            _ParameterCol(self, 'parameter', model_col=Parameter.name),
            name_col,
            frequency_col,
            lang_col,
            DetailsRowLinkCol(self, 'more'),
            RefsCol(self, 'source', bSearchable=False, bSortable=False),
        ]