[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