Activités : vue calendrier #28

Open
youssef wants to merge 5 commits from youssef/GOLEM:youssef_activity into master
1 changed files with 35 additions and 15 deletions
Showing only changes of commit 1eef4a6e4f - Show all commits

View File

@ -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