diff options
| author | eco-odoo <eco@odoo.com> | 2018-07-18 15:24:25 +0200 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2018-07-20 11:59:13 +0200 |
| commit | 19775de2617c1d74aa9668db81730751e51fa447 (patch) | |
| tree | 8c09ca72607bd7eb0a9c191d700437115957e154 | |
| parent | 6671d3d72b6db0990485c3fe1a52f611345db998 (diff) | |
[ADD] website_sale: onboarding steps
Add new onboarding steps: payment and theme selector. There are
initially used on the website_sale_dashboard onboarding panel.
task: 38876
| -rw-r--r-- | addons/website_sale/__init__.py | 1 | ||||
| -rw-r--r-- | addons/website_sale/__manifest__.py | 1 | ||||
| -rw-r--r-- | addons/website_sale/models/__init__.py | 1 | ||||
| -rw-r--r-- | addons/website_sale/models/res_company.py | 17 | ||||
| -rw-r--r-- | addons/website_sale/views/onboarding_views.xml | 31 | ||||
| -rw-r--r-- | addons/website_sale/wizard/__init__.py | 4 | ||||
| -rw-r--r-- | addons/website_sale/wizard/payment_acquirer_onboarding_wizard.py | 13 | ||||
| -rw-r--r-- | addons/website_theme_install/__init__.py | 5 | ||||
| -rw-r--r-- | addons/website_theme_install/models/__init__.py | 6 | ||||
| -rw-r--r-- | addons/website_theme_install/models/res_company.py | 28 | ||||
| -rw-r--r-- | addons/website_theme_install/views/views.xml | 11 |
11 files changed, 116 insertions, 2 deletions
diff --git a/addons/website_sale/__init__.py b/addons/website_sale/__init__.py index 7d34c7c054a..88710707227 100644 --- a/addons/website_sale/__init__.py +++ b/addons/website_sale/__init__.py @@ -3,3 +3,4 @@ from . import controllers from . import models +from . import wizard diff --git a/addons/website_sale/__manifest__.py b/addons/website_sale/__manifest__.py index dd68c7046d5..c4136d11a15 100644 --- a/addons/website_sale/__manifest__.py +++ b/addons/website_sale/__manifest__.py @@ -15,6 +15,7 @@ 'data/digest_data.xml', 'views/product_views.xml', 'views/account_views.xml', + 'views/onboarding_views.xml', 'views/sale_report_views.xml', 'views/sale_order_views.xml', 'views/crm_team_views.xml', diff --git a/addons/website_sale/models/__init__.py b/addons/website_sale/models/__init__.py index 2ed1e1dbe42..ad98431fbaf 100644 --- a/addons/website_sale/models/__init__.py +++ b/addons/website_sale/models/__init__.py @@ -12,3 +12,4 @@ from . import sale_order from . import website from . import res_config_settings from . import digest +from . import res_company diff --git a/addons/website_sale/models/res_company.py b/addons/website_sale/models/res_company.py new file mode 100644 index 00000000000..c82e478ab26 --- /dev/null +++ b/addons/website_sale/models/res_company.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models + + +class ResCompany(models.Model): + _inherit = 'res.company' + + website_sale_onboarding_payment_acquirer_done =\ + fields.Boolean("Website sale onboarding payment acquirer step done", default=False) + + @api.model + def action_open_website_sale_onboarding_payment_acquirer(self): + """ Called by onboarding panel above the quotation list.""" + action = self.env.ref('website_sale.action_open_website_sale_onboarding_payment_acquirer_wizard').read()[0] + return action diff --git a/addons/website_sale/views/onboarding_views.xml b/addons/website_sale/views/onboarding_views.xml new file mode 100644 index 00000000000..6004dfab302 --- /dev/null +++ b/addons/website_sale/views/onboarding_views.xml @@ -0,0 +1,31 @@ +<odoo> + <!-- PAYMENT ACQUIRER --> + <template id="website_sale_onboarding_payment_acquirer_step" primary="True" + inherit_id="payment.onboarding_payment_acquirer_step"> + <xpath expr="//t[@t-set='method']" position="replace"> + <t t-set="method" t-value="'action_open_website_sale_onboarding_payment_acquirer'" /> + </xpath> + <xpath expr="//t[@t-set='done']" position="replace"> + <t t-set="done" t-value="company.website_sale_onboarding_payment_acquirer_done" /> + </xpath> + </template> + <record id="website_sale_onboarding_payment_acquirer_form" model="ir.ui.view"> + <field name="name">website.sale.onboarding.payment.acquirer.form</field> + <field name="model">website.sale.payment.acquirer.onboarding.wizard</field> + <field name="inherit_id" ref="payment.payment_acquirer_onboarding_wizard_form"/> + <field name="mode">primary</field> + <field name="priority">1000</field> + <field name="arch" type="xml"> + <xpath expr="//div[@name='skip_step_text']" position="replace"/> + </field> + </record> + <record id="action_open_website_sale_onboarding_payment_acquirer_wizard" model="ir.actions.act_window"> + <field name="name">Choose a payment method</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">website.sale.payment.acquirer.onboarding.wizard</field> + <field name="view_type">form</field> + <field name="view_mode">form</field> + <field name="view_id" ref="website_sale_onboarding_payment_acquirer_form" /> + <field name="target">new</field> + </record> +</odoo> diff --git a/addons/website_sale/wizard/__init__.py b/addons/website_sale/wizard/__init__.py new file mode 100644 index 00000000000..ca76ffc555b --- /dev/null +++ b/addons/website_sale/wizard/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import payment_acquirer_onboarding_wizard diff --git a/addons/website_sale/wizard/payment_acquirer_onboarding_wizard.py b/addons/website_sale/wizard/payment_acquirer_onboarding_wizard.py new file mode 100644 index 00000000000..688b740d72e --- /dev/null +++ b/addons/website_sale/wizard/payment_acquirer_onboarding_wizard.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models + + +class PaymentWizard(models.TransientModel): + _inherit = 'payment.acquirer.onboarding.wizard' + _name = 'website.sale.payment.acquirer.onboarding.wizard' + + def _set_payment_acquirer_onboarding_step_done(self): + """ Override. """ + self.env.user.company_id.website_sale_onboarding_payment_acquirer_done = True diff --git a/addons/website_theme_install/__init__.py b/addons/website_theme_install/__init__.py index 9a7e03eded3..dc5e6b693d1 100644 --- a/addons/website_theme_install/__init__.py +++ b/addons/website_theme_install/__init__.py @@ -1 +1,4 @@ -from . import models
\ No newline at end of file +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models diff --git a/addons/website_theme_install/models/__init__.py b/addons/website_theme_install/models/__init__.py index c32871d604e..480a1b847c7 100644 --- a/addons/website_theme_install/models/__init__.py +++ b/addons/website_theme_install/models/__init__.py @@ -1 +1,5 @@ -from . import ir_module_module
\ No newline at end of file +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import ir_module_module +from . import res_company diff --git a/addons/website_theme_install/models/res_company.py b/addons/website_theme_install/models/res_company.py new file mode 100644 index 00000000000..ce1e3e719a7 --- /dev/null +++ b/addons/website_theme_install/models/res_company.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models +from ast import literal_eval + + +class ResCompany(models.Model): + _inherit = 'res.company' + + def _compute_website_theme_onboarding_done(self): + """ The step is marked as done if one theme is installed. """ + # we need the same domain as the existing action + action = self.env.ref('website_theme_install.theme_install_kanban_action').read()[0] + domain = literal_eval(action['domain']) + domain.append(('state', '=', 'installed')) + installed_themes_count = self.env['ir.module.module'].sudo().search_count(domain) + for record in self: + record.website_theme_onboarding_done = (installed_themes_count > 0) + + website_theme_onboarding_done = fields.Boolean("Onboarding website theme step done", + compute='_compute_website_theme_onboarding_done') + + @api.model + def action_open_website_theme_selector(self): + action = self.env.ref('website_theme_install.theme_install_kanban_action').read()[0] + action['target'] = 'new' + return action diff --git a/addons/website_theme_install/views/views.xml b/addons/website_theme_install/views/views.xml index e78b76a53fb..1522b751936 100644 --- a/addons/website_theme_install/views/views.xml +++ b/addons/website_theme_install/views/views.xml @@ -95,4 +95,15 @@ action = { <a href="/web#action=website_theme_install.theme_install_kanban_action">See themes here</a> </xpath> </template> + <!-- ONBOARDING --> + <template id="onboarding_website_theme_step"> + <t t-call="base.onboarding_step"> + <t t-set="title">Website Theme</t> + <t t-set="description">Select a theme for your wonderful website.</t> + <t t-set="btn_text">Let's start!</t> + <t t-set="method" t-value="'action_open_website_theme_selector'" /> + <t t-set="model" t-value="'res.company'" /> + <t t-set="done" t-value="company.website_theme_onboarding_done" /> + </t> + </template> </odoo> |
