Commit Graph
132129 Commits
Author SHA1 Message Date
Robin Heinz daf6db970d [IMP] point_of_sale: cash closing difference visible
When a pos session is closed, the difference and transactions of cash
control are not good anymore, because it is based on the statement
linked to the cash payment method, and it is modified during the
validation of the session to create a balanced account move.

So we are now storing the values in fields, to keep history of the
closing control

closes odoo/odoo#35286

Task-id: 2032173
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
2019-11-25 11:00:04 +00:00
Holger Brunn 67848457d0 [FIX] auth_ldap: encode python ldap's output as utf8
Non-ascii characters in LDAP don't cause a python unicode string in
returned ldap entries, this commit fixes this.

Before this commit, further string operations on ldap values with
non-ascii characters fail.

closes odoo/odoo#40761

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-11-25 08:50:09 +00:00
715c136cd2 [IMP] web: add column creation support for kanban view on mobile
On mobile, there was no way to create a new column in the kanban view. This
was specifically annoying in the Project app (the user was able to
create the project but couldn't set its stages).

This commit enables this feature by adding a `+` icon at the end of the
tabs. This button opens a quick-create column widget.

If there is no existing column (for example in a newly created project),
this quick-create column widget is opened by default.

Finally, this commit improves the processing needed for the swipe
animation between the columns.

Task ID: 1893137

closes odoo/odoo#40722

Signed-off-by: Pierre Paridans <pparidans@users.noreply.github.com>
Co-authored-by: Ankit Sathvara <asa@odoo.com>
Co-authored-by: Mohammed Shekha <msh@openerp.com>
Co-authored-by: Romain Estievenart <res@odoo.com>
2019-11-25 09:29:39 +00:00
fw-bot 40e8834b00 [FIX] project: invalid date format in kanban view
Reproduce the issue

    - Install Projects
    - Create a project
    - Create a task with a deadline

    The deadline format is correct in the form view but not in the
    kanban view.

Cause

    In the kanban view, there is some code applied on the `date_deadline`
    field to add a class when the deadline is near.

    As it uses a `span` with a `t-esc`, the only way to get the date
    is to do `record.date_deadline.raw_value` which return the raw
    value of the datetime object (a big string with all the infos).

This commit creates a char field for the formatted date and uses it
only for the display.

OPW-2122928

closes odoo/odoo#40707

Related: odoo/enterprise#6832
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-11-25 08:07:43 +00:00
Carlos Dauden 74d1d7cf36 [IMP] sale: Improve performance with personal order lines rule
closes odoo/odoo#40592

X-original-commit: d8bc17d5f79a96c3f5ad928075387751e96cb7e4
Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
2019-11-20 20:13:04 +00:00
Denis Ledoux c03e4cb229 [FIX] models: validate standard views set to noupdate in database
On the registry, the set `loaded_xmlids` maintains the list
of the xml ids loaded during a module upgrade.
(The <record/> nodes in XML data file)

According to the `noupdate` attribute on the node in the XML file,
an XML ID is added to the listn either:
 - If noupdate is set on the <data/> node, through `_load_xmlid`:
   - https://github.com/odoo/odoo/blob/eb02e9b3e00243bcf8a41b0f42273e59875ab968/odoo/tools/convert.py#L505-L510
   - https://github.com/odoo/odoo/blob/eb02e9b3e00243bcf8a41b0f42273e59875ab968/odoo/addons/base/models/ir_model.py#L1802
 - If noupdate is not set on the <data/> node, through `_load_records` and `_update_xmlids`:
   - https://github.com/odoo/odoo/blob/eb02e9b3e00243bcf8a41b0f42273e59875ab968/odoo/tools/convert.py#L578
   - https://github.com/odoo/odoo/blob/eb02e9b3e00243bcf8a41b0f42273e59875ab968/odoo/models.py#L4048-L4050
   - https://github.com/odoo/odoo/blob/eb02e9b3e00243bcf8a41b0f42273e59875ab968/odoo/addons/base/models/ir_model.py#L1793
   For this second case, `_update_xmlids` was called only when the condition
   `to_create or to_update` was met.

For records not set as `noupdate="1" in the XML data file,
but set to noupdate in the database
(e.g. manually set by a user),
the code goes trough the second path explained above (noupdate not set on the <data/> node)
and the condition `to_create or to_update` was not met
(See https://github.com/odoo/odoo/blob/eb02e9b3e00243bcf8a41b0f42273e59875ab968/odoo/models.py#L4005-L4012)
and they were therefore not added in the set `loaded_xmlids`

Besides, the method in charge to validate standard views `_validate_module_views`,
only validates views that are in this list `loaded_xmlids`:
https://github.com/odoo/odoo/blob/eb02e9b3e00243bcf8a41b0f42273e59875ab968/odoo/addons/base/models/ir_ui_view.py#L1194-L1210

And the method in charge to validate custom views `_validate_custom_views`
only validates views with no XML ID or the module of the XML ID is not within the list of modules.

Therefore, standard views set to noupdate in database were not validated at all
(or indirectly, if they had a view inheriting on them that was not set to noupdate)

This is not a recent regression, this is the case even in Odoo 8.0.
Standard views set to `noupdate` in database but not in the XML files
were not validated (or indirectly, through one of their inherited views if they had any)

This revision just skips the test `to_create or to_update` so it goes through
`_update_xmlids` anyway and add the xml id to the `loaded_xmlids` set,
so standard views set to noupdate in database finally gets validated.
Besides, `_update_xmlids` won't do anything more than add the xml id to the set,
the SQL query executed in this method has a `WHERE` condition filtering out xml ids set to noupdate
https://github.com/odoo/odoo/blob/eb02e9b3e00243bcf8a41b0f42273e59875ab968/odoo/addons/base/models/ir_model.py#L1784

closes odoo/odoo#40207

Signed-off-by: Denis Ledoux (dle) <dle@odoo.com>
2019-11-13 13:58:19 +00:00
Odoo's Mergebot 16891269ed [IMP] hr_holidays: Add specific approval for allocations
Purpose
=======

We want to allow different approvals for allocations and leaves of a same type.

e.g. In case of compensation days, a manager would approve the
allocation request, but would later not approve leave requests.

Specification
=============

Allocation modes
----------------
No change here except renames.
1. No limit (employee doesn't need an allocation to request a leave)
2. Allow employee requests
3. Fixed by Time Off Officer

Allocation approval
-------------------
A radio field to choose the approval mechanism
appears if the employee is allowed to request an allocation.
The following approval modes are possible:
1. Time Off Officer
2. Employee's Time Off Manager (leave_responsible_id)
3. Employee's Time Off Manager and Time Off Officer

These options are the same as leave approval options
(except the missing "No Validation").

If option 1 or 2 is selected, a o2m field should
allow to select which Time Off Officer is responsible
for approving those allocations.

Allocation approval policy is the same as the leave approval policy.

Task id: 1936742

--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr

closes odoo/odoo#35446

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-11-25 11:56:25 +01:00
alt-odoo ab60da1269 [FIX] gamification: prevent division by zero in percentage completeness computation
We are initializing over the limit to make sure we will compute it at least once.
If the target goal is set to 0, we are facing a division by zero error when
displaying the gamification goal just after initialization.

closes odoo/odoo#40735

X-original-commit: 24546e7c4cac61efea8d3f9e558518a55ef9acd2
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-11-22 16:57:21 +00:00
Victor Feyens c8e6362e60 [FIX] purchase: section and notes
Do not update the date_planned of section/note purchase lines when
writing on the order date_planned.  Otherwise the SQL constraint
ensuring display lines have no other data blocks the changes.

Fixes #40741

closes odoo/odoo#40747

X-original-commit: f3ebab6eb52e3dc8be1f030aecfff348a22f7e09
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2019-11-23 15:30:34 +00:00
jbm-odoo 77e4c64fd7 [FIX] mail: Limit emojis quantity
If the user put more than 200 emojis, we didn't replace emoji with
image. But due to a typo in the code, this mechanism broke the
discuss application.

closes odoo/odoo#40734

X-original-commit: 0877cb6c84c768bd9fad46fa6f959635bb2353a5
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2019-11-22 16:46:10 +00:00
Lucas Lefèvre c2eef0cace [IMP] hr_holidays: Unifies leave and allocation name
Some changes were made at leave names in eb02e9b.
This commit applies the same behavior for allocations.
2019-11-22 16:58:38 +01:00
Lucas Lefèvre a9eed139b4 [IMP] hr_holidays: Find leave responsible
For each leave, a responsible is found to assign him activities.
For 'employee' leaves, a complex (and always changing) policy is
implemented.
This policy should not be applied for other types of leaves.
e.g. department, company, category.

For those type of leave, the current user should be responsible
for the approval.

Also, why was the default responsible the super user?
It was creating activities for an inactive user, hence no one
was notified to approve the leave.
Better to fallback on the current user.
2019-11-22 16:58:38 +01:00
Lucas Lefèvre 8f3a5068ca [IMP] hr_holidays: Add specific approval for allocations
Purpose
=======

We want to allow different approvals for allocations and leaves of a same type.

e.g. In case of compensation days, a manager would approve the
allocation request, but would later not approve leave requests.

Specification
=============

Allocation modes
----------------
No change here except renames.
1. No limit (employee doesn't need an allocation to request a leave)
2. Allow employee requests
3. Fixed by Time Off Officer

Allocation approval
-------------------
A radio field to choose the approval mechanism
appears if the employee is allowed to request an allocation.
The following approval modes are possible:
1. Time Off Officer
2. Employee's Time Off Manager (leave_responsible_id)
3. Employee's Time Off Manager and Time Off Officer

These options are the same as leave approval options
(except the missing "No Validation").

If option 1 or 2 is selected, a o2m field should
allow to select which Time Off Officer is responsible
for approving those allocations.

Allocation approval policy is the same as the leave approval policy.

Task id: 1936742

Access rights based on task 1950998
2019-11-22 16:58:38 +01:00
Andrea Grazioso (agr-odoo) 5e9a4c39bd [FIX] mail: make attachment filtering selective on uid
Install Accounting, go to Configuration > Follow-up Levels. Create a new
Follow-Up Action with low due days just to make testing easier and "Join
open invoices" enabled. Go to Customers>"Follow-up Reports", select a
follow up report with action "test", click on "Send Email"

The email will be sent, without attachments. There should be a number of
attachments equal to the number of due invoices, but for security reason
the attachments are filtered in the message post processing phase.

Changing security check to avoid filtering legitimate material.

opw-2116803

closes odoo/odoo#40726

X-original-commit: 6258c7eba905ee0d9591573dc8b0c90e6dc7111e
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2019-11-22 15:49:48 +00:00
fw-bot ba8ea74a4f [FIX] l10n_it_edi: remove 'Send' button from Customer Invoices
'Send' button meant to send Italian e-invoices are shown
for invoices belonging to non-Italian companies as well.

Since the invoices' are being sent on validating the
invoice itself, Send button means less business here.

Hence removed it.

opw-1945836
closes #31470

closes odoo/odoo#40736

X-original-commit: 633b931d4565b7e81ef69f6554a0a69b002b78e3
Signed-off-by: Josse Colpaert <jco@openerp.com>
2019-11-22 17:19:32 +00:00
Nicolas Martinelli c52f91a588 [FIX] l10n_be_edi: error at PDF generation
An UBL invoice can contain several `AdditionalDocumentReference`, some
of them without `Attachment`. For example:

```
  <cac:AdditionalDocumentReference>
    <cbc:ID>UBL.BE</cbc:ID>
    <cbc:DocumentDescription>BOB50  6.07.0</cbc:DocumentDescription>
  </cac:AdditionalDocumentReference>
  <cac:AdditionalDocumentReference>
    <cbc:ID>Facture N°19090118 - 30-09-2019.pdf</cbc:ID>
    <cbc:DocumentDescription>CommercialInvoice</cbc:DocumentDescription>
    <cac:Attachment>
      <cbc:EmbeddedDocumentBinaryObject filename="Facture.pdf" mimeCode="application/pdf">JVBERi0xLjMK...
...
```

In this case, a crash occurs since:

```
element.xpath('cac:Attachment//cbc:EmbeddedDocumentBinaryObject', namespaces=namespaces)
```

is an empty list.

To avoid this, we loop on all elements and generate all PDFs.

opw-2128083

closes odoo/odoo#40721

X-original-commit: 2174e4066c5c8f87ed45aa564c184d1ce7063758
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-11-22 14:58:35 +00:00
Yannick Tivisse 26e32dac34 [IMP] portal: Partial revert of #37312
Purpose
=======

This fix makes no sense because it exposes some private data to
portal users. Fortunately it was only introduced in the master branch.

closes odoo/odoo#40710

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-11-22 14:45:22 +00:00
Odoo's Mergebot 368fde4704 [MERGE] gamification, website_slides{_survey}: add certification badges section to ranks badge page
This merge adds a section to distinguish the certification badges from the
other badges users may obtain in eLearning. Certification badges are available
on the ranks page, linked to a running survey. Clicking on them directly
redirects into the linked course.

Other commits in this merge include

  * renaming a category field on challenge to challenge_category to ease
    its finding in code;
  * renaming some statistics fields on badge model to ease its understanding;
  * various usability improvements and fixes;

Task ID : 1961053
PR #32594

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-11-22 19:18:38 +01:00
David Beguin c11267d435 [IMP] survey: add certification badge demo data for MyCompany Vendor survey
Purpose is to have bioutifoul demo data.

Task ID : 1961053
PR #32594
2019-11-22 15:32:10 +00:00
David Beguin 5ac64d6e02 [IMP] website_slides_survey: add certification badges section to ranks badge page
This commit adds a section to distinguish the certification badges from the
other badges users may obtain in eLearning. Certification badges are available
on the ranks page, linked to a running survey. Clicking on them directly
redirects into the linked course.

Task ID : 1961053
PR #32594
2019-11-22 15:30:53 +00:00
David Beguin 1f52435966 [FIX] website_slides_survey: redirect to course on certification click in profile page
Back2basic-like: purpose is to allow people to go from a frontend certification
card on profile to its linked course page.

Task ID : 1961053
PR #32594
2019-11-22 15:13:41 +00:00
David Beguin 21cdbd82e9 [IMP] website_slides_survey: keep challenge category updated
Purpose of this commit is to ensure challenge linked to surveys linked to
slides have ``slides`` category, while challenge linked to surveys not
linked to slides (if changing survey_id for example) have ``certification``
category.

With this patch challenges are correctly categorized, allowing to accurately
filter them based on their category.

Task ID : 1961053
PR #32594
2019-11-22 14:46:00 +00:00
David Beguin be3f074a91 [REF] gamification, * : rename challenge.category into challenge.challenge_category
To ease grep in the code, especially that challenge is quite heavily used.

Task ID : 1961053
PR #32594
2019-11-22 14:45:39 +00:00
David Beguin 6f0d36fa67 [REF] gamification : rename stat_* fields into granted_* to ease understanding
In this commit we rename stat_count into granted_count, and stat_count_distinct
into granted_users_count to reflect more what are those variables, aka count
of granted badges.

Task ID: 1961053
PR #32594
2019-11-22 14:44:39 +00:00
William Henrotin d813873f6c [FIX] mrp: convert quantity in product UoM
If a component is used in a production with another unit of measure
than it's one, the created stock move line could not convert the quantity
correctly.
If there is enough quantity in stock, the created move line takes the
quant uom but the quantity in the production ones.
ex: consume 1 dozen, the quantity on the stock move line is 1 unit

This commit always uses the wo line's UoM and quantity to create the
stock move line.

closes odoo/odoo#39222

Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2019-11-22 12:39:52 +00:00
William Henrotin 1efe2fc953 [FIX] mrp: load move_finished_ids in view
Issue: open a done production. Unlock it. Add a new raw stock move.
This action will called _compute_order_finished_lot_ids on the new
stock_move. This method uses
move.raw_material_production_id.move_finished_ids.
raw_material_production_id is available but not move_finished_ids. The
reason is move_finished_id is not loaded by the web client in the
production form view.

This commit added the one2many (invisible) in the view in order to
get all the information in the compute method.
2019-11-22 12:39:52 +00:00
William Henrotin 6b4f447de9 [FIX] mrp: consumption required 2019-11-22 12:39:52 +00:00
William Henrotin 043d706784 [IMP] mrp: beautify bom line form
This form is mostly used in the 'Cost Analisys report' (mrp_account_enterprise module)
and needed an update to better integrated with the report

Task : 2082448
2019-11-22 12:39:51 +00:00
William Henrotin 58df6c86e0 [FIX] mrp: new stock move line in traceability report
Before this commit, The addition of new stock move lines in a
finished production via the unlock button did not impact the
traceability report. This was due to the fact that the new sml
has not been linked to the finished_lot_id.
2019-11-22 12:39:51 +00:00
William Henrotin e1f518bb83 [IMP] mrp: add components in workorders
This commit extend the flexible consumption. On the workorder form view.
It's now possible to add directly new workorder line with any product
(even one not in any BoM line). For those new wo line. A confirmed stock
move is create in the record_production step.

Task : 2082448
2019-11-22 12:39:51 +00:00
Pierre MasereelandRaphael Collet e85faf3986 [IMP] base: add unique constraint on ir.property
There is no unique constraint on the properties to avoid having two
properties for the same field, company and res_id.

Having two properties for the same field, company and res_id, leads to
inconsistencies through the code, as reading a company-dependent field
nondeterministically returns one of the available property value.

So now, before creating a property, we have to check that there is not
already a value for the field, company and res_id and write or create
depending on if it is already exists.

The properties of specific records already satisfy the constraint thanks
to the implementation of company-dependent fields that use the method
`set_multi`.  We added a method `set_default` to set generic properties,
and its implementation does the right thing.  It also simplifies the
code to set such properties, by the way.

closes odoo/odoo#40473

Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Co-authored-by: Raphael Collet <rco@odoo.com>
2019-11-22 12:34:43 +00:00
svs-odoo 8821f0e917 [FIX] stock: set serial count to generate SN
Before this commit, the field `next_serial_count` in stock.move, used to
know how many SN the user wants to generate, wasn't correctly set and
was always equals to 0.

closes odoo/odoo#40714

X-original-commit: 9a20896eddb6b98b569f4f83192ac876696baaa6
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2019-11-22 14:06:50 +00:00
svs-odoo 8c5bd29d41 [FIX] stock: display assign SN immediate transfer
Before this commit, when user creates a receipt for a product tracked by
serial number, using immediate transfer, the fields to generate and
assign SN was hidden.
The reason was the move is confirmed in this case, and those fields was
displayed only for partially available and assigned moves.

task-2123761

X-original-commit: 4f9b170e857509cf34e072051086a7e9590c330d
2019-11-22 14:06:49 +00:00
fw-bot 5706c7fa5b [FIX] web: click on a pivot cell always gives right action domain
Before this commit, with a time range activated in a pivot view,
click on a non empty cell would not always give the right list of
records because of a bad action domain.

The reason is that the headers domain or comparisonDomain were
not always set when appropriate:
    - for the headers 'Total', the corresponding group obtained
      by read_group does not contain the key __domain. For that
      reason both the key domain and comparisonDomain were left
      undefined.
    - for headers that correspond to groups not present in the two
      periods compared, one of the key was left undefined.

With the present commit, we correctly set the domain and
comparisonDomain keys everytime they are useful.

closes odoo/odoo#40713

X-original-commit: 2f89820faa5966b8321d6681e9745a4e938e2bec
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2019-11-22 14:06:31 +00:00
Raphael Collet 9412b74986 [FIX] base: res.partner.display_name does not depend on context
closes odoo/odoo#40683

X-original-commit: 5a701758100d450f25566e0d1b3e4289583a2d01
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
2019-11-22 12:24:45 +00:00
Raphael Collet 56d118e390 [FIX] fields: display_name when _rec_name is an inherited translated field
X-original-commit: bbbbee404c01bce22609f2d9cc1ac3a5c713b72a
2019-11-22 12:24:45 +00:00
Ankita Raval e859fa9112 [IMP] stock: Inventory Adjustment
In this commit set date field as a date and set it on the lower
right corner.

task-id:1970451

closes odoo/odoo#32968

Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2019-11-22 06:49:26 +00:00
Yannick Tivisse 4da5d88403 [IMP] project: Display tags under deadline
closes odoo/odoo#40332

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-11-22 09:29:43 +00:00
Yannick Tivisse f34f6ee3b6 [IMP] project: Allow multi levels on sub-tasks
Purpose
=======

Currently, it is only possible to have 1 level of sub-tasks per task.
The user may want several levels of granurality.

Specifications
==============

Allow having multi levels of sub-tasks
- Move the parent_id field out of the debug mode and display it above the
  Deadline field
- Remove the 'parent task' stat button
- Add the parent_id field to the project.task optional list view
- Display the sub-tasks stat button on sub-tasks
- The 'sub-tasks' stat button should only count/display tasks from the
  first level of sub-tasks
- The name of the sub-task should be
  parent task: sub task level 1: sub task level 2: sub task level 3...
- The sub-task should be created in the sub-task project set on the
  parent task's project
- The subtask_planned_hours and the subtask_effective_hours fields should
  take into account the planned hours of all sub-level tasks

TaskID: 2107078
2019-11-22 09:29:43 +00:00
Martin Trigaux 342ffbc57e [FIX] base_gengo: do not crash if Gengo is not present
Before this commit, calling gengo_authentication (executed from the
cron _send_translation_terms) returns an error when the python library
gengo is not found on the system.
If tried to request a synchronisation, got an error "NameError: name
'Gengo' is not defined"
Gengo variable was undefined as no imported.

closes odoo/odoo#40686

X-original-commit: 675b355954522caf7d72ab20cc431d19c5a05a8f
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-11-22 10:26:39 +00:00
Martin Trigaux c854bca219 [REV] tools: partially revert 0ec6acc458
No justification, commit message not linked to the diff.
If there is an issue in the line_number extraction it must be
investigated.
I suspect an outdated polib version.

closes odoo/odoo#40684

X-original-commit: 0f92dae8eb76a47326bd2bb8924df8fa09645145
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-11-22 10:26:19 +00:00
Nicolas Martinelli f02bfd3daa [FIX] payment_stripe: avoid internal error
In case the Stripe API call fails, an Internal Server Error page is
displayed to the user, which is not user friendly.

opw-2126196

closes odoo/odoo#40678

X-original-commit: 95a452f6d928de2e8532027893a353167ffdd389
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-11-22 09:41:05 +00:00
oco-odoo 8700041ecd [FIX] account: reintroduce "Add a bank account" menu item
Removed by mistake by https://github.com/odoo/odoo/commit/ec603e2593131d462f578feda2e1fec3cfb59c53

closes odoo/odoo#40676

Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
2019-11-22 08:59:37 +00:00
Xavier Morel 9546a37599 [ADD] pyjs: support for conditional expressions
Conditional expressions were already parsed, but there was no support
for executing them (or stringifying them back though I'm not sure when
that's used).

closes odoo/odoo#40502

Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2019-11-19 13:16:04 +00:00
Yannick Tivisse f3f75068c1 [IMP] hr_timesheet: Add demo data
Add a bunch of timesheets for the 2 main demo projects in the project module
+ for one of the billable projects in sale_timesheet

closes odoo/odoo#40280

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-11-22 09:13:52 +00:00
jbm-odoo 6b5bdbb476 [IMP] hr_[contract,employee,recruitment,work_entry]: Add multi edit in view
Make some fields editable in multi edit.
Some onchange are tranformed in compute fields.

id=2078674

closes odoo/odoo#39711

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-11-06 10:08:50 +00:00
Xavier Morel c83cac21a7 [IMP] core: simplify get_domain_identifier
* we can just get the variable names once for the entire expression,
  no need to bother doing it bit by bit
* avoid blowing up when the domain contains computations *around*
  segments.

closes odoo/odoo#40642

Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
2019-11-21 14:32:37 +00:00
Nicolas Martinelli 51f90541bf [FIX] calendar: round duration
When a calendar event is created with a duration of for example 20
minutes, the end time appears as the start time + 19 minutes.

Because of the rounding of the duration (20 minutes = 0.333... hours),
the end time is incorrectly set (xx:19:59.998...) then displayed. Since
the duration can only be set by the minute, we round it before computing
the end time.

opw-2122853

closes odoo/odoo#40655

X-original-commit: f6ae9f0aea5a250cbff6734de8a43a1b741394a7
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-11-21 17:04:47 +00:00
Denis Vermylen 4b1668abc3 [FIX] server.py: <threaded> avoid registry lock upon shutdown
A deadlock can occur between threads when concurrent requests
acquire the registry lock and conflicting database-level locks
in different orders. The database won't be able to detect and
break the deadlock because it involves an external, Python-level
lock. This situation is more likely to occur during module
installations [1].

If the server is started with the `limit_time_real` option,
it should be able to abort the deadlocked requests after the
timeout, and restart. However that could not work because
the recovery initiated by `reload()` is blocked at the end
of the `stop()` method, as it cannot acquire the registry
lock either, necessary for `Registry.delete_all()`.

Since that deletion step is in fact not necessary, it can
be skipped, avoiding the deadlock entirely.

Indeed there's no real reason anymore to delete the DB's
registry upon shutdown. This was introduced for 7.0 by
b5daffc115, in order to perform
other cleanups (including cron agent threads). These other
cleanups are not necessary anymore, and when the stop()
method of the ThreadedServer completes, the next step is
either a restart of the whole process (via execve() through
_reexec()), or a full process exit. Keeping the registry in
memory for a few cycles until this happens makes no difference.

When such a deadlock occurs, it's always possible to manually
kill the server with 2 `kill` commands, or 1 `kill -9`.

~~~~~~~~~~~~~~~~~~~~~~
[1] Reproduction info:

The following deadlock was observed in Odoo threaded server mode:

1. incoming request spawns a new thread A
   A starts a transaction and does a "SELECT ... FROM res_users ..."
   getting an ACCESS SHARE lock on the table
2. incoming request spawns a new thread B
   B is a request that calls `button_immediate_install`, that will
   install new modules and alter the res_users table.
3. B takes and holds the registry lock and executes "ALTER TABLE
   res_users ...", that waits to get the ACCESS EXCLUSIVE lock on the
   table until A's transaction releases the ACCESS SHARE lock.
4. A continues code execution and reaches a .sudo() call, it tries to
   create a new environment. The creation of the new environment
   requires to wait for the registry's lock to be release but it's held
   by B.

-> A waits for B's registry lock to be released
-> B waits for A's ACCESS SHARE lock to be released
-> Deadlock that can't be broken except by force-killing the server

closes odoo/odoo#40664

X-original-commit: 9e67525418b3b0a48a796044ef24b227946ceb8f
Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
2019-11-21 20:38:00 +00:00
Victor Feyens a27c7a59d4 [FIX] doc: remove support for IE 11.
Since Odoo V13, ES6 is supported and we therefore do not support IE 11
anymore.

closes odoo/odoo#40661

X-original-commit: 9071a25394aa7a1749dc497fccea095bc8261181
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2019-11-21 18:59:58 +00:00