diff --git a/README.rst b/README.rst index 3a3bec346f309c5e8e5cf58df9cff948a1ca1e96..f1bc8b853d4952339ec3f1c5290d8b15877ccb47 100644 --- a/README.rst +++ b/README.rst @@ -11,6 +11,9 @@ DIGITANIE - Projet et Feuilles de temps - Ajout d'un champ Date de revue à la table *project.task*, affiche dans les vues asociées - Ajout d'un champ Type de tâche à la table *account.analytic.line*, affiche dans les vues asociées - Ajout du champ département dans les vues listes des feuilles de temps + - Rend les champs projet / tâches non modifiables sur feuilles de temps + - Affiche 20 entrées de tâches sur les feuilles de temps + - Renvoie le nom de la catégorie / nom du projet lorsqu'on recherche un nom de projet Credits diff --git a/__manifest__.py b/__manifest__.py index 70b30af6d699ddbf5fc0e3bcac33f1734f4bcd43..a3f8faa4b4159d0862a04b1f45f97894366ba2ba 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -3,11 +3,12 @@ "summary": """Gestion des projets et Feuilles de temps""", "author": "Le Filament", "website": "https://www.le-filament.com", - "version": "14.0.1.0.0", + "version": "14.0.2.0.0", "license": "AGPL-3", - "depends": ["hr_timesheet", "project_category"], + "depends": ["hr_timesheet", "project_category", "web_m2x_options"], "data": [ "views/hr_timesheet_views.xml", + "views/project_project.xml", "views/project_task.xml", "report/project_report_view.xml", ], diff --git a/models/__init__.py b/models/__init__.py index 8b661f3037e958858dfb0140d508b6dcd80831db..f6ceba7f23425085faafaf227f631723aa555a8d 100644 --- a/models/__init__.py +++ b/models/__init__.py @@ -1,5 +1,6 @@ -# Copyright 2020 Le Filament (<http://www.le-filament.com>) +# Copyright 2020-2022 Le Filament (<http://www.le-filament.com>) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from . import account +from . import project from . import project_task diff --git a/models/project.py b/models/project.py new file mode 100644 index 0000000000000000000000000000000000000000..368aa6b55ec480cba8ebd72d374c01d4cc4379b5 --- /dev/null +++ b/models/project.py @@ -0,0 +1,17 @@ +# Copyright 2022 Le Filament (<http://www.le-filament.com>) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import models + + +class Project(models.Model): + _inherit = "project.project" + + def name_get(self): + """ Return the type then project name + """ + res = [] + for project in self: + name = "%s / %s" % (project.type_id.name, project.name) if project.type_id else project.name + res.append((project.id, name)) + return res diff --git a/views/hr_timesheet_views.xml b/views/hr_timesheet_views.xml index bdc0dd2ba51e97a76150793f268ebe8cb582eda3..e3540e2ebfaf44e550cca8ae32f2a878addf562f 100644 --- a/views/hr_timesheet_views.xml +++ b/views/hr_timesheet_views.xml @@ -11,7 +11,17 @@ <field name="arch" type="xml"> <field name="unit_amount" position="before"> <field name="task_type_id" /> - + </field> + <field name="project_id" position="attributes"> + <attribute + name="options" + >{'no_create': true, 'no_open': true,}</attribute> + </field> + <field name="task_id" position="attributes"> + <attribute + name="options" + >{'no_create': true, 'no_open': true, 'limit': 20,}</attribute> + <attribute name="required">True</attribute> </field> </field> </record> @@ -21,9 +31,20 @@ <field name="model">account.analytic.line</field> <field name="inherit_id" ref="hr_timesheet.timesheet_view_tree_user" /> <field name="arch" type="xml"> - <xpath expr="//field[@name='employee_id']" position="after"> + <field name="employee_id" position="after"> <field name="department_id" options='{"no_open": True}' /> - </xpath> + </field> + <field name="project_id" position="attributes"> + <attribute + name="options" + >{'no_create': true, 'no_open': true,}</attribute> + </field> + <field name="task_id" position="attributes"> + <attribute + name="options" + >{'no_create': true, 'no_open': true, 'limit': 20,}</attribute> + <attribute name="required">True</attribute> + </field> </field> </record> @@ -32,11 +53,11 @@ <field name="model">account.analytic.line</field> <field name="inherit_id" ref="hr_timesheet.timesheet_view_form_user" /> <field name="arch" type="xml"> - <xpath expr="//field[@name='employee_id']" position="after"> + <field name="employee_id" position="after"> <field name="department_id" options='{"no_open": True}' /> <field name="project_type_id" /> - <field name="task_type_id" /> - </xpath> + <field name="task_type_id" required="1" /> + </field> </field> </record> @@ -48,7 +69,7 @@ <field name="employee_id" position="after"> <field name="department_id" /> <field name="project_type_id" /> - <field name="task_type_id" /> + <field name="task_type_id" required="1" /> </field> <filter name="groupby_employee" position="after"> <filter diff --git a/views/project_project.xml b/views/project_project.xml new file mode 100644 index 0000000000000000000000000000000000000000..00e46c0be962c7d6037e1ff6b2d5d5643f2db2f4 --- /dev/null +++ b/views/project_project.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8" ?> +<odoo> + <record id="project_kanban" model="ir.ui.view"> + <field name="model">project.project</field> + <field name="inherit_id" ref="project.view_project_kanban" /> + <field name="arch" type="xml"> + <xpath expr="//templates//div[hasclass('o_primary')]" position="after"> + <div class="o_kanban_record_body" t-if="record.type_id.value"> + <field name="type_id" widget="badge" /> + </div> + </xpath> + </field> + </record> +</odoo>