Commit Graph
117975 Commits
Author SHA1 Message Date
Nicolas Lempereur 551719a81e [FIX] mass_mailing: mail template not in english
Mass mailing `mail templates` when selected in a mass mailing are
always used in the english version.

But when another language is involved the edition of mass mailing
`templates` had a number of issue. For example saving the edited english
would only modify the user current language.

These issues are cause because the widget with snippets used for mass
mailing templates edition is not compatible.

Several fixes were proposed, what was choosen finally was to use the
correct widget with the following behavior changes:

- the snippets are not showed anymore in mass mailing templates,
- the current language can be edited and is saved rightly,

The shortcoming this give mass mailing templates can be partly
compensated by:

- editing the template back (if someone want the old behavior),
- duplicating mass mailings which keep the snippets and translations,
- doing a customization to improve the situation

closes #16255
fixes #16165
opw-726746 opw-727232

note: this fix is only needed for 9.0 and saas-11.
2017-04-26 18:37:53 +02:00
Nicolas Lempereur cd2b07ea44 [FIX] pad: remove wrong warning at pad creation
When creating a pad before this change these were the steps:

- modify pad URL for new pad URL
- end of record loading

This caused an issue because modifying the record at this point would
mark it as dirty before displaying it (which would result in a erroneous
warning "The record has been modified, your changes will be discarded.
Are you sure you want to leave this page ?").

With this fix:

- modifying the pad URL is done after the record is ready

- deferred have been unified (to remove possible race conditions)

closes #15239
opw-702797

forward port note: this change is needed up to saas-15, over saas-15
only a small part is needed (because x2many views are loaded with the
root view and there is one widget instance per record).

code note: it would be better to modify load_record of form view and
delay `record_loaded` upto after x2many views are loaded, but possible
impacts have been judged too risky so this is done only in pad widget.
2017-04-26 18:32:18 +02:00
Wolfgang Taferner fe70f0711f [FIX] point_of_sale: backport of a2319b4 + fix
When a PoS order is closed, the payment and the sales journal item are
not automatically reconciled. This potentially leaves a lot of
unreconciled entries for a customer, which will appear in his follow-up
report.

This introduces an auto-reconciliation process upon order closing. The
process restricts the reconciliation to an order individually, i.e. we
don't try to cross-reconcile several orders for a customer.

opw-697565

Add missing sudo to allow a user without accounting rights to close a session
and reconcile entries.

Closes #16517
2017-04-26 17:00:46 +02:00
Aaron Bohy d20074c555 [FIX] web: BasicModel: don't mix fields and action contexts
The context sent when performing RPCs is a mix of several contexts
(user_context, action's context, context defined in a field's node
in an arch...).

In general, the action's context should not be mixed with the
field's context:
 - for global RPCs (read a record, write a record, default_get...)
   only the action's context should be given
 - for RPCs triggered by fields (e.g. name_search in a m2o), only
   the field's context should be sent.

The exception is for onchange RPCs, as in this case, both action
and field's contexts should be sent.

Before this rev, the action context was always sent, which might
produced tracebacks (e.g. go to Sales > My Pipeline > New > click
on Customer field > Create and Edit > boom).
2017-04-26 16:35:18 +02:00
Yannick Tivisse b9944978e9 [MERGE] hr_payroll: Payroll module refactoring for salary configurator
Thanks to:

- Nicolas Michaux for the design part and his expertise.
- Laura Piraux for all her advices, reviews, ideas and kindness.
- Thibaut Delavallée for the technical advices.
- My mother for her pies.
- Martin Trigaux that did nothing.
2017-04-26 16:16:44 +02:00
Yannick Tivisse 3916e0c431 [FIX] hr_payroll: Add missing method
This method is used in enterprise currently, but should be in the basic module as it make sense to use it without that
2017-04-26 16:13:44 +02:00
Alexis de Lattre 7e1a523fbf [FIX] product: missing string on field
Closes #16640
2017-04-26 15:37:20 +02:00
Raphael Collet 482fec4838 [FIX] models: support removing an ir.model.fields that no longer appears on model 2017-04-26 15:23:06 +02:00
Raphael Collet 4287a70110 [FIX] models: remove ir.model.fields that no longer exist in registry
This fixes the following issue.  Assume a custom field F is created on
`res.partner`.  This field will appear on `res.users` as an inherited field,
and will be reflected in `ir.model.fields` as a 'base' field.  When F is
removed from the parent model, it no longer appears on the child model in
registry, but remains in `ir.model.fields`.

The patch allows the proper removal of the no-longer-inherited field from
`ir.model.fields`.
2017-04-26 15:11:07 +02:00
Yannick Tivisse d7a3f39d72 [MOV] hr_payroll: Split models and views into separate files 2017-04-26 15:08:09 +02:00
Yannick Tivisse 6c3f9db1c8 [ADD] l10n_be_hr_payroll_fleet: Compute car related cost and advantages in belgian payroll
- Compute the taxable ATN due to the company car (Depends on the acquisition date, car value, fuel type and CO2 emissions)
- Compute the Total Depreciated Cost on the employer costs due to the depreciated recurring amount declared with the car purchase
- Allow to retrieve these 2 different values on a vehicle.model in the case we want to have a default value for a new car
- Modify name_get on a vehicle.model and the name compute method on a fleet.vehicle to display some useful information like the employer cost (by month) and the acquisition date
- A new car may be purchase for an employee when the amount on unused car in the fleet exceeds X. Add a res_config view to configure that behavior
- Add the company car mechanism (choose a car, select a new car from available models) on a hr.contract.
2017-04-26 15:08:09 +02:00
Yannick Tivisse e25dda3790 [IMP] l10n_be_hr_payroll: Update all advantages + Refactor the views
PURPOSE
=======

A very small amount of all the existing belgian advantages for employees and workers. The goal of this commit is to implement/update all the advantages and refactor the contract form view to be sexy and usable.

SPECIFICATION
=============

Contract
~~~~~~~~

- Add advantages:
	- Transport mode:
		- Company car
		- Public transport
		- Others
	- Thirteen Month, Double Holidays
	- Commissions on target + Integration with warrants
	- Fuel card
	- Internet
	- Mobile
	- Meal Vouchers
	- Holidays and holidays compensations
	- Eco checks
- Compute employers costs. It's influenced obviously by:
	- The employee wage
	- The social security service fees (UCM, ...)
	- The various advantages
	- The social security contributions
- Implement all the mechanisms to compute those different values and advantages
- Refactor the contract form view to be sexy

Employee
~~~~~~~~

- Add missing fields to be able to compute correcly the Net Salary from the Gross Salary:
	- Disabled spouse, spouse fiscal situation and revenues
	- Dependent people (childen, juniors, seniors, disabled)
2017-04-26 15:08:09 +02:00
Yannick Tivisse 10466fb58e [IMP] l10n_be_hr_payroll: Update salary rules for belgian worker and employees
- Update the outdated ones:
	- Disabled Spouse Allowance
	- Child Allowance
	- Retain on Meal Voucher
	- Reimbursement of travel expenses
- Add missing rules:
	- Reduction for special family charges
	- Withholding Tax Reduction
	- Special social contribution
	- ATN Company Car
	- ATN Internet
	- ATN Mobile
	- Employment Bonus
	- Withholding Tax Reduction for Low Salaries
	- Withholding Tax Reduction for Low Salaries (ONSS)
	- Other family charges reductions
	- Reduction for isolated people
	- Reduction for isolated parent
	- Reduction for disabled employee
	- Reduction for dependent seniors
	- Reduction for dependent juniors
	- Reduction for low spouse revenue
	- Reduction for low spouse other revenue
	- Commission on Target
	- Representation Fees
- Add advantage templates with default values
2017-04-26 15:08:09 +02:00
Yannick Tivisse 7276cdf781 [IMP] l10n_be_hr_payroll: Update Withholding Tax Grid and Child Allowance rules up to 2017 2017-04-26 15:08:09 +02:00
Yannick Tivisse f89ac984e7 [IMP,FIX] hr_recruitment: Add field 'HR Responsible' field + 2 small fixes
- Add a field HR Responsible, who's the job responsible, not the recruitment responsible
- Fix the read_group in `_compute_application_count` method
- Only track subtypes for active employees
2017-04-26 15:08:09 +02:00
Yannick Tivisse e18e6b3c90 [IMP] hr_payroll: Add hr.contract.advantage.template model + some improvements
- Some label improvements
- Make the 'Working Schedule' required on a contract to work well on payslip. If not set, the working hours are not taken into account when computing the payslip, leading to a wage salary equal to 0.
- Add a hr.contract.advantage.template model. This is kind of a meta model to retrieve specific values for given advantages (like lower and upper bounds or default values). Add related views and actions too.
- Only add opened contract by default on a payslip in the onchange_employee_id
- Rewrite some method in new api style (with browse records)
2017-04-26 15:08:09 +02:00
Yannick Tivisse 90942e0ab4 [IMP] hr_contract: Add some fields and restructure some views
- An employee isn't required anymore on a contract, to allow default contract for a certain job
- Remove trial_date_start, as we assume that it's the same than the contract date start
- wage should be a fields.Monetary
- Add a state 'cancel' for a contract
- Move some fields to the employee (permit number, visa number, visa expiration date)
- Add company and currency on the contract
- Restructure contract form view in a so beautiful way
2017-04-26 15:08:09 +02:00
Yannick Tivisse 7964b81ac8 [IMP] hr: Add some default values and fields
- Default gender is male
- Default marital status is single
- Move some fields from the contract to the employee (permit number, visa number, visa expiration date)
2017-04-26 15:08:09 +02:00
Yannick Tivisse c63e869fb2 [MOV] fleet: Split models and views into separate files
It's a PITA to have a huge files with all the models into it. We took this opportunity to stick to the guideline.
2017-04-26 15:08:09 +02:00
Yannick Tivisse 2e7cdc1c90 [IMP] fleet: Clean some views and add useful piece of information
PURPOSE
=======

During the Salary Package Configurator implementation, some improvement have been made to improve the fleet management module

- When duplicating a fleet vehicle cost (for example when duplication a vehicle contract), duplicate the included costs too.
- Add a field Cost Description on the list view
- Rename 'Acquisition Date' into 'Immatriculation Date'
- Rename 'Car Value' into 'Catalog Value (VAT incl.)'
- Add a information field 'Residual Value on a vehicle'
- Prevent an employee to have several cars
- Only display opened contract on the vehicle form view
- Add the driver on the odometer list view
- Rename 'Odometer value' into 'Odometer at creation' on a vehicle contract
- Restructure to vehicle model form view to be bearable by a human eye
- Show the handle widget on the fleet vehicle state list view
- Show configuration menuitems to fleet managers, not only debug mode
2017-04-26 15:08:09 +02:00
Nicolas Martinelli 831322bb92 [FIX] hr_expense: expense lines > and < 0
- Create an expense sheet
- Line 1 is 500
- Line 2 is -200
- The total is 300 => a payment of 300 is made

When the payment is validated, the expense is not set as paid.

In v10, one expense line = one account move. In order to know if the
expense is paid we check that each account move is completely
reconciled. The account move of 500 is never completely reconciled by
the payment of 300, so the expense stays opened.

This simply cannot be supported in v10, since each expense line is
handled in a separate account move.

opw-740492
2017-04-26 14:49:37 +02:00
Adrien Dieudonne f6f342e50b [FIX] web: FormController: prevent opening multiple form dialogs
Before this commit, the form dialog was open twice when you tried to
add a new record on a one2many if you were already in a modal.

The event wasn't stopped, so the first form dialog was correcly rendered
but the second one tried to load the same form view on a wrong model.
2017-04-26 14:44:52 +02:00
Parth Gajjar 18971b3e3a [FIX] web: properly transfer field options to fields data
The basic model did not transfer field options to special data methods
from fields.  This was mostly not an issue, except for the widgets that
actually need them, such as the status bar and the domain editor.

This was only visible when opening views with different view types,
but this is a problem in general.  We should have a better mechanism to
help widgets fetching data, but for now, this is the best we can do.
2017-04-26 14:43:16 +02:00
Pierre Masereel e3cd54bb1d [FIX] pylint: using variable before assignment
Since last version (1.7) of pylint, new errors have been detected.

Related to rev: https://github.com/odoo/odoo/commit/ecac88dcc074b81ede4925a75080e8d2b4975924
2017-04-26 14:16:51 +02:00
Aaron Bohy e950f60fef [FIX] web: increase timeout of test_01_js
This test executes the QUnit js test suite. Since the new views,
this suite keeps growing, which is good. The default timeout
for phantomjs tests is 60 seconds, which starts to be tight for
test_01_js when the runbot is overloaded.

So this commit increases the timeout of this test to 120 seconds.
2017-04-26 12:25:35 +02:00
Fabien Pinckaers f9644d3698 [IMP] sale_timesheet: better labels 2017-04-26 12:12:04 +02:00
Martin Trigaux 3b2ad20d24 [FIX] point_of_sale: remove useless code
Introduced at 36e7327f as a patch for stable and 1d2ca932 fixed in master.
Maybe the capslock was not big enough, will use <blink/> next time.
2017-04-26 12:09:00 +02:00
Fabien Pinckaers a5255bc875 [IMP] sale_timesheet: placeholder on project_id 2017-04-26 12:03:06 +02:00
Martin Trigaux 0245228969 [IMP] point_of_sale: add ensure_one
instead of old assert
add doctstring to clarify the method structure
2017-04-26 11:27:15 +02:00
Nicolas Martinelli 33630d8f42 [FIX] sale, sale_stock: inconsistent decorator
The decorator is inconsistent, and actually useless.

opw-740787
2017-04-26 11:26:46 +02:00
Aaron Bohy 8dfb32aa90 [IMP] web: qunit_config: hide passed tests by default
Tests are executed a bit faster in the browser when passed tests
are hidden.
2017-04-26 11:19:20 +02:00
Aaron Bohy bead8452c2 [FIX] web: Views: sequential lazy loading of libs
The views can specify js (and css) libraries to lazy load when
they are instantiated for the first time. The previous
implementation was too naive as it always loaded the specified
libraries in parallel. However, it may happen (e.g. gantt view)
that some of those libraries depend on other ones.

This commit implements a mechanism to handle libs dependencies
between each other. For instance, specifying:
    js_libs: [
        ['a', 'b'],
        ['c'],
    ],
will load 'a' and 'b' in parallel, but wait for them to be
loaded before loading 'c'.

The new implementation still supports the old syntax. So,
    js_libs: ['a', 'b', 'c'],
will load 'a', 'b' and 'c' in parallel.
2017-04-26 11:19:20 +02:00
Aaron Bohy 8f9362809e [FIX] web: FormView: notebook: activate first visible tab
In a notebook, tabs may have an invisible attrs. The first visible
tab should be active in any case. This wasn't working at the first
rendering of the view, because the invisible attrs was evaluated
for each tab, before processing the next ones, so the it couldn't
find a next tab to activate.

This fix ensures to process all tabs (i.e. generate their DOM
element) before evaluating their invisible attrs, and trying to
find which tab to activate.
2017-04-26 11:19:20 +02:00
Aaron Bohy 6fe55c370d [FIX] web: view_manager: reload views with correct params
Mode 'readonly' is a concept of list and form views. When
switching from a graph view to another view, then switching back
to graph, there was a crash because 'readonly' is not a known mode
of graph (in graph, mode is used to determine the type of graph to
display (pie, chart or bar)).

This is due to commit odoo/odoo@ef6b330 which aims to reset the
mode to readonly when coming back to a form view using the
breadbrumbs.
2017-04-26 11:19:20 +02:00
Géry Debongnie 2679fdd9b9 [FIX] web: add mutex in basic controller
Before this commit, concurrency issues were mostly handled by the mutex
in the basic model.  That mutex makes sure that save and change
operations are properly serialized.  However, this is not enough. Here
is an example:

1. we have a required field with an onchange and a current value
2. the user changes the value to an empty value. This triggers an
   onchange
3. the user clicks on save, before the return of the onchange
4. the controller checks with the renderer if it can be saved.  At that
   point, the onchange is not yet complete, so the values stored in the
   fields are still the initial ones, which are valid (non empty value
   for required fields)
5. so, the controller request a save operation
6. the model add the save operation in the mutex, wait for the onchange
   to complete, then apply the save operation
7. we end up with a required field with an empty value

The issue here is that the model properly saves and apply onchanges, but
the responsability to check if a record is valid (which depends on the
modifiers AND the field widgets) is the renderer's responsability (it
has to ask the question to all its sub field widgets).

