Commit Graph
117975 Commits
Author SHA1 Message Date
Raphael Collet 8225f36497 [IMP] models: speed up schema update for models
Simply remove most `commit()` statements from code that updates the database
schema.  This improves the performance of the schema update by 30%.
2017-02-22 15:24:06 +01:00
Raphael Collet b3c97f08bb [FIX] mail: when initializing aliases, force reflection of models 2017-02-22 15:24:06 +01:00
Raphael Collet dfec1fa778 [FIX] base_sparse_field: remove pre_init_hook 2017-02-22 15:24:05 +01:00
Raphael Collet daa1eb1fc4 [IMP] base: remove ir_model_* tables from base.sql 2017-02-22 15:24:05 +01:00
Raphael Collet 2b46025dd5 [REF] models: use Registry.post_init() for reflecting models, fields, relations and constraints 2017-02-22 15:23:48 +01:00
Raphael Collet b6103d0b1b [REF] models: foreign keys use Registry.post_init() instead of BaseModel._auto_end()
Also use Registry.post_init() for the creation of foreign keys in
`_sql_constraints`.
2017-02-22 15:22:26 +01:00
Raphael Collet a1d061080e [REF] models: improve the API for post-init functions
Add a method to the registry to register function calls that must be done after
methods `_auto_init` and `init` have been invoked on all models.
2017-02-22 15:22:26 +01:00
Raphael Collet d0591c18e5 [REF] base: refactor the API of model, field, constraint and relation reflection
Simplify the API as much as possible, and delegate all the implementation
details to the models `ir.model`, `ir.model.fields`, `ir.model.constraint` and
`ir.model.relation`.
2017-02-22 15:16:35 +01:00
Raphael Collet 3214ca9820 [ADD] test_new_api: add checks on a model's schema 2017-02-22 15:16:34 +01:00
Raphael Collet 3ae219f773 [IMP] base: minimize recomputations triggered by model and field reflection 2017-02-22 15:16:34 +01:00
Raphael Collet c605ffa62a [IMP] base: remove management of deprecated indexes
Those indexes have been removed in version 10.0 or before, dropping them on
module upgrade is no longer necessary.
2017-02-22 15:16:21 +01:00
Goffin Simon 36b7d980ca [FIX] sale_margin: uninstall_hook
When uninstalling the module sale_margin, the view 'sale_report' was deleted
because this view was overwritten  in this module.

But the module sale still uses the 'sale_report' view so it raised an error
each time this view was required.

opw:709328
2017-02-22 14:46:26 +01:00
Goffin Simon f0178abe9b [FIX] base: Early commit when making uninstall_hook
Due to these commits, it was impossible to make an uninstall_hook
just after an uninstallation.

In some case, it 's needed to make an uninstall_hook just after the uninstallation.

Look this commit for example: e03c919e9955c5d3f678c0580744d9ef8c483c74
2017-02-22 14:46:07 +01:00
Goffin Simon d111c2fe02 [FIX] stock_account: Wrong label
When the internal category of a product is in costing method = "Average Price"
and Inventory Valuation = "Perpetual(automated)", a button with the label
"Compute from average price" was displayed. But when clicking on this button,
it just allows to set the standard price. So the label of this button must be
"Set standard price".

opw:709329
2017-02-22 14:09:18 +01:00
Andrea Piovesana f471535054 [FIX] reference odoo 10 in setup_dev
Instead of links to 9.0 branch

Closes #15588
2017-02-22 10:57:12 +01:00
Gilvan Leal 53ceda5a43 [CLA] Signature for gilvanleal
Done at #15590
2017-02-22 10:55:32 +01:00
Raphael Collet 4f62a65b1d [FIX] fields: on monetary fields, allow x_currency_id as currency field
OPW 704684
2017-02-22 10:46:28 +01:00
Nicolas Martinelli fcdb50ae3b [FIX] website_sale: "Ship to the same address"
- Create a partner with an invoicing and a delivery address.
- Connect to the website as this partner, create an order
- In the "Shipping & Billing" page, the delivery address is selected
  automatically. Change and set to "Ship to the same address", and
  confirm.

The "Ship To" address is still the delivery address, while it should be
the same than the "Bill To" address.

