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