So, we need to serialize 3 operations: applying the onchange, checking
if the save is valid, and saving the record.  This cannot be only in the
model, so we need to add a concurrency control mechanism somewhere else.
What we do in this commit is to add a mutex on the basic controller (it
will most likely be used by the list controller as well).  In this
mutex, we currently serialize the field change operation and the save
operation, but I assume some other operations will need to be handled by
the mutex.

In addition to this, we also change some asynchronous methods to return
a deferred, so we are ready for other kind of asynchronous behaviour in
the future.
2017-04-26 10:32:03 +02:00
Dhaval Panchal 71f3abccab [IMP] generic: default view should be graph view insted of pivot view in reporting menu 2017-04-25 18:30:36 +02:00
Jeremy Kersten 5f7fc56b7a [FIX] website_sale: fix settings for front end group_xxx
During refacotring of the new settings, the group='xxx' has been removed.
Withtout it, the implied_group are only apply to the group Employee.
In this case we want that group_portal and group_public have also the group
to have the option on the website.

opw-740751
2017-04-25 18:17:30 +02:00
xmo-odoo 2479c6bc21 [FIX] patch hunk broken by 09731b78 2017-04-25 16:42:37 +02:00
Christophe Matthieu 6979f267b3 [REF] account: adapt the payment field to the new framework
The account payment widget did not work at all, since we pushed the new
views. With this commit, we adapt the code to the new views (note: the
file account_payment_widget was renamed in account_payment_field).
2017-04-25 16:36:27 +02:00
Christophe Matthieu 0c4e69e803 [IMP] barcode: add some javascript docstring 2017-04-25 16:36:20 +02:00
Xavier Morel 0550da4d88 [FIX] mrp: public/rpc methods not returning any value
XML-RPC can't serialize None, as a result methods callable over RPC
must return something (True, False, an actual value) otherwise an
error is generated when their result is serialized and sent back to
the client. It happens that JSON-RPC has different limitations and can
serialize None, so MRP had multiple button/action methods which could
be called over JSON-RPC but would break when called in XML-RPC for no
reason.

