126 lines
3.0 KiB
Python
126 lines
3.0 KiB
Python
from plone.app.contentlisting.interfaces import IContentListingObject
|
|
from plone.app.layout.icons.interfaces import IContentIcon
|
|
from plone.i18n.normalizer.interfaces import IIDNormalizer
|
|
from plone.uuid.interfaces import IUUID
|
|
from zope.component import getMultiAdapter, getUtility
|
|
from zope.globalrequest import getRequest
|
|
from zope.interface import implements
|
|
|
|
|
|
class FlareContentListingObject(object):
|
|
implements(IContentListingObject)
|
|
|
|
def __init__(self, flare):
|
|
self.flare = flare
|
|
|
|
@property
|
|
def getId(self):
|
|
return self.flare.getId
|
|
|
|
def getObject(self):
|
|
return self.flare.getObject()
|
|
|
|
def getDataOrigin(self):
|
|
return self.flare.getObject()
|
|
|
|
def getPath(self):
|
|
return self.flare.getPath()
|
|
|
|
def getURL(self):
|
|
return self.flare.getURL()
|
|
|
|
def uuid(self):
|
|
if 'UID' in self.flare:
|
|
return self.flare.UID
|
|
else:
|
|
return IUUID(self.getObject())
|
|
|
|
def getIcon(self):
|
|
return getMultiAdapter(
|
|
(self.getObject(), getRequest(), self.flare),
|
|
interface=IContentIcon)()
|
|
|
|
def getSize(self):
|
|
self.flare.getObjSize
|
|
|
|
@property
|
|
def review_state(self):
|
|
return self.flare.review_state
|
|
|
|
def listCreators(self):
|
|
return self.flare.listCreators
|
|
|
|
def Creator(self):
|
|
return self.flare.Creator
|
|
|
|
def Subject(self):
|
|
return self.flare.Subject
|
|
|
|
def Publisher(self):
|
|
return NotImplementedError
|
|
|
|
def listContributors(self):
|
|
return NotImplementedError
|
|
|
|
def Contributors(self):
|
|
return self.listContributors()
|
|
|
|
def Date(self, zone=None):
|
|
return self.flare.Date
|
|
|
|
def CreationDate(self, zone=None):
|
|
return self.flare.created
|
|
|
|
def EffectiveDate(self, zone=None):
|
|
# Work around an incompatibility of Archetypes/DateTime
|
|
# in effective. See #13362
|
|
return self.getObject().EffectiveDate()
|
|
|
|
def ExpirationDate(self, zone=None):
|
|
return self.flare.expires
|
|
|
|
def ModificationDate(self, zone=None):
|
|
return self.flare.modified
|
|
|
|
def Format(self):
|
|
raise NotImplementedError
|
|
|
|
def Identifier(self):
|
|
return self.getURL()
|
|
|
|
def Language(self):
|
|
self.Language
|
|
|
|
def Rights(self):
|
|
return NotImplementedError
|
|
|
|
@property
|
|
def Title(self):
|
|
if type(self.flare.Title) is unicode:
|
|
return self.flare.Title
|
|
else:
|
|
return unicode(self.flare.Title, 'utf-8')
|
|
|
|
@property
|
|
def Description(self):
|
|
return self.flare.Description
|
|
|
|
@property
|
|
def Type(self):
|
|
return self.flare.Type
|
|
|
|
def ContentTypeClass(self):
|
|
return "contenttype-" + getUtility(IIDNormalizer).normalize(
|
|
self.PortalType())
|
|
|
|
def PortalType(self):
|
|
return self.flare.portal_type
|
|
|
|
# Temporary to workaround a bug in current plone.app.search<=1.1.0
|
|
@property
|
|
def portal_type(self):
|
|
return self.PortalType()
|
|
|
|
def CroppedDescription(self):
|
|
return self.flare.Description
|