Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 96 additions & 0 deletions machine_manager_hr/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3

==================
Machine Manager HR
==================

Machine Manager HR is a companion module for **Machine Manager** that
connects your machinery records with Odoo's Human Resources module. It
creates a direct link between machines and the employees who operate them,
giving you full visibility in both directions — from the machine and from
the employee.

This module requires both **Machine Manager** and the **Employees** (hr)
module to be installed. Once both are present, Machine Manager HR activates
automatically.

Features
========

Assign Employees to Machines
------------------------------

A new **Machine Users** tab is added to every machine record. From there
you can assign one or more employees who work with or are responsible for
that machine. The list shows each employee by name and can hold as many
users as needed.

Assign Machines to Employees
------------------------------

A new **Machines** tab is added to every employee record, listing all the
machines that employee is linked to. This lets you see at a glance what
equipment a given person works with, without having to check each machine
individually.

Bidirectional Relationship
---------------------------

The link between machines and employees works in **both directions**. If
you assign an employee to a machine from the machine record, that machine
will automatically appear in the employee's profile, and vice versa. You
never need to update both sides manually.

Machine List — Employees Column
---------------------------------

In the machine list view, a new optional column **Machine Users** is
available. When enabled, it shows the assigned employees directly in the
list as tags, giving you a quick overview of all your equipment and who
operates each one without opening individual records.

Employee List — Machines Column
---------------------------------

In the employee list view, a new optional column **Machines** is available.
When enabled, it displays the machines linked to each employee as tags,
making it easy to spot unassigned equipment or overloaded operators at
a glance.

Configuration
=============

No additional configuration is required. Once the module is installed:

1. Go to **Machine Manager → Configuration → Machines**, open any machine
and use the **Machine Users** tab to assign employees.

2. Alternatively, go to **Employees → Employees**, open any employee
profile and use the **Machines** tab to assign machines directly from
the employee side.

Both approaches produce the same result thanks to the bidirectional
relationship.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues
<https://github.com/avanzosc/hr-addons/issues>`_. In case of trouble,
please check there if your issue has already been reported. If you spotted
it first, help us smash it by providing detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Contributors
------------
* Daniel Campos <danielcampos@avanzosc.es>
* Pedro M. Baeza <pedro.baeza@serviciobaeza.com>
* Ana Juaristi <ajuaristio@gmail.com>
* Oihane Crucelaegui <oihanecrucelaegi@avanzosc.es>
* Esther Martín <esthermartin@avanzosc.es>
1 change: 1 addition & 0 deletions machine_manager_hr/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
29 changes: 29 additions & 0 deletions machine_manager_hr/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Copyright 2024 Alfredo de la Fuente - AvanzOSC
# Copyright 2015 Daniel Campos - AvanzOSC
# Copyright 2015 Esther Martín - AvanzOSC
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
{
"name": "Machine Manager Hr",
"version": "18.0.1.0.0",
"license": "AGPL-3",
"author": "OdooMRP team, " "AvanzOSC, " "Serv. Tecnol. Avanzados - Pedro M. Baeza",
"contributors": [
"Daniel Campos <danielcampos@avanzosc.es>",
"Pedro M. Baeza <pedro.baeza@serviciosbaeza.com>",
"Ana Juaristi <ajuaristio@gmail.com>",
"Oihane Crucelaegui <oihanecrucelaegi@avanzosc.es>",
"Esther Martín <esthermartin@avanzosc.es>",
],
"website": "https://github.com/avanzosc/hr-addons",
"depends": [
"hr",
"machine_manager",
],
"category": "Machinery Management",
"data": [
"views/machine_views.xml",
"views/hr_employee_views.xml",
],
"installable": True,
"auto_install": True,
}
42 changes: 42 additions & 0 deletions machine_manager_hr/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * machine_manager_hr
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-18 11:08+0000\n"
"PO-Revision-Date: 2026-03-18 11:08+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: machine_manager_hr
#: model:ir.model,name:machine_manager_hr.model_hr_employee
msgid "Employee"
msgstr "Empleado"

#. module: machine_manager_hr
#: model:ir.model,name:machine_manager_hr.model_machine
msgid "Holds Machine Records"
msgstr "Registros de máquina"

#. module: machine_manager_hr
#: model:ir.model.fields,field_description:machine_manager_hr.field_machine__employee_ids
#: model_terms:ir.ui.view,arch_db:machine_manager_hr.machine_form_view
msgid "Machine Users"
msgstr "Usuarios máquina"

