Commit Graph
103913 Commits
Author SHA1 Message Date
Denis Ledoux db95dcd8bc [FIX] models: translate fields label, even for en_US
In Odoo 7.0 & 8.0, this was possible to translate
a field label, from `en_US` to `en_US`. It was
used as an easy way to change the fields label,
instead of creating an inherited view changing
the string attribute of the field everywhere it was needed.

This was no longer the case in 9.0,
following the revision 9593a29.

The translated terms for `en_US` have been
excluded, for performance reasons
as it was considered not possible to have
translated terms for the `en_US` language.

The fact is, this is very possible: Nothing
prevents to add a translated term
in `en_US` for a translate-able field,
as this is the case for the fields label,
as mentioned above. This field is then
used as the display value instead of the source
term when being in the `en_US` language.

Besides, the above revision was mainly to
give the possibility to sort a model records
on a translated field, using a join on the translations
table. It was then considered that the join could
be avoided, in the case where the user language was `en_US`,
for performance reasons, but, as this is possible
to give another value to the field value trough
the translations, it should actually be done, even
for the records sorting.

opw-670814
2016-03-03 13:21:56 +01:00
Xavier Morel a76b3caa6e [IMP] custom view validators system
Add possibility for modules to add validators, getting closer to
defining views outside of base.
2016-03-03 13:18:01 +01:00
Xavier Morel cfbc1729c4 [IMP] view: inefficient contains check
Checked that the arch tag was a *substring* of "kanban" rather than
literally "kanban"
2016-03-03 13:18:01 +01:00
Nicolas Lempereur 17e79711e4 [FIX] web: save initially grouped editable tree view
Test to bind save and discard buttons of an editable tree view are done
only once when initializing it.

But if the view is by default grouped at the beginning, it will be then
"not editable" but only removing the groupby will change this.

So this commit add a case so if the view is grouped when initialized,
the buttons are always bound.

closes #11198
opw-666794
2016-03-03 13:07:22 +01:00
Philipp Hug 8c635a3a4a [I18N] l10n_ch: German translation
Closes #11192
2016-03-03 11:46:34 +01:00
Denis Ledoux 13f1426bf5 [FIX] report: UPC-A barcodes drawing
It looks like reportlab doesn't handle well
UPC-A barcodes.

As UPC-A barcodes became EAN13 barcodes when
adding a `0` to the beginning of the barcode,
and the render is the same, we ask reportlab
a EAN13 barcode type when a UPC-A barcode is asked,
making sure to add the `0` automatically first.

From Wikipedia:
```
The EAN was developed as a superset of UPC,
adding an extra digit to the beginning of every UPC number.
[...]
the original rules for UPC are treated as a '0'
if read as EAN-13.
A UPC barcode XXXXXXXXXXXX therefore is the EAN-13 barcode 0XXXXXXXXXXXX.
It is possible to prefix a UPC barcode with a 0;
they become EAN-13 rather than UPC-A.
This does not change the check digit.
All point-of-sale systems can now understand both equally.
```
opw-670560
2016-03-03 11:08:36 +01:00
Joren Van Onder 5d07ad5e2f [FIX] point_of_sale: make receipt screen touch scrollable
In the POS we use a touchmove event listener to stop undesired
rubberbanding (in Chrome.disable_rubberbanding()). Elements which should
be scrollable by touch should have the touch-scrollable class. The
receipt screen is obviously one of those, because otherwise you won't be
able to scroll down if you have a long receipt.

opw-670899
2016-03-03 10:02:48 +01:00
Philipp Hug 575e162b6b [CLA] signature for philhug
Closes #11191
2016-03-03 09:44:12 +01:00
qdp-odoo da10eded8c [ADD] l10n_fr_fec: FEC export for the french accounting. Courtesy of Alexis de Lattre (Akretion) 2016-03-03 09:07:17 +01:00
Denis Ledoux 66c1d18579 [FIX] account: Dasbhoard, balance of bank account in foreign currency
When a bank account is set within another currency
than the company currency
(the currency of the journal is set and is different
than the company currency),
the balance displayed was the amount within the company
currency, instead of the amount within the bank account
currency (despite the fact the currency displayed
was the one of the journal).

