Process: - Define __all__ in each python file - Replace class instance by Pool.register in __init__.register() using the same order - Remove _description - Rename _name into __name__ - Replace __init__ by __setup__ - Rename _rpc into __rpc__ and use RPC as value - Remove _reset_columns - Replace init by __register__ - Replace default_xxx method by classmethod or staticmethod (depending if it uses self/cls) - Change constraint methods into classmethod with records as input or instance method - Change on_change, on_change_with, autocomplete into instance method without values - Change getter into: - instance method that just return value - classmethod with records that return a dict with values - Change setter into classmethod with records - Rename xxx_obj into Xxx - browse takes only list of ids, for int just instanciate the Model - create return a instance - write, delete are classmethod with list of instance and return nothing - read takes only list of ids, for int use this: value, = cls.read([id]) - copy is a classmethod that takes only a list of instance and return a list of instance - Replace session from wizard method by self - Use PoolMeta for extending Model - Cache method is replaced by a Cache instance on the class - Methods to simply replace by classmethod: - search_rec_name - Methods to replace by classmethod with records: - check_xml_record - search returns list of instance Changes in Modules: - currency: - round, is_zero are instance methods - compute takes only instance - party: - address_get is instance method and return instance - stock: - products_by_location use instances as parameters - account_invoice: - PaymentTerm.compute is instance method Core: - trytond: review346003 - tryton: review376001 - proteus: review395004 List of modules: - currency: review370004 - product: review377001 - country: review378001 - ldap_connection: review379001 - dashboard: review369003 - calendar: review394001 - party: review392003 - product_measurements: review394002 - ldap_authentication: review391002 - product_cost_history: review392002 - google_maps: review389002 - party_vcarddav: review390002 - calendar_scheduling: review398001 - calendar_classification: review397003 - calendar_todo: review515003 - company: review397004 - party_siret: review393002 - carrier: review386004 - company_work_time: review397007 - stock: review445001 - account: review462001 - product_price_list: review497002 - stock_split: review526002 - stock_inventory_location: review463002 - account_product: review464002 - production: review496002 - stock_lot: review465002 - stock_forecast: review468002 - product_cost_fifo: review499002 - account_de_skr03: - - account_fr: - - timesheet: review474003 - account_be: - - stock_product_location: review470002 - stock_location_sequence: review471002 - analytic_account: review469002 - account_stock_continental: review472002 - account_invoice: review475002 - project: review477003 - sale: review491002 - account_statement: review524003 - project_revenue: review492002 - analytic_invoice: review493002 - account_invoice_line_standalone: review494002 - purchase_shipment_cost: review495002 - purchase: review506002 - project_plan: review504003 - account_invoice_history: review495003 - stock_supply: review508002 - analytic_sale: review509002 - analytic_purchase: review510002 - stock_supply_day: review510003 - sale_opportunity: review511002 - account_stock_anglo_saxon: review512002 - sale_shipment_cost: review513002 - sale_price_list: review527002 - purchase_invoice_line_standalone: review518002 - carrier_weight: review520002 - stock_supply_forecast: review521002 - carrier_percentage: review521003 - stock_supply_production: review529002