Commit Graph
102174 Commits
Author SHA1 Message Date
Joren Van Onder fb460462d0 [FIX] pos_restaurant: correctly pass arguments from overriden method
When overriding a method that calls its super later on, it's important
that arguments is used to correctly pass all arguments to the super.

Consider the following:

// module 1 (not correct)
method: function(a) {
    return _super.call(this, a);
}

// module 2 (correct)
method: function(a, b) {
    return _super.apply(this, arguments);
}

If the method of module 1 gets called first it will throw away the b
argument when it calls _super. Therefore the b argument will never
arrive in method of module 2.
2016-02-01 14:03:30 +01:00
Goffin Simon 8fb8cd6c90 [FIX] pos_discount: discount product
Only the products available in the POS must be set in the field
'discount_product_id'. Inspired from 8cd0127af3

opw:668163
2016-02-01 13:40:47 +01:00
Goffin Simon 9481ee5c2f [FIX] sale_margin: Cost price in a SO line
The margin in a SO line is the difference between the price unit and
the cost price of this SO line. In function "_product_margin" in model
"sale.order.line", the cost price is equal to the purchase_price or
the standard_price of the product. Then the cost price in the SO line
must be set with the same value when creating SO line linked to the delivery.

opw:668090
2016-02-01 13:29:25 +01:00
Nicolas Martinelli a5c8846653 [IMP] delivery: add product_qty to SO line
Add the normalized quantity to the SO line. This field is useful for
delivery carriers, since the package price depends on the weight, which
is always defined as a function fo the product UoM.

opw-667594
2016-02-01 13:04:32 +01:00
Denis Ledoux 2083c16606 [FIX] account: bank statement lines indeterminist order
The order of a bank statement lines is entirely done on the sequence:
`_order = "statement_id desc, sequence"`

The `create` method of `accounT.bank.statement` is overriden
to handle the sequences of each line.

The `write` method as well, except that the set of the sequences
lines is done after the call to `super`. So, if you add
several new lines to a bank statement, the order of the line
you just added can be different before and after save,
as the sequence of these new lines are not set before
actually writting them on the bank statement.

The widget `handle` serves this sequencing purpose. The
fact it isn't used here is most-likely because
it did not exist at the time this was designed.

Besides, this gives the possibility to the user
to add a new line and re-order it where he wants.
For instance, when manually entering a bank statement,
a user could skip unintentionally a line. If he would
like to add it at the right place, before this revision,
he would have to delete all the lines coming
after the line he skipped. Now, he can add
it at the end, and re-order it where he wants.

What is done in the overriden `create` and `write`
is now useless, but we left it for retro-compatibility
purposes, for databases updating their sources without
updating their views.

opw-667541
2016-02-01 12:53:22 +01:00
Jeremy Kersten 17fcdc3ae9 [FIX] website_crm_partner_assign: order by grade, display_name (alphabetical) 2016-02-01 12:16:43 +01:00
Jeremy Kersten f39e5358bc [FIX] website_forum: decrease indexed pages which will return 404
Add filter in domain converter to remove some posts in sitemap.

Avoid to add in sitemap some pages that could not be read
by public user due to a karma restriction.
2016-02-01 12:16:43 +01:00
Jeremy Kersten 22c80fff6e [FIX] utm: use tracking_fields from utm.mixin and not from the current model
This function cannot be overridden in a model which inherit utm.mixin
Limitation by the heritage on AbstractModel

record_crm_lead.tracking_fields() will call tracking_fields() from module
utm.mixin (if not overridden on crm.lead) instead of the overridden method
from utm.mixin.

To force the call of overridden method, we use
self.pool['utm.mixin'].tracking_fields() which respects overridden
methods of utm.mixin, but will ignore overridden method on crm.lead

