← Back to team overview

avanzosc team mailing list archive

Re: [Merge] lp:~oihanecruce/avanzosc/dos_contracts_models into lp:~avanzosc-security-team/avanzosc/72horas

 

Review: Needs Fixing code review

Comentarios inline.

Diff comments:

> === modified file 'dos_contracts_models/__init__.py'
> --- dos_contracts_models/__init__.py	2014-06-11 10:23:47 +0000
> +++ dos_contracts_models/__init__.py	2014-06-16 14:10:18 +0000
> @@ -19,8 +19,5 @@
>  #
>  ##############################################################################
>  
> -import wizard
> -import contract_model
> -
> -
> -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
> +from . import wizard
> +from . import models
> 
> === modified file 'dos_contracts_models/__openerp__.py'
> --- dos_contracts_models/__openerp__.py	2014-06-11 10:23:47 +0000
> +++ dos_contracts_models/__openerp__.py	2014-06-16 14:10:18 +0000
> @@ -21,20 +21,18 @@
>  
>  
>  {
> -    "name" : "DOS Contracts Model",
> -    "version" : "1.0",
> -    "author" : "DOS",
> -    "category" : "Enterprise Specific Modules",
> -    "website" : "www.dos-sl.es",
> +    "name": "DOS Contracts Model",
> +    "version": "1.0",
> +    "author": "DOS",
> +    "category": "Enterprise Specific Modules",
> +    "website": "www.dos-sl.es",
>      "description": "This module allows to manage model contracts.",
> -    "depends" : [],
> -    "init_xml" : [],
> -    "update_xml" : ['wizard/generate_contracts_view.xml',
> -					'contract_model_view.xml',
> -					'security/ir.model.access.csv',
> -					],
> +    "depends": [],
> +    "data": [
> +        "wizard/generate_contracts_view.xml",
> +        "views/contract_model_view.xml",
> +        "security/ir.model.access.csv",
> +    ],
>      "active": False,

No hace falta. Eliminar.

>      "installable": True
>  }
> -
> -
> 
> === added directory 'dos_contracts_models/models'
> === added file 'dos_contracts_models/models/__init__.py'
> --- dos_contracts_models/models/__init__.py	1970-01-01 00:00:00 +0000
> +++ dos_contracts_models/models/__init__.py	2014-06-16 14:10:18 +0000
> @@ -0,0 +1,22 @@
> +# -*- encoding: utf-8 -*-
> +##############################################################################
> +#
> +#    OpenERP, Open Source Management Solution
> +#    Copyright (C) 2008-2014 AvanzOSC S.L. (Oihane) All Rights Reserved
> +#
> +#    This program is free software: you can redistribute it and/or modify
> +#    it under the terms of the GNU Affero General Public License as published
> +#    by the Free Software Foundation, either version 3 of the License, or
> +#    (at your option) any later version.
> +#
> +#    This program is distributed in the hope that it will be useful,
> +#    but WITHOUT ANY WARRANTY; without even the implied warranty of
> +#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +#    GNU 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/.
> +#
> +##############################################################################
> +
> +from . import contract_model
> 
> === renamed file 'dos_contracts_models/contract_model.py' => 'dos_contracts_models/models/contract_model.py'
> --- dos_contracts_models/contract_model.py	2014-06-11 10:23:47 +0000
> +++ dos_contracts_models/models/contract_model.py	2014-06-16 14:10:18 +0000
> @@ -19,21 +19,15 @@
>  #
>  ##############################################################################
>  
> -from osv import osv
> -from osv import fields
> -from tools.translate import _
> -import time
> -from datetime import datetime
> -from dateutil.relativedelta import relativedelta
> -
> -class contract_model(osv.osv):
> -    
> -    _name = 'contract.model' 
> +from osv import orm, fields

from openerp.osv ...

