X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=lhc.py;h=6d5398e2c5238d9e7c9d7f21741f3c907db5d7d4;hb=HEAD;hp=27e14621780de9b2387312ea05258dfe0d629e4b;hpb=b55b07d787bf0c2540334c6702cfc9d57f9e6e24;p=burette%2Flhc.git diff --git a/lhc.py b/lhc.py index 27e1462..6d5398e 100644 --- a/lhc.py +++ b/lhc.py @@ -43,7 +43,7 @@ class res_partner(orm.Model): return res def _bikecoop_activity_dates_check(self, cr, uid, ids, context=None): - #TODO : check condition and return boolean accordingly + # TODO: check condition and return boolean accordingly currentDateTime = datetime.datetime.now() date = currentDateTime.date() year = date.strftime("%Y") @@ -69,6 +69,38 @@ class res_partner(orm.Model): 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', @@ -95,15 +127,18 @@ class res_partner(orm.Model): 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']), ]