Didn't quite work right: on the layout, it would exponentially increase
leading spaces in text nodes. Combined with a bug injecting snippets marks in
the footer (and thus invalidating and re-saving the layout at each snippet
addition) this could blow up the layout template and rendered page to >20MB.
Just keep lxml's standard 2-spaces indent.
LXML is unable to pretty print the layout anyway.
bzr revid: xmo@openerp.com-20140321075419-9w88h232r928xv5f
There is a deduplication in ir.attachment, but it's only for FS-stored content
*and* it only deduplicates storage not models (as there are access rights
issues involved).
The goal here is to always return the same attachment when a user uploads the
exact same image multiple times (because it's simpler or whatever).
Initially tried to use a binary field & digest(), but search() blows up
because it tries to utf-8 encode raw binary data. So use char & hexdigest
instead.
_compute_checksum returns None if the provided attachment data does not look
like a website image attachment.
Unhandled: multiple existing matches, maybe a UNIQUE constraint on the
checksum field would be a good idea just in case.
cherrypicked from saas-3's xmo@openerp.com-20140303153855-5f2l8v0jq2mgb26f
which had to be backed out (as the patch adds a new stored field)
bzr revid: xmo@openerp.com-20140304133117-r88p9zl2tc9tsh75
Attachments ought be removed only if they are not used in an existing page/web
view.
Theoretically this could be set directly in unlink(), but:
* that would make a nice error message significantly harder
* the expenses of performing a text search in all view archs would be a bit expensive
Notes:
* the views set could be reduced to only "web" views
* the search is likely sensible to false negatives e.g. different order of
query parameters. It *will* remove images still being used.
bzr revid: xmo@openerp.com-20140304110716-u14w6uo8fbkfa42i
There is a deduplication in ir.attachment, but it's only for FS-stored content
*and* it only deduplicates storage not models (as there are access rights
issues involved).
The goal here is to always return the same attachment when a user uploads the
exact same image multiple times (because it's simpler or whatever).
Initially tried to use a binary field & digest(), but search() blows up
because it tries to utf-8 encode raw binary data. So use char & hexdigest
instead.
_compute_checksum returns None if the provided attachment data does not look
like a website image attachment.
Unhandled: multiple existing matches, maybe a UNIQUE constraint on the
checksum field would be a good idea just in case.
bzr revid: xmo@openerp.com-20140303153855-5f2l8v0jq2mgb26f
Didn't manage to find RTE settings to avoid losing leading whitespace of
lines, so reindeint arch after doing all integration, right before saving back
to view's field.
* html.fromstring(parser=HTMLParser(remove_blank_text=True) does not seem to
work, so serialize to XML, and parse back with
remove_blank_text. remove_blank_text necessary for lxml's pretty_print to
work correctly.
* pretty_print only & always uses 2 spaces/indent level. Our files (and the
HTML editor's Format button) uses 4 spaces -> need a second pass to double
indents.
bzr revid: xmo@openerp.com-20140227125934-q8j3z440px2ic6kx
This config contains only related fields of the website_id many2one.
The problem is that applying the change CREATE a res config settings
And the create orm method does not forward and write the values on the related fields.
Write does.
The best fix should be to change all these related fields to char fields,
and to create the set_ method who will acutally set the value to the website_id.
But, unfortunately, this is a stable branch
And we cannot alter the database structure in stable branches.
bzr revid: dle@openerp.com-20140207172157-6upyhuin93qlkrfa
- added website_path, the end of the path to access the server action, allowing more custom
and short URLs, like website/action/partners instead of website/action/website.action_partners;
- added website_url, computed file with the full address of the server action that is displayed
on the form view, to ease usability
- updated server action contorller: now takes xml_id, id, or website_path
bzr revid: tde@openerp.com-20140207121921-7kdpxrf30zlte47l
- python-slugify: max_length is an optional keyword
- slugify library also exists and does not accepts max_length -> if this very simple library is used, fall
back on our own implementation
bzr revid: tde@openerp.com-20140206145638-entdcqsawrqf1nnq