[MERGE]with lp:~openerp-dev/openobject-addons/trunk-website-al.
authorDarshan Kalola (OpenERP) <dka@tinyerp.com>
Wed, 8 Jan 2014 09:36:59 +0000 (15:06 +0530)
committerDarshan Kalola (OpenERP) <dka@tinyerp.com>
Wed, 8 Jan 2014 09:36:59 +0000 (15:06 +0530)
bzr revid: dka@tinyerp.com-20140108093659-c9it34gll0ipcll2

1  2 
addons/product/__openerp__.py
addons/product/product.py
addons/product/product_data.xml
addons/product/product_demo.xml
addons/product/product_view.xml
addons/product/security/product_security.xml
addons/purchase/purchase_view.xml
addons/stock/product_view.xml
addons/stock/stock_view.xml
addons/website_sale/views/website_sale_backend.xml

Simple merge
@@@ -575,9 -564,15 +578,15 @@@ class product_product(osv.osv)
                          uom.id, product.list_price, context['uom'])
              else:
                  res[product.id] = product.list_price
 -            res[product.id] =  (res[product.id] or 0.0) * (product.price_margin or 1.0) + product.price_extra
 +            res[product.id] =  (res[product.id] + ((res[product.id] * (product.price_margin)) / 100)) + product.price_extra
          return res
  
+     def _save_product_lst_price(self, cr, uid, product_id, field_name, field_value, arg, context=None):
+         field_value = field_value or 0.0
+         product = self.browse(cr, uid, product_id, context=context)
+         list_price = (field_value - product.price_extra) / (product.price_margin or 1.0)
+         return self.write(cr, uid, [product_id], {'list_price': list_price}, context=context)
      def _get_partner_code_name(self, cr, uid, ids, product, partner_id, context=None):
          for supinfo in product.seller_ids:
              if supinfo.name.id == partner_id:
  
          res = {}
          product_uom_obj = self.pool.get('product.uom')
-         for product in self.browse(cr, uid, ids, context=context):
+         for product in products:
              res[product.id] = product[ptype] or 0.0
              if ptype == 'list_price':
 -                res[product.id] = (res[product.id] * (product.price_margin or 1.0)) + \
 +                res[product.id] = (res[product.id] + ((res[product.id] * (product.price_margin)) / 100)) + \
                          product.price_extra
              if 'uom' in context:
                  uom = product.uom_id or product.uos_id
              return super(product_product, self).copy(cr, uid, id, default=default,
                      context=context)
  
 +    def copy_translations(self, cr, uid, old_id, new_id, context=None):
 +        """ When we do not copy the template along the variant,
 +          copy_translations sometimes receives 2 identical IDs.
 +          That's because the ORM follows the o2m to copy the translations,
 +          so in that case, it follows 'variant_ids' and for each variant,
 +          it copy the translations. One of the variant is the 'new_id'.
 +          Just skip the identical IDs.
 +          """
 +        if old_id == new_id:
 +            return super(product_product, self).copy_translations(cr, uid, old_id, new_id, context=context)
 +
      def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
-         if context is None:
-             context = {}
-         if context and context.get('search_default_categ_id', False):
+         if context and context.get('search_default_categ_id'):
              args.append((('categ_id', 'child_of', context['search_default_categ_id'])))
          return super(product_product, self).search(cr, uid, args, offset=offset, limit=limit, order=order, context=context, count=count)
  
Simple merge
@@@ -960,9 -1022,8 +960,9 @@@ QWERTY keyboard</field
              <field name="min_qty">1</field>
          </record>
  
 +
          <record id="product_supplierinfo_5" model="product.supplierinfo">
-             <field name="product_id" ref="product_template_8"/>
+             <field name="product_tmpl_id" ref="product_template_8"/>
              <field name="name" ref="base.res_partner_16"/>
              <field name="delay">2</field>
              <field name="min_qty">5</field>
              <field name="min_qty">1</field>
          </record>
  
 -        <record id="product_supplierinfo_10" model="product.supplierinfo">
 -            <field name="product_tmpl_id" ref="product_template_14"/>
 -            <field name="name" ref="base.res_partner_4"/>
 -            <field name="delay">5</field>
 -            <field name="min_qty">1</field>
 -        </record>
 -
 -        <record id="product_supplierinfo_11" model="product.supplierinfo">
 -            <field name="product_tmpl_id" ref="product_template_15"/>
 -            <field name="name" ref="base.res_partner_4"/>
 -            <field name="delay">5</field>
 -            <field name="min_qty">1</field>
 -        </record>
          <record id="product_supplierinfo_12" model="product.supplierinfo">
-             <field name="product_id" ref="product_template_13"/>
 -            <field name="product_tmpl_id" ref="product_template_15"/>
++            <field name="product_tmpl_id" ref="product_template_13"/>
              <field name="name" ref="base.res_partner_1"/>
              <field name="delay">1</field>
              <field name="min_qty">1</field>
              <field name="min_qty">5</field>
          </record>
  
 -        <record id="product_supplierinfo_17" model="product.supplierinfo">
 -            <field name="product_tmpl_id" ref="product_template_21"/>
 -            <field name="name" ref="base.res_partner_4"/>
 -            <field name="delay">3</field>
 -            <field name="min_qty">1</field>
 -        </record>
 -
 -        <record id="product_supplierinfo_18" model="product.supplierinfo">
 -            <field name="product_tmpl_id" ref="product_template_21"/>
 -            <field name="name" ref="base.res_partner_16"/>
 -            <field name="delay">2</field>
 -            <field name="min_qty">1</field>
 -        </record>
          <record id="product_supplierinfo_19" model="product.supplierinfo">
