At a previous fix, the "res_name == name" condition was added, that didn't,
however, consider the case where res_name was unicode and name in utf8.
Conflicts:
document/nodes.py
bzr revid: p_christ@hol.gr-20110118164950-avtkxy8dc4u03fu4
Original report:
> From: Dr. Ferdinand Gasauer
> Date: 29-11-2010
> Subject: webdav - create folder duplicates existing attachments
> to reproduce
> add attachment to partner using webdav (konqueror 4.5.3)
> create new folder in webdav directory
> the attachment will be displayed ALSO in the newly created folder
Well, this /did/ work as the code intended, but not as a user would
expect.
As of commit e549808c0e90, the resource directories would list _all_
attachments referencing some record, by default. This meant that a
newly created folder with files [and subfolders with files..] would
have all the files listed at the root folder, too
eg. /Dirs/Products/Product-A/ + [ /dir2/a.txt, /dir2/b.txt ]
would list a.txt, b.txt under ../Product-A/ , too.
Now, the algorithm is improved to handle such a case and turn off the
"find all" flag[1] so that child files will be contained in their
folders[2].
[1] I'm now glad I had left that option there.
[2] still, files may all appear at the root folder, too, if this has
the "find-all" flag set.
bzr revid: p_christ@hol.gr-20101209100121-6kaq1zcqfewwl25b
Since forward slashes would confuse all protocols like DAV, FTP, we
have to convert them to underscores, and also match them in search.
bzr revid: p_christ@hol.gr-20101209100117-6dibokskybf47610
Starting from WebDAV, the node_descriptors will need to act as stream
objects, iterable. This way, we hope to minimize copies of the huge
chunks of data each descriptor may contain (still, pywebdav will use a
single large buffer).
bzr revid: p_christ@hol.gr-20101103112534-go57aeaw946utfc5
If some attachment or folder references a res_model/res_id, it should
NOT be visible in the root directory (where it's parent_id points to).
This solves functional problems for the root folder, as well as the
privacy of those attachments.
bzr revid: p_christ@hol.gr-20101027102323-x4h20skrfjger9z7
This property is used in DAV folders, CalDAV, GroupDAV and CardDAV, with
different extensions at each one. So, it needs an extensible API for the
value it may return.
Typical response in a calendar dir:
<D:resourcetype>
<D:collection>
<ns0:vevent-collection xmlns:ns0="http://groupdav.org"/>
<ns1:calendar xmlns:ns1="urn:ietf:params:xml:ns:caldav" />
</D:resourcetype>
The last two elements have to be added by subclassing the node in the
caldav module.
Conflicts:
document_webdav/dav_fs.py
bzr revid: p_christ@hol.gr-20100801083722-nh4ty58fy0hobrgk
Several small fixes for the DAV responses, so that we are more conforming
to the protocol. Also fix multiple namespaces, getctag and (as always)
whitespace
bzr revid: p_christ@hol.gr-20100729133937-z6ctpn92w6mz7r9k
Content nodes should have meaningful context and perhaps an active id
'act_id', which will be used in the report or other generation fn().
The dctx mechanism of nodes was built for that, use it.
bzr revid: p_christ@hol.gr-20100713103030-irueg85zizlp42ju
A (mis-)feature of the previous code was that in resource directories, it
would only list attachments that would have those dirs as parents. This
means that we couldn't have another categorisation, that would yield some
of the same attachments.
bzr revid: p_christ@hol.gr-20100713102958-nk40nckc41uxyzri
The nodes may have extra permission attributes, rather than the ir.rule
system. Store those bits in a 'uidperms' attribute of each node.
bzr revid: p_christ@hol.gr-20100711142527-5o4v68yeuhgqvog4