[REF] Replace temp name by real name
bzr revid: jke@openerp.com-20140505154246-8vahdzf60oiksm62
This commit is contained in:
parent
4ce7e8c6dd
commit
6d00292064
|
@ -154,11 +154,11 @@ class calendar_attendee(osv.Model):
|
||||||
|
|
||||||
cal = vobject.iCalendar()
|
cal = vobject.iCalendar()
|
||||||
event = cal.add('vevent')
|
event = cal.add('vevent')
|
||||||
if not event_obj.zstart or not event_obj.zstop:
|
if not event_obj.start or not event_obj.stop:
|
||||||
raise osv.except_osv(_('Warning!'), _("First you have to specify the date of the invitation."))
|
raise osv.except_osv(_('Warning!'), _("First you have to specify the date of the invitation."))
|
||||||
event.add('created').value = ics_datetime(time.strftime(DEFAULT_SERVER_DATETIME_FORMAT))
|
event.add('created').value = ics_datetime(time.strftime(DEFAULT_SERVER_DATETIME_FORMAT))
|
||||||
event.add('dtstart').value = ics_datetime(event_obj.zstart, event_obj.allday)
|
event.add('dtstart').value = ics_datetime(event_obj.start, event_obj.allday)
|
||||||
event.add('dtend').value = ics_datetime(event_obj.zstop, event_obj.allday)
|
event.add('dtend').value = ics_datetime(event_obj.stop, event_obj.allday)
|
||||||
event.add('summary').value = event_obj.name
|
event.add('summary').value = event_obj.name
|
||||||
if event_obj.description:
|
if event_obj.description:
|
||||||
event.add('description').value = event_obj.description
|
event.add('description').value = event_obj.description
|
||||||
|
@ -340,15 +340,15 @@ class calendar_alarm_manager(osv.AbstractModel):
|
||||||
base_request = """
|
base_request = """
|
||||||
SELECT
|
SELECT
|
||||||
cal.id,
|
cal.id,
|
||||||
cal.zstart - interval '1' minute * calcul_delta.max_delta AS first_alarm,
|
cal.start - interval '1' minute * calcul_delta.max_delta AS first_alarm,
|
||||||
CASE
|
CASE
|
||||||
WHEN cal.recurrency THEN cal.zfinal_date - interval '1' minute * calcul_delta.min_delta
|
WHEN cal.recurrency THEN cal.final_date - interval '1' minute * calcul_delta.min_delta
|
||||||
ELSE cal.zstop - interval '1' minute * calcul_delta.min_delta
|
ELSE cal.stop - interval '1' minute * calcul_delta.min_delta
|
||||||
END as last_alarm,
|
END as last_alarm,
|
||||||
cal.zstart as first_event_date,
|
cal.start as first_event_date,
|
||||||
CASE
|
CASE
|
||||||
WHEN cal.recurrency THEN cal.zfinal_date
|
WHEN cal.recurrency THEN cal.final_date
|
||||||
ELSE cal.zstop
|
ELSE cal.stop
|
||||||
END as last_event_date,
|
END as last_event_date,
|
||||||
calcul_delta.min_delta,
|
calcul_delta.min_delta,
|
||||||
calcul_delta.max_delta,
|
calcul_delta.max_delta,
|
||||||
|
@ -472,7 +472,7 @@ class calendar_alarm_manager(osv.AbstractModel):
|
||||||
if bFound and not LastFound: # if the precedent event had an alarm but not this one, we can stop the search for this event
|
if bFound and not LastFound: # if the precedent event had an alarm but not this one, we can stop the search for this event
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
in_date_format = datetime.strptime(curEvent.zstart, DEFAULT_SERVER_DATETIME_FORMAT)
|
in_date_format = datetime.strptime(curEvent.start, DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
LastFound = self.do_check_alarm_for_one_date(cr, uid, in_date_format, curEvent, max_delta, cron_interval, notif=False, context=context)
|
LastFound = self.do_check_alarm_for_one_date(cr, uid, in_date_format, curEvent, max_delta, cron_interval, notif=False, context=context)
|
||||||
if LastFound:
|
if LastFound:
|
||||||
for alert in LastFound:
|
for alert in LastFound:
|
||||||
|
@ -505,7 +505,7 @@ class calendar_alarm_manager(osv.AbstractModel):
|
||||||
if bFound and not LastFound: # if the precedent event had alarm but not this one, we can stop the search fot this event
|
if bFound and not LastFound: # if the precedent event had alarm but not this one, we can stop the search fot this event
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
in_date_format = datetime.strptime(curEvent.zstart, DEFAULT_SERVER_DATETIME_FORMAT)
|
in_date_format = datetime.strptime(curEvent.start, DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
LastFound = self.do_check_alarm_for_one_date(cr, uid, in_date_format, curEvent, max_delta, ajax_check_every_seconds, partner.calendar_last_notif_ack, mail=False, context=context)
|
LastFound = self.do_check_alarm_for_one_date(cr, uid, in_date_format, curEvent, max_delta, ajax_check_every_seconds, partner.calendar_last_notif_ack, mail=False, context=context)
|
||||||
if LastFound:
|
if LastFound:
|
||||||
for alert in LastFound:
|
for alert in LastFound:
|
||||||
|
@ -666,7 +666,7 @@ class calendar_event(osv.Model):
|
||||||
return val.astimezone(timezone)
|
return val.astimezone(timezone)
|
||||||
|
|
||||||
timezone = pytz.timezone(context.get('tz') or 'UTC')
|
timezone = pytz.timezone(context.get('tz') or 'UTC')
|
||||||
startdate = pytz.UTC.localize(datetime.strptime(event.zstart, DEFAULT_SERVER_DATETIME_FORMAT)) # Add "+hh:mm" timezone
|
startdate = pytz.UTC.localize(datetime.strptime(event.start, DEFAULT_SERVER_DATETIME_FORMAT)) # Add "+hh:mm" timezone
|
||||||
if not startdate:
|
if not startdate:
|
||||||
startdate = datetime.now()
|
startdate = datetime.now()
|
||||||
|
|
||||||
|
@ -681,14 +681,14 @@ class calendar_event(osv.Model):
|
||||||
return [d.astimezone(pytz.UTC) for d in rset1]
|
return [d.astimezone(pytz.UTC) for d in rset1]
|
||||||
|
|
||||||
def _get_recurrency_end_date(self, cr, uid, id, context=None):
|
def _get_recurrency_end_date(self, cr, uid, id, context=None):
|
||||||
data = self.read(cr, uid, id, ['zfinal_date', 'recurrency', 'rrule_type', 'count', 'end_type', 'zstop'], context=context)
|
data = self.read(cr, uid, id, ['final_date', 'recurrency', 'rrule_type', 'count', 'end_type', 'stop'], context=context)
|
||||||
|
|
||||||
if not data.get('recurrency'):
|
if not data.get('recurrency'):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
end_type = data.get('end_type')
|
end_type = data.get('end_type')
|
||||||
final_date = data.get('zfinal_date')
|
final_date = data.get('final_date')
|
||||||
if end_type == 'count' and all(data.get(key) for key in ['count', 'rrule_type', 'zstop']):
|
if end_type == 'count' and all(data.get(key) for key in ['count', 'rrule_type', 'stop']):
|
||||||
count = data['count'] + 1
|
count = data['count'] + 1
|
||||||
delay, mult = {
|
delay, mult = {
|
||||||
'daily': ('days', 1),
|
'daily': ('days', 1),
|
||||||
|
@ -697,7 +697,7 @@ class calendar_event(osv.Model):
|
||||||
'yearly': ('years', 1),
|
'yearly': ('years', 1),
|
||||||
}[data['rrule_type']]
|
}[data['rrule_type']]
|
||||||
|
|
||||||
deadline = datetime.strptime(data['zstop'], tools.DEFAULT_SERVER_DATETIME_FORMAT)
|
deadline = datetime.strptime(data['stop'], tools.DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
return deadline + relativedelta(**{delay: count * mult})
|
return deadline + relativedelta(**{delay: count * mult})
|
||||||
return final_date
|
return final_date
|
||||||
|
|
||||||
|
@ -728,9 +728,9 @@ class calendar_event(osv.Model):
|
||||||
if tz:
|
if tz:
|
||||||
context["tz"] = tz
|
context["tz"] = tz
|
||||||
ev = self.browse(cr, uid, ids, context=context)[0]
|
ev = self.browse(cr, uid, ids, context=context)[0]
|
||||||
return self._get_display_time(cr, uid, ev.zstart, ev.zstop, ev.duration, ev.allday, context=context)
|
return self._get_display_time(cr, uid, ev.start, ev.stop, ev.duration, ev.allday, context=context)
|
||||||
|
|
||||||
def _get_display_time(self, cr, uid, zstart, zstop, zduration, zallday, context=None):
|
def _get_display_time(self, cr, uid, start, stop, zduration, zallday, context=None):
|
||||||
"""
|
"""
|
||||||
Return date and time (from to from) based on duration with timezone in string :
|
Return date and time (from to from) based on duration with timezone in string :
|
||||||
eg.
|
eg.
|
||||||
|
@ -746,8 +746,8 @@ class calendar_event(osv.Model):
|
||||||
tz = context['tz']
|
tz = context['tz']
|
||||||
|
|
||||||
format_date, format_time = self.get_date_formats(cr, uid, context=context)
|
format_date, format_time = self.get_date_formats(cr, uid, context=context)
|
||||||
date = fields.datetime.context_timestamp(cr, uid, datetime.strptime(zstart, tools.DEFAULT_SERVER_DATETIME_FORMAT), context=context)
|
date = fields.datetime.context_timestamp(cr, uid, datetime.strptime(start, tools.DEFAULT_SERVER_DATETIME_FORMAT), context=context)
|
||||||
date_deadline = fields.datetime.context_timestamp(cr, uid, datetime.strptime(zstop, tools.DEFAULT_SERVER_DATETIME_FORMAT), context=context)
|
date_deadline = fields.datetime.context_timestamp(cr, uid, datetime.strptime(stop, tools.DEFAULT_SERVER_DATETIME_FORMAT), context=context)
|
||||||
event_date = date.strftime(format_date)
|
event_date = date.strftime(format_date)
|
||||||
display_time = date.strftime(format_time)
|
display_time = date.strftime(format_time)
|
||||||
|
|
||||||
|
@ -772,13 +772,13 @@ class calendar_event(osv.Model):
|
||||||
elif field == 'attendee_status':
|
elif field == 'attendee_status':
|
||||||
res[meeting_id][field] = attendee.state if attendee else 'needsAction'
|
res[meeting_id][field] = attendee.state if attendee else 'needsAction'
|
||||||
elif field == 'display_time':
|
elif field == 'display_time':
|
||||||
res[meeting_id][field] = self._get_display_time(cr, uid, meeting.zstart, meeting.zstop, meeting.duration, meeting.allday, context=context)
|
res[meeting_id][field] = self._get_display_time(cr, uid, meeting.start, meeting.stop, meeting.duration, meeting.allday, context=context)
|
||||||
elif field == "display_start":
|
elif field == "display_start":
|
||||||
res[meeting_id][field] = meeting.zstart_date if meeting.allday else meeting.zstart_datetime
|
res[meeting_id][field] = meeting.start_date if meeting.allday else meeting.start_datetime
|
||||||
elif field == 'zstart':
|
elif field == 'start':
|
||||||
res[meeting_id][field] = meeting.zstart_date if meeting.allday else meeting.zstart_datetime
|
res[meeting_id][field] = meeting.start_date if meeting.allday else meeting.start_datetime
|
||||||
elif field == 'zstop':
|
elif field == 'stop':
|
||||||
res[meeting_id][field] = meeting.zstop_date if meeting.allday else meeting.zstop_datetime
|
res[meeting_id][field] = meeting.stop_date if meeting.allday else meeting.stop_datetime
|
||||||
|
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
@ -800,7 +800,7 @@ class calendar_event(osv.Model):
|
||||||
if data.count and data.count <= 0:
|
if data.count and data.count <= 0:
|
||||||
raise osv.except_osv(_('Warning!'), _('Count cannot be negative or 0.'))
|
raise osv.except_osv(_('Warning!'), _('Count cannot be negative or 0.'))
|
||||||
|
|
||||||
data = self.read(cr, uid, id, ['id', 'byday', 'recurrency', 'month_list', 'zfinal_date', 'rrule_type', 'month_by', 'interval', 'count', 'end_type', 'mo', 'tu', 'we', 'th', 'fr', 'sa', 'su', 'day', 'week_list'], context=context)
|
data = self.read(cr, uid, id, ['id', 'byday', 'recurrency', 'month_list', 'final_date', 'rrule_type', 'month_by', 'interval', 'count', 'end_type', 'mo', 'tu', 'we', 'th', 'fr', 'sa', 'su', 'day', 'week_list'], context=context)
|
||||||
event = data['id']
|
event = data['id']
|
||||||
if data['recurrency']:
|
if data['recurrency']:
|
||||||
result[event] = self.compute_rule_string(data)
|
result[event] = self.compute_rule_string(data)
|
||||||
|
@ -819,7 +819,7 @@ class calendar_event(osv.Model):
|
||||||
if field_value:
|
if field_value:
|
||||||
data['recurrency'] = True
|
data['recurrency'] = True
|
||||||
for event in self.browse(cr, uid, ids, context=context):
|
for event in self.browse(cr, uid, ids, context=context):
|
||||||
rdate = event.zstart
|
rdate = event.start
|
||||||
update_data = self._parse_rrule(field_value, dict(data), rdate)
|
update_data = self._parse_rrule(field_value, dict(data), rdate)
|
||||||
data.update(update_data)
|
data.update(update_data)
|
||||||
self.write(cr, uid, ids, data, context=context)
|
self.write(cr, uid, ids, data, context=context)
|
||||||
|
@ -830,8 +830,8 @@ class calendar_event(osv.Model):
|
||||||
if context is None:
|
if context is None:
|
||||||
context = {}
|
context = {}
|
||||||
|
|
||||||
if values.get('zstart_datetime') or values.get('zstart_date') or values.get('zstart') \
|
if values.get('start_datetime') or values.get('start_date') or values.get('start') \
|
||||||
or values.get('zstop_datetime') or values.get('zstop_date') or values.get('zstop'):
|
or values.get('stop_datetime') or values.get('stop_date') or values.get('stop'):
|
||||||
allday = values.get("allday", None)
|
allday = values.get("allday", None)
|
||||||
|
|
||||||
if allday is None:
|
if allday is None:
|
||||||
|
@ -845,7 +845,7 @@ class calendar_event(osv.Model):
|
||||||
key = "date" if allday else "datetime"
|
key = "date" if allday else "datetime"
|
||||||
notkey = "datetime" if allday else "date"
|
notkey = "datetime" if allday else "date"
|
||||||
|
|
||||||
for fld in ('zstart', 'zstop'):
|
for fld in ('start', 'stop'):
|
||||||
if values.get('%s_%s' % (fld, key)) or values.get(fld):
|
if values.get('%s_%s' % (fld, key)) or values.get(fld):
|
||||||
values['%s_%s' % (fld, key)] = values.get('%s_%s' % (fld, key)) or values.get(fld)
|
values['%s_%s' % (fld, key)] = values.get('%s_%s' % (fld, key)) or values.get(fld)
|
||||||
values['%s_%s' % (fld, notkey)] = None
|
values['%s_%s' % (fld, notkey)] = None
|
||||||
|
@ -853,10 +853,10 @@ class calendar_event(osv.Model):
|
||||||
values[fld] = values['%s_%s' % (fld, key)]
|
values[fld] = values['%s_%s' % (fld, key)]
|
||||||
|
|
||||||
diff = False
|
diff = False
|
||||||
if allday and values.get('zstop_date') and values.get('zstart_date'):
|
if allday and values.get('stop_date') and values.get('start_date'):
|
||||||
diff = datetime.strptime(values['zstop_date'].split(' ')[0], DEFAULT_SERVER_DATE_FORMAT) - datetime.strptime(values['zstart_date'].split(' ')[0], DEFAULT_SERVER_DATE_FORMAT)
|
diff = datetime.strptime(values['stop_date'].split(' ')[0], DEFAULT_SERVER_DATE_FORMAT) - datetime.strptime(values['start_date'].split(' ')[0], DEFAULT_SERVER_DATE_FORMAT)
|
||||||
elif values.get('zstop_datetime') and values.get('zstart_datetime'):
|
elif values.get('stop_datetime') and values.get('start_datetime'):
|
||||||
diff = datetime.strptime(values['zstop_datetime'].split('.')[0], DEFAULT_SERVER_DATETIME_FORMAT) - datetime.strptime(values['zstart_datetime'].split('.')[0], DEFAULT_SERVER_DATETIME_FORMAT)
|
diff = datetime.strptime(values['stop_datetime'].split('.')[0], DEFAULT_SERVER_DATETIME_FORMAT) - datetime.strptime(values['start_datetime'].split('.')[0], DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
if diff:
|
if diff:
|
||||||
duration = float(diff.days) * 24 + (float(diff.seconds) / 3600)
|
duration = float(diff.days) * 24 + (float(diff.seconds) / 3600)
|
||||||
values['duration'] = round(duration, 2)
|
values['duration'] = round(duration, 2)
|
||||||
|
@ -865,7 +865,7 @@ class calendar_event(osv.Model):
|
||||||
'location': {
|
'location': {
|
||||||
'calendar.subtype_invitation': lambda self, cr, uid, obj, ctx=None: True,
|
'calendar.subtype_invitation': lambda self, cr, uid, obj, ctx=None: True,
|
||||||
},
|
},
|
||||||
'zstart': {
|
'start': {
|
||||||
'calendar.subtype_invitation': lambda self, cr, uid, obj, ctx=None: True,
|
'calendar.subtype_invitation': lambda self, cr, uid, obj, ctx=None: True,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -878,12 +878,12 @@ class calendar_event(osv.Model):
|
||||||
'display_time': fields.function(_compute, string='Event Time', type="char", multi='attendee'),
|
'display_time': fields.function(_compute, string='Event Time', type="char", multi='attendee'),
|
||||||
'display_start': fields.function(_compute, string='Date', type="char", multi='display_start', store=True),
|
'display_start': fields.function(_compute, string='Date', type="char", multi='display_start', store=True),
|
||||||
'allday': fields.boolean('All Day', states={'done': [('readonly', True)]}),
|
'allday': fields.boolean('All Day', states={'done': [('readonly', True)]}),
|
||||||
'zstart': fields.function(_compute, string='Calculated start', type="datetime", multi='zstart', store=True, required=True),
|
'start': fields.function(_compute, string='Calculated start', type="datetime", multi='start', store=True, required=True),
|
||||||
'zstop': fields.function(_compute, string='Calculated stop', type="datetime", multi='zstop', store=True, required=True),
|
'stop': fields.function(_compute, string='Calculated stop', type="datetime", multi='stop', store=True, required=True),
|
||||||
'zstart_date': fields.date('Start Date', states={'done': [('readonly', True)]}, track_visibility='onchange'),
|
'start_date': fields.date('Start Date', states={'done': [('readonly', True)]}, track_visibility='onchange'),
|
||||||
'zstart_datetime': fields.datetime('Start DateTime', states={'done': [('readonly', True)]}, track_visibility='onchange'),
|
'start_datetime': fields.datetime('Start DateTime', states={'done': [('readonly', True)]}, track_visibility='onchange'),
|
||||||
'zstop_date': fields.date('End Date', states={'done': [('readonly', True)]}, track_visibility='onchange'),
|
'stop_date': fields.date('End Date', states={'done': [('readonly', True)]}, track_visibility='onchange'),
|
||||||
'zstop_datetime': fields.datetime('End Datetime', states={'done': [('readonly', True)]}, track_visibility='onchange'), # old date_deadline
|
'stop_datetime': fields.datetime('End Datetime', states={'done': [('readonly', True)]}, track_visibility='onchange'), # old date_deadline
|
||||||
'duration': fields.float('Duration', states={'done': [('readonly', True)]}),
|
'duration': fields.float('Duration', states={'done': [('readonly', True)]}),
|
||||||
'description': fields.text('Description', states={'done': [('readonly', True)]}),
|
'description': fields.text('Description', states={'done': [('readonly', True)]}),
|
||||||
'class': fields.selection([('public', 'Public'), ('private', 'Private'), ('confidential', 'Public for Employees')], 'Privacy', states={'done': [('readonly', True)]}),
|
'class': fields.selection([('public', 'Public'), ('private', 'Private'), ('confidential', 'Public for Employees')], 'Privacy', states={'done': [('readonly', True)]}),
|
||||||
|
@ -910,7 +910,7 @@ class calendar_event(osv.Model):
|
||||||
'day': fields.integer('Date of month'),
|
'day': fields.integer('Date of month'),
|
||||||
'week_list': fields.selection([('MO', 'Monday'), ('TU', 'Tuesday'), ('WE', 'Wednesday'), ('TH', 'Thursday'), ('FR', 'Friday'), ('SA', 'Saturday'), ('SU', 'Sunday')], 'Weekday'),
|
'week_list': fields.selection([('MO', 'Monday'), ('TU', 'Tuesday'), ('WE', 'Wednesday'), ('TH', 'Thursday'), ('FR', 'Friday'), ('SA', 'Saturday'), ('SU', 'Sunday')], 'Weekday'),
|
||||||
'byday': fields.selection([('1', 'First'), ('2', 'Second'), ('3', 'Third'), ('4', 'Fourth'), ('5', 'Fifth'), ('-1', 'Last')], 'By day'),
|
'byday': fields.selection([('1', 'First'), ('2', 'Second'), ('3', 'Third'), ('4', 'Fourth'), ('5', 'Fifth'), ('-1', 'Last')], 'By day'),
|
||||||
'zfinal_date': fields.date('Repeat Until'), # The last event of a recurrence
|
'final_date': fields.date('Repeat Until'), # The last event of a recurrence
|
||||||
|
|
||||||
'user_id': fields.many2one('res.users', 'Responsible', states={'done': [('readonly', True)]}),
|
'user_id': fields.many2one('res.users', 'Responsible', states={'done': [('readonly', True)]}),
|
||||||
'color_partner_id': fields.related('user_id', 'partner_id', 'id', type="integer", string="colorize", store=False), # Color of creator
|
'color_partner_id': fields.related('user_id', 'partner_id', 'id', type="integer", string="colorize", store=False), # Color of creator
|
||||||
|
@ -937,12 +937,12 @@ class calendar_event(osv.Model):
|
||||||
|
|
||||||
def _check_closing_date(self, cr, uid, ids, context=None):
|
def _check_closing_date(self, cr, uid, ids, context=None):
|
||||||
for event in self.browse(cr, uid, ids, context=context):
|
for event in self.browse(cr, uid, ids, context=context):
|
||||||
if event.zstop < event.zstart:
|
if event.stop < event.start:
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
_constraints = [
|
_constraints = [
|
||||||
(_check_closing_date, 'Error ! End date cannot be set before start date.', ['zstart', 'zstop'])
|
(_check_closing_date, 'Error ! End date cannot be set before start date.', ['start', 'stop'])
|
||||||
]
|
]
|
||||||
|
|
||||||
def onchange_allday(self, cr, uid, ids, start=False, end=False, starttime=False, endtime=False, startdatetime=False, enddatetime=False, checkallday=False, context=None):
|
def onchange_allday(self, cr, uid, ids, start=False, end=False, starttime=False, endtime=False, startdatetime=False, enddatetime=False, checkallday=False, context=None):
|
||||||
|
@ -956,12 +956,12 @@ class calendar_event(osv.Model):
|
||||||
startdatetime = startdatetime or start
|
startdatetime = startdatetime or start
|
||||||
if startdatetime:
|
if startdatetime:
|
||||||
start = datetime.strptime(startdatetime, DEFAULT_SERVER_DATETIME_FORMAT)
|
start = datetime.strptime(startdatetime, DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
value['zstart_date'] = datetime.strftime(start, DEFAULT_SERVER_DATE_FORMAT)
|
value['start_date'] = datetime.strftime(start, DEFAULT_SERVER_DATE_FORMAT)
|
||||||
|
|
||||||
enddatetime = enddatetime or end
|
enddatetime = enddatetime or end
|
||||||
if enddatetime:
|
if enddatetime:
|
||||||
end = datetime.strptime(enddatetime, DEFAULT_SERVER_DATETIME_FORMAT)
|
end = datetime.strptime(enddatetime, DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
value['zstop_date'] = datetime.strftime(end, DEFAULT_SERVER_DATE_FORMAT)
|
value['stop_date'] = datetime.strftime(end, DEFAULT_SERVER_DATE_FORMAT)
|
||||||
else: # from date to datetime
|
else: # from date to datetime
|
||||||
user = self.pool['res.users'].browse(cr, uid, uid, context)
|
user = self.pool['res.users'].browse(cr, uid, uid, context)
|
||||||
tz = pytz.timezone(user.tz) if user.tz else pytz.utc
|
tz = pytz.timezone(user.tz) if user.tz else pytz.utc
|
||||||
|
@ -971,17 +971,17 @@ class calendar_event(osv.Model):
|
||||||
startdate = tz.localize(start) # Add "+hh:mm" timezone
|
startdate = tz.localize(start) # Add "+hh:mm" timezone
|
||||||
startdate = startdate.replace(hour=8) # Set 8 AM in localtime
|
startdate = startdate.replace(hour=8) # Set 8 AM in localtime
|
||||||
startdate = startdate.astimezone(pytz.utc) # Convert to UTC
|
startdate = startdate.astimezone(pytz.utc) # Convert to UTC
|
||||||
value['zstart_datetime'] = datetime.strftime(startdate, DEFAULT_SERVER_DATETIME_FORMAT)
|
value['start_datetime'] = datetime.strftime(startdate, DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
elif start:
|
elif start:
|
||||||
value['zstart_datetime'] = start
|
value['start_datetime'] = start
|
||||||
|
|
||||||
if endtime:
|
if endtime:
|
||||||
end = datetime.strptime(endtime.split(' ')[0], DEFAULT_SERVER_DATE_FORMAT)
|
end = datetime.strptime(endtime.split(' ')[0], DEFAULT_SERVER_DATE_FORMAT)
|
||||||
enddate = tz.localize(end).replace(hour=18).astimezone(pytz.utc)
|
enddate = tz.localize(end).replace(hour=18).astimezone(pytz.utc)
|
||||||
|
|
||||||
value['zstop_datetime'] = datetime.strftime(enddate, DEFAULT_SERVER_DATETIME_FORMAT)
|
value['stop_datetime'] = datetime.strftime(enddate, DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
elif end:
|
elif end:
|
||||||
value['zstop_datetime'] = end
|
value['stop_datetime'] = end
|
||||||
|
|
||||||
return {'value': value}
|
return {'value': value}
|
||||||
|
|
||||||
|
@ -1000,23 +1000,23 @@ class calendar_event(osv.Model):
|
||||||
if allday:
|
if allday:
|
||||||
if fromtype == 'start':
|
if fromtype == 'start':
|
||||||
start = datetime.strptime(start, DEFAULT_SERVER_DATE_FORMAT)
|
start = datetime.strptime(start, DEFAULT_SERVER_DATE_FORMAT)
|
||||||
value['zstart_datetime'] = datetime.strftime(start, DEFAULT_SERVER_DATETIME_FORMAT)
|
value['start_datetime'] = datetime.strftime(start, DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
value['zstart'] = datetime.strftime(start, DEFAULT_SERVER_DATETIME_FORMAT)
|
value['start'] = datetime.strftime(start, DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
|
|
||||||
if fromtype == 'stop':
|
if fromtype == 'stop':
|
||||||
end = datetime.strptime(end, DEFAULT_SERVER_DATE_FORMAT)
|
end = datetime.strptime(end, DEFAULT_SERVER_DATE_FORMAT)
|
||||||
value['zstop_datetime'] = datetime.strftime(end, DEFAULT_SERVER_DATETIME_FORMAT)
|
value['stop_datetime'] = datetime.strftime(end, DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
value['zstop'] = datetime.strftime(end, DEFAULT_SERVER_DATETIME_FORMAT)
|
value['stop'] = datetime.strftime(end, DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
if fromtype == 'start':
|
if fromtype == 'start':
|
||||||
start = datetime.strptime(start, DEFAULT_SERVER_DATETIME_FORMAT)
|
start = datetime.strptime(start, DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
value['zstart_date'] = datetime.strftime(start, DEFAULT_SERVER_DATE_FORMAT)
|
value['start_date'] = datetime.strftime(start, DEFAULT_SERVER_DATE_FORMAT)
|
||||||
value['zstart'] = datetime.strftime(start, DEFAULT_SERVER_DATETIME_FORMAT)
|
value['start'] = datetime.strftime(start, DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
if fromtype == 'stop':
|
if fromtype == 'stop':
|
||||||
end = datetime.strptime(end, DEFAULT_SERVER_DATETIME_FORMAT)
|
end = datetime.strptime(end, DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
value['zstop_date'] = datetime.strftime(end, DEFAULT_SERVER_DATE_FORMAT)
|
value['stop_date'] = datetime.strftime(end, DEFAULT_SERVER_DATE_FORMAT)
|
||||||
value['zstop'] = datetime.strftime(end, DEFAULT_SERVER_DATETIME_FORMAT)
|
value['stop'] = datetime.strftime(end, DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
|
|
||||||
return {'value': value}
|
return {'value': value}
|
||||||
|
|
||||||
|
@ -1136,7 +1136,7 @@ class calendar_event(osv.Model):
|
||||||
pile = []
|
pile = []
|
||||||
ok = True
|
ok = True
|
||||||
for arg in domain:
|
for arg in domain:
|
||||||
if str(arg[0]) in ('zstart', 'zstop', 'zfinal_date'):
|
if str(arg[0]) in ('start', 'stop', 'final_date'):
|
||||||
if (arg[1] == '='):
|
if (arg[1] == '='):
|
||||||
ok = r_date.strftime('%Y-%m-%d') == arg[2]
|
ok = r_date.strftime('%Y-%m-%d') == arg[2]
|
||||||
if (arg[1] == '>'):
|
if (arg[1] == '>'):
|
||||||
|
@ -1215,8 +1215,8 @@ class calendar_event(osv.Model):
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
def get_end_date(data):
|
def get_end_date(data):
|
||||||
if data.get('zfinal_date'):
|
if data.get('final_date'):
|
||||||
data['end_date_new'] = ''.join((re.compile('\d')).findall(data.get('zfinal_date'))) + 'T235959Z'
|
data['end_date_new'] = ''.join((re.compile('\d')).findall(data.get('final_date'))) + 'T235959Z'
|
||||||
|
|
||||||
return (data.get('end_type') == 'count' and (';COUNT=' + str(data.get('count'))) or '') +\
|
return (data.get('end_type') == 'count' and (';COUNT=' + str(data.get('count'))) or '') +\
|
||||||
((data.get('end_date_new') and data.get('end_type') == 'end_date' and (';UNTIL=' + data.get('end_date_new'))) or '')
|
((data.get('end_date_new') and data.get('end_type') == 'end_date' and (';UNTIL=' + data.get('end_date_new'))) or '')
|
||||||
|
@ -1233,7 +1233,7 @@ class calendar_event(osv.Model):
|
||||||
return {
|
return {
|
||||||
'byday': False,
|
'byday': False,
|
||||||
'recurrency': False,
|
'recurrency': False,
|
||||||
'zfinal_date': False,
|
'final_date': False,
|
||||||
'rrule_type': False,
|
'rrule_type': False,
|
||||||
'month_by': False,
|
'month_by': False,
|
||||||
'interval': 0,
|
'interval': 0,
|
||||||
|
@ -1259,7 +1259,7 @@ class calendar_event(osv.Model):
|
||||||
data['rrule_type'] = rrule_type[r._freq]
|
data['rrule_type'] = rrule_type[r._freq]
|
||||||
data['count'] = r._count
|
data['count'] = r._count
|
||||||
data['interval'] = r._interval
|
data['interval'] = r._interval
|
||||||
data['zfinal_date'] = r._until and r._until.strftime(DEFAULT_SERVER_DATETIME_FORMAT)
|
data['final_date'] = r._until and r._until.strftime(DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
#repeat weekly
|
#repeat weekly
|
||||||
if r._byweekday:
|
if r._byweekday:
|
||||||
for i in xrange(0, 7):
|
for i in xrange(0, 7):
|
||||||
|
@ -1285,12 +1285,12 @@ class calendar_event(osv.Model):
|
||||||
#FIXEME handle forever case
|
#FIXEME handle forever case
|
||||||
#end of recurrence
|
#end of recurrence
|
||||||
#in case of repeat for ever that we do not support right now
|
#in case of repeat for ever that we do not support right now
|
||||||
if not (data.get('count') or data.get('zfinal_date')):
|
if not (data.get('count') or data.get('final_date')):
|
||||||
data['count'] = 100
|
data['count'] = 100
|
||||||
if data.get('count'):
|
if data.get('count'):
|
||||||
data['end_type'] = 'count'
|
data['end_type'] = 'count'
|
||||||
else:
|
else:
|
||||||
data['end_type'] = 'zfinal_date'
|
data['end_type'] = 'final_date'
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def message_get_subscription_data(self, cr, uid, ids, user_pid=None, context=None):
|
def message_get_subscription_data(self, cr, uid, ids, user_pid=None, context=None):
|
||||||
|
@ -1334,8 +1334,8 @@ class calendar_event(osv.Model):
|
||||||
# shows events of the day for this user
|
# shows events of the day for this user
|
||||||
def _needaction_domain_get(self, cr, uid, context=None):
|
def _needaction_domain_get(self, cr, uid, context=None):
|
||||||
return [
|
return [
|
||||||
('zstop', '<=', time.strftime(DEFAULT_SERVER_DATE_FORMAT + ' 23:59:59')),
|
('stop', '<=', time.strftime(DEFAULT_SERVER_DATE_FORMAT + ' 23:59:59')),
|
||||||
('zstart', '>=', time.strftime(DEFAULT_SERVER_DATE_FORMAT + ' 00:00:00')),
|
('start', '>=', time.strftime(DEFAULT_SERVER_DATE_FORMAT + ' 00:00:00')),
|
||||||
('user_id', '=', uid),
|
('user_id', '=', uid),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -1401,9 +1401,9 @@ class calendar_event(osv.Model):
|
||||||
for arg in args:
|
for arg in args:
|
||||||
new_arg = arg
|
new_arg = arg
|
||||||
|
|
||||||
if arg[0] in ('zstart_date', 'zstart_datetime', 'zstart',) and arg[1] == ">=":
|
if arg[0] in ('start_date', 'start_datetime', 'start',) and arg[1] == ">=":
|
||||||
if context.get('virtual_id', True):
|
if context.get('virtual_id', True):
|
||||||
new_args += ['|', '&', ('recurrency', '=', 1), ('zfinal_date', arg[1], arg[2])]
|
new_args += ['|', '&', ('recurrency', '=', 1), ('final_date', arg[1], arg[2])]
|
||||||
elif arg[0] == "id":
|
elif arg[0] == "id":
|
||||||
new_id = get_real_ids(arg[2])
|
new_id = get_real_ids(arg[2])
|
||||||
new_arg = (arg[0], arg[1], new_id)
|
new_arg = (arg[0], arg[1], new_id)
|
||||||
|
@ -1435,18 +1435,18 @@ class calendar_event(osv.Model):
|
||||||
|
|
||||||
def _detach_one_event(self, cr, uid, id, values=dict(), context=None):
|
def _detach_one_event(self, cr, uid, id, values=dict(), context=None):
|
||||||
real_event_id = calendar_id2real_id(id)
|
real_event_id = calendar_id2real_id(id)
|
||||||
data = self.read(cr, uid, id, ['allday', 'zstart', 'zstop', 'rrule', 'duration'])
|
data = self.read(cr, uid, id, ['allday', 'start', 'stop', 'rrule', 'duration'])
|
||||||
data['zstart_date' if data['allday'] else 'zstart_datetime'] = data['zstart']
|
data['start_date' if data['allday'] else 'start_datetime'] = data['start']
|
||||||
data['zstop_date' if data['allday'] else 'zstop_datetime'] = data['zstop']
|
data['stop_date' if data['allday'] else 'stop_datetime'] = data['stop']
|
||||||
if data.get('rrule'):
|
if data.get('rrule'):
|
||||||
data.update(
|
data.update(
|
||||||
values,
|
values,
|
||||||
recurrent_id=real_event_id,
|
recurrent_id=real_event_id,
|
||||||
recurrent_id_date=data.get('zstart'),
|
recurrent_id_date=data.get('start'),
|
||||||
rrule_type=False,
|
rrule_type=False,
|
||||||
rrule='',
|
rrule='',
|
||||||
recurrency=False,
|
recurrency=False,
|
||||||
zfinal_date=datetime.strptime(data.get('zstart'), DEFAULT_SERVER_DATETIME_FORMAT if data['allday'] else DEFAULT_SERVER_DATETIME_FORMAT) + timedelta(hours=values.get('duration', False) or data.get('duration'))
|
final_date=datetime.strptime(data.get('start'), DEFAULT_SERVER_DATETIME_FORMAT if data['allday'] else DEFAULT_SERVER_DATETIME_FORMAT) + timedelta(hours=values.get('duration', False) or data.get('duration'))
|
||||||
)
|
)
|
||||||
|
|
||||||
#do not copy the id
|
#do not copy the id
|
||||||
|
@ -1481,7 +1481,7 @@ class calendar_event(osv.Model):
|
||||||
def _only_changes_to_apply_on_real_ids(field_names):
|
def _only_changes_to_apply_on_real_ids(field_names):
|
||||||
''' return True if changes are only to be made on the real ids'''
|
''' return True if changes are only to be made on the real ids'''
|
||||||
for field in field_names:
|
for field in field_names:
|
||||||
if field in ['zstart', 'zstart_date', 'zstart_datetime', 'zstop', 'zstop_date', 'zstop_datetime', 'active']:
|
if field in ['start', 'start_date', 'start_datetime', 'stop', 'stop_date', 'stop_datetime', 'active']:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@ -1516,7 +1516,7 @@ class calendar_event(osv.Model):
|
||||||
ids.append(real_event_id)
|
ids.append(real_event_id)
|
||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
data = self.read(cr, uid, event_id, ['zstart', 'zstop', 'rrule', 'duration'])
|
data = self.read(cr, uid, event_id, ['start', 'stop', 'rrule', 'duration'])
|
||||||
if data.get('rrule'):
|
if data.get('rrule'):
|
||||||
new_id = self._detach_one_event(cr, uid, event_id, values, context=None)
|
new_id = self._detach_one_event(cr, uid, event_id, values, context=None)
|
||||||
|
|
||||||
|
@ -1524,16 +1524,16 @@ class calendar_event(osv.Model):
|
||||||
|
|
||||||
# set end_date for calendar searching
|
# set end_date for calendar searching
|
||||||
if values.get('recurrency', True) and values.get('end_type', 'count') in ('count', unicode('count')) and \
|
if values.get('recurrency', True) and values.get('end_type', 'count') in ('count', unicode('count')) and \
|
||||||
(values.get('rrule_type') or values.get('count') or values.get('zstart') or values.get('zstop')):
|
(values.get('rrule_type') or values.get('count') or values.get('start') or values.get('stop')):
|
||||||
for id in ids:
|
for id in ids:
|
||||||
final_date = self._get_recurrency_end_date(cr, uid, id, context=context)
|
final_date = self._get_recurrency_end_date(cr, uid, id, context=context)
|
||||||
super(calendar_event, self).write(cr, uid, [id], {'zfinal_date': final_date}, context=context)
|
super(calendar_event, self).write(cr, uid, [id], {'final_date': final_date}, context=context)
|
||||||
|
|
||||||
attendees_create = False
|
attendees_create = False
|
||||||
if values.get('partner_ids', False):
|
if values.get('partner_ids', False):
|
||||||
attendees_create = self.create_attendees(cr, uid, ids, context)
|
attendees_create = self.create_attendees(cr, uid, ids, context)
|
||||||
|
|
||||||
if (values.get('zstart_date') or values.get('zstart_datetime', False)) and values.get('active', True):
|
if (values.get('start_date') or values.get('start_datetime', False)) and values.get('active', True):
|
||||||
the_id = new_id or (ids and int(ids[0]))
|
the_id = new_id or (ids and int(ids[0]))
|
||||||
|
|
||||||
if attendees_create:
|
if attendees_create:
|
||||||
|
@ -1559,7 +1559,7 @@ class calendar_event(osv.Model):
|
||||||
res = super(calendar_event, self).create(cr, uid, vals, context=context)
|
res = super(calendar_event, self).create(cr, uid, vals, context=context)
|
||||||
|
|
||||||
final_date = self._get_recurrency_end_date(cr, uid, res, context=context)
|
final_date = self._get_recurrency_end_date(cr, uid, res, context=context)
|
||||||
self.write(cr, uid, [res], {'zfinal_date': final_date}, context=context)
|
self.write(cr, uid, [res], {'final_date': final_date}, context=context)
|
||||||
|
|
||||||
self.create_attendees(cr, uid, [res], context=context)
|
self.create_attendees(cr, uid, [res], context=context)
|
||||||
return res
|
return res
|
||||||
|
@ -1585,7 +1585,7 @@ class calendar_event(osv.Model):
|
||||||
if context is None:
|
if context is None:
|
||||||
context = {}
|
context = {}
|
||||||
fields2 = fields and fields[:] or None
|
fields2 = fields and fields[:] or None
|
||||||
EXTRAFIELDS = ('class', 'user_id', 'duration', 'allday', 'zstart', 'zstart_date', 'zstart_datetime', 'rrule')
|
EXTRAFIELDS = ('class', 'user_id', 'duration', 'allday', 'start', 'start_date', 'start_datetime', 'rrule')
|
||||||
for f in EXTRAFIELDS:
|
for f in EXTRAFIELDS:
|
||||||
if fields and (f not in fields):
|
if fields and (f not in fields):
|
||||||
fields2.append(f)
|
fields2.append(f)
|
||||||
|
@ -1602,15 +1602,15 @@ class calendar_event(osv.Model):
|
||||||
res = real_data[real_id].copy()
|
res = real_data[real_id].copy()
|
||||||
ls = calendar_id2real_id(calendar_id, with_date=res and res.get('duration', 0) > 0 and res.get('duration') or 1)
|
ls = calendar_id2real_id(calendar_id, with_date=res and res.get('duration', 0) > 0 and res.get('duration') or 1)
|
||||||
if not isinstance(ls, (str, int, long)) and len(ls) >= 2:
|
if not isinstance(ls, (str, int, long)) and len(ls) >= 2:
|
||||||
res['zstart'] = ls[1]
|
res['start'] = ls[1]
|
||||||
res['zstop'] = ls[2]
|
res['stop'] = ls[2]
|
||||||
|
|
||||||
if res['allday']:
|
if res['allday']:
|
||||||
res['zstart_date'] = ls[1]
|
res['start_date'] = ls[1]
|
||||||
res['zstop_date'] = ls[2]
|
res['stop_date'] = ls[2]
|
||||||
else:
|
else:
|
||||||
res['zstart_datetime'] = ls[1]
|
res['start_datetime'] = ls[1]
|
||||||
res['zstop_datetime'] = ls[2]
|
res['stop_datetime'] = ls[2]
|
||||||
|
|
||||||
res['display_time'] = self._get_display_time(cr, uid, ls[1], ls[2], res['duration'], res['allday'], context=context)
|
res['display_time'] = self._get_display_time(cr, uid, ls[1], ls[2], res['duration'], res['allday'], context=context)
|
||||||
|
|
||||||
|
@ -1624,7 +1624,7 @@ class calendar_event(osv.Model):
|
||||||
continue
|
continue
|
||||||
if r['class'] == 'private':
|
if r['class'] == 'private':
|
||||||
for f in r.keys():
|
for f in r.keys():
|
||||||
if f not in ('id', 'allday', 'zstart', 'zstop', 'duration', 'user_id', 'state', 'interval', 'count', 'recurrent_id_date'):
|
if f not in ('id', 'allday', 'start', 'stop', 'duration', 'user_id', 'state', 'interval', 'count', 'recurrent_id_date'):
|
||||||
if isinstance(r[f], list):
|
if isinstance(r[f], list):
|
||||||
r[f] = []
|
r[f] = []
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -142,12 +142,12 @@
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<div style="border-top-left-radius:3px;border-top-right-radius:3px;font-size:12px;border-collapse:separate;text-align:center;font-weight:bold;color:#ffffff;width:130px;min-height: 18px;border-color:#ffffff;background:#8a89ba;padding-top: 4px;">${object.event_id.get_interval(object.event_id.zstart, 'dayname')}</div>
|
<div style="border-top-left-radius:3px;border-top-right-radius:3px;font-size:12px;border-collapse:separate;text-align:center;font-weight:bold;color:#ffffff;width:130px;min-height: 18px;border-color:#ffffff;background:#8a89ba;padding-top: 4px;">${object.event_id.get_interval(object.event_id.start, 'dayname')}</div>
|
||||||
<div style="font-size:48px;min-height:auto;font-weight:bold;text-align:center;color: #5F5F5F;background-color: #E1E2F8;width: 130px;">
|
<div style="font-size:48px;min-height:auto;font-weight:bold;text-align:center;color: #5F5F5F;background-color: #E1E2F8;width: 130px;">
|
||||||
${object.event_id.get_interval(object.event_id.zstart,'day')}
|
${object.event_id.get_interval(object.event_id.start,'day')}
|
||||||
</div>
|
</div>
|
||||||
<div style='font-size:12px;text-align:center;font-weight:bold;color:#ffffff;background-color:#8a89ba'>${object.event_id.get_interval(object.event_id.zstart, 'month')}</div>
|
<div style='font-size:12px;text-align:center;font-weight:bold;color:#ffffff;background-color:#8a89ba'>${object.event_id.get_interval(object.event_id.start, 'month')}</div>
|
||||||
<div style="border-collapse:separate;color:#8a89ba;text-align:center;width: 128px;font-size:12px;border-bottom-right-radius:3px;font-weight:bold;border:1px solid;border-bottom-left-radius:3px;">${not object.event_id.allday and object.event_id.get_interval(object.event_id.zstart, 'time', tz=object.partner_id.tz) or ''}</div>
|
<div style="border-collapse:separate;color:#8a89ba;text-align:center;width: 128px;font-size:12px;border-bottom-right-radius:3px;font-weight:bold;border:1px solid;border-bottom-left-radius:3px;">${not object.event_id.allday and object.event_id.get_interval(object.event_id.start, 'time', tz=object.partner_id.tz) or ''}</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<table cellspacing="0" cellpadding="0" border="0" style="margin-top: 15px; margin-left: 10px;font-size: 16px;">
|
<table cellspacing="0" cellpadding="0" border="0" style="margin-top: 15px; margin-left: 10px;font-size: 16px;">
|
||||||
|
@ -275,12 +275,12 @@
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<div style="border-top-left-radius:3px;border-top-right-radius:3px;font-size:12px;border-collapse:separate;text-align:center;font-weight:bold;color:#ffffff;width:130px;min-height: 18px;border-color:#ffffff;background:#8a89ba;padding-top: 4px;">${object.event_id.get_interval(object.event_id.zstart, 'dayname')}</div>
|
<div style="border-top-left-radius:3px;border-top-right-radius:3px;font-size:12px;border-collapse:separate;text-align:center;font-weight:bold;color:#ffffff;width:130px;min-height: 18px;border-color:#ffffff;background:#8a89ba;padding-top: 4px;">${object.event_id.get_interval(object.event_id.start, 'dayname')}</div>
|
||||||
<div style="font-size:48px;min-height:auto;font-weight:bold;text-align:center;color: #5F5F5F;background-color: #E1E2F8;width: 130px;">
|
<div style="font-size:48px;min-height:auto;font-weight:bold;text-align:center;color: #5F5F5F;background-color: #E1E2F8;width: 130px;">
|
||||||
${object.event_id.get_interval(object.event_id.zstart,'day')}
|
${object.event_id.get_interval(object.event_id.start,'day')}
|
||||||
</div>
|
</div>
|
||||||
<div style='font-size:12px;text-align:center;font-weight:bold;color:#ffffff;background-color:#8a89ba'>${object.event_id.get_interval(object.event_id.zstart, 'month')}</div>
|
<div style='font-size:12px;text-align:center;font-weight:bold;color:#ffffff;background-color:#8a89ba'>${object.event_id.get_interval(object.event_id.start, 'month')}</div>
|
||||||
<div style="border-collapse:separate;color:#8a89ba;text-align:center;width: 128px;font-size:12px;border-bottom-right-radius:3px;font-weight:bold;border:1px solid;border-bottom-left-radius:3px;">${not object.event_id.allday and object.event_id.get_interval(object.event_id.zstart, 'time', tz=object.partner_id.tz) or ''}</div>
|
<div style="border-collapse:separate;color:#8a89ba;text-align:center;width: 128px;font-size:12px;border-bottom-right-radius:3px;font-weight:bold;border:1px solid;border-bottom-left-radius:3px;">${not object.event_id.allday and object.event_id.get_interval(object.event_id.start, 'time', tz=object.partner_id.tz) or ''}</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<table cellspacing="0" cellpadding="0" border="0" style="margin-top: 15px; margin-left: 10px;font-size: 16px;">
|
<table cellspacing="0" cellpadding="0" border="0" style="margin-top: 15px; margin-left: 10px;font-size: 16px;">
|
||||||
|
@ -407,12 +407,12 @@
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<div style="border-top-left-radius:3px;border-top-right-radius:3px;font-size:12px;border-collapse:separate;text-align:center;font-weight:bold;color:#ffffff;width:130px;min-height: 18px;border-color:#ffffff;background:#8a89ba;padding-top: 4px;">${object.event_id.get_interval(object.event_id.zstart, 'dayname')}</div>
|
<div style="border-top-left-radius:3px;border-top-right-radius:3px;font-size:12px;border-collapse:separate;text-align:center;font-weight:bold;color:#ffffff;width:130px;min-height: 18px;border-color:#ffffff;background:#8a89ba;padding-top: 4px;">${object.event_id.get_interval(object.event_id.start, 'dayname')}</div>
|
||||||
<div style="font-size:48px;min-height:auto;font-weight:bold;text-align:center;color: #5F5F5F;background-color: #E1E2F8;width: 130px;">
|
<div style="font-size:48px;min-height:auto;font-weight:bold;text-align:center;color: #5F5F5F;background-color: #E1E2F8;width: 130px;">
|
||||||
${object.event_id.get_interval(object.event_id.zstart,'day')}
|
${object.event_id.get_interval(object.event_id.start,'day')}
|
||||||
</div>
|
</div>
|
||||||
<div style='font-size:12px;text-align:center;font-weight:bold;color:#ffffff;background-color:#8a89ba'>${object.event_id.get_interval(object.event_id.zstart, 'month')}</div>
|
<div style='font-size:12px;text-align:center;font-weight:bold;color:#ffffff;background-color:#8a89ba'>${object.event_id.get_interval(object.event_id.start, 'month')}</div>
|
||||||
<div style="border-collapse:separate;color:#8a89ba;text-align:center;width: 128px;font-size:12px;border-bottom-right-radius:3px;font-weight:bold;border:1px solid;border-bottom-left-radius:3px;">${not object.event_id.allday and object.event_id.get_interval(object.event_id.zstart, 'time', tz=object.partner_id.tz) or ''}</div>
|
<div style="border-collapse:separate;color:#8a89ba;text-align:center;width: 128px;font-size:12px;border-bottom-right-radius:3px;font-weight:bold;border:1px solid;border-bottom-left-radius:3px;">${not object.event_id.allday and object.event_id.get_interval(object.event_id.start, 'time', tz=object.partner_id.tz) or ''}</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<table cellspacing="0" cellpadding="0" border="0" style="margin-top: 15px; margin-left: 10px;font-size: 16px;">
|
<table cellspacing="0" cellpadding="0" border="0" style="margin-top: 15px; margin-left: 10px;font-size: 16px;">
|
||||||
|
|
|
@ -23,9 +23,9 @@
|
||||||
<field name="partner_ids" eval="[(6,0,[ref('base.res_partner_6')])]"/>
|
<field name="partner_ids" eval="[(6,0,[ref('base.res_partner_6')])]"/>
|
||||||
<field name="name">Follow-up for Project proposal</field>
|
<field name="name">Follow-up for Project proposal</field>
|
||||||
<field name="description">Meeting to discuss project plan and hash out the details of implementation.</field>
|
<field name="description">Meeting to discuss project plan and hash out the details of implementation.</field>
|
||||||
<field eval="time.strftime('%Y-%m-03 10:20:00')" name="zstart"/>
|
<field eval="time.strftime('%Y-%m-03 10:20:00')" name="start"/>
|
||||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet1')])]"/>
|
<field name="categ_ids" eval="[(6,0,[ref('categ_meet1')])]"/>
|
||||||
<field eval="time.strftime('%Y-%m-03 16:30:00')" name="zstop"/>
|
<field eval="time.strftime('%Y-%m-03 16:30:00')" name="stop"/>
|
||||||
<field eval="6.3" name="duration"/>
|
<field eval="6.3" name="duration"/>
|
||||||
<field eval="0" name="allday"/>
|
<field eval="0" name="allday"/>
|
||||||
<field name="state">open</field>
|
<field name="state">open</field>
|
||||||
|
@ -38,8 +38,8 @@
|
||||||
<field name="name">Initial discussion</field>
|
<field name="name">Initial discussion</field>
|
||||||
<field name="description">Discussion with partner for product.</field>
|
<field name="description">Discussion with partner for product.</field>
|
||||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet3')])]"/>
|
<field name="categ_ids" eval="[(6,0,[ref('categ_meet3')])]"/>
|
||||||
<field eval="time.strftime('%Y-%m-05 12:00:00')" name="zstart"/>
|
<field eval="time.strftime('%Y-%m-05 12:00:00')" name="start"/>
|
||||||
<field eval="time.strftime('%Y-%m-05 19:00:00')" name="zstop"/>
|
<field eval="time.strftime('%Y-%m-05 19:00:00')" name="stop"/>
|
||||||
<field eval="0" name="allday"/>
|
<field eval="0" name="allday"/>
|
||||||
<field eval="7.0" name="duration"/>
|
<field eval="7.0" name="duration"/>
|
||||||
<field name="state">draft</field>
|
<field name="state">draft</field>
|
||||||
|
@ -51,8 +51,8 @@
|
||||||
<field name="name">Pricing Discussion</field>
|
<field name="name">Pricing Discussion</field>
|
||||||
<field name="description">Internal meeting for discussion for new pricing for product and services.</field>
|
<field name="description">Internal meeting for discussion for new pricing for product and services.</field>
|
||||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet1'), ref('categ_meet2')])]"/>
|
<field name="categ_ids" eval="[(6,0,[ref('categ_meet1'), ref('categ_meet2')])]"/>
|
||||||
<field eval="time.strftime('%Y-%m-12 15:55:05')" name="zstart"/>
|
<field eval="time.strftime('%Y-%m-12 15:55:05')" name="start"/>
|
||||||
<field eval="time.strftime('%Y-%m-12 18:55:05')" name="zstop"/>
|
<field eval="time.strftime('%Y-%m-12 18:55:05')" name="stop"/>
|
||||||
<field eval="3.0" name="duration"/>
|
<field eval="3.0" name="duration"/>
|
||||||
<field eval="0" name="allday"/>
|
<field eval="0" name="allday"/>
|
||||||
<field name="state">open</field>
|
<field name="state">open</field>
|
||||||
|
@ -64,8 +64,8 @@
|
||||||
<field name="partner_ids" eval="[(6,0,[ref('base.partner_demo'),ref('base.res_partner_6')])]"/>
|
<field name="partner_ids" eval="[(6,0,[ref('base.partner_demo'),ref('base.res_partner_6')])]"/>
|
||||||
<field name="name">Requirements review</field>
|
<field name="name">Requirements review</field>
|
||||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet3')])]"/>
|
<field name="categ_ids" eval="[(6,0,[ref('categ_meet3')])]"/>
|
||||||
<field eval="time.strftime('%Y-%m-20 8:00:00')" name="zstart"/>
|
<field eval="time.strftime('%Y-%m-20 8:00:00')" name="start"/>
|
||||||
<field eval="time.strftime('%Y-%m-20 10:30:00')" name="zstop"/>
|
<field eval="time.strftime('%Y-%m-20 10:30:00')" name="stop"/>
|
||||||
<field eval="2.5" name="duration"/>
|
<field eval="2.5" name="duration"/>
|
||||||
<field eval="0" name="allday"/>
|
<field eval="0" name="allday"/>
|
||||||
<field name="state">open</field>
|
<field name="state">open</field>
|
||||||
|
@ -76,8 +76,8 @@
|
||||||
<field name="partner_ids" eval="[(6,0,[ref('base.partner_root'),ref('base.res_partner_8')])]"/>
|
<field name="partner_ids" eval="[(6,0,[ref('base.partner_root'),ref('base.res_partner_8')])]"/>
|
||||||
<field name="name">Changes in Designing</field>
|
<field name="name">Changes in Designing</field>
|
||||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet1')])]"/>
|
<field name="categ_ids" eval="[(6,0,[ref('categ_meet1')])]"/>
|
||||||
<field eval="time.strftime('%Y-%m-22')" name="zstart"/>
|
<field eval="time.strftime('%Y-%m-22')" name="start"/>
|
||||||
<field eval="time.strftime('%Y-%m-22')" name="zstop"/>
|
<field eval="time.strftime('%Y-%m-22')" name="stop"/>
|
||||||
<field eval="1" name="allday"/>
|
<field eval="1" name="allday"/>
|
||||||
<field name="state">open</field>
|
<field name="state">open</field>
|
||||||
</record>
|
</record>
|
||||||
|
@ -88,8 +88,8 @@
|
||||||
<field name="partner_ids" eval="[(6,0,[ref('base.partner_root'),ref('base.res_partner_1'),ref('base.res_partner_4'),ref('base.res_partner_6'),ref('base.res_partner_8')])]"/>
|
<field name="partner_ids" eval="[(6,0,[ref('base.partner_root'),ref('base.res_partner_1'),ref('base.res_partner_4'),ref('base.res_partner_6'),ref('base.res_partner_8')])]"/>
|
||||||
<field name="name">Presentation for new Services</field>
|
<field name="name">Presentation for new Services</field>
|
||||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet1'), ref('categ_meet2')])]"/>
|
<field name="categ_ids" eval="[(6,0,[ref('categ_meet1'), ref('categ_meet2')])]"/>
|
||||||
<field eval="time.strftime('%Y-%m-18 2:00:00')" name="zstart"/>
|
<field eval="time.strftime('%Y-%m-18 2:00:00')" name="start"/>
|
||||||
<field eval="time.strftime('%Y-%m-18 10:30:00')" name="zstop"/>
|
<field eval="time.strftime('%Y-%m-18 10:30:00')" name="stop"/>
|
||||||
<field eval="8.5" name="duration"/>
|
<field eval="8.5" name="duration"/>
|
||||||
<field eval="0" name="allday"/>
|
<field eval="0" name="allday"/>
|
||||||
<field name="state">draft</field>
|
<field name="state">draft</field>
|
||||||
|
@ -101,8 +101,8 @@
|
||||||
<field name="partner_ids" eval="[(6,0,[ref('base.res_partner_7')])]"/>
|
<field name="partner_ids" eval="[(6,0,[ref('base.res_partner_7')])]"/>
|
||||||
<field name="name">Presentation of the new Calendar</field>
|
<field name="name">Presentation of the new Calendar</field>
|
||||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet1'), ref('categ_meet2')])]"/>
|
<field name="categ_ids" eval="[(6,0,[ref('categ_meet1'), ref('categ_meet2')])]"/>
|
||||||
<field eval="time.strftime('%Y-%m-16')" name="zstart"/>
|
<field eval="time.strftime('%Y-%m-16')" name="start"/>
|
||||||
<field eval="time.strftime('%Y-%m-16')" name="zstop"/>
|
<field eval="time.strftime('%Y-%m-16')" name="stop"/>
|
||||||
<field eval="8.5" name="duration"/>
|
<field eval="8.5" name="duration"/>
|
||||||
<field eval="1" name="allday"/>
|
<field eval="1" name="allday"/>
|
||||||
<field name="state">draft</field>
|
<field name="state">draft</field>
|
||||||
|
|
|
@ -58,17 +58,17 @@
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<group>
|
<group>
|
||||||
<field name="zstart" attrs="{'invisible': True}"/>
|
<field name="start" attrs="{'invisible': True}"/>
|
||||||
<field name="zstop" attrs="{'invisible': True}"/>
|
<field name="stop" attrs="{'invisible': True}"/>
|
||||||
|
|
||||||
<field name="zstart_date" string="Starting at" on_change="onchange_dates('start', zstart_date, zstop_date, allday, True)" attrs="{'invisible': [('allday','=',False)]}"/>
|
<field name="start_date" string="Starting at" on_change="onchange_dates('start', start_date, stop_date, allday, True)" attrs="{'invisible': [('allday','=',False)]}"/>
|
||||||
<field name="zstop_date" string="Ending at" on_change="onchange_dates('stop', zstart_date, zstop_date, allday, True)" attrs="{'invisible': [('allday','=',False)]}"/>
|
<field name="stop_date" string="Ending at" on_change="onchange_dates('stop', start_date, stop_date, allday, True)" attrs="{'invisible': [('allday','=',False)]}"/>
|
||||||
|
|
||||||
<field name="zstart_datetime" string="Starting at" on_change="onchange_dates('start', zstart_datetime, zstop_datetime, allday, False)" attrs="{'invisible': [('allday','=',True)]}"/>
|
<field name="start_datetime" string="Starting at" on_change="onchange_dates('start', start_datetime, stop_datetime, allday, False)" attrs="{'invisible': [('allday','=',True)]}"/>
|
||||||
<field name="zstop_datetime" string="Ending at" on_change="onchange_dates('stop', zstart_datetime, zstop_datetime, allday, False)" attrs="{'invisible': [('allday','=',True)]}"/>
|
<field name="stop_datetime" string="Ending at" on_change="onchange_dates('stop', start_datetime, stop_datetime, allday, False)" attrs="{'invisible': [('allday','=',True)]}"/>
|
||||||
<label for="allday"/>
|
<label for="allday"/>
|
||||||
<div>
|
<div>
|
||||||
<field name="allday" class="oe_inline" on_change="onchange_allday(zstart, zstop, zstart_date, zstop_date, zstart_datetime, zstop_datetime, allday)"/>
|
<field name="allday" class="oe_inline" on_change="onchange_allday(start, stop, start_date, stop_date, start_datetime, stop_datetime, allday)"/>
|
||||||
</div>
|
</div>
|
||||||
<field name="duration" widget="float_time" class="oe_inline" attrs="{ 'invisible': True }"/>
|
<field name="duration" widget="float_time" class="oe_inline" attrs="{ 'invisible': True }"/>
|
||||||
</group>
|
</group>
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
<div>
|
<div>
|
||||||
<field name="end_type" attrs="{'required': [('recurrency','==',True)]}" class="oe_inline"/>
|
<field name="end_type" attrs="{'required': [('recurrency','==',True)]}" class="oe_inline"/>
|
||||||
<field name="count" attrs="{'invisible': [('end_type', '!=', 'count')], 'required': [('recurrency','==',True)]}" class="oe_inline"/>
|
<field name="count" attrs="{'invisible': [('end_type', '!=', 'count')], 'required': [('recurrency','==',True)]}" class="oe_inline"/>
|
||||||
<field name="zfinal_date" attrs="{'invisible': [('end_type', '!=', 'end_date')], 'required': [('end_type', '=', 'end_date')]}" class="oe_inline"/>
|
<field name="final_date" attrs="{'invisible': [('end_type', '!=', 'end_date')], 'required': [('end_type', '=', 'end_date')]}" class="oe_inline"/>
|
||||||
</div>
|
</div>
|
||||||
<label string="Select Weekdays" attrs="{'invisible' :[('rrule_type','not in', ['weekly'])]}"/>
|
<label string="Select Weekdays" attrs="{'invisible' :[('rrule_type','not in', ['weekly'])]}"/>
|
||||||
<group col="2" colspan="1" name="weekdays" attrs="{'invisible' :[('rrule_type','not in', ['weekly'])]}" >
|
<group col="2" colspan="1" name="weekdays" attrs="{'invisible' :[('rrule_type','not in', ['weekly'])]}" >
|
||||||
|
@ -178,8 +178,8 @@
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<group>
|
<group>
|
||||||
<group>
|
<group>
|
||||||
<field name="zstart_date" string="Starting at" attrs="{'invisible': [('allday','=',False)]}"/>
|
<field name="start_date" string="Starting at" attrs="{'invisible': [('allday','=',False)]}"/>
|
||||||
<field name="zstart_datetime" string="Starting at" attrs="{'invisible': [('allday','=',True)]}"/>
|
<field name="start_datetime" string="Starting at" attrs="{'invisible': [('allday','=',True)]}"/>
|
||||||
|
|
||||||
<field name="duration" string="Duration" widget="float_time" attrs="{'invisible': [('allday','=',True)]}"/>
|
<field name="duration" string="Duration" widget="float_time" attrs="{'invisible': [('allday','=',True)]}"/>
|
||||||
<field name="allday" class="oe_inline" attrs="{'invisible': [('allday','=',False)]}"/>
|
<field name="allday" class="oe_inline" attrs="{'invisible': [('allday','=',False)]}"/>
|
||||||
|
@ -222,7 +222,7 @@
|
||||||
<field name="model">calendar.event</field>
|
<field name="model">calendar.event</field>
|
||||||
<field name="priority" eval="2"/>
|
<field name="priority" eval="2"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<calendar string="Meetings" date_start="zstart" date_stop="zstop" date_delay="duration" all_day="allday"
|
<calendar string="Meetings" date_start="start" date_stop="stop" date_delay="duration" all_day="allday"
|
||||||
display="[name]" color="color_partner_id" attendee="partner_ids" avatar_model="res.partner"
|
display="[name]" color="color_partner_id" attendee="partner_ids" avatar_model="res.partner"
|
||||||
use_contacts="True" event_open_popup="%(calendar.view_calendar_event_form_popup)s">
|
use_contacts="True" event_open_popup="%(calendar.view_calendar_event_form_popup)s">
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
-
|
-
|
||||||
!record {model: calendar.event, id: calendar_event_technicalpresentation0}:
|
!record {model: calendar.event, id: calendar_event_technicalpresentation0}:
|
||||||
class: private
|
class: private
|
||||||
zstart: '2011-04-30 16:00:00'
|
start: '2011-04-30 16:00:00'
|
||||||
zstop: '2011-04-30 18:30:00'
|
stop: '2011-04-30 18:30:00'
|
||||||
description: The Technical Presentation will cover following topics:\n* Creating OpenERP
|
description: The Technical Presentation will cover following topics:\n* Creating OpenERP
|
||||||
class\n* Views\n* Wizards\n* Workflows
|
class\n* Views\n* Wizards\n* Workflows
|
||||||
duration: 2.5
|
duration: 2.5
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
Now I will set recurrence for this event to occur monday and friday of week
|
Now I will set recurrence for this event to occur monday and friday of week
|
||||||
-
|
-
|
||||||
!python {model: calendar.event}: |
|
!python {model: calendar.event}: |
|
||||||
data = {'fr': 1, 'mo': 1, 'interval': 1, 'rrule_type': 'weekly', 'end_type': 'end_date', 'zfinal_date': '2011-05-31 00:00:00', 'recurrency' : True}
|
data = {'fr': 1, 'mo': 1, 'interval': 1, 'rrule_type': 'weekly', 'end_type': 'end_date', 'final_date': '2011-05-31 00:00:00', 'recurrency' : True}
|
||||||
self.write(cr, uid, [ref("calendar_event_technicalpresentation0")], data)
|
self.write(cr, uid, [ref("calendar_event_technicalpresentation0")], data)
|
||||||
-
|
-
|
||||||
In order to check that recurrent events are views successfully in calendar view, I will open calendar view of events
|
In order to check that recurrent events are views successfully in calendar view, I will open calendar view of events
|
||||||
|
@ -25,18 +25,18 @@
|
||||||
In order to check that recurrent events are views successfully in calendar view, I will search for one of the recurrent event and count the number of events
|
In order to check that recurrent events are views successfully in calendar view, I will search for one of the recurrent event and count the number of events
|
||||||
-
|
-
|
||||||
!python {model: calendar.event}: |
|
!python {model: calendar.event}: |
|
||||||
ids = self.search(cr, uid, [('zstart', '>=', '2011-04-30 16:00:00'), ('zstart', '<=', '2011-05-31 00:00:00')], context={'virtual_id': True} )
|
ids = self.search(cr, uid, [('start', '>=', '2011-04-30 16:00:00'), ('start', '<=', '2011-05-31 00:00:00')], context={'virtual_id': True} )
|
||||||
assert len(ids) == 9, 'Wrong number of events found'
|
assert len(ids) == 9, 'Wrong number of events found'
|
||||||
-
|
-
|
||||||
Now I move a virtual event, to see that a real event is well created and depending from the native recurrence
|
Now I move a virtual event, to see that a real event is well created and depending from the native recurrence
|
||||||
-
|
-
|
||||||
!python {model: calendar.event}: |
|
!python {model: calendar.event}: |
|
||||||
ids = self.search(cr, uid, [('zstart', '>=', '2011-04-30 16:00:00'), ('zstart', '<=', '2011-05-31 00:00:00')], context={'virtual_id': True} )
|
ids = self.search(cr, uid, [('start', '>=', '2011-04-30 16:00:00'), ('start', '<=', '2011-05-31 00:00:00')], context={'virtual_id': True} )
|
||||||
before = self.search(cr, uid, [('zstart', '>=', '2011-04-30 16:00:00'), ('zstart', '<=', '2011-05-31 00:00:00')], context={'virtual_id': False})
|
before = self.search(cr, uid, [('start', '>=', '2011-04-30 16:00:00'), ('start', '<=', '2011-05-31 00:00:00')], context={'virtual_id': False})
|
||||||
# We start by detach the event
|
# We start by detach the event
|
||||||
newid = self._detach_one_event(cr, uid,ids[1])
|
newid = self._detach_one_event(cr, uid,ids[1])
|
||||||
self.write(cr, uid,[newid], {'name':'New Name','recurrency' : True}, context={'virtual_id': True})
|
self.write(cr, uid,[newid], {'name':'New Name','recurrency' : True}, context={'virtual_id': True})
|
||||||
after = self.search(cr, uid, [('zstart', '>=', '2011-04-30 16:00:00'), ('zstart', '<=', '2011-05-31 00:00:00')], context={'virtual_id': False})
|
after = self.search(cr, uid, [('start', '>=', '2011-04-30 16:00:00'), ('start', '<=', '2011-05-31 00:00:00')], context={'virtual_id': False})
|
||||||
assert len(after) == len(before)+1, 'Wrong number of events found, after to have moved a virtual event'
|
assert len(after) == len(before)+1, 'Wrong number of events found, after to have moved a virtual event'
|
||||||
new_id = list(set(after)-set(before))[0]
|
new_id = list(set(after)-set(before))[0]
|
||||||
new_event = self.browse(cr,uid,new_id,context=context)
|
new_event = self.browse(cr,uid,new_id,context=context)
|
||||||
|
@ -47,8 +47,8 @@
|
||||||
!record {model: calendar.event, id: calendar_event_alldaytestevent0}:
|
!record {model: calendar.event, id: calendar_event_alldaytestevent0}:
|
||||||
allday: 1
|
allday: 1
|
||||||
class: confidential
|
class: confidential
|
||||||
zstart: '2011-04-30 00:00:00'
|
start: '2011-04-30 00:00:00'
|
||||||
zstop: '2011-04-30 00:00:00'
|
stop: '2011-04-30 00:00:00'
|
||||||
description: 'All day technical test '
|
description: 'All day technical test '
|
||||||
location: School
|
location: School
|
||||||
name: All day test event
|
name: All day test event
|
||||||
|
@ -70,8 +70,8 @@
|
||||||
-
|
-
|
||||||
!record {model: calendar.event, id: calendar.event_sprintreview1}:
|
!record {model: calendar.event, id: calendar.event_sprintreview1}:
|
||||||
name: Begin of month meeting
|
name: Begin of month meeting
|
||||||
zstart: !eval time.strftime('%Y-%m-%d 12:00:00')
|
start: !eval time.strftime('%Y-%m-%d 12:00:00')
|
||||||
zstop: !eval time.strftime('%Y-%m-%d 18:00:00')
|
stop: !eval time.strftime('%Y-%m-%d 18:00:00')
|
||||||
recurrency: true
|
recurrency: true
|
||||||
rrule: FREQ=MONTHLY;INTERVAL=1;COUNT=12;BYDAY=1MO
|
rrule: FREQ=MONTHLY;INTERVAL=1;COUNT=12;BYDAY=1MO
|
||||||
-
|
-
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
-
|
-
|
||||||
!record {model: calendar.event, id: calendar_event_testmeeting0}:
|
!record {model: calendar.event, id: calendar_event_testmeeting0}:
|
||||||
count: 5
|
count: 5
|
||||||
zstart: '2011-04-13 11:04:00'
|
start: '2011-04-13 11:04:00'
|
||||||
zstop: '2011-04-13 12:04:00'
|
stop: '2011-04-13 12:04:00'
|
||||||
day: 0.0
|
day: 0.0
|
||||||
duration: 1.0
|
duration: 1.0
|
||||||
name: Test Meeting
|
name: Test Meeting
|
||||||
|
@ -17,17 +17,17 @@
|
||||||
I search for all the recurrent meetings.
|
I search for all the recurrent meetings.
|
||||||
-
|
-
|
||||||
!python {model: calendar.event}: |
|
!python {model: calendar.event}: |
|
||||||
meeting_ids = self.search(cr, uid, [('id', 'in', [ref('calendar_event_testmeeting0')]),('zstart','>=','2011-03-13'), ('zstop', '<=', '2011-05-13')], context={'virtual_id': True})
|
meeting_ids = self.search(cr, uid, [('id', 'in', [ref('calendar_event_testmeeting0')]),('start','>=','2011-03-13'), ('stop', '<=', '2011-05-13')], context={'virtual_id': True})
|
||||||
assert len(meeting_ids) == 5, 'Recurrent daily meetings are not created !'
|
assert len(meeting_ids) == 5, 'Recurrent daily meetings are not created !'
|
||||||
-
|
-
|
||||||
I create a weekly meeting till a particular end date.
|
I create a weekly meeting till a particular end date.
|
||||||
-
|
-
|
||||||
!record {model: calendar.event, id: calendar_event_reviewcodewithprogrammer0}:
|
!record {model: calendar.event, id: calendar_event_reviewcodewithprogrammer0}:
|
||||||
zstart: '2011-04-18 11:47:00'
|
start: '2011-04-18 11:47:00'
|
||||||
zstop: '2011-04-18 12:47:00'
|
stop: '2011-04-18 12:47:00'
|
||||||
day: 0.0
|
day: 0.0
|
||||||
duration: 1.0
|
duration: 1.0
|
||||||
zfinal_date: '2011-04-30'
|
final_date: '2011-04-30'
|
||||||
end_type: end_date
|
end_type: end_date
|
||||||
fr: true
|
fr: true
|
||||||
mo: true
|
mo: true
|
||||||
|
@ -42,15 +42,15 @@
|
||||||
I search for all the recurrent weekly meetings.
|
I search for all the recurrent weekly meetings.
|
||||||
-
|
-
|
||||||
!python {model: calendar.event}: |
|
!python {model: calendar.event}: |
|
||||||
meeting_ids = self.search(cr, uid, [('id', 'in', [ref('calendar_event_reviewcodewithprogrammer0')]),('zstart','>=','2011-03-13'), ('zstop', '<=', '2011-05-13')], context={'virtual_id': True})
|
meeting_ids = self.search(cr, uid, [('id', 'in', [ref('calendar_event_reviewcodewithprogrammer0')]),('start','>=','2011-03-13'), ('stop', '<=', '2011-05-13')], context={'virtual_id': True})
|
||||||
assert len(meeting_ids) == 10, 'Recurrent weekly meetings are not created !'
|
assert len(meeting_ids) == 10, 'Recurrent weekly meetings are not created !'
|
||||||
-
|
-
|
||||||
I want to schedule a meeting every month for Sprint review.
|
I want to schedule a meeting every month for Sprint review.
|
||||||
-
|
-
|
||||||
!record {model: calendar.event, id: calendar_event_sprintreview0}:
|
!record {model: calendar.event, id: calendar_event_sprintreview0}:
|
||||||
count: 12
|
count: 12
|
||||||
zstart: '2011-04-01 12:01:00'
|
start: '2011-04-01 12:01:00'
|
||||||
zstop: '2011-04-01 13:01:00'
|
stop: '2011-04-01 13:01:00'
|
||||||
day: 1
|
day: 1
|
||||||
duration: 1.0
|
duration: 1.0
|
||||||
name: Sprint Review
|
name: Sprint Review
|
||||||
|
@ -61,7 +61,7 @@
|
||||||
I search for all the recurrent monthly meetings.
|
I search for all the recurrent monthly meetings.
|
||||||
-
|
-
|
||||||
!python {model: calendar.event}: |
|
!python {model: calendar.event}: |
|
||||||
meeting_ids = self.search(cr, uid, [('id', 'in', [ref('calendar_event_sprintreview0')]),('zstart','>=','2011-03-01'), ('zstop', '<=', '2012-05-13')], context={'virtual_id': True})
|
meeting_ids = self.search(cr, uid, [('id', 'in', [ref('calendar_event_sprintreview0')]),('start','>=','2011-03-01'), ('stop', '<=', '2012-05-13')], context={'virtual_id': True})
|
||||||
assert len(meeting_ids) == 12, 'Recurrent monthly meetings are not created !'
|
assert len(meeting_ids) == 12, 'Recurrent monthly meetings are not created !'
|
||||||
-
|
-
|
||||||
I change name of my monthly Sprint Review meeting.
|
I change name of my monthly Sprint Review meeting.
|
||||||
|
@ -73,7 +73,7 @@
|
||||||
I check whether all the records are edited or not.
|
I check whether all the records are edited or not.
|
||||||
-
|
-
|
||||||
!python {model: calendar.event}: |
|
!python {model: calendar.event}: |
|
||||||
meeting_ids = self.search(cr, uid, [('id', 'in', [ref('calendar_event_sprintreview0')]),('zstart','>=','2011-03-01'), ('zstop', '<=', '2012-05-13')], context={'virtual_id': True})
|
meeting_ids = self.search(cr, uid, [('id', 'in', [ref('calendar_event_sprintreview0')]),('start','>=','2011-03-01'), ('stop', '<=', '2012-05-13')], context={'virtual_id': True})
|
||||||
meetings = self.browse(cr, uid, meeting_ids, context)
|
meetings = self.browse(cr, uid, meeting_ids, context)
|
||||||
for meeting in meetings:
|
for meeting in meetings:
|
||||||
assert meeting.name == 'Sprint Review for google modules', 'Name not changed for id: %s' %meeting.id
|
assert meeting.name == 'Sprint Review for google modules', 'Name not changed for id: %s' %meeting.id
|
||||||
|
|
|
@ -36,7 +36,7 @@ class calendar_event(osv.Model):
|
||||||
res = super(calendar_event, self).create(cr, uid, vals, context=context)
|
res = super(calendar_event, self).create(cr, uid, vals, context=context)
|
||||||
obj = self.browse(cr, uid, res, context=context)
|
obj = self.browse(cr, uid, res, context=context)
|
||||||
if obj.opportunity_id:
|
if obj.opportunity_id:
|
||||||
self.pool.get('crm.lead').log_meeting(cr, uid, [obj.opportunity_id.id], obj.name, obj.zstart, obj.duration, context=context)
|
self.pool.get('crm.lead').log_meeting(cr, uid, [obj.opportunity_id.id], obj.name, obj.start, obj.duration, context=context)
|
||||||
return res
|
return res
|
||||||
|
|
||||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||||
|
|
|
@ -367,8 +367,8 @@ class hr_holidays(osv.osv):
|
||||||
'duration': record.number_of_days_temp * 8,
|
'duration': record.number_of_days_temp * 8,
|
||||||
'description': record.notes,
|
'description': record.notes,
|
||||||
'user_id': record.user_id.id,
|
'user_id': record.user_id.id,
|
||||||
'zstart': record.date_from,
|
'start': record.date_from,
|
||||||
'zstop': record.date_to,
|
'stop': record.date_to,
|
||||||
'allday': False,
|
'allday': False,
|
||||||
'state': 'open', # to block that meeting date in the calendar
|
'state': 'open', # to block that meeting date in the calendar
|
||||||
'class': 'confidential'
|
'class': 'confidential'
|
||||||
|
|
Loading…
Reference in New Issue