diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py index 6a93b22e7da..2c0141da67e 100644 --- a/addons/base_calendar/base_calendar.py +++ b/addons/base_calendar/base_calendar.py @@ -22,7 +22,7 @@ from datetime import datetime, timedelta from dateutil import parser from dateutil.rrule import * -from osv import osv +from osv import osv, fields import pooler import re import vobject @@ -59,6 +59,22 @@ def openobjectid2uid(cr, uidval, oomodel): value = 'OpenObject-%s_%s@%s' % (oomodel, uidval, cr.dbname) return value +def get_attribute_mapping(cr, uid, context={}): + pool = pooler.get_pool(cr.dbname) + field_obj = pool.get('basic.calendar.fields') + fids = field_obj.search(cr, uid, []) + res = {} + for field in field_obj.browse(cr, uid, fids): + attr = field.attribute + res[attr] = {} + res[attr]['field'] = field.field_id.name + res[attr]['type'] = field.field_id.ttype + if res[attr]['type'] in ('one2many', 'many2many', 'many2one'): + res[attr]['object'] = field.field_id.relation + elif res[attr]['type'] in ('selection'): + res[attr]['mapping'] = field.info + return res + def map_data(cr, uid, obj): vals = {} for map_dict in obj.__attribute__: @@ -236,11 +252,44 @@ class Calendar(CalDAV, osv.osv_memory): 'vjournal': None, # Use: O-n, Type: Collection of Journal class 'vfreebusy': None, # Use: O-n, Type: Collection of FreeBusy class 'vtimezone': None, # Use: O-n, Type: Collection of Timezone class - } Calendar() + +class basic_calendar_fields_type(osv.osv): + _name = 'basic.calendar.fields.type' + _description = 'Calendar fields type' + + _columns = { + 'name': fields.char('Name', size=64), + 'object_id': fields.many2one('ir.model', 'Object'), + } + +basic_calendar_fields_type() + +class basic_calendar_fields(osv.osv): + _name = 'basic.calendar.fields' + _description = 'Calendar fields' + _rec_name = 'attribute_id' + + _columns = { + 'attribute_id': fields.many2one('basic.calendar.fields.type', \ + 'Attribute', size=64), + 'attribute': fields.related('attribute_id', 'name', size=64, \ + type='char', string='Attribute Name', \ + store=True), + 'object_id': fields.related('attribute_id', 'object_id', \ + type='many2one', relation='ir.model', store=True,\ + string='Object'), + 'field_id': fields.many2one('ir.model.fields', 'OpenObject Field'), + 'info': fields.text('Other info'), + 'value': fields.text('Value', help="For some attribute that \ +have some default value"), + } + +basic_calendar_fields() + class Event(CalDAV, osv.osv_memory): _name = 'basic.calendar.event' __attribute__ = { diff --git a/addons/caldav/caldav.py b/addons/caldav/caldav.py index 00d39433d1f..af2ccb9fdc2 100644 --- a/addons/caldav/caldav.py +++ b/addons/caldav/caldav.py @@ -231,7 +231,7 @@ calendar_attendee() class res_alarm(osv.osv): _name = 'res.alarm' - _description = 'basic alarm information' + _description = 'Basic Alarm Information' _columns = { 'name':fields.char('Name', size=256, required=True), 'trigger_occurs': fields.selection([('before', 'Before'), ('after', 'After')], \ @@ -501,6 +501,7 @@ class calendar_event(osv.osv): return True _columns = { + 'id': fields.integer('ID'), 'name': fields.char('Description', size=64, required=True), 'date': fields.datetime('Date'), 'date_deadline': fields.datetime('Deadline'), diff --git a/addons/caldav/caldav_data.xml b/addons/caldav/caldav_data.xml index 2043dd3e6e4..5d1ea69ca8f 100644 --- a/addons/caldav/caldav_data.xml +++ b/addons/caldav/caldav_data.xml @@ -130,5 +130,673 @@ + + + + comment + + + + + uid + + + + + seq + + + + + recurrence-id + + + + + transp + + + + + attendee + + + + + related + + + + + rrule + + + + + dtend + + + + + valarm + + + + + priority + + + + + location + + + + + exrule + + + + + resources + + + + + rstatus + + + + + status + + + + + exdate + + + + + dtstamp + + + + + description + + + + + rdate + + + + + dtstart + + + + + class + + + + + x-openobject-model + + + + + created + + + + + url + + + + + summary + + + + + contact + + + + + + + + status + + + + + comment + + + + + attendee + + + + + valarm + + + + + description + + + + + seq + + + + + url + + + + + completed + + + + + percent + + + + + due + + + + + summary + + + + + priority + + + + + exdate + + + + + location + + + + + exrule + + + + + duration + + + + + organizer + + + + + dtstart + + + + + rrule + + + + + class + + + + + uid + + + + + + + cn + + + + + sent-by + + + + + language + + + + + delegated-from + + + + + member + + + + + cutype + + + + + role + + + + + partstat + + + + + delegated-to + + + + + dir + + + + + rsvp + + + + + + + attendee + + + + + trigger_duration + + + + + description + + + + + attach + + + + + trigger_occurs + + + + + trigger_interval + + + + + summary + + + + + duration + + + + + repeat + + + + + action + + + + + trigger_related + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/addons/crm/crm_meeting_data.xml b/addons/crm/crm_meeting_data.xml index 9d8cbba044e..2e2bb043c0b 100644 --- a/addons/crm/crm_meeting_data.xml +++ b/addons/crm/crm_meeting_data.xml @@ -1,30 +1,50 @@ - - + + - - Customer Meeting - - - - - Internal Meeting - - - - - Phone Call - - - + + Customer Meeting + + + - - Case Meeting - crm.meeting - - + + Internal Meeting + + + - + + Phone Call + + + + + + Case Meeting + crm.meeting + + + + + + + + + + + + + + + + + + + + + + diff --git a/addons/project_calendar/__terp__.py b/addons/project_calendar/__terp__.py index 22ef44ad8ba..dc091369928 100644 --- a/addons/project_calendar/__terp__.py +++ b/addons/project_calendar/__terp__.py @@ -26,7 +26,7 @@ "category" : "Generic Modules/Others", "description": """ Synchronize between Project task and Caldav Vtodo.""", "depends" : ["project", "caldav"], - "init_xml" : [], + "init_xml" : ["project_calendar_data.xml"], "demo_xml" : [], "update_xml" : ["project_calendar_view.xml", "project_calendar_wizard.xml"], diff --git a/addons/project_calendar/project_calendar_data.xml b/addons/project_calendar/project_calendar_data.xml new file mode 100644 index 00000000000..39c149b1339 --- /dev/null +++ b/addons/project_calendar/project_calendar_data.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file