#
# etudesetchantiersidf module for OpenERP, Custom module for Étude et
# Chantiers île-de-France
-# Copyright (C) 2014-2015 etudesetchantiersidf
+# Copyright (C) 2014-2019 etudesetchantiersidf
# (<http://etudesetchantiersiledefrance.unarec.org/>)
#
# This file is a part of etudesetchantiersidf
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"""
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: