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
website: added website/action/<id_or_xml_id> route, that runs the server action designed
by its id or xml_id. Only code server action returning a template give a result. The
template is displayed. Other or not existing server actions redirect to the homepage.
website: added an override of ir_actions_server: evaluation context gets request for
evaluation, to enable request.render(template_name); also returns template the same
way action is returned for code server action;
bzr revid: tde@openerp.com-20140205090447-2hppg7818nx1wfzh