diff --git a/golem_activity/models/golem_activity.py b/golem_activity/models/golem_activity.py index dcd4220..caff6cf 100644 --- a/golem_activity/models/golem_activity.py +++ b/golem_activity/models/golem_activity.py @@ -18,6 +18,7 @@ """ GOLEM activities related models """ from odoo import models, fields, api, _ +from datetime import timedelta class GolemActivityType(models.Model): """ GOLEM Activity Type """ @@ -172,32 +173,38 @@ class GolemActivity(models.Model): ########################################## @api.multi def read(self, fields=None, load='_classic_read'): - print '________________________' - print self.ids + #print '________________________' + #print self.ids fields2 = fields and fields[:] or None select = map(lambda x: (x, self.calendar_id2real_id(x)), self.ids) print select real_events = self.browse([real_id for calendar_id, real_id in select]) + #verify that attribute of real id is working after next statement real_data = super(GolemActivity, real_events).read(fields=fields2, load=load) real_data = dict((d['id'], d) for d in real_data) - print '------------------------------------' - print real_data - print '------------------------------------' - print real_events - print '------------------------------------' + #print '------------------------------------' + #print real_data + #print '------------------------------------' + #print real_events + #print '------------------------------------' result = [] for calendar_id, real_id in select: res = real_data[real_id].copy() - print res + res['id'] = calendar_id + result.append(res) + return result + + """print res print '_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_' print calendar_id print '_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_' - print real_id + print real_id""" + #ls = self.calendar_id2real_id(calendar_id, with_date=res and res.get('duration', 0) > 0 and res.get('duration') or 1) - """ - for calendar_id, real_id in select: + + """for calendar_id, real_id in select: print calendar_id print real_id""" @@ -215,16 +222,29 @@ class GolemActivity(models.Model): return calendar_id and int(calendar_id) or calendar_id @api.multi - def real_id2calendar_id(self, record_id, date): - return '%s_%s' % (record_id, date) + def real_id2calendar_id(self, record_id): + activity = self.env['golem.activity'].browse(record_id) + dates = [] + delta = timedelta(days=7) + date = fields.Date.from_string(activity.date_start) + while date <= fields.Date.from_string(activity.date_stop): + print date + print activity.date_stop + dates.append('%s_%s' % (record_id, date)) + date += delta + return dates @api.multi def get_recurrent_ids(self): result = [] for activity in self: + print '___________________tktk______' #if not meeting.recurrency or not meeting.rrule: - result.append(activity.id) - result.append(activity.real_id2calendar_id(activity.id, activity.date_start)) + if activity.is_recurrent: + result += activity.real_id2calendar_id(activity.id) + else: + result.append(activity.id) + return result @api.model