When the addons_path config contained the
default path, the system was working with
an empty addons_path in the middle of the
other paths. This empty one matched for all
files, making all files appear to belong to
the root path component, e.g. `home` if the
root path is in /home.
Refactored a bit to avoid duplicates and
redundant path calculations.
On Launchpad, as commented on bug 933496, PO entries (and their comments) are
shared between series. This mean that e.g. the 7.0 series can have the wrong
`reference` comments (those beginning with #:) as they would be copied from say
the trunk series. Those `reference` comments are used to import translations
and look them up.
This patch adds a few lines of code to tools.translate so that targets
defined in the POT `reference` comments are used in addition to those from the
PO file.
Also adds a test module to validate the new behavior.
This patch stems from:
- the 6.1 branch by Vo Minh Thu:
https://code.launchpad.net/+branch/~openerp-dev/openobject-server/6.1-fix-po-targets-933496-vmt
- the 7.0 port by Numerigraphe:
https://code.launchpad.net/~numerigraphe-team/openobject-server/7.0-fix-po-targets-933496-vmt
Fixes the translation term import/export logic to
support terms inside QWeb templates.
Refactored a bit the export code so the babel-based
QWeb terms extractor for ./static/src/*.xml files
uses the same logic as the regular extractor for
ir.ui.views with type QWeb.
Server-side QWeb rendering uses a mix of the native
view inheritance mechanism and the template inclusion
(t-call) mechanism. During rendering the translations
are only applied at "template" level, *after* the
view inheritance has already been resolved.
As a result translations are local to a template,
not to the inherited view in which they are actually
written.
In terms of exporting PO[T] files, this is done by
resolving the "root" QWeb template a view belongs
to, and using it as the location of the translated term.
During import there is one extra quirk for QWeb
terms: they need to be linked to the `website` model
rather than the actual `ir.ui.view` model they
are really pointing to, so the rendering phase can
properly recognize them.
- [FIX] bounce regex: too many emails were considered as bounce and therefore
not displayed in the chatter and lost for the communication history. The regex
was not correctly looking for the bounce alias in the email_to.
- [FIX] invite email: replying to the invitation email (invitation as new
follower) now replies to the user sending the invitation.
- [FIX] mass_mailing: added a column to store the id of the original email
in addition to the many2one column. The many2one is set to null when deleting
the original email. As the information is necessary, it is saved on another
field. The many2one is necessary for indexes purpose as the inverse of
a one2many.
This is related to commit d31faceb67
(This is to avoid the runbot being yellow if on_change methods have extra keys in the returned value, this is not wrong, the web client will simply ignore them).
In the return result of an on_change, having keys which are not ine the view is not that bad, it is not an actual problem.
Display warning instead of asserting all the keys are in the views.
Can be defined to False in any model to completely
disable translations for this model, when they are
irrelevant. This is useful e.g. for test classes
that use attributes that would normally be translatable.
Rebranding has been done in:
- data/demo files
- html templates
- help notices
- comments
- logger messages
- and other various messages
(Commit taken from odoo-dev:8.0-improve-openerp-odoo-rlu at rev 7deaa08)
Closes#1260
* fix#1149 courtesy of @andreparames
* remove useless threaded yaml import
* openerp.service.server thread spawning get an API environment further down
the stack
- sessions are now shared between series.
- use site data dir instead of user data dir if user has no home dir.
- in http and module handling, `data-dir` was used before being
initialized, using the default value instead of user input
(fixes#308, #904)
A squashed merge is required as the conversion of the apiculture branch from
bzr to git was not correctly done. The git history contains irrelevant blobs
and commits. This branch brings a lot of changes and fixes, too many to list
exhaustively.
- New orm api, objects are now used instead of ids
- Environements to encapsulates cr uid context while maintaining backward compatibility
- Field compute attribute is a new object oriented way to define function fields
- Shared browse record cache
- New onchange protocol
- Optional copy flag on fields
- Documentation update
- Dead code cleanup
- Lots of fixes
When @primary="True" is present on <template> tag, we'll set
the t-name to the full canonical xmlid of current template (@id)
Providing a "kind of" clone mode for templates.
We always want to escape quotes (") as part of the process of
generating HTML output. This option (quote=True) turned into
an implicit flag with a DeprecationWarning in werkzeug 0.9.0
It is likely to disappear in a future release of werkzeug too.
A wrapper avoids this warning without loss of compatibility
Decorator for a lazy property of an object, i.e., an object attribute
that is determined by the result of a method call evaluated once. To
reevaluate the property, simply delete the attribute on the object, and
get it again.
bzr revid: chs@openerp.com-20140324120001-935d90ye7tb8a5q4
Unless specficially requested, the output image should have the same file type
as the input (JPEG -> JPEG, PNG -> PNG), everything should not be converted to
PNG by default.
bzr revid: xmo@openerp.com-20140317084123-wvn8r4ot79610k1r
- prepare for netsvc will be renamed to logging
- move back log from http.py has it's used by the cron
- move sql handler to netsvc, simplify to use sql_db
- remove unused handler
- close plaform specific #ifdef pandora's box
bzr revid: al@openerp.com-20140316182933-jkcji9yqfbsokcmg
The new backup format is a zip containing the sql dump of the
database and the filestore of this database.
Old backups can still be restored
bzr revid: chs@openerp.com-20140304175656-iu3un6q43ttnhjfz
During some tests, the runner performs sequences of DUPLICATE and DROP
on databases. Each DUPLICATE is followed by some operations then a
DROP.
Problem is, after a DROP the next DUPLICATE RPC query will attempt a
connection to the just-dropped database, openerp.sql_db will log an
OperationalError ("Connection to the database failed" since the db it
tries to connect to was removed) then the HTTP dispatcher will just
switch to "nodb" and continue on its merry way.
Mute the sql_db logger while attempting to fetch the ir.http object.
Also assert that the logger name is a string in mute_logger, as
`mute_logger(openerp.sql_db)` is syntactically valid, but will not do
anything.
bzr revid: xmo@openerp.com-20140123115413-ax5patcomdfp3ue3
- now using openerp.tools.safe_eval, instead of a custom eval with custom builtins
- removed undefined_handler, hardcoded to a lambda function that returns None for
a missing attribute
tools.safe_eval: added a parameter locals_builtins. This allows to copy the builtins
in the locals. This hack is due to the fact that the locals always returns None, allowing
to simplify templates. Otherwise we would have to test the existence of each variable
before actually using it.
However as the locals always return None for every key, the globals are never checked.
Copying the builtins inside the local allows to have a complete locals, but sligtly
break the globals/locals separation.
To be reviewed and approved.
bzr revid: tde@openerp.com-20140116182750-1rnw8iljt5a9gb4u
encapsulatse the whole content inside a div. This means that html fields are
not editor-clean after being sanitized, because a div has been inserted as root
element. Removing this element allows to have snippets that can be dragged,
dropped, or to insert new snippets inside edited html content in html fields.
[IMP] tools: tests: mail: updated a test accordingly
bzr revid: tde@openerp.com-20140115142709-e4951b4nc06sfxf0
options before website: without frames, with safe attributes only.
We will have to find a way to use the strict mode when parsing incoming
emails, but not when sending or storing openerp content.
Currently the not strict mode is the default one, to avoid side-effects with
the website.
bzr revid: tde@openerp.com-20140115141319-g15zl1kqrp8sgoa3
options before website: without frames, with safe attributes only.
We will have to find a way to use the strict mode when parsing incoming
emails, but not when sending or storing openerp content.
Currently the not strict mode is the default one, to avoid side-effects with
the website.
bzr revid: tde@openerp.com-20140113085701-f2bzu94cq1z3tl10
path on the field tag fetching the right file instead of using the base64
encoded file in the field.
<field name="image" type="base64" file="base/static/img/main_partner-image.png" />
bzr revid: stw@openerp.com-20140109154338-0spjbo109pxh75pp
When re-loading a translation (with 'Overwrite Existing Terms') we need to
empty the translation cache to ensure overwritten terms get their new values.
bzr revid: xal@openerp.com-20131217145738-9oy2fjhbc46yzonq
In `init` mode, a record can still be filled with multiple record
nodes with the first node being in a data@noupdate="1" and the other
nodes without @noupdate attribute but this won't be the case anymore in
`update` mode
bzr revid: fme@openerp.com-20131216144304-2e8b9xvoks2fvlj9
It's completely broken in case of optional parameters
e.g. (ir.translation)._get_source, as a call with the optional
parameter won't be matched by a clear without, and the other way
around. This becomes even more problematic in the website branch as
_get_source now has *two* optional parameters (source and res_id).
After discussion with odo and discovery that in multiprocess only the
current node will use any granularity (other nodes not only clear all
of the current method cache, but all caches of all models), simplify
cache clearing, ignore parameters and just blow the current method's
cache entirely.
bzr revid: xmo@openerp.com-20131024132956-4tl3prum8za47igy
Fixed length computation of text in html nodes: multiples successive whitespaces are considered as one whitespaces; better truncate position when adding a read more link; now always protect words (placed after the first word that exceeds the shorten position); pre nodes are preserved about whitespaces; when the read more link should go into a quote, it instead goes at the end of the first parent node not being quoted instead of at a wrong position.
Misc :
- removed an unnecessary loop by merging two root.iter() that do not interfere
- changed occurrences of getiterator to iter, because getiterator is deprecated
- nodes are cleaned after processing, removing all attributes used to tag nodes
- fixed a bug about cleaning span containing only whitespaces not always cleaned
Added tests for shorten position.
bzr revid: tde@openerp.com-20131024084411-pytwt9g1gdmoebzc
Fixed length computation of text in html nodes: multiples successive
whitespaces are considered as one whitespaces; better truncate position
when adding a read more link; now always protect words (placed after
the first word that exceeds the shorten position); pre nodes are preserved
about whitespaces; when the read more link should go into a quote, it instead
goes at the end of the first parent node not being quoted instead of at
a wrong position.
Added tests for shorten position.
bzr revid: tde@openerp.com-20131022135037-igauu2kkglvdrqu7
Read more links could not appear when the shorten limit was obtained
inside a quote that is removed in the process, removing the read
more link node. It now get the first parent that is not inside a
quote to be sure the link is displayed.
Added the test-case that helped find this bug.
bzr revid: tde@openerp.com-20131017110525-etn0u5s91zbnvul1
Added an autoreload mecanism based on pyinotify that restart the server as soon
as a .py or .xml file change is detected, for xml updates the relevant -u are
automatically added to exec(2).
pyinotify is linux specific and should be replaced by a cross plaform library
such as watchdog. Unfortunatly watchdog is not yet packaged in debian. We could
support both libraries, patches are welcome.
Refactored the code in cli/* and service/*. The 3 running modes of openerp
(threaded, prefork, gevent) are now in openerp/service/server.py, one class per
mode, and they share the same interface.
Added a signal handler to increase or decrase the number of HTTP workers in
prefork mode (SIGTTIN, SIGTTOU).
bzr revid: al@openerp.com-20131005225740-hrxwy50ldi5yql0e