Eg:

 class utm_mixin(osv.AbstractModel):
    _name = 'utm.mixin'

    def tracking_fields(self):
        return "A"

 class utm_mixin_overridden(osv.AbstractModel):
    _inherit = 'utm.mixin'

    def tracking_fields(self):
        return "B"

 class crm_lead(osv.osv):
    _name = "crm.lead"
    _inherit = ['utm.mixin']

    def func_1(self):
        print self.tracking_fields()
        # print "A"

    def func_2(self):
        print self.pool['utm.mixin'].tracking_fields()
        # print "B"

It's the dispatch method of ir_http which save GET parameters in cookies,
ignoring the overridden tracking_fields method in inherited model.
2016-02-01 12:16:43 +01:00
Thibault Delavallée e32f6bc950 [IMP] website_event_track: raw html from python to data
Using message_post_with_view, raw html contained in python is now moved into
a template data and called from the code. This allows to avoid having raw html
directly embedded in python code.
2016-02-01 12:15:57 +01:00
Thibault Delavallée 4a132e2afb [IMP] website_blog: raw html from python to data
Using message_post_with_view, raw html contained in python is now moved into
a template data and called from the code. This allows to avoid having raw html
directly embedded in python code.
2016-02-01 12:15:56 +01:00
Thibault Delavallée 60ac8df5f0 [IMP] website_forum: raw html from python to data
Using message_post_with_view, raw html contained in python is now moved into
a template data and called from the code. This allows to avoid having raw html
directly embedded in python code.
2016-02-01 12:15:56 +01:00
Thibault Delavallée 0cf2ceca90 [IMP] project, issue: template on stages
Added a mail_template_field on project stage model (project.task.type). This
fields is used to automatically send an email when a task or issue comes in
this stage.

Recruitment code has been updated to use the mixin method.
2016-02-01 12:15:56 +01:00
Thibault Delavallée 9b43a8c8f6 [ADD] mail: send email based on templates
When performing automatic tracking it is now possible to automatically send
emails based on a template. This template can either be a qweb template
using its xml_id or a MailTemplate using its record.

This is simply implementing directly in the mixing a feature already present
in recruitment and soon to be added in task, issues or helpdek.
2016-02-01 12:13:53 +01:00
Thibault Delavallée 0408f7931f [IMP] mail: compose options for mass mailing
Composer in mass mailing mode currently keeps a copy of the emails in the
document communication history (chatter). It is done by keeping the
mail_message that is used to create the mail_mail record. It is now possible
to customize this behavior. Using auto_delete_message one can choose to not
keep a copy of the sent emails.

Note that the notification field on the mail_mail is used to know if the
associated mail_message has to be unlinked when unlinking the mail_mail.

Auto deletion of sent emails is based on the option on the template used
to generate the emails. It is now possible to bypass the template behavior
if requested, using the auto_delete field in the composer. If this field
is not set, the previous behavior applies.

It is now also possible to tune the message_type and subtype_id of the
posted message. Previously all messages posted through the composer
were comments with a computed subtype being either a comment or a note.
Those values are now default values but can be changed in the wizard
and correctly taken into account when posting the message.

Those modification do not change anything in the default behavior of the
composer and templates. They are mainly introduced for use in future
improvements in various addons, like sending reminder emails that are
not stored.
2016-02-01 12:03:17 +01:00
Thibault Delavallée 051fb278b9 [FIX] website: wrong computation of view
get_template should accept ids or xml ids. However the id or xml_id is given
to IrUiView.get_view_id that waits for an xml_id. get_template crashed if it
received an id.

This commit solves this by setting view_id to the given id, or resolve the xml_id
through get_view_id.
2016-02-01 12:00:44 +01:00
Aaron Bohy 0de35ffa7f [FIX] mail,web: don't block chat windows when blocking ui
One will still be able to chat in chat windows during long RPCs...
2016-02-01 11:31:36 +01:00
Aaron Bohy db4cb5b74e [FIX] mail: set tabindex of composer's elements
Also focus the subject's input by default in extended composer.
2016-02-01 11:31:09 +01:00
Aaron Bohy 4bab99bdaf [FIX] mail: don't notify 'join/left' messages
Messages of type 'notification' and whose model is 'mail.channel' are
considered as 'system notifications'. This is the case of 'join/left' messages.
They aren't taken into account when computing unread messages anymore.