Fix them by returning `True` or result of `write`.

OPW-728844
2017-04-25 15:41:31 +02:00
amoyaux f698ed5341 [FIX][Accounting] Entry chatter "has been created from : empty"
When a journal entry is created automatically from an invoice
validation, that logs an internal note with the text
"This account entry has been created from:". There should be
a clickable invoice's reference after but there was only an empty space.

The problem come from the method that call the template
"message_origin_link" with the selected invoices as arguments.
The template use the attributes id, _name and name. But for the
invoice object we want to use the number attribute instead of
name. The name of an invoice is empty by default and thus is
rendered as a blank in the template.

This commit modify the template and use the property display_name
instead of name. "display_name" use the number for the invoice and
is still correct for other object.

The invoice name is just a reference and is not required, so if you
use the field name of the invoice it can return an empty string.
The name_get method returns the invoice id + invoice number and
eventualy the invoice name.
2017-04-25 14:28:34 +02:00
Martin Trigaux 79519ce400 [FIX] registry: load inheritS models too
When adding a field on a model, only the _inherit were checked, not the _inherits.

This commit fixes the following bug:
1. install `sale` (adding the field `sale_order_count` on `res.partner`)
   - field `sale_order_count` is created on `res.partner`
   - the ir.model.field is tagged with module `sale`

