From bc1a38ef39965941a8cbc8bc9938a0a194fc4042 Mon Sep 17 00:00:00 2001 From: ahmed-nouri051 Date: Tue, 30 Sep 2025 09:02:58 +0200 Subject: [PATCH 1/2] migration --- code_backend_theme/__manifest__.py | 44 - code_backend_theme/assets/assets.xml | 25 - .../description/assets/icons/._.DS_Store | Bin 4096 -> 0 bytes .../description/assets/icons/._cogs.png | Bin 4096 -> 0 bytes .../assets/icons/._consultation.png | Bin 4096 -> 0 bytes .../description/assets/icons/._ecom-black.png | Bin 4096 -> 0 bytes .../assets/icons/._education-black.png | Bin 4096 -> 0 bytes .../assets/icons/._hotel-black.png | Bin 4096 -> 0 bytes .../description/assets/icons/._license.png | Bin 4096 -> 0 bytes .../description/assets/icons/._lifebuoy.png | Bin 4096 -> 0 bytes .../assets/icons/._manufacturing-black.png | Bin 4096 -> 0 bytes .../description/assets/icons/._pos-black.png | Bin 4096 -> 0 bytes .../description/assets/icons/._puzzle.png | Bin 4096 -> 0 bytes .../assets/icons/._restaurant-black.png | Bin 4096 -> 0 bytes .../assets/icons/._service-black.png | Bin 4096 -> 0 bytes .../assets/icons/._trading-black.png | Bin 4096 -> 0 bytes .../description/assets/icons/._training.png | Bin 4096 -> 0 bytes .../description/assets/icons/._update.png | Bin 4096 -> 0 bytes .../description/assets/icons/._user.png | Bin 4096 -> 0 bytes .../description/assets/icons/._wrench.png | Bin 4096 -> 0 bytes .../assets/icons/feature-icons/._lifebuoy.png | Bin 4096 -> 0 bytes .../static/src/js/chrome/sidebar.js | 32 - .../static/src/js/chrome/sidebar_menu.js | 15 - code_backend_theme/static/src/xml/top_bar.xml | 13 - .../views/webclient.xml | 11 - expert_font_for_website/views/resources.xml | 39 - .../__pycache__/__init__.cpython-38.pyc | Bin 265 -> 0 bytes .../__pycache__/controllers.cpython-38.pyc | Bin 265 -> 0 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 255 -> 0 bytes .../models/__pycache__/models.cpython-38.pyc | Bin 288 -> 0 bytes hide_login_db_selection/views/resources.xml | 13 - inbox_notif_email/.idea/.gitignore | 8 - inbox_notif_email/.idea/inbox_notif_email.iml | 15 - .../inspectionProfiles/Project_Default.xml | 14 - .../inspectionProfiles/profiles_settings.xml | 6 - inbox_notif_email/.idea/misc.xml | 4 - inbox_notif_email/.idea/modules.xml | 8 - inbox_notif_email/.idea/vcs.xml | 6 - .../chatgpt_bot}/__init__.py | 0 .../chatgpt_bot}/__manifest__.py | 0 .../chatgpt_bot}/controllers/__init__.py | 0 .../chatgpt_bot}/controllers/controllers.py | 0 .../chatgpt_bot}/demo/demo.xml | 0 .../chatgpt_bot}/images/gif_chat.gif | Bin .../chatgpt_bot}/images/image1.png | Bin .../chatgpt_bot}/images/image2.png | Bin .../chatgpt_bot}/images/image3.png | Bin .../chatgpt_bot}/images/image4.png | Bin .../chatgpt_bot}/models/__init__.py | 0 .../chatgpt_bot}/models/mail_bot.py | 0 .../chatgpt_bot}/models/res_config_setting.py | 0 .../chatgpt_bot}/models/res_users.py | 0 .../chatgpt_bot}/security/ir.model.access.csv | 0 .../static/description/banner.png | Bin .../chatgpt_bot}/static/description/icon.png | Bin .../static/description/images/banner.png | Bin .../static/description/images/gif_chat.gif | Bin .../static/description/images/image1.png | Bin .../static/description/images/image2.png | Bin .../static/description/images/image3.png | Bin .../static/description/images/image4.png | Bin .../description/images/main_screenshot.png | Bin .../static/description/index.html | 0 .../views/res_config_settings.xml | 10 +- .../code_backend_theme}/README.rst | 0 .../code_backend_theme}/__init__.py | 0 .../code_backend_theme/__manifest__.py | 50 + .../code_backend_theme}/doc/RELEASE_NOTES.md | 0 .../code_backend_theme}/hooks.py | 0 .../static/description/assets/all_screens.png | Bin .../static/description/assets/hero.png | Bin .../description/assets/icons/chevron.png | Bin .../static/description/assets/icons/cogs.png | Bin .../description/assets/icons/consultation.png | Bin .../description/assets/icons/ecom-black.png | Bin .../assets/icons/education-black.png | Bin .../assets/icons/feature-icons/document.png | Bin .../assets/icons/feature-icons/down.png | Bin .../assets/icons/feature-icons/lifebuoy.png | Bin .../description/assets/icons/hotel-black.png | Bin .../description/assets/icons/license.png | Bin .../description/assets/icons/lifebuoy.png | Bin .../assets/icons/manufacturing-black.png | Bin .../description/assets/icons/pos-black.png | Bin .../description/assets/icons/puzzle.png | Bin .../assets/icons/restaurant-black.png | Bin .../assets/icons/service-black.png | Bin .../assets/icons/trading-black.png | Bin .../description/assets/icons/training.png | Bin .../description/assets/icons/update.png | Bin .../static/description/assets/icons/user.png | Bin .../description/assets/icons/wrench.png | Bin .../static/description/assets/menu_focus.png | Bin .../static/description/assets/resp-gif.gif | Bin .../static/description/assets/responsive.png | Bin .../description/assets/screenshots/alert.png | Bin .../assets/screenshots/apps_uninstall.png | Bin .../assets/screenshots/chatters.png | Bin .../assets/screenshots/discuss.png | Bin .../description/assets/screenshots/form.png | Bin .../assets/screenshots/form_product.png | Bin .../description/assets/screenshots/graph.png | Bin .../description/assets/screenshots/group.png | Bin .../assets/screenshots/invoice.png | Bin .../assets/screenshots/kanban_empl.png | Bin .../assets/screenshots/kanban_group.png | Bin .../assets/screenshots/kanban_product.png | Bin .../assets/screenshots/kanban_recruits.png | Bin .../assets/screenshots/kanban_sale.png | Bin .../description/assets/screenshots/kiosk.png | Bin .../assets/screenshots/list_purchase.png | Bin .../assets/screenshots/list_sales.png | Bin .../description/assets/screenshots/login.png | Bin .../description/assets/screenshots/modal.png | Bin .../assets/screenshots/settings.png | Bin .../assets/screenshots/sidebar-gif.gif | Bin .../assets/screenshots/sidebar_list.png | Bin .../assets/screenshots/sidebar_settings.png | Bin .../description/assets/screenshots/tab.png | Bin .../static/description/banner.png | Bin .../static/description/icon.png | Bin .../static/description/index.html | 0 .../static/description/theme_screenshot.png | Bin .../static/src/img/code_logo.png | Bin .../static/src/img/icons/Attendances.png | Bin .../static/src/img/icons/CRM.png | Bin .../static/src/img/icons/Calendar.png | Bin .../static/src/img/icons/Contacts.png | Bin .../static/src/img/icons/Dashboards.png | Bin .../static/src/img/icons/Email Marketing.png | Bin .../static/src/img/icons/Employees.png | Bin .../static/src/img/icons/Events.png | Bin .../static/src/img/icons/Expenses.png | Bin .../static/src/img/icons/Fleet.png | Bin .../static/src/img/icons/Inventory.png | Bin .../static/src/img/icons/Invoicing.png | Bin .../static/src/img/icons/Link Tracker.png | Bin .../static/src/img/icons/Live Chat.png | Bin .../static/src/img/icons/Lunch.png | Bin .../static/src/img/icons/Maintenance.png | Bin .../static/src/img/icons/Manufacturing.png | Bin .../static/src/img/icons/Members.png | Bin .../static/src/img/icons/Note.png | Bin .../static/src/img/icons/Point of Sale.png | Bin .../static/src/img/icons/Project.png | Bin .../static/src/img/icons/Purchase.png | Bin .../static/src/img/icons/Recruitment.png | Bin .../static/src/img/icons/Repairs.png | Bin .../static/src/img/icons/SMS Marketing.png | Bin .../static/src/img/icons/Sales.png | Bin .../static/src/img/icons/Surveys.png | Bin .../static/src/img/icons/Time Off.png | Bin .../static/src/img/icons/Timesheets.png | Bin .../static/src/img/icons/Website.png | Bin .../static/src/img/icons/apps.png | Bin .../static/src/img/icons/close.png | Bin .../static/src/img/icons/discuss.png | Bin .../static/src/img/icons/eLearning.png | Bin .../static/src/img/icons/settings.png | Bin .../static/src/js/chrome/sidebar.js | 37 + .../static/src/js/chrome/sidebar_menu.js | 178 +++ .../static/src/js/fields/basic_fields.js | 36 +- .../static/src/js/fields/graph.js | 27 +- .../static/src/scss/datetimepicker.scss | 0 .../static/src/scss/login.scss | 0 .../static/src/scss/navigation_bar.scss | 0 .../static/src/scss/sidebar.scss | 0 .../static/src/scss/theme.scss | 0 .../static/src/scss/theme_accent.scss | 0 .../static/src/xml/sidebar.xml | 23 +- .../static/src/xml/styles.xml | 10 +- .../static/src/xml/top_bar.xml | 39 + .../code_backend_theme}/views/icons.xml | 0 .../code_backend_theme}/views/layout.xml | 0 .../__init__.py | 0 .../__manifest__.py | 2 +- .../models/__init__.py | 0 .../models/document_layout.py | 0 .../static/description/icon.png | Bin .../static/description/index.html | 0 .../static/description/internet.png | Bin .../static/description/linkedin.png | Bin .../static/description/mail.png | Bin .../static/description/odex.png | Bin .../static/description/smiling_face.svg | 0 .../static/description/twitter.png | Bin .../static/src/fonts/DroidKufi-Bold.eot | Bin .../static/src/fonts/DroidKufi-Bold.ttf | Bin .../static/src/fonts/DroidKufi-Bold.woff | Bin .../static/src/fonts/DroidKufi-Bold.woff2 | Bin .../static/src/fonts/DroidKufi-Regular.eot | Bin .../static/src/fonts/DroidKufi-Regular.ttf | Bin .../static/src/fonts/DroidKufi-Regular.woff | Bin .../static/src/fonts/DroidKufi-Regular.woff2 | Bin .../static/src/fonts/DroidNaskh-Bold.eot | Bin .../static/src/fonts/DroidNaskh-Bold.ttf | Bin .../static/src/fonts/DroidNaskh-Bold.woff | Bin .../static/src/fonts/DroidNaskh-Bold.woff2 | Bin .../static/src/fonts/DroidNaskh-Regular.eot | Bin .../static/src/fonts/DroidNaskh-Regular.ttf | Bin .../static/src/fonts/DroidNaskh-Regular.woff | Bin .../static/src/fonts/DroidNaskh-Regular.woff2 | Bin .../static/src/fonts/bukrabold.otf | Bin .../static/src/fonts/bukrabold.ttf | Bin .../static/src/fonts/bukralight.ttf | Bin .../static/src/fonts/bukraregular.otf | Bin .../static/src/scss/fonts.scss | 0 .../expert_font_for_website}/__init__.py | 0 .../expert_font_for_website}/__manifest__.py | 7 +- .../controllers/__init__.py | 0 .../controllers/controllers.py | 0 .../expert_font_for_website}/demo/demo.xml | 0 .../models/__init__.py | 0 .../expert_font_for_website}/models/models.py | 0 .../security/ir.model.access.csv | 0 .../static/src/css/custom_rtl.css | 0 .../static/src/css/custom_rtl.css.map | 0 .../static/src/css/custom_rtl.scss | 0 .../static/src/css/footer.css | 0 .../static/src/css/footer.css.map | 0 .../static/src/css/footer.scss | 0 .../static/src/fonts/DroidKufi-Bold.eot | Bin .../static/src/fonts/DroidKufi-Bold.ttf | Bin .../static/src/fonts/DroidKufi-Bold.woff | Bin .../static/src/fonts/DroidKufi-Bold.woff2 | Bin .../static/src/fonts/DroidKufi-Regular.eot | Bin .../static/src/fonts/DroidKufi-Regular.ttf | Bin .../static/src/fonts/DroidKufi-Regular.woff | Bin .../static/src/fonts/DroidKufi-Regular.woff2 | Bin .../static/src/fonts/DroidNaskh-Bold.eot | Bin .../static/src/fonts/DroidNaskh-Bold.ttf | Bin .../static/src/fonts/DroidNaskh-Bold.woff | Bin .../static/src/fonts/DroidNaskh-Bold.woff2 | Bin .../static/src/fonts/DroidNaskh-Regular.eot | Bin .../static/src/fonts/DroidNaskh-Regular.ttf | Bin .../static/src/fonts/DroidNaskh-Regular.woff | Bin .../static/src/fonts/DroidNaskh-Regular.woff2 | Bin .../hide_login_db_selection}/__init__.py | 0 .../hide_login_db_selection}/__manifest__.py | 2 +- .../controllers/__init__.py | 0 .../controllers/controllers.py | 0 .../hide_login_db_selection}/demo/demo.xml | 0 .../models/__init__.py | 0 .../hide_login_db_selection}/models/models.py | 0 .../security/ir.model.access.csv | 0 .../static/img/icon.png | Bin .../static/img/index.html | 0 .../static/img/internet.png | Bin .../static/img/linkedin.png | Bin .../static/img/mail.png | Bin .../static/img/odex.png | Bin .../static/img/smiling_face.svg | 0 .../static/img/twitter.png | Bin .../static/js/login_page.js | 0 .../static/src/css/database-hide.css | 0 .../static/src/css/database-hide.css.map | 0 .../static/src/css/database-hide.scss | 0 .../inbox_notif_email}/__init__.py | 0 .../inbox_notif_email}/__manifest__.py | 0 .../controllers/__init__.py | 0 .../controllers/controllers.py | 0 .../inbox_notif_email}/demo/demo.xml | 0 .../inbox_notif_email}/models/__init__.py | 0 .../inbox_notif_email}/models/models.py | 0 .../security/ir.model.access.csv | 0 .../static/description/banner.PNG | Bin .../static/description/icon.png | Bin .../static/description/image1.png | Bin .../static/description/image10.png | Bin .../static/description/image2.png | Bin .../static/description/image3.png | Bin .../static/description/image4.png | Bin .../static/description/image5.png | Bin .../static/description/image6.png | Bin .../static/description/image7.png | Bin .../static/description/image8.png | Bin .../static/description/image9.png | Bin .../static/description/index.html | 0 .../inbox_notif_email}/views/templates.xml | 0 .../inbox_notif_email}/views/views.xml | 0 odex30_base/queue_job/README.rst | 725 +++++++++++ odex30_base/queue_job/__init__.py | 10 + odex30_base/queue_job/__manifest__.py | 35 + odex30_base/queue_job/controllers/__init__.py | 1 + odex30_base/queue_job/controllers/main.py | 300 +++++ odex30_base/queue_job/data/queue_data.xml | 26 + .../data/queue_job_function_data.xml | 6 + odex30_base/queue_job/delay.py | 663 ++++++++++ odex30_base/queue_job/exception.py | 38 + odex30_base/queue_job/fields.py | 133 ++ odex30_base/queue_job/i18n/de.po | 959 +++++++++++++++ odex30_base/queue_job/i18n/es.po | 996 +++++++++++++++ odex30_base/queue_job/i18n/it.po | 973 +++++++++++++++ odex30_base/queue_job/i18n/nl.po | 902 ++++++++++++++ odex30_base/queue_job/i18n/nl_NL.po | 944 ++++++++++++++ odex30_base/queue_job/i18n/queue_job.pot | 894 ++++++++++++++ odex30_base/queue_job/i18n/tr.po | 948 +++++++++++++++ odex30_base/queue_job/i18n/tr_TR.po | 902 ++++++++++++++ odex30_base/queue_job/i18n/zh_CN.po | 984 +++++++++++++++ odex30_base/queue_job/job.py | 870 +++++++++++++ odex30_base/queue_job/jobrunner/__init__.py | 163 +++ odex30_base/queue_job/jobrunner/__main__.py | 13 + odex30_base/queue_job/jobrunner/channels.py | 1082 +++++++++++++++++ odex30_base/queue_job/jobrunner/runner.py | 625 ++++++++++ .../migrations/18.0.1.0.0/pre-migrate.py | 29 + .../migrations/18.0.1.7.0/pre-migration.py | 11 + odex30_base/queue_job/models/__init__.py | 6 + odex30_base/queue_job/models/base.py | 270 ++++ .../queue_job/models/ir_model_fields.py | 13 + odex30_base/queue_job/models/queue_job.py | 448 +++++++ .../queue_job/models/queue_job_channel.py | 89 ++ .../queue_job/models/queue_job_function.py | 273 +++++ .../queue_job/models/queue_job_lock.py | 16 + odex30_base/queue_job/post_init_hook.py | 33 + odex30_base/queue_job/post_load.py | 25 + odex30_base/queue_job/pyproject.toml | 3 + odex30_base/queue_job/readme/CONFIGURE.md | 40 + odex30_base/queue_job/readme/CONTRIBUTORS.md | 15 + odex30_base/queue_job/readme/CREDITS.md | 1 + odex30_base/queue_job/readme/DESCRIPTION.md | 47 + odex30_base/queue_job/readme/HISTORY.md | 7 + odex30_base/queue_job/readme/INSTALL.md | 1 + odex30_base/queue_job/readme/ROADMAP.md | 17 + odex30_base/queue_job/readme/USAGE.md | 468 +++++++ .../queue_job/security/ir.model.access.csv | 8 + odex30_base/queue_job/security/security.xml | 27 + .../queue_job/static/description/icon.png | Bin 0 -> 1248 bytes .../queue_job/static/description/icon.svg | 77 ++ .../queue_job/static/description/index.html | 1020 ++++++++++++++++ .../static/lib/vis/vis-network.min.css | 1 + .../static/lib/vis/vis-network.min.js | 27 + .../job_direct_graph/job_direct_graph.esm.js | 177 +++ .../job_direct_graph/job_direct_graph.scss | 10 + .../job_direct_graph/job_direct_graph.xml | 8 + odex30_base/queue_job/tests/__init__.py | 10 + odex30_base/queue_job/tests/common.py | 462 +++++++ odex30_base/queue_job/tests/test_delayable.py | 287 +++++ .../queue_job/tests/test_delayable_split.py | 103 ++ .../queue_job/tests/test_json_field.py | 163 +++ .../queue_job/tests/test_model_job_channel.py | 59 + .../tests/test_model_job_function.py | 57 + .../tests/test_queue_job_protected_write.py | 43 + .../tests/test_run_rob_controller.py | 17 + .../queue_job/tests/test_runner_channels.py | 10 + .../queue_job/tests/test_runner_runner.py | 59 + odex30_base/queue_job/tests/test_wizards.py | 48 + odex30_base/queue_job/utils.py | 21 + .../views/queue_job_channel_views.xml | 58 + .../views/queue_job_function_views.xml | 56 + .../queue_job/views/queue_job_menus.xml | 32 + .../queue_job/views/queue_job_views.xml | 337 +++++ odex30_base/queue_job/wizards/__init__.py | 3 + .../wizards/queue_jobs_to_cancelled.py | 17 + .../wizards/queue_jobs_to_cancelled_views.xml | 32 + .../queue_job/wizards/queue_jobs_to_done.py | 15 + .../wizards/queue_jobs_to_done_views.xml | 32 + .../queue_job/wizards/queue_requeue_job.py | 25 + .../wizards/queue_requeue_job_views.xml | 32 + queue | 1 - 359 files changed, 18708 insertions(+), 304 deletions(-) delete mode 100644 code_backend_theme/__manifest__.py delete mode 100644 code_backend_theme/assets/assets.xml delete mode 100644 code_backend_theme/static/description/assets/icons/._.DS_Store delete mode 100644 code_backend_theme/static/description/assets/icons/._cogs.png delete mode 100644 code_backend_theme/static/description/assets/icons/._consultation.png delete mode 100644 code_backend_theme/static/description/assets/icons/._ecom-black.png delete mode 100644 code_backend_theme/static/description/assets/icons/._education-black.png delete mode 100644 code_backend_theme/static/description/assets/icons/._hotel-black.png delete mode 100644 code_backend_theme/static/description/assets/icons/._license.png delete mode 100644 code_backend_theme/static/description/assets/icons/._lifebuoy.png delete mode 100644 code_backend_theme/static/description/assets/icons/._manufacturing-black.png delete mode 100644 code_backend_theme/static/description/assets/icons/._pos-black.png delete mode 100644 code_backend_theme/static/description/assets/icons/._puzzle.png delete mode 100644 code_backend_theme/static/description/assets/icons/._restaurant-black.png delete mode 100644 code_backend_theme/static/description/assets/icons/._service-black.png delete mode 100644 code_backend_theme/static/description/assets/icons/._trading-black.png delete mode 100644 code_backend_theme/static/description/assets/icons/._training.png delete mode 100644 code_backend_theme/static/description/assets/icons/._update.png delete mode 100644 code_backend_theme/static/description/assets/icons/._user.png delete mode 100644 code_backend_theme/static/description/assets/icons/._wrench.png delete mode 100644 code_backend_theme/static/description/assets/icons/feature-icons/._lifebuoy.png delete mode 100644 code_backend_theme/static/src/js/chrome/sidebar.js delete mode 100644 code_backend_theme/static/src/js/chrome/sidebar_menu.js delete mode 100644 code_backend_theme/static/src/xml/top_bar.xml delete mode 100644 exp_base_document_layout_fonts/views/webclient.xml delete mode 100644 expert_font_for_website/views/resources.xml delete mode 100644 hide_login_db_selection/controllers/__pycache__/__init__.cpython-38.pyc delete mode 100644 hide_login_db_selection/controllers/__pycache__/controllers.cpython-38.pyc delete mode 100644 hide_login_db_selection/models/__pycache__/__init__.cpython-38.pyc delete mode 100644 hide_login_db_selection/models/__pycache__/models.cpython-38.pyc delete mode 100644 hide_login_db_selection/views/resources.xml delete mode 100644 inbox_notif_email/.idea/.gitignore delete mode 100644 inbox_notif_email/.idea/inbox_notif_email.iml delete mode 100644 inbox_notif_email/.idea/inspectionProfiles/Project_Default.xml delete mode 100644 inbox_notif_email/.idea/inspectionProfiles/profiles_settings.xml delete mode 100644 inbox_notif_email/.idea/misc.xml delete mode 100644 inbox_notif_email/.idea/modules.xml delete mode 100644 inbox_notif_email/.idea/vcs.xml rename {chatgpt_bot => odex30_base/chatgpt_bot}/__init__.py (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/__manifest__.py (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/controllers/__init__.py (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/controllers/controllers.py (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/demo/demo.xml (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/images/gif_chat.gif (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/images/image1.png (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/images/image2.png (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/images/image3.png (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/images/image4.png (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/models/__init__.py (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/models/mail_bot.py (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/models/res_config_setting.py (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/models/res_users.py (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/security/ir.model.access.csv (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/static/description/banner.png (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/static/description/icon.png (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/static/description/images/banner.png (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/static/description/images/gif_chat.gif (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/static/description/images/image1.png (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/static/description/images/image2.png (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/static/description/images/image3.png (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/static/description/images/image4.png (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/static/description/images/main_screenshot.png (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/static/description/index.html (100%) rename {chatgpt_bot => odex30_base/chatgpt_bot}/views/res_config_settings.xml (90%) rename {code_backend_theme => odex30_base/code_backend_theme}/README.rst (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/__init__.py (100%) create mode 100644 odex30_base/code_backend_theme/__manifest__.py rename {code_backend_theme => odex30_base/code_backend_theme}/doc/RELEASE_NOTES.md (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/hooks.py (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/all_screens.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/hero.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/chevron.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/cogs.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/consultation.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/ecom-black.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/education-black.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/feature-icons/document.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/feature-icons/down.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/feature-icons/lifebuoy.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/hotel-black.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/license.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/lifebuoy.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/manufacturing-black.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/pos-black.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/puzzle.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/restaurant-black.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/service-black.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/trading-black.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/training.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/update.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/user.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/icons/wrench.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/menu_focus.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/resp-gif.gif (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/responsive.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/alert.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/apps_uninstall.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/chatters.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/discuss.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/form.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/form_product.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/graph.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/group.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/invoice.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/kanban_empl.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/kanban_group.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/kanban_product.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/kanban_recruits.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/kanban_sale.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/kiosk.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/list_purchase.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/list_sales.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/login.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/modal.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/settings.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/sidebar-gif.gif (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/sidebar_list.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/sidebar_settings.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/assets/screenshots/tab.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/banner.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/icon.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/index.html (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/description/theme_screenshot.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/code_logo.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Attendances.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/CRM.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Calendar.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Contacts.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Dashboards.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Email Marketing.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Employees.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Events.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Expenses.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Fleet.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Inventory.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Invoicing.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Link Tracker.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Live Chat.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Lunch.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Maintenance.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Manufacturing.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Members.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Note.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Point of Sale.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Project.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Purchase.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Recruitment.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Repairs.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/SMS Marketing.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Sales.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Surveys.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Time Off.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Timesheets.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/Website.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/apps.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/close.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/discuss.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/eLearning.png (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/img/icons/settings.png (100%) create mode 100644 odex30_base/code_backend_theme/static/src/js/chrome/sidebar.js create mode 100644 odex30_base/code_backend_theme/static/src/js/chrome/sidebar_menu.js rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/js/fields/basic_fields.js (59%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/js/fields/graph.js (81%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/scss/datetimepicker.scss (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/scss/login.scss (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/scss/navigation_bar.scss (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/scss/sidebar.scss (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/scss/theme.scss (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/scss/theme_accent.scss (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/xml/sidebar.xml (63%) rename {code_backend_theme => odex30_base/code_backend_theme}/static/src/xml/styles.xml (84%) create mode 100644 odex30_base/code_backend_theme/static/src/xml/top_bar.xml rename {code_backend_theme => odex30_base/code_backend_theme}/views/icons.xml (100%) rename {code_backend_theme => odex30_base/code_backend_theme}/views/layout.xml (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/__init__.py (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/__manifest__.py (94%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/models/__init__.py (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/models/document_layout.py (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/description/icon.png (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/description/index.html (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/description/internet.png (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/description/linkedin.png (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/description/mail.png (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/description/odex.png (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/description/smiling_face.svg (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/description/twitter.png (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/DroidKufi-Bold.eot (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/DroidKufi-Bold.ttf (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/DroidKufi-Bold.woff (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/DroidKufi-Bold.woff2 (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/DroidKufi-Regular.eot (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/DroidKufi-Regular.ttf (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/DroidKufi-Regular.woff (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/DroidKufi-Regular.woff2 (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/DroidNaskh-Bold.eot (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/DroidNaskh-Bold.ttf (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/DroidNaskh-Bold.woff (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/DroidNaskh-Bold.woff2 (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/DroidNaskh-Regular.eot (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/DroidNaskh-Regular.ttf (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/DroidNaskh-Regular.woff (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/DroidNaskh-Regular.woff2 (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/bukrabold.otf (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/bukrabold.ttf (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/bukralight.ttf (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/fonts/bukraregular.otf (100%) rename {exp_base_document_layout_fonts => odex30_base/exp_base_document_layout_fonts}/static/src/scss/fonts.scss (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/__init__.py (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/__manifest__.py (75%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/controllers/__init__.py (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/controllers/controllers.py (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/demo/demo.xml (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/models/__init__.py (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/models/models.py (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/security/ir.model.access.csv (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/css/custom_rtl.css (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/css/custom_rtl.css.map (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/css/custom_rtl.scss (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/css/footer.css (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/css/footer.css.map (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/css/footer.scss (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/fonts/DroidKufi-Bold.eot (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/fonts/DroidKufi-Bold.ttf (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/fonts/DroidKufi-Bold.woff (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/fonts/DroidKufi-Bold.woff2 (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/fonts/DroidKufi-Regular.eot (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/fonts/DroidKufi-Regular.ttf (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/fonts/DroidKufi-Regular.woff (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/fonts/DroidKufi-Regular.woff2 (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/fonts/DroidNaskh-Bold.eot (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/fonts/DroidNaskh-Bold.ttf (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/fonts/DroidNaskh-Bold.woff (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/fonts/DroidNaskh-Bold.woff2 (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/fonts/DroidNaskh-Regular.eot (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/fonts/DroidNaskh-Regular.ttf (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/fonts/DroidNaskh-Regular.woff (100%) rename {expert_font_for_website => odex30_base/expert_font_for_website}/static/src/fonts/DroidNaskh-Regular.woff2 (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/__init__.py (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/__manifest__.py (95%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/controllers/__init__.py (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/controllers/controllers.py (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/demo/demo.xml (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/models/__init__.py (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/models/models.py (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/security/ir.model.access.csv (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/static/img/icon.png (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/static/img/index.html (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/static/img/internet.png (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/static/img/linkedin.png (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/static/img/mail.png (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/static/img/odex.png (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/static/img/smiling_face.svg (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/static/img/twitter.png (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/static/js/login_page.js (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/static/src/css/database-hide.css (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/static/src/css/database-hide.css.map (100%) rename {hide_login_db_selection => odex30_base/hide_login_db_selection}/static/src/css/database-hide.scss (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/__init__.py (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/__manifest__.py (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/controllers/__init__.py (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/controllers/controllers.py (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/demo/demo.xml (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/models/__init__.py (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/models/models.py (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/security/ir.model.access.csv (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/static/description/banner.PNG (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/static/description/icon.png (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/static/description/image1.png (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/static/description/image10.png (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/static/description/image2.png (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/static/description/image3.png (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/static/description/image4.png (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/static/description/image5.png (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/static/description/image6.png (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/static/description/image7.png (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/static/description/image8.png (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/static/description/image9.png (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/static/description/index.html (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/views/templates.xml (100%) rename {inbox_notif_email => odex30_base/inbox_notif_email}/views/views.xml (100%) create mode 100644 odex30_base/queue_job/README.rst create mode 100644 odex30_base/queue_job/__init__.py create mode 100644 odex30_base/queue_job/__manifest__.py create mode 100644 odex30_base/queue_job/controllers/__init__.py create mode 100644 odex30_base/queue_job/controllers/main.py create mode 100644 odex30_base/queue_job/data/queue_data.xml create mode 100644 odex30_base/queue_job/data/queue_job_function_data.xml create mode 100644 odex30_base/queue_job/delay.py create mode 100644 odex30_base/queue_job/exception.py create mode 100644 odex30_base/queue_job/fields.py create mode 100644 odex30_base/queue_job/i18n/de.po create mode 100644 odex30_base/queue_job/i18n/es.po create mode 100644 odex30_base/queue_job/i18n/it.po create mode 100644 odex30_base/queue_job/i18n/nl.po create mode 100644 odex30_base/queue_job/i18n/nl_NL.po create mode 100644 odex30_base/queue_job/i18n/queue_job.pot create mode 100644 odex30_base/queue_job/i18n/tr.po create mode 100644 odex30_base/queue_job/i18n/tr_TR.po create mode 100644 odex30_base/queue_job/i18n/zh_CN.po create mode 100644 odex30_base/queue_job/job.py create mode 100644 odex30_base/queue_job/jobrunner/__init__.py create mode 100644 odex30_base/queue_job/jobrunner/__main__.py create mode 100644 odex30_base/queue_job/jobrunner/channels.py create mode 100644 odex30_base/queue_job/jobrunner/runner.py create mode 100644 odex30_base/queue_job/migrations/18.0.1.0.0/pre-migrate.py create mode 100644 odex30_base/queue_job/migrations/18.0.1.7.0/pre-migration.py create mode 100644 odex30_base/queue_job/models/__init__.py create mode 100644 odex30_base/queue_job/models/base.py create mode 100644 odex30_base/queue_job/models/ir_model_fields.py create mode 100644 odex30_base/queue_job/models/queue_job.py create mode 100644 odex30_base/queue_job/models/queue_job_channel.py create mode 100644 odex30_base/queue_job/models/queue_job_function.py create mode 100644 odex30_base/queue_job/models/queue_job_lock.py create mode 100644 odex30_base/queue_job/post_init_hook.py create mode 100644 odex30_base/queue_job/post_load.py create mode 100644 odex30_base/queue_job/pyproject.toml create mode 100644 odex30_base/queue_job/readme/CONFIGURE.md create mode 100644 odex30_base/queue_job/readme/CONTRIBUTORS.md create mode 100644 odex30_base/queue_job/readme/CREDITS.md create mode 100644 odex30_base/queue_job/readme/DESCRIPTION.md create mode 100644 odex30_base/queue_job/readme/HISTORY.md create mode 100644 odex30_base/queue_job/readme/INSTALL.md create mode 100644 odex30_base/queue_job/readme/ROADMAP.md create mode 100644 odex30_base/queue_job/readme/USAGE.md create mode 100644 odex30_base/queue_job/security/ir.model.access.csv create mode 100644 odex30_base/queue_job/security/security.xml create mode 100644 odex30_base/queue_job/static/description/icon.png create mode 100644 odex30_base/queue_job/static/description/icon.svg create mode 100644 odex30_base/queue_job/static/description/index.html create mode 100644 odex30_base/queue_job/static/lib/vis/vis-network.min.css create mode 100644 odex30_base/queue_job/static/lib/vis/vis-network.min.js create mode 100644 odex30_base/queue_job/static/src/views/fields/job_direct_graph/job_direct_graph.esm.js create mode 100644 odex30_base/queue_job/static/src/views/fields/job_direct_graph/job_direct_graph.scss create mode 100644 odex30_base/queue_job/static/src/views/fields/job_direct_graph/job_direct_graph.xml create mode 100644 odex30_base/queue_job/tests/__init__.py create mode 100644 odex30_base/queue_job/tests/common.py create mode 100644 odex30_base/queue_job/tests/test_delayable.py create mode 100644 odex30_base/queue_job/tests/test_delayable_split.py create mode 100644 odex30_base/queue_job/tests/test_json_field.py create mode 100644 odex30_base/queue_job/tests/test_model_job_channel.py create mode 100644 odex30_base/queue_job/tests/test_model_job_function.py create mode 100644 odex30_base/queue_job/tests/test_queue_job_protected_write.py create mode 100644 odex30_base/queue_job/tests/test_run_rob_controller.py create mode 100644 odex30_base/queue_job/tests/test_runner_channels.py create mode 100644 odex30_base/queue_job/tests/test_runner_runner.py create mode 100644 odex30_base/queue_job/tests/test_wizards.py create mode 100644 odex30_base/queue_job/utils.py create mode 100644 odex30_base/queue_job/views/queue_job_channel_views.xml create mode 100644 odex30_base/queue_job/views/queue_job_function_views.xml create mode 100644 odex30_base/queue_job/views/queue_job_menus.xml create mode 100644 odex30_base/queue_job/views/queue_job_views.xml create mode 100644 odex30_base/queue_job/wizards/__init__.py create mode 100644 odex30_base/queue_job/wizards/queue_jobs_to_cancelled.py create mode 100644 odex30_base/queue_job/wizards/queue_jobs_to_cancelled_views.xml create mode 100644 odex30_base/queue_job/wizards/queue_jobs_to_done.py create mode 100644 odex30_base/queue_job/wizards/queue_jobs_to_done_views.xml create mode 100644 odex30_base/queue_job/wizards/queue_requeue_job.py create mode 100644 odex30_base/queue_job/wizards/queue_requeue_job_views.xml delete mode 160000 queue diff --git a/code_backend_theme/__manifest__.py b/code_backend_theme/__manifest__.py deleted file mode 100644 index 3e29707..0000000 --- a/code_backend_theme/__manifest__.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: utf-8 -*- -{ - "name": "Code Backend Theme V18", - "summary": "Minimalist and elegant backend theme for Odoo 18", - "description": """Attractive and modern backend theme for Odoo 18""", - "category": "Themes/Backend", - "version": "18.0.1.0.0", - "author": "Cybrosys Techno Solutions", - "company": "Cybrosys Techno Solutions", - "maintainer": "Cybrosys Techno Solutions", - "website": "https://www.cybrosys.com", - "license": "LGPL-3", - "depends": ["base", "web", "mail", "account"], # add 'account' if you patch its dashboard - "assets": { - "web.assets_backend": [ - # "code_backend_theme/static/src/scss/theme_accent.scss", - "code_backend_theme/static/src/scss/navigation_bar.scss", - "code_backend_theme/static/src/scss/datetimepicker.scss", - "code_backend_theme/static/src/scss/theme.scss", - "code_backend_theme/static/src/scss/sidebar.scss", - "code_backend_theme/static/src/js/fields/basic_fields.js", - "code_backend_theme/static/src/js/fields/graph.js", - "code_backend_theme/static/src/js/chrome/sidebar.js", - "code_backend_theme/static/src/js/chrome/sidebar_menu.js", - ], - "web.assets_frontend": [ - "code_backend_theme/static/src/scss/login.scss", - ], - "web.qweb": [ - "code_backend_theme/static/src/xml/sidebar.xml", - "code_backend_theme/static/src/xml/styles.xml", - "code_backend_theme/static/src/xml/top_bar.xml", - ], - }, - "images": [ - "static/description/banner.png", - "static/description/theme_screenshot.png", - ], - - "post_init_hook": "post_init_hook", - "installable": True, - "application": False, - "auto_install": False, -} diff --git a/code_backend_theme/assets/assets.xml b/code_backend_theme/assets/assets.xml deleted file mode 100644 index 8d5607c..0000000 --- a/code_backend_theme/assets/assets.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - diff --git a/inbox_notif_email/.idea/.gitignore b/inbox_notif_email/.idea/.gitignore deleted file mode 100644 index 3cb95ef..0000000 --- a/inbox_notif_email/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Datasource local storage ignored files -/../../../../../../../:\Users\Adnan Usmani\Downloads\Compressed\inbox_notif_email\.idea/dataSources/ -/dataSources.local.xml -# Editor-based HTTP Client requests -/httpRequests/ diff --git a/inbox_notif_email/.idea/inbox_notif_email.iml b/inbox_notif_email/.idea/inbox_notif_email.iml deleted file mode 100644 index 92b8cab..0000000 --- a/inbox_notif_email/.idea/inbox_notif_email.iml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/inbox_notif_email/.idea/inspectionProfiles/Project_Default.xml b/inbox_notif_email/.idea/inspectionProfiles/Project_Default.xml deleted file mode 100644 index a5550a3..0000000 --- a/inbox_notif_email/.idea/inspectionProfiles/Project_Default.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - \ No newline at end of file diff --git a/inbox_notif_email/.idea/inspectionProfiles/profiles_settings.xml b/inbox_notif_email/.idea/inspectionProfiles/profiles_settings.xml deleted file mode 100644 index 105ce2d..0000000 --- a/inbox_notif_email/.idea/inspectionProfiles/profiles_settings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/inbox_notif_email/.idea/misc.xml b/inbox_notif_email/.idea/misc.xml deleted file mode 100644 index d1e22ec..0000000 --- a/inbox_notif_email/.idea/misc.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/inbox_notif_email/.idea/modules.xml b/inbox_notif_email/.idea/modules.xml deleted file mode 100644 index ce31c98..0000000 --- a/inbox_notif_email/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/inbox_notif_email/.idea/vcs.xml b/inbox_notif_email/.idea/vcs.xml deleted file mode 100644 index 6c0b863..0000000 --- a/inbox_notif_email/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/chatgpt_bot/__init__.py b/odex30_base/chatgpt_bot/__init__.py similarity index 100% rename from chatgpt_bot/__init__.py rename to odex30_base/chatgpt_bot/__init__.py diff --git a/chatgpt_bot/__manifest__.py b/odex30_base/chatgpt_bot/__manifest__.py similarity index 100% rename from chatgpt_bot/__manifest__.py rename to odex30_base/chatgpt_bot/__manifest__.py diff --git a/chatgpt_bot/controllers/__init__.py b/odex30_base/chatgpt_bot/controllers/__init__.py similarity index 100% rename from chatgpt_bot/controllers/__init__.py rename to odex30_base/chatgpt_bot/controllers/__init__.py diff --git a/chatgpt_bot/controllers/controllers.py b/odex30_base/chatgpt_bot/controllers/controllers.py similarity index 100% rename from chatgpt_bot/controllers/controllers.py rename to odex30_base/chatgpt_bot/controllers/controllers.py diff --git a/chatgpt_bot/demo/demo.xml b/odex30_base/chatgpt_bot/demo/demo.xml similarity index 100% rename from chatgpt_bot/demo/demo.xml rename to odex30_base/chatgpt_bot/demo/demo.xml diff --git a/chatgpt_bot/images/gif_chat.gif b/odex30_base/chatgpt_bot/images/gif_chat.gif similarity index 100% rename from chatgpt_bot/images/gif_chat.gif rename to odex30_base/chatgpt_bot/images/gif_chat.gif diff --git a/chatgpt_bot/images/image1.png b/odex30_base/chatgpt_bot/images/image1.png similarity index 100% rename from chatgpt_bot/images/image1.png rename to odex30_base/chatgpt_bot/images/image1.png diff --git a/chatgpt_bot/images/image2.png b/odex30_base/chatgpt_bot/images/image2.png similarity index 100% rename from chatgpt_bot/images/image2.png rename to odex30_base/chatgpt_bot/images/image2.png diff --git a/chatgpt_bot/images/image3.png b/odex30_base/chatgpt_bot/images/image3.png similarity index 100% rename from chatgpt_bot/images/image3.png rename to odex30_base/chatgpt_bot/images/image3.png diff --git a/chatgpt_bot/images/image4.png b/odex30_base/chatgpt_bot/images/image4.png similarity index 100% rename from chatgpt_bot/images/image4.png rename to odex30_base/chatgpt_bot/images/image4.png diff --git a/chatgpt_bot/models/__init__.py b/odex30_base/chatgpt_bot/models/__init__.py similarity index 100% rename from chatgpt_bot/models/__init__.py rename to odex30_base/chatgpt_bot/models/__init__.py diff --git a/chatgpt_bot/models/mail_bot.py b/odex30_base/chatgpt_bot/models/mail_bot.py similarity index 100% rename from chatgpt_bot/models/mail_bot.py rename to odex30_base/chatgpt_bot/models/mail_bot.py diff --git a/chatgpt_bot/models/res_config_setting.py b/odex30_base/chatgpt_bot/models/res_config_setting.py similarity index 100% rename from chatgpt_bot/models/res_config_setting.py rename to odex30_base/chatgpt_bot/models/res_config_setting.py diff --git a/chatgpt_bot/models/res_users.py b/odex30_base/chatgpt_bot/models/res_users.py similarity index 100% rename from chatgpt_bot/models/res_users.py rename to odex30_base/chatgpt_bot/models/res_users.py diff --git a/chatgpt_bot/security/ir.model.access.csv b/odex30_base/chatgpt_bot/security/ir.model.access.csv similarity index 100% rename from chatgpt_bot/security/ir.model.access.csv rename to odex30_base/chatgpt_bot/security/ir.model.access.csv diff --git a/chatgpt_bot/static/description/banner.png b/odex30_base/chatgpt_bot/static/description/banner.png similarity index 100% rename from chatgpt_bot/static/description/banner.png rename to odex30_base/chatgpt_bot/static/description/banner.png diff --git a/chatgpt_bot/static/description/icon.png b/odex30_base/chatgpt_bot/static/description/icon.png similarity index 100% rename from chatgpt_bot/static/description/icon.png rename to odex30_base/chatgpt_bot/static/description/icon.png diff --git a/chatgpt_bot/static/description/images/banner.png b/odex30_base/chatgpt_bot/static/description/images/banner.png similarity index 100% rename from chatgpt_bot/static/description/images/banner.png rename to odex30_base/chatgpt_bot/static/description/images/banner.png diff --git a/chatgpt_bot/static/description/images/gif_chat.gif b/odex30_base/chatgpt_bot/static/description/images/gif_chat.gif similarity index 100% rename from chatgpt_bot/static/description/images/gif_chat.gif rename to odex30_base/chatgpt_bot/static/description/images/gif_chat.gif diff --git a/chatgpt_bot/static/description/images/image1.png b/odex30_base/chatgpt_bot/static/description/images/image1.png similarity index 100% rename from chatgpt_bot/static/description/images/image1.png rename to odex30_base/chatgpt_bot/static/description/images/image1.png diff --git a/chatgpt_bot/static/description/images/image2.png b/odex30_base/chatgpt_bot/static/description/images/image2.png similarity index 100% rename from chatgpt_bot/static/description/images/image2.png rename to odex30_base/chatgpt_bot/static/description/images/image2.png diff --git a/chatgpt_bot/static/description/images/image3.png b/odex30_base/chatgpt_bot/static/description/images/image3.png similarity index 100% rename from chatgpt_bot/static/description/images/image3.png rename to odex30_base/chatgpt_bot/static/description/images/image3.png diff --git a/chatgpt_bot/static/description/images/image4.png b/odex30_base/chatgpt_bot/static/description/images/image4.png similarity index 100% rename from chatgpt_bot/static/description/images/image4.png rename to odex30_base/chatgpt_bot/static/description/images/image4.png diff --git a/chatgpt_bot/static/description/images/main_screenshot.png b/odex30_base/chatgpt_bot/static/description/images/main_screenshot.png similarity index 100% rename from chatgpt_bot/static/description/images/main_screenshot.png rename to odex30_base/chatgpt_bot/static/description/images/main_screenshot.png diff --git a/chatgpt_bot/static/description/index.html b/odex30_base/chatgpt_bot/static/description/index.html similarity index 100% rename from chatgpt_bot/static/description/index.html rename to odex30_base/chatgpt_bot/static/description/index.html diff --git a/chatgpt_bot/views/res_config_settings.xml b/odex30_base/chatgpt_bot/views/res_config_settings.xml similarity index 90% rename from chatgpt_bot/views/res_config_settings.xml rename to odex30_base/chatgpt_bot/views/res_config_settings.xml index 375cbb6..7088d99 100644 --- a/chatgpt_bot/views/res_config_settings.xml +++ b/odex30_base/chatgpt_bot/views/res_config_settings.xml @@ -5,13 +5,13 @@ res.config.settings.view.form.inherit.chatgpt res.config.settings - +
+ data-key="chatgpt_blog" data-string="ChatGPT Blog">

ChatGPT OdooBot

@@ -20,8 +20,8 @@
@@ -42,4 +42,4 @@ - + \ No newline at end of file diff --git a/code_backend_theme/README.rst b/odex30_base/code_backend_theme/README.rst similarity index 100% rename from code_backend_theme/README.rst rename to odex30_base/code_backend_theme/README.rst diff --git a/code_backend_theme/__init__.py b/odex30_base/code_backend_theme/__init__.py similarity index 100% rename from code_backend_theme/__init__.py rename to odex30_base/code_backend_theme/__init__.py diff --git a/odex30_base/code_backend_theme/__manifest__.py b/odex30_base/code_backend_theme/__manifest__.py new file mode 100644 index 0000000..6cf0790 --- /dev/null +++ b/odex30_base/code_backend_theme/__manifest__.py @@ -0,0 +1,50 @@ + +# -*- coding: utf-8 -*- +{ + "name": "Code Backend Theme ", + "summary": "Minimalist and elegant backend theme for Odoo 18", + "description": "Attractive and modern backend theme for Odoo 18", + "category": "Themes/Backend", + "version": "18.0.1.0.0", + "author": "Cybrosys Techno Solutions", + "company": "Cybrosys Techno Solutions", + "maintainer": "Cybrosys Techno Solutions", + "website": "https://www.cybrosys.com", + "license": "LGPL-3", + "depends": ["base", "web", "mail", "account"], # keep 'account' only if you extend it + "assets": { + "web.assets_backend": [ + "/code_backend_theme/static/src/scss/theme_accent.scss", + "/code_backend_theme/static/src/scss/navigation_bar.scss", + "/code_backend_theme/static/src/scss/datetimepicker.scss", + "/code_backend_theme/static/src/scss/theme.scss", + "/code_backend_theme/static/src/scss/sidebar.scss", + "/code_backend_theme/static/src/js/fields/basic_fields.js", + # "/code_backend_theme/static/src/js/fields/graph.js", + "/code_backend_theme/static/src/js/chrome/sidebar.js", + # "/code_backend_theme/static/src/js/chrome/sidebar_menu.js", + "https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&display=swap", + ], + 'web.assets_backend_lazy': [ # ← KEY CHANGE + "/code_backend_theme/static/src/js/fields/graph.js", + "/code_backend_theme/static/src/js/chrome/sidebar_menu.js", + ], + "web.assets_frontend": [ + "/code_backend_theme/static/src/scss/login.scss", + "https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&display=swap", + ], + "web.qweb": [ + "/code_backend_theme/static/src/xml/sidebar.xml", + "/code_backend_theme/static/src/xml/styles.xml", + "/code_backend_theme/static/src/xml/top_bar.xml", + ], + }, + "images": [ + "static/description/banner.png", + "static/description/theme_screenshot.png", + ], + "installable": True, + "application": False, + "auto_install": False, +} + diff --git a/code_backend_theme/doc/RELEASE_NOTES.md b/odex30_base/code_backend_theme/doc/RELEASE_NOTES.md similarity index 100% rename from code_backend_theme/doc/RELEASE_NOTES.md rename to odex30_base/code_backend_theme/doc/RELEASE_NOTES.md diff --git a/code_backend_theme/hooks.py b/odex30_base/code_backend_theme/hooks.py similarity index 100% rename from code_backend_theme/hooks.py rename to odex30_base/code_backend_theme/hooks.py diff --git a/code_backend_theme/static/description/assets/all_screens.png b/odex30_base/code_backend_theme/static/description/assets/all_screens.png similarity index 100% rename from code_backend_theme/static/description/assets/all_screens.png rename to odex30_base/code_backend_theme/static/description/assets/all_screens.png diff --git a/code_backend_theme/static/description/assets/hero.png b/odex30_base/code_backend_theme/static/description/assets/hero.png similarity index 100% rename from code_backend_theme/static/description/assets/hero.png rename to odex30_base/code_backend_theme/static/description/assets/hero.png diff --git a/code_backend_theme/static/description/assets/icons/chevron.png b/odex30_base/code_backend_theme/static/description/assets/icons/chevron.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/chevron.png rename to odex30_base/code_backend_theme/static/description/assets/icons/chevron.png diff --git a/code_backend_theme/static/description/assets/icons/cogs.png b/odex30_base/code_backend_theme/static/description/assets/icons/cogs.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/cogs.png rename to odex30_base/code_backend_theme/static/description/assets/icons/cogs.png diff --git a/code_backend_theme/static/description/assets/icons/consultation.png b/odex30_base/code_backend_theme/static/description/assets/icons/consultation.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/consultation.png rename to odex30_base/code_backend_theme/static/description/assets/icons/consultation.png diff --git a/code_backend_theme/static/description/assets/icons/ecom-black.png b/odex30_base/code_backend_theme/static/description/assets/icons/ecom-black.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/ecom-black.png rename to odex30_base/code_backend_theme/static/description/assets/icons/ecom-black.png diff --git a/code_backend_theme/static/description/assets/icons/education-black.png b/odex30_base/code_backend_theme/static/description/assets/icons/education-black.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/education-black.png rename to odex30_base/code_backend_theme/static/description/assets/icons/education-black.png diff --git a/code_backend_theme/static/description/assets/icons/feature-icons/document.png b/odex30_base/code_backend_theme/static/description/assets/icons/feature-icons/document.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/feature-icons/document.png rename to odex30_base/code_backend_theme/static/description/assets/icons/feature-icons/document.png diff --git a/code_backend_theme/static/description/assets/icons/feature-icons/down.png b/odex30_base/code_backend_theme/static/description/assets/icons/feature-icons/down.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/feature-icons/down.png rename to odex30_base/code_backend_theme/static/description/assets/icons/feature-icons/down.png diff --git a/code_backend_theme/static/description/assets/icons/feature-icons/lifebuoy.png b/odex30_base/code_backend_theme/static/description/assets/icons/feature-icons/lifebuoy.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/feature-icons/lifebuoy.png rename to odex30_base/code_backend_theme/static/description/assets/icons/feature-icons/lifebuoy.png diff --git a/code_backend_theme/static/description/assets/icons/hotel-black.png b/odex30_base/code_backend_theme/static/description/assets/icons/hotel-black.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/hotel-black.png rename to odex30_base/code_backend_theme/static/description/assets/icons/hotel-black.png diff --git a/code_backend_theme/static/description/assets/icons/license.png b/odex30_base/code_backend_theme/static/description/assets/icons/license.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/license.png rename to odex30_base/code_backend_theme/static/description/assets/icons/license.png diff --git a/code_backend_theme/static/description/assets/icons/lifebuoy.png b/odex30_base/code_backend_theme/static/description/assets/icons/lifebuoy.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/lifebuoy.png rename to odex30_base/code_backend_theme/static/description/assets/icons/lifebuoy.png diff --git a/code_backend_theme/static/description/assets/icons/manufacturing-black.png b/odex30_base/code_backend_theme/static/description/assets/icons/manufacturing-black.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/manufacturing-black.png rename to odex30_base/code_backend_theme/static/description/assets/icons/manufacturing-black.png diff --git a/code_backend_theme/static/description/assets/icons/pos-black.png b/odex30_base/code_backend_theme/static/description/assets/icons/pos-black.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/pos-black.png rename to odex30_base/code_backend_theme/static/description/assets/icons/pos-black.png diff --git a/code_backend_theme/static/description/assets/icons/puzzle.png b/odex30_base/code_backend_theme/static/description/assets/icons/puzzle.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/puzzle.png rename to odex30_base/code_backend_theme/static/description/assets/icons/puzzle.png diff --git a/code_backend_theme/static/description/assets/icons/restaurant-black.png b/odex30_base/code_backend_theme/static/description/assets/icons/restaurant-black.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/restaurant-black.png rename to odex30_base/code_backend_theme/static/description/assets/icons/restaurant-black.png diff --git a/code_backend_theme/static/description/assets/icons/service-black.png b/odex30_base/code_backend_theme/static/description/assets/icons/service-black.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/service-black.png rename to odex30_base/code_backend_theme/static/description/assets/icons/service-black.png diff --git a/code_backend_theme/static/description/assets/icons/trading-black.png b/odex30_base/code_backend_theme/static/description/assets/icons/trading-black.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/trading-black.png rename to odex30_base/code_backend_theme/static/description/assets/icons/trading-black.png diff --git a/code_backend_theme/static/description/assets/icons/training.png b/odex30_base/code_backend_theme/static/description/assets/icons/training.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/training.png rename to odex30_base/code_backend_theme/static/description/assets/icons/training.png diff --git a/code_backend_theme/static/description/assets/icons/update.png b/odex30_base/code_backend_theme/static/description/assets/icons/update.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/update.png rename to odex30_base/code_backend_theme/static/description/assets/icons/update.png diff --git a/code_backend_theme/static/description/assets/icons/user.png b/odex30_base/code_backend_theme/static/description/assets/icons/user.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/user.png rename to odex30_base/code_backend_theme/static/description/assets/icons/user.png diff --git a/code_backend_theme/static/description/assets/icons/wrench.png b/odex30_base/code_backend_theme/static/description/assets/icons/wrench.png similarity index 100% rename from code_backend_theme/static/description/assets/icons/wrench.png rename to odex30_base/code_backend_theme/static/description/assets/icons/wrench.png diff --git a/code_backend_theme/static/description/assets/menu_focus.png b/odex30_base/code_backend_theme/static/description/assets/menu_focus.png similarity index 100% rename from code_backend_theme/static/description/assets/menu_focus.png rename to odex30_base/code_backend_theme/static/description/assets/menu_focus.png diff --git a/code_backend_theme/static/description/assets/resp-gif.gif b/odex30_base/code_backend_theme/static/description/assets/resp-gif.gif similarity index 100% rename from code_backend_theme/static/description/assets/resp-gif.gif rename to odex30_base/code_backend_theme/static/description/assets/resp-gif.gif diff --git a/code_backend_theme/static/description/assets/responsive.png b/odex30_base/code_backend_theme/static/description/assets/responsive.png similarity index 100% rename from code_backend_theme/static/description/assets/responsive.png rename to odex30_base/code_backend_theme/static/description/assets/responsive.png diff --git a/code_backend_theme/static/description/assets/screenshots/alert.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/alert.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/alert.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/alert.png diff --git a/code_backend_theme/static/description/assets/screenshots/apps_uninstall.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/apps_uninstall.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/apps_uninstall.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/apps_uninstall.png diff --git a/code_backend_theme/static/description/assets/screenshots/chatters.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/chatters.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/chatters.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/chatters.png diff --git a/code_backend_theme/static/description/assets/screenshots/discuss.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/discuss.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/discuss.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/discuss.png diff --git a/code_backend_theme/static/description/assets/screenshots/form.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/form.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/form.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/form.png diff --git a/code_backend_theme/static/description/assets/screenshots/form_product.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/form_product.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/form_product.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/form_product.png diff --git a/code_backend_theme/static/description/assets/screenshots/graph.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/graph.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/graph.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/graph.png diff --git a/code_backend_theme/static/description/assets/screenshots/group.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/group.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/group.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/group.png diff --git a/code_backend_theme/static/description/assets/screenshots/invoice.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/invoice.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/invoice.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/invoice.png diff --git a/code_backend_theme/static/description/assets/screenshots/kanban_empl.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/kanban_empl.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/kanban_empl.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/kanban_empl.png diff --git a/code_backend_theme/static/description/assets/screenshots/kanban_group.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/kanban_group.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/kanban_group.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/kanban_group.png diff --git a/code_backend_theme/static/description/assets/screenshots/kanban_product.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/kanban_product.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/kanban_product.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/kanban_product.png diff --git a/code_backend_theme/static/description/assets/screenshots/kanban_recruits.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/kanban_recruits.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/kanban_recruits.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/kanban_recruits.png diff --git a/code_backend_theme/static/description/assets/screenshots/kanban_sale.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/kanban_sale.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/kanban_sale.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/kanban_sale.png diff --git a/code_backend_theme/static/description/assets/screenshots/kiosk.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/kiosk.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/kiosk.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/kiosk.png diff --git a/code_backend_theme/static/description/assets/screenshots/list_purchase.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/list_purchase.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/list_purchase.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/list_purchase.png diff --git a/code_backend_theme/static/description/assets/screenshots/list_sales.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/list_sales.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/list_sales.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/list_sales.png diff --git a/code_backend_theme/static/description/assets/screenshots/login.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/login.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/login.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/login.png diff --git a/code_backend_theme/static/description/assets/screenshots/modal.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/modal.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/modal.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/modal.png diff --git a/code_backend_theme/static/description/assets/screenshots/settings.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/settings.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/settings.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/settings.png diff --git a/code_backend_theme/static/description/assets/screenshots/sidebar-gif.gif b/odex30_base/code_backend_theme/static/description/assets/screenshots/sidebar-gif.gif similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/sidebar-gif.gif rename to odex30_base/code_backend_theme/static/description/assets/screenshots/sidebar-gif.gif diff --git a/code_backend_theme/static/description/assets/screenshots/sidebar_list.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/sidebar_list.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/sidebar_list.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/sidebar_list.png diff --git a/code_backend_theme/static/description/assets/screenshots/sidebar_settings.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/sidebar_settings.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/sidebar_settings.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/sidebar_settings.png diff --git a/code_backend_theme/static/description/assets/screenshots/tab.png b/odex30_base/code_backend_theme/static/description/assets/screenshots/tab.png similarity index 100% rename from code_backend_theme/static/description/assets/screenshots/tab.png rename to odex30_base/code_backend_theme/static/description/assets/screenshots/tab.png diff --git a/code_backend_theme/static/description/banner.png b/odex30_base/code_backend_theme/static/description/banner.png similarity index 100% rename from code_backend_theme/static/description/banner.png rename to odex30_base/code_backend_theme/static/description/banner.png diff --git a/code_backend_theme/static/description/icon.png b/odex30_base/code_backend_theme/static/description/icon.png similarity index 100% rename from code_backend_theme/static/description/icon.png rename to odex30_base/code_backend_theme/static/description/icon.png diff --git a/code_backend_theme/static/description/index.html b/odex30_base/code_backend_theme/static/description/index.html similarity index 100% rename from code_backend_theme/static/description/index.html rename to odex30_base/code_backend_theme/static/description/index.html diff --git a/code_backend_theme/static/description/theme_screenshot.png b/odex30_base/code_backend_theme/static/description/theme_screenshot.png similarity index 100% rename from code_backend_theme/static/description/theme_screenshot.png rename to odex30_base/code_backend_theme/static/description/theme_screenshot.png diff --git a/code_backend_theme/static/src/img/code_logo.png b/odex30_base/code_backend_theme/static/src/img/code_logo.png similarity index 100% rename from code_backend_theme/static/src/img/code_logo.png rename to odex30_base/code_backend_theme/static/src/img/code_logo.png diff --git a/code_backend_theme/static/src/img/icons/Attendances.png b/odex30_base/code_backend_theme/static/src/img/icons/Attendances.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Attendances.png rename to odex30_base/code_backend_theme/static/src/img/icons/Attendances.png diff --git a/code_backend_theme/static/src/img/icons/CRM.png b/odex30_base/code_backend_theme/static/src/img/icons/CRM.png similarity index 100% rename from code_backend_theme/static/src/img/icons/CRM.png rename to odex30_base/code_backend_theme/static/src/img/icons/CRM.png diff --git a/code_backend_theme/static/src/img/icons/Calendar.png b/odex30_base/code_backend_theme/static/src/img/icons/Calendar.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Calendar.png rename to odex30_base/code_backend_theme/static/src/img/icons/Calendar.png diff --git a/code_backend_theme/static/src/img/icons/Contacts.png b/odex30_base/code_backend_theme/static/src/img/icons/Contacts.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Contacts.png rename to odex30_base/code_backend_theme/static/src/img/icons/Contacts.png diff --git a/code_backend_theme/static/src/img/icons/Dashboards.png b/odex30_base/code_backend_theme/static/src/img/icons/Dashboards.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Dashboards.png rename to odex30_base/code_backend_theme/static/src/img/icons/Dashboards.png diff --git a/code_backend_theme/static/src/img/icons/Email Marketing.png b/odex30_base/code_backend_theme/static/src/img/icons/Email Marketing.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Email Marketing.png rename to odex30_base/code_backend_theme/static/src/img/icons/Email Marketing.png diff --git a/code_backend_theme/static/src/img/icons/Employees.png b/odex30_base/code_backend_theme/static/src/img/icons/Employees.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Employees.png rename to odex30_base/code_backend_theme/static/src/img/icons/Employees.png diff --git a/code_backend_theme/static/src/img/icons/Events.png b/odex30_base/code_backend_theme/static/src/img/icons/Events.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Events.png rename to odex30_base/code_backend_theme/static/src/img/icons/Events.png diff --git a/code_backend_theme/static/src/img/icons/Expenses.png b/odex30_base/code_backend_theme/static/src/img/icons/Expenses.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Expenses.png rename to odex30_base/code_backend_theme/static/src/img/icons/Expenses.png diff --git a/code_backend_theme/static/src/img/icons/Fleet.png b/odex30_base/code_backend_theme/static/src/img/icons/Fleet.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Fleet.png rename to odex30_base/code_backend_theme/static/src/img/icons/Fleet.png diff --git a/code_backend_theme/static/src/img/icons/Inventory.png b/odex30_base/code_backend_theme/static/src/img/icons/Inventory.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Inventory.png rename to odex30_base/code_backend_theme/static/src/img/icons/Inventory.png diff --git a/code_backend_theme/static/src/img/icons/Invoicing.png b/odex30_base/code_backend_theme/static/src/img/icons/Invoicing.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Invoicing.png rename to odex30_base/code_backend_theme/static/src/img/icons/Invoicing.png diff --git a/code_backend_theme/static/src/img/icons/Link Tracker.png b/odex30_base/code_backend_theme/static/src/img/icons/Link Tracker.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Link Tracker.png rename to odex30_base/code_backend_theme/static/src/img/icons/Link Tracker.png diff --git a/code_backend_theme/static/src/img/icons/Live Chat.png b/odex30_base/code_backend_theme/static/src/img/icons/Live Chat.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Live Chat.png rename to odex30_base/code_backend_theme/static/src/img/icons/Live Chat.png diff --git a/code_backend_theme/static/src/img/icons/Lunch.png b/odex30_base/code_backend_theme/static/src/img/icons/Lunch.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Lunch.png rename to odex30_base/code_backend_theme/static/src/img/icons/Lunch.png diff --git a/code_backend_theme/static/src/img/icons/Maintenance.png b/odex30_base/code_backend_theme/static/src/img/icons/Maintenance.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Maintenance.png rename to odex30_base/code_backend_theme/static/src/img/icons/Maintenance.png diff --git a/code_backend_theme/static/src/img/icons/Manufacturing.png b/odex30_base/code_backend_theme/static/src/img/icons/Manufacturing.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Manufacturing.png rename to odex30_base/code_backend_theme/static/src/img/icons/Manufacturing.png diff --git a/code_backend_theme/static/src/img/icons/Members.png b/odex30_base/code_backend_theme/static/src/img/icons/Members.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Members.png rename to odex30_base/code_backend_theme/static/src/img/icons/Members.png diff --git a/code_backend_theme/static/src/img/icons/Note.png b/odex30_base/code_backend_theme/static/src/img/icons/Note.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Note.png rename to odex30_base/code_backend_theme/static/src/img/icons/Note.png diff --git a/code_backend_theme/static/src/img/icons/Point of Sale.png b/odex30_base/code_backend_theme/static/src/img/icons/Point of Sale.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Point of Sale.png rename to odex30_base/code_backend_theme/static/src/img/icons/Point of Sale.png diff --git a/code_backend_theme/static/src/img/icons/Project.png b/odex30_base/code_backend_theme/static/src/img/icons/Project.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Project.png rename to odex30_base/code_backend_theme/static/src/img/icons/Project.png diff --git a/code_backend_theme/static/src/img/icons/Purchase.png b/odex30_base/code_backend_theme/static/src/img/icons/Purchase.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Purchase.png rename to odex30_base/code_backend_theme/static/src/img/icons/Purchase.png diff --git a/code_backend_theme/static/src/img/icons/Recruitment.png b/odex30_base/code_backend_theme/static/src/img/icons/Recruitment.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Recruitment.png rename to odex30_base/code_backend_theme/static/src/img/icons/Recruitment.png diff --git a/code_backend_theme/static/src/img/icons/Repairs.png b/odex30_base/code_backend_theme/static/src/img/icons/Repairs.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Repairs.png rename to odex30_base/code_backend_theme/static/src/img/icons/Repairs.png diff --git a/code_backend_theme/static/src/img/icons/SMS Marketing.png b/odex30_base/code_backend_theme/static/src/img/icons/SMS Marketing.png similarity index 100% rename from code_backend_theme/static/src/img/icons/SMS Marketing.png rename to odex30_base/code_backend_theme/static/src/img/icons/SMS Marketing.png diff --git a/code_backend_theme/static/src/img/icons/Sales.png b/odex30_base/code_backend_theme/static/src/img/icons/Sales.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Sales.png rename to odex30_base/code_backend_theme/static/src/img/icons/Sales.png diff --git a/code_backend_theme/static/src/img/icons/Surveys.png b/odex30_base/code_backend_theme/static/src/img/icons/Surveys.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Surveys.png rename to odex30_base/code_backend_theme/static/src/img/icons/Surveys.png diff --git a/code_backend_theme/static/src/img/icons/Time Off.png b/odex30_base/code_backend_theme/static/src/img/icons/Time Off.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Time Off.png rename to odex30_base/code_backend_theme/static/src/img/icons/Time Off.png diff --git a/code_backend_theme/static/src/img/icons/Timesheets.png b/odex30_base/code_backend_theme/static/src/img/icons/Timesheets.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Timesheets.png rename to odex30_base/code_backend_theme/static/src/img/icons/Timesheets.png diff --git a/code_backend_theme/static/src/img/icons/Website.png b/odex30_base/code_backend_theme/static/src/img/icons/Website.png similarity index 100% rename from code_backend_theme/static/src/img/icons/Website.png rename to odex30_base/code_backend_theme/static/src/img/icons/Website.png diff --git a/code_backend_theme/static/src/img/icons/apps.png b/odex30_base/code_backend_theme/static/src/img/icons/apps.png similarity index 100% rename from code_backend_theme/static/src/img/icons/apps.png rename to odex30_base/code_backend_theme/static/src/img/icons/apps.png diff --git a/code_backend_theme/static/src/img/icons/close.png b/odex30_base/code_backend_theme/static/src/img/icons/close.png similarity index 100% rename from code_backend_theme/static/src/img/icons/close.png rename to odex30_base/code_backend_theme/static/src/img/icons/close.png diff --git a/code_backend_theme/static/src/img/icons/discuss.png b/odex30_base/code_backend_theme/static/src/img/icons/discuss.png similarity index 100% rename from code_backend_theme/static/src/img/icons/discuss.png rename to odex30_base/code_backend_theme/static/src/img/icons/discuss.png diff --git a/code_backend_theme/static/src/img/icons/eLearning.png b/odex30_base/code_backend_theme/static/src/img/icons/eLearning.png similarity index 100% rename from code_backend_theme/static/src/img/icons/eLearning.png rename to odex30_base/code_backend_theme/static/src/img/icons/eLearning.png diff --git a/code_backend_theme/static/src/img/icons/settings.png b/odex30_base/code_backend_theme/static/src/img/icons/settings.png similarity index 100% rename from code_backend_theme/static/src/img/icons/settings.png rename to odex30_base/code_backend_theme/static/src/img/icons/settings.png diff --git a/odex30_base/code_backend_theme/static/src/js/chrome/sidebar.js b/odex30_base/code_backend_theme/static/src/js/chrome/sidebar.js new file mode 100644 index 0000000..a7600a9 --- /dev/null +++ b/odex30_base/code_backend_theme/static/src/js/chrome/sidebar.js @@ -0,0 +1,37 @@ +/** @odoo-module **/ + +import { Component, useState } from "@odoo/owl"; + +export class SideBar extends Component { + static template = "code_backend_theme.Sidebar"; + + setup() { + this.state = useState({ + apps: this.props.menuData.children.map(appMenuData => ({ + actionID: parseInt(appMenuData.action.split(',')[1]), + menuID: appMenuData.id, + name: appMenuData.name, + xmlID: appMenuData.xmlid, + web_icon_data: appMenuData.web_icon_data, + })) + }); + } + + getApps() { + return this.state.apps; + } + + _openApp(app) { + this.props.onAppClicked({ + action_id: app.actionID, + menu_id: app.menuID, + }); + } + + _handleCloseSidebar() { + // This can trigger an event or call a parent method + if (this.props.onCloseSidebar) { + this.props.onCloseSidebar(); + } + } +} \ No newline at end of file diff --git a/odex30_base/code_backend_theme/static/src/js/chrome/sidebar_menu.js b/odex30_base/code_backend_theme/static/src/js/chrome/sidebar_menu.js new file mode 100644 index 0000000..ff9cbaa --- /dev/null +++ b/odex30_base/code_backend_theme/static/src/js/chrome/sidebar_menu.js @@ -0,0 +1,178 @@ +/** @odoo-module **/ + +import { patch } from "@web/core/utils/patch"; +import { Menu } from "@web/webclient/menu/menu"; +import { SideBar } from "./sidebar"; // Adjust the path to where your SideBar component is located + +patch(Menu.prototype, 'code_backend_theme.SidebarMenu', { + async start() { + const res = await this._super(...arguments); + + // Create and mount the sidebar + if (this.sidebar_apps) { + this._sideBar = new SideBar(this, { + menuData: this.menuData, + onAppClicked: (payload) => this._onAppClicked(payload) + }); + await this._sideBar.mount(this.sidebar_apps); + } + + // Initialize sidebar toggle functionality + this._initializeSidebarToggle(); + + return res; + }, + + _onAppClicked(payload) { + // Handle app click event + this.trigger_up('switch_menu', { + action_id: payload.action_id, + menu_id: payload.menu_id, + }); + }, + + _initializeSidebarToggle() { + // Use OWL's event system or native DOM events instead of jQuery + document.addEventListener('click', (event) => { + if (event.target.id === 'closeSidebar') { + this._handleCloseSidebar(); + } else if (event.target.id === 'openSidebar') { + this._handleOpenSidebar(); + } else if (event.target.closest('.sidebar a')) { + this._handleSidebarItemClick(event); + } + }); + }, + + _handleCloseSidebar() { + document.getElementById('closeSidebar').style.display = 'none'; + document.getElementById('openSidebar').style.display = 'block'; + + // Hide sidebar panel + const sidebarPanel = document.getElementById('sidebar_panel'); + if (sidebarPanel) { + sidebarPanel.style.display = 'none'; + } + + // Update margins + const actionManager = document.querySelector('.o_action_manager'); + const topHeading = document.querySelector('.top_heading'); + + if (actionManager) { + actionManager.style.marginLeft = '0px'; + } + if (topHeading) { + topHeading.style.marginLeft = '0px'; + } + + // Remove classes + this._removeClasses(); + }, + + _handleOpenSidebar() { + document.getElementById('openSidebar').style.display = 'none'; + document.getElementById('closeSidebar').style.display = 'block'; + + // Show sidebar panel + const sidebarPanel = document.getElementById('sidebar_panel'); + if (sidebarPanel) { + sidebarPanel.style.display = 'block'; + } + + // Update margins + const actionManager = document.querySelector('.o_action_manager'); + const topHeading = document.querySelector('.top_heading'); + + if (actionManager) { + actionManager.style.marginLeft = '200px'; + actionManager.style.transition = 'all .1s linear'; + } + if (topHeading) { + topHeading.style.marginLeft = '180px'; + topHeading.style.transition = 'all .1s linear'; + } + + // Add classes + this._addClasses(); + }, + + _handleSidebarItemClick(event) { + const menuItem = event.target.closest('.sidebar a'); + if (menuItem) { + // Update active state + const menuItems = document.querySelectorAll('.sidebar a'); + menuItems.forEach(item => item.classList.remove('active')); + menuItem.classList.add('active'); + + // Get the id and update header + const id = menuItem.dataset.id; + if (id) { + const header = document.querySelector('header'); + if (header) { + header.className = id; + } + } + + // Close sidebar and reset styles + this._handleCloseSidebar(); + } + }, + + _addClasses() { + const navbar = document.querySelector('.o_main_navbar'); + if (navbar) { + const navbarId = navbar.dataset.id; + if (navbarId) { + document.querySelector('nav')?.classList.add(navbarId); + } + navbar.classList.add('small_nav'); + } + + const actionManager = document.querySelector('.o_action_manager'); + if (actionManager) { + const actionManagerId = actionManager.dataset.id; + if (actionManagerId) { + document.querySelector('div')?.classList.add(actionManagerId); + } + actionManager.classList.add('sidebar_margin'); + } + + const topHeading = document.querySelector('.top_heading'); + if (topHeading) { + const topHeadId = topHeading.dataset.id; + if (topHeadId) { + document.querySelector('div')?.classList.add(topHeadId); + } + topHeading.classList.add('sidebar_margin'); + } + }, + + _removeClasses() { + const navbar = document.querySelector('.o_main_navbar'); + if (navbar) { + const navbarId = navbar.dataset.id; + if (navbarId) { + document.querySelector('nav')?.classList.remove(navbarId); + } + navbar.classList.remove('small_nav'); + } + + const actionManager = document.querySelector('.o_action_manager'); + if (actionManager) { + const actionManagerId = actionManager.dataset.id; + if (actionManagerId) { + document.querySelector('div')?.classList.remove(actionManagerId); + } + actionManager.classList.remove('sidebar_margin'); + } + + const topHeading = document.querySelector('.top_heading'); + if (topHeading) { + const topHeadId = topHeading.dataset.id; + if (topHeadId) { + document.querySelector('div')?.classList.remove(topHeadId); + } + topHeading.classList.remove('sidebar_margin'); + } + } +}); \ No newline at end of file diff --git a/code_backend_theme/static/src/js/fields/basic_fields.js b/odex30_base/code_backend_theme/static/src/js/fields/basic_fields.js similarity index 59% rename from code_backend_theme/static/src/js/fields/basic_fields.js rename to odex30_base/code_backend_theme/static/src/js/fields/basic_fields.js index e525bf4..0f4edec 100644 --- a/code_backend_theme/static/src/js/fields/basic_fields.js +++ b/odex30_base/code_backend_theme/static/src/js/fields/basic_fields.js @@ -1,37 +1,31 @@ /** @odoo-module **/ import { patch } from "@web/core/utils/patch"; -import { ChartRenderer } from "@web/views/graph/chart_renderer"; // ✅ new graph renderer -import { Chart } from "web.chartjs"; // ✅ Chart.js must be imported explicitly +import { JournalDashboardGraphField } from "@web/views/fields/journal_dashboard_graph/journal_dashboard_graph_field"; -patch(ChartRenderer.prototype, "code_backend_theme.fields", { - _getBarChartConfig() { +patch(JournalDashboardGraphField, { + getBarChartConfig() { const data = []; const labels = []; const backgroundColor = []; - this.props.data[0].values.forEach((pt) => { + this.data[0].values.forEach((pt) => { data.push(pt.value); labels.push(pt.label); - const color = - pt.type === "past" - ? "#ccbdc8" - : pt.type === "future" - ? "#f1b44c" - : "#556ee6"; + const color = pt.type === 'past' ? '#ccbdc8' : (pt.type === 'future' ? '#f1b44c' : '#556ee6'); backgroundColor.push(color); }); - + return { type: "bar", data: { labels, datasets: [ { + backgroundColor, data, fill: "start", - label: this.props.data[0].key, - backgroundColor, + label: this.data[0].key, }, ], }, @@ -39,19 +33,27 @@ patch(ChartRenderer.prototype, "code_backend_theme.fields", { plugins: { legend: { display: false }, tooltip: { + enabled: !this.data[0].is_sample_data, intersect: false, position: "nearest", caretSize: 0, }, }, scales: { - y: { display: false }, // ✅ new Chart.js v3+ syntax + y: { + display: false, + }, + x: { + display: false, + }, }, maintainAspectRatio: false, elements: { - line: { tension: 0.000001 }, + line: { + tension: 0.000001, + }, }, }, }; }, -}); +}); \ No newline at end of file diff --git a/code_backend_theme/static/src/js/fields/graph.js b/odex30_base/code_backend_theme/static/src/js/fields/graph.js similarity index 81% rename from code_backend_theme/static/src/js/fields/graph.js rename to odex30_base/code_backend_theme/static/src/js/fields/graph.js index 64a7594..aa558a6 100644 --- a/code_backend_theme/static/src/js/fields/graph.js +++ b/odex30_base/code_backend_theme/static/src/js/fields/graph.js @@ -1,8 +1,7 @@ /** @odoo-module **/ -import { patch } from "@web/core/utils/patch"; import { GraphRenderer } from "@web/views/graph/graph_renderer"; -import { Chart } from "web.chartjs"; +import { patch } from "@web/core/utils/patch"; const MyCOLORS = [ "#556ee6", "#f1b44c", "#50a5f1", "#ffbb78", "#34c38f", "#98df8a", "#d62728", @@ -17,21 +16,23 @@ function hexToRGBA(hex, opacity) { return `rgba(${rgb},${opacity})`; } -patch(GraphRenderer.prototype, "code_backend_theme.graph", { +patch(GraphRenderer.prototype, { _getMyColor(index) { return MyCOLORS[index % MyCOLOR_NB]; }, _renderBarChart(dataPoints) { const data = this._prepareData(dataPoints); + data.datasets.forEach((dataset, index) => { - dataset.stack = this.state.stacked ? this.state.origins[dataset.originIndex] : undefined; + dataset.stack = this.model.metaData.stacked ? this.model.metaData.origins[dataset.originIndex] : undefined; dataset.backgroundColor = this._getMyColor(index); }); const options = this._prepareOptions(data.datasets.length); - const ctx = document.getElementById(this.chartId); - this.chart = new Chart(ctx, { + const canvas = this.canvasRef.el; + + this.chart = new Chart(canvas, { type: "bar", data, options, @@ -40,8 +41,9 @@ patch(GraphRenderer.prototype, "code_backend_theme.graph", { _renderLineChart(dataPoints) { const data = this._prepareData(dataPoints); + data.datasets.forEach((dataset, index) => { - if (this.state.processedGroupBy.length <= 1 && this.state.origins.length > 1) { + if (this.model.metaData.groupBy.length <= 1 && this.model.metaData.origins.length > 1) { if (dataset.originIndex === 0) { dataset.fill = "origin"; dataset.backgroundColor = hexToRGBA(MyCOLORS[0], 0.4); @@ -54,9 +56,11 @@ patch(GraphRenderer.prototype, "code_backend_theme.graph", { } else { dataset.borderColor = this._getMyColor(index); } + if (data.labels.length === 1) { dataset.data.unshift(undefined); } + dataset.pointBackgroundColor = dataset.borderColor; dataset.pointBorderColor = "rgba(0,0,0,0.2)"; }); @@ -69,14 +73,15 @@ patch(GraphRenderer.prototype, "code_backend_theme.graph", { data.labels = data.labels.length > 1 ? data.labels - : [].concat([[[""]]], data.labels, [[[""]]]); + : [].concat([[""]], data.labels, [[""]]); const options = this._prepareOptions(data.datasets.length); - const ctx = document.getElementById(this.chartId); - this.chart = new Chart(ctx, { + const canvas = this.canvasRef.el; + + this.chart = new Chart(canvas, { type: "line", data, options, }); }, -}); +}); \ No newline at end of file diff --git a/code_backend_theme/static/src/scss/datetimepicker.scss b/odex30_base/code_backend_theme/static/src/scss/datetimepicker.scss similarity index 100% rename from code_backend_theme/static/src/scss/datetimepicker.scss rename to odex30_base/code_backend_theme/static/src/scss/datetimepicker.scss diff --git a/code_backend_theme/static/src/scss/login.scss b/odex30_base/code_backend_theme/static/src/scss/login.scss similarity index 100% rename from code_backend_theme/static/src/scss/login.scss rename to odex30_base/code_backend_theme/static/src/scss/login.scss diff --git a/code_backend_theme/static/src/scss/navigation_bar.scss b/odex30_base/code_backend_theme/static/src/scss/navigation_bar.scss similarity index 100% rename from code_backend_theme/static/src/scss/navigation_bar.scss rename to odex30_base/code_backend_theme/static/src/scss/navigation_bar.scss diff --git a/code_backend_theme/static/src/scss/sidebar.scss b/odex30_base/code_backend_theme/static/src/scss/sidebar.scss similarity index 100% rename from code_backend_theme/static/src/scss/sidebar.scss rename to odex30_base/code_backend_theme/static/src/scss/sidebar.scss diff --git a/code_backend_theme/static/src/scss/theme.scss b/odex30_base/code_backend_theme/static/src/scss/theme.scss similarity index 100% rename from code_backend_theme/static/src/scss/theme.scss rename to odex30_base/code_backend_theme/static/src/scss/theme.scss diff --git a/code_backend_theme/static/src/scss/theme_accent.scss b/odex30_base/code_backend_theme/static/src/scss/theme_accent.scss similarity index 100% rename from code_backend_theme/static/src/scss/theme_accent.scss rename to odex30_base/code_backend_theme/static/src/scss/theme_accent.scss diff --git a/code_backend_theme/static/src/xml/sidebar.xml b/odex30_base/code_backend_theme/static/src/xml/sidebar.xml similarity index 63% rename from code_backend_theme/static/src/xml/sidebar.xml rename to odex30_base/code_backend_theme/static/src/xml/sidebar.xml index f1ea949..29d6239 100644 --- a/code_backend_theme/static/src/xml/sidebar.xml +++ b/odex30_base/code_backend_theme/static/src/xml/sidebar.xml @@ -1,9 +1,15 @@ + + +