[MERGE] Forward-port saas-3 up to fc92027
authorOlivier Dony <odo@openerp.com>
Fri, 1 Aug 2014 21:10:29 +0000 (23:10 +0200)
committerOlivier Dony <odo@openerp.com>
Fri, 1 Aug 2014 21:10:29 +0000 (23:10 +0200)
addons/product_visible_discount/product_visible_discount.py
addons/website/views/website_templates.xml
addons/website_sale/controllers/main.py
openerp/addons/base/res/res_partner_view.xml
openerp/osv/orm.py

index 605a71e..cdc858d 100644 (file)
@@ -77,10 +77,15 @@ class sale_order_line(osv.osv):
             list_price = pricelist_obj.price_get(cr, uid, [pricelist],
                     product.id, qty or 1.0, partner_id, {'uom': uom,'date': date_order })
 
-            pricelists = pricelist_obj.read(cr,uid,[pricelist],['visible_discount'])
+            so_pricelist = pricelist_obj.browse(cr, uid, pricelist, context=context)
 
             new_list_price = get_real_price(list_price, product.id, qty, uom, pricelist)
-            if len(pricelists)>0 and pricelists[0]['visible_discount'] and list_price[pricelist] != 0 and new_list_price != 0:
+            if so_pricelist.visible_discount and list_price[pricelist] != 0 and new_list_price != 0:
+                if so_pricelist.currency_id.id != product.company_id.currency_id.id:
+                    # new_list_price is in company's currency while price in pricelist currency
+                    new_list_price = self.pool['res.currency'].compute(cr, uid,
+                        product.company_id.currency_id.id, so_pricelist.currency_id.id,
+                        new_list_price, context=context)
                 discount = (new_list_price - price) / new_list_price * 100
                 if discount > 0:
                     result['price_unit'] = new_list_price
index bb4185c..3dae521 100644 (file)
                     </div>
                     <div class="container mt16 mb8">
                         <div class="pull-right" t-ignore="true" t-if="not editable">
-                            Create a <a href="http://openerp.com/apps/website">free website</a> with
-                            <a class="label label-danger" href="https://openerp.com/apps/website">OpenERP</a>
+                            Create a <a href="http://www.odoo.com/page/website-builder">free website</a> with
+                            <a class="label label-danger" href="http://www.odoo.com/page/website-builder">Odoo</a>
                         </div>
                         <div class="pull-left text-muted">
                             Copyright &amp;copy; <span t-field="res_company.name">Company name</span>
index 75262b7..1275651 100644 (file)
@@ -673,6 +673,7 @@ class Ecommerce(http.Controller):
 
         acquirer_form_post_url = payment_obj.get_form_action_url(cr, uid, acquirer_id, context=context)
         acquirer_total_url = '%s?%s' % (acquirer_form_post_url, werkzeug.url_encode(post))
+        request.registry['sale.order'].action_button_confirm(cr, SUPERUSER_ID, [order.id], context=request.context)
         return request.redirect(acquirer_total_url)
 
     @http.route('/shop/payment/get_status/<int:sale_order_id>', type='json', auth="public", website=True, multilang=True)
index e658ddc..3c3509b 100644 (file)
@@ -31,6 +31,7 @@
                     <group col="4">
                         <field name="name"/>
                         <field name="shortcut"/>
+                        <field name="domain"/>
                     </group>
                 </form>
             </field>
                             <field name="fax"/>
                             <field name="user_ids" invisible="1"/>
                             <field name="email" widget="email" attrs="{'required': [('user_ids','!=', [])]}"/>
-                            <field name="title" domain="[('domain', '=', 'contact')]"
-                                options='{"no_open": True}' attrs="{'invisible': [('is_company','=', True)]}" />
+                            <field name="title" domain="[('domain','=','contact')]" options='{"no_open": True}' attrs="{'invisible': [('is_company','=',True)]}" context="{'default_domain': 'contact'}"/>
+                            <field name="title" domain="[('domain','=','partner')]" options='{"no_open": True}' attrs="{'invisible': [('is_company','=',False)]}" context="{'default_domain': 'partner'}"/>
                         </group>
                     </group>
 
index fc0d1e1..f83a31b 100644 (file)
@@ -1402,6 +1402,16 @@ class BaseModel(object):
                 # Failed to write, log to messages, rollback savepoint (to
                 # avoid broken transaction) and keep going
                 cr.execute('ROLLBACK TO SAVEPOINT model_load_save')
+            except Exception, e:
+                message = (_('Unknown error during import:') +
+                           u' %s: %s' % (type(e), unicode(e)))
+                moreinfo = _('Resolve other errors first')
+                messages.append(dict(info, type='error',
+                                     message=message,
+                                     moreinfo=moreinfo))
+                # Failed for some reason, perhaps due to invalid data supplied,
+                # rollback savepoint and keep going
+                cr.execute('ROLLBACK TO SAVEPOINT model_load_save')
         if any(message['type'] == 'error' for message in messages):
             cr.execute('ROLLBACK TO SAVEPOINT model_load')
             ids = False
@@ -4085,6 +4095,8 @@ class BaseModel(object):
             self._transient_vacuum(cr, user)
 
         self.check_access_rights(cr, user, 'create')
+        
+        vals = self._add_missing_default_values(cr, user, vals, context)
 
         if self._log_access:
             for f in LOG_ACCESS_COLUMNS:
@@ -4092,7 +4104,6 @@ class BaseModel(object):
                     _logger.warning(
                         'Field `%s` is not allowed when creating the model `%s`.',
                         f, self._name)
-        vals = self._add_missing_default_values(cr, user, vals, context)
 
         tocreate = {}
         for v in self._inherits: