Ejemplo n.º 1
0
    def subcorp_form(self, request):
        """
        Displays a form to create a new subcorpus
        """
        self.disabled_menu_items = self.CONCORDANCE_ACTIONS + (MainMenu.VIEW, )
        method = request.form.get('method', 'gui')
        subcname = request.form.get('subcname', None)
        subcnorm = request.args.get('subcnorm', 'tokens')

        try:
            tt_sel = get_tt(self.corp, self._plugin_api).export_with_norms(subcnorm=subcnorm)
        except UserActionException as e:
            tt_sel = {'Normslist': [], 'Blocks': []}
            self.add_system_message('warning', e)

        out = dict(SubcorpList=())
        self._attach_aligned_query_params(out)
        corpus_info = self.get_corpus_info(self.args.corpname)

        out.update(dict(
            Normslist=tt_sel['Normslist'],
            text_types_data=tt_sel,
            selected_text_types=TextTypeCollector(self.corp, request).get_attrmap(),
            method=method,
            subcnorm=subcnorm,
            id_attr=corpus_info.metadata.id_attr,
            subcname=subcname,
            aligned_corpora=request.form.getlist('aligned_corpora')
        ))
        return out
Ejemplo n.º 2
0
    def subcorp_form(self, request):
        """
        Displays a form to create a new subcorpus
        """
        self.disabled_menu_items = self.CONCORDANCE_ACTIONS + (MainMenu.VIEW, )
        method = request.form.get('method', 'gui')
        subcname = request.form.get('subcname', None)
        subcnorm = request.args.get('subcnorm', 'tokens')

        try:
            tt_sel = get_tt(
                self.corp,
                self._plugin_api).export_with_norms(subcnorm=subcnorm)
        except UserActionException as e:
            tt_sel = {'Normslist': [], 'Blocks': []}
            self.add_system_message('warning', e)

        out = dict(SubcorpList=())
        self._attach_aligned_query_params(out)
        corpus_info = self.get_corpus_info(self.args.corpname)

        out.update(
            dict(Normslist=tt_sel['Normslist'],
                 text_types_data=tt_sel,
                 selected_text_types=TextTypeCollector(self.corp,
                                                       request).get_attrmap(),
                 method=method,
                 subcnorm=subcnorm,
                 id_attr=corpus_info.metadata.id_attr,
                 subcname=subcname,
                 aligned_corpora=request.form.getlist('aligned_corpora')))
        return out
Ejemplo n.º 3
0
 def text_types(self):
     ans = {}
     maxlistsize = settings.get_int('global', 'max_attr_list_size')
     subcorpattrs = self.current_corpus.get_conf('SUBCORPATTRS')
     if not subcorpattrs:
         subcorpattrs = self.current_corpus.get_conf('FULLREF')
     tt = get_tt(self.current_corpus, self).export(subcorpattrs, maxlistsize)
     for item in tt:
         for tt2 in item['Line']:
             ans[tt2['name']] = {'type': 'default', 'values': [x['v']
                                                               for x in tt2.get('Values', [])]}
     return ans
Ejemplo n.º 4
0
 def text_types(self):
     ans = {}
     maxlistsize = settings.get_int('global', 'max_attr_list_size')
     subcorpattrs = self.current_corpus.get_conf('SUBCORPATTRS')
     if not subcorpattrs:
         subcorpattrs = self.current_corpus.get_conf('FULLREF')
     tt = get_tt(self.current_corpus, self).export(subcorpattrs, maxlistsize)
     for item in tt:
         for tt2 in item['Line']:
             ans[tt2['name']] = {'type': 'default', 'values': [x['v']
                                                               for x in tt2.get('Values', [])]}
     return ans
Ejemplo n.º 5
0
    def subcorp_form(self, request):
        """
        Displays a form to create a new subcorpus
        """
        self.disabled_menu_items = self.CONCORDANCE_ACTIONS + (MainMenu.VIEW, )
        method = request.form.get('method', 'gui')
        within_json = request.form.get('within_json', None)
        if within_json:
            within_data = json.loads(within_json)
        else:
            within_data = []
        subcname = request.form.get('subcname', None)
        subcnorm = request.args.get('subcnorm', 'tokens')

        try:
            tt_sel = get_tt(
                self.corp,
                self._plugin_api).export_with_norms(subcnorm=subcnorm)
        except UserActionException as e:
            tt_sel = {'Normslist': [], 'Blocks': []}
            self.add_system_message('warning', e)
        structs_and_attrs = {}
        for s, a in [
                t.split('.')
                for t in self.corp.get_conf('STRUCTATTRLIST').split(',')
        ]:
            if s not in structs_and_attrs:
                structs_and_attrs[s] = []
            structs_and_attrs[s].append(a)

        out = dict(SubcorpList=())
        self._attach_aligned_query_params(out)
        corpus_info = self.get_corpus_info(self.args.corpname)
        out.update(
            dict(Normslist=tt_sel['Normslist'],
                 text_types_data=tt_sel,
                 structs_and_attrs=structs_and_attrs,
                 method=method,
                 within_data=within_data,
                 subcname=subcname,
                 subcnorm=subcnorm,
                 id_attr=corpus_info.metadata.id_attr))
        return out
Ejemplo n.º 6
0
    def subcorp_form(self, request, conc_args):
        """
        Displays a form to create a new subcorpus
        """
        self.disabled_menu_items = self.CONCORDANCE_ACTIONS
        method = request.form.get('method', 'gui')
        within_json = request.form.get('within_json', 'null')
        subcname = request.form.get('subcname', None)
        subcnorm = request.args.get('subcnorm', 'tokens')

        try:
            tt_sel = get_tt(self._corp(), self.ui_lang).export_with_norms(subcnorm=subcnorm)
        except UserActionException as e:
            tt_sel = {'Normslist': [], 'Blocks': []}
            self.add_system_message('warning', e)
        structs_and_attrs = {}
        for s, a in [t.split('.') for t in self._corp().get_conf('STRUCTATTRLIST').split(',')]:
            if s not in structs_and_attrs:
                structs_and_attrs[s] = []
            structs_and_attrs[s].append(a)

        out = {'SubcorpList': ()}
        if self.environ['REQUEST_METHOD'] == 'POST':
            self._store_checked_text_types(request.form, out)

        if plugins.has_plugin('subcmixer'):
            out['subcmixer_form_data'] = plugins.get('subcmixer').form_data(self._plugin_api)
        else:
            out['subcmixer_form_data'] = {}
        out.update({
            'TextTypeSel': tt_sel,
            'structs_and_attrs': structs_and_attrs,
            'method': method,
            'within_json': within_json,
            'subcname': subcname,
            'subcnorm': subcnorm
        })
        return out