web/views/pyviews.py
changeset 11057 0b59724cb3f2
parent 11052 058bb3dc685f
child 11058 23eb30449fe5
--- a/web/views/pyviews.py	Mon Jan 04 18:40:30 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-# copyright 2003-2011 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
-# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
-#
-# This file is part of CubicWeb.
-#
-# CubicWeb is free software: you can redistribute it and/or modify it under the
-# terms of the GNU Lesser General Public License as published by the Free
-# Software Foundation, either version 2.1 of the License, or (at your option)
-# any later version.
-#
-# CubicWeb is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
-# details.
-#
-# You should have received a copy of the GNU Lesser General Public License along
-# with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
-"""Basic views for python values (eg without any result set)
-"""
-__docformat__ = "restructuredtext en"
-
-from six import text_type
-from six.moves import range
-
-from cubicweb.view import View
-from cubicweb.predicates import match_kwargs
-from cubicweb.web.views import tableview
-
-
-class PyValTableColRenderer(tableview.AbstractColumnRenderer):
-    """Default column renderer for :class:`PyValTableView`."""
-    def bind(self, view, colid):
-        super(PyValTableColRenderer, self).bind(view, colid)
-        self.header = view.headers[colid] if view.headers else None
-        self.data = view.pyvalue
-
-    def render_header(self, w):
-        if self.header:
-            w(self._cw._(self.header))
-        else:
-            w(self.empty_cell_content)
-
-    def render_cell(self, w, rownum):
-        w(text_type(self.data[rownum][self.colid]))
-
-
-class PyValTableView(tableview.TableMixIn, View):
-    """This table view is designed to be used a list of list of unicode values
-    given as a mandatory `pyvalue` argument. Take care, content is NOT
-    xml-escaped.
-
-    It's configured through the following selection arguments.
-
-    If `headers` is specified, it is expected to be a list of headers to be
-    inserted as first row (in <thead>).
-
-    `header_column_idx` may be used to specify a column index or a set of column
-    indiced where values should be inserted inside <th> tag instead of <td>.
-
-    `cssclass` is the CSS class used on the <table> tag, and default to
-    'listing' (so that the table will look similar to those generated by the
-    table view).
-    """
-    __regid__ = 'pyvaltable'
-    __select__ = match_kwargs('pyvalue')
-    default_column_renderer_class = PyValTableColRenderer
-    paginable = False # not supported
-    headers = None
-    cssclass = None
-    domid = None
-
-    def __init__(self, req, pyvalue, headers=None, cssclass=None,
-                 header_column_idx=None, **kwargs):
-        super(PyValTableView, self).__init__(req, **kwargs)
-        self.pyvalue = pyvalue
-        if headers is not None:
-            self.headers = headers
-        elif self.headers: # headers set on a class attribute, translate
-            self.headers = [self._cw._(header) for header in self.headers]
-        if cssclass is not None:
-            self.cssclass = cssclass
-        self.header_column_idx = header_column_idx
-
-    @property
-    def layout_args(self):
-        args = {}
-        if self.cssclass:
-            args['cssclass'] = self.cssclass
-        if self.header_column_idx is not None:
-            args['header_column_idx'] = self.header_column_idx
-        return args
-
-    # layout callbacks #########################################################
-
-    @property
-    def table_size(self):
-        """return the number of rows (header excluded) to be displayed"""
-        return len(self.pyvalue)
-
-    @property
-    def has_headers(self):
-        return self.headers
-
-    def build_column_renderers(self):
-        return [self.column_renderer(colid)
-                for colid in range(len(self.pyvalue[0]))]
-
-    def facets_form(self, mainvar=None):
-        return None # not supported
-
-    def table_actions(self):
-        return [] # not supported
-
-
-class PyValListView(View):
-    """display a list of values into an html list.
-
-    Take care, content is NOT xml-escaped.
-    """
-    __regid__ = 'pyvallist'
-    __select__ = match_kwargs('pyvalue')
-
-    def call(self, pyvalue):
-        self.w(u'<ul>\n')
-        for line in pyvalue:
-            self.w(u'<li>%s</li>\n' % line)
-        self.w(u'</ul>\n')