diff --git a/golem_member/models/golem_member.py b/golem_member/models/golem_member.py
index d4069a0..a7560c6 100644
--- a/golem_member/models/golem_member.py
+++ b/golem_member/models/golem_member.py
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-from openerp import models, fields
+from openerp import models, fields, api
class ResPartner(models.Model):
@@ -41,3 +41,16 @@ class GolemMember(models.Model):
pictures_agreement = fields.Boolean('Pictures agreement?')
opt_out_sms = fields.Boolean('Out of SMS campaigns')
season_ids = fields.Many2many('golem.season', string='Seasons')
+ is_current = fields.Boolean('Current user?', store=True, default=False,
+ compute='_compute_is_current')
+
+ @api.depends('season_ids')
+ def _compute_is_current(self):
+ """ Checks if member is active for current season """
+ today = fields.Date.context_today(self)
+ for member in self:
+ is_current = False
+ for s in member.season_ids:
+ if s.date_start <= today <= s.date_end:
+ is_current = True
+ member.is_current = is_current
diff --git a/golem_member/views/golem_member_view.xml b/golem_member/views/golem_member_view.xml
index 75b6131..90d7401 100644
--- a/golem_member/views/golem_member_view.xml
+++ b/golem_member/views/golem_member_view.xml
@@ -131,6 +131,8 @@ along with this program. If not, see .
+
diff --git a/golem_season/__openerp__.py b/golem_season/__openerp__.py
index 14c2f50..8c9383c 100644
--- a/golem_season/__openerp__.py
+++ b/golem_season/__openerp__.py
@@ -27,6 +27,6 @@
'license': 'AGPL-3',
'application': False,
'installable': True,
- 'depends': ['membership'],
+ 'depends': ['golem_member'],
'data': ['views/golem_season_view.xml']
}
diff --git a/golem_season/models/golem_season.py b/golem_season/models/golem_season.py
index a6cf4bd..d1796c9 100644
--- a/golem_season/models/golem_season.py
+++ b/golem_season/models/golem_season.py
@@ -39,7 +39,6 @@ class GolemSeason(models.Model):
else:
seasons = self.env['golem.season'].search([])
for s in seasons:
- print s.name
if s.date_start < season.date_start < s.date_end:
msg = _('Start of the period is in range of an '
'existing period {}'.format(s.name))
@@ -52,3 +51,13 @@ class GolemSeason(models.Model):
msg = _('Period {} cannot be included into current '
'period'.format(s.name))
raise models.ValidationError(msg)
+
+ @api.multi
+ def write(self, values):
+ """ Extends write to recomputes all current members in case of date
+ changes """
+ date_start = values.get('date_start')
+ date_end = values.get('date_end')
+ if date_start or date_end:
+ self.env['golem.member']._compute_is_current()
+ return super(GolemSeason, self).write(values)