from openerp.osv import osv, fields

class product_image(osv.Model):
    _name = 'product.image'

    _columns = {
        'name': fields.char('Name'),
        'description': fields.text('Description'),
        'image': fields.binary('Image'),
        'image_small': fields.binary('Small Image'),
        'product_tmpl_id': fields.many2one('product.template', 'Product'),
    }
product_image()

class product_product(osv.Model):
    _inherit = 'product.product'

    _columns = {
        'images': fields.related('product_tmpl_id', 'images', type="one2many", relation="product.image", string='Images', store=False),
    }
product_product()

class product_template(osv.Model):
    _inherit = 'product.template'
    
    _columns = {
        'images': fields.one2many('product.image', 'product_tmpl_id', string='Images'),
    }
product_template()

from openerp.osv import osv, fields

class product_image(osv.Model):
    _name = 'product.image'

    _columns = {
        'name': fields.char('Name'),
        'description': fields.text('Description'),
        'image_alt': fields.text('Image Label'),
        'image': fields.binary('Image'),
        'image_small': fields.binary('Small Image'),
        'product_tmpl_id': fields.many2one('product.template', 'Product'),
    }
product_image()

class product_product(osv.Model):
    _inherit = 'product.product'

    _columns = {
        'images': fields.related('product_tmpl_id', 'images', type="one2many", relation="product.image", string='Images', store=False),
    }
product_product()

class product_template(osv.Model):
    _inherit = 'product.template'
    
    _columns = {
        'images': fields.one2many('product.image', 'product_tmpl_id', string='Images'),
    }
product_template()

Add image_alt for adding Alt attribute to img tags
Add image_alt for adding Alt attribute to img tags

Added image_alt for adding alt attribute to img tags for SEO
  from openerp.osv import osv, fields
  
  class product_image(osv.Model):
      _name = 'product.image'
  
      _columns = {
          'name': fields.char('Name'),
          'description': fields.text('Description'),
+         'image_alt': fields.text('Image Label'),
          'image': fields.binary('Image'),
          'image_small': fields.binary('Small Image'),
          'product_tmpl_id': fields.many2one('product.template', 'Product'),
      }
  product_image()
  
  class product_product(osv.Model):
      _inherit = 'product.product'
  
      _columns = {
          'images': fields.related('product_tmpl_id', 'images', type="one2many", relation="product.image", string='Images', store=False),
      }
  product_product()
  
  class product_template(osv.Model):
      _inherit = 'product.template'
      
      _columns = {
          'images': fields.one2many('product.image', 'product_tmpl_id', string='Images'),
      }
  product_template()
  
Add image_alt for adding Alt attribute to img tags
## Code Before:
from openerp.osv import osv, fields

class product_image(osv.Model):
    _name = 'product.image'

    _columns = {
        'name': fields.char('Name'),
        'description': fields.text('Description'),
        'image': fields.binary('Image'),
        'image_small': fields.binary('Small Image'),
        'product_tmpl_id': fields.many2one('product.template', 'Product'),
    }
product_image()

class product_product(osv.Model):
    _inherit = 'product.product'

    _columns = {
        'images': fields.related('product_tmpl_id', 'images', type="one2many", relation="product.image", string='Images', store=False),
    }
product_product()

class product_template(osv.Model):
    _inherit = 'product.template'
    
    _columns = {
        'images': fields.one2many('product.image', 'product_tmpl_id', string='Images'),
    }
product_template()

## Instruction:
Add image_alt for adding Alt attribute to img tags
## Code After:
from openerp.osv import osv, fields

class product_image(osv.Model):
    _name = 'product.image'

    _columns = {
        'name': fields.char('Name'),
        'description': fields.text('Description'),
        'image_alt': fields.text('Image Label'),
        'image': fields.binary('Image'),
        'image_small': fields.binary('Small Image'),
        'product_tmpl_id': fields.many2one('product.template', 'Product'),
    }
product_image()

class product_product(osv.Model):
    _inherit = 'product.product'

    _columns = {
        'images': fields.related('product_tmpl_id', 'images', type="one2many", relation="product.image", string='Images', store=False),
    }
product_product()

class product_template(osv.Model):
    _inherit = 'product.template'
    
    _columns = {
        'images': fields.one2many('product.image', 'product_tmpl_id', string='Images'),
    }
product_template()
