<?xml version="1.0" encoding="utf-8" ?>
<odoo>
    <data>
        <!--
            Vues
        -->

        <!-- Tree view -->
        <record id="view_cgscop_timesheet_sheet_tree" model="ir.ui.view">
            <field name="name">cgscop.timesheet.sheet.tree</field>
            <field name="model">cgscop.timesheet.sheet</field>
            <field name="arch" type="xml">
                <tree string="Timesheet Reports" decoration-warning="state=='draft'">
                    <field name="name" />
                    <field name="employee_id" />
                    <field name="create_date" />
                    <field name="validation_date" />
                    <field name="total_hour" sum="Total" />
                    <field name="state" />
                </tree>
            </field>
        </record>

        <!-- Form view -->
        <record id="view_cgscop_timesheet_sheet_form" model="ir.ui.view">
            <field name="name">cgscop.timesheet.sheet.form</field>
            <field name="model">cgscop.timesheet.sheet</field>
            <field name="priority" eval="25" />
            <field name="arch" type="xml">
                <form>
                    <field name="company_id" invisible="1" />
                    <header>
                        <button
                            name="action_submit_timesheet"
                            states="draft"
                            string="Soumettre"
                            type="object"
                            class="oe_highlight"
                        />
                        <button
                            name="approve_timesheet_sheets"
                            states="submit"
                            string="Valider"
                            type="object"
                            groups="hr_timesheet.group_timesheet_manager"
                            class="oe_highlight"
                        />
                        <button
                            string="Imprimer"
                            type="action"
                            name="%(cgscop_timesheet_print_act)d"
                            class="oe_read_only"
                        />
                        <button
                            name="reset_timesheet_sheets"
                            string="Remettre en brouillon"
                            type="object"
                            attrs="{'invisible': [('state', '=', 'draft')]}"
                            groups="hr_timesheet.group_timesheet_manager"
                        />
                        <field
                            name="state"
                            widget="statusbar"
                            statusbar_visible="draft,submit,valid"
                        />
                    </header>
                    <sheet>
                        <div class="oe_title">
                            <label for="name" class="oe_edit_only" />
                            <h1>
                                <field
                                    name="name"
                                    attrs="{'readonly': [('can_edit','=', False), ('state','!=', 'draft')]}"
                                />
                            </h1>
                        </div>
                        <group>
                            <group>
                                <field
                                    name="employee_id"
                                    groups="hr_timesheet.group_timesheet_manager"
                                    options="{'no_open': True, 'no_create': True}"
                                />
                                <field
                                    name="company_id"
                                    groups="base.group_multi_company"
                                    options="{'no_open': True, 'no_create': True}"
                                />
                            </group>
                            <group>
                                <field name="create_date" readonly="1" />
                                <field name="submit_date" readonly="1" />
                                <field name="validation_date" readonly="1" />
                                <field name="total_hour" widget="float_time" />
                            </group>
                        </group>
                        <field name="can_edit" invisible="1" />
                        <field
                            name="timesheet_line_ids"
                            widget="many2many"
                            domain="[('sheet_id', '=', False), ('employee_id', '=', employee_id)]"
                            options="{'reload_on_button': True}"
                            attrs="{'readonly': [('can_edit','=', False), ('state','!=', 'draft')]}"
                            context="{'form_view_ref' : 'hr_timesheet.timesheet_view_form_user'}"
                        >
                            <tree editable="top">
                                <field name="company_id" invisible="1" />
                                <field name="ur_id" invisible="1" />
                                <field name="date" />
                                <field name="employee_id" readonly="1" />
                                <field name="state" invisible="1" />
                                <field name="sheet_id" invisible="1" />
                                <field
                                    name="project_id"
                                    options="{'no_open': True, 'no_create': True}"
                                />
                                <field
                                    name="partner_id"
                                    options="{'no_open': True, 'no_create': True}"
                                />
                                <field name="name" />
                                <field name="unit_amount" widget="float_time" />
                                <field
                                    name="ur_financial_system_id"
                                    options="{'no_open': True, 'no_create': True}"
                                />
                                <field
                                    name="justificatifs"
                                    attrs="{'invisible': [('ur_id', '!=', %(cgscop_partner.riga_14243)d)]}"
                                />
                            </tree>
                        </field>
                    </sheet>
                    <div class="oe_chatter">
                        <field
                            name="message_follower_ids"
                            options="{'post_refresh':True}"
                            groups="base.group_user"
                        />
                        <field name="activity_ids" />
                        <field name="message_ids" />
                    </div>
                </form>
            </field>
        </record>

        <!-- Search view -->
        <record id="view_cgscop_timesheet_sheet_filter" model="ir.ui.view">
            <field name="name">cgscop.timesheet.sheet.filter</field>
            <field name="model">cgscop.timesheet.sheet</field>
            <field name="arch" type="xml">
                <search string="Feuille de temps">
                    <field name="name" />
                    <field name="state" />
                    <separator />
                    <field name="employee_id" />
                    <filter
                        string="Mes feuilles de temps"
                        name="my_reports"
                        domain="[('employee_id.user_id', '=', uid)]"
                    />
                    <filter
                        string="Mon équipe"
                        name="my_team_reports"
                        domain="[('employee_id.parent_id.user_id', '=', uid)]"
                        groups="hr_timesheet.group_timesheet_manager"
                        help="Expenses of Your Team Member"
                    />
                    <separator />
                    <filter
                        domain="[('state', '=', 'draft')]"
                        string="Brouillon"
                        name="draft"
                    />
                    <filter
                        domain="[('state', '=', 'submit')]"
                        string="Soumis"
                        name="submitted"
                    />
                    <filter
                        domain="[('state', '=', 'valid')]"
                        string="Validé"
                        name="valid"
                    />
                    <group expand="0" string="Group By">
                        <filter
                            string="Employé"
                            name="employee"
                            domain="[]"
                            context="{'group_by': 'employee_id'}"
                        />
                        <filter
                            string="Statut"
                            domain="[]"
                            context="{'group_by': 'state'}"
                            name="state"
                        />
                    </group>
                </search>
            </field>
        </record>


        <!--
            Actions
        -->

        <record id="action_cgscop_timesheet_sheet_my_all" model="ir.actions.act_window">
            <field name="name">Mes feuilles de temps</field>
            <field name="res_model">cgscop.timesheet.sheet</field>
            <field name="view_mode">tree,form</field>
            <field name="search_view_id" ref="view_cgscop_timesheet_sheet_filter" />
            <field name="domain">[('employee_id.user_id', '=', uid)]</field>
            <field name="context">{'search_default_my_reports': 1}</field>
        </record>

        <record
            id="action_cgscop_timesheet_sheet_to_approve"
            model="ir.actions.act_window"
        >
            <field name="name">Feuilles de temps à valider</field>
            <field name="res_model">cgscop.timesheet.sheet</field>
            <field name="view_mode">tree,form</field>
            <field name="search_view_id" ref="view_cgscop_timesheet_sheet_filter" />
            <field name="domain">[]</field>
            <field name="context">{'search_default_submitted': 1}</field>
        </record>

        <record id="action_cgscop_timesheet_sheet_all" model="ir.actions.act_window">
            <field name="name">Toutes les feuilles de temps</field>
            <field name="res_model">cgscop.timesheet.sheet</field>
            <field name="view_mode">tree,form</field>
            <field name="search_view_id" ref="view_cgscop_timesheet_sheet_filter" />
            <field name="domain">[('company_id', '=', allowed_company_ids[0])]</field>
            <field name="context">{}</field>
        </record>



        <!--
            Menus
        -->

        <menuitem
            id="timesheet_sheet_menu"
            parent="hr_timesheet.timesheet_menu_root"
            name="Feuilles de temps"
            sequence="25"
        />

        <menuitem
            id="menu_hr_timesheet_my_timesheet"
            name="Mes feuilles de temps"
            sequence="1"
            action="cgscop_timesheet.action_cgscop_timesheet_sheet_my_all"
            parent="cgscop_timesheet.timesheet_sheet_menu"
        />

        <menuitem
            id="menu_hr_timesheet_to_approve"
            name="À valider"
            sequence="1"
            action="cgscop_timesheet.action_cgscop_timesheet_sheet_to_approve"
            parent="cgscop_timesheet.timesheet_sheet_menu"
            groups="hr_timesheet.group_timesheet_manager"
        />

        <menuitem
            id="menu_hr_timesheet_all"
            name="Toutes les feuilles de temps"
            sequence="1"
            action="cgscop_timesheet.action_cgscop_timesheet_sheet_all"
            parent="cgscop_timesheet.timesheet_sheet_menu"
            groups="hr_timesheet.group_timesheet_manager"
        />
    </data>
</odoo>