[IMP] base_calendar: improve object structure of base calendar

bzr revid: hmo@tinyerp.com-20100121150553-tta4hz2qizb0pjtb
This commit is contained in:
Harry (Open ERP) 2010-01-21 20:35:53 +05:30
parent a765021d5b
commit 09e3e50279
2 changed files with 65 additions and 92 deletions

View File

@ -243,7 +243,7 @@ class CalDAV(object):
return res
class Calendar(CalDAV, osv.osv_memory):
class Calendar(CalDAV, osv.osv):
_name = 'basic.calendar'
__attribute__ = {
'prodid': None, # Use: R-1, Type: TEXT, Specifies the identifier for the product that created the iCalendar object.
@ -258,40 +258,50 @@ class Calendar(CalDAV, osv.osv_memory):
'vfreebusy': None, # Use: O-n, Type: Collection of FreeBusy class
'vtimezone': None, # Use: O-n, Type: Collection of Timezone class
}
_columns = {
'name': fields.char("Name", size=64),
'line_ids': fields.one2many('basic.calendar.lines', 'calendar_id', 'Calendar Lines')
}
Calendar()
class basic_calendar_fields_type(osv.osv):
_name = 'basic.calendar.fields.type'
_description = 'Calendar fields type'
class basic_calendar_line(osv.osv):
_name = 'basic.calendar.lines'
_description = 'Calendar Lines'
_columns = {
'name': fields.selection([('event', 'Event'), ('todo', 'TODO'), \
('alarm', 'Alarm'), \
('attendee', 'Attendee')], \
string="Type", size=64),
'object_id': fields.many2one('ir.model', 'Object'),
'calendar_id': fields.many2one('basic.calendar', 'Calendar', required=True),
'mapping_ids': fields.one2many('basic.calendar.fields', 'type_id', 'Fields Mapping')
}
}
basic_calendar_fields_type()
basic_calendar_line()
class basic_calendar_attribute(osv.osv):
_name = 'basic.calendar.attributes'
_description = 'Calendar attributes'
_columns = {
'name': fields.char("Name", size=64, required=True),
'type': fields.selection([('event', 'Event'), ('todo', 'TODO'), \
('alarm', 'Alarm'), \
('attendee', 'Attendee')], \
string="Type", size=64, required=True),
}
basic_calendar_attribute()
class basic_calendar_fields(osv.osv):
_name = 'basic.calendar.fields'
_description = 'Calendar fields'
def _get_fields_selection(self, cr, uid, context=None):
res = []
# To check
res += map(lambda x: (x, x), Event.__attribute__.keys())
res += map(lambda x: (x, x), ToDo.__attribute__.keys())
return res
_columns = {
'field_id': fields.many2one('ir.model.fields', 'Open ERP Field'),
'name': fields.selection(_get_fields_selection, string='Name', required=True),
'type_id': fields.many2one('basic.calendar.fields.type', 'Type', required=True),
'field_id': fields.many2one('ir.model.fields', 'OpenObject Field'),
'name': fields.many2one('basic.calendar.attributes', 'Name', required=True),
'type_id': fields.many2one('basic.calendar.lines', 'Type', required=True),
'expr': fields.char("Expression", size=64),
'fn': fields.selection( [('field', 'Use the field'),
('const', 'Expression as constant'),

View File

@ -2,85 +2,48 @@
<openerp>
<data>
<record id="view_calendar_fields_from" model="ir.ui.view">
<field name="name">Attributes Mapping</field>
<field name="model">basic.calendar.fields</field>
<record id="view_calendar_form" model="ir.ui.view">
<field name="name">Basic Calendar</field>
<field name="model">basic.calendar</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Attributes Mapping">
<field name="name" select="1" required="1" />
<field name="field_id" select="1" required="1" />
<field name="fn" select="1" required="1" />
<field name="expr" />
<newline/>
<separator string="Mapping" colspan="4"/>
<field name="mapping" select="1" colspan="4" nolabel="1"/>
<form string="Basic Calendar">
<field name="name" required="1" />
<field name="line_ids" mode="form,tree" colspan="4" nolabel="1">
<form string="Calendar Lines">
<field name="name" required="1" select="1" />
<field name="object_id" required="1" select="1" />
<field name="mapping_ids" select="1" colspan="4" nolabel="1">
<tree string="Attributes Mapping" editable="bottom">
<field name="name" required="1" domain="[('type', '=', parent.name)]"/>
<field name="fn" select="1" />
<field name="field_id" select="1" domain="[('model_id', '=', parent.object_id)]" />
<field name="expr" />
</tree>
<form string="Attributes Mapping">
<field name="name" select="1" required="1" domain="[('type', '=', parent.name)]"/>
<field name="field_id" select="1" domain="[('model_id', '=', parent.object_id)]"
required="1" />
<field name="fn" select="1" required="1" />
<field name="expr" />
</form>
</field>
</form>
<tree string="Attributes Mapping" editable="bottom">
<field name="name" select="1" />
<field name="object_id" select="1" />
</tree>
</field>
</form>
</field>
</record>
<record id="view_calendar_fields_tree" model="ir.ui.view">
<field name="name">Attributes Mapping</field>
<field name="model">basic.calendar.fields</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Attributes Mapping">
<field name="name" select="1" />
<field name="fn" select="1" />
<field name="field_id" select="1" />
<field name="expr" />
</tree>
</field>
</record>
<record id="view_calendar_fields_type_from" model="ir.ui.view">
<field name="name">Attributes Type Form</field>
<field name="model">basic.calendar.fields.type</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Calendar Attributes">
<field name="name" required="1" select="1" />
<field name="object_id" required="1" select="1" />
<newline/>
<field name="mapping_ids" select="1" colspan="4" nolabel="1">
<tree string="Attributes Mapping" editable="bottom">
<field name="name" select="1" />
<field name="fn" select="1" />
<field name="field_id" select="1" domain="[('model_id', '=', parent.object_id)]" />
<field name="expr" />
</tree>
<form string="Attributes Mapping">
<field name="name" select="1" required="1" />
<field name="field_id" select="1" domain="[('model_id', '=', parent.object_id)]"
required="1" />
<field name="fn" select="1" required="1" />
<field name="expr" />
<newline />
<separator string="Mapping" colspan="4" />
<field name="mapping" select="1" colspan="4"
nolabel="1" />
</form>
</field>
</form>
</field>
</record>
<record id="view_calendar_fields_type_tree" model="ir.ui.view">
<field name="name">Attributes Type Tree</field>
<field name="model">basic.calendar.fields.type</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Calendar Attributes">
<field name="name" select="1" />
<field name="object_id" select="1" />
</tree>
</field>
</record>
<record id="action_view_calendar_fields_type" model="ir.actions.act_window">
<field name="name">Calendar Attributes</field>
<record id="action_view_calendar" model="ir.actions.act_window">
<field name="name">Calendar</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">basic.calendar.fields.type</field>
<field name="res_model">basic.calendar</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
@ -88,9 +51,9 @@
<menuitem id="menu_calendar_configuration" name="Calendar"
parent="base.menu_base_config" sequence="10" />
<menuitem id="menu_calendar_fields_type"
name="Calendar Attributes" parent="menu_calendar_configuration"
sequence="5" action="action_view_calendar_fields_type" />
<menuitem id="menu_calendar"
name="Calendar" parent="menu_calendar_configuration"
sequence="5" action="action_view_calendar" />
</data>
</openerp>
</openerp>