Skip to content
Snippets Groups Projects
hr_timesheet.xml 16.7 KiB
Newer Older
  • Learn to ignore specific revisions
  • Benjamin's avatar
    Benjamin committed
    <?xml version="1.0"?>
    <!-- Copyright 2019 Le Filament
         License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
    
    <odoo>
    
        <data noupdate="0">
    
    Benjamin's avatar
    Benjamin committed
    
    
    Juliana's avatar
    Juliana committed
            <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="arch" type="xml">
    
    Rémi - Le Filament's avatar
    Rémi - Le Filament committed
                    <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></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"/>
    
    Juliana's avatar
    Juliana committed
                    <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'}"/>
    
    Juliana's avatar
    Juliana committed
                    </xpath>
                    <xpath expr="//filter[@name='groupby_project']" position="attributes">
                        <attribute name="string">Code activité UR</attribute>
                    </xpath>
                </field>
            </record>
    
    
    Rémi - Le Filament's avatar
    Rémi - Le Filament committed
            <!-- 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"/> 
    
    Rémi - Le Filament's avatar
    Rémi - Le Filament committed
                <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_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"/>
    
                            <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="//form/group" position="attributes">
                        <attribute name="invisible">1</attribute>
                    </xpath>
                    <xpath expr="//form/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" 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>
    
    Rémi - Le Filament's avatar
    Rémi - Le Filament committed
                </field>
            </record>
    
    
    Benjamin's avatar
    Benjamin committed
            <!-- Tree View Timesheet CG -->
            <record id="view_cgscop_hr_timesheet_line_tree" model="ir.ui.view">
    
    Benjamin's avatar
    Benjamin committed
                <field name="name">account.analytic.line.timesheet.cgscop</field>
    
    Benjamin's avatar
    Benjamin committed
                <field name="model">account.analytic.line</field>
    
    Benjamin's avatar
    Benjamin committed
                <field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_tree"/>
    
    Benjamin's avatar
    Benjamin committed
                <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>
    
    Benjamin's avatar
    Benjamin committed
                    <field name="project_id" position="attributes" >
    
                        <attribute name="options">{'no_open': True, 'no_create': True}</attribute>
    
    Benjamin's avatar
    Benjamin committed
                        <attribute name="string">Code activité UR</attribute>
    
                        <attribute name="attrs">{'readonly': [('state', 'in', ('submit', 'valid'))]}</attribute>
    
    Benjamin's avatar
    Benjamin committed
                    </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" />
    
    Benjamin's avatar
    Benjamin committed
                    </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 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="ur_id" attrs="{'readonly': [('state', 'in', ('submit', 'valid'))]}" groups="cgscop_partner.group_cg_administrator"/>
    
                    </field>
    
    Benjamin's avatar
    Benjamin committed
                </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" />
    
    Rémi - Le Filament's avatar
    Rémi - Le Filament committed
                        <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"
                              readonly_form_view_id="cgscop_timesheet.view_cgscop_hr_timesheet_line_form">
    
                        <field name="calendar_l1"/>
                        <field name="calendar_l2"/>
                    </calendar>
                </field>
            </record>
    
            <!-- Renomme l'action dans hr_timesheet -->
    
            <record id="hr_timesheet.menu_hr_time_tracking" model="ir.actions.act_window">
                <field name="name">Lignes de temps</field>
            </record>
    
    
            <!-- Hérite l'action de la fenetre dans hr_timesheet -->
    
            <record id="hr_timesheet.act_hr_timesheet_line" model="ir.actions.act_window">
    
    Rémi - Le Filament's avatar
    Rémi - Le Filament committed
                <field name="name">Mes lignes de temps</field>
    
                <field name="view_mode">calendar,tree,form,pivot</field>
    
                <field name="context">{'search_default_no_report': 1}</field>
    
                <field name="view_ids" eval="[(5, 0, 0),
                    (0, 0, {'view_mode': 'tree', 'sequence': 5, 'view_id': ref('cgscop_timesheet.view_cgscop_hr_timesheet_line_tree')}),
                    (0, 0, {'view_mode': 'calendar', 'sequence': 10, 'view_id': ref('cgscop_timesheet.view_cgscop_hr_timesheet_line_calendar')}),
                    (0, 0, {'view_mode': 'pivot', 'sequence': 15, 'view_id': ref('hr_timesheet.view_hr_timesheet_line_pivot')}),
                    (0, 0, {'view_mode': 'form', 'sequence': 20, 'view_id': ref('cgscop_timesheet.view_cgscop_hr_timesheet_line_form')})]"/>
            </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="name">Toutes les lignes de temps</field>
                <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>            
                <field name="view_mode">tree,form</field>
                <field name="view_ids" eval="[(5, 0, 0),
                    (0, 0, {'view_mode': 'tree', 'sequence': 5, 'view_id': ref('cgscop_timesheet.view_cgscop_hr_timesheet_line_tree')}),
                    (0, 0, {'view_mode': 'form', 'sequence': 20, 'view_id': ref('cgscop_timesheet.view_cgscop_hr_timesheet_line_form')})]"/>
    
    Rémi - Le Filament's avatar
    Rémi - Le Filament committed
            </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
            -->
    
            <!-- 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 feuilles 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>
    
    
    Rémi - Le Filament's avatar
    Rémi - Le Filament committed
            <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>
        <data noupdate="1">
    
            <delete id="hr_timesheet.timesheet_menu_report_timesheet_by_task"  model="ir.ui.menu"/>
    
    Benjamin's avatar
    Benjamin committed
        </data>
    </odoo>