Commit Graph
103345 Commits
Author SHA1 Message Date
Aaron Bohy 17461a57a0 [FIX] web: data_manager: load_action: return deep copy of action
The action object, and in particular its context, is modified by the Action
Manager and by some views (e.g. sales_team_dashboard Kanban). So, as the action
is stored in cache, the same object was returned each time the action was
requested, and previous modifications of its context still applied.

This produced a bug with the sales_team_dashboard when following those steps:
  - click on the link to today's activities, it opens an action with
    'search_default_today' in the context,
  - come back to the dashboard
  - click on the link to this week's activities, it opens an action with
    'search_default_this_week' in the context, but the formerly added key
    'search_default_today' is still there as well, so the domain is wrong.
2016-06-03 11:25:57 +02:00
Christophe Simonis 5419485e72 [MERGE] forward port of branch saas-6 up to d5df729 2016-06-03 11:15:10 +02:00
Christophe Simonis d5df729294 [MERGE] forward port of branch 8.0 up to 2779d46 2016-06-03 11:07:56 +02:00
Ravi Patel 5ed14ce9b0 [IMP] account: The new draft invoice has the sale order as the source document.
Context:
Source document on invoice created through a credit note with the modify option

Current issue:
create an invoice from a sale order,
validate it,
Create a refund with the modify option
The first invoice is reconciled with the refund
The new draft invoice doesn't have a source document and can't be reached from the SO

Expect result:
The new draft invoice should have the sale order as the source document
2016-06-03 10:56:08 +02:00
Yannick Tivisse ed12bfd775 [IMP] web: Navigation improvement in editable list view (v2)
1/ On create new record focus field should select already existing value of field,
   So user doesn't have to remove  the old value first and then enter new value.

2/ Forget about it
2016-06-03 10:49:24 +02:00
Géry Debongnie 0ce2583157 [REVERT] revert web: Navigation improvement in editable list view"
This reverts commit c43a97f353.

If you use a setTimeout in your js code, you might want to have a
serious look at what you are doing.  You are almost certainly doing it
wrong.

If you chain a deferred with the number returned from a setTimeout, you
definitely don't know what you are doing.

If you try to fix editable list view by magically adding timeout,
potentially inversing the order of execution, and without understanding
how deferred works, it is clear that you are just changing stuff until
your particular bug disappear in your particular case, and that you have
no idea what other bugs you just introduced.

Please study how deferred works, how the basic JS methods works, learn
what setTimeout returns.  Also, you might want to have a basic
understanding of how and when expressions are evaluated.  For example,
if you cannot explain why a if statement cannot be replaced by a
function, you might want to stop what you are doing and educate yourself.
2016-06-03 10:24:38 +02:00
Olivier Dony af1a8758ec [FIX] res.partner: performance of name_get()
Rev. 93e9a4dce7 tried to speed up
the 9.0 name_get() of res.partner by only calling fields_get()
once for the whole name_get, instead of calling it lazily.

This may have worked for name_get calls on multiple unnamed
addresses (name is NULL), but this is a rare occurrence
in practice - while now every single name_get() call would
incur the full cost of the fields_get() call.

That fields_get() call is O(n) in the number of fields,
and there can be quite a few for res.partner.
Calling it only for the specific 'type' field can easily be
about 40x faster than without it.

And since name_get() is called for each Many2One field
of each record being read (due to convert_to_read()), reading
a batch of records with partner fields had become quite
a bit slower!

Avoiding this cost entirely with lazy fields_get() calls
saves quite a lot of time for the common cases. And now
that fields_get() specifies a single field, it is cheap
enough to be called within the loop.

Non-scientific benchmark: account.invoice.search_read() in
the list view of invoices took 500ms for 25 invoices
_before_ this fix, and 90ms after!
2016-06-02 21:15:21 +02:00
Christophe Simonis d11c7d1401 [FIX] website_sale: field color has been renamed html_color 2016-06-02 19:41:34 +02:00
Xudong Yang f558c049d0 [FIX] base_import: t-if does not work with t-jquery
Not evaluated, move the condition to the button
Closes #12230
2016-06-02 17:56:23 +02:00
Jairo Llopis f94f570be6 [FIX] doc: declaration of computed fields
Cannot link a method before declaring it.

Closes #12057
2016-06-02 17:56:23 +02:00
Laurent Bélorgey 149b8fe2c6 [CLA] signature for lbelorgey
Closes #11226
2016-06-02 17:56:23 +02:00
Christophe Simonis ecb517b486 [FIX] hr_recruitment: remove field from view 2016-06-02 17:53:14 +02:00
Adrien Peiffer (ACSONE) 2779d463e8 [FIX] l10n_lu: Change the sign for VP-IC-EX. Was PR #12041 2016-06-02 17:38:05 +02:00
Christophe Simonis c14e9bca84 [FIX] account: invoice report: group also by sign, as it's use in query 2016-06-02 17:16:07 +02:00
Martin Trigaux 30f06fd39e [FIX] website_forum: convert content of posted comment to plaintext
HTML content should be escaped before being sanitized. Any content (link, image,
code,...) that is acceptable in usual mail.message but should not be interprated
when posted on a comment of the forum.