2. install `point_of_sale` (adding another field on `res.users`)
   - field `sale_order_count` is created on `res.users`
   - the ir.model.field is tagged with module `point_of_sale`

When installing sale, the model res.partner is returned in the list of impacted
models, on which _create_fields method is called but not res.users.

A direct consequence of this bug is that, the fields translations are in the
wrong module. May fix some uninstallation bugs too.

Closes #16104
2017-04-25 14:20:34 +02:00
Thibault Delavallée 9ab9da235f [IMP] lunch: display latest orders first in previous orders widget and menuitem
Ozeurouïze zizisse madnesse !
2017-04-25 14:11:48 +02:00
Thibault Delavallée a4c76239fd [IMP] account: fix link and redirection in invoice email
Currently the link is always the website link once website_portal is
installed. However it is better to use the generic /mail/view controller
that chooses the right redirection depending on the user trying to access
the document.
2017-04-25 14:10:54 +02:00
Thibault Delavallée b49da62365 [IMP] sale: improve link in quotations email
Currently the link is always the website link once website_portal or
website_quote is installed. However it is better to use the generic
/mail/view controller that chooses the right redirection depending on
the user trying to access the document.

This commit also fixes redirection in website_quote that is always
redirecting to the front-end. Classic users should land on the backend.
Indeed seeing the front-end page is rarely interesting for them.
2017-04-25 14:10:54 +02:00
Thibault Delavallée bf2f6f9264 [IMP] models: sudo get_formview_action but add access rights uid
get_formview_action is now called as sudo to avoid access rights issues
when browsing it and trying to determine the ID of the form view to
display.

However in some cases it can be interesting to know the real user trying
to access the form view. The original uid is therefore added as parameter
of the method to have the best of two worlds.
2017-04-25 14:10:54 +02:00
Thibault Delavallée 3c2c166fa6 [FIX] mail: do not sudo access action fetch in /mail/view
Otherwise it is impossible to know the user trying to access the record.
This leads to some incoherent redirection.
2017-04-25 14:10:54 +02:00
Goffin Simon 7416afed57 [FIX] account: Impossible to call pay_and_reconcile by rpc
In 9.0 the argument pay_journal in function pay_and_reconcile must be an id
but in 10.0, pay_journal must be a recordset with one element. So it was
not possible to call this method by rpc in 10.0

opw:725737
2017-04-25 13:38:42 +02:00
Goffin Simon e25b191b0a [FIX] web_kanban: _is_quick_create_enabled grouping by day, month or year
When grouping by day, by month or by year on a field date in kanban view,
it raised a traceback.

opw:727266
2017-04-25 13:28:46 +02:00