opw-670815
2016-03-02 17:53:53 +01:00
Joren Van Onder c23eb23267 [FIX] hw_scale: use a larger timeout during initial probe
I'm not sure why the serial timeout is so aggressive, but I assume there
is a reason for it. During probing however, we shouldn't use such an
aggressive timeout because if we miss the device during initial startup
we'll never find it since we only probe devices once.
2016-03-02 16:48:41 +01:00
Thibault Delavallée bfe7aafa7f [IMP] tools: mail: parse style in sanitizer
Style attribute is now parsed and sanitized. Only a while list of accepted
properties is kept. The behavior is implemented directly in the cleaner
itself. As there is no easy possible inheritance, the styling cleaning is
appended directly after the legacy processing in __call__.

The styling sanitizer is called only if the style attribute is kept. If
the sanitizer is called with strip_style=True, the styling is removed
and therefore no sanitizing is performed.

Tests about html fields have been updated. Indeed the styling is now sanitized
and the test was not correct anymore, as the test html was stripped. It now
contains styling that is kept. The strip_classes is also tested.
2016-03-02 16:43:22 +01:00
Thibault Delavallée fd25fd4d44 [FIX] fields: do not strip class by default
Do not strip class by default on html fields, this was an error. Currently
only mail_message body field should not contain classes. Indeed as external
content can be stored through the mail gateway we do not want to keep the
classes.
2016-03-02 16:43:04 +01:00
Denis Ledoux 204f9d3605 [FIX] account: taxes configuration, default filter instead of domain
Convert the domain to display only the sale / purchase
taxes in the taxes list to a default filter doing the same thing,
but which give the possibility to remove the filter
and see taxes with the scope `None`.

opw-670737
2016-03-02 16:27:02 +01:00
Thibault Delavallée cf2318a76d [IMP] tools: sanitizer: frame tag
Do not try to keep frames as they are already removed. Indeed tag_to_kill contain
the frame tag. This parameter has precedence on the ``frames`` parameter of the
cleaner. It was therefore unnecessary.
2016-03-02 14:33:14 +01:00
Thibault Delavallée c9e38cae9f [FIX] fields: html: strip_style / strip_classes
Added the support of strip_classes, like the already existing strip_style
parameter of html fields.. This parameter is missing but allow full
customization of html fields.

Also fixed the call to the sanitizer in fields. Indeed the strict mode is
set to False. When not in strict mode the classes are never stripped whatever
the value of strip_classes.

Sanitizer is now called always in strict mode to ensure the sanitize process
is correct and really take into account strip_style and strip_classes.

This fix is done in master due to possible side effects and possible behavior
changes that are not welcomed in stable versions.
2016-03-02 14:31:39 +01:00
Nicolas Martinelli b21af52ed8 [FIX] account: payment sequence
The payment sequence should depend on the company, which is not possible
with the harcoded reference to the sequence ids.

opw-670491
2016-03-02 14:05:45 +01:00
Martin Trigaux f125b81226 [FIX] survey: better template for list of pages
opw-670279
2016-03-02 13:58:57 +01:00
Joren Van Onder 290eb4ea2e [FIX] hw_blackbox_be, hw_scale: don't rely on serial ID to be unique
After plugging in multiple identical serial to USB interfaces, only the
last one will be available under /dev/serial/by-id/ because they'll have
identical IDs. Instead use /dev/serial/by-path/ which does not have this
issue.
2016-03-02 13:51:40 +01:00
Joren Van Onder acf027ac98 [IMP] hw_scale: allow third party USB to serial interfaces
We support the Mettler Toledo scales which have their own built-in USB
to serial interface. Due to continuing issues with that built-in
interface we will also support the scale configured in raw RS-232 mode
which seems to be more reliable.