Also use the same heuristic to decide whether or not to display the message's
star, so from now on pure notifications (not system notifications), like status
change on a document, can be starred.
2016-02-01 11:31:09 +01:00
Aaron Bohy ef77e6821a [FIX] mail: systray: move Inbox counter to its own item
Clicking on that item redirects to the Inbox in Discuss.

The messaging menu's counter is now the number of conversations (public or
private channels, dm and livechat) in which there is at least one unread
message. Moreover, it is emphasized when one of those conversations is a chat.

Also make mass-mailing channels available through the messaging menu (for
consistency as its counter takes those channels into account) and allow to open
them in chat windows without input.
2016-02-01 11:31:09 +01:00
Christophe Simonis 68c928aca7 [FIX] purchase: correct tax for purchase order lines created from procurment
Error introduced during forward-port 2ce9311cfe
2016-02-01 11:19:58 +01:00
Denis Ledoux 29147f4a4a [FIX] web_planner: links to modules form
This partially reverts rev. 84ade6a861

In this specific part of the code, the goal wasn't
to check if the module was part of the installed modules,
but if the module was part the "known" modules, in order
to jump on its form.

Besides, as this link is most of the time used
to install the according module, it's quite dummy
to search it within the installed modules.

Before this revision, trying to click on the "Install" links
in the planners linked to an empty module form, instead
of the according module form.

opw-667407
2016-02-01 11:13:55 +01:00
qdp-odoo 9eb612c816 [FIX] account: aged partner balance fixed.
- Unkwnown partner line wasn't added to the totals
- Column 'not due' amount fixed (was not working properly in case of partial reconciliation)
- now also includes the partner that have _everything_ reconciled for the requested date but with a reconciliation made after the requested date
- Recompute the amount_residual instead of using the field as it is problematic when requested date is between 2 partial payments of a single invoice
2016-02-01 10:33:26 +01:00
Odoo Translation Bot 72983cac8e [I18N] Update translation terms from Transifex 2016-02-01 00:29:03 +01:00
Odoo Translation Bot 3b4bbb8c28 [I18N] Update translation terms from Transifex 2016-01-31 00:33:36 +01:00
Denis Ledoux 820834b17a [MERGE] forward port of branch 9.0 up to 052da3e 2016-01-29 18:51:25 +01:00
Thomas Groutars 052da3e89a [FIX] lang: Add grouping when loading translation
Closes #10669
2016-01-29 18:47:20 +01:00
Christophe Simonis 2077c7dff4 [FIX] website: force (icon) update of "Website" menu item
Note: only relevant for enterprise web client as icon is not display in
ommunity version.
2016-01-29 18:23:28 +01:00
Denis Ledoux 56e3d2d512 [FIX] website_sale: get_pricelist_available from the backend.
The method `get_pricelist_available` can be called from the backend.

(e.g. when using `website.pricelist_id`,
whic is a function field ultimately calling
`get_pricelist_available`).

In such a case, `request.website` is not available,
as the request is not done from the website.

Therefore, we have to fallback in a work-around
to detect the website for which we would like
to get the available pricelists.

Passing the `website_id` in the context
is kinda crappy, but as the website for which
we would like the available pricelists is
not passed in the method params (trough a parameter `ids` for instance),
this is one way to put it through.

opw-668230
2016-01-29 17:51:51 +01:00
Denis Ledoux c66588174a [MERGE] forward port of branch 9.0 up to 6c8bbc3 2016-01-29 17:23:19 +01:00
Denis Ledoux 6c8bbc3d46 Revert "[FIX] fields: make related_sudo work for draft records (used by onchange)"
This reverts commits
 - 995b257a6c
 - 2ebdb5f36e
 - 748a719fd9.

