use new IUid interface for showing the presence of the uid property
This commit is contained in:
parent
380d7e7b59
commit
5c4b7fd730
2 changed files with 14 additions and 2 deletions
|
@ -6,9 +6,12 @@ Provides a Container subclass that defines methods from cybertools...TrackingSto
|
||||||
used by code based on loops.organize.tracking.
|
used by code based on loops.organize.tracking.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
from zope.interface import implementer
|
||||||
from cco.storage.tracking import record
|
from cco.storage.tracking import record
|
||||||
|
from loops.util import IUid
|
||||||
|
|
||||||
|
|
||||||
|
@implementer(IUid)
|
||||||
class Track(record.Track):
|
class Track(record.Track):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|
13
util.py
13
util.py
|
@ -24,6 +24,7 @@ import os
|
||||||
from zope.publisher.browser import BrowserView
|
from zope.publisher.browser import BrowserView
|
||||||
from zope import component
|
from zope import component
|
||||||
from zope.catalog.interfaces import ICatalog
|
from zope.catalog.interfaces import ICatalog
|
||||||
|
from zope.interface import Attribute, Interface
|
||||||
from zope.interface import directlyProvides, directlyProvidedBy, implements
|
from zope.interface import directlyProvides, directlyProvidedBy, implements
|
||||||
from zope.intid.interfaces import IIntIds
|
from zope.intid.interfaces import IIntIds
|
||||||
from zope.i18nmessageid import MessageFactory
|
from zope.i18nmessageid import MessageFactory
|
||||||
|
@ -129,12 +130,19 @@ def reindex(obj, catalog=None):
|
||||||
catalog.index_doc(int(getUidForObject(obj)), obj)
|
catalog.index_doc(int(getUidForObject(obj)), obj)
|
||||||
|
|
||||||
|
|
||||||
|
# UID stuff
|
||||||
|
|
||||||
|
class IUid(Interface):
|
||||||
|
"""Provides uid property."""
|
||||||
|
|
||||||
|
uid = Attribute("Unique Identifier")
|
||||||
|
|
||||||
|
|
||||||
def getItem(uid, intIds=None, storage=None):
|
def getItem(uid, intIds=None, storage=None):
|
||||||
if storage is not None and '-' in uid:
|
if storage is not None and '-' in uid:
|
||||||
return storage.getItem(uid)
|
return storage.getItem(uid)
|
||||||
return getObjectForUid(uid, intIds=intIds)
|
return getObjectForUid(uid, intIds=intIds)
|
||||||
|
|
||||||
|
|
||||||
def getObjectForUid(uid, intIds=None):
|
def getObjectForUid(uid, intIds=None):
|
||||||
if uid == '*': # wild card
|
if uid == '*': # wild card
|
||||||
return '*'
|
return '*'
|
||||||
|
@ -150,7 +158,8 @@ def getObjectForUid(uid, intIds=None):
|
||||||
def getUidForObject(obj, intIds=None):
|
def getUidForObject(obj, intIds=None):
|
||||||
if obj == '*': # wild card
|
if obj == '*': # wild card
|
||||||
return '*'
|
return '*'
|
||||||
if hasattr(obj, 'uid'):
|
#if hasattr(obj, 'uid'):
|
||||||
|
if IUid.providedBy(obj):
|
||||||
return str(obj.uid)
|
return str(obj.uid)
|
||||||
if intIds is None:
|
if intIds is None:
|
||||||
intIds = component.getUtility(IIntIds)
|
intIds = component.getUtility(IIntIds)
|
||||||
|
|
Loading…
Add table
Reference in a new issue