#. module: machine_manager_hr
#: model:ir.model.fields,field_description:machine_manager_hr.field_hr_employee__machine_ids
msgid "Machines"
msgstr "Máquinas"

#. module: machine_manager_hr
#: model_terms:ir.ui.view,arch_db:machine_manager_hr.view_employee_form
msgid "Machines the employee works on"
msgstr "Máquinas en las que trabaja el empleado"
42 changes: 42 additions & 0 deletions machine_manager_hr/i18n/machine_manager_hr.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * machine_manager_hr
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-18 11:07+0000\n"
"PO-Revision-Date: 2026-03-18 11:07+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: machine_manager_hr
#: model:ir.model,name:machine_manager_hr.model_hr_employee
msgid "Employee"
msgstr ""

#. module: machine_manager_hr
#: model:ir.model,name:machine_manager_hr.model_machine
msgid "Holds Machine Records"
msgstr ""

#. module: machine_manager_hr
#: model:ir.model.fields,field_description:machine_manager_hr.field_machine__employee_ids
#: model_terms:ir.ui.view,arch_db:machine_manager_hr.machine_form_view
msgid "Machine Users"
msgstr ""

#. module: machine_manager_hr
#: model:ir.model.fields,field_description:machine_manager_hr.field_hr_employee__machine_ids
msgid "Machines"
msgstr ""

#. module: machine_manager_hr
#: model_terms:ir.ui.view,arch_db:machine_manager_hr.view_employee_form
msgid "Machines the employee works on"
msgstr ""
2 changes: 2 additions & 0 deletions machine_manager_hr/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import machine
from . import hr_employee
15 changes: 15 additions & 0 deletions machine_manager_hr/models/hr_employee.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Copyright 2015 Daniel Campos - AvanzOSC
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from odoo import fields, models


class HrEmployee(models.Model):
_inherit = "hr.employee"

machine_ids = fields.Many2many(
string="Machines",
comodel_name="machine",
relation="rel_machine_employee",
column1="employee_id",
column2="machine_id",
)
15 changes: 15 additions & 0 deletions machine_manager_hr/models/machine.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Copyright 2015 Daniel Campos - AvanzOSC
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from odoo import fields, models


class Machine(models.Model):
_inherit = "machine"

employee_ids = fields.Many2many(
string="Machine Users",
comodel_name="hr.employee",
relation="rel_machine_employee",
column1="machine_id",
column2="employee_id",
)
3 changes: 3 additions & 0 deletions machine_manager_hr/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
Binary file added machine_manager_hr/static/description/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
44 changes: 44 additions & 0 deletions machine_manager_hr/views/hr_employee_views.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="view_employee_form" model="ir.ui.view">
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_form" />
<field name="arch" type="xml">
<page name="hr_settings" position="after">
<page name="machines" string="Machines the employee works on">
<field name="machine_ids" nolabel="1">
<list name="tree-machines">
<field name="name" />
</list>
</field>
</page>
</page>
</field>
</record>

<record id="view_employee_tree" model="ir.ui.view">
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_tree" />
<field name="arch" type="xml">
<field name="company_id" position="after">
<field name="machine_ids" widget="many2many_tags" optional="show" />
</field>
</field>
</record>

<!--
<record id="view_employee_filter" model="ir.ui.view">
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_filter" />
<field name="arch" type="xml">
<field name="job_id" position="after">
<field name="machine_id"/>
</field>
<filter name="group_job" position="after">
<filter name="group_machine" string="Machine" domain="[]"
context="{'group_by': 'machine_id'}"/>
</filter>
</field>
</record>
-->
</odoo>
28 changes: 28 additions & 0 deletions machine_manager_hr/views/machine_views.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="machine_form_view" model="ir.ui.view">
<field name="model">machine</field>
<field name="inherit_id" ref="machine_manager.machine_form_view" />
<field name="arch" type="xml">
<page name="financial-details" position="after">
<page name="machine-users" string="Machine Users">
<field name="employee_ids" nolabel="1">
<list name="tree-employee">
<field name="name" />
</list>
</field>
</page>
</page>
</field>
</record>

<record id="machine_tree_view" model="ir.ui.view">
<field name="model">machine</field>
<field name="inherit_id" ref="machine_manager.machine_tree_view" />
<field name="arch" type="xml">
<field name="serial_id" position="after">
<field name="employee_ids" widget="many2many_tags" optional="show" />
</field>
</field>
</record>
</odoo>
Loading