Skip to content

Commit

Permalink
Merge branch 'auto_default_page_style' of https://github.com/collecti…
Browse files Browse the repository at this point in the history
…ve/collective.documentgenerator into auto_default_page_style
  • Loading branch information
sdelcourt committed Oct 21, 2022
2 parents a393cbf + ff0eca1 commit 17ed215
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 8 deletions.
4 changes: 4 additions & 0 deletions CHANGES.rst
Expand Up @@ -7,6 +7,10 @@ Changelog
- Add a new parameter `force_default_page_style_for_mailing` to the registry.
If set to True, apply automatically a default page style to mailing templates.
[sdelcourt]
- Order templates directories by title in `dg-templates-listing` view.
[sgeulette]
- Improved `DXDocumentGenerationHelperView.get_value` by adding optional obj parameter.
[sgeulette]


3.35 (2022-08-26)
Expand Down
4 changes: 2 additions & 2 deletions src/collective/documentgenerator/browser/views.py
Expand Up @@ -68,8 +68,8 @@ def keys(param):
parent = aq_parent(aq_inner(obj))
ordered = IOrderedContainer(parent, None)
if ordered is not None:
return (level, path, ordered.getObjectPosition(obj.getId()))
return (level, path, 0)
return (level, parent.Title(), ordered.getObjectPosition(obj.getId()))
return (level, parent.Title(), 0)

# sort by parent path and by position
self.table.results = [tup[0] for tup in sorted(res, key=keys)]
Expand Down
18 changes: 13 additions & 5 deletions src/collective/documentgenerator/helper/dexterity.py
Expand Up @@ -82,13 +82,21 @@ def check_permission(self, field_name):
user = api.user.get_current()
return api.user.has_permission(permission, user=user, obj=self.real_context)

def get_value(self, field_name, default=None, as_utf8=False, strict=True):
def get_value(self, field_name, obj=None, default=None, as_utf8=False, strict=True):
"""Get value of field_name for obj
:param field_name: field name
:param obj: concerned obj (or real_context)
:param default: default value returned if value is None
:param as_utf8: as utf8
:param strict: if False and field doesn't exist, be cool and return default value
:return: value
"""
strict: if False and field doesn't exist, be cool and return default value
"""
if not strict and not base_hasattr(self.real_context, field_name):
if obj is None:
obj = self.real_context
if not strict and not base_hasattr(obj, field_name):
return default
value = getattr(self.real_context, field_name)
value = getattr(obj, field_name)
if value is None:
return default
if isinstance(value, NO_VALUE.__class__):
Expand Down
Expand Up @@ -330,7 +330,9 @@ def test_check_permission(self):
self.assertFalse(self.view.check_permission('description'))

def test_get_value(self):
self.view.real_context = self.content
# default obj or given one
self.assertEqual(self.view.get_value('id'), 'johndoe')
self.assertEqual(self.view.get_value('id', obj=self.doc), 'doc')
# test unknown field name (a behavior field by example, that can be activated or not)
self.assertEqual(self.view.get_value('unknown', strict=False), None)
self.assertEqual(self.view.get_value('unknown', default='aa', strict=False), 'aa')
Expand Down

0 comments on commit 17ed215

Please sign in to comment.