Author SHA1 Message Date
msoer 5b874d250a [MiG] port from 19 2026-08-24 12:42:06 +02:00
msoer b8c3e95031 [ADD] changes made to 19 are made in testserver16 as well 2026-08-24 09:10:11 +02:00
mreul 35ab19922a Algemene Mailcatcher toegevoegd voor hnode4 2026-01-15 12:35:35 +00:00
mreul 90c1f6aa0e Hogere versie Go 2025-11-24 11:20:47 +00:00
tpot e971d66603 [FIX] Description 2025-07-04 06:58:01 +00:00
tpot 22ae42f73c [FIX] manifest Author name 2025-07-04 06:54:10 +00:00
mreul a11b34b301 Toegevoegd: Disable google_analytics + Unpublish products in webshop 2025-05-13 14:36:04 +00:00
root 50aa6dd35c Stagingarea variabel gemaakt 2024-11-05 15:00:24 +00:00
tpot dff7231e6e Update testserver_o2b/models/init_test.py
Fix
2024-09-13 18:45:18 +00:00
mreul 05beaca92c Update README.md 2024-06-10 13:15:40 +00:00
tpot 0b7c12fdba Update testserver_o2b/models/init_test.py
Fix error install
2024-04-03 10:06:05 +00:00
mreul 614b78558e Update README.md 2024-03-26 08:45:39 +00:00
Thomas Pot ca9836fca2 Updates testserver and addition v16 (and v17) 2024-03-15 20:45:30 +01:00
mreul 2b524051c3 Functie aanroepen vanuit data.xml 2024-02-26 21:58:57 +00:00
root 1ee214c70a Initiele commit 2024-02-26 14:30:29 +00:00
root c8e217dd03 initiele commit 2024-02-23 16:15:05 +00:00
mreul cc6e5e4eec Add mailcatcher menu 2024-02-23 12:45:03 +01:00
19 changed files with 148 additions and 193 deletions
+3
View File
@@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml
+16
View File
@@ -0,0 +1,16 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredPackages">
<value>
<list size="3">
<item index="0" class="java.lang.String" itemvalue="email_validator" />
<item index="1" class="java.lang.String" itemvalue="freezegun" />
<item index="2" class="java.lang.String" itemvalue="python-dateutil" />
</list>
</value>
</option>
</inspection_tool>
</profile>
</component>
+6
View File
@@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="Python 3.10" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10" project-jdk-type="Python SDK" />
</project>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/testserver.iml" filepath="$PROJECT_DIR$/.idea/testserver.iml" />
</modules>
</component>
</project>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
Generated
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
Regular → Executable
View File
+1 -1
View File
@@ -13,7 +13,7 @@
'website': "http://www.open2bizz.tech",
'category': 'Tools',
'license': "AGPL-3",
'version': '15.0.1.0.0',
'version': '16.0.1.0.0',
'module_type': 'official',
'depends': ['mail','base',],
'data': [
-1
View File
@@ -1,3 +1,2 @@
# -*- coding: utf-8 -*-
from . import controllers
@@ -3,5 +3,3 @@
# MailHog is now accessed via the internal proxy controller at /mailcatcher/
# so no dynamic URL computation is needed anymore.
+11 -9
View File
@@ -1,18 +1,20 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<body>
<div class="document" id="module-name">
<h1 class="title">mailcatcher_menu</h1>
<p>
<div class="document" id="module-name">
<h1 class="title">mailcatcher_menu</h1>
<p>
This module is ONLY for test environments In DC Open2Bizz
</p>
</p>
<p>
<p>
Module is developed by Open2Bizz. Bug reports: support@open2bizz.eu
</p>
<p>
</p>
<p>
<img src="https://www.open2bizz.tech/logo.png" style="max-height: 100px;">
</p>
</p>
</div>
</div>
</body>
</html>
+3 -1
View File
@@ -10,7 +10,7 @@
'website': "http://www.open2bizz.tech",
'category': 'Tools',
'license': "AGPL-3",
'version': '15.0.1.0.0',
'version': '16.0.1.0.0',
'depends': ['mail', 'base', 'mailcatcher_menu'],
'data': [
'views/templates.xml',
@@ -18,3 +18,5 @@
],
'post_init_hook': 'post_init_hook',
}
+1 -1
View File
@@ -10,7 +10,7 @@
'website': "http://www.open2bizz.tech",
'category': 'Tools',
'license': "AGPL-3",
'version': '15.0.1.0.0',
'version': '16.0.1.0.0',
'depends': ['testserver_o2b','website'],
'data': [
'views/templates.xml',
+34 -107
View File
@@ -2,7 +2,7 @@
import logging
from odoo import api, SUPERUSER_ID
from odoo import api, fields, models, SUPERUSER_ID
_logger = logging.getLogger(__name__)
@@ -10,128 +10,55 @@ _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()
model_website_page = env['ir.model'].search([
('model', '=', 'website.page')
])
# ---------------------------------------------------------
# 1. Get the generic TEST page template
# ---------------------------------------------------------
test_view = env.ref(
'testserver_website_o2b.testserver_page_website',
raise_if_not_found=False,
test_view = env['ir.model.data']._xmlid_to_res_id(
'testserver_website_o2b.testserver_page_website'
)
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,
if model_website_page:
for page in env['website.page'].search([]):
_logger.error("________Disable page %s", page.id)
page.write({
'is_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,
new_page = env['website.page'].create({
'name': "Testbeeld",
'url': "/testmodus",
'view_id': test_view,
'is_published': True,
})
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.
for website in env['website'].search([]):
website.write({
'domain': False,
'homepage_id': test_page.id,
'homepage_url': new_page.url,
})
_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'),
module_ecommerce = env['ir.module.module'].search([
('name', '=', 'website_sale')
])
if payment_acquirers:
_logger.info(
"Disabling %s payment acquirers.",
len(payment_acquirers),
)
payment_acquirers.write({
'state': 'disabled',
if module_ecommerce and module_ecommerce.state == 'installed':
# Disable payment options
for payment_method in env['payment.method'].search([]):
payment_method.write({
'active': False,
})
# ---------------------------------------------------------
# 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),
_logger.error(
"________Disable payment method %s",
payment_method.id,
)
published_products.write({
# Disable products
for product in env['product.template'].search([]):
product.write({
'website_published': False,
})
_logger.info(
"Testserver website neutralization completed successfully."
_logger.error(
"________Disable product %s",
product.id,
)
+15 -42
View File
@@ -1,17 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- Banner for web layout -->
<!-- Banner for web layout (website Odoo) -->
<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;">
<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.
@@ -21,55 +14,35 @@
</xpath>
</template>
<!-- Test environment page -->
<!-- Replacement layout (website Odoo) -->
<template id="testserver_page_website" name="Website page front">
<t t-name="website.test-env">
<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;"/>
<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(&quot;https://hd-beamers.nl/wp-content/uploads/2014/05/Testbeeld-1280x720p_hd-ready.png&quot;); 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>
<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. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<a class="mb-2 btn btn-primary" href="/web/login" data-bs-original-title="" title="">Login</a>
<br/>
<br/>
<a class="mb-2 btn btn-secondary" href="https://www.open2bizz.nl">
Open2Bizz
</a>
<a class="mb-2 btn btn-secondary" href="https://www.open2bizz.nl" data-bs-original-title="" title="">Open2Bizz</a>
</div>
</div>
</div>
</section>
</div>
</t>
</t>
</template>
</data>
</odoo>