<?xml version="1.0" ?>
<!-- Copyright 2019 Le Filament
     License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
    <data>

        <!--
            Vues
        -->
        <record id="cgscop_hr_timesheet_line_search" model="ir.ui.view">
            <field name="name">cgscop.hr.timesheet.line.search</field>
            <field name="model">account.analytic.line</field>
            <field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_search" />
            <field name="priority">100</field>
            <field name="arch" type="xml">
                <field name="task_id" position="replace" />
                <field name="project_id" position="attributes">
                    <attribute name="string">Code activité UR</attribute>
                </field>
                <field name="project_id" position="after">
                    <field name="partner_id" string="Contact" />
                </field>
                <xpath expr="//filter[@name='mine']" position="after">
                    <separator />
                    <filter
                        domain="[('sheet_id', '=', False)]"
                        string="A rapporter"
                        name="no_report"
                    />
                    <filter
                        domain="[('state', '=', 'draft')]"
                        string="En brouillon"
                        name="draft"
                    />
                    <filter
                        domain="[('state', '=', 'submit')]"
                        string="Soumis"
                        name="submitted"
                    />
                    <filter
                        domain="[('state', '=', 'valid')]"
                        string="Validé"
                        name="validated"
                    />
                </xpath>
                <xpath expr="//filter[@name='groupby_task']" position="replace">
                    <filter
                        string="Contact"
                        name="groupby_partner"
                        domain="[]"
                        context="{'group_by':'partner_id'}"
                    />
                    <filter
                        string="Dispositif financier"
                        name="groupby_financial_system"
                        domain="[]"
                        context="{'group_by':'ur_financial_system_id'}"
                    />
                </xpath>
                <xpath expr="//filter[@name='groupby_date']" position="attributes">
                    <attribute name="context">{'group_by':'date:day'}</attribute>
                </xpath>
                <xpath expr="//filter[@name='groupby_project']" position="attributes">
                    <attribute name="string">Code activité UR</attribute>
                </xpath>
            </field>
        </record>

        <!-- Form View Timesheet CG -->
        <record id="view_cgscop_hr_timesheet_line_form" model="ir.ui.view">
            <field name="name">account.analytic.line.timesheet.form.cgscop</field>
            <field name="model">account.analytic.line</field>
            <field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_form" />
            <field name="arch" type="xml">
                <xpath expr="//form/sheet/group" position="attributes">
                    <attribute name="invisible">1</attribute>
                </xpath>
                <xpath expr="//form/sheet/group" position="after">
                    <group string="Activité">
                        <field
                            name="ur_id"
                            options="{'no_open': True, 'no_create': True}"
                            groups="cgscop_partner.group_cg_administrator"
                        />
                        <field name="employee_id" required="True" readonly="1" />
                        <field
                            name="employee_id"
                            options="{'no_open': True, 'no_create': True}"
                            required="True"
                            groups="hr_timesheet.group_timesheet_manager"
                        />
                        <field name="date" />
                        <field
                            name="project_id"
                            required="True"
                            options="{'no_open': True, 'no_create': True}"
                            string="Code activité UR"
                        />
                        <field
                            name="partner_id"
                            domain="[('is_company', '=', True), ('ur_id', '=', ur_id)]"
                            required="True"
                            options="{'no_create': True}"
                            string="Contact"
                        />
                        <field name="name" />
                        <field name="unit_amount" widget="float_time" />
                    </group>
                    <group string="Divers">
                        <field name="is_present" widget="boolean_toggle" />
                    </group>
                    <group
                        name="DF"
                        string="Dispositif financier"
                        attrs="{'invisible': ['&amp;',('ur_regional_convention_nb', '=', 0),('ur_financial_system_nb', '=', 0)]}"
                    >
                        <field
                            name="ur_financial_system_id"
                            options="{'no_open': True, 'no_create': True}"
                            attrs="{'required':[('ur_financial_system_nb', '>', 0)], 'invisible':[('ur_financial_system_nb', '=', 0)]}"
                        />
                        <field
                            name="ur_regional_convention_id"
                            options="{'no_open': True, 'no_create': True}"
                            attrs="{'required':[('ur_regional_convention_nb', '>', 0)], 'invisible':[('ur_regional_convention_nb', '=', 0)]}"
                        />
                        <field
                            name="justificatifs"
                            attrs="{'invisible': [('ur_id', '!=', %(cgscop_partner.riga_14243)d)]}"
                        />
                        <field name="ur_regional_convention_nb" invisible="1" />
                        <field name="ur_financial_system_nb" invisible="1" />
                        <field name="user_id" invisible="1" />
                    </group>
                </xpath>
            </field>
        </record>


        <!-- Form View Timesheet CG -->
        <record id="view_cgscop_hr_timesheet_line_form2" model="ir.ui.view">
            <field name="name">account.analytic.line.timesheet.form.cgscop</field>
            <field name="model">account.analytic.line</field>
            <field name="inherit_id" ref="analytic.view_account_analytic_line_form" />
            <field name="arch" type="xml">
                <xpath expr="//sheet/group" position="attributes">
                    <attribute name="groups">base.group_system</attribute>
                </xpath>
                <xpath expr="//sheet/group" position="before">
                    <group string="Activité">
                        <field
                            name="ur_id"
                            options="{'no_open': True, 'no_create': True}"
                            groups="cgscop_partner.group_cg_administrator"
                        />
                        <field
                            name="employee_id"
                            options="{'no_open': True, 'no_create': True}"
                            required="True"
                            groups="hr_timesheet.group_timesheet_manager"
                        />
                        <field name="date" />
                        <field
                            name="project_id"
                            required="True"
                            options="{'no_open': True, 'no_create': True}"
                            string="Code activité UR"
                        />
                        <field
                            name="partner_id"
                            domain="[('is_company', '=', True), ('ur_id', '=', ur_id)]"
                            required="True"
                            options="{'no_open': True, 'no_create': True}"
                            string="Contact"
                        />
                        <field name="name" />
                        <field name="unit_amount" widget="float_time" />
                    </group>
                    <group string="Divers">
                        <field name="is_present" widget="boolean_toggle" />
                    </group>
                    <group
                        name="DF"
                        string="Dispositif financier"
                        attrs="{'invisible': ['&amp;',('ur_regional_convention_nb', '=', 0),('ur_financial_system_nb', '=', 0)]}"
                    >
                        <field
                            name="ur_financial_system_id"
                            options="{'no_open': True, 'no_create': True}"
                            attrs="{'required':[('ur_financial_system_nb', '>', 0)], 'invisible':[('ur_financial_system_nb', '=', 0)]}"
                        />
                        <field
                            name="ur_regional_convention_id"
                            options="{'no_open': True, 'no_create': True}"
                            attrs="{'required':[('ur_regional_convention_nb', '>', 0)], 'invisible':[('ur_regional_convention_nb', '=', 0)]}"
                        />
                        <field
                            name="justificatifs"
                            attrs="{'invisible': [('ur_id', '!=', %(cgscop_partner.riga_14243)d)]}"
                        />
                        <field name="ur_regional_convention_nb" invisible="1" />
                        <field name="ur_financial_system_nb" invisible="1" />
                    </group>
                </xpath>
            </field>
        </record>


        <!-- Tree View Timesheet CG -->
        <record id="view_cgscop_hr_timesheet_line_tree" model="ir.ui.view">
            <field name="name">account.analytic.line.timesheet.cgscop</field>
            <field name="model">account.analytic.line</field>
            <field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_tree" />
            <field name="priority">100</field>
            <field name="arch" type="xml">
                <field name="name" position="replace" />
                <field name="date" position="attributes">
                    <attribute
                        name="attrs"
                    >{'readonly': [('state', 'in', ('submit', 'valid'))]}</attribute>
                </field>
                <field name="project_id" position="attributes">
                    <attribute
                        name="options"
                    >{'no_open': True, 'no_create': True}</attribute>
                    <attribute name="string">Code activité UR</attribute>
                    <attribute
                        name="attrs"
                    >{'readonly': [('state', 'in', ('submit', 'valid'))]}</attribute>
                </field>
                <field name="project_id" position="after">
                    <field
                        name="partner_id"
                        domain="[('is_company', '=', True), ('ur_id', '=', ur_id)]"
                        required="True"
                        class="td-ellipsis"
                        options="{'no_open': True, 'no_create': True}"
                        string="Contact"
                        attrs="{'readonly': [('state', 'in', ('submit', 'valid'))]}"
                    />
                    <field
                        name="name"
                        class="td-minwidth"
                        attrs="{'readonly': [('state', 'in', ('submit', 'valid'))]}"
                    />
                    <field name="is_present" widget="boolean_toggle" />
                </field>
                <field name="task_id" position="attributes">
                    <attribute name="invisible">True</attribute>
                </field>
                <field name="unit_amount" position="attributes">
                    <attribute name="widget">float_time</attribute>
                    <attribute
                        name="attrs"
                    >{'readonly': [('state', 'in', ('submit', 'valid'))]}</attribute>
                </field>
                <field name="unit_amount" position="after">
                    <field name="ur_regional_convention_nb" invisible="1" />
                    <field name="ur_financial_system_nb" invisible="1" />
                    <field
                        name="ur_financial_system_id"
                        options="{'no_open': True, 'no_create': True}"
                        attrs="{'required': [('ur_financial_system_nb', '>', 0)], 'invisible': [('ur_financial_system_nb', '&lt;', 1)], 'readonly': [('state', 'in', ('submit', 'valid'))]}"
                    />
                    <field
                        name="ur_regional_convention_id"
                        options="{'no_open': True, 'no_create': True}"
                        attrs="{'required':[('ur_regional_convention_nb', '>', 0)], 'invisible':[('ur_regional_convention_nb', '&lt;', 1)], 'readonly': [('state', 'in', ('submit', 'valid'))]}"
                    />
                    <field
                        name="justificatifs"
                        attrs="{'invisible': [('ur_id', '!=', %(cgscop_partner.riga_14243)d)]}"
                    />
                    <field name="state" />
                    <field
                        name="ur_id"
                        attrs="{'readonly': [('state', 'in', ('submit', 'valid'))]}"
                        groups="cgscop_partner.group_cg_administrator"
                    />
                </field>
            </field>
        </record>

        <!-- Pivot View Timesheet CG -->
        <record id="view_cgscop_hr_timesheet_line_pivot" model="ir.ui.view">
            <field name="name">account.analytic.line.timesheet.cgscop.pivot</field>
            <field name="model">account.analytic.line</field>
            <field name="arch" type="xml">
                <pivot string="Rapport">
                    <field name="project_id" type="row" string="Code activité UR" />
                    <field name="partner_id" type="row" string="Contact" />
                    <field name="date" interval="month" type="col" />
                    <field name="unit_amount" type="measure" widget="timesheet_uom" />
                </pivot>
            </field>
        </record>

        <!-- Calendar View Timesheet CG -->
        <record model="ir.ui.view" id="view_cgscop_hr_timesheet_line_calendar">
            <field name="name">account.analytic.line.timesheet.cgscop.calendar</field>
            <field name="model">account.analytic.line</field>
            <field name="arch" type="xml">
                <calendar
                    string="Ligne de temps"
                    date_start="date"
                    mode="month"
                    quick_add="False"
                    color="project_id"
                    form_view_id="cgscop_timesheet.view_cgscop_hr_timesheet_line_form"
                >
                    <field name="calendar_l1" />
                    <field name="calendar_l2" />
                </calendar>
            </field>
        </record>

        <!--
            Actions
        -->

        <!-- Hérite l'action de la fenetre dans hr_timesheet -->
        <record id="hr_timesheet.act_hr_timesheet_line" model="ir.actions.act_window">
            <field name="view_mode">calendar,tree,form,pivot</field>
            <field
                name="context"
            >{'search_default_no_report': 1, 'search_default_groupby_date': 1}</field>
        </record>
        <record
            id="act_hr_timesheet_line_view_calendar"
            model="ir.actions.act_window.view"
        >
            <field name="view_mode">calendar</field>
            <field name="sequence" eval="5" />
            <field name="view_id" ref="view_cgscop_hr_timesheet_line_calendar" />
            <field name="act_window_id" ref="hr_timesheet.act_hr_timesheet_line" />
        </record>

        <!-- Hérite l'action de la fenetre dans hr_timesheet -->
        <record id="hr_timesheet.timesheet_action_all" model="ir.actions.act_window">
            <field name="res_model">account.analytic.line</field>
            <field name="search_view_id" ref="cgscop_hr_timesheet_line_search" />
            <field name="domain">[('project_id', '!=', False)]</field>
            <field name="context">{
                'search_default_week':1,
                'search_default_groupby_date':1,
                'search_default_groupby_employee':1,
                'search_default_groupby_project':1,
            }</field>
        </record>

        <!-- Report View per Contact -->
        <record id="timesheet_action_report_by_contact" model="ir.actions.act_window">
            <field name="name">Par Contact</field>
            <field name="res_model">account.analytic.line</field>
            <field name="domain">[('project_id', '!=', False)]</field>
            <field name="context">{'search_default_groupby_partner':1,}</field>
            <field
                name="search_view_id"
                ref="cgscop_timesheet.cgscop_hr_timesheet_line_search"
            />
            <field
                name="view_ids"
                eval="[(5, 0, 0),
                (0, 0, {'view_mode': 'pivot', 'sequence': 5, 'view_id': ref('hr_timesheet.view_hr_timesheet_line_pivot')}),
                (0, 0, {'view_mode': 'tree', 'sequence': 10, 'view_id': ref('cgscop_timesheet.view_cgscop_hr_timesheet_line_tree')}),
                (0, 0, {'view_mode': 'form', 'sequence': 15, 'view_id': ref('cgscop_timesheet.view_cgscop_hr_timesheet_line_form')})]"
            />
        </record>

        <record id="hr_timesheet_submit_action_server" model="ir.actions.server">
            <field name="name">Insérer dans une feuille de temps</field>
            <field name="type">ir.actions.server</field>
            <field name="model_id" ref="model_account_analytic_line" />
            <field name="binding_model_id" ref="model_account_analytic_line" />
            <field name="state">code</field>
            <field name="code">