Fixes #3737
2016-06-02 17:00:17 +02:00
Denis Ledoux c751c129da [FIX] website_sale: State select readonly in shipping info
If we take the below facts:
 - The country select is set as disabled
   when Shipping is set to "Ship to the same address"
 - The disable property of select inputs is
   removed when shipping is set to
   `create a new address`:
   In `website_sale.js`:
   ```
   $selects.attr("disabled", value <= 0 ? null : "disabled" ).prop("disabled", value <= 0 ? null : "disabled" );
   ```

We can safely assume that the select input "State / Province" was supposed
to be set as `disabled` in the first place, not as `readonly`

Before this revision, State / Provice was greyed when choosing
"Create a new address" for shipping, and selecting the United States
(but the select input was still usable, though, it was just greyed)

opw-675739
2016-06-02 16:57:36 +02:00
dut-odoo 83afe3b847 [ADD] hr_recruitment: added department menu in configuration 2016-06-02 16:40:25 +02:00
Ravi Gadhia c43a97f353 [IMP] web: Navigation improvement in editable list view
1/ On create new record focus field should select already existing value of field,
   So user doesn't have to remove  the old value first and then enter new value.

2/ Avoid the double empty line creation when pressing enter
step to produce
1 Menu Point of Sale > Configuration > Point of Sale switch to form view
2 Tick the box "Cash Control" , the one2many field will be visible
3 Press the "Tab" from keybord , control jumps to "Add an item" button
4 Press "Enter" from keyboad
5 You will see one extra line will be added..
2016-06-02 16:25:48 +02:00
Géry Debongnie b624dd7aa4 [FIX] mail: fix native notifications
because of a previous refactoring, the function send_notification stopped working
at all.  It was not using the instance of the bus, but the module containing the
bus instance.
2016-06-02 15:43:16 +02:00
ptr 0f41256009 [ADD] mail,sale,stock,purchase,event,pos: Source document clickable in chatter
PURPOSE:
The source document should be in the chatter and clickable

NEW MAIL TEMPLATE:
mail: new template 'message_origin_link' with clickable link to origin
Variables to pass:
- origin: the record from which the current record had been created
- self: The current record
Optional:
- edit: If true, the record has been modified. Otherwise it has been created
  from the origin

SPECIFICATION:
Source Document is available in following models
1) After creating SO then Sale to Invoice -> Source Document (After creating Sales Order and then clicking on Create invoice)
2) When procurement is created after SO or MO or Order Point(procurement.order) - > Source Document
3) Stock.picking -> Source Document ( After Creating SO or PO)
4) When Manufacturing Order is Created (mrp.production) -> Source Document (Coming after creating a sale order of product)
5) Event -> Attendees(event.registration) -> Source Document
6) Request For Quotation -> Source Document (After creating Purchase Tender, SO)
7) In Purchase Tender(purchase.requisition) -> Source Document (When a new Purchase Tender is Created)
8) After creating PO then create invoice(vendor bill)-> Source Document
9) After creating Invoice from contract (subscription) - > source Document.
10) Refund invoice from Invoice --> Source Document.
11) Return picking from picking --> Source Document.
12) sale use POS to create invoice and picking -->  Source Document.

MESSAGES TO DISPLAY:
-In Customer Invoice, there is a source document of Sale Order.
 "This Invoice has been created from Sale Order(s): SO001, SO002"

-In Procurement, the source document can be either of Sale Order or Manufacturing Order or Order Point.
 "This procurement is created from: SO001 or MO0001 or OP/0001"

-In Stock Picking, the source document can be either of Sale Order or Purchase Order.
 "This transfer has been created from sales order(s): SO001 or PO0001"

-Create new Sales order of manufactured product , there will be Source Document with that Sale Order number
"This production has been created from procurement(s): WH: Stock -> CustomersMTO"

-When registering for Event from website, Sale Order is Created and it is stored in Source Document,
 "The attendee has been created from Sale order: SO001"

-In RFQ, the source document can be either Purchase Tender or Sale Order or Order Point,
 "This purchase order has been created from purchase requisition(s): TE0001 or SO001 or OP/0001"

-In Purchase Tender, the source document can be either of Sale Order/ Manufacturing Order/ Order Point.
 "This Purchase Requisition has been created from: WH: Stock -> CustomersMTO"

