[REF] Replace temp name by real name

bzr revid: jke@openerp.com-20140505154246-8vahdzf60oiksm62
This commit is contained in:
Kersten Jeremy 2014-05-05 17:42:46 +02:00
parent 4ce7e8c6dd
commit 6d00292064
8 changed files with 151 additions and 151 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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