[Checkins] SVN: Sandbox/gotcha/z3c.taskqueue_ui/trunk/src/z3c/taskqueue_ui/browser/service.py we should not need a formatter

Godefroid Chapelle gotcha at bubblenet.be
Mon Oct 11 10:43:28 EDT 2010


Log message for revision 117456:
  we should not need a formatter

Changed:
  U   Sandbox/gotcha/z3c.taskqueue_ui/trunk/src/z3c/taskqueue_ui/browser/service.py

-=-
Modified: Sandbox/gotcha/z3c.taskqueue_ui/trunk/src/z3c/taskqueue_ui/browser/service.py
===================================================================
--- Sandbox/gotcha/z3c.taskqueue_ui/trunk/src/z3c/taskqueue_ui/browser/service.py	2010-10-11 14:39:49 UTC (rev 117455)
+++ Sandbox/gotcha/z3c.taskqueue_ui/trunk/src/z3c/taskqueue_ui/browser/service.py	2010-10-11 14:43:28 UTC (rev 117456)
@@ -17,8 +17,6 @@
 """
 __docformat__ = 'restructuredtext'
 
-from xml.sax.saxutils import quoteattr
-
 import transaction
 import zope.interface
 import zope.component
@@ -27,14 +25,6 @@
 from zope.security.proxy import removeSecurityProxy
 from zope.traversing.browser.absoluteurl import absoluteURL
 
-try:
-    # Newer versions of zope.app.session have deprecated IClientId,
-    # so prefer to new location:
-    from zope.session.interfaces import ISession
-except ImportError:
-    # But still support the old location if we can't get it from the new:
-    from zope.app.session.interfaces import ISession
-
 from zope.app.pagetemplate import ViewPageTemplateFile
 from zope.app.container.contained import contained
 
@@ -105,88 +95,10 @@
         return self.getter(item, formatter)
 
 
-class ListFormatter(table.Table):
-    """Provides a width for each column."""
+class Jobs(table.Table):
+    pass
 
-    widths = None
-    columnCSS = None
-    sortable = False
 
-    def __init__(self, *args, **kw):
-        # Figure out sorting situation
-        kw['ignore_request'] = True
-
-        request = args[1]
-        prefix = kw.get('prefix')
-
-        session = zope.component.queryAdapter(request, ISession)
-        if session is not None:
-            self.sortable = True
-            session = session[SORTED_ON_KEY]
-
-            if 'sort-on' in request:
-                name = request['sort-on']
-                if prefix and name.startswith(prefix):
-                    name = name[len(prefix):]
-                    oldName, oldReverse = session.get(prefix, (None, None))
-                    if oldName == name:
-                        session[prefix] = (name, not oldReverse)
-                    else:
-                        session[prefix] = (name, False)
-
-            # Now get the sort-on data from the session
-            if prefix in session:
-                kw['sort_on'] = [session[prefix]]
-
-        super(ListFormatter, self).__init__(*args, **kw)
-        self.columnCSS = {}
-
-        self.sortOn = (None, None)
-        if 'sort_on' in kw:
-            for name, reverse in kw['sort_on']:
-                self.columnCSS[name] = 'sorted-on'
-            self.sortOn = kw['sort_on'][0]
-
-    # sortable table support via session
-    def getHeader(self, column):
-        contents = column.renderHeader(self)
-        if self.sortable and ISortableColumn.providedBy(column):
-            contents = self._wrapInSortUI(contents, column)
-        return contents
-
-    def _wrapInSortUI(self, header, column):
-        name = column.name
-        if self.prefix:
-            name = self.prefix + name
-        isAscending = self.sortOn[0] == column.name and not self.sortOn[1]
-        isDecending = self.sortOn[0] == column.name and self.sortOn[1]
-        return self.sortedHeaderTemplate(
-            header=header, name=name,
-            isAscending=isAscending, isDecending=isDecending)
-
-    def renderHeader(self, column):
-        width = ''
-        if self.widths:
-            idx = list(self.visible_columns).index(column)
-            width = ' width="%i"' % self.widths[idx]
-        klass = self.cssClasses.get('tr', '')
-        if column.name in self.columnCSS:
-            klass += klass and ' ' or '' + self.columnCSS[column.name]
-        return '      <th%s class=%s>\n        %s\n      </th>\n' % (
-            width, quoteattr(klass), self.getHeader(column))
-
-    def renderCell(self, item, column):
-        klass = self.cssClasses.get('tr', '')
-        if column.name in self.columnCSS:
-            klass += klass and ' ' or '' + self.columnCSS[column.name]
-        return '    <td class=%s>\n      %s\n    </td>\n' % (
-            quoteattr(klass), self.getCell(item, column))
-
-    def renderExtra(self):
-        """Avoid use of resourcelibrary in original class."""
-        return ''
-
-
 class JobsOverview(BrowserPage):
 
     template = ViewPageTemplateFile('jobs.pt')
@@ -207,31 +119,12 @@
         )
 
     def table(self):
-        formatter = ListFormatter(
-            self.context, self.request, self.jobs(),
-            prefix='zc.table', columns=self.columns)
-        formatter.widths = [25, 50, 100, 75, 250, 120, 120, 120]
-        formatter.cssClasses['table'] = 'list'
-        formatter.columnCSS['id'] = 'tableId'
-        formatter.columnCSS['task'] = 'tableTask'
-        formatter.columnCSS['status'] = 'tableStatus'
-        formatter.columnCSS['detail'] = 'tableDetail'
-        formatter.columnCSS['created'] = 'tableCreated'
-        formatter.columnCSS['start'] = 'tableStart'
-        formatter.columnCSS['end'] = 'tableEnd'
-        return formatter()
+        return Jobs()
 
     def jobs(self):
         if hasattr(self, '_jobs'):
             return self._jobs
 
-        start = int(self.request.get('start', 0))
-        sval = self.request.get('size', 10)
-        if sval:
-            size = int(sval)
-        else:
-            size = 10
-
         jobs = list(self.context.jobs.values())
         jobs.reverse()
         self._jobs = jobs



More information about the checkins mailing list