Exemple #1
0
class CSVRsetView(CSVMixIn, AnyRsetView):
    """dumps raw result set in CSV"""
    __regid__ = 'csvexport'
    __select__ = any_rset()
    title = _('csv export')

    def call(self):
        writer = self.csvwriter()
        writer.writerow(self.columns_labels())
        rset, descr = self.cw_rset, self.cw_rset.description
        eschema = self._cw.vreg.schema.eschema
        for rowindex, row in enumerate(rset):
            csvrow = []
            for colindex, val in enumerate(row):
                etype = descr[rowindex][colindex]
                if val is not None and not eschema(etype).final:
                    # csvrow.append(val) # val is eid in that case
                    content = self._cw.view('textincontext',
                                            rset,
                                            row=rowindex,
                                            col=colindex)
                else:
                    content = self._cw.view('final',
                                            rset,
                                            format='text/plain',
                                            row=rowindex,
                                            col=colindex)
                csvrow.append(content)
            writer.writerow(csvrow)
Exemple #2
0
class CSVRsetView(CSVMixIn, AnyRsetView):
    """ Dumps table rset in CSV.
    """
    __regid__ = "tablecsvexport"
    __select__ = any_rset()
    title = _("CSV export")

    def call(self):
        """ This method expect a 'labels' form attribute that will be dumped
        as the first row of the CSV file.
        """
        writer = self.csvwriter()
        writer.writerow(self._cw.form["labels"])
        rset, descr = self.cw_rset, self.cw_rset.description
        eschema = self._cw.vreg.schema.eschema
        for rowindex, row in enumerate(rset):
            csvrow = []
            for colindex, val in enumerate(row):
                etype = descr[rowindex][colindex]
                if val is not None and not eschema(etype).final:
                    # csvrow.append(val) # val is eid in that case
                    content = self._cw.view('textincontext',
                                            rset,
                                            row=rowindex,
                                            col=colindex)
                else:
                    content = self._cw.view('final',
                                            rset,
                                            format='text/plain',
                                            row=rowindex,
                                            col=colindex)
                csvrow.append(content)
            writer.writerow(csvrow)
Exemple #3
0
class BreadCrumbAnyRSetVComponent(BreadCrumbEntityVComponent):
    __select__ = basecomponents.HeaderComponent.__select__ & any_rset()

    # XXX support kwargs for compat with other components which gets the view as
    # argument
    def render(self, w, **kwargs):
        self.open_breadcrumbs(w)
        w(self._cw._('search'))
        self.close_breadcrumbs(w)
Exemple #4
0
class JsonRsetView(JsonMixIn, AnyRsetView):
    """dumps raw result set in JSON format"""
    __regid__ = 'jsonexport'
    __select__ = any_rset()  # means rset might be empty or have any shape
    title = _('json-export-view')

    def call(self):
        # XXX mimic w3c recommandations to serialize SPARQL results in json?
        #     http://www.w3.org/TR/rdf-sparql-json-res/
        self.wdata(self.cw_rset.rows)