+ def _get_county(self, cr, uid, ids, name, args, context=None):
+ """docstring for _county_get_fnc"""
+ res = {}
+ for obj in self.browse(cr, uid, ids, context=context):
+ if obj.zip:
+ res[obj.id] = obj.zip[0:2]
+ else:
+ res[obj.id] = ''
+ return res
+
+ def _bikecoop_activity_dates_check(self, cr, uid, ids, context=None):
+ # TODO: check condition and return boolean accordingly
+ currentDateTime = datetime.datetime.now()
+ date = currentDateTime.date()
+ year = date.strftime("%Y")
+
+ min_date = 1950
+ max_date = int(year)
+
+ for partner in self.browse(cr, uid, ids, context=context):
+ if partner.bikecoop_activity_start == 0 and partner.bikecoop_activity_stop == 0:
+ return True
+ if partner.bikecoop_activity_start < 0 or partner.bikecoop_activity_stop < 0:
+ return False
+ if partner.bikecoop_activity_start == 0 and partner.bikecoop_activity_stop > 0:
+ return False
+ if partner.bikecoop_activity_stop > max_date or partner.bikecoop_activity_stop < min_date:
+ if partner.bikecoop_activity_stop != 0:
+ return False
+ if partner.bikecoop_activity_start > max_date or partner.bikecoop_activity_start < min_date:
+ if partner.bikecoop_activity_start != 0:
+ return False
+ if partner.bikecoop_activity_stop < partner.bikecoop_activity_start:
+ if partner.bikecoop_activity_stop != 0:
+ return False
+ return True
+
+ def _rna_check(self, cr, uid, ids, context=None):
+ """Check if RNA code is well formatted"""
+ for partner in self.browse(cr, uid, ids, context=context):
+ if partner.rna:
+ if len(partner.rna) != 10:
+ return False
+ if partner.rna[0] != 'W':
+ return False
+ try:
+ int(partner.rna[1:10])
+ except ValueError:
+ return False
+ return True
+ else:
+ return True
+
+
+ def _siret_check(self, cr, uid, ids, context=None):
+ """Check if SIRET code is well formatted"""
+ for partner in self.browse(cr, uid, ids, context=context):
+ if partner.siret:
+ if len(partner.siret) != 14:
+ return False
+ try:
+ int(partner.siret)
+ except ValueError:
+ return False
+ return True
+ else:
+ return True
+
+
+ _columns = {
+ 'usual_contact': fields.boolean(
+ 'Usual contact',
+ help="""This contact is a usual contact for L\'Heureux Cyclage
+ employees. This field can be used to discriminated contacts for
+ differents usages."""
+ ),
+ 'kit_sent': fields.boolean('Welcome kit sent'),
+ 'county_code': fields.function(
+ _get_county,
+ method=True,
+ string='County code',
+ type='char',
+ size=2,
+ store={
+ 'res.partner': (
+ lambda self, cr, uid, ids, c={}: ids,
+ ['zip'], 10)},
+ ),
+ 'email2': fields.char(
+ 'Secondary email',
+ size=240,
+ help="""One more email. Warning: there are no email notification
+ with this email. Only the main email can receive notifications."""),
+ 'bikecoop_activity_start': fields.integer('Bikecoop activity start year'),
+ 'bikecoop_activity_stop': fields.integer('Bikecoop activity end year'),
+ 'rna': fields.char('RNA code', size=10),
+ 'siret': fields.char('SIRET', size=14),
+ }
+
+ _defaults = {
+ 'kit_sent': lambda *a: False,
+ }
+
+ _constraints = [
+ (_bikecoop_activity_dates_check, 'Error: Bikecoop activity dates are inconsistent!', ['Bikecoop activity dates']),
+ (_rna_check, 'Error: RNA code must begin with a "W" followed by exactly 9 digits.', ['RNA']),
+ (_siret_check, 'Error: SIRET must take exactly 14 digits.', ['SIRET']),
+ ]
+
+
+class product_template(orm.Model):
+ _inherit = 'product.template'
+
+ _columns = {
+ 'standard_price': fields.float(
+ 'Cost',
+ digits_compute=dp.get_precision('Product Price'),
+ help="""Cost price of the product used for standard stock valuation
+ in accounting and used as a base price on purchase orders.",
+ groups="base.group_user,lhc.group_volunteer"""
+ ),
+ }
+
+
+class res_users(orm.Model):
+ _inherit = 'res.users'
+
+ def onchange_partner_id(self, cr, uid, ids, partner_id, login):
+ """Define user email address from partner email address"""
+ v = {}
+ partners = self.pool.get('res.partner')
+ partner = partners.browse(cr, uid, partner_id)
+ if partner.email:
+ v['email'] = partner.email
+ else:
+ v = {}
+ return {'value': v}
+
+
+class event_event(orm.Model):
+ _inherit = 'event.event'
+