[MiG] port from 19
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from .hooks import post_init_hook
|
||||
@@ -0,0 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
{
|
||||
'name': "Set as testserver Open2Bizz, when website is enabled",
|
||||
|
||||
'summary': """
|
||||
Only to be used when installed as TEST env. Open2Bizz""",
|
||||
|
||||
|
||||
'author': "Open2bizz",
|
||||
'website': "http://www.open2bizz.tech",
|
||||
'category': 'Tools',
|
||||
'license': "AGPL-3",
|
||||
'version': '15.0.1.0.0',
|
||||
'depends': ['testserver_o2b','website'],
|
||||
'data': [
|
||||
'views/templates.xml',
|
||||
],
|
||||
'post_init_hook': 'post_init_hook',
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import logging
|
||||
|
||||
from odoo import api, SUPERUSER_ID
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def post_init_hook(cr, registry):
|
||||
env = api.Environment(cr, SUPERUSER_ID, {})
|
||||
|
||||
Website = env['website'].sudo()
|
||||
WebsitePage = env['website.page'].sudo()
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 1. Get the generic TEST page template
|
||||
# ---------------------------------------------------------
|
||||
test_view = env.ref(
|
||||
'testserver_website_o2b.testserver_page_website',
|
||||
raise_if_not_found=False,
|
||||
)
|
||||
|
||||
if not test_view:
|
||||
_logger.error(
|
||||
"Testserver website template "
|
||||
"'testserver_website_o2b.testserver_page_website' not found."
|
||||
)
|
||||
return
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 2. Unpublish all existing website pages
|
||||
# ---------------------------------------------------------
|
||||
pages = WebsitePage.search([])
|
||||
|
||||
if pages:
|
||||
_logger.info(
|
||||
"Unpublishing %s existing website pages.",
|
||||
len(pages),
|
||||
)
|
||||
|
||||
pages.write({
|
||||
'website_published': False,
|
||||
})
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 3. Create a TEST homepage for every website
|
||||
# ---------------------------------------------------------
|
||||
websites = Website.search([])
|
||||
|
||||
for website in websites:
|
||||
_logger.info(
|
||||
"Creating test homepage for website %s (%s).",
|
||||
website.name,
|
||||
website.id,
|
||||
)
|
||||
|
||||
# Each website gets its own ir.ui.view.
|
||||
#
|
||||
# In Odoo 15 website.page.website_id is related to
|
||||
# view_id.website_id. Therefore we should not use the same
|
||||
# ir.ui.view for multiple websites.
|
||||
website_test_view = test_view.copy({
|
||||
'name': 'Test environment - %s' % website.name,
|
||||
'key': '%s.website_%s' % (test_view.key, website.id),
|
||||
'website_id': website.id,
|
||||
})
|
||||
|
||||
test_page = WebsitePage.create({
|
||||
'url': '/testmodus',
|
||||
'view_id': website_test_view.id,
|
||||
'website_published': True,
|
||||
'website_indexed': False,
|
||||
})
|
||||
|
||||
# Odoo 15 uses homepage_id, NOT homepage_url.
|
||||
website.write({
|
||||
'domain': False,
|
||||
'homepage_id': test_page.id,
|
||||
})
|
||||
|
||||
_logger.info(
|
||||
"Test homepage %s assigned to website %s.",
|
||||
test_page.id,
|
||||
website.id,
|
||||
)
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 4. Disable all payment acquirers
|
||||
# ---------------------------------------------------------
|
||||
#
|
||||
# Odoo 15 uses payment.acquirer.
|
||||
# payment.provider belongs to later Odoo versions.
|
||||
#
|
||||
if env.registry.get('payment.acquirer'):
|
||||
payment_acquirers = env['payment.acquirer'].sudo().search([
|
||||
('state', '!=', 'disabled'),
|
||||
])
|
||||
|
||||
if payment_acquirers:
|
||||
_logger.info(
|
||||
"Disabling %s payment acquirers.",
|
||||
len(payment_acquirers),
|
||||
)
|
||||
|
||||
payment_acquirers.write({
|
||||
'state': 'disabled',
|
||||
})
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 5. Unpublish all webshop products
|
||||
# ---------------------------------------------------------
|
||||
#
|
||||
# website_published only exists on product.template when the
|
||||
# relevant website/eCommerce functionality is installed.
|
||||
#
|
||||
if env.registry.get('product.template'):
|
||||
ProductTemplate = env['product.template'].sudo()
|
||||
|
||||
if 'website_published' in ProductTemplate._fields:
|
||||
published_products = ProductTemplate.search([
|
||||
('website_published', '=', True),
|
||||
])
|
||||
|
||||
if published_products:
|
||||
_logger.info(
|
||||
"Unpublishing %s webshop products.",
|
||||
len(published_products),
|
||||
)
|
||||
|
||||
published_products.write({
|
||||
'website_published': False,
|
||||
})
|
||||
|
||||
_logger.info(
|
||||
"Testserver website neutralization completed successfully."
|
||||
)
|
||||
@@ -0,0 +1 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 89 KiB |
@@ -0,0 +1,18 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<body>
|
||||
<div class="document" id="module-name">
|
||||
<h1 class="title">Testservers when website</h1>
|
||||
<p>
|
||||
This module is ONLY for test environments In DC Open2Bizz
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Module is developed by Open2Bizz. Bug reports: support@open2bizz.eu
|
||||
</p>
|
||||
<p>
|
||||
<img src="https://www.open2bizz.tech/logo.png" style="max-height: 100px;">
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<!-- Banner for web layout -->
|
||||
<template id="testserver_banner_website" name="TOP banner test front" inherit_id="website.layout">
|
||||
<xpath expr="//body" position="before">
|
||||
<div>
|
||||
<span style="text-align: center;
|
||||
color: #FFFFFF;
|
||||
background-color: #006CFE;
|
||||
position: relative;
|
||||
display: block;
|
||||
font-size: 16px;">
|
||||
***** This is a test environment *****
|
||||
<a href="https://www.open2bizz.tech/helpdesk" target="_blank" style="color: #000000;">
|
||||
See website to report issue's.
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
|
||||
<!-- Test environment page -->
|
||||
<template id="testserver_page_website" name="Website page front">
|
||||
|
||||
<t t-call="website.layout">
|
||||
<div id="wrap" class="oe_structure oe_empty">
|
||||
|
||||
<section class="s_banner parallax s_parallax_is_fixed pb96 o_colored_level pt40" data-scroll-background-ratio="1" data-snippet="s_banner" data-name="Banner" style="background-image: none;">
|
||||
|
||||
<span class="s_parallax_bg oe_img_bg o_bg_img_center" style="background-image: url('https://hd-beamers.nl/wp-content/uploads/2014/05/Testbeeld-1280x720p_hd-ready.png'); background-position: 50% 0px;"/>
|
||||
|
||||
<div class="o_we_bg_filter" style="background-image: linear-gradient(135deg, rgba(21, 25, 116, 0.71) 0%, rgba(226, 51, 255, 0.5) 100%);"/>
|
||||
|
||||
<div class="container">
|
||||
<div class="row s_nb_column_fixed">
|
||||
<div class="col-lg-6 jumbotron rounded o_cc o_cc1 pt32 pb32 o_colored_level" data-name="Box">
|
||||
|
||||
<h1>
|
||||
<font style="font-size: 62px;" class="o_default_snippet_text">
|
||||
TEST
|
||||
</font>
|
||||
<br/>
|
||||
</h1>
|
||||
|
||||
<p class="lead o_default_snippet_text">
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit,
|
||||
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|
||||
</p>
|
||||
|
||||
<a class="mb-2 btn btn-primary" href="/web/login">
|
||||
Login
|
||||
</a>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<a class="mb-2 btn btn-secondary" href="https://www.open2bizz.nl">
|
||||
Open2Bizz
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
</template>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user