The commit 748a719fd9 leads to an issue
bigger than what it aims to solve:
 - as demo user
 - create a new invoice
 - add a new line
 - select a product
-> traceback

opw-668141
2016-01-29 16:55:23 +01:00
xmo-odoo 19a1c18f57 [FIX] make m2m checkbox labels clickable 2016-01-29 16:24:14 +01:00
Denis Ledoux a157fcd8cd [FIX] sale: Sales configuration, ir.values for all users are restricted.
The global record rule `Defaults: alter personal values only`
(`base.ir_values_default_rule`)
ensures that all users can only create personal `ir.values`.

`ir.values` for all users must therefore be created as sudo.

opw-667140
2016-01-29 16:18:12 +01:00
Aaron Bohy 5e79439dee [FIX] mail: chatter: keep mentions
Message's body is kept when switching from 'New message' to 'Log a note' since
rev. f35b48aa. However, mentionned partners or channels were lost. This rev.
makes sure to preserve both message's body and mentions when switching between
composers.
2016-01-29 13:21:02 +01:00
Aaron Bohy c04103f4da [FIX] mail: various UI fixes/improvements
- don't print chat windows
- add missing 'width: 100%' on composer and Discuss sidebar inputs (required
  for community edition)
- center the Discuss sidebar inputs
- Discuss sidebar items layout: one line, text ellipsis if name is too long
- hide chatter in 'create' mode (messages wrote in the chatter need a res_model
  and a res_id, the latter is not yet existing if we are in 'create' mode)