This reintroduces the v8 behavior:
`order_info.update(partner_shipping_id=checkout.get('shipping_id') or partner_id)`
https://github.com/odoo/odoo/blob/8.0/addons/website_sale/controllers/main.py#L623
2017-02-22 09:32:47 +01:00
Nicolas Martinelli a6186990bc [FIX] website_sale: invoice and delivery address
Create the following
- Create a partner of type "Company" (Address 1)
- Add an "Invoicing" address to this partner (Address 2)
- Add a "Contact" address to this partner
- Authorize this contact as a portal user

Connect as the portal user created:
- Place an order from website, add a product to cart
- In "Shipping & Billing", confirm the order. The proposed billing
  address is "Address 1". Do not change the shipping address ("Ship to
  the same address"), and confirm.

The "Bill To" as well as the "Ship To" address are set to "Address 1".
This is a regression from v8. In v8, "Bill To" is set to "Address 2",
while "Ship To" is set to "Address 1".

opw-707283
2017-02-22 09:32:47 +01:00
Martin Trigaux 1a1b0e238a [FIX] l10n_sa: use official currency
Saudi Arabia uses Saudi Riyal, not Egyptian Pound
Introduced at 932748d

Fixes #11741
2017-02-22 09:30:30 +01:00
Thibault Delavallée e2f22fed53 [MERGE] mail: clearly separate email from inbox notification management
This merge changes the way odoo handles notifications. Previously
notifications were sent to the odoo inbox and forwarded by email
depending on a parameter on the partner. Now users choose whether to
use odoo inbox or email but not both. Customers only work using
emails from now on.

This merge also features side commits linked to notifications and mail
like making mail tests less dependent on channels, the removal of auto
read in channels, limitation of assigned emails and project subscription
improvements.
2017-02-21 17:30:38 +01:00
Denis Ledoux 2f66e77fe8 [FIX] account: variable st_line used outside its scope
The variable `st_line` was used outside of its scope,
in the line
`move.line_ids.filtered(lambda x:x.statement_id == st_line.statement_id).write({'statement_id': False})`

It leaded to issues when calling the method
on multiple `account.bank.statement.line`: Only
the items associated to the last line were unlinked

opw-709196
2017-02-21 17:27:44 +01:00
Yannick Tivisse 5d2187539e [IMP] sale: Always show Products menuitems under Catalog 2017-02-21 16:46:27 +01:00
Thibault Delavallée c815509709 [IMP] project: automatically (un)subscribe to all tasks when (un)subscribing a project
When subscribing to a project, an user is also subscribe to all existing
living tasks. Active is defined as active tasks not in a folded stage.
As requested.
2017-02-21 16:45:55 +01:00
Thibault Delavallée 505aa1aa0c [REM] mail: remove auto read in channels
Currently using channels and inbox notifications is impossible because
browsing a channel marks all related notifications as done. If an user
has a lot of pending notifications, he cannot go on a channel linked to
documents he is working on. Indeed in that case he looses all notifications.

Auto-read of notifications is therefore removed. The only way of managing
notifications when working by inbox is either in the inbox menu or either
on documents, as reading a document marks related notification as done.
2017-02-21 16:44:04 +01:00
Thibault Delavallée bda3d214d1 [IMP] mail: limit "assigned" email to people asking to receive emails
Indeed people working with inbox should already see a notification in
their Inbox.
2017-02-21 16:43:42 +01:00
Aline Preillon 2950ffaa86 [IMP] mail: improve notification management, either email either inbox
Currently partners have a boolean field to choose whether to receive
notifications only in their Odoo inbox or to receive them in their inbox
and by email. This leads to several issues :

 * if a customer is configured to not receive emails he will not receive
   any notification on sales orders, leads, ... This is not clearly
   indicated to the salesman and it is not easy to know how to change
   that behavior
 * if an user chooses to receive emails and does not use its inbox a lot
   of notifications stay in Odoo. The user has to manually set them as
   done to make them disappear which is redundant.

This commit changes that behavior. From now on customers will always
receive all notifications by email. Indeed Odoo is not a customer oriented
mailbox. Moreover sales orders or discussions on leads send to customers
should always be sent by email as it is the standard communication
mechanism. Users will be able to choose to receive notifications in Odoo
or by email. The choice is no longer inbox or inbox + email, but inbox
or email. Choosing one option or the other one depends on the way the
user wants to work.

Technically the field is moved on the users model and selection keys
are renamed. Notification process is modified

 * notified_partner_ids contains as before specified recipients as well
   as followers matching the subtype
 * customers and users working with emails are notified. During that
   process customers notifications are marked as done to be able to
   track the email state without having needaction. Users notifications
   are currently deleted as we do not track their email state.

The removal of partner field implies changes in various addons that
define partner data with this field set in the values.
2017-02-21 16:42:11 +01:00
Thibault Delavallée eb3a531666 [IMP] mail: small code linting in notification methods
This commit cleans code to separate recipients computation in mail
message from notification mechanism in partner. There is no functional
change. Some variables have been renamed notably to know that
some of the record sets are sudoed during computation.
2017-02-21 16:41:15 +01:00
Thibault Delavallée 927fbe8845 [IMP] mail: make tests less dependent on mail.channel model
Currently almost all mail tests run on mail.channel model. Indeed it is
the only model inheriting from mail.thread and mail.alias when having only
mail installed. However channel model have several specific features and
is not totally a standard mail.thread model. For example notification
recipients are computed a bit differently.

Since 4f9105a4ef mail module has a test
model allowing to perform tests on a very simple mail.thread-like model.
This commit make mail tests use this test model instead of mail.channel
everywhere it is possible. Channel model should be used only when tests
are channel-dependent.
2017-02-21 16:41:14 +01:00
Christophe Simonis 6c89b2bdd2 [FIX] website: correct access to Website Config 2017-02-21 15:37:07 +01:00
Nicolas Martinelli 73bd7ef0e0 [FIX] hr_payroll: calculation of work days
The current calculation of work days is inconsistent with the leaves of
the employee in several cases.

The core of the problem is the logic of the algorithm: for a given day,
if we can find one hr_holiday within this day, we consider it as a
leave. One can easily spot several issues with the existing logic:
- if an employee takes less than a day-off (e.g. a half day), the
  complete day is considered as a leave.
- the timezone (TZ) is not taken into account when searching for a
  leave, while it is when computing the number of working hours. A leave
  from 3:00 AM to 3:00 PM in the Los Angeles timezone would then be
  considered as two days-off since it spread on two days in UTC.

The logic is therefore completely modified. For each day of the period:
- compute the work intervals (TZ taken into account, converted in UTC)
- search for a hr.holiday which completely includes the work interval
- if a holiday is found, the work interval is considered as a leave.
  Otherwise, it is considered as a normal work period.

This is a first step in improving the logic. The first faulty use case
is partially solved, since we cover now complete work intervals.
However, a leave covering only partially a work interval will not be
taken into account.

The second faulty use case is solved.

opw-707897
2017-02-21 15:28:49 +01:00
Denis Ledoux 534c9e9c15 [FIX] hr_timesheet: computation of the children hours according to the child stage
The below revision:
9bea8a8bd3

Change the behavior on how are computed the children hours
according to their stage fold state, while it was not intended
to. The subject of the above revision was an issue
in the recomputation dependence for the field
`children_hours`, but not how the field was computed.

It's important to count the effective hours when the
sub task is in a final stage (e.g. done) rather
than the planned hours in this case.

opw-709008
2017-02-21 15:12:44 +01:00
Denis Ledoux de57e638c2 [FIX] hr_timesheet: children_hours computation
The computation of the `children_hours` wasn't
reset at each compute, and they ended up
to be added at each recomputation involving
the method `_hours_get`

This is a regression during migration to the new api
in revision
e6ac7a7d25

opw-709008
2017-02-21 15:12:44 +01:00
Denis Ledoux 9e7bc3623a [FIX] hr_timesheet: recomputation depends of the task progress
The task progress value depends on the stage of the task,
if it's a folded stage or not.

If the task was being changed of stage, from
a non-folded stage to a folded stage,
the recomputation of the progress was not done,
while it was needed as a task in a final
stage is considered to be done.

This is a regression during migration to the new api in
e6ac7a7d25
2017-02-21 15:12:44 +01:00
qsm-odoo c5779ec30d [REF] *: replace uses of "<>" in xml domains by "!=" 2017-02-21 13:33:32 +01:00
Denis Ledoux b7dffb59ff [FIX] link_tracker: convert link with ampersand
Links containing HTML escaped characters,
such as the ampersand
`&` escaped `&amp;`
were not shortened correctly:
Their redirecting URL contained the escaped value
(e.g. `&amp;`) instead of the actual character,
leading to the wrong redirected URL.

e.g. creating a mass-mailing with a link
contains as query string
?test1=1&test2=2 were shortened
with as redirect link
?test1=1&amp;test2=2

opw-708272
2017-02-21 12:26:02 +01:00
Simon Lejeune 68745f8041 [REV] website_sale: Enable billing/delivery address on checkout process
This commit break the shipping form for public and portal user.

This reverts commit d3ff48533f.
2017-02-21 11:46:57 +01:00
Nicolas Martinelli 05810dc7de [FIX] base: default partner email
In a lead:
- Fill in contact information (phone, address, email...)
- Create a new contact

All information is copied to the new contact, except the email.

opw-706711
2017-02-21 11:04:54 +01:00
Goffin Simon 79d88494d6 [FIX] stock: Customer address in deliveryslip
When there is no move line linked to the picking, the customer address must
be the address of the partner linked to the stock.pick

Fixes #15092

opw:707890
2017-02-21 10:56:19 +01:00
Thibault Delavallée 80d26e26bb [IMP] mail: notify author of internal notes when replied through gateway
Currently if an user mentions someone in an internal note he is not
notified of any reply as replies create internal notes. This commit
ensure the author of the first note is notified of the reply even
if it is still an internal note.

Tests have been updated accordingly.
2017-02-21 10:39:43 +01:00
Thibault Delavallée 1d9052fc19 [IMP] mail: add tests about replies to internal note through mailgateway
Replying to internal notes should create internal notes and should
not notify anyone. Future commit will change that behavior. This
commit ensure the current behavior is working as intended.
2017-02-21 10:39:43 +01:00
Thibault Delavallée 21720f0a3f [FIX] mail: slighty improve notification email layout
* Limit company image to match buttons size and avoid badly
   sized image
 * Add a margin below internal note notice because it currently
   overlaps with actual email content
 * Avoid having signature direclty included in message by
   enclosing body in a div
2017-02-21 10:39:42 +01:00
qsm-odoo b4d8a270e1 [FIX] web_editor, website: restore content menu feature
Commit 3c9e6c89e7 made big changes to the
link editor dialog... but also broke many features with it.

Commit 9a1ea6dc08 already fixed some of
them but this commit fixes a bigger one. Indeed, the menu edition
feature was totally broken since the changes. Also, the DOM was messy
which broke form navigation, etc.
This commit also simplifies the LESS which was uselessly big.
2017-02-20 17:37:15 +01:00
Florent de Labarre a5361605cb [IMP] account: hide deprecated accounts
To be consistent with other domain added at ee97028

Closes #15432
2017-02-20 16:29:10 +01:00
Denis Ledoux 3598538b57 [FIX] sale: Hit the Sales button of an archived product
Without passing `active_test=False` in the context,
a one2many fields exludes the record with
`active` set to False.

For an archived product template, this means
`product_variant_ids` returned an empty array

opw-708828
2017-02-20 16:29:07 +01:00
Levent Karakaş a6c2210770 [FIX] hr_payroll: sum correctly category code
If amount = 1 and the category amount = -1, the sum is 0 and the returned
value was amount instead of zero (`0 or amount`)

Avoid this evalution error by splitting on multiple lines

Closes #15470
2017-02-20 16:19:12 +01:00
Goffin Simon e2bbee6df5 [FIX] crm: Creating an opportunity from the pipe
When creating an opportunity from the kanban view with the crm.lead.form.simple,
setting the partner_id didn't set the fields email and phone by the onchange.

opw:708514
2017-02-20 16:16:24 +01:00
Jose Suniaga [Vauxoo] 03bb76d3b7 [FIX] l10n_cr: wrong reference in partners titles
When installing costa rican localization the partners titles has
a wrong reference to base module that cause a warning messge in
server log. In total the localization had 8 partners titles that
not exists in base which was removed the reference and another 2
that exists in base but not had any difference.

Courtesy of Vauxoo.

Closes #15495
2017-02-20 14:59:16 +01:00
Denis Ledoux b36b79cfbc [FIX] hr_expense: hook to allow override the payment values
As it's done in
https://github.com/odoo/odoo/blob/10.0/addons/account/models/account_payment.py#L149

This is to allow `hr_expense_sepa` to inject the bank account
when creating the payment.

opw-708451
2017-02-20 12:49:52 +01:00
Goffin Simon f63fb28579 [FIX] rating: Typo error
When record.id was not in the dictionary result, it raised a error.

opw:709072
2017-02-20 11:40:19 +01:00