This means that in order to connect the scale you'll need a third party
USB to serial interface (unless you have built-in serial interfaces, but
the POSBox doesn't).

The main difficulty this poses is that using this approach we cannot use
the name of the interface to find the device. When using the built-in
interface of the scale the interface would identify with an ID
containing 'mettler' and 'toledo'. When using a third party interface
the ID will instead contain information about the third party
interface. To fix this we use a probe-based approach, probing every
available serial interface until we find one that returns a response to
our probe. This approach will work with both third party interfaces and
the built-in interface of the scale.

Contrary to probe-based approach used in hw_blackbox_be this one is
slightly more complicated because hw_scale is written in such a way that
it is 'plug and play', which means that as long as the module is running
it will continually try to find a scale. This is fine, but we don't want
to keep sending probes to eg. Fiscal Data Modules, which could lead to
issues. Therefore we will only probe every device once. When we lose an
existing, confirmed connection to a scale we will however keep retrying
to connect to that particular device.
2016-03-02 13:51:40 +01:00
Aaron Bohy 27e92415a9 [FIX] mail: followers: allow edit subtypes even if not follower
Before this rev., editing the subtypes of other followers was only possible if
the current user already opened a record of the same model of which he is
himself follower.
2016-03-02 13:39:16 +01:00
Aaron Bohy dc81e5f664 [REF] mail: code refactoring
- extended_chat_window feature in its own files: as it is only available in the
  backend, we don't want it in the frontend assets (which contain the 'basic'
  chat_window)
- move followers feature in its own files
- creation of the 'mail.utils' module in utils.js
- creation of systray.less to define the style of the mail item and dropdown
  in the navbar
- use of chat_manager's search_partner function in PartnerInviteDialog
- some code linting
2016-03-02 13:39:16 +01:00
Aaron Bohy 1e0bc5920f [IMP] mail: follower: remove an RPC when user is follower
When loading a form_view with the follower widgets, an RPC was performed to get
the followers info (name, email...), and if the user is one of the followers,
a second RPC was done to retrieve the subtypes.

This rev. batches those two RPCs. Also simplifies read_subscription_data() as
it is now always called with a follower_id.

A few code refactoring as well.
2016-03-02 13:39:16 +01:00
Denis Ledoux 33a7c02b55 [FIX] mrp: product variant name in BOM structure report
When printing a BOM structure using a variant,
the specifications of the variant were not
displayed in the BOM Structure lines,
making it different than what can be found
in the BOM structure form, and therefore
making it impossible to know which variant
has to be used for this BOM structure
from the report.

opw-670448
2016-03-02 13:21:20 +01:00
Denis Ledoux 68d03cef65 [FIX] mrp: Product variant name in production order report
When printing the production order, the name
of the product did not include the variant
specifications, making it different then what
is displayed on the production order form,
and preventing to know which variant was produced
for this production order.

opw-670448
2016-03-02 13:21:20 +01:00
Christophe Simonis caedbcd261 [IMP] res.partner: remove unused field use_parent_address 2016-03-02 13:10:42 +01:00
Aaron Bohy 50aeecff84 [FIX] mail: chatter: hide basic composer when opening full composer
opw 670388
2016-03-02 10:24:37 +01:00
Damien Bouvy 48a30be234 [FIX] website_quote: set default template on new SOs
Commit 7270780 removed the default for the 'template_id' field,
but other modules assumes SOs are created with it. If not, you
cannot view the quote in the frontend and if you change the template
afterward, you lose all the lines currently in the quote. This commit
restores the behaviour from 9.0.

Since the commit that removed them did not mention why it did (not
even remotely), I'll assume it was unintentional and/or not thought
through.
2016-03-02 09:37:30 +01:00
Martin Trigaux b705576e93 [FIX] account_full_reconcile: untranslatable module
publish the translations on Transifex
2016-03-02 08:49:01 +01:00
Martin Trigaux b3a3454a2f [FIX] stock: duplicated term in .pot 2016-03-02 08:10:00 +01:00
Thibault Francois 9eac32beea [ADD] project_timesheet, sale_service: support for project sub-tasks
This commit introduces "Sub-task", a concept remotely similar to
the "delegated tasks" available in version 7.0, but covering a
more specific and narrow scope.

Activating Sub-tasks
--------------------

Sub-tasks are made available within any project by configuring
a "sub-task project" in the project settings. This feature is
considered low-level and technical, and only accessible with
"Technical Features" enabled.
The "sub-task project" may be the project itself.

Using Sub-tasks
---------------

Conceptually, a sub-task represents the allocation of a part
of the scope of its parent task. Multiple sub-task levels
are possible.

Once activated in project settings, a new "Sub-tasks" smart button
will appear on the task form, giving the option to view and
create sub-tasks. In addition, a new field "Sub-tasks Hours" will
appear next to the other computed "Hours" fields, representing
the total hours allocated to sub-tasks.
(Technically, the sum of the maximum between the planned hours
and spent hours of all sub-tasks, with spent hours always used
when a task is closed)
These sub-task hours will be dynamically subtracted from the
remaining hours of the task, and will therefore affect the
task's progress as well.

Upon creation, a sub-task will inherit the link to the
original sales order and procurement from its parent task, and
will by default be assigned to the "sub-task project" set on
the project of the parent task.

Enhancement
-----------
The kanban view for tasks will now display a color-coded label
with the number of remaining hours, whenever the percentage
of remaining hours is below 20% (orange=20%-, red=1%-).
2016-03-01 18:54:08 +01:00
qsm-odoo df004ac605 [FIX] web_editor: bg-* bootstrap colors
Wrong values for background-colors for bg-* classes of web_editor.
2016-03-01 17:56:27 +01:00
Nicolas Martinelli f5b37a8a07 [FIX] crm_project_issue: move attachments
The attachments are not moved to the issue created. They should.

opw-670259
2016-03-01 17:49:40 +01:00
Nicolas Martinelli 4ef7faeffa [FIX] crm_project_issue: archive instead of delete
When the user converts the lead into an issue, an error occurs: "Form
view couldn't be loaded". This is because the web layer tries to refresh
the data related to a deleted record.

Instead of deleting the lead, we archive it.

opw-670259
2016-03-01 17:49:40 +01:00
Nicolas Martinelli d3ea95db51 [FIX] crm: convert lead to opportunity
When a lead is converted into an opportunity, the probability should match
the new stage.

opw-669960
2016-03-01 17:39:14 +01:00
Nicolas Martinelli bdd60a75af [FIX] crm: default stage
When a lead/opportunity is created, the probability must match the
probability associated to the stage, as introduced in commit b2733391.
However, the call to `_get_default_stage_id` looses the context, which is
an issue since the method `stage_find` will inspect it in order to find
default values to build the search domain. The result is that the manual
call to `_get_default_stage_id` might return a different result than the
automatic call from `get_default`, and therefore the probability does not
match the stage

opw-669960
2016-03-01 17:39:14 +01:00
Damien Bouvy 150d74b6ea [IMP] analytic: add tracking of customer in chatter 2016-03-01 17:12:25 +01:00
Christophe Matthieu a46a3f9958 [FIX] web: can't save if a o2m line have a modifier and try to read db
When the user click on save, 'is_valid' is called on each field.
The o2m test all sub-field (apply modifier and check value).
But, if a modifier change the read-only attribute, the field is reinitialized and call 'render_value' without check 'no_rerender' value.
The relational fields call the db in render_value, and the x2m is invalid because a request is pending.
(change X2ManyListView to keep the 'no_rerender' initial value)

opw-653120
2016-03-01 15:17:05 +01:00
Jeremy Kersten 20ab363a14 [FIX] sale: fix display in form view of sale order line
Div had not impact in quotation view, so I decide to remove it.
But it create an offset in the sale order form view.

Previous commit #2d1db7d fix the form view of quotation lines
but break the form view of sale order line.
https://cloud.githubusercontent.com/assets/10741187/13401517/51989574-df04-11e5-89f0-b3e625d05a7c.png

Related to #11081
2016-03-01 11:30:02 +01:00
Denis Ledoux 3c642e283d [MERGE] forward port of branch 8.0 up to 2ba7fa3 2016-03-01 10:55:13 +01:00
Denis Ledoux 2ba7fa3c9d [FIX] website: alternate languages translated URL
The alternate languages links set in the page `<head>`
were not translated in each language, but within the language
the user is browsing the website.

This leaded to SEO referencing issues, as these links leaded
to (30x) redirections if followed, to translate the URL slug
within the new current language.
e.g.
`/fr_FR/shop/product/bose-mini-bluetooth-speaker-7`
automatically redirected to
`/fr_FR/shop/product/mini-haut-parleur-bluetooth-bose-7`

And it was the first link which was displayed as alternate link
when being in another language than French, while it should
be the second (to avoid the useless redirection).

opw-669979
2016-03-01 10:53:44 +01:00
Denis Ledoux 3913667396 [FIX] website: backport of 8d2a3ba12d 2016-03-01 10:53:44 +01:00
Joren Van Onder dda904c133 [FIX] point_of_sale: avoid '.' thousands separator issues
When we render the payment screen the current value of the current
paymentline is rendered to a string using
Paymentline.get_amount_str(). This conversion always rendered numbers
with a decimal separator of '.' because it just used
Number.toFixed(). This used to be fine but
5a10903e9b made the POS adhere to the set
decimal and thousands separator. Because of this, the POS now has to
parse the input with web.parse_value() which takes into account these
separators. When parse_value() parses a float it first deletes the
thousands separators and then replaces the decimal separator with '.'
before it gets cast to a Number.

In German (and other languages), the '.' is used as a thousands
separator which means that it will get deleted by parse_value() so
you'll end up with '12.34' being interpreted as '1234'. Because of this
it is important that we ensure that the default value that appears in
the input uses the correct separators.

The aforementioned issue only occurs when the user changes the default
value in the paymentline. Only then does a conversion take place from
String to Number. So just clicking on a payment method of type 'Bank'
and validating it would work fine, only when the payment amount was
updated would the issue occur.

Fixes #9395
Closes #10952

note: this should not be forward-ported to >8.0 because later versions
use the rewritten payment screen which is completely different from the
one in 8.0.
2016-03-01 09:38:07 +01:00
Denis Ledoux 3bc7ea6bcf [FIX] stock: stock valuation user timezone date
When delivering a delivery order (`stock.picking.out`),
which generates accounting entries
e.g. thanks to the real-time stock valuation,
the date of the move set was the UTC today date, while it must
be the user's today date, using the timezone passed in the
context.

This prevented the delivery of the `stock.picking.out`
when the `Check date in period` boolean was checked
in the stock journal, and the user date is in the previous
month compared to the UTC date, as the date set on the move
entries were not in the selected period for these move entries.
e.g. When the user timezone is UTC -8, and his current time is
2016-02-29 18:00:00, the UTC date is 2016-03-01 02:00:00, the
period chosen is February (correct), but the date on the move
entries were set to 2016-03-01.

opw-670820
2016-02-29 18:33:55 -07:00
Odoo Translation Bot 8c278a4e4a [I18N] Update translation terms from Transifex 2016-03-01 00:29:04 +01:00
Jeremy Kersten 2d1db7dcf7 [FIX] sale: fix form view where label column take all the available space.
introduce by commit xxx

close xxx
2016-02-29 17:16:49 +01:00
Denis Ledoux 479f6ff48e [FIX] point_of_sale: tz fallback
The user timezone fallback in case the user
has no timezone wasn't set at the right place.

This is an oversight of the revision
9f0120d73b

opw-670778
2016-02-29 16:56:29 +01:00
Jeremy Kersten 9523d59fe3 [FIX] base: compare lang code to the evaluation of the lang.
That will avoid to have the _logger.info at each print.

Now we fallback on lang of company and not en_US by default

If report lang was 'doc.partner_id.lang', we was looking for
 lang code == 'doc.partner_id.lang'
    instead of
 code == eval('doc.partner_id.lang')
 => code == 'de_DE'.
2016-02-29 16:44:03 +01:00
Denis Ledoux cca44bdff3 [FIX] gamification: missing model in email template
Therefore, the template could be seen from
the Discuss module, when clicking on "Send Mail",
but, when attempting to use it, it failed
(as it was not applied on the right model).

opw-670546
2016-02-29 15:39:45 +01:00
Christophe Simonis a3bc09ce94 [FIX] base,sale_margin: correct error introduced during previous forward-port 2016-02-29 13:09:06 +01:00