diff --git a/partner_nickname/views/res_partner.xml b/partner_nickname/views/res_partner.xml index 12f85970..8787cf48 100644 --- a/partner_nickname/views/res_partner.xml +++ b/partner_nickname/views/res_partner.xml @@ -6,7 +6,6 @@ @@ -16,14 +15,13 @@ - + - - + diff --git a/website_membership_registration_partner_privacy/controllers/main.py b/website_membership_registration_partner_privacy/controllers/main.py index f16c910f..5eadd6ce 100644 --- a/website_membership_registration_partner_privacy/controllers/main.py +++ b/website_membership_registration_partner_privacy/controllers/main.py @@ -46,7 +46,8 @@ def _get_membership_form_page_vals( { "website_privacy_levels": request.env[ "res.partner" - ].website_privacy_selection() + ].website_privacy_selection(), + "member_website_privacy": request.env.company.default_website_privacy, } ) return vals diff --git a/website_membership_registration_partner_privacy/static/src/js/website_membership_registration.js b/website_membership_registration_partner_privacy/static/src/js/website_membership_registration.js index 0cf60235..31617dd3 100644 --- a/website_membership_registration_partner_privacy/static/src/js/website_membership_registration.js +++ b/website_membership_registration_partner_privacy/static/src/js/website_membership_registration.js @@ -8,6 +8,14 @@ WebsiteMembershipRegistration.include({ "change select[name=member_website_privacy]": "_onWebsitePrivacyChange", "change input[name=member_publish]": "_onWebsitePrivacyChange", }), + /** + * @override + */ + start() { + const res = this._super(...arguments); + this._onWebsitePrivacyChange(); + return res + }, /** * @private */ diff --git a/website_membership_registration_partner_privacy_nickname/__manifest__.py b/website_membership_registration_partner_privacy_nickname/__manifest__.py index 143f33aa..affcef41 100644 --- a/website_membership_registration_partner_privacy_nickname/__manifest__.py +++ b/website_membership_registration_partner_privacy_nickname/__manifest__.py @@ -7,7 +7,10 @@ "author": "Onestein", "license": "AGPL-3", "website": "https://www.onestein.nl", - "depends": ["website_membership_registration_partner_privacy", "website_partner_privacy_nickname"], + "depends": [ + "website_membership_registration_partner_privacy", + "website_partner_privacy_nickname", + ], "assets": { "web.assets_frontend": [ "website_membership_registration_partner_privacy_nickname/static/src/js/website_membership_registration.js", diff --git a/website_partner_privacy/__manifest__.py b/website_partner_privacy/__manifest__.py index 8bbe0eed..33e4f177 100644 --- a/website_partner_privacy/__manifest__.py +++ b/website_partner_privacy/__manifest__.py @@ -9,6 +9,7 @@ "depends": ["website_partner"], "data": [ "templates/portal_template.xml", + "views/res_config_settings_view.xml", "views/res_partner.xml", "views/website_partner_templates.xml", ], diff --git a/website_partner_privacy/models/__init__.py b/website_partner_privacy/models/__init__.py index f6fa8a44..2531ef26 100644 --- a/website_partner_privacy/models/__init__.py +++ b/website_partner_privacy/models/__init__.py @@ -1,2 +1,4 @@ from . import ir_qweb_field_contact +from . import res_company +from . import res_config_settings from . import res_partner diff --git a/website_partner_privacy/models/res_company.py b/website_partner_privacy/models/res_company.py new file mode 100644 index 00000000..cbe72154 --- /dev/null +++ b/website_partner_privacy/models/res_company.py @@ -0,0 +1,21 @@ +from odoo import fields, models + + +class ResCompany(models.Model): + _inherit = "res.company" + + default_website_privacy = fields.Selection( + selection=lambda r: r.env["res.partner"].website_privacy_selection(), + default="name", + required=True, + string="Default Website Privacy Level", + help="Select which option to use to display partners on Website", + ) + default_show_email = fields.Boolean(default=True, help="Show/Hide Email On Website") + default_show_address = fields.Boolean( + default=True, help="Show/Hide Address On Website" + ) + default_show_phone = fields.Boolean(default=True, help="Show/Hide Phone On Website") + default_show_website = fields.Boolean( + default=True, help="Show/Hide Website On Website" + ) diff --git a/website_partner_privacy/models/res_config_settings.py b/website_partner_privacy/models/res_config_settings.py new file mode 100644 index 00000000..6d99341e --- /dev/null +++ b/website_partner_privacy/models/res_config_settings.py @@ -0,0 +1,26 @@ +from odoo import fields, models + + +class ResConfigSetting(models.TransientModel): + _inherit = "res.config.settings" + + website_privacy = fields.Selection( + related="company_id.default_website_privacy", + readonly=False, + ) + show_email = fields.Boolean( + related="company_id.default_show_email", + readonly=False, + ) + show_address = fields.Boolean( + related="company_id.default_show_address", + readonly=False, + ) + show_phone = fields.Boolean( + related="company_id.default_show_phone", + readonly=False, + ) + show_website = fields.Boolean( + related="company_id.default_show_website", + readonly=False, + ) diff --git a/website_partner_privacy/models/res_partner.py b/website_partner_privacy/models/res_partner.py index f26fb730..10641b76 100644 --- a/website_partner_privacy/models/res_partner.py +++ b/website_partner_privacy/models/res_partner.py @@ -6,19 +6,32 @@ class ResPartner(models.Model): website_privacy = fields.Selection( selection="website_privacy_selection", - default="name", - required=True, string="Website Privacy Level", help="Select which option to use to display partners on Website", ) - show_email = fields.Boolean(default=False, help="Show/Hide Email On Website") - show_address = fields.Boolean(default=False, help="Show/Hide Address On Website") - show_phone = fields.Boolean(default=False, help="Show/Hide Phone On Website") - show_website = fields.Boolean(default=False, help="Show/Hide Website On Website") + show_email = fields.Boolean(help="Show/Hide Email On Website") + show_address = fields.Boolean(help="Show/Hide Address On Website") + show_phone = fields.Boolean(help="Show/Hide Phone On Website") + show_website = fields.Boolean(help="Show/Hide Website On Website") def website_privacy_selection(self): return [("anonymous", "Stay Anonymous"), ("name", "Use Name")] + @api.model + def default_get(self, fields_list): + result = super(ResPartner, self).default_get(fields_list) + company = self.env.company + result.update( + { + "website_privacy": company.default_website_privacy, + "show_email": company.default_show_email, + "show_address": company.default_show_address, + "show_phone": company.default_show_phone, + "show_website": company.default_show_website, + } + ) + return result + @api.model_create_multi def create(self, values_list): for vals in values_list: diff --git a/website_partner_privacy/views/res_config_settings_view.xml b/website_partner_privacy/views/res_config_settings_view.xml new file mode 100644 index 00000000..a1ab97ec --- /dev/null +++ b/website_partner_privacy/views/res_config_settings_view.xml @@ -0,0 +1,90 @@ + + + Add Default Website Privacy Levels and Other Settings + res.config.settings + + + + Partner Privacy + + + + + + + + + + + + + + + + + + + Define the default value to show/hide email on website + + + + + + + + + + + + + Define the default value to show/hide address on website + + + + + + + + + + + + + Define the default value to show/hide phone on website + + + + + + + + + + + + + Define the default value to show/hide Website on website + + + + + + + + + diff --git a/website_partner_privacy/views/res_partner.xml b/website_partner_privacy/views/res_partner.xml index 06dc58e7..2331c782 100644 --- a/website_partner_privacy/views/res_partner.xml +++ b/website_partner_privacy/views/res_partner.xml @@ -6,7 +6,7 @@ @@ -17,27 +17,23 @@ - +