From: Ludovic CHEVALIER Date: Fri, 21 Oct 2022 15:36:27 +0000 (+0200) Subject: [PYTHON][VIEW] +bikecoop start and stop dates X-Git-Tag: production~6 X-Git-Url: http://git.cyclocoop.org/?p=burette%2Flhc.git;a=commitdiff_plain;h=a1ad8111fe2717ba5fc24c1abfaabf62deaae2fc [PYTHON][VIEW] +bikecoop start and stop dates --- diff --git a/lhc.py b/lhc.py index b1fca6a..aefa162 100644 --- a/lhc.py +++ b/lhc.py @@ -26,6 +26,7 @@ from openerp.osv import orm from openerp.osv import fields from openerp.tools.translate import _ import openerp.addons.decimal_precision as dp +import datetime class res_partner(orm.Model): @@ -41,6 +42,33 @@ class res_partner(orm.Model): 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 + _columns = { 'usual_contact': fields.boolean( 'Usual contact', @@ -65,6 +93,8 @@ class res_partner(orm.Model): 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'), } _defaults = { @@ -72,6 +102,11 @@ class res_partner(orm.Model): } + _constraints = [ + (_bikecoop_activity_dates_check, 'Error: Bikecoop activity dates are inconsistent!', ['Bikecoop activity dates']), + ] + + class product_template(orm.Model): _inherit = 'product.template' diff --git a/view/membership.xml b/view/membership.xml index cac246c..a5078d0 100644 --- a/view/membership.xml +++ b/view/membership.xml @@ -11,6 +11,8 @@ + +