-             <field name="product_id" ref="product_template_22"/>
+             <field name="product_tmpl_id" ref="product_template_22"/>
              <field name="name" ref="base.res_partner_19"/>
              <field name="delay">3</field>
              <field name="min_qty">1</field>
              <field name="min_qty">1</field>
          </record>
  
 -        <record id="product_supplierinfo_23" model="product.supplierinfo">
 -            <field name="product_tmpl_id" ref="product_template_26"/>
 -            <field name="name" ref="base.res_partner_1"/>
 -            <field name="delay">8</field>
 -            <field name="min_qty">1</field>
 -        </record>
 -
          <record id="product_supplierinfo_24" model="product.supplierinfo">
-             <field name="product_id" ref="product_template_28"/>
+             <field name="product_tmpl_id" ref="product_template_28"/>
              <field name="name" ref="base.res_partner_19"/>
              <field name="delay">4</field>
              <field name="min_qty">1</field>
              <field name="min_qty">12</field>
          </record>
  
 -        <record id="product_supplierinfo_27" model="product.supplierinfo">
 -            <field name="product_tmpl_id" ref="product_template_30"/>
 -            <field name="name" ref="base.res_partner_3"/>
 -            <field name="delay">2</field>
 -            <field name="min_qty">12</field>
 -        </record>
          <record id="product_supplierinfo_28" model="product.supplierinfo">
-             <field name="product_id" ref="product_template_31"/>
+             <field name="product_tmpl_id" ref="product_template_31"/>
              <field name="name" ref="base.res_partner_3"/>
              <field name="delay">2</field>
              <field name="min_qty">5</field>
              <field name="min_qty">1</field>
          </record-->
  
 -        <record id="product_supplierinfo_39" model="product.supplierinfo">
 -            <field name="product_tmpl_id" ref="product_template_18"/>
 -            <field name="name" ref="base.res_partner_19"/>
 -            <field name="delay">4</field>
 -            <field name="min_qty">1</field>
 -        </record>
          <record id="product_supplierinfo_40" model="product.supplierinfo">
-             <field name="product_id" ref="product_template_17"/>
 -            <field name="product_tmpl_id" ref="product_template_19"/>
++            <field name="product_tmpl_id" ref="product_template_17"/>
              <field name="name" ref="base.res_partner_1"/>
              <field name="delay">4</field>
              <field name="min_qty">0</field>
          </record>
  
          <record id="product_supplierinfo_41" model="product.supplierinfo">
-             <field name="product_id" ref="product_template_17"/>
 -            <field name="product_tmpl_id" ref="product_template_19"/>
++            <field name="product_tmpl_id" ref="product_template_17"/>
              <field name="name" ref="base.res_partner_8"/>
              <field name="delay">5</field>
              <field name="min_qty">0</field>
          </record>
  
 -        <record id="product_supplierinfo_42" model="product.supplierinfo">
 -            <field name="product_tmpl_id" ref="product_template_33"/>
 -            <field name="name" ref="base.res_partner_3"/>
 -            <field name="delay">2</field>
 -            <field name="min_qty">0</field>
 -        </record>
 -
+         <record id="product_supplierinfo_43" model="product.supplierinfo">
+             <field name="product_tmpl_id" ref="product_template_9"/>
+             <field name="name" ref="base.res_partner_8"/>
+             <field name="delay">4</field>
+             <field name="min_qty">0</field>
+         </record>
          <record id="product_supplierinfo_44" model="product.supplierinfo">
-             <field name="product_id" ref="product_template_25"/>
 -            <field name="product_tmpl_id" ref="product_template_27"/>
++            <field name="product_tmpl_id" ref="product_template_25"/>
              <field name="name" ref="base.res_partner_1"/>
              <field name="delay">10</field>
              <field name="min_qty">0</field>
          </record>
  
 -        <record id="product_supplierinfo_45" model="product.supplierinfo">
 -            <field name="product_tmpl_id" ref="product_template_12"/>
 -            <field name="name" ref="base.res_partner_16"/>
 -            <field name="delay">3</field>
 -            <field name="min_qty">0</field>
 -        </record>
 -
          <record id="product_supplierinfo_46" model="product.supplierinfo">
-             <field name="product_id" ref="product_template_37"/>
+             <field name="product_tmpl_id" ref="product_template_37"/>
              <field name="name" ref="base.res_partner_22"/>
              <field name="delay">5</field>
              <field name="min_qty">0</field>
Simple merge
Simple merge
Simple merge
Simple merge
          <field name="inherit_id" ref="product.product_template_form_view"/>
          <field name="arch" type="xml">
              <!-- add state field in header -->
-             <xpath expr="//sheet" position="before">
-                 <div class="oe_form_box_info oe_text_center" attrs="{'invisible': [('sale_ok', '=', False)]}">
-                     <p attrs="{'invisible': [('website_published', '=', True)]}">
-                         This product is <b>not available</b> for public user in your ecommerce.
-                     </p>
-                     <p attrs="{'invisible': [('website_published', '=', False)]}">
-                         This product is <b>available</b> for public user in your ecommerce.
-                     </p>
-                     <p>Website view: <field class="oe_inline" name="website_url" widget="url"/></p>
-                 </div>
-             </xpath>
 +
-             <xpath expr="//div[@name='options']" position="inside">
-                 <field name="website_published"/>
-                 <label for="website_published"/>
+             <xpath expr="//sheet/div" position="before">
+                 <field name="website_url" invisible="1"/>
+                 <field name="website_published" class="pull-right" widget="website_button"/>
              </xpath>
 -            <xpath expr="//page[@string='Information']" position="inside">
 +            <xpath expr="//field[@name='description']" position="before">
                  <group colspan="4" string="Website Options">
                      <field name="suggested_product_ids" widget="many2many_tags"/>
                      <field name="website_style_ids" widget="many2many_tags"/>