> +
> +
> +class ContractModel(orm.Model):
> +
> +    _name = 'contract.model'
>      _description = "Models of Contracts"
>  
> -    _columns = {    
> +    _columns = {
>          'name': fields.char('Name', size=64, required=True),
>          'model': fields.binary('Model', filters='*.rtf', required=True),
>      }
> -
> -contract_model()
> 
> === added directory 'dos_contracts_models/views'
> === renamed file 'dos_contracts_models/contract_model_view.xml' => 'dos_contracts_models/views/contract_model_view.xml'
> === modified file 'dos_contracts_models/wizard/generate_contract.py'
> --- dos_contracts_models/wizard/generate_contract.py	2014-06-11 10:23:47 +0000
> +++ dos_contracts_models/wizard/generate_contract.py	2014-06-16 14:10:18 +0000
> @@ -1,6 +1,6 @@
>  # -*- coding: utf-8 -*-
>  ##############################################################################
> -#    
> +#
>  #    OpenERP, Open Source Management Solution
>  #    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
>  #
> @@ -15,56 +15,60 @@
>  #    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
>  import sys
>  
>  import base64
>  from tempfile import TemporaryFile
> -from tools.translate import _
> -from osv import osv, fields
> -
> -class generate_contract(osv.osv_memory):
> -    
> +from openerp.osv import orm, fields
> +
> +
> +class GenerateContract(orm.TransientModel):
> +
>      _name = 'generate.contract'
>  
>      _columns = {
> -    
>          'name': fields.char('Filename', 16, readonly=True),
> -        'contract_type': fields.many2one('contract.type', "Contract Type", required = True),
> -        'model': fields.many2one('contract.model', 'Model', required = True),
> -        'partner': fields.many2one('res.partner', 'Partner', required = True),
> -        'elevator': fields.many2one('res.partner', 'Elevator', required = True),
> -        'date_contract': fields.date('Date Contract', required = True),
> -        'data': fields.binary('File', readonly=True),
> -        'state': fields.selection( ( ('choose','choose'),   
> -                                         ('get','get'),         
> -                                         ) ), 
> -                
> +        'contract_type': fields.many2one('contract.type',
> +                                         "Contract Type",
> +                                         required=True),
> +        'model': fields.many2one('contract.model',
> +                                 'Model',
> +                                 required=True),
> +        'partner': fields.many2one('res.partner',
> +                                   'Partner',
> +                                   required=True),
> +        'elevator': fields.many2one('res.partner',
> +                                    'Elevator',
> +                                    required=True),
> +        'date_contract': fields.date('Date Contract',
> +                                     required=True),
> +        'data': fields.binary('File',
> +                              readonly=True),
> +        'state': fields.selection((('choose', 'choose'),
> +                                   ('get', 'get'),
> +                                   )),
>      }
> -    
> -    _defaults = { 
> +
> +    _defaults = {
>          'state': lambda *a: 'choose',

No hace falta lambda *a:

> -        
>      }
> +
>      def generate(self, cr, uid, ids, context=None):
> -        
>          if context:
> -            model = self.pool.get("contract.model").browse(cr, uid, context["model"])
> +            model = self.pool.get("contract.model").browse(

self.pool[]
Traspasar context

> +                cr, uid, context["model"])
>              import_data = model.model
>              fileobj = TemporaryFile('w+')
>              fileobj.write(base64.decodestring(import_data))
>              fileobj.seek(0)
> -            #first_line = fileobj.readline().strip().replace('"', '').replace(' ', '')
> -            
> +
>              reader = fileobj.read()
> -            
> +
>              meses = {}
> -            
>              meses['01'] = 'Enero'
>              meses['02'] = 'Febrero'
>              meses['03'] = 'Marzo'
> @@ -77,100 +81,101 @@
>              meses['10'] = 'Octubre'
>              meses['11'] = 'Noviembre'
>              meses['12'] = 'Diciembre'
> -            
> -            partner = self.pool.get("res.partner").browse(cr, uid, context['partner'])
> -            elevator = self.pool.get("res.partner").browse(cr, uid, context['elevator'])
> -            contract_type = self.pool.get("contract.type").browse(cr, uid, context['contract_type'])
> -            address = self.pool.get('res.partner.address').search(cr, uid, [('partner_id', '=', partner.id)])
> -            address = self.pool.get('res.partner.address').browse(cr, uid, address[0])
> -            bank = self.pool.get('res.partner.bank').search(cr, uid, [('partner_id', '=', partner.id)])
> -            bank = self.pool.get('res.partner.bank').browse(cr, uid, bank[0])
> -            
> +
> +            partner_obj = self.pool["res.partner"]
> +            partner = partner_obj.browse(cr, uid, context['partner'])

Traspasar context.

> +            elevator = partner_obj.browse(cr, uid, context['elevator'])

Traspasar context.

> +
> +            contract_type = self.pool["contract.type"].browse(
> +                cr, uid, context['contract_type'])

Traspasar context.

> +
> +            bank_obj = self.pool['res.partner.bank']
> +            bank = bank_obj.search(
> +                cr, uid, [('partner_id', '=', partner.id)])

Traspasar context.

> +            bank = bank_obj.browse(cr, uid, bank[0])

Traspasar context.

> +
>              reload(sys)
> -            sys.setdefaultencoding( "latin-1" )
> -            
> -            #reader = reader.encode('utf-8', 'ignore')
> -            
> +            sys.setdefaultencoding("latin-1")
> +
>              #Cliente
>              if partner.name:
>                  reader = reader.replace('[partner_name]', str(partner.name))
>              else:
>                  reader = reader.replace('[partner_name]', "")
> -            
> +
>              if partner.vat:
>                  reader = reader.replace('[partner_cif]', partner.vat)
>              else:
>                  reader = reader.replace('[partner_cif]', "")
> -                
> +
>              if partner.user_id and partner.user_id.name:
> -                reader = reader.replace('[partner_agent]', str(partner.user_id.name))
> +                reader = reader.replace('[partner_agent]',
> +                                        str(partner.user_id.name))
>              else:
>                  reader = reader.replace('[partner_agent]', "")
> -                
> -            if partner.user_id and partner.user_id.address_id and partner.user_id.address_id.partner_id and  partner.user_id.address_id.partner_id.vat:
> -                reader = reader.replace('[partner_agent_dni]', partner.user_id.address_id.partner_id.vat.vat)
> +
> +            if (partner.user_id and partner.user_id.partner_id and
> +                    partner.user_id.partner_id.vat):
> +                reader = reader.replace('[partner_agent_dni]',
> +                                        partner.user_id.partner_id.vat)
>              else:
>                  reader = reader.replace('[partner_agent_dni]', "")
> -            
> -            if address and address.street:
> -                reader = reader.replace('[partner_adress]', str(address.street))
> +
> +            if partner.street:
> +                reader = reader.replace('[partner_adress]',
> +                                        str(partner.street))
>              else:
>                  reader = reader.replace('[partner_adress]', "")
> -            
> +
>              if elevator:
>                  reader = reader.replace('[elevator_name]', str(elevator.name))
>              else:
>                  reader = reader.replace('[elevator_name]', "")
> -            
> -            if address and address.phone:
> -                reader = reader.replace('[partner_phone]', address.phone)
> +
> +            if partner.phone:
> +                reader = reader.replace('[partner_phone]', partner.phone)
>              else:
>                  reader = reader.replace('[partner_phone]', "")
> -                
> -            if address and address.email:
> -                reader = reader.replace('[partner_mail]', address.email)
> +
> +            if partner.email:
> +                reader = reader.replace('[partner_mail]', partner.email)
>              else:
>                  reader = reader.replace('[partner_mail]', "")
> -                
> +
>              if bank and bank.bank:
>                  reader = reader.replace('[partner_bank]', str(bank.bank.name))
>              else:
>                  reader = reader.replace('[partner_bank]', "")
> -                
> +
>              if bank and bank.acc_number:
> -                reader = reader.replace('[partner_bank_account]', bank.acc_number[0:4] + "/" + bank.acc_number[4:8] + "/" + bank.acc_number[8:10] +"/"+ bank.acc_number[10:])
> +                reader = reader.replace(
> +                    '[partner_bank_account]',
> +                    (bank.acc_number[0:4] + "/" +
> +                     bank.acc_number[4:8] + "/" +
> +                     bank.acc_number[8:10] + "/" +
> +                     bank.acc_number[10:]))
>              else:
>                  reader = reader.replace('[partner_bank_account]', "")
> -            
> +
>              if partner.company_id:
> -                reader = reader.replace('[company]', str(partner.company_id.name))
> +                reader = reader.replace('[company]',
> +                                        str(partner.company_id.name))
>              else:
>                  reader = reader.replace('[company]', "")
> -            
> -            fixed_price = contract_type and contract_type.fixed_price and str(contract_type.fixed_price) or "0"
> +
> +            fixed_price = (contract_type and contract_type.fixed_price and
> +                           str(contract_type.fixed_price) or "0")
>              reader = reader.replace('[mensual_cuote]', fixed_price)
> -            
> +
>              date = str(context['date_contract']).split('-')
> -            
> +
>              reader = reader.replace('[day]', date[2])
>              reader = reader.replace('[mounth]', meses[date[1]])
>              reader = reader.replace('[year]', date[0])
> -            
> -            reader = reader.replace('[company]', str(partner.company_id.name))

¿Por qué has eliminado la línea de la compañía?

> -            
> -            #reader = reader.replace('[fecha_data]', context['date_contract'])
> -            #reader = reader.replace('[tipo_contrato]', contract_type.name)
> -            
> -            values = {} 
> -            
> -            out=base64.b64encode(reader.encode('latin-1'))
> -            
> -            return self.write(cr, uid, ids, {'state':'get', 'data':out, 'name':'Contract.rtf'}, context=context)
> -
> -       
> -generate_contract()
> -       
> -
> -
> -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
> -
> +
> +            out = base64.b64encode(reader.encode('latin-1'))
> +
> +            return self.write(cr, uid, ids, {'state': 'get',
> +                                             'data': out,
> +                                             'name': 'Contract.rtf'},
> +                              context=context)
> 
> === modified file 'dos_contracts_models/wizard/generate_contracts_view.xml'
> --- dos_contracts_models/wizard/generate_contracts_view.xml	2014-06-11 10:23:47 +0000
> +++ dos_contracts_models/wizard/generate_contracts_view.xml	2014-06-16 14:10:18 +0000
> @@ -1,77 +1,91 @@
>  <?xml version="1.0" encoding="utf-8"?>
>  <openerp>
> -	<data>
> -	
> -		<record id="view_generate_contract_wizard" model="ir.ui.view">
> -			<field name="name">Generate Contract</field>
> -			<field name="model">generate.contract</field>
> -			<field name="type">form</field>
> -			<field name="arch" type="xml">
> -				<form string="Generate Contract">
> -	 				<group col="8">
> -		 				<group colspan="3">
> -	                        <newline/>
> -	                        <label colspan="4" width="220" string="Choose contract type, contract model and date contract."/>
> -	                        <label colspan="4" width="220" string="Choose partner and elevator."/>
> -	                        <label colspan="4" width="220"/>
> -	                        <label colspan="4" width="220" string="Push generate button to create new contract."/>
> -	                        
> -	                    </group>
> -						<separator orientation="vertical" rowspan="15"/>
> -						<group colspan="4">
> -							<separator string = "Contract" colspan="4" />
> -							<group states="choose" colspan="4" width="400">
> -								
> -								<field name="contract_type" colspan="4"/>
> -								<newline/>
> -								<field name="model" colspan="4"/>
> -								<newline/>
> -							</group>
> -							<group states="choose" colspan="4" width="400">
> -								
> -								<field name="date_contract" />
> -								<label colspan="2" width="180"/>
> -								<newline/>
> -							</group>
> -							<group states="choose" >
> -								<separator string = "Partner" colspan="4"/>
> -								<field name="partner" nolabel = "1" colspan="4" domain="[('tipo_cliente','=','particular')]"/>
> -								<newline/>
> -								<separator string = "Elevator"  colspan="4"/>
> -								<field name="elevator" colspan="4" nolabel = "1" domain="[('tipo_cliente','=','ascensorista')]"/>
> -								<newline/>
> -							</group>
> -							<group colspan="4" states="get" >
> -		                       <field name="name" invisible="1" colspan="4"/>
> -		                       <field name="data" nolabel="1" readonly="1" fieldname="name" colspan="4"/>   
> -		                   </group>
> -						</group>
> -						<group colspan="8" col="8" states="choose">
> -							<field invisible="1" name="state"/>
> -							<label colspan="6" width="220"/>
> -							<button special="cancel" string="Cancel" icon="gtk-cancel"/>
> -							<button name="generate" string="Generate" type="object" icon="gtk-ok" context="{'model':model, 'partner': partner, 'elevator': elevator, 'contract_type': contract_type, 'date_contract':date_contract}"/>
> -						</group>
> -						<group colspan="8" col="8" states="get">
> -	                       <label colspan="7" width="220"/>
> -	                       <button special="cancel" string="Exit" icon="gtk-cancel"/>     
> -	                   </group>
> -	            	</group>
> -				</form>
> -			</field>
> -		</record>
> -		
> -		<record id="action_generate_contract" model="ir.actions.act_window">
> -			<field name="name">Generate Contract</field>
> -			<field name="type">ir.actions.act_window</field>
> -			<field name="res_model">generate.contract</field>
> -			<field name="view_type">form</field>
> -			<field name="view_mode">form</field>
> -			<field name="view_id" ref="view_generate_contract_wizard"/>
> -			<field name="target">new</field>            
> -		</record>
> -		
> -		 
> -
> -	</data>
> +    <data>
> +        <record id="view_generate_contract_wizard" model="ir.ui.view">
> +            <field name="name">Generate Contract</field>
> +            <field name="model">generate.contract</field>
> +            <field name="arch" type="xml">
> +                <form string="Generate Contract">
> +                    <group col="8">
> +                        <group colspan="3">
> +                            <newline />
> +                            <label colspan="4" width="220"
> +                                string="Choose contract type, contract model and date contract." />
> +                            <label colspan="4" width="220"
> +                                string="Choose partner and elevator." />
> +                            <label colspan="4" width="220" />
> +                            <label colspan="4" width="220"
> +                                string="Push generate button to create new contract." />
> +                        </group>
> +                        <separator orientation="vertical"
> +                            rowspan="15" />
> +                        <group colspan="4">
> +                            <separator string="Contract"
> +                                colspan="4" />
> +                            <group states="choose" colspan="4"
> +                                width="400">
> +                                <field name="contract_type"
> +                                    colspan="4" />
> +                                <newline />
> +                                <field name="model" colspan="4" />
> +                                <newline />
> +                            </group>
> +                            <group states="choose" colspan="4"
> +                                width="400">
> +                                <field name="date_contract" />
> +                                <label colspan="2" width="180" />
> +                                <newline />
> +                            </group>
> +                            <group states="choose">
> +                                <separator string="Partner"
> +                                    colspan="4" />
> +                                <field name="partner" nolabel="1"
> +                                    colspan="4"
> +                                    domain="[('tipo_cliente','=','particular')]" />
> +                                <newline />
> +                                <separator string="Elevator"
> +                                    colspan="4" />
> +                                <field name="elevator" colspan="4"
> +                                    nolabel="1"
> +                                    domain="[('tipo_cliente','=','ascensorista')]" />
> +                                <newline />
> +                            </group>
> +                            <group colspan="4" states="get">
> +                                <field name="name" invisible="1"
> +                                    colspan="4" />
> +                                <field name="data" nolabel="1"
> +                                    readonly="1" fieldname="name"
> +                                    colspan="4" />
> +                            </group>
> +                        </group>
> +                        <group colspan="8" col="8" states="choose">
> +                            <field invisible="1" name="state" />
> +                            <label colspan="6" width="220" />
> +                            <button special="cancel" string="Cancel"
> +                                icon="gtk-cancel" />
> +                            <button name="generate" string="Generate"
> +                                type="object" icon="gtk-ok"
> +                                context="{'model':model, 'partner': partner, 'elevator': elevator, 'contract_type': contract_type, 'date_contract':date_contract}" />
> +                        </group>
> +                        <group colspan="8" col="8" states="get">
> +                            <label colspan="7" width="220" />
> +                            <button special="cancel" string="Exit"
> +                                icon="gtk-cancel" />
> +                        </group>
> +                    </group>
> +                </form>
> +            </field>
> +        </record>
> +
> +        <record id="action_generate_contract" model="ir.actions.act_window">
> +            <field name="name">Generate Contract</field>
> +            <field name="type">ir.actions.act_window</field>
> +            <field name="res_model">generate.contract</field>
> +            <field name="view_type">form</field>
> +            <field name="view_mode">form</field>
> +            <field name="view_id" ref="view_generate_contract_wizard" />
> +            <field name="target">new</field>
> +        </record>
> +
> +    </data>
>  </openerp>
> 


-- 
https://code.launchpad.net/~oihanecruce/avanzosc/dos_contracts_models/+merge/223248
Your team Avanzosc_security is subscribed to branch lp:~avanzosc-security-team/avanzosc/72horas.