Skip to content

Commit

Permalink
Added parameter default_UID to utils.enableFacetedDashboardFor to…
Browse files Browse the repository at this point in the history
… set default collection UID when enabling faceted on a folder.
  • Loading branch information
gbastien committed Nov 22, 2018
1 parent aa0d351 commit a5eb79a
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 10 deletions.
3 changes: 3 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ Changelog
- Sort uniquely collection vocabulary columns names, because multiple columns
with same name can be defined for different interfaces.
[sgeulette]
- Added parameter `default_UID` to `utils.enableFacetedDashboardFor` to set
default collection UID when enabling faceted on a folder.
[gbastien]

0.3 (2018-11-20)
----------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
"""Setup/installation tests for this package."""

from plone import api
from collective.eeafaceted.collectionwidget.utils import getCollectionLinkCriterion
from collective.eeafaceted.dashboard.testing import IntegrationTestCase
from collective.eeafaceted.dashboard.utils import enableFacetedDashboardFor
from zope.component import queryUtility
from zope.schema.interfaces import IVocabularyFactory

Expand All @@ -17,13 +19,13 @@ def setUp(self):
id='c1',
type='Collection',
title='Collection 1',
container=self.portal
container=self.portal.folder
)
self.dashboardcollection = api.content.create(
id='dc1',
type='DashboardCollection',
title='Dashboard collection 1',
container=self.portal
container=self.portal.folder
)

def test_MetaDataFieldsVocabulary(self):
Expand All @@ -35,3 +37,9 @@ def test_MetaDataFieldsVocabulary(self):
self.assertFalse('select_row' in factory(self.collection).by_token.keys())
# DashboardCollection
self.assertTrue('select_row' in factory(self.dashboardcollection).by_token.keys())

def test_enableFacetedDashboardFor_with_default_UID(self):
""" """
collection_uid = self.collection.UID()
enableFacetedDashboardFor(self.portal.folder, default_UID=collection_uid)
self.assertEqual(getCollectionLinkCriterion(self.portal.folder).default, collection_uid)
19 changes: 11 additions & 8 deletions src/collective/eeafaceted/dashboard/utils.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
# -*- coding: utf-8 -*-
import json
from os import path
from zope.interface import noLongerProvides

from collective.eeafaceted.collectionwidget.config import NO_FACETED_EXCEPTION_MSG
from collective.eeafaceted.collectionwidget.interfaces import NoFacetedViewDefinedException

from collective.eeafaceted.collectionwidget.utils import _updateDefaultCollectionFor
from eea.facetednavigation.criteria.interfaces import ICriteria
from eea.facetednavigation.subtypes.interfaces import IFacetedNavigable
from eea.facetednavigation.interfaces import IHidePloneLeftColumn
from eea.facetednavigation.layout.interfaces import IFacetedLayout

from eea.facetednavigation.subtypes.interfaces import IFacetedNavigable
from os import path
from plone import api
from zope.interface import noLongerProvides

import json
import logging


logger = logging.getLogger('collective.eeafaceted.dashboard: utils')


def enableFacetedDashboardFor(obj, xmlpath=None, show_left_column=True):
def enableFacetedDashboardFor(obj, xmlpath=None, show_left_column=True, default_UID=None):
"""Enable a faceted view on obj and import a
specific xml if given p_xmlpath."""
# already a faceted?
Expand All @@ -44,6 +44,9 @@ def enableFacetedDashboardFor(obj, xmlpath=None, show_left_column=True):
if xmlpath:
obj.unrestrictedTraverse('@@faceted_exportimport').import_xml(
import_file=open(xmlpath))
# define default collection UID
if default_UID:
_updateDefaultCollectionFor(obj, default_UID)
obj.reindexObject()
obj.REQUEST.RESPONSE.status = response_status
obj.REQUEST.RESPONSE.setHeader('location', response_location or '')
Expand Down

0 comments on commit a5eb79a

Please sign in to comment.