minor improvements; start to extend Resource with filesystem storage
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@1243 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
9fc5fe84f3
commit
4be6866608
6 changed files with 54 additions and 13 deletions
|
@ -275,7 +275,7 @@
|
||||||
view="AddLoopsDocument.html"
|
view="AddLoopsDocument.html"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<editform
|
<!-- <editform
|
||||||
label="Edit Document"
|
label="Edit Document"
|
||||||
name="edit.html"
|
name="edit.html"
|
||||||
schema="loops.interfaces.IDocumentSchema"
|
schema="loops.interfaces.IDocumentSchema"
|
||||||
|
@ -283,15 +283,15 @@
|
||||||
for="loops.interfaces.IDocument"
|
for="loops.interfaces.IDocument"
|
||||||
template="edit.pt"
|
template="edit.pt"
|
||||||
permission="zope.ManageContent"
|
permission="zope.ManageContent"
|
||||||
menu="zmi_views" title="Edit" />
|
menu="zmi_views" title="Edit" />-->
|
||||||
|
|
||||||
<!--<page
|
<page
|
||||||
name="edit.html"
|
name="edit.html"
|
||||||
for="loops.interfaces.IDocument"
|
for="loops.interfaces.IDocument"
|
||||||
class="loops.browser.resource.DocumentEditForm"
|
class="loops.browser.resource.DocumentEditForm"
|
||||||
permission="zope.ManageContent"
|
permission="zope.ManageContent"
|
||||||
menu="zmi_views" title="Edit"
|
menu="zmi_views" title="Edit"
|
||||||
/>-->
|
/>
|
||||||
|
|
||||||
<page
|
<page
|
||||||
for="loops.interfaces.IDocument"
|
for="loops.interfaces.IDocument"
|
||||||
|
|
|
@ -28,11 +28,13 @@ from zope.app.catalog.interfaces import ICatalog
|
||||||
from zope.app.dublincore.interfaces import ICMFDublinCore
|
from zope.app.dublincore.interfaces import ICMFDublinCore
|
||||||
from zope.app.pagetemplate import ViewPageTemplateFile
|
from zope.app.pagetemplate import ViewPageTemplateFile
|
||||||
from zope.formlib.form import FormFields
|
from zope.formlib.form import FormFields
|
||||||
|
from zope.formlib.interfaces import DISPLAY_UNWRITEABLE
|
||||||
from zope.proxy import removeAllProxies
|
from zope.proxy import removeAllProxies
|
||||||
from zope.security import canAccess, canWrite
|
from zope.security import canAccess, canWrite
|
||||||
from zope.security.proxy import removeSecurityProxy
|
from zope.security.proxy import removeSecurityProxy
|
||||||
|
|
||||||
from loops.interfaces import IDocument, IMediaAsset
|
from loops.interfaces import IDocument, IMediaAsset
|
||||||
|
from loops.interfaces import IFileSystemResource, IControlledResource
|
||||||
from loops.browser.common import EditForm, BaseView
|
from loops.browser.common import EditForm, BaseView
|
||||||
from loops.browser.concept import ConceptRelationView, ConceptConfigureView
|
from loops.browser.concept import ConceptRelationView, ConceptConfigureView
|
||||||
from loops.browser.node import NodeView
|
from loops.browser.node import NodeView
|
||||||
|
@ -47,7 +49,10 @@ renderingFactories = {
|
||||||
|
|
||||||
|
|
||||||
class DocumentEditForm(EditForm):
|
class DocumentEditForm(EditForm):
|
||||||
form_fields = FormFields(IDocument)
|
form_fields = FormFields(IDocument, IFileSystemResource, IControlledResource
|
||||||
|
)
|
||||||
|
for f in form_fields:
|
||||||
|
f.render_context |= DISPLAY_UNWRITEABLE
|
||||||
|
|
||||||
class MediaAssetEditForm(EditForm):
|
class MediaAssetEditForm(EditForm):
|
||||||
form_fields = FormFields(IMediaAsset)
|
form_fields = FormFields(IMediaAsset)
|
||||||
|
|
|
@ -140,16 +140,20 @@
|
||||||
|
|
||||||
<require
|
<require
|
||||||
permission="zope.View"
|
permission="zope.View"
|
||||||
interface=".interfaces.IDocument" />
|
interface=".interfaces.IDocument
|
||||||
|
.interfaces.IFileSystemResource
|
||||||
<require
|
.interfaces.IControlledResource
|
||||||
permission="zope.View"
|
zope.app.size.interfaces.ISized" />
|
||||||
interface="zope.app.size.interfaces.ISized" />
|
|
||||||
|
|
||||||
<require
|
<require
|
||||||
permission="zope.ManageContent"
|
permission="zope.ManageContent"
|
||||||
set_schema=".interfaces.IDocument" />
|
set_schema=".interfaces.IDocument" />
|
||||||
|
|
||||||
|
<require
|
||||||
|
permission="zope.ManageApplication"
|
||||||
|
set_schema=".interfaces.IFileSystemResource
|
||||||
|
.interfaces.IControlledResource" />
|
||||||
|
|
||||||
</content>
|
</content>
|
||||||
|
|
||||||
<interface
|
<interface
|
||||||
|
|
|
@ -202,6 +202,27 @@ class IResourceSchema(Interface):
|
||||||
required=False)
|
required=False)
|
||||||
|
|
||||||
|
|
||||||
|
class IFileSystemResource(Interface):
|
||||||
|
|
||||||
|
fsPath = schema.BytesLine(
|
||||||
|
title=_(u'Filesystem Path'),
|
||||||
|
description=_(u'Optional path to a file in the filesystem '
|
||||||
|
'to be used for storing the resource'),
|
||||||
|
default='',
|
||||||
|
missing_value='',
|
||||||
|
required=False)
|
||||||
|
|
||||||
|
|
||||||
|
class IControlledResource(Interface):
|
||||||
|
|
||||||
|
readOnly = schema.Bool(
|
||||||
|
title=_(u'Read only'),
|
||||||
|
description=_(u'Check this if resource may not be modified '
|
||||||
|
'after being first filled with non-empty content'),
|
||||||
|
default=False,
|
||||||
|
required=False)
|
||||||
|
|
||||||
|
|
||||||
class IResource(ILoopsObject, IPotentialTarget):
|
class IResource(ILoopsObject, IPotentialTarget):
|
||||||
""" A resource is an atomic information element that is made
|
""" A resource is an atomic information element that is made
|
||||||
available via a view or a concept.
|
available via a view or a concept.
|
||||||
|
@ -235,7 +256,6 @@ class IResource(ILoopsObject, IPotentialTarget):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class IDocumentSchema(IResourceSchema):
|
class IDocumentSchema(IResourceSchema):
|
||||||
|
|
||||||
data = schema.Text(
|
data = schema.Text(
|
||||||
|
|
|
@ -78,7 +78,7 @@ class PasswordWidget(BasePasswordWidget):
|
||||||
|
|
||||||
class MemberRegistration(Form, NodeView):
|
class MemberRegistration(Form, NodeView):
|
||||||
|
|
||||||
form_fields = FormFields(IMemberRegistration)
|
form_fields = FormFields(IMemberRegistration).omit('age')
|
||||||
template = NamedTemplate('loops.dataform')
|
template = NamedTemplate('loops.dataform')
|
||||||
label = _(u'Member Registration')
|
label = _(u'Member Registration')
|
||||||
|
|
||||||
|
|
14
resource.py
14
resource.py
|
@ -43,6 +43,7 @@ from cybertools.relation.interfaces import IRelatable
|
||||||
from interfaces import IResource
|
from interfaces import IResource
|
||||||
from interfaces import IDocument, IDocumentSchema, IDocumentView
|
from interfaces import IDocument, IDocumentSchema, IDocumentView
|
||||||
from interfaces import IMediaAsset, IMediaAssetSchema, IMediaAssetView
|
from interfaces import IMediaAsset, IMediaAssetSchema, IMediaAssetView
|
||||||
|
from interfaces import IFileSystemResource, IControlledResource
|
||||||
from interfaces import IResourceManager, IResourceManagerContained
|
from interfaces import IResourceManager, IResourceManagerContained
|
||||||
from interfaces import ILoopsContained
|
from interfaces import ILoopsContained
|
||||||
from interfaces import IIndexAttributes
|
from interfaces import IIndexAttributes
|
||||||
|
@ -54,7 +55,8 @@ _ = MessageFactory('loops')
|
||||||
|
|
||||||
class Resource(Contained, Persistent):
|
class Resource(Contained, Persistent):
|
||||||
|
|
||||||
implements(IResource, IResourceManagerContained, IRelatable)
|
implements(IResource, IFileSystemResource, IControlledResource,
|
||||||
|
IResourceManagerContained, IRelatable)
|
||||||
|
|
||||||
_size = _width = _height = 0
|
_size = _width = _height = 0
|
||||||
|
|
||||||
|
@ -70,6 +72,16 @@ class Resource(Contained, Persistent):
|
||||||
def getContentType(self): return self._contentType
|
def getContentType(self): return self._contentType
|
||||||
contentType = property(getContentType, setContentType)
|
contentType = property(getContentType, setContentType)
|
||||||
|
|
||||||
|
_fsPath = ''
|
||||||
|
def setFsPath(self, fsPath): self._fsPath = fsPath
|
||||||
|
def getFsPath(self): return self._fsPath
|
||||||
|
fsPath = property(getFsPath, setFsPath)
|
||||||
|
|
||||||
|
_readOnly = ''
|
||||||
|
def setReadOnly(self, readOnly): self._readOnly = readOnly
|
||||||
|
def getReadOnly(self): return self._readOnly
|
||||||
|
readOnly = property(getReadOnly, setReadOnly)
|
||||||
|
|
||||||
def __init__(self, title=u''):
|
def __init__(self, title=u''):
|
||||||
self.title = title
|
self.title = title
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue