exclude resources from tracking stats if there are only part of a concept (like with blogposts)

git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3844 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2010-05-03 14:30:02 +00:00
parent 2e9f1bdfc9
commit 7742c2e4c0
2 changed files with 17 additions and 0 deletions

View file

@ -248,6 +248,10 @@ class BaseView(GenericView, I18NView):
def defaultPredicate(self):
return self.conceptManager.getDefaultPredicate()
@Lazy
def isPartOfPredicate(self):
return self.conceptManager.get('ispartof')
@Lazy
def url(self):
return absoluteURL(self.context, self.request)
@ -417,6 +421,17 @@ class BaseView(GenericView, I18NView):
+ self.listTypesForSearch(('resource',),
('system', 'hidden',),))
def isPartOnlyResource(self, obj):
if not IResource.providedBy(obj):
return False
isPart = False
for r in obj.getConceptRelations():
if r.predicate == self.isPartOfPredicate:
isPart = True
elif r.predicate != self.typePredicate:
return False
return isPart
# options/settings
@Lazy

View file

@ -106,6 +106,8 @@ class TrackingStats(BaseView):
def checkType(self, obj):
if not IResource.providedBy(obj) and not IConcept.providedBy(obj):
return False
if self.isPartOnlyResource(obj):
return False
for t in self.typeObjects:
if isinstance(t, InterfaceClass):
if t.providedBy(obj):