Maintainers
This module is maintained by the OCA.
-
+
+
+
OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.
diff --git a/base_custom_filter/tests/test_filters.py b/base_custom_filter/tests/test_filters.py index a3234cc..2199594 100644 --- a/base_custom_filter/tests/test_filters.py +++ b/base_custom_filter/tests/test_filters.py @@ -113,6 +113,31 @@ def test_get_view_content_groupby(self): "The string is not in the returned view", ) + def test_get_filters_excludes_non_favorites(self): + """Test that get_filters excludes non-favorite filter types.""" + # Create a non-favorite filter + self.filters_obj.create( + { + "name": "Non-Favorite Filter", + "type": "filter", + "model_id": "ir.filters.group", + "domain": '[["id","=",1]]', + } + ) + # Create a favorite filter + self.filters_obj.create( + { + "name": "Favorite Filter", + "type": "favorite", + "model_id": "ir.filters.group", + "domain": '[["id","=",2]]', + } + ) + results = self.filters_obj.get_filters("ir.filters.group") + result_names = [r["name"] for r in results] + self.assertNotIn("Non-Favorite Filter", result_names) + self.assertIn("Favorite Filter", result_names) + def test_insert_xpath_validation(self): group = self.filters_group_obj.create( { @@ -158,27 +183,26 @@ def test_filter_with_custom_xpath(self): between_content = view_content[filter_pos:target_pos] self.assertNotIn("Base Tier Validation
!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:dc242d6c50cc357fbd98be3778c5e3013971e9ea0622db72e500fd72d0de7c80 +!! source digest: sha256:1823d16061ca83ece8322b77d320bb735e7462305d7ae60fd3e15819f3c6f276 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->Validating some operations is a common need across different areas in a
diff --git a/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml b/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml
index 99582e5..8798e59 100644
--- a/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml
+++ b/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml
@@ -50,7 +50,7 @@
t-key="review.id"
>
User roles
!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:b3aa00f609d45dcd82a69b2a3e13b327096ab1d25883b543e3e45538e854d40c +!! source digest: sha256:99ab17708d54615c87b2764f44327b9a8908fbf188fdcfbd80b301b453c8207a !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->This module was written to extend the standard functionality regarding diff --git a/base_user_role/tests/test_user_role.py b/base_user_role/tests/test_user_role.py index 1033186..4b46c29 100644 --- a/base_user_role/tests/test_user_role.py +++ b/base_user_role/tests/test_user_role.py @@ -4,17 +4,16 @@ from odoo import fields from odoo.exceptions import AccessError +from odoo.fields import Command from odoo.tests import tagged -from odoo.tests.common import TransactionCase +from odoo.addons.base.tests.common import BaseCommon -class TestUserRole(TransactionCase): + +class TestUserRoleCommon(BaseCommon): @classmethod def setUpClass(cls): super().setUpClass() - cls.env = cls.env( - context=dict(cls.env.context, tracking_disable=True, no_reset_password=True) - ) cls.user_model = cls.env["res.users"] cls.role_model = cls.env["res.users.role"] cls.wiz_model = cls.env["wizard.groups.into.role"] @@ -59,7 +58,7 @@ def setUpClass(cls): # Setup for multi-company testing cls.multicompany_user_1 = cls.user_model.create( { - "name": "User 2", + "name": "multicompany_user_1", "company_id": cls.company1.id, "company_ids": [(6, 0, [cls.company1.id, cls.company2.id])], "groups_id": [(6, 0, cls.env.ref("base.group_erp_manager").ids)], @@ -68,7 +67,7 @@ def setUpClass(cls): ) cls.multicompany_user_2 = cls.user_model.create( { - "name": "User 2", + "name": "multicompany_user_2", "company_id": cls.company2.id, "company_ids": [(6, 0, [cls.company2.id])], "groups_id": [(6, 0, cls.env.ref("base.group_user").ids)], @@ -83,6 +82,8 @@ def setUpClass(cls): } ) + +class TestUserRole(TestUserRoleCommon): def test_role_1(self): self.user_id.write({"role_line_ids": [(0, 0, {"role_id": self.role1_id.id})]}) user_group_ids = sorted({group.id for group in self.user_id.groups_id}) @@ -232,18 +233,6 @@ def test_role_multicompany(self): ): role.read() - @tagged("-at_install", "post_install") - def test_notification_type_not_reset(self): - """Test that roles don't reset notification settings.""" - if self.env["ir.module.module"]._get("mail").state != "installed": - self.skipTest("Mail module is not installed.") - notification_group = self.env.ref("mail.group_mail_notification_type_inbox") - self.assertNotIn(notification_group, self.user_id.groups_id) - self.user_id.notification_type = "inbox" - self.assertIn(notification_group, self.user_id.groups_id) - self.user_id.write({"role_line_ids": [(0, 0, {"role_id": self.role1_id.id})]}) - self.assertIn(notification_group, self.user_id.groups_id) - def test_create_role_from_user(self): # Use a wizard instance to create a new role based on the user. # We use assign_to_user = False, as otherwise this module forcibly @@ -287,3 +276,60 @@ def test_group_groups_into_role(self): self.assertEqual(new_role.name, "Test Role") # Check that the role has the correct groups (even if the order is not equal) self.assertEqual(set(new_role.implied_ids.ids), set(user_group_ids)) + + +@tagged("post_install", "-at_install") +class TestUserRoleMail(TestUserRoleCommon): + def test_notification_type_not_reset(self): + """Test that roles don't reset notification settings.""" + if self.env["ir.module.module"]._get("mail").state != "installed": + self.skipTest("Mail module is not installed.") + notification_group = self.env.ref("mail.group_mail_notification_type_inbox") + self.assertNotIn(notification_group, self.user_id.groups_id) + self.user_id.notification_type = "inbox" + self.assertIn(notification_group, self.user_id.groups_id) + self.user_id.write( + {"role_line_ids": [Command.create({"role_id": self.role1_id.id})]} + ) + self.assertIn(notification_group, self.user_id.groups_id) + + def test_notification_type_reset(self): + """When user is demoted to share user, update notification settings. + + The issue only occurs when the writing user is not the superuser, and + if an intermittent flush is triggered by for instance + `_check_one_user_type` in website's res.users override. This triggers + constraint res_users_notification_type as Odoo has not yet recomputed + this at that point. + """ + # Notification settings depend on mail being installed + if self.env["ir.module.module"]._get("mail").state != "installed": + self.skipTest("Mail module is not installed.") + + # Set up a non-superuser user + admin_user = self.env["res.users"].create( + { + "name": "Some admin", + "login": "admin@example.com", + }, + ) + admin_user.groups_id += self.env.ref("base.group_system") + + self.user_id.write( + { + "role_line_ids": [Command.create({"role_id": self.role1_id.id})], + "notification_type": "inbox", + }, + ) + + # As non-superuser, delete all roles from the user + user = self.user_id.with_user(admin_user) + user.write( + { + "role_line_ids": [ + Command.delete(rl.id) for rl in self.user_id.role_line_ids + ], + }, + ) + # Database constraint has not been triggered + self.assertEqual(user.notification_type, "email") diff --git a/hr_attendance_flex_rest_time/static/description/index.html b/hr_attendance_flex_rest_time/static/description/index.html index eed948d..371d6c7 100644 --- a/hr_attendance_flex_rest_time/static/description/index.html +++ b/hr_attendance_flex_rest_time/static/description/index.html @@ -8,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -274,7 +275,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -300,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -471,7 +472,9 @@
Contributors
Maintainers
This module is maintained by the OCA.
-
+
+
+
OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.
diff --git a/hr_attendance_manage_own/README.rst b/hr_attendance_manage_own/README.rst index 5012f19..d35d0e6 100644 --- a/hr_attendance_manage_own/README.rst +++ b/hr_attendance_manage_own/README.rst @@ -1,6 +1,6 @@ -============================ -HR Attendance Own Management -============================ +================================ +HR Attendance Manage Own Records +================================ .. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -41,11 +41,11 @@ This module introduces a "User: Manage own attendances" group that grants create and edit access to the user's own attendance records, with the following restrictions: -- Users cannot change the overtime status or extra hours of their - records. -- When the company's extra hours validation is set to "By Manager", - records that have been approved or refused cannot be modified or - deleted. +- Users cannot change the overtime status or extra hours of their + records. +- When the company's extra hours validation is set to "By Manager", + records that have been approved or refused cannot be modified or + deleted. **Table of contents** @@ -62,6 +62,17 @@ To configure this module: 3. Add users to this group to allow them to create and edit their own attendance records +Optionally, you can configure fields that bypass the processed-record +write restriction. This is useful when other modules (e.g. +``hr_timesheet_sheet``) need to write certain fields on attendance +records that have already been approved or refused. + +1. Go to *Settings > Technical > Parameters > System Parameters* +2. Create a parameter with key + ``hr_attendance_manage_own.write_bypass_fields`` +3. Set the value to a comma-separated list of field names (e.g. + ``sheet_id``) + Bug Tracker =========== @@ -83,10 +94,12 @@ Authors Contributors ------------ -- QuartileHR Attendance Own Management
+HR Attendance Manage Own Records
This module supplies a new screen enabling you to manage your work diff --git a/hr_timesheet_sheet_attendance/README.rst b/hr_timesheet_sheet_attendance/README.rst index 91cbbcf..5225a73 100644 --- a/hr_timesheet_sheet_attendance/README.rst +++ b/hr_timesheet_sheet_attendance/README.rst @@ -11,7 +11,7 @@ HR Timesheet Sheet Attendance !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:0c17f3499e53b70d7bc4b20a874b472e93d3a7ae7cc62784c377aee04ebbe5d7 + !! source digest: sha256:3267ccfb3cc7c0e636b606894182f4f52e7395cbcb8e3efeef5ceccf099c8eb3 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/hr_timesheet_sheet_attendance/__manifest__.py b/hr_timesheet_sheet_attendance/__manifest__.py index 93abd98..6e63b41 100644 --- a/hr_timesheet_sheet_attendance/__manifest__.py +++ b/hr_timesheet_sheet_attendance/__manifest__.py @@ -1,6 +1,6 @@ { "name": "HR Timesheet Sheet Attendance", - "version": "18.0.1.0.1", + "version": "18.0.1.0.3", "category": "Human Resources", "sequence": 80, "license": "AGPL-3", diff --git a/hr_timesheet_sheet_attendance/static/description/index.html b/hr_timesheet_sheet_attendance/static/description/index.html index e232248..c10e171 100644 --- a/hr_timesheet_sheet_attendance/static/description/index.html +++ b/hr_timesheet_sheet_attendance/static/description/index.html @@ -372,7 +372,7 @@
HR Timesheet Sheet Attendance
!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:0c17f3499e53b70d7bc4b20a874b472e93d3a7ae7cc62784c377aee04ebbe5d7 +!! source digest: sha256:3267ccfb3cc7c0e636b606894182f4f52e7395cbcb8e3efeef5ceccf099c8eb3 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->This module extends the functionality of hr_timesheet_sheet and help diff --git a/l10n_jp_country_state/README.rst b/l10n_jp_country_state/README.rst index 782254a..3ba94e6 100644 --- a/l10n_jp_country_state/README.rst +++ b/l10n_jp_country_state/README.rst @@ -11,7 +11,7 @@ Japan Country States !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:b2117b837ac8bdbe84219bddad8c240ef6346fd60db9ee433b30c864a8e1380f + !! source digest: sha256:58dad6de76321726c50c6e037797585b0718dd19ac54915f6634338cc60222f4 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -32,8 +32,13 @@ Japan Country States |badge1| |badge2| |badge3| |badge4| |badge5| -This module only adds translations to country state records for Japan, -for the sake of convenience. +As of Odoo 17, the Japan prefecture (``res.country.state``) records are +shipped with their native Japanese names (e.g. ``東京都``, ``北海道``) +as the source value. This module overrides those records to use English +names (e.g. ``Tokyo``, ``Hokkaido``) as the source and provides Japanese +translations, so users with ``ja_JP`` selected continue to see the +native prefecture names while other users see the romanized English +names. **Table of contents** diff --git a/l10n_jp_country_state/__manifest__.py b/l10n_jp_country_state/__manifest__.py index db1b43b..598a39e 100644 --- a/l10n_jp_country_state/__manifest__.py +++ b/l10n_jp_country_state/__manifest__.py @@ -2,11 +2,14 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "Japan Country States", - "version": "18.0.1.0.0", + "version": "18.0.1.1.0", "depends": ["base_country_state_translatable"], "author": "Quartile, Odoo Community Association (OCA)", "license": "AGPL-3", "website": "https://github.com/OCA/l10n-japan", "category": "Localization", + "data": [ + "data/res.country.state.csv", + ], "installable": True, } diff --git a/l10n_jp_country_state/data/res.country.state.csv b/l10n_jp_country_state/data/res.country.state.csv new file mode 100644 index 0000000..b506141 --- /dev/null +++ b/l10n_jp_country_state/data/res.country.state.csv @@ -0,0 +1,48 @@ +id,name +base.state_jp_jp-01,"Hokkaido" +base.state_jp_jp-02,"Aomori" +base.state_jp_jp-03,"Iwate" +base.state_jp_jp-04,"Miyagi" +base.state_jp_jp-05,"Akita" +base.state_jp_jp-06,"Yamagata" +base.state_jp_jp-07,"Fukushima" +base.state_jp_jp-08,"Ibaraki" +base.state_jp_jp-09,"Tochigi" +base.state_jp_jp-10,"Gunma" +base.state_jp_jp-11,"Saitama" +base.state_jp_jp-12,"Chiba" +base.state_jp_jp-13,"Tokyo" +base.state_jp_jp-14,"Kanagawa" +base.state_jp_jp-15,"Niigata" +base.state_jp_jp-16,"Toyama" +base.state_jp_jp-17,"Ishikawa" +base.state_jp_jp-18,"Fukui" +base.state_jp_jp-19,"Yamanashi" +base.state_jp_jp-20,"Nagano" +base.state_jp_jp-21,"Gifu" +base.state_jp_jp-22,"Shizuoka" +base.state_jp_jp-23,"Aichi" +base.state_jp_jp-24,"Mie" +base.state_jp_jp-25,"Shiga" +base.state_jp_jp-26,"Kyoto" +base.state_jp_jp-27,"Osaka" +base.state_jp_jp-28,"Hyogo" +base.state_jp_jp-29,"Nara" +base.state_jp_jp-30,"Wakayama" +base.state_jp_jp-31,"Tottori" +base.state_jp_jp-32,"Shimane" +base.state_jp_jp-33,"Okayama" +base.state_jp_jp-34,"Hiroshima" +base.state_jp_jp-35,"Yamaguchi" +base.state_jp_jp-36,"Tokushima" +base.state_jp_jp-37,"Kagawa" +base.state_jp_jp-38,"Ehime" +base.state_jp_jp-39,"Kochi" +base.state_jp_jp-40,"Fukuoka" +base.state_jp_jp-41,"Saga" +base.state_jp_jp-42,"Nagasaki" +base.state_jp_jp-43,"Kumamoto" +base.state_jp_jp-44,"Oita" +base.state_jp_jp-45,"Miyazaki" +base.state_jp_jp-46,"Kagoshima" +base.state_jp_jp-47,"Okinawa" diff --git a/l10n_jp_country_state/i18n_extra/ja.po b/l10n_jp_country_state/i18n_extra/ja.po index f8bfa5c..a043e48 100644 --- a/l10n_jp_country_state/i18n_extra/ja.po +++ b/l10n_jp_country_state/i18n_extra/ja.po @@ -1,12 +1,11 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: +# * l10n_jp_country_state # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 18.0+e\n" +"Project-Id-Version: Odoo Server 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-06 06:15+0000\n" -"PO-Revision-Date: 2025-06-06 06:15+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -14,237 +13,237 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-01 msgid "Hokkaido" msgstr "北海道" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-02 msgid "Aomori" msgstr "青森県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-03 msgid "Iwate" msgstr "岩手県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-04 msgid "Miyagi" msgstr "宮城県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-05 msgid "Akita" msgstr "秋田県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-06 msgid "Yamagata" msgstr "山形県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-07 msgid "Fukushima" msgstr "福島県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-08 msgid "Ibaraki" msgstr "茨城県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-09 msgid "Tochigi" msgstr "栃木県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-10 msgid "Gunma" msgstr "群馬県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-11 msgid "Saitama" msgstr "埼玉県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-12 msgid "Chiba" msgstr "千葉県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-13 msgid "Tokyo" msgstr "東京都" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-14 msgid "Kanagawa" msgstr "神奈川県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-15 msgid "Niigata" msgstr "新潟県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-16 msgid "Toyama" msgstr "富山県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-17 msgid "Ishikawa" msgstr "石川県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-18 msgid "Fukui" msgstr "福井県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-19 msgid "Yamanashi" msgstr "山梨県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-20 msgid "Nagano" msgstr "長野県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-21 msgid "Gifu" msgstr "岐阜県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-22 msgid "Shizuoka" msgstr "静岡県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-23 msgid "Aichi" msgstr "愛知県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-24 msgid "Mie" msgstr "三重県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-25 msgid "Shiga" msgstr "滋賀県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-26 msgid "Kyoto" msgstr "京都府" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-27 msgid "Osaka" msgstr "大阪府" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-28 msgid "Hyogo" msgstr "兵庫県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-29 msgid "Nara" msgstr "奈良県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-30 msgid "Wakayama" msgstr "和歌山県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-31 msgid "Tottori" msgstr "鳥取県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-32 msgid "Shimane" msgstr "島根県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-33 msgid "Okayama" msgstr "岡山県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-34 msgid "Hiroshima" msgstr "広島県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-35 msgid "Yamaguchi" msgstr "山口県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-36 msgid "Tokushima" msgstr "徳島県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-37 msgid "Kagawa" msgstr "香川県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-38 msgid "Ehime" msgstr "愛媛県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-39 msgid "Kochi" msgstr "高知県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-40 msgid "Fukuoka" msgstr "福岡県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-41 msgid "Saga" msgstr "佐賀県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-42 msgid "Nagasaki" msgstr "長崎県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-43 msgid "Kumamoto" msgstr "熊本県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-44 msgid "Oita" msgstr "大分県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-45 msgid "Miyazaki" msgstr "宮崎県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-46 msgid "Kagoshima" msgstr "鹿児島県" -#. module: base +#. module: l10n_jp_country_state #: model:res.country.state,name:base.state_jp_jp-47 msgid "Okinawa" msgstr "沖縄県" diff --git a/l10n_jp_country_state/readme/DESCRIPTION.md b/l10n_jp_country_state/readme/DESCRIPTION.md index 24b8c64..cd5d653 100644 --- a/l10n_jp_country_state/readme/DESCRIPTION.md +++ b/l10n_jp_country_state/readme/DESCRIPTION.md @@ -1,2 +1,6 @@ -This module only adds translations to country state records for Japan, -for the sake of convenience. +As of Odoo 17, the Japan prefecture (`res.country.state`) records are +shipped with their native Japanese names (e.g. `東京都`, `北海道`) as the +source value. This module overrides those records to use English names +(e.g. `Tokyo`, `Hokkaido`) as the source and provides Japanese +translations, so users with `ja_JP` selected continue to see the native +prefecture names while other users see the romanized English names. diff --git a/l10n_jp_country_state/static/description/index.html b/l10n_jp_country_state/static/description/index.html index 41a220f..c9d0da7 100644 --- a/l10n_jp_country_state/static/description/index.html +++ b/l10n_jp_country_state/static/description/index.html @@ -372,11 +372,16 @@
Japan Country States
!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:b2117b837ac8bdbe84219bddad8c240ef6346fd60db9ee433b30c864a8e1380f +!! source digest: sha256:58dad6de76321726c50c6e037797585b0718dd19ac54915f6634338cc60222f4 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -This module only adds translations to country state records for Japan, -for the sake of convenience.
+As of Odoo 17, the Japan prefecture (res.country.state) records are +shipped with their native Japanese names (e.g. 東京都, 北海道) +as the source value. This module overrides those records to use English +names (e.g. Tokyo, Hokkaido) as the source and provides Japanese +translations, so users with ja_JP selected continue to see the +native prefecture names while other users see the romanized English +names.
Table of contents
-
diff --git a/mrp_stock_move_actual_date/README.rst b/mrp_stock_move_actual_date/README.rst
index 67176ca..7b7ed2f 100644
--- a/mrp_stock_move_actual_date/README.rst
+++ b/mrp_stock_move_actual_date/README.rst
@@ -1,3 +1,7 @@
+.. image:: https://odoo-community.org/readme-banner-image
+ :target: https://odoo-community.org/get-involved?utm_source=readme
+ :alt: Odoo Community Association
+
==========================
MRP Stock Move Actual Date
==========================
@@ -7,13 +11,13 @@ MRP Stock Move Actual Date
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! source digest: sha256:fbff73f2ce169a24ce6474eafe8a24eac98dd7fac68599d9156f35dbe373227f
+ !! source digest: sha256:1dcb9b715cd08a745eb3f857886a8dd7dd04eb2254043e96b41245003852e5a7
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
-.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
+.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmanufacture-lightgray.png?logo=github
@@ -28,8 +32,9 @@ MRP Stock Move Actual Date
|badge1| |badge2| |badge3| |badge4| |badge5|
-This module adopts the functionality of stock_move_actual_date to
-manufacturing orders, unbuild orders, and scraps.
+This module extends the Actual Date functionality provided by
+`stock_move_actual_date
MRP Stock Move Actual Date
+MRP Stock Move Actual Date
- -This module adopts the functionality of stock_move_actual_date to -manufacturing orders, unbuild orders, and scraps.
+ +This module extends the Actual Date functionality provided by +stock_move_actual_date +to manufacturing orders, unbuild orders, and scraps.
Table of contents
-
@@ -385,7 +391,7 @@
MRP Stock Move Actual Date
Bug Tracker
+Bug Tracker
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -393,15 +399,15 @@
Bug Tracker
Do not contact contributors directly about support or help with technical issues.
Product Tag View
+Product Tag View
- +This module adds the Tags (product_tag_ids) field to the General Information tab on the product template and product variant forms. In standard Odoo, tags are shown under the Sales tab; since that tab is @@ -388,7 +393,7 @@
Product Tag View
Bug Tracker
+Bug Tracker
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -396,15 +401,15 @@
Bug Tracker
Do not contact contributors directly about support or help with technical issues.