- revert 2d2dacc: print chatter by default (classname 'hidden-print' can be
  used for specific models for which we don't want the chatter to be printed)
- thread: ensure the displayed message's date is in the past
- re-render threads every minutes to update dates
- don't squash messages in mass mailing channels
2016-01-29 13:21:02 +01:00
Nicolas Martinelli 628a6146d2 [FIX] account: keep only taxes of the company
If the SUPERUSER creates an invoice, we should make sure to keep only
the taxes related to the company of the invoice. This is for example the
case in the PoS, where the invoice is created with the SUPERUSER.

Fixes #10648
2016-01-29 13:16:53 +01:00
Nicolas Martinelli a9a4a2e6b9 [FIX] point_of_sale: invoice Salesman
Commit a29e291 uses the SUPERUSER in order to create the invoice.
However, we should still link the Salesman of the invoice to the PoS
user.

Fixes #10647
2016-01-29 13:16:53 +01:00
Denis Ledoux 1fc68ce428 [MERGE] forward port of branch 9.0 up to a842199 2016-01-29 12:55:57 +01:00
Denis Ledoux a842199687 [MERGE] forward port of branch saas-6 up to 2616def 2016-01-29 12:29:17 +01:00
Goffin Simon bafa1a677e [FIX] stock: creation of stock inventory adjustement
The system cannot create two inventory adjustements in state 'in Progess'
with the same product, with the same location, same package, same lot and
same owner.
Example:if two adjustments(ADJ1, ADJ2) are created with the same product(P)
and with the same location(L), let's say:
qty_available for P is 10
in ADJ1: Theoritical Quantity=10 and Real Quantity=20 => a quant with +10 is created
in ADJ2: Theoritical Quantity=10 and Real Quantity=30 => a quant with +20 is created

When ADJ1 is validated then qty_available for P is now 20(that 's ok)
When ADJ2 is validated then qty_available for P is now 40(that's wrong because
the Real Quantity is expected which is 30)

This is why this fix is required.

opw:660658
2016-01-29 12:25:30 +01:00
Nicolas Lempereur f5fedbcb18 [FIX] mail, portal_sale: conserve action in /mail/view
Methods get_formview_action can be called by sudo() so for knowing the
real user they should prefer context['uid'] to uid.

Without the action `/web` can't figure out that e.g the view we want is
the one for portal user and not the default one.

With this fix, portal user (not in base.group_user) get to the intended
view with the intended menu when clicking on a invoice/sale order portal
mail link. As for other user there is no change.

closes #10681
opw-666260
2016-01-29 12:08:24 +01:00
Goffin Simon 1414d60b7b [FIX] stock: creation of stock inventory adjustement
The system cannot create two inventory adjustements in state 'in Progess'
with the same product, with the same location, same package, same lot and
same owner.
Example:if two adjustments(ADJ1, ADJ2) are created with the same product(P)
and with the same location(L), let's say:
qty_available for P is 10
in ADJ1: Theoritical Quantity=10 and Real Quantity=20 => a quant with +10 is created
in ADJ2: Theoritical Quantity=10 and Real Quantity=30 => a quant with +20 is created

When ADJ1 is validated then qty_available for P is now 20(that 's ok)
When ADJ2 is validated then qty_available for P is now 40(that's wrong because
the Real Quantity is expected which is 30)

This is why this fix is required.

opw:660658
2016-01-29 12:03:14 +01:00
Denis Ledoux 2616defe35 [MERGE] forward port of branch 8.0 up to edeb5a8 2016-01-29 11:41:24 +01:00
Richard Mathot cf79fc899d [FIX] purchase: state "approved" has been replaced by "purchase" in Odoo 9.0
(thanks to @tfr-odoo for spotting the bug)
2016-01-29 10:23:00 +01:00
xmo-odoo edeb5a8c0f [FIX] module finder path parameter should be optional
According to PEP302, the signature of `Finder.find_module` should be 
`find_module(fullname, path=None)`.

Ever since it was introduced in 64ec5f36df the addons import hook 
defines the second parameter as mandatory, which is an issue for
systems relying on the specified behaviour (and not needing to
provide a path) like the stdlib's `pkgutil.find_loader`.

fixes #10670
2016-01-29 10:20:08 +01:00
Raphael Collet ca7983a40f [FIX] account_budget: in test, use float_compare to compare amounts 2016-01-29 09:37:27 +01:00
Raphael Collet 812332855a [IMP] fields: speedup Float.convert_to_cache by not rounding the value 2016-01-29 09:37:27 +01:00
Raphael Collet f0646cb51b [IMP] fields: use a "lazy" cursor to compute attribute digits
Borrowing a cursor each time you access `field.digits` may be costly, because
of the connection reset.  Moreover, in most cases, the cursor is not used at
all, since the decimal precision are kept in cache.

For the installation of module `product` with its demo data, the number of
cursor allocations was reduced from ~1500 to about 50!
2016-01-29 09:37:27 +01:00
Joren Van Onder 6f4e7867f0 [IMP] hw_escpos: add the MAC address to the ticket printed at startup
Usually when setting up a POSBox you want it to have a static IP. The
best way to do that is by configuring whatever DHCP server is
used (usually just on the router) to always assign the same IP to a
certain MAC address (naming depends on what is being used, sometimes
it's called static DHCP but it's also known as DHCP reservations and a
bunch of other names).

The process of setting this up is complicated for a non-technical user,
and this attempts to make it a little bit easier to do by immediately
giving them the correct MAC address they should use. To avoid confusion
this only prints the MAC addresses for interfaces which have an IP
address.
2016-01-29 09:25:15 +01:00
Denis Ledoux 433732aa8c [FIX] hr_timesheet_sheet: fields displayed twice in configuration
Regression introduced by rev.
024546919e

This layout is consistent with the rest of this
configuration view.

Fixes #10510
opw-668129
2016-01-28 17:55:43 +01:00
Denis Ledoux 03173543a0 [MERGE] forward port of branch 9.0 up to 1982ef9 2016-01-28 17:27:34 +01:00