<?xml version="1.0" encoding="utf-8" ?> <odoo> <!-- VIEWS --> <!-- FORM VIEW --> <record id="mail_activity_view_form_board" model="ir.ui.view"> <field name="name">mail.activity.boards.view.form</field> <field name="model">mail.activity</field> <field name="priority">30</field> <field name="arch" type="xml"> <form string="Activity Form" create="false" edit="false" delete="false"> <sheet string="Activity"> <button name="open_origin" type="object" class="centre oe_link" nolabel="1" > <h1><field name="res_name" /></h1> </button> <field name="activity_category" invisible="1" /> <field name="res_model" invisible="1" /> <field name="res_model_id" invisible="1" /> <field name="res_id" invisible="1" /> <group> <group> <field name="activity_type_id" required="1" options="{'no_create': True, 'no_open': True}" /> <field name="res_model_id_name" /> <field name="calendar_event_id" invisible="1" /> <field name="create_date" invisible="1" /> </group> <group> <field name="date_deadline" attrs="{'invisible': [('activity_category', '=', 'meeting')]}" /> <field name="calendar_event_id_start" string="Start meeting" attrs="{'invisible': [('calendar_event_id','=', False)]}" /> <field name="duration" widget="float_time" attrs="{'invisible': ['|',('duration', '=', False), ('calendar_event_id','=', False)]}" /> <field name="user_id" options="{'no_open': True}" /> </group> </group> <group attrs="{'invisible': ['|',('calendar_event_id','=', False),('calendar_event_id_partner_ids','=', False)]}" > <field name="calendar_event_id_partner_ids" mode="kanban" /> </group> <group> <field name="summary" placeholder="e.g. Discuss proposal" /> <field name="note" placeholder="Log a note..." /> </group> </sheet> </form> </field> </record> <!-- TREE VIEW --> <record id="mail_activity_view_tree" model="ir.ui.view"> <field name="name">mail.activity.boards.view.tree</field> <field name="model">mail.activity</field> <field name="inherit_id" ref="mail.mail_activity_view_tree" /> <field name="arch" type="xml"> <xpath expr="//tree" position="attributes"> <attribute name="default_order" /> <attribute name="decoration-danger" >(date_deadline < current_date)</attribute> <attribute name="decoration-warning" >(date_deadline == current_date)</attribute> <attribute name="decoration-success" >(date_deadline > current_date)</attribute> </xpath> </field> </record> <!-- KANBAN VIEW --> <record id="mail_activity_view_kanban" model="ir.ui.view"> <field name="name">mail.activity.boards.view.kanban</field> <field name="model">mail.activity</field> <field name="priority" eval="10" /> <field name="arch" type="xml"> <kanban default_group_by="activity_type_id" class="_kanban_small_column o_opportunity_kanban" create="0" _order="date_deadline" group_create="false" group_delete="false" group_edit="false" > <field name="user_id" /> <field name="res_id" /> <field name="res_name" /> <field name="res_model" /> <field name="summary" /> <field name="date_deadline" /> <field name="state" /> <field name="icon" /> <field name="activity_type_id" /> <field name="activity_category" /> <templates> <t t-name="kanban-box"> <div t-attf-class="oe_kanban_content oe_kanban_global_click"> <div class="oe_kanban_content"> <div> <strong class="o_kanban_record_subtitle"> <span t-attf-class="fa #{record.icon.raw_value}" /> <field name="summary" /> </strong> </div> <div> <strong class="o_kanban_record_title"><field name="res_name" /></strong> </div> <div class="o_kanban_record_bottom"> <div class="oe_kanban_bottom_left"> <t t-set="act_date" t-value="new Date(record.date_deadline.raw_value)" /> <t t-if="act_date < (new Date())"> <span t-attf-class="text-danger"><i title="date" class="fa fa-clock-o" /></span> <t t-if="record.activity_category.raw_value!='meeting'" > <span t-attf-class="text-danger"> <field name="date_deadline" t-options='{"widget": "date"}' /> </span> </t> <t t-else=""> <span t-attf-class="text-danger"> <field name="calendar_event_id_start" t-options='{"widget": "date"}' /> </span> </t> </t> <t t-else=""> <span><i title="date" class="fa fa-clock-o" /></span> <t t-if="record.activity_category.raw_value!='meeting'" > <span> <field name="date_deadline" t-options='{"widget": "date"}' /> </span> </t> <t t-else=""> <field name="calendar_event_id_start" t-options='{"widget": "date"}' /> </t> </t> </div> <div class="oe_kanban_bottom_right"> <img t-att-src="kanban_image('res.users', 'image_small', record.user_id.raw_value)" t-att-title="record.user_id.value" t-att-alt="record.user_id.value" width="24" height="24" class="oe_kanban_avatar" /> </div> </div> </div> </div> </t> </templates> </kanban> </field> </record> <!-- SEARCH VIEW --> <record id="mail_activity_view_search" model="ir.ui.view"> <field name="name">mail.activity.boards.view.search</field> <field name="model">mail.activity</field> <field name="inherit_id" ref="mail.mail_activity_view_search" /> <field name="priority" eval="2" /> <field name="mode">primary</field> <field name="arch" type="xml"> <xpath expr='//field[@name="res_model"]' position='before'> <field name="user_id" /> <field name="res_name" string="Origin" /> </xpath> <xpath expr='//filter[@name="activities_overdue"]' position='before'> <filter string="Act. next month" name="activities_month" domain="[('date_deadline', '<', (context_today()+datetime.timedelta(days=30)).strftime('%Y-%m-%d'))]" help="Show activities scheduled for next month." /> <filter string="Act. next 6 months" name="activities_6_month" domain="[('date_deadline', '<', (context_today()+datetime.timedelta(days=180)).strftime('%Y-%m-%d'))]" help="Show activities scheduled for next 6 months." /> <separator /> </xpath> <xpath expr='//search/group' position='inside'> <filter string="User" name='assigned_user' context="{'group_by':'user_id'}" /> <filter string="Origin" name='origin' context="{'group_by': 'res_model_id'}" /> </xpath> </field> </record> <!-- ACTION --> <record model="ir.actions.act_window" id="open_boards_activities"> <field name="name">Activities</field> <field name="res_model">mail.activity</field> <field name="view_mode">kanban,form</field> <field name="domain">[]</field> <field name="context">{}</field> <field name="view_ids" eval="[(5, 0, 0), (0, 0, {'view_mode': 'kanban', 'view_id': ref('mail_activity_view_kanban')}), (0, 0, {'view_mode': 'tree', 'view_id': ref('mail_activity_view_tree')}), (0, 0, {'view_mode': 'form', 'view_id': ref('mail_activity_view_form_board')}), (0, 0, {'view_mode': 'calendar'}), (0, 0, {'view_mode': 'pivot'}), (0, 0, {'view_mode': 'graph'})]" /> <field name="search_view_id" ref="mail_activity_view_search" /> </record> <!-- Menus --> <menuitem id="board_menu_activities" name="Activities" parent="base.menu_board_root" action="open_boards_activities" sequence="1" /> </odoo>