[FIX] website_quote: compare untaxed amounts in case of discount
[FIX] web: cherry-pick of 893e4268650ddd517e3044f41c582fd92de6edfe & 61207f3f4d9206d4c1a3e484eb89f09d2258977a
[MERGE] forward port of branch 7.0 up to 98c6e7c
[FIX] config: fix parsing of geoip db paramater, rename command-line option for consistency
[FIX] website_crm: remove useless request from params, anyway it's a global var
[MERGE] forward port of branch saas-3 up to 6feb5f7
[FIX] product: price_rule_get_multi returns a dict with a dict with tuples
[IMP] expression.py: add a check to forbid records in domains

Records in domains cause a "maximum recursion depth exceeded" error when
converted to SQL. Simply add a test to show a better error message.
[ADD] QWeb2: add support for operation='attributes' in a t-extend

Same syntax as server's position='attributes' on view inheritance
[FIX] sale: translate advance message on advance invoice
[FIX] event: convert related country_id field to compute field

To avoid being able to change the country of the address (res.partner) from this field
[IMP] test_new_api, test_inherit: improve code of tests
[FIX] mail: set the parent_id to the first message of type email

And fallback of any type if there is none of type email

This fix allow the communication between two mail thread from two different Odoo servers having message creation subtypes, like project issue or crm lead
[REF] Extract the domain generation for get_move_lines_for_reconciliation and get_reconciliation_proposition in new methods

This way, the query method can be used with a custom domain. Such a domain
could match on a 'transaction_ref' field as well as on 'ref' and 'name'.

Example of implementation:

    class account_bank_statement_line(orm.Model):
        _inherit = 'account.bank.statement.line'

        def _domain_reconciliation_proposition(self, cr, uid, st_line,
                                               excluded_ids=None, context=None):
            _super = super(account_bank_statement_line, self)
            _get_domain = _super._domain_reconciliation_proposition
            domain = _get_domain(cr, uid, st_line, excluded_ids=excluded_ids,
                                 context=context)
            new_domain = []
            for criterium in domain:
                if len(criterium) == 3:
                    field, op, value = criterium
                    if (field, op) == ('ref', '='):
                        new_domain += [
                            '|',
                            ('transaction_ref', '=', value),
                        ]
                new_domain.append(criterium)
            return new_domain

        def _domain_move_lines_for_reconciliation(self, cr, uid, st_line,
                                                  excluded_ids=None, str=False,
                                                  additional_domain=None,
                                                  context=None):
            _super = super(account_bank_statement_line, self)
            _domain_meth = _super._domain_move_lines_for_reconciliation
            domain = _domain_meth(cr, uid, st_line, excluded_ids=excluded_ids,
                                  str=str, additional_domain=additional_domain,
                                  context=context)
            if not str and str != '/':
                return domain
            domain = domain[:]
            domain.insert(-1, '|')
            domain.append(('transaction_ref', 'ilike', str))
            return domain
Merge pull request #3121 from odoo-dev/8.0-bank-statement-reconcile-extract-domain-guewen

[REF] Extract the domain generation for get_move_lines_for_reconciliation and get_reconciliation_proposition in new methods
[FIX] report: do not fail if PDF cannot be saved as attachment due to AccessError
[FIX] website: prevent editing contact address with qweb contact widget

Because, currently, it copy the whole address in the contact name. The address is therefore duplicated
[FIX] website: fix snippet banner, else when a video is dropped (using a div), the video is moved outside of the span col-md-6 by the editor and so become invisble
[FIX] account: use float_compare instead of just <>
[FIX] Produce line should be connected to its procurement

[FIX] Better to work through the production_id of the procurement