if records:
    action = records.action_submit_timesheet_lines()
            </field>
        </record>


        <!--
            Menus
        -->

        <!-- affichage du menu employé uniquement pour le groupe Fonctionnaire -->
        <record model="ir.ui.menu" id="hr.menu_hr_root">
            <field name="groups_id" eval="[(6,0,[ref('hr.group_hr_user')])]" />
        </record>

        <!-- ajoute des droits sur le menu Configuration -->
        <record model="ir.ui.menu" id="hr_timesheet.hr_timesheet_menu_configuration">
            <field
                name="groups_id"
                eval="[(6,0, [ref('hr_timesheet.group_timesheet_manager'), ref('cgscop_partner.group_cg_administrator'), ref('cgscop_partner.group_ur_list_modif')])]"
            />
        </record>

        <!-- ajoute des droits pour gestionnaire uniquement sur le menu Toutes les lignes de temps -->
        <record model="ir.ui.menu" id="hr_timesheet.timesheet_menu_activity_all">
            <field
                name="groups_id"
                eval="[(6,0, [ref('hr_timesheet.group_timesheet_manager'), ref('cgscop_partner.group_cg_administrator')])]"
            />
        </record>

        <menuitem
            id="timesheet_menu_report_timesheet_by_contact"
            parent="hr_timesheet.menu_timesheets_reports_timesheet"
            action="timesheet_action_report_by_contact"
            name="Par Contact"
            sequence="25"
        />
    </data>

</odoo>