From 13ec1efea794a32e3a470fd504ff5e4d4353ad40 Mon Sep 17 00:00:00 2001 From: helmutm Date: Sun, 15 Nov 2009 11:37:23 +0000 Subject: [PATCH] allow assignment to type concepts git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3629 fd906abe-77d9-0310-91a1-e0d9ade77398 --- browser/common.py | 13 ++++++++----- browser/form.py | 6 ++++-- search/README.txt | 2 +- search/browser.py | 2 +- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/browser/common.py b/browser/common.py index ace43b9..c48ebb1 100644 --- a/browser/common.py +++ b/browser/common.py @@ -389,18 +389,21 @@ class BaseView(GenericView, I18NView): general = [('loops:resource:*', 'Any Resource'), ('loops:concept:*', 'Any Concept'),] return util.KeywordVocabulary(general - + self.listTypesForSearch(exclude=('system', 'hidden',)) - + [('loops:*', 'Any')]) + + self.listTypesForSearch(exclude=('system', 'hidden',)) + + [('loops:*', 'Any')]) def conceptTypesForSearch(self): general = [('loops:concept:*', 'Any Concept'),] return util.KeywordVocabulary(general - + self.listTypesForSearch(('concept',), ('system', 'hidden',),)) + + self.listTypesForSearch(('concept',), + ('hidden',),)) + #('system', 'hidden',),)) def resourceTypesForSearch(self): general = [('loops:resource:*', 'Any Resource'),] return util.KeywordVocabulary(general - + self.listTypesForSearch(('resource',), ('system', 'hidden'),)) + + self.listTypesForSearch(('resource',), + ('system', 'hidden',),)) # options/settings @@ -423,7 +426,7 @@ class BaseView(GenericView, I18NView): @Lazy def useVersioning(self): - if 'useVersioning' in self.loopsRoot.options: + if self.globalOptions('useVersioning'): return True options = getattr(self.controller, 'options', None) if options: diff --git a/browser/form.py b/browser/form.py index 58b5145..b5d40e4 100644 --- a/browser/form.py +++ b/browser/form.py @@ -317,9 +317,11 @@ class CreateObjectForm(ObjectForm): def maybeAssignedAsParent(self, obj): if not IConcept.providedBy(obj): return False - if obj.conceptType == self.loopsRoot.getConceptManager().getTypeConcept(): + qualifiers = IType(obj).qualifiers + if (obj.conceptType == self.conceptManager.getTypeConcept() + and not 'assign' in qualifiers): return False - if 'noassign' in IType(obj).qualifiers: + if 'noassign' in qualifiers: return False adap = adapted(obj) if 'noassign' in getattr(adap, 'options', []): diff --git a/search/README.txt b/search/README.txt index f350702..ed48760 100755 --- a/search/README.txt +++ b/search/README.txt @@ -72,7 +72,7 @@ zcml in real life: >>> t = searchView.conceptTypesForSearch() >>> len(t) - 9 + 11 >>> t.getTermByToken('loops:concept:*').title 'Any Concept' diff --git a/search/browser.py b/search/browser.py index 2453368..4a1eaae 100644 --- a/search/browser.py +++ b/search/browser.py @@ -109,7 +109,7 @@ class Search(BaseView): types = [types] for type in types: result = self.executeQuery(title=title or None, type=type, - exclude=('system',)) + exclude=('hidden',)) for o in result: if o.getLoopsRoot() == self.loopsRoot: adObj = adapted(o, self.languageInfo)