Review: Needs Fixing code review

Varios comentarios inline.

Tienes que además mover el archivo xml y cambiar el replace por los atributos.

Diff comments:

> === modified file 'dos_delivery/__init__.py'
> --- dos_delivery/__init__.py  2014-06-11 10:23:47 +0000
> +++ dos_delivery/__init__.py  2014-06-23 15:30:31 +0000
> @@ -19,6 +19,6 @@
>  #
>  
> ##############################################################################
>  
> -import wizard
> +from . import wizard
>  
>  # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
> 
> === modified file 'dos_delivery/__openerp__.py'
> --- dos_delivery/__openerp__.py       2014-06-11 10:23:47 +0000
> +++ dos_delivery/__openerp__.py       2014-06-23 15:30:31 +0000
> @@ -21,20 +21,16 @@
>  
>  
>  {
> -     "name" : "DOS Delivery",
> -     "version" : "1.0",
> -     "author" : "DOS",
> -     "category" : "Contract, Sale, Delivery",
> -     "website" : "www.dos-sl.es",
> -     "description": "This module allows to calculate contracts shipping 
> costs.",
> -     "depends" : ["base", "sale", "delivery", "dos_contracts"],
> -     "init_xml" : [],
> -     "update_xml" : [
> -             'wizard/make_contract_delivery.xml',
> -             'delivery_view.xml',
> -     ],
> -     "active": False,
> -     "installable": True
> +    "name": "DOS Delivery",
> +    "version": "1.0",
> +    "author": "DOS",
> +    "category": "Contract, Sale, Delivery",
> +    "website": "www.dos-sl.es",
> +    "description": "This module allows to calculate contracts shipping 
> costs.",
> +    "depends": ["base", "sale", "delivery", "dos_contracts"],
> +    "data": [
> +        'wizard/make_contract_delivery.xml',
> +        'views/delivery_view.xml',
> +    ],
> +    "installable": True
>  }
> -
> -
> 
> === added directory 'dos_delivery/views'
> === renamed file 'dos_delivery/delivery_view.xml' => 
> 'dos_delivery/views/delivery_view.xml'
> === modified file 'dos_delivery/wizard/__init__.py'
> --- dos_delivery/wizard/__init__.py   2014-06-11 10:23:47 +0000
> +++ dos_delivery/wizard/__init__.py   2014-06-23 15:30:31 +0000
> @@ -1,6 +1,6 @@
>  # -*- coding: utf-8 -*-
>  
> ##############################################################################
> -#    
> +#
>  #    OpenERP, Open Source Management Solution
>  #    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
>  #
> @@ -15,11 +15,10 @@
>  #    GNU Affero General Public License for more details.
>  #
>  #    You should have received a copy of the GNU Affero General Public License
> -#    along with this program.  If not, see <http://www.gnu.org/licenses/>.   
>   
> +#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
>  #
>  
> ##############################################################################
>  
> -import make_contract_delivery
> +from . import make_contract_delivery
>  
>  # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
> -
> 
> === modified file 'dos_delivery/wizard/make_contract_delivery.py'
> --- dos_delivery/wizard/make_contract_delivery.py     2014-06-11 10:23:47 
> +0000
> +++ dos_delivery/wizard/make_contract_delivery.py     2014-06-23 15:30:31 
> +0000
> @@ -1,6 +1,6 @@
>  # -*- coding: utf-8 -*-
>  
> ##############################################################################
> -#    
> +#
>  #    OpenERP, Open Source Management Solution
>  #    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
>  #
> @@ -15,184 +15,178 @@
>  #    GNU Affero General Public License for more details.
>  #
>  #    You should have received a copy of the GNU Affero General Public License
> -#    along with this program.  If not, see <http://www.gnu.org/licenses/>.   
>   
> +#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
>  #
>  
> ##############################################################################
>  
>  import time
> -import ir
> +from openerp.addons.base import ir
>  from tools.translate import _
> -
> -from osv import osv, fields
> -
> -class delivery_carrier(osv.osv):
> -     
> -    _inherit ="delivery.carrier"
> +from openerp.osv import orm, fields
> +
> +
> +class DeliveryCarrier(orm.Models):

orm.Model. Esta clase debería ir en un archivo en la carpeta models.

> +
> +    _inherit = "delivery.carrier"
>  
>      def name_get(self, cr, uid, ids, context=None):
>          if not len(ids):
>              return []
>          if context is None:
>              context = {}
> -        order_id = context.get('order_id',False)
> +        order_id = context.get('order_id', False)
>          if not order_id:
> -            res = super(delivery_carrier, self).name_get(cr, uid, ids, 
> context=context)
> +            res = super(DeliveryCarrier, self).name_get(cr, uid, ids,
> +                                                        context=context)
>          else:
> -            order = self.pool.get('sale.order').browse(cr, uid, order_id, 
> context=context)
> +            order = self.pool['sale.order'].browse(cr, uid, order_id,
> +                                                   context=context)
>              currency = order.pricelist_id.currency_id.name or ''
> -            
> -            #Obtenemos precio de coste de los gastos de envío en función del 
> número de unidades
> +            # Obtenemos precio de coste de los gastos de envío en
> +            # función del número de unidades
>              price = 0
> -            
>              if order.contract_id:
> -                             #Obtenemos número de productos
> -                             num_products = 0
> -                             for line in order.order_line:
> -                                     num_products = num_products + 
> line.product_uom_qty
> -                             #Obtenemos precio de coste
> -                             for ship_cost in 
> order.contract_id.contract_shipping_cost_ids:
> -                                     if ship_cost.min_units <= num_products:
> -                                             price = ship_cost.price
> -            
> -            res = [(r['id'], r['name']+' ('+(str(price))+' '+currency+')') 
> for r in self.read(cr, uid, ids, ['name'], context)]
> -        return res
> -       
> -delivery_carrier()
> -       
> -class make_contract_delivery(osv.osv_memory):
> -     _name = "make.contract.delivery"
> -     _description = 'Make Contract Delivery'
> -
> -     _columns = {
> -             'carrier_id': fields.many2one('delivery.carrier','Delivery 
> Method', required=True),
> -     }
> -
> -
> -     def default_get(self, cr, uid, fields, context=None):
> -             """ 
> -                      To get default values for the object.
> -                     
> -                      @param self: The object pointer.
> -                      @param cr: A database cursor
> -                      @param uid: ID of the user currently logged in
> -                      @param fields: List of fields for which we want 
> default values 
> -                      @param context: A standard dictionary 
> -                      
> -                      @return: A dictionary which of fields with values. 
> -             
> -             """
> -             res = super(make_contract_delivery, self).default_get(cr, uid, 
> fields, context=context)
> -             order_obj = self.pool.get('sale.order')
> -             for order in order_obj.browse(cr, uid, 
> context.get('active_ids', []), context=context):
> -                      carrier = order.carrier_id.id
> -                      if not carrier:
> -                             carrier = 
> order.partner_id.property_delivery_carrier.id
> -                      res.update({'carrier_id': carrier})
> -                      
> -             return res
> -
> -     def view_init(self, cr , uid , fields, context=None):
> -              if context is None:
> -                     context = {}
> -              order_obj = self.pool.get('sale.order')
> -              for order in order_obj.browse(cr, uid, 
> context.get('active_ids', []), context=context):     
> -                     if not order.state in ('draft'):
> -                             raise osv.except_osv(_('Order not in draft 
> state !'), _('The order state have to be draft to add delivery lines.'))
> -                     if not order.contract_id:
> -                             raise osv.except_osv(_('No contract available 
> !'), _('No matching contract for the customer order !'))
> -              pass     
> -             
> -     def delivery_set(self, cr, uid, ids, context=None):
> -             """ 
> -                      Adds delivery costs to Sale Order Line.
> -                     
> -                      @param self: The object pointer.
> -                      @param cr: A database cursor
> -                      @param uid: ID of the user currently logged in
> -                      @param ids: List of IDs selected 
> -                      @param context: A standard dictionary 
> -                      
> -                      @return:  
> -             
> -             """
> -             if context is None:
> -                     context = {}
> -             rec_ids = context and context.get('active_ids',[])
> -             order_obj = self.pool.get('sale.order')
> -             line_obj = self.pool.get('sale.order.line')
> -             carrier_obj = self.pool.get('delivery.carrier')
> -             acc_fp_obj = self.pool.get('account.fiscal.position')
> -             contract_obj = self.pool.get('contract.contract')
> -             order_objs = order_obj.browse(cr, uid, rec_ids, context=context)
> -             
> -             for datas in self.browse(cr, uid, ids, context=context):    
> -                     for order in order_objs:
> -                             if not order.state in ('draft'):
> -                                     raise osv.except_osv(_('Order not in 
> draft state !'), _('The order state have to be draft to add delivery lines.'))
> -                             
> -                             #Obtenemos número de productos
> -                             num_products = 0
> -                             for line in order.order_line:
> -                                     num_products = num_products + 
> line.product_uom_qty
> -                             
> -                             #Obtenemos contrato del cliente del pedido
> -                             #contract_ids = contract_obj.search(cr, uid, 
> [('customer_id', '=', order.partner_id.id), ('active_contract', '=', True)], 
> limit=1)
> -                             
> -                             if not order.contract_id:
> -                                     raise osv.except_osv(_('No contract 
> available !'), _('No matching contract for the customer order !'))
> -                                     
> -                             contract_id = order.contract_id
> -                             
> -                             #Obtenemos precio de coste de los gastos de 
> envío en función del número de unidades
> -                             price = 0
> -                             found_ship_cost = False
> -                             
> -                             for ship_cost in 
> contract_id.contract_shipping_cost_ids:
> -                                     if ship_cost.min_units <= num_products:
> -                                             price = ship_cost.price
> -                                             found_ship_cost = True
> -                             
> -
> -                             if not found_ship_cost:
> -                                     raise osv.except_osv(_('No shipping 
> cost available !'), _('No matching shipping cost defined in the contract !'))
> -                             
> -                             carrier = carrier_obj.browse(cr, uid, 
> datas.carrier_id.id, context=context)
> -                             taxes = carrier.product_id.taxes_id
> -                             fpos = order.fiscal_position or False
> -                             taxes_ids = acc_fp_obj.map_tax(cr, uid, fpos, 
> taxes)
> -                             
> -                             #Obtenemos destinatario del producto
> -                             receiver = False
> -                             
> -                             for info in contract_id.info_invoice_ids:
> -                                     receiver = 
> line_obj._find_receiver(carrier.product_id.categ_id, info)
> -                                     if receiver:
> -                                             break
> -                                     
> -                             if not receiver:
> -                                     receiver = 'cliente'
> -                             
> -                             #Creamos línea de gastos de envío
> -                             line_obj.create(cr, uid, {
> -                                     'order_id': order.id,
> -                                     'name': carrier.product_id.name,
> -                                     'product_uom_qty': 1,
> -                                     'product_uom': 
> carrier.product_id.uom_id.id,
> -                                     'product_id': carrier.product_id.id,
> -                                     'price_unit': price,
> -                                     'receiver': receiver,
> -                                     'num_cabins': 0,
> -                                     'tax_id': [(6,0,taxes_ids)],
> -                                     'type': 'make_to_stock',
> -                                     'sequence': 30
> -                             })
> -                             
> -                             #Actualizamos transportista seleccionado en el 
> pedido
> -                             order_obj.write(cr, uid, [order.id], 
> {'carrier_id': carrier.id })
> -
> -             return {'type': 'ir.actions.act_window_close'}
> -
> -make_contract_delivery()
> +                # Obtenemos número de productos
> +                num_products = 0
> +                for line in order.order_line:
> +                    num_products = num_products + line.product_uom_qty
> +                # Obtenemos precio de coste
> +                for ship_cost in 
> order.contract_id.contract_shipping_cost_ids:
> +                    if ship_cost.min_units <= num_products:
> +                        price = ship_cost.price
> +            res = [(r['id'], r['name']+' ('+(str(price))+' '+currency+')')
> +                   for r in self.read(cr, uid, ids, ['name'], context)]
> +        return res
> +
> +
> +class make_contract_delivery(orm.TransientModel):

Nombre de la clase en CapsWord

> +    _name = "make.contract.delivery"
> +    _description = 'Make Contract Delivery'
> +    _columns = {
> +        'carrier_id': fields.many2one('delivery.carrier',
> +                                      'Delivery Method', required=True)
> +        }
> +
> +    def default_get(self, cr, uid, fields, context=None):
> +        """
> +            To get default values for the object.
> +            @param self: The object pointer.
> +            @param cr: A database cursor
> +            @param uid: ID of the user currently logged in
> +            @param fields: List of fields for which we want default value
> +            @param context: A standard dictionary
> +            @return: A dictionary which of fields with values.
> +        """
> +        res = super(make_contract_delivery, self).default_get(cr, uid, 
> fields,
> +                                                              
> context=context)
> +        order_obj = self.pool['sale.order']
> +        for order in order_obj.browse(cr, uid, context.get('active_ids', []),
> +                                      context=context):
> +            carrier = order.carrier_id.id
> +            if not carrier:
> +                carrier = order.partner_id.property_delivery_carrier.id
> +            res.update({'carrier_id': carrier})
> +        return res
> +
> +    def view_init(self, cr, uid, fields, context=None):
> +        if context is None:
> +            context = {}
> +        order_obj = self.pool['sale.order']
> +        for order in order_obj.browse(cr, uid, context.get('active_ids', []),
> +                                      context=context):
> +            if order.state not in ('draft'):
> +                raise orm.except_orm(_('Order not in draft state !'),
> +                                     _('The order state have to be draft'
> +                                       ' to add delivery lines.'))
> +            if not order.contract_id:
> +                raise osv.except_osv(_('No contract available !'),

orm.except_orm

> +                                     _('No matching contract '
> +                                       'for the customer order !'))
> +        pass
> +
> +    def delivery_set(self, cr, uid, ids, context=None):
> +        """
> +            Adds delivery costs to Sale Order Line.
> +
> +            @param self: The object pointer.
> +            @param cr: A database cursor
> +            @param uid: ID of the user currently logged in
> +            @param ids: List of IDs selected
> +            @param context: A standard dictionary
> +
> +            @return:
> +        """
> +        if context is None:
> +            context = {}
> +        rec_ids = context and context.get('active_ids', [])
> +        order_obj = self.pool['sale.order']
> +        line_obj = self.pool['sale.order.line']
> +        carrier_obj = self.pool['delivery.carrier']
> +        acc_fp_obj = self.pool['account.fiscal.position']
> +        contract_obj = self.pool['contract.contract']
> +        order_objs = order_obj.browse(cr, uid, rec_ids, context=context)
> +        for datas in self.browse(cr, uid, ids, context=context):
> +            for order in order_objs:
> +                if order.state not in ('draft'):
> +                    raise osv.except_osv(_('Order not in draft state !'),

orm.except_orm

> +                                         _('The order state have to be draft'
> +                                           ' to add delivery lines.'))
> +                # Obtenemos número de productos
> +                num_products = 0
> +                for line in order.order_line:
> +                    num_products = num_products + line.product_uom_qty

Poner num_product += line.product_uom_qty

> +                # Obtenemos contrato del cliente del pedido
> +                # contract_ids = contract_obj.search(cr, uid,
> +                # [('customer_id', '=', order.partner_id.id),
> +                # ('active_contract', '=', True)], limit=1)
> +                if not order.contract_id:
> +                    raise osv.except_osv(_('No contract available !'),

orm.except_orm

> +                                         _('No matching contract'
> +                                           'for the customer order !'))
> +                contract_id = order.contract_id
> +                # Obtenemos precio de coste de los gastos de envío
> +                # en función del número de unidades
> +                price = 0

No hace falta iniciarlo, ya que hay una excepción en caso de no encontrarlo.

> +                found_ship_cost = False
> +                for ship_cost in contract_id.contract_shipping_cost_ids:
> +                    if ship_cost.min_units <= num_products:
> +                        price = ship_cost.price
> +                        found_ship_cost = True

Poner un break aquí.

> +                if not found_ship_cost:
> +                    raise osv.except_osv(_('No shipping cost available !'),

orm.except_orm

> +                                         _('No matching shipping cost'
> +                                           'defined in the contract !'))
> +                carrier = carrier_obj.browse(cr, uid, datas.carrier_id.id,
> +                                             context=context)
> +                taxes = carrier.product_id.taxes_id
> +                fpos = order.fiscal_position or False
> +                taxes_ids = acc_fp_obj.map_tax(cr, uid, fpos, taxes)
> +                # Obtenemos destinatario del producto
> +                receiver = False

Inicializar receiver a 'cliente'

> +                for info in contract_id.info_invoice_ids:
> +                    categ = carrier.product_id.categ_id
> +                    receiver = line_obj._find_receiver(categ, info)
> +                    if receiver:
> +                        break
> +                if not receiver:

Estas dos líneas no hacen falta, ya que está arriba inicializado.

> +                    receiver = 'cliente'
> +                # Creamos línea de gastos de envío
> +                line_obj.create(cr, uid, {
> +                                'order_id': order.id,
> +                                'name': carrier.product_id.name,
> +                                'product_uom_qty': 1,
> +                                'product_uom': carrier.product_id.uom_id.id,
> +                                'product_id': carrier.product_id.id,
> +                                'price_unit': price,
> +                                'receiver': receiver,
> +                                'num_cabins': 0,
> +                                'tax_id': [(6, 0, taxes_ids)],
> +                                'type': 'make_to_stock',
> +                                'sequence': 30
> +                                })

propagar context

> +                # Actualizamos transportista seleccionado en el pedido
> +                order_obj.write(cr, uid, [order.id], {'carrier_id': 
> carrier.id
> +                                                      })
> +        return {'type': 'ir.actions.act_window_close'}
>  
>  # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
> -
> 


-- 
https://code.launchpad.net/~mikelarregi/avanzosc/dos_delivery/+merge/224157
Your team Avanzosc_security is subscribed to branch 
lp:~avanzosc-security-team/avanzosc/72horas.

-- 
Mailing list: https://launchpad.net/~avanzosc
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~avanzosc
More help   : https://help.launchpad.net/ListHelp

Reply via email to