-In Vendor bill, there is a source document of Purchase Order.
 "This Vendor bill has been created from Purchase Order(s): PO0001, PO002"

-When creating refund of invoice
 "This customer invoices refund has been created from customer invoices: INV/2016/0001"

-when create invoice and picking form pos.
 "This invoce has been create from point of sale: MainXX"
2016-06-02 15:33:57 +02:00
Nicolas Martinelli 543f75f46e [FIX] product_extended: traceback on bom_count
The field `bom_count` is added in the view for group `group_mrp_user`.
Therefore when extending the view, we should make sure to restrict the
access as well.

opw-679172
2016-06-02 15:26:52 +02:00
Christophe Simonis a36f6dbc29 [MERGE] forward port of branch 9.0 up to 928bc26 2016-06-02 15:12:47 +02:00
Jainik Patel 120400c8e3 [IMP] sale,crm: Rename access right label
Change access right string because when only sale module is install
then string is confusing this access right of the lead or documents.
2016-06-02 14:58:41 +02:00
Ravi Patel 9c012ad07e [FIX] report: Traceback on print report from wizard.
Go to Product Variant  >> Select any Product Variant >> Print Report Of Price List >> select any Price List
and Click on print button it's gives traceback like:
http://www.awesomescreenshot.com/image/1288867/b6639baf8cb94e3a90ce9d347b3f4f35

Introduced by https://github.com/odoo/odoo/commit/da3d2fb1dc76654e630fba27ca3dcf03002d9431
2016-06-02 14:46:12 +02:00
Géry Debongnie 9be5531f3e [FIX] web: fix actions in sidebar on second reload
When the user visited a view for the second time, the extra actions in the sidebar
were broken.  The reason is that the sidebar code modified in place the
fields_view information.

Note: This was not a problem before, because the field_view_get call was done each
time the view was loaded, but now it is cached.
2016-06-02 14:28:21 +02:00
Christophe Simonis 928bc262a6 [MERGE] forward port of branch saas-6 up to 589751c 2016-06-02 14:26:19 +02:00
qdp-odoo 649b289fa1 [FIX] account: invoice analysis report fixed.
* price_average is now always positive regardless of the invoice type, because it's an average and there's no point in summing those values
* price_total is now computed by using ABS() because of a migration bug of price_subtotal_signed introduced in saas-6, where in_invoice and in_refund invoices were set with a negative value while on the help tooltip it was saying that in/out refunds are negative and in/out invoices are positive. That bug was only revealed in v9 -since saas-6 wasn't using that field at all-, with the effect of having wrong values in report for migrated databases. This workaround using ABS() will be removed in a further version with a migration script to fix people's databases.
* residual field is now negative for in_invoices and out_refunds.
* These 2 points ensure that we can group by invoice type and sum the price_total or the residual fields to get the gross income of a month for example.
2016-06-02 13:41:27 +02:00
Christophe Simonis 589751ca28 [MERGE] forward port of branch 8.0 up to bde083a 2016-06-02 12:58:48 +02:00
dut-odoo a0b676921b [IMP] website_event: Improved error message of event registration page
When event is created/finished/cancelled, event registration page shows same error message.
It shouldn't be same. So changed error message for finished/cancelled event.
2016-06-02 12:58:06 +02:00
Denis Ledoux 473d2ab98a [FIX] mrp: inventory value of produced items
Since the revision bc23c92c3e,
the inventory value of the produced items could
be doubled, because the list
`total_consume_moves` could contain several time
the same move ids, e.g. when it was added by
`total_consume_moves.append(raw_material_line.id)`
and
`total_consume_moves += already_consumed_lines.ids`

The list is replaced by a set to ensure a same move
cannot be counted twice.

opw-678727
2016-06-02 12:53:12 +02:00
jpr-odoo 98a3482369 [IMP] event,website_event_question: Copy more fields on duplicate
In the Event App, when we duplicating an event, the email schedule and
Questions also duplicate.
2016-06-02 12:52:36 +02:00
Martin Trigaux 440c5d6e44 [FIX] subscription: avoid trying to access to subscriptions without cron
The cron may no longer be present (e.g. deleted) and the subscribtion would be
blocked in running state.

Fixes #12207
2016-06-02 12:48:07 +02:00
Christophe Simonis bde083a5f9 [MERGE] forward port of branch 7.0 up to 0ae392c 2016-06-02 12:42:34 +02:00
Aaron Bohy ccb907a185 [IMP] web_calendar: button to hide the mini calendar
- State stored in localStorage
- Mini calendar width fixed and not 25% of webclient's width
- Minor ui tweaks of the mini calendar
2016-06-02 12:37:41 +02:00
Aaron Bohy 99bfb46fa5 [REF] (web_)calendar: mainly sidebar refactoring
Also:
 - keeps unticked filters unticked when deleting a filter or adding a new one
 - correctly tick filters when clicking on the partner's name (that code was
   broken)
 - remove reference to instance.web introduced by a forwardport
 - wrong use of self in CalendarView's init()
