Caldav and Carddav support

base_dav
REPOSITORY
REPOSITORYOCA/server-backend
GIT
GIThttps://github.com/OCA/server-backend.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-backend/tree/11.0/base_dav
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYExtra Tools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), initOS GmbH, Therp BV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), initOS GmbH, Therp BV
COMMITTERS
COMMITTERSGitHub, oca-travis, OCA-git-bot, fkantelberg
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:24:02
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES radicale
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_dav_collection_form dav.collection form New
view_dav_collection_mapping_form dav.collection.field_mapping form New
view_dav_collection_mapping_tree dav.collection.field_mapping tree New
view_dav_collection_tree dav.collection tree New
Models touched (2)

New fields (9)
  • dav_type Selection
    default='calendar' required=True string='Type' args: [('calendar', 'Calendar'), ('addressbook', 'Addressbook'), ('files', 'Files')]
  • domain Char
    default='[]' required=True
  • field_mapping_ids One2many → dav.collection.field_mapping
    string='Field mappings' args: 'dav.collection.field_mapping', 'collection_id'
  • field_uuid Many2one → ir.model.fields
    args: 'ir.model.fields'
  • model_id Many2one → ir.model
    domain=[('transient', '=', False)] required=True string='Model' args: 'ir.model'
  • name Char
    required=True
  • rights Selection
    default='owner_only' required=True args: [('owner_only', 'Owner Only'), ('owner_write_only', 'Owner Write Only'), ('authenticated', 'Authenticated')]
  • tag Char
    compute='_compute_tag'
  • url Char
    compute='_compute_url'
Public methods (8)
  • dav_delete(self, collection, components)
    @api.multi
  • dav_get(self, collection, href)
    @api.multi
  • dav_list(self, collection, path_components)
    @api.multi
  • dav_upload(self, collection, href, item)
    @api.multi
  • eval(self)
    @api.multi
  • from_vobject(self, item)
    @api.multi
  • get_record(self, components)
    @api.multi
  • to_vobject(self, record)
    @api.multi

New fields (7)
  • collection_id Many2one → dav.collection
    ondelete='cascade' required=True args: 'dav.collection'
  • export_code Text
    help='Code to export the value to a vobject. Use the variable result for the output of the value and record as input'
  • field_id Many2one → ir.model.fields
    help='Field of the model the values are mapped to' required=True args: 'ir.model.fields'
  • import_code Text
    help='Code to import the value from a vobject. Use the variable result for the output of the value and item as input'
  • mapping_type Selection
    default='simple' required=True args: [('simple', 'Simple'), ('code', 'Code')]
  • model_id Many2one → ir.model
    related='collection_id.model_id' args: 'ir.model'
  • name Char
    help='Attribute name in the vobject' required=True
Public methods (2)
  • from_vobject(self, child)
    @api.multi
  • to_vobject(self, record)
    @api.multi
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/server-backend
PULL REQUEST
PULL REQUEST[12.0][MIG] base_dav: migration to 12.0 (#226)
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/server-backend
PULL REQUEST
PULL REQUEST[MIG] base_dav: Migration to 17.0 (#276)