Commit d7005989 authored by 's avatar

*** empty log message ***

parent b6ab6127
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
############################################################################## ##############################################################################
"""Property sheets""" """Property sheets"""
__version__='$Revision: 1.23 $'[11:-2] __version__='$Revision: 1.24 $'[11:-2]
import time, string, App.Management import time, string, App.Management
from ZPublisher.Converters import type_converters from ZPublisher.Converters import type_converters
...@@ -127,26 +127,6 @@ class View(App.Management.Tabs): ...@@ -127,26 +127,6 @@ class View(App.Management.Tabs):
psxml='<d:propstat xmlns:n="%s">\n' \
' <d:prop>\n' \
'%s\n' \
' </d:prop>\n' \
' <d:status>HTTP/1.1 %s</d:status>\n%s' \
'</d:propstat>\n'
propstat='<d:propstat xmlns:n="%s">\n' \
' <d:prop>\n' \
'%s\n' \
' </d:prop>\n' \
' <d:status>HTTP/1.1 %s</d:status>\n%s' \
'</d:propstat>\n',
propdesc=' <d:responsedescription>\n' \
' %s\n' \
' </d:responsedescription>\n'
class PropertySheet(Persistent, Implicit): class PropertySheet(Persistent, Implicit):
"""A PropertySheet is a container for a set of related properties and """A PropertySheet is a container for a set of related properties and
metadata describing those properties. PropertySheets may or may not metadata describing those properties. PropertySheets may or may not
...@@ -279,22 +259,16 @@ class PropertySheet(Persistent, Implicit): ...@@ -279,22 +259,16 @@ class PropertySheet(Persistent, Implicit):
dict[p['id']]=p dict[p['id']]=p
return dict return dict
propstat='<d:propstat xmlns:n="%s">\n' \
' <d:prop>\n' \
'%s\n' \
' </d:prop>\n' \
' <d:status>HTTP/1.1 %s</d:status>\n%s' \
'</d:propstat>\n'
propdesc=' <d:responsedescription>\n' \
' %s\n' \
' </d:responsedescription>\n'
## propstat='<d:propstat xmlns:n="%s">\n' \
## ' <d:prop>\n' \
## '%s\n' \
## ' </d:prop>\n' \
## ' <d:status>HTTP/1.1 %s</d:status>\n%s' \
## '</d:propstat>\n',
## propdesc=' <d:responsedescription>\n' \
## ' %s\n' \
## ' </d:responsedescription>\n'
def dav__allprop(self, propstat=propstat, join=string.join): def dav__allprop(self, propstat=propstat, join=string.join):
# DAV helper method - return one or more propstat elements # DAV helper method - return one or more propstat elements
...@@ -331,7 +305,6 @@ class PropertySheet(Persistent, Implicit): ...@@ -331,7 +305,6 @@ class PropertySheet(Persistent, Implicit):
result=join(result, '\n') result=join(result, '\n')
return propstat % (self.xml_namespace(), result, '200 OK', '') return propstat % (self.xml_namespace(), result, '200 OK', '')
def dav__propstat(self, name, propstat=propstat, propdesc=propdesc, def dav__propstat(self, name, propstat=propstat, propdesc=propdesc,
join=string.join): join=string.join):
# DAV helper method - return a propstat element indicating # DAV helper method - return a propstat element indicating
...@@ -361,8 +334,8 @@ class PropertySheet(Persistent, Implicit): ...@@ -361,8 +334,8 @@ class PropertySheet(Persistent, Implicit):
prop=' <n:%s%s>%s</n:%s>' % (name, attrs, value, name) prop=' <n:%s%s>%s</n:%s>' % (name, attrs, value, name)
return propstat % (xml_id, prop, '200 OK', '') return propstat % (xml_id, prop, '200 OK', '')
# del propstat del propstat
# del propdesc del propdesc
def olddav__propstat(self, allprop, names, join=string.join): def olddav__propstat(self, allprop, names, join=string.join):
# The dav__propstat method returns a chunk of xml containing # The dav__propstat method returns a chunk of xml containing
...@@ -516,7 +489,6 @@ class DAVProperties(Virtual, PropertySheet): ...@@ -516,7 +489,6 @@ class DAVProperties(Virtual, PropertySheet):
{'id':'getcontenttype', 'mode':'r'}, {'id':'getcontenttype', 'mode':'r'},
{'id':'getcontentlength', 'mode':'r'}, {'id':'getcontentlength', 'mode':'r'},
{'id':'source', 'mode':'r'}, {'id':'source', 'mode':'r'},
{'id':'supportedlock', 'mode':'r'},
) )
def getProperty(self, id, default=None): def getProperty(self, id, default=None):
...@@ -544,46 +516,44 @@ class DAVProperties(Virtual, PropertySheet): ...@@ -544,46 +516,44 @@ class DAVProperties(Virtual, PropertySheet):
return absattr(self.v_self().id) return absattr(self.v_self().id)
def dav__resourcetype(self): def dav__resourcetype(self):
self=self.v_self() vself=self.v_self()
if hasattr(aq_base(self), 'isAnObjectManager') and \ if hasattr(aq_base(vself), 'isAnObjectManager') and \
self.isAnObjectManager: vself.isAnObjectManager:
return '<d:collection/>' return '<n:collection/>'
return '' return ''
def dav__getlastmodified(self): def dav__getlastmodified(self):
self=self.v_self() vself=self.v_self()
if hasattr(self, '_p_mtime'): if hasattr(vself, '_p_mtime'):
return rfc1123_date(self._p_mtime) return rfc1123_date(vself._p_mtime)
return '' return ''
def dav__getcontenttype(self): def dav__getcontenttype(self):
self=self.v_self() vself=self.v_self()
if hasattr(self, 'content_type'): if hasattr(vself, 'content_type'):
return self.content_type return vself.content_type
return '' return ''
def dav__getcontentlength(self): def dav__getcontentlength(self):
self=self.v_self() vself=self.v_self()
if hasattr(self, 'get_size'): if hasattr(vself, 'get_size'):
return self.get_size() return vself.get_size()
return '' return ''
def dav__source(self): def dav__source(self):
self=self.v_self() vself=self.v_self()
if hasattr(self, 'meta_type') and self.meta_type in \ if hasattr(vself, 'meta_type') and vself.meta_type in \
('Document','DTMLDocument','DTMLMethod','ZSQLMethod'): ('Document', 'DTMLDocument', 'DTMLMethod', 'ZSQLMethod'):
url=self.absolute_url() url=vself.absolute_url()
return '<d:src>%s</d:src>\n' \ return '\n <n:src>%s</n:src>\n' \
'<d:dst>%s/object_src</d:dst>' % (url, url) ' <n:dst>%s/object_src</n:dst>' % (url, url)
return '' return ''
def dav__supportedlock(self): def dav__supportedlock(self):
#'<d:lockscope><d:exclusive/></d:lockscope>\n' \ return '\n <n:lockentry>\n' \
#'<d:locktype><d:write/></d:locktype>\n' \ ' <d:lockscope><d:exclusive/></d:lockscope>\n' \
return '<d:supportedlock>\n' \ ' <d:locktype><d:write/></d:locktype>\n' \
'<d:lockentry>\n' \ ' </n:lockentry>\n'
'</d:lockentry>\n' \
'</d:supportedlock>\n'
def dav__lockdiscovery(self): def dav__lockdiscovery(self):
text=['<d:lockdiscovery>\n'] text=['<d:lockdiscovery>\n']
...@@ -612,9 +582,6 @@ class PropertySheets(Implicit): ...@@ -612,9 +582,6 @@ class PropertySheets(Implicit):
default=DefaultProperties() default=DefaultProperties()
webdav =DAVProperties() webdav =DAVProperties()
def __init__(self, parent=None):
pass
def __propsets__(self): def __propsets__(self):
propsets=self.aq_parent.__propsets__ propsets=self.aq_parent.__propsets__
return (self.default, self.webdav) + propsets return (self.default, self.webdav) + propsets
...@@ -665,7 +632,10 @@ class PropertySheets(Implicit): ...@@ -665,7 +632,10 @@ class PropertySheets(Implicit):
for propset in self.aq_parent.__propsets__: for propset in self.aq_parent.__propsets__:
if propset.id != name and propset.xml_namespace() != name: if propset.id != name and propset.xml_namespace() != name:
result.append(propset) result.append(propset)
self.aq_parent.__propsets__=tuple(result) self.parent.__propsets__=tuple(result)
def __del__(self):
self.parent=None
def __len__(self): def __len__(self):
return len(self.__propsets__()) return len(self.__propsets__())
...@@ -702,9 +672,7 @@ class vps(Base): ...@@ -702,9 +672,7 @@ class vps(Base):
self.c=c self.c=c
def __of__(self, parent): def __of__(self, parent):
if hasattr(parent, 'aq_base'): return self.c().__of__(parent)
parent=parent.aq_base
return self.c(parent)
def absattr(attr): def absattr(attr):
if callable(attr): if callable(attr):
......
...@@ -85,7 +85,7 @@ ...@@ -85,7 +85,7 @@
"""WebDAV xml request objects.""" """WebDAV xml request objects."""
__version__='$Revision: 1.13 $'[11:-2] __version__='$Revision: 1.14 $'[11:-2]
import sys, os, string import sys, os, string
from common import absattr, aq_base, urlfix from common import absattr, aq_base, urlfix
...@@ -147,7 +147,6 @@ class PropFind: ...@@ -147,7 +147,6 @@ class PropFind:
davprops=DAVProps(obj) davprops=DAVProps(obj)
propsets=(davprops,) propsets=(davprops,)
obsheets={'DAV:': davprops} obsheets={'DAV:': davprops}
if self.allprop: if self.allprop:
stats=[] stats=[]
for ps in propsets: for ps in propsets:
...@@ -179,23 +178,7 @@ class PropFind: ...@@ -179,23 +178,7 @@ class PropFind:
'</d:propstat>\n' % (ns, name, name) '</d:propstat>\n' % (ns, name, name)
result.write(stat) result.write(stat)
else: raise 'Bad Request', 'Invalid request' else: raise 'Bad Request', 'Invalid request'
result.write('</d:response>\n') result.write('</d:response>\n')
## for ps in obj.propertysheets.values():
## if hasattr(aq_base(ps), 'dav__propstat'):
## propstat=ps.dav__propstat(self.allprop, self.propnames)
## if propstat:
## result.write(propstat)
## needstat=0
## if needstat: result.write('<d:status>200 OK</d:status>\n')
## result.write('</d:response>\n')
if depth in ('1', 'infinity') and iscol: if depth in ('1', 'infinity') and iscol:
for ob in obj.objectValues(): for ob in obj.objectValues():
dflag=hasattr(ob, '_p_changed') and (ob._p_changed == None) dflag=hasattr(ob, '_p_changed') and (ob._p_changed == None)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment