diff --git a/.github/workflows/dev-preprod-servers.yml b/.github/workflows/dev-preprod-servers.yml
index 2f5b76802..d86cbb29d 100644
--- a/.github/workflows/dev-preprod-servers.yml
+++ b/.github/workflows/dev-preprod-servers.yml
@@ -66,7 +66,7 @@ jobs:
run: |
sudo chmod +x /home/${{ secrets.CLIENT_USER }}/scripts/pull/preprod_pull_standard_code.sh
sudo /home/${{ secrets.CLIENT_USER }}/scripts/pull/preprod_pull_standard_code.sh
- sudo systemctl restart ${{ secrets.ENSAN_APP_PREPROD_SERVICE }} ${{ secrets.ODEX25_GENERAL_PREPROD_SERVICE }} ${{ secrets.ODEX25_STANDARD_PREPROD_SERVICE }} ${{ secrets.TWAHOD_APP_PREPROD_SERVICE }} ${{ secrets.ODEX25_DEMO_PREPROD_SERVICE }} ${{ secrets.HELPDESK_PREPROD_SERVICE }} ${{ secrets.TRAHUM_PREPROD_SERVICE }} ${{ secrets.CYBER_APP_PREPROD_SERVICE }}
+ sudo systemctl restart ${{ secrets.ENSAN_APP_PREPROD_SERVICE }} ${{ secrets.ODEX25_GENERAL_PREPROD_SERVICE }} ${{ secrets.ODEX25_STANDARD_PREPROD_SERVICE }} ${{ secrets.TWAHOD_APP_PREPROD_SERVICE }} ${{ secrets.ODEX25_DEMO_PREPROD_SERVICE }} ${{ secrets.HELPDESK_PREPROD_SERVICE }} ${{ secrets.CYBER_APP_PREPROD_SERVICE }}
if [ $? -eq 0 ]; then
echo "** [INFO] "PREPROD" services have been restarted."
else
@@ -82,7 +82,7 @@ jobs:
run: |
sudo chmod +x /home/${{ secrets.CLIENT_USER }}/scripts/pull/dev_pull_standard_code.sh
sudo /home/${{ secrets.CLIENT_USER }}/scripts/pull/dev_pull_standard_code.sh
- sudo systemctl restart ${{ secrets.ENSAN_APP_TEST_SERVICE }} ${{ secrets.ODEX25_GENERAL_TEST_SERVICE }} ${{ secrets.ODEX25_STANDARD_TEST_SERVICE }} ${{ secrets.TWAHOD_APP_TEST_SERVICE }} ${{ secrets.HELPDESK_TEST_SERVICE }} ${{ secrets.KAZ_LIBRARY_TEST_SERVICE }} ${{ secrets.TRAHUM_TEST_SERVICE }} ${{ secrets.CYBER_APP_TEST_SERVICE }}
+ sudo systemctl restart ${{ secrets.ENSAN_APP_TEST_SERVICE }} ${{ secrets.ODEX25_GENERAL_TEST_SERVICE }} ${{ secrets.ODEX25_STANDARD_TEST_SERVICE }} ${{ secrets.TWAHOD_APP_TEST_SERVICE }} ${{ secrets.HELPDESK_TEST_SERVICE }} ${{ secrets.KAZ_LIBRARY_TEST_SERVICE }} ${{ secrets.CYBER_APP_TEST_SERVICE }}
if [ $? -eq 0 ]; then
echo "** [INFO] "DEV" services have been restarted."
else
diff --git a/.github/workflows/production_pull_code.yml b/.github/workflows/production_pull_code.yml
index e140affea..6997f25cc 100644
--- a/.github/workflows/production_pull_code.yml
+++ b/.github/workflows/production_pull_code.yml
@@ -67,6 +67,7 @@ jobs:
sudo chmod +x ${{ secrets.KAZ_STANDARD_FOLDER_PATH }}/scripts/pull_code.sh
sudo ${{ secrets.KAZ_STANDARD_FOLDER_PATH }}/scripts/pull_code.sh ${{ secrets.KAZ_PROJECT_USER }} ${{ secrets.KAZ_STANDARD_FOLDER_PATH }} ${{ secrets.KAZ_MASTER_SERVICE }} master ${GITHUB_REF#refs/heads/master_} ${GITHUB_REF#refs/heads/}
+ sudo systemctl restart odoo-server-stage.service
# Twahod project
twahod_master_server:
diff --git a/odex25_base/data_patch_hook/__init__.py b/odex25_base/data_patch_hook/__init__.py
new file mode 100644
index 000000000..3a85f93e7
--- /dev/null
+++ b/odex25_base/data_patch_hook/__init__.py
@@ -0,0 +1,29 @@
+from odoo import api, SUPERUSER_ID
+from odoo.exceptions import ValidationError
+
+
+def post_init_hook(cr, registry):
+ """
+ This function serves as the hook to apply data patches and commit changes
+ before raising an intentional error.
+ """
+ # Example functions to call (define these functions elsewhere in this file)
+ update_due_date_in_transaction_model(cr, registry)
+
+ # Commit the changes
+ cr.commit()
+
+ # Raise an intentional error to prevent module installation
+ raise ValidationError("Intentional error: This module is not designed to be installed.\nData Applied Successfully!")
+
+def update_due_date_in_transaction_model(cr, registry):
+ """
+ Recalculate the is_late field for all records after module upgrade.
+ """
+ env = api.Environment(cr, SUPERUSER_ID, {})
+
+ transaction_models = ['outgoing.transaction', 'internal.transaction', 'incoming.transaction']
+ for transaction_model in transaction_models:
+ model = env[transaction_model]
+ records = model.search([]) # Fetch all records
+ records.compute_due_date() # Trigger computation
\ No newline at end of file
diff --git a/odex25_base/data_patch_hook/__manifest__.py b/odex25_base/data_patch_hook/__manifest__.py
new file mode 100644
index 000000000..796d6999e
--- /dev/null
+++ b/odex25_base/data_patch_hook/__manifest__.py
@@ -0,0 +1,15 @@
+{
+ 'name': 'Data Patches with Hook',
+ 'version': '1.0',
+ 'summary': 'A module to apply data patches using a hook.',
+ 'category': 'Tools',
+ 'author': 'Expert Co.',
+ 'description': """
+ This module apply data patches via hooks.
+ """,
+ 'depends': ['base'],
+ 'data': [],
+ 'installable': True,
+ 'application': False,
+ 'post_init_hook': 'post_init_hook',
+}
\ No newline at end of file
diff --git a/odex25_base/data_patch_hook/hooks.py b/odex25_base/data_patch_hook/hooks.py
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/odex25_base/data_patch_hook/hooks.py
@@ -0,0 +1 @@
+
diff --git a/odex25_base/hide_contacts/__manifest__.py b/odex25_base/hide_contacts/__manifest__.py
new file mode 100644
index 000000000..97e0f43a1
--- /dev/null
+++ b/odex25_base/hide_contacts/__manifest__.py
@@ -0,0 +1,13 @@
+{
+ 'name': 'Hide Contacts',
+ 'version': '14.0',
+ 'author': 'Experts Co.',
+ 'license': 'LGPL-3',
+ 'depends': [
+ 'contacts'
+ ],
+ 'data': [
+ 'security/security.xml',
+ 'views/contact_views.xml'
+ ]
+}
\ No newline at end of file
diff --git a/odex25_base/hide_contacts/security/security.xml b/odex25_base/hide_contacts/security/security.xml
new file mode 100644
index 000000000..477fe6a44
--- /dev/null
+++ b/odex25_base/hide_contacts/security/security.xml
@@ -0,0 +1,9 @@
+
+