Commit Graph
127612 Commits
Author SHA1 Message Date
Denis Ledoux ce0575ef27 [IMP] models: faster ensure_one implementation
Calling `len` on a long list and checking that its value is 1 is slower than
just unpacking the list.  The point is to check whether there is just one item
in the list, and counting all items just for that is a bit overkill.
2019-02-11 15:50:51 +00:00
Denis Ledoux dcc752aaab [IMP] models: faster browse records iteration
By avoiding to update the prefetch ids for each record when iterating on
recordsets.  This is faster when iterating on very large recordsets.
2019-02-11 15:49:21 +00:00
Denis Ledoux 681ff1aec1 [IMP] fields: faster convert_to_record for many2one fields
Use `env.registry` instead of `env` to get the comodel as a class instead of an
instance, which saves one call to `_browse` each time we access a relational
field.  This saves time because of the cost of `object.__new__` and prefetch
update in `_browse`.
2019-02-11 15:45:57 +00:00
Denis Ledoux 368751b938 [IMP] api: avoid record.id indirections
The cache is quite time critical, as it is accessed millions times when reading
multiple fields on hundred of thousands of records.

Avoiding indirections and `if` statement when possible speeds up the cache
access time.
2019-02-11 15:45:36 +00:00
Denis Ledoux 600c8b3e65 [IMP] fields: faster record.id access
This is a partial backport of revision
ed32700925132943fc4957ae2f43deaeeec7a278

to speed up the access of browse record id field.
2019-02-11 15:45:25 +00:00
Toufik Benjaa 5a7a06a71b [FIX] project: Access rights issue on /my/tasks
- Portal users do not have the rights to read on project.project.
  This causes issues on the page "/my/tasks" as it is trying to read the label_tasks and the name of the tasks' project.

  To address this issue we read those two fields using sudo

Fixes #30127
opw-1925720

closes odoo/odoo#30955
2019-02-08 13:06:41 +00:00
Toufik Ben Jaa 19b0c7e1c1 [FIX] auth_signup: invalid value on field signup_valid for non superuser
- The field `signup_valid` was computed and stored using the `superuser`
  env, which causes issue since it means the value was computed for the
  wrong environment.

  Using a compute_sudo instead of manually calling `sudo()` fixes the
  issue.

  e.g: reading signup_valid using a regular user (non superuser) will
       always return False, while doing it as the superuser will return
       the correct value.

closes odoo/odoo#30954
2019-02-08 12:52:29 +00:00
Odoo Translation Bot 0b61a7d135 [I18N] Update translation terms from Transifex 2019-02-10 03:13:22 +01:00
Nicolas Martinelli a473a1bb88 [FIX] account: incorrect exported term
Manual forward-port of #29525.

opw-1908337

closes odoo/odoo#29526
2018-12-13 17:20:59 +00:00
Odoo Translation Bot 439e818953 [I18N] Update translation terms from Transifex 2018-12-16 03:13:51 +01:00
Nicolas Martinelli 8373bafbc2 [FIX] account: missing translation
- Install a second language, e.g. French
- Set Parter A language to French
- Create an invoice for A with a date due in the past
- On the partner form view, print the 'Due Payments'

The body of the letter is not translated in French.

Something quite weird appears:
- The corresponding string is exported in the `stock` module
- It is linked to the demo data `stock.res_company_1`, which corresponds
  to 'My Company, Chicago'.

Therefore, the translation cannot be found by the corresponding query
generated in `_generate_translated_field` and `_read_from_database`:
```
SELECT "res_company"."id" as "id",COALESCE("res_company__overdue_msg"."value", "res_company"."overdue_msg") as "overdue_msg" FROM "res_company" LEFT JOIN
                (SELECT DISTINCT ON (res_id) res_id, value
                 FROM "ir_translation"
                 WHERE name='res.company,overdue_msg' AND lang='fr_BE' AND value!=''
                 ORDER BY res_id, id DESC)
             as "res_company__overdue_msg" ON ("res_company"."id" = "res_company__overdue_msg"."res_id")
                        WHERE "res_company".id = 1  ORDER BY "res_company"."sequence" ,"res_company"."name"
```

Indeed, `res_company.id` is 1, while `res_company__overdue_msg.res_id`
is 3.

The root cause has been solved in v11, to we only export the necessary
term.

opw-1908337

closes odoo/odoo#29525
2018-12-13 17:08:15 +00:00
Julien (juc) Castiaux d129b0220e [FIX] base_address_extended: add missing mexican address format
After this fix, the field `partner.street` is correcly rendered,
but as the test shows the `street_name` and `street_number` fields
are not correct.

