mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[FIX]:hr_pms_property: remove class method, DB structure and updated test module
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
"name": "PMS Hr Property",
|
"name": "PMS Hr Property",
|
||||||
"summary": """
|
"summary": """
|
||||||
Adds to the employee the property on which he works.""",
|
Adds to the employee the property on which he works.""",
|
||||||
"version": "14.0.2.0.0",
|
"version": "14.0.1.0.0",
|
||||||
"license": "AGPL-3",
|
"license": "AGPL-3",
|
||||||
"author": "OsoTranquilo,Odoo Community Association (OCA)",
|
"author": "OsoTranquilo,Odoo Community Association (OCA)",
|
||||||
"website": "https://github.com/OCA/pms",
|
"website": "https://github.com/OCA/pms",
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
from openupgradelib import openupgrade
|
|
||||||
|
|
||||||
|
|
||||||
@openupgrade.migrate()
|
|
||||||
def migrate(env, version):
|
|
||||||
openupgrade.logged_query(
|
|
||||||
env.cr,
|
|
||||||
"""
|
|
||||||
UPDATE pms_ rl
|
|
||||||
SET sale_channel_id = r.sale_channel_origin_id
|
|
||||||
FROM pms_reservation r
|
|
||||||
WHERE r.id = rl.reservation_id
|
|
||||||
""",
|
|
||||||
)
|
|
||||||
|
|
||||||
openupgrade.logged_query(
|
|
||||||
env.cr,
|
|
||||||
"""
|
|
||||||
UPDATE pms_service ser
|
|
||||||
SET sale_channel_origin_id = fol.sale_channel_origin_id
|
|
||||||
FROM pms_folio fol
|
|
||||||
WHERE fol.id = ser.folio_id
|
|
||||||
""",
|
|
||||||
)
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# Copyright 2023 OsoTranquilo
|
# Copyright 2023 OsoTranquilo
|
||||||
|
# Copyright 2024 Irlui Ramírez
|
||||||
|
# From Consultores Hoteleros Integrales (ALDA Hotels) - 2024
|
||||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
|
|
||||||
from odoo import fields, models
|
from odoo import fields, models
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||||
from odoo.tests.common import TransactionCase
|
from odoo.tests.common import TransactionCase
|
||||||
|
|
||||||
|
|
||||||
class TestPmsHrProperty(TransactionCase):
|
class TestPmsHrProperty(TransactionCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestPmsHrProperty, self).setUp()
|
super(TestPmsHrProperty, self).setUp()
|
||||||
@@ -12,98 +11,96 @@ class TestPmsHrProperty(TransactionCase):
|
|||||||
self.HrEmployee = self.env["hr.employee"]
|
self.HrEmployee = self.env["hr.employee"]
|
||||||
self.Company = self.env["res.company"]
|
self.Company = self.env["res.company"]
|
||||||
|
|
||||||
|
# Company creation
|
||||||
self.company1 = self.Company.create(
|
self.company1 = self.Company.create(
|
||||||
{
|
{"name": "Company 1"}
|
||||||
"name": "Company 1",
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Property creation
|
||||||
self.property1 = self.PmsProperty.create(
|
self.property1 = self.PmsProperty.create(
|
||||||
{
|
{
|
||||||
"name": "Property 1",
|
"name": "Property 1",
|
||||||
"company_id": self.company1.id,
|
"company_id": self.company1.id
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# User creation
|
||||||
user_dict = {
|
user_dict = {
|
||||||
"name": "User 1",
|
"name": "User 1",
|
||||||
"login": "tua@example.com",
|
"login": "tua@example.com",
|
||||||
"password": "base-test-passwd",
|
"password": "base-test-passwd"
|
||||||
}
|
}
|
||||||
self.user_test = self.env["res.users"].create(user_dict)
|
self.user_test = self.env["res.users"].create(user_dict)
|
||||||
|
|
||||||
user_dict2 = {
|
user_dict2 = {
|
||||||
"name": "User 2",
|
"name": "User 2",
|
||||||
"login": "user2@example.com",
|
"login": "user2@example.com",
|
||||||
"password": "base-test-passwd",
|
"password": "base-test-passwd"
|
||||||
}
|
}
|
||||||
self.user_test2 = self.env["res.users"].create(user_dict2)
|
self.user_test2 = self.env["res.users"].create(user_dict2)
|
||||||
|
|
||||||
|
# Employee creation
|
||||||
employee_dict = {
|
employee_dict = {
|
||||||
"name": "Employee 1",
|
"name": "Employee 1",
|
||||||
"user_id": self.user_test.id,
|
"user_id": self.user_test.id,
|
||||||
"address_id": self.user_test.partner_id.id,
|
"address_id": self.user_test.partner_id.id
|
||||||
}
|
}
|
||||||
self.employee = self.env["hr.employee"].create(employee_dict)
|
self.employee = self.env["hr.employee"].create(employee_dict)
|
||||||
|
|
||||||
employee_dict2 = {
|
employee_dict2 = {
|
||||||
"name": "Employee 2",
|
"name": "Employee 2",
|
||||||
"user_id": self.user_test2.id,
|
"user_id": self.user_test2.id,
|
||||||
"address_id": self.user_test2.partner_id.id,
|
"address_id": self.user_test2.partner_id.id
|
||||||
}
|
}
|
||||||
self.employee2 = self.env["hr.employee"].create(employee_dict2)
|
self.employee2 = self.env["hr.employee"].create(employee_dict2)
|
||||||
self.employee.write({"property_ids": [(4, self.property1.id)]})
|
|
||||||
|
|
||||||
def test_compute_employee_ids(self):
|
def test_employee_assignment(self):
|
||||||
"""Verifica que el método _compute_employee_ids
|
"""Check if employees are correctly assigned to properties"""
|
||||||
calcule correctamente el campo employee_ids"""
|
self.employee.write(
|
||||||
|
{"property_ids": [(4, self.property1.id)]}
|
||||||
self.property1._compute_employee_ids()
|
)
|
||||||
|
|
||||||
assigned_employees = self.property1.employee_ids
|
assigned_employees = self.property1.employee_ids
|
||||||
|
self.assertIn(
|
||||||
expected_employees = self.HrEmployee.search(
|
self.employee,
|
||||||
[("property_ids", "in", self.property1.id)]
|
assigned_employees,
|
||||||
|
"The employee is not correctly assigned to the property."
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertEqual(
|
def test_employee_removal(self):
|
||||||
sorted(assigned_employees.ids),
|
"""Check if employees can be unassigned from properties correctly"""
|
||||||
sorted(expected_employees.ids),
|
self.employee.write(
|
||||||
"Property 1 no coincide con los empleados esperados.",
|
{"property_ids": [(4, self.property1.id)]}
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_no_employees_assigned(self):
|
self.employee.write(
|
||||||
"""Verifica el comportamiento si no hay empleados asignados a una propiedad"""
|
{"property_ids": [(3, self.property1.id)]}
|
||||||
|
)
|
||||||
|
|
||||||
self.employee.write({"property_ids": [(5, self.property1.id)]})
|
|
||||||
|
|
||||||
self.property1._compute_employee_ids()
|
|
||||||
assigned_employees = self.property1.employee_ids
|
assigned_employees = self.property1.employee_ids
|
||||||
|
self.assertNotIn(
|
||||||
self.assertEqual(
|
self.employee,
|
||||||
len(assigned_employees),
|
assigned_employees,
|
||||||
0,
|
"The employee is still assigned to the property after removal."
|
||||||
"Se esperaba que no hubiera empleados asignados a la propiedad 1.",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_multiple_properties(self):
|
def test_multiple_employees_assignment(self):
|
||||||
"""Verifica que los empleados se asignen correctamente a múltiples propiedades"""
|
"""Check if multiple employees can be assigned to a single property"""
|
||||||
self.property2 = self.PmsProperty.create(
|
self.employee.write(
|
||||||
{
|
{"property_ids": [(4, self.property1.id)]}
|
||||||
"name": "Property 2",
|
)
|
||||||
"company_id": self.company1.id,
|
self.employee2.write(
|
||||||
}
|
{"property_ids": [(4, self.property1.id)]}
|
||||||
)
|
)
|
||||||
|
|
||||||
self.employee2.write({"property_ids": [(4, self.property2.id)]})
|
assigned_employees = self.property1.employee_ids
|
||||||
|
self.assertIn(
|
||||||
self.property2._compute_employee_ids()
|
self.employee,
|
||||||
|
assigned_employees,
|
||||||
assigned_employees = self.property2.employee_ids
|
"Employee 1 is not correctly assigned."
|
||||||
|
|
||||||
expected_employees = self.HrEmployee.search(
|
|
||||||
[("property_ids", "in", self.property2.id)]
|
|
||||||
)
|
)
|
||||||
|
self.assertIn(
|
||||||
self.assertEqual(
|
self.employee2,
|
||||||
sorted(assigned_employees.ids),
|
assigned_employees,
|
||||||
sorted(expected_employees.ids),
|
"Employee 2 is not correctly assigned."
|
||||||
"employee_ids calculado para la propiedad 2 no coincide con los empleados.",
|
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user