improvements of column-based sorting
This commit is contained in:
parent
7113369fca
commit
3bbda09f84
6 changed files with 27 additions and 5 deletions
|
@ -92,6 +92,8 @@ class DialogAction(Action):
|
||||||
urlParams['fixed_type'] = 'yes'
|
urlParams['fixed_type'] = 'yes'
|
||||||
if self.viewTitle:
|
if self.viewTitle:
|
||||||
urlParams['view_title'] = self.viewTitle
|
urlParams['view_title'] = self.viewTitle
|
||||||
|
for k, v in self.page.sortInfo.items():
|
||||||
|
urlParams['sortinfo_' + k] = v['fparam']
|
||||||
urlParams.update(self.addParams)
|
urlParams.update(self.addParams)
|
||||||
if self.target is not None:
|
if self.target is not None:
|
||||||
url = self.page.getUrlForTarget(self.target)
|
url = self.page.getUrlForTarget(self.target)
|
||||||
|
|
|
@ -145,7 +145,8 @@ class SortableMixin(object):
|
||||||
else:
|
else:
|
||||||
fn = v
|
fn = v
|
||||||
dir = 'asc'
|
dir = 'asc'
|
||||||
result[tableName] = dict(colName=fn, ascending=(dir=='asc'))
|
result[tableName] = dict(
|
||||||
|
colName=fn, ascending=(dir=='asc'), fparam=v)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def isSortableColumn(self, tableName, colName):
|
def isSortableColumn(self, tableName, colName):
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2014 Helmut Merz helmutm@cy55.de
|
# Copyright (c) 2015 Helmut Merz helmutm@cy55.de
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -46,6 +46,15 @@ class Field(BaseField):
|
||||||
return self.getValue(row)
|
return self.getValue(row)
|
||||||
|
|
||||||
|
|
||||||
|
class StringField(Field):
|
||||||
|
|
||||||
|
def getSelectValue(self, row):
|
||||||
|
return self.getValue(row).strip()
|
||||||
|
|
||||||
|
def getSortValue(self, row):
|
||||||
|
return self.getValue(row).strip()
|
||||||
|
|
||||||
|
|
||||||
class TextField(Field):
|
class TextField(Field):
|
||||||
|
|
||||||
format = 'text/restructured'
|
format = 'text/restructured'
|
||||||
|
|
|
@ -22,6 +22,7 @@ View class(es) for work items.
|
||||||
|
|
||||||
from datetime import date
|
from datetime import date
|
||||||
import time
|
import time
|
||||||
|
from urllib import urlencode
|
||||||
from zope import component
|
from zope import component
|
||||||
from zope.app.security.interfaces import IAuthentication, PrincipalLookupError
|
from zope.app.security.interfaces import IAuthentication, PrincipalLookupError
|
||||||
from zope.app.pagetemplate import ViewPageTemplateFile
|
from zope.app.pagetemplate import ViewPageTemplateFile
|
||||||
|
@ -657,6 +658,12 @@ class CreateWorkItem(EditObject, BaseTrackView):
|
||||||
#notify(ObjectModifiedEvent(obj))
|
#notify(ObjectModifiedEvent(obj))
|
||||||
url = self.view.virtualTargetUrl
|
url = self.view.virtualTargetUrl
|
||||||
#url = self.request.URL
|
#url = self.request.URL
|
||||||
|
# append sortinfo parameters:
|
||||||
|
urlParams = {}
|
||||||
|
for k, v in self.view.sortInfo.items():
|
||||||
|
urlParams['sortinfo_' + k] = v['fparam']
|
||||||
|
if urlParams:
|
||||||
|
url = '%s?%s' % (url, urlencode(urlParams))
|
||||||
self.request.response.redirect(url)
|
self.request.response.redirect(url)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ from loops.common import adapted, baseObject
|
||||||
from loops.expert.browser.export import ResultsConceptCSVExport
|
from loops.expert.browser.export import ResultsConceptCSVExport
|
||||||
from loops.expert.browser.report import ReportConceptView
|
from loops.expert.browser.report import ReportConceptView
|
||||||
from loops.expert.field import Field, TargetField, DateField, StateField, \
|
from loops.expert.field import Field, TargetField, DateField, StateField, \
|
||||||
TextField, HtmlTextField, UrlField
|
StringField, TextField, HtmlTextField, UrlField
|
||||||
from loops.expert.field import SubReport, SubReportField
|
from loops.expert.field import SubReport, SubReportField
|
||||||
from loops.expert.field import TrackDateField, TrackTimeField
|
from loops.expert.field import TrackDateField, TrackTimeField
|
||||||
from loops.expert.field import WorkItemStateField
|
from loops.expert.field import WorkItemStateField
|
||||||
|
@ -152,10 +152,10 @@ party = TargetField('userName', u'Party',
|
||||||
description=u'The party (usually a person) who did the work.',
|
description=u'The party (usually a person) who did the work.',
|
||||||
fieldType='selection',
|
fieldType='selection',
|
||||||
executionSteps=['query', 'sort', 'output'])
|
executionSteps=['query', 'sort', 'output'])
|
||||||
workTitle = Field('title', u'Title',
|
workTitle = StringField('title', u'Title',
|
||||||
description=u'The short description of the work.',
|
description=u'The short description of the work.',
|
||||||
executionSteps=['sort', 'output'])
|
executionSteps=['sort', 'output'])
|
||||||
workDescription = Field('description', u'Description',
|
workDescription = StringField('description', u'Description',
|
||||||
description=u'The long description of the work.',
|
description=u'The long description of the work.',
|
||||||
executionSteps=['output'])
|
executionSteps=['output'])
|
||||||
duration = DurationField('duration', u'Duration',
|
duration = DurationField('duration', u'Duration',
|
||||||
|
|
|
@ -74,6 +74,9 @@
|
||||||
<input type="hidden" name="form.action" value="create_workitem" />
|
<input type="hidden" name="form.action" value="create_workitem" />
|
||||||
<input type="hidden" name="id"
|
<input type="hidden" name="id"
|
||||||
tal:attributes="value request/form/id|nothing" />
|
tal:attributes="value request/form/id|nothing" />
|
||||||
|
<p tal:content="view/sortInfo/results/fparam|string:???" />
|
||||||
|
<input type="hidden" name="sortinfo_results"
|
||||||
|
tal:attributes="value view/sortInfo/results/fparam|nothing" />
|
||||||
<div class="heading" i18n:translate="">Add Work Item</div>
|
<div class="heading" i18n:translate="">Add Work Item</div>
|
||||||
<div>
|
<div>
|
||||||
<tal:type condition="view/showTypes">
|
<tal:type condition="view/showTypes">
|
||||||
|
|
Loading…
Add table
Reference in a new issue