But as there are tests that validate that wrong use case, I
consider it a *feature* and not a bug.

opw-1896773

closes odoo/odoo#29520
2018-12-13 14:00:39 +00:00
Nicolas Martinelli c90cad2b6c [FIX] website_sale: shipping address edition
- Buy on product on the eCommerce with a partner having a single address
- At address selection, edit the shipping address

The billing address is also modified.

From the Odoo PoV, this is expected since they point to the same
partner. But from a user PoV, this is totally unexpected and confusing.

Therefore, we only allow the edition of the shipping addresses which are
different from the billing address. Yet, if the user modifies the
billing address, it will change the corresponding shipping address as
well. However, the usual flow is to set the billing address, then the
shipping address. So that should cause less issues. In v12, a warning
message is added.

opw-1914185

closes odoo/odoo#29509
2018-12-13 10:42:28 +00:00
Thanh Dodeur d3b8422c9c [FIX] document_indexation: removes the attachment sidebar button
This commit removes the attachment button from the sidebar.

Reason:

following the introduction of the attachment button in the chatter (7f97c9fc05)
and the partial removal of this feature (1dbb555aab) in V12.0,
it has been decided that the chatter button will completely replace this feature.

closes odoo/odoo#29468
2018-12-12 14:05:48 +00:00
Jeremy Kersten 1599d0bc42 [FIX] sale: use team_id of saleman before team_id of partner
Before this commit, when we crate a sale, we use the team_id of the partner
even if a saleman has been assigned from another team.

Now we use the saleteam of the saleman if it exists before the saleteam directly.

Task-phung

Fixed case:
Partner are created from lead assigned to Partnership
So team_id on partner are Partnership
After, we assign a saleman to the partner from AM
At each SO, the team_id is Partnership instead of AM

closes odoo/odoo#30549
2019-01-25 10:32:38 +00:00
Odoo Translation Bot 94a3b3ca8f [I18N] Update translation terms from Transifex 2019-01-27 06:03:55 +01:00
RomainLibert 6c522c823c [FIX] hr_fleet: count car only once when address_home_id = user_id.partner_id
If employee had the same address_home_id as it's user_id.partner_id then
we counted twice the same car.

Eg: specify address_home_id on demo user using it's partner, system
would have counted two cars. But demo has only one car

closes odoo/odoo#30546
2019-01-25 10:39:02 +00:00
Lucas Lefèvre 607fd63545 [FIX] hr_fleet: fix access rights with employees without user
Commit 55a48e3 added support for computing car count and car reports
for employees without a linked user..
It is computed by accessing the field `address_home_id` (res.partner) to find the driver.
However, this field is private.
Therefore a user in `fleet_group_manager` has an ACL error when accessing
an employee form view which contains a stat button with the car count.

This commit compute the car count and the car report
with `address_home_id` as sudo to fix the issue.

Also fix a typo in attribute `groups` instead of `group` and fix its
value from `fleet_manager` to `fleet.fleet_group_manager`.
2019-01-25 10:37:27 +00:00
Jeremy Kersten 1e1ea00e66 [FIX] website_forum: avoid traceback on ack notif
Before this commit, notification_read raise a traceback on some button click.
Eg: Flag/unglaG

It was hidden in the console, but we can just avoid it too

closes odoo/odoo#30524
2019-01-23 17:03:04 +00:00
Jeremy Kersten 7805c55b0c [FIX] website_forum: small ui fix
Force image to stay in their container (img_fluid could be removed by end user)
Stop to use row_users
    now that we use bs4,
    allow to be more responsive,
    force height to be the same for each card.
Small imp replacing multiple if by elif
Decrease big margin between questions
Place tag on the top (if you have many tag, or very long, the ui is broken)
2019-01-23 17:03:04 +00:00
Jeremy Kersten fe62c45e70 [FIX] website_forum: use same dom for all icon
Before this commit we try to imitate the btn with the form (eg. flag button)
But if you style in a theme your button and not the form (like odoo.com) you
will see a difference between the 4 icons.
2019-01-23 16:35:32 +00:00
Jeremy Kersten c2b4ff9d4e [FIX] website_forum: prefix forum css rule to avoid side effect
prefix class where forum is not specified in the classname to
avoid to have some element on others pages that are stylized.
2019-01-23 16:35:32 +00:00
Jeremy Kersten fccef8d191 [FIX] web,website: use correct variable to define h* size + force fa font
if you have some style e.g. on btn, and use class="fa fa-bug btn btn-sm" the
icon will be rendered with font-family style of btn
2019-01-23 16:27:24 +00:00
Jeremy Kersten a172e4ab77 [FIX] im_livechat: typo 2019-01-23 16:27:24 +00:00
Jigar Vaghela 451fd6cc90 [IMP] l10n_in: Improve Indian localization to supports GSTR-1 reports
Purpose
=======