2016-06-02 12:37:41 +02:00
Aaron Bohy 9f3fff5181 [IMP] calendar: sidebar filters: disable filters if active partner
When loading a calendar view with a partner_id in the context, the sidebar's
filters should be disabled by default to only display events related to that
partner.
2016-06-02 12:37:41 +02:00
Aaron Bohy 42929b9acd [IMP] calendar: sidebar filters: avoid duplicating contacts
by blacklisting contacts already in favorites in the Many2One
2016-06-02 12:37:41 +02:00
Aaron Bohy 2705a6785b [FIX] calendar: sidebar filters: no many2one if !useContacts
Also don't allow to delete the filters in that case, as they are automatically
computed from the displayed events.
2016-06-02 12:37:41 +02:00
Aaron Bohy 1ff03029a0 [IMP] calendar: sidebar filters: remove unnecessary RPCs 2016-06-02 12:37:41 +02:00
Aaron Bohy dc06e9d515 [FIX] (web_)calendar: load events with attendees in domain
Before this rev., the events were loaded twice:
 - once with the date range as domain (and optionally the content of the search
   view),
 - once with the date range and the partner_ids of the sidebar's filters (and
   content of search view).

The first loading was therefore useless, and might also be very costly.
2016-06-02 12:37:41 +02:00
Mansi Gandhi 2c98364e9b [IMP] sale: add 'Analytic Tags' field in SO line form 2016-06-02 12:03:34 +02:00
jpr-odoo 1de2e3353f [FIX] website_slides: Increase Odoo Slides Height.
Change from 16:9 to 4:3
2016-06-02 11:59:18 +02:00
Jairo Llopis 57e5d703c2 [FIX] mass_mailing: filter emails to avoid duplicates
When subscribing a user to a mailing list, the `mail.mass_mailing.contact`
created is processed to identify it's name and email from the address (method
`get_name_email` called in `add_to_list` and `name_create`).
For a better consistency, the search of existing contacts should also be done
using the method `get_name_email`.

This avoids that subscribing twice `Example <example@example.com>` fails to
detect duplicates and creates two subscriptions.

Closes #12265
2016-06-02 11:38:00 +02:00
Raphael Collet fa8abe6aed [FIX] custom fields: make the flag 'translate' visible for html fields
opw:678921
2016-06-02 11:24:02 +02:00
Jairo Llopis 3451ac5254 [FIX] purchase: typo at field declaration.
Closes #12260
2016-06-02 10:11:18 +02:00
Joren Van Onder 50eb591bbd [FIX] stock: hide header on stock.picking form view on small displays
Related to c6fc91b318.

fp request
2016-06-02 10:09:25 +02:00
Goffin Simon a0b918645a [FIX] account : _prepare_reconciliation_move_line
When computing the amount_currency, the ratio is 1.0 if the difference
between amount(computed like this -sum([x.balance for x in move.line_ids]))
and the amount set in the statement is not greater than the currency rounding.
opw:678588
2016-06-02 09:40:01 +02:00
Olivier Dony 5a8a17b4e0 [IMP] safe_eval: unused import, linting 2016-06-02 00:50:43 +02:00
Olivier Dony ef0d05b6e0 [IMP] safe_eval: let AuthenticationError and werkzeug HTTPExceptions bubble up
- Werkzeug's HTTPException are useful while dispatching HTTP requests,
  in order to return a custom error page with an appropriate status
  code. The http stack should let those exceptions bubble all the way up
  and return the body of the exception as the HTTP response.

- openerp.http.AuthenticationError may be useful while dispatching JSON
  requests, because the JSON error result will have error code 100
  instead of the usual code 200, making it easy to distinguish
  in simple JSON client code.

- Also slightly improved the fallback for unknown exceptions occurring
  during "safe evaluation", to explicitly mention the original exception
  type in the generic ValueError that gets raised.
2016-06-02 00:50:36 +02:00
Olivier Dony 011ce1e83a [FIX] ir.translation: avoid duplicating translations
Rev. 253437f81f meant to
avoid the creation of duplicate entries during translation
import, caused by existing translations created with an
empty `module` field.

But the fix was over-zealous and caused an extra side-effect:
the creation of missing translations (the blue flag icon)
now creates duplicate translations if other translations
exist with different `module` values.
(This could happen because translations are provided by
several modules, or due to manual translation entries with
no module value, etc.)
2016-06-02 00:41:51 +02:00