diff --git a/bin/addons/base/maintenance/maintenance.py b/bin/addons/base/maintenance/maintenance.py
index fa4ae85af6e..b7150a4891e 100644
--- a/bin/addons/base/maintenance/maintenance.py
+++ b/bin/addons/base/maintenance/maintenance.py
@@ -50,12 +50,20 @@ maintenance_contract_module()
class maintenance_contract(osv.osv):
_name = "maintenance.contract"
_description = "Maintenance Contract"
+
+ def _valid_get(self, cr, uid, ids, field_name, arg, context=None):
+ res = {}
+ for contract in self.browse(cr, uid, ids, context=context):
+ res[contract.id] = ("unvalid", "valid")[contract.date_stop >= time.strftime('%Y-%m-%d')]
+ return res
+
_columns = {
'name' : fields.char('Contract ID', size=256, required=True, readonly=True),
'password' : fields.char('Password', size=64, invisible=True, required=True, readonly=True),
'date_start' : fields.date('Starting Date', readonly=True),
'date_stop' : fields.date('Ending Date', readonly=True),
'module_ids' : fields.many2many('maintenance.contract.module', 'maintenance_contract_module_rel', 'contract_id', 'module_id', 'Covered Modules', readonly=True),
+ 'state' : fields.function(_valid_get, method=True, string="State", type="selection", selection=[('valid', 'Valid'),('unvalid', 'Unvalid')], readonly=True)
}
_defaults = {
'password' : lambda obj,cr,uid,context={} : '',
diff --git a/bin/addons/base/maintenance/maintenance_view.xml b/bin/addons/base/maintenance/maintenance_view.xml
index fcef2e17911..9d3100c528e 100644
--- a/bin/addons/base/maintenance/maintenance_view.xml
+++ b/bin/addons/base/maintenance/maintenance_view.xml
@@ -11,6 +11,7 @@
+
@@ -22,7 +23,8 @@