GST Invoice Report required to show tax amount product line wise.
This Tax amount is divided in CESS and IGST or CGST and SGST.

Improve GST Tax, Tax Groups and Tag.

Reverse charge under GST
As per GST rules tax will have to be paid directly by the receiver to the Government instead of the supplier.

Reseller(E-commerce) under GST
If you sale through ecommerce then need to specify ecommerce GSTIN.

Import/Export goods under GST
If you export the goods then need to specify
    -Export Type
    -Shipping bill number
    -Shipping bill date
    -Shipping port code

Credit or Debit Note
If u give Credit or Debit note then need to specify Refund reason.

Place of Supply is the state of customer.

Added GSTR reports

GSTR Invoice report covers below GSTR-1 sections(this report is grouped by tax rate and journal entries
B2B, B2CL, B2CS, EXP, CDNR and CDNUR

GSTR payment report
This report is covered under GSTIR-1 section called AT(advance payment) and ATADJ(advance payment adjustment)

GSTR HSN report(it is based on the product HSN code)

GSTR Exempted report(it is based on nil rated and exempt tax)
This report is covered under GSTIR-1 section EXEMP

Added demo data to to have GSTR-1 reports out of the box

Solution
========

fetched values of CESS, IGST, CGST and SGST amount in invoice report from tax groups

added new taxes called "Nil Rated" and "Exempt" and also added it's related tax groups and accounts
added tax tags related to GST tax percentage

Set Reverse charge in negative tax

Improved account move line creation grouping machenism:
Now, move lines related to tax are grouped by product and uom instead of grouping them just by tax(this is for better reporting)

closes odoo/odoo#30332
2019-01-18 08:35:33 +00:00
Jigar Vaghela 8c0d62082f [REF] account, invoice: allow to alter grouping key of account.invoice.tax
Needed for the indian GST, or any localization that adds fields on account.tax.

  Was part of PR #26262
2019-01-18 08:35:22 +00:00
Jigar Vaghela 32f39fe2d9 [REF] account: add _prepare method in bank stmt reconciliation
_prepare_payment_vals() will prepare the dict of values to create the payment from a statement line.

  Was part of PR #26262
2019-01-18 08:35:08 +00:00
Jigar Vaghela 7c4fe6b3f2 [FIX] account: invoice validation with complex taxes with children
The field tax_ids on account.move.line created from an invoice was incorrect in case of a tax with children with type_tax_use!= 'none'. Hence, the tax_base_amount and the whole tax statement was wrong in that specific case.
Was part of (although not related) the PR #26262
2019-01-18 08:34:56 +00:00
Jigar Vaghela 86e90fcbea [REF] point_of_sale: refactoring of journal entries creation
* Allows to overwrite and change the account.move.line values that will be created upon a pos session closing for example to add additional data introduced by a localization module.
 * Small refactoring of _create_account_move() method: All the parameter values of _create_account_move could easily be found from pos.order recordset itself, hence removed them and adapted call to it everywhere.

Part of PR #26262 related to the indian GST
2019-01-18 08:34:32 +00:00
Martin Geubelle 212ca45660 [FIX] web, *: restore context key on search view field
Since the control panel refactoring, the `context` key on a `<field>` in the
search view was ignored (like <field name='pricelist' context="{'pricelist': self}".

The previous behaviour has been reintroduced and modified a little bit.

For way too long, an ugly hack was used to get a numerical value in self. This
ugly hack was still present but wasn't working since 8.0 (at least for the
numerical value). A counter hack (see odoo/odoo@4a81e8a) was then applied to
avoid really using a `selection` widget. To get even more confused, `self` was
replaced by the *last* user-specified value.

Well, it's time to clean this mess.

Now, the `self` key is replaced by an array of user-specified values (by value,
we mean the field value i.e. the `id` for a many2one, or the `key` for a
selection field).

Task 1902826

closes odoo/odoo#30368
2019-01-18 16:06:44 +00:00
Martin Geubelle 02d3655c7d [FIX] web: allow to build the doc
A wrong docstring was preventing the doc to build correctly.
2019-01-18 16:06:21 +00:00
Jeremy Kersten 199adbd0e1 [IMP] crm: revert renaming of subtype
Seems better to have wrong term for lead an correct for opportunity
that have not wrong for Lead an not wrong for Opportunity.

task-1932070 related to b6f4d97

closes odoo/odoo#30482
2019-01-23 13:59:00 +00:00
Jeremy Kersten b1f8d4fb6c [FIX] crm: track type on crm.lead
Until now, you cannot find easily if it is a lead or an opportunity that
 has been created.

"Opportunity created" is written in the log but it is in reality a Lead.

Now we track the change on the field type to know what was the type at the
creation AND when it has been converted to opportunity.

task:common-sense-in-real-life
2019-01-23 12:01:58 +00:00
Yannick Tivisse 3857473b57 [FIX] hr_contract: Reintroduce 'Contract Template' menuitem
closes odoo/odoo#30479
2019-01-23 14:03:23 +00:00
Jeremy Kersten 3a4b5164b1 [FIX] website: missing replace from type to redirect_type
website.redirect feature is broken since commit 2924b77

related to odoo/odoo#27599 and odoo/odoo#28112

closes odoo/odoo#30446
2019-01-22 15:02:58 +00:00
Odoo Translation Bot 0efff5f030 [I18N] Update translation terms from Transifex 2019-01-21 16:49:26 +01:00
Christophe Simonis 9d2e201692 [FIX] web: correct forward-port 2019-01-18 17:03:46 +01:00
Christophe Simonis d31306e07a [MERGE] forward port branch 12.0 up to 6e5ac01160
Also contains fixes for previous forward-port.
2019-01-18 16:18:17 +01:00
Christophe Simonis 7276e8203e [FIX] purchase: correct previous forward-port.
Domain was apply on the wrong model.
2019-01-18 14:37:51 +01:00
Christophe Simonis a337b9ec92 [MERGE] forward port branch 12.0 up to f854e01a98 2019-01-18 14:26:33 +01:00
Nicolas Seinlet f8e37d6a80 [IMP] improve overridden sql constraints support
If module A define an sql constraints and module B, which depends on 
module A, override the sql constraint, we must ensure having only the 
last definition in constraints list. Having the two versions in the list
makes the ORM continuously trying to drop the second version by the 
first one, then recreate the second version, when performing operations 
like an upgrade a module B.

An illustration of this is the login_key on res.users, which is unique
per login in base, but unique per (login, website) in website.

closes odoo/odoo#30334
2019-01-18 09:20:02 +00:00
pha-odoo 649ea4927e [FIX] hr: move print_employee_badge to the hr module
closes odoo/odoo#30302
2019-01-17 09:59:57 +00:00
RomainLibert 2f526dcd65 [FIX] hr_payroll: do not display conflicting leave button when no type
Basically you can have two types of error when using benefits, the
conflicting leave error and the no benefit type set error.
You can have either one of them or both of them at the same time.

The problem is that when there is an error, we currently have no way of
knowing which error it is.

To resolve this we only display one error at a time starting with the
no benefit type error and then if there is a conflicting leave we
display the next error

closes odoo/odoo#30259
2019-01-16 12:47:47 +00:00
RomainLibert dad7d80a93 [FIX] mail: fix typo in _onActivityUpdated
closes odoo/odoo#30260
2019-01-16 12:40:56 +00:00
Martin Trigaux bfe1e20d6b [I18N] export saas-12.1 source terms
To reflect fixes at ec2263080a and cd4080839f

closes odoo/odoo#30253
2019-01-16 10:35:49 +00:00
Romeo Fragomeli c72e5a8bc5 Revert "[FIX] web: empty kanban view on mobile"
Original commit breaking kanban view: 4cd379cf6e
Commit reverted: 287136b85e

Two fixes were added independently to fix this bug but only one is needed.

odoo/enterprise@c8fe86fa22 best fix
287136b85e other fix (now reverted)

Reverting this commit fix the following bugs:
- Swipe on kanban : Not able to swipe on empty column. it only works on cards
- Popup activity on kanban card is unusable
- On kanban separation, "Undefined" cards are before the kanban separation

closes odoo/odoo#30177
2019-01-16 11:00:38 +00:00
Christophe Simonis 38068f8151 [FIX] account: cherry-pick of 83f5dc8e35
do not set unknow field when creating invoice

The field `reference_type` has been removed with b5bb5bd421

Adapt newly forward-ported test to not use this field.

closes odoo/odoo#30255
2019-01-16 08:47:58 +00:00
Christophe Simonis b28788a8be [FIX] web_editor: remove wrongly inserted line during previous forward-port 2019-01-14 11:17:31 +01:00
Christophe Simonis ea51fe5130 [FIX] base: adapt forward-ported test to new version 2019-01-14 11:11:22 +01:00
Christophe Simonis 3cbc9dd6c0 [MERGE] forward port branch 12.0 up to 6a0675d36d 2019-01-14 10:34:50 +01:00