From 4ad6f59abf838d85c7a4f8202bac6cb424fcab6b Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Tue, 13 Dec 2011 12:01:17 +0100 Subject: [PATCH 1/5] improve layout for MicroArticle --- browser/skin/lobo/lobo.css | 8 ++++++++ compound/microart/view_macros.pt | 23 +++++++++++++---------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/browser/skin/lobo/lobo.css b/browser/skin/lobo/lobo.css index 5439bb4..58f7281 100644 --- a/browser/skin/lobo/lobo.css +++ b/browser/skin/lobo/lobo.css @@ -509,6 +509,14 @@ div.comment { color: #666666; } +/* microart */ + +.micropart { + background-color: #f7f7f7; + padding: 0 5px 0 5px; + margin: 5px 0 5px 0; +} + /* calendar, work items */ .today { diff --git a/compound/microart/view_macros.pt b/compound/microart/view_macros.pt index 7dadf5d..ee650c1 100755 --- a/compound/microart/view_macros.pt +++ b/compound/microart/view_macros.pt @@ -3,8 +3,7 @@
+ tal:define="data item/data">
Description
-
-
-
-

+
+

Story

+
+
+

Insight

+
+
+

Consequences

+
+
+

Follow-up Questions

+

From e89e0a9eeaeb4ce3bd2daf3a4329cfa3e2345425 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sat, 17 Dec 2011 13:48:42 +0100 Subject: [PATCH 2/5] allow restriction of children select to certain predicates --- browser/concept.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/browser/concept.py b/browser/concept.py index 98a013e..a186835 100644 --- a/browser/concept.py +++ b/browser/concept.py @@ -290,7 +290,7 @@ class ConceptView(BaseView): r.order = pos def getChildren(self, topLevelOnly=True, sort=True, noDuplicates=True, - useFilter=True): + useFilter=True, predicates=None): form = self.request.form #if form.get('loops.viewName') == 'index.html' and self.editable: if self.editable: @@ -307,7 +307,8 @@ class ConceptView(BaseView): criteria['types'] = [cm.get(name) for name in params['types']] standard = cm.getDefaultPredicate() rels = (self.childViewFactory(r, self.request, contextIsSecond=True) - for r in self.context.getChildRelations(sort=None)) + for r in self.context.getChildRelations( + predicates=predicates, sort=None)) if sort: rels = sorted(rels, key=lambda r: (r.order, r.title.lower())) from loops.organize.personal.browser.filter import FilterView @@ -344,9 +345,10 @@ class ConceptView(BaseView): # Override in subclass to control what is displayd in listings: children = getChildren - def childrenAlphaGroups(self): + def childrenAlphaGroups(self, predicates=None): result = Jeep() - rels = self.getChildren(topLevelOnly=False, sort=False) + rels = self.getChildren(predicates=predicates or [self.defaultPredicate], + topLevelOnly=False, sort=False) rels = sorted(rels, key=lambda r: r.title.lower()) for letter, group in groupby(rels, lambda r: r.title.lower()[0]): letter = letter.upper() From 45462afca84754bc24c54ee6265a611af78f05eb Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sat, 17 Dec 2011 16:29:57 +0100 Subject: [PATCH 3/5] clear floating at the beginning of a row --- browser/lobo/standard.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/browser/lobo/standard.py b/browser/lobo/standard.py index 1c636ac..fe2b937 100644 --- a/browser/lobo/standard.py +++ b/browser/lobo/standard.py @@ -199,7 +199,7 @@ class Grid3(BasePart): macroName = 'grid' imageSize = 'small' height = 'auto; padding-bottom: 10px' - gridPattern = ['span-2', 'span-2', 'span-2 last'] + gridPattern = ['span-2 clear', 'span-2', 'span-2 last'] class List1(BasePart): @@ -253,7 +253,7 @@ class ImageGrid3(BasePart): macroName = 'imagegrid' imageSize = 'small' height = 'auto; padding-bottom: 10px' - gridPattern = ['span-2', 'span-2', 'span-2 last'] + gridPattern = ['span-2 clear', 'span-2', 'span-2 last'] # relation views, used for cells (components) of lists and grids From 9397df0afa7071f40a009457ef8ba0ee95f6ae66 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Mon, 19 Dec 2011 11:25:55 +0100 Subject: [PATCH 4/5] show glossary item text in normal font --- knowledge/glossary/view_macros.pt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/knowledge/glossary/view_macros.pt b/knowledge/glossary/view_macros.pt index 50b68ef..88bb440 100755 --- a/knowledge/glossary/view_macros.pt +++ b/knowledge/glossary/view_macros.pt @@ -43,7 +43,10 @@ - + +

+

Translations: From bd2cb55f16066125ad86ff0b9ac234cf9fa8ab24 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Fri, 23 Dec 2011 14:21:50 +0100 Subject: [PATCH 5/5] use keytable field for datatable data --- browser/skin/lobo/lobo.css | 8 ++++++-- configure.zcml | 12 +++++------- table.py | 30 ++++++++++++++++++++++-------- 3 files changed, 33 insertions(+), 17 deletions(-) diff --git a/browser/skin/lobo/lobo.css b/browser/skin/lobo/lobo.css index 58f7281..01f2fff 100644 --- a/browser/skin/lobo/lobo.css +++ b/browser/skin/lobo/lobo.css @@ -159,6 +159,10 @@ table.listing th span.descending { background-repeat: no-repeat; } +table.records { + border-collapse: collapse; +} + table.records input, table.records textarea { border: none; padding: 0; @@ -167,13 +171,13 @@ table.records input, table.records textarea { } table.records th { - background-color: lightgrey; + background-color: #fefefe; } table.records th, table.records td { padding: 0; margin: 0; - border: 1px solid black; + border: 1px solid lightgrey; } table.report td { diff --git a/configure.zcml b/configure.zcml index a1522a5..908bb47 100644 --- a/configure.zcml +++ b/configure.zcml @@ -1,5 +1,3 @@ - - + + - - @@ -432,10 +428,12 @@ diff --git a/table.py b/table.py index 25ccba2..eb9dc11 100644 --- a/table.py +++ b/table.py @@ -18,16 +18,16 @@ """ Data (keyword-based) table definition and implementation. - -$Id$ """ from BTrees.OOBTree import OOBTree -from zope import schema, component -from zope.interface import Interface, Attribute, implements +from zope import component, schema +from zope.component import adapts +from zope.interface import implements, Interface, Attribute from zope.cachedescriptors.property import Lazy -from cybertools.composer.schema.grid.interfaces import Records +from cybertools.composer.schema.factory import SchemaFactory +from cybertools.composer.schema.grid.interfaces import KeyTable from loops.common import AdapterBase from loops.interfaces import IConcept, IConceptSchema, ILoopsAdapter from loops.type import TypeInterfaceSourceList @@ -47,8 +47,6 @@ class IDataTable(IConceptSchema, ILoopsAdapter): default=u'', required=False) - # better: specify column names (and possibly labels, types) - # in Python code and reference by name here columns = schema.List( title=_(u'Columns'), description=_(u'The names of the columns of the data table. ' @@ -57,10 +55,12 @@ class IDataTable(IConceptSchema, ILoopsAdapter): default=['key', 'value'], required=True) - data = Records(title=_(u'Table Data'), + data = KeyTable(title=_(u'Table Data'), description=_(u'Table Data'), required=False) +IDataTable['columns'].hidden = True + class DataTable(AdapterBase): @@ -75,6 +75,8 @@ class DataTable(AdapterBase): self.context._columns = value columns = property(getColumns, setColumns) + columnNames = columns + def getData(self): data = getattr(self.context, '_data', None) if data is None: @@ -87,3 +89,15 @@ class DataTable(AdapterBase): TypeInterfaceSourceList.typeInterfaces += (IDataTable,) + + +class DataTableSchemaFactory(SchemaFactory): + + adapts(IDataTable) + + def __call__(self, interface, **kw): + schema = super(DataTableSchemaFactory, self).__call__(interface, **kw) + schema.fields.remove('columns') + schema.fields.remove('viewName') + return schema +