X-Git-Url: http://git.cyclocoop.org/?p=burette%2Fetudesetchantiersidf.git;a=blobdiff_plain;f=etudesetchantiersidf.py;h=cf00b40d74eda4cc67c63f88a653dab285966b34;hp=1f401023c9a6258c96d5c0a967374dfca394ad3a;hb=HEAD;hpb=27da42444afa9508c4b12318645f651440a1d0d7 diff --git a/etudesetchantiersidf.py b/etudesetchantiersidf.py index 1f40102..b7962f6 100644 --- a/etudesetchantiersidf.py +++ b/etudesetchantiersidf.py @@ -3,7 +3,7 @@ # # etudesetchantiersidf module for OpenERP, Custom module for Étude et # Chantiers île-de-France -# Copyright (C) 2014-2015 etudesetchantiersidf +# Copyright (C) 2014-2023 etudesetchantiersidf # () # # This file is a part of etudesetchantiersidf @@ -31,15 +31,15 @@ from openerp.osv import fields class Partner(osv.osv): '''Partner''' _inherit = 'res.partner' - ''' - def _get_invoice_partner(self, cr, uid, ids, context=None): - res = super(Partner, self)._get_invoice_partner(cr, uid, ids, context=context) - return res def _get_partner_id(self, cr, uid, ids, context=None): - res = super(Partner, self)._get_partner_id(cr, uid, ids, context=context) - return res - ''' + return super(Partner, self.pool['res.partner'])._get_partner_id(cr, uid, ids, context=context) + + def _get_invoice_partner(self, cr, uid, ids, context=None): + return super(Partner, self.pool['res.partner'])._get_invoice_partner(cr, uid, ids, context=context) + + def _get_order_partner(self, cr, uid, ids, context=None): + return super(Partner, self.pool['res.partner'])._get_order_partner(cr, uid, ids, context=context) def _get_last_mb_product(self, cr, uid, ids, name, args, context=None): """Return the last membership product buy by a user""" @@ -51,29 +51,46 @@ class Partner(osv.osv): line_id = member_line_obj.search(cr, uid, [ ('partner', '=', partner_id), ('date_cancel', '=', False) - ], limit=1, order='date_from', context=context) + ], limit=1, order='date_from desc', context=context) if line_id: product_id = member_line_obj.read(cr, uid, line_id[0], [name], context=context)[name][0] res[partner.id] = {name: product_id} + else: + res[partner.id] = {name: None} #Not needed in recent version of OpenERP7 (greater than 2016-01-01) return res - _columns = { 'membership_id': fields.function( _get_last_mb_product, multi='membership_id', string='Last membership product', type='many2one', obj='product.product', - store=True, + store = { + 'account.invoice': (_get_invoice_partner, ['state'], 11), + 'pos.order': (_get_order_partner, ['state', 'partner_id'], 11), + 'membership.membership_line': (_get_partner_id, ['state'], 10), + 'res.partner': (lambda self, cr, uid, ids, c={}: ids, ['free_member'], 10) + } ), + 'newsletter': fields.boolean('Want to subsribe to the newsletter?'), } -''' -store = { - 'account.invoice': (_get_invoice_partner, ['state'], 10), - 'membership.membership_line': (_get_partner_id, ['state'], 10, ) + + _defaults = { + 'newsletter': lambda *a: True, } -''' + def _check_email(self, cr, uid, ids, context=None): + #TODO : check condition and return boolean accordingly + if context is None: + context = {} + for partner in self.browse(cr, uid, ids, context=context): + if partner.newsletter and not partner.email: + return False + return True + + _constraints = [ + (_check_email, 'Error: you can\'t subscribe to the newsletter without email!', ['newsletter']), + ] Partner() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: