24 Commits
17.0 ... 16.0

Author SHA1 Message Date
35ab19922a Algemene Mailcatcher toegevoegd voor hnode4 2026-01-15 12:35:35 +00:00
90c1f6aa0e Hogere versie Go 2025-11-24 11:20:47 +00:00
e971d66603 [FIX] Description 2025-07-04 06:58:01 +00:00
22ae42f73c [FIX] manifest Author name 2025-07-04 06:54:10 +00:00
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
dff7231e6e Update testserver_o2b/models/init_test.py
Fix
2024-09-13 18:45:18 +00:00
05beaca92c Update README.md 2024-06-10 13:15:40 +00:00
0b7c12fdba Update testserver_o2b/models/init_test.py
Fix error install
2024-04-03 10:06:05 +00:00
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
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
cc6e5e4eec Add mailcatcher menu 2024-02-23 12:45:03 +01:00
0f63eb4f78 Update testserver_o2b/models/init_test.py 2024-02-19 14:02:22 +00:00
7714f7f115 Update testserver_o2b/models/init_test.py
INSERT report.url made conditionally dependent on existence
2024-01-15 11:35:55 +00:00
4d934739bd Update testserver_o2b/models/init_test.py
Delete systemparameter web.base.url.freeze if excists
2024-01-11 12:30:09 +00:00
20486c72c4 Update testserver_o2b/models/init_test.py 2023-12-18 13:11:23 +00:00
80ffcfe1a9 Update testserver_o2b/models/init_test.py 2023-12-18 13:08:19 +00:00
1418cbfb44 Update testserver_o2b/models/init_test.py 2023-12-18 12:57:37 +00:00
67ddb4e1b0 Update testserver_o2b/models/init_test.py
Added report.url to ir_config_parameter
2023-12-12 12:26:48 +00:00
feb3e51dac Add description, icon 2023-11-29 16:05:06 +01:00
ad7321f661 Update file init_test.py 2023-11-24 17:48:15 +00:00
44 changed files with 476 additions and 437 deletions

3
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

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>

View File

@@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

7
.idea/misc.xml generated Normal file
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
.idea/modules.xml generated Normal file
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
.idea/testserver.iml generated Normal file
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>

6
.idea/vcs.xml generated Normal file
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>

92
install_mailhog_as_service.sh Normal file → Executable file
View File

@@ -1,64 +1,70 @@
#!/bin/bash #!/bin/bash
echo "" echo "";
set -e set -e
GO_VERSION=1.22.5 # of een andere recente 1.22.x / 1.23.x
GO_VERSION=1.22.5
echo "===================================" echo "==================================="
echo "Installeren van Go ${GO_VERSION}..." echo "Installeren van Go ${GO_VERSION}..."
echo "===================================" echo "==================================="
apt-get update apt-get update
apt-get -y install curl ca-certificates apt-get -y install curl ca-certificates
cd /tmp cd /tmp
curl -LO https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz curl -LO https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz
# Oude Go-installatie weghalen (indien aanwezig)
rm -rf /usr/local/go rm -rf /usr/local/go
# Nieuwe Go installeren
tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz
# Go in PATH zetten voor dit script
export PATH=/usr/local/go/bin:$PATH export PATH=/usr/local/go/bin:$PATH
go version go version # zou nu go1.22.x moeten tonen
#apt-get -y install golang-go;
echo "" #if [ $? == 0 ] ; then
echo "===================================" # echo 'golang-go installed'
echo "Installing MailHog (prebuilt binary)..." #else
echo "===================================" # echo 'ERROR: Installing golang-go NOT succesfull!'
# exit
# Download de officiële MailHog binary #fi
curl -sSL -o MailHog https://github.com/mailhog/MailHog/releases/download/v1.0.1/MailHog_linux_amd64 echo "";
echo "===================================";
chmod +x MailHog echo "Installing mailhog...";
mv MailHog /usr/local/bin/MailHog echo "===================================";
go install github.com/mailhog/MailHog@latest;
echo "MailHog binary geïnstalleerd" if [ $? == 0 ] ; then
echo "";
echo "" echo "===================================";
echo "===================================" echo "Mailcatcher installed succesfully!";
echo "Create MailHog service..." echo "===================================";
echo "===================================" echo "";
else
tee /etc/systemd/system/mailhog.service <<EOL echo 'ERROR: Installing Mailcatcher NOT succesfull!'
exit
fi
echo "===================================";
echo "Copy Mailhog to bin...";
echo "===================================";
sudo cp ~/go/bin/MailHog /usr/local/bin/MailHog
if [ $? == 0 ] ; then
echo 'Mailhog copied'
else
echo 'ERROR: Copy Mailhog NOT succesfull!'
exit
fi
echo "";
echo "===================================";
echo "Create MailHog service...";
echo "===================================";
sudo tee /etc/systemd/system/mailhog.service <<EOL
[Unit] [Unit]
Description=MailHog Service Description=MailHog
After=network.target After=network.target
[Service] [Service]
ExecStart=/usr/local/bin/MailHog
Restart=always
User=root User=root
StandardOutput=journal ExecStart=/usr/bin/env /usr/local/bin/MailHog > /dev/null 2>&1 &
StandardError=journal
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
EOL EOL
systemctl daemon-reload
systemctl enable mailhog systemctl enable mailhog
systemctl start mailhog systemctl start mailhog
echo "";
echo "" echo "===================================";
echo "===================================" echo "Mailhog service created and started.";
echo "MailHog service created and started." echo "===================================";
echo "==================================="

View File

@@ -12,8 +12,7 @@
'author': "Open2bizz", 'author': "Open2bizz",
'website': "http://www.open2bizz.tech", 'website': "http://www.open2bizz.tech",
'category': 'Uncategorized', 'category': 'Uncategorized',
'version': '17.0', 'version': '0.1',
'module_type': 'official',
'depends': ['mail','base',], 'depends': ['mail','base',],
'data': [ 'data': [
'views/views.xml', 'views/views.xml',

View File

@@ -17,7 +17,9 @@ class IrActionUrl(models.Model):
parameter = parameters[0] parameter = parameters[0]
cont_nr = parameter.value.split("//",1)[1] #Haal https:// van string cont_nr = parameter.value.split("//",1)[1] #Haal https:// van string
cont_nr = cont_nr[0:3] #De eerste 3 karakters is het containernummer cont_nr = cont_nr[0:3] #De eerste 3 karakters is het containernummer
act_url = "https://" + cont_nr + "-mailcatcher.staging.open2bizz.com" node = parameter.value.split("staging",1)[1] #Haal alles van string weg t/m staging
node = node[0:1] #Het eerste karakters is het de stagingarea
act_url = "https://" + cont_nr + "-mailcatcher.staging" + node + ".open2bizz.com"
_logger.info('---------- ACT_URL ---------- %s', act_url) _logger.info('---------- ACT_URL ---------- %s', act_url)
action_id = self.env['ir.model.data']._xmlid_to_res_id('mailcatcher_menu.action_mailcatcher_url') action_id = self.env['ir.model.data']._xmlid_to_res_id('mailcatcher_menu.action_mailcatcher_url')
action = self.env['ir.actions.act_url'].browse(action_id) action = self.env['ir.actions.act_url'].browse(action_id)

View File

@@ -8,7 +8,7 @@
</record> </record>
<!-- Top menu item --> <!-- Top menu item -->
<menuitem name="MailCatcher" id="mailcatcher_menu.menu_root" sequence="999" web_icon="mailcatcher_menu,static/description/email-icon.png" action="action_mailcatcher_url"/> <menuitem name="MailCatcher" id="mailcatcher_menu.menu_root" sequence="99" web_icon="mailcatcher_menu,static/description/email-icon.png" action="action_mailcatcher_url"/>
</data> </data>
</odoo> </odoo>

View File

@@ -1,42 +0,0 @@
====================
Testserver Open2Bizz
====================
When installing this module it transforms the database into a test database.
**What happens**
- Adds a RED banner in backend (using module web_environment_ribbon from OCA)
- Adds a blue banner in backend; stating test env
- Adds a blue banner in FRONTEND (if website is installed) stating test env
- Neutralizes the database:
- Disables incoming emailserver(s)
- Disables outgoing emailserver(s)
- Disables ALL cron jobs
- Disables Delivery services
- Disables Payment providers
- Disables Account (Bank) Sync
- Disables optional freeze url parameter
- Adds ENTERPRISE code from open2bizz (Partner code for test)
Optional: use the added page for website: testserver_page_website
**Manual** override the home page or make **inheritance** like:
<xpath expr="//t[@t-call='website.layout']" position="replace">
==========================
DO NOT USE IN PRODUCTION ENVIRONMENT
==========================
**Bugs:**
support@open2bizz.nl
This module is maintained by Open2bizz.
.. image:: https://www.open2bizz.tech/logo.png
:alt: Open2Bizz
:target: https://www.open2bizz.tech

View File

@@ -1,21 +1,21 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
{ {
'name': "Set as testserver Open2Bizz", 'name': "testserver_o2b",
'summary': """ 'summary': """
This module males an Odoo env into a test env!""", Set Odoo as a test env.""",
'description': """ 'description': """
This module males an Odoo env into a test env! This module is to be installed when the Odoo env. server is to be used as test env.
Only to be used when installed as TEST env. Open2Bizz Disables: email, cron jobs, account sync and removes Enterprise Sub code.
Adds a web ribbon to identify web frontendas test
""", """,
'author': "Open2bizz", 'author': "Open2bizz BV",
'website': "http://www.open2bizz.tech", 'website': "http://www.open2bizz.nl",
'category': 'Uncategorized', 'category': 'Tools',
'version': '17.0.1.0.0', 'version': "16.0.1.2.0",
'license': 'LGPL-3', 'depends': ['web_environment_ribbon', 'mail','base',],
'depends': ['web_environment_ribbon', 'mail','base','mailcatcher_menu'],
'data': [ 'data': [
'views/views.xml', 'views/views.xml',
'views/templates.xml', 'views/templates.xml',

View File

@@ -38,20 +38,18 @@ class IrLogging(models.Model):
field = self.env['ir.model.fields'].search([('name','=','prod_environment'),('model_id','=',model.id)]) field = self.env['ir.model.fields'].search([('name','=','prod_environment'),('model_id','=',model.id)])
if field: if field:
self.env.cr.execute("""UPDATE delivery_carrier SET prod_environment = False WHERE id>0;""") self.env.cr.execute("""UPDATE delivery_carrier SET prod_environment = False WHERE id>0;""")
model = self.env['ir.model'].search([('model','=','payment.provider')])
if model:
field = self.env['ir.model.fields'].search([('name','=','state'),('model_id','=',model.id)])
if field:
self.env.cr.execute("""UPDATE payment_provider SET state = 'disabled' WHERE id>0;""")
model = self.env['ir.model'].search([('model','=','account.online.link')]) model = self.env['ir.model'].search([('model','=','account.online.link')])
if model: if model:
field = self.env['ir.model.fields'].search([('id','>',0),('model_id','=',model.id)]) field = self.env['ir.model.fields'].search([('id','>',0),('model_id','=',model.id)])
if field: if field:
self.env.cr.execute("""DELETE FROM account_online_link WHERE id > 0;""") self.env.cr.execute("""DELETE FROM account_online_link WHERE id > 0;""")
model = self.env['ir.model'].search([('model','=','payment.provider')])
if model:
field = self.env['ir.model.fields'].search([('name','=','state'),('model_id','=',model.id)])
if field:
self.env.cr.execute("""UPDATE payment_provider SET state = 'disabled' WHERE id>0;""")
if self.env['ir.model'].search([('model','=','account.journal')]): if self.env['ir.model'].search([('model','=','account.journal')]):
self.env.cr.execute("""UPDATE account_journal set bank_statements_source = 'undefined';""") self.env.cr.execute("""UPDATE account_journal set bank_statements_source = 'undefined';""")
if self.env['ir.model'].search([('model','=','mail.partner.device')]):
self.env.cr.execute("""DELETE FROM mail_partner_device;""")
ip_ok = False ip_ok = False
with os.popen("ip a") as f: with os.popen("ip a") as f:
for x in f.readlines(): for x in f.readlines():
@@ -69,10 +67,6 @@ class IrLogging(models.Model):
if ap[-10:] == 'testserver': if ap[-10:] == 'testserver':
_logger.error(os.system('./%s/testserver.sh' %(ap))) _logger.error(os.system('./%s/testserver.sh' %(ap)))
#module_website = self.env['ir.module.module'].search([('name','=','ir.module.module')])
module_website = self.env['ir.module.module'].search([('name','=','website')])
if module_website.state == 'installed':
model_website_page = self.env['ir.model'].search([('model','=','website.page')]) model_website_page = self.env['ir.model'].search([('model','=','website.page')])
if model_website_page: if model_website_page:
for page in self.env['website.page'].search([('is_published','=',True)]): for page in self.env['website.page'].search([('is_published','=',True)]):
@@ -81,7 +75,7 @@ class IrLogging(models.Model):
}) })
for website in self.env['website'].search([]): for website in self.env['website'].search([]):
website.write({ website.write({
'domain': f"None{website.id}" 'domain': ""
}) })
for menu in self.env['website.menu'].search([('is_visible','=',True)]): for menu in self.env['website.menu'].search([('is_visible','=',True)]):
if menu.website_id and menu.parent_id: if menu.website_id and menu.parent_id:
@@ -93,14 +87,3 @@ class IrLogging(models.Model):
if view: if view:
menu.page_id.view_id = view.id menu.page_id.view_id = view.id
self._disable_web_push_notifications()
_logger.debug(f"_______ disable_web_push_notifications ____")
def _disable_web_push_notifications(self):
parameter = self.env['ir.config_parameter'].sudo()
parameter.set_param('web_push.notification.enabled', '0')
parameters = self.env['ir.config_parameter'].sudo().search([
('key', 'in', ('mail.web_push_vapid_private_key', 'mail.web_push_vapid_public_key', 'mail.sfu_server_key'))])
for parameter in parameters:
parameter.sudo().unlink()

View File

@@ -15,7 +15,6 @@
</template> </template>
<!-- Banner for web layout (website Odoo) --> <!-- Banner for web layout (website Odoo) -->
<!-- MR=> Dit geeft een foutmelding als er geen website geïnstalleerd is!
<template id="testserver_banner_website" name="TOP banner test front" inherit_id="website.layout"> <template id="testserver_banner_website" name="TOP banner test front" inherit_id="website.layout">
<xpath expr="//body" position="before"> <xpath expr="//body" position="before">
<div> <div>
@@ -28,7 +27,6 @@
</div> </div>
</xpath> </xpath>
</template> </template>
-->
<!-- Replacement layout (website Odoo) --> <!-- Replacement layout (website Odoo) -->
<template id="testserver_page_website" name="Website page front"> <template id="testserver_page_website" name="Website page front">

View File

@@ -2,13 +2,10 @@
Web Environment Ribbon Web Environment Ribbon
====================== ======================
.. .. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !! !! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !! !! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:633699dce7538787594626fb371be0a97de6e53505ea986d27b7e1faafb870ff
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status :target: https://odoo-community.org/page/development-status
@@ -17,19 +14,18 @@ Web Environment Ribbon
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3 :alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
:target: https://github.com/OCA/web/tree/17.0/web_environment_ribbon :target: https://github.com/OCA/web/tree/15.0/web_environment_ribbon
:alt: OCA/web :alt: OCA/web
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/web-17-0/web-17-0-web_environment_ribbon :target: https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_environment_ribbon
:alt: Translate me on Weblate :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=17.0 :target: https://runbot.odoo-community.org/runbot/162/15.0
:alt: Try me on Runboat :alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5| |badge1| |badge2| |badge3| |badge4| |badge5|
Mark a Test Environment with a red ribbon on the top left corner in Mark a Test Environment with a red ribbon on the top left corner in every page
every page
**Table of contents** **Table of contents**
@@ -39,29 +35,28 @@ every page
Configuration Configuration
============= =============
- You can change the ribbon's name ("TEST") by editing the default * You can change the ribbon's name ("TEST") by editing the default system
system parameter "ribbon.name" (in the menu Settings > Parameters > parameter "ribbon.name" (in the menu Settings > Parameters > System
System Parameters) To hide the ribbon, set this parameter to "False" Parameters) To hide the ribbon, set this parameter to "False" or delete it.
or delete it. * You can customize the ribbon color and background color through system
- You can customize the ribbon color and background color through parameters: "ribbon.color", "ribbon.background.color". Fill with valid CSS
system parameters: "ribbon.color", "ribbon.background.color". Fill colors or just set to "False" to use default values.
with valid CSS colors or just set to "False" to use default values. * You can add the database name in the ribbon by adding "{db_name}" in the
- You can add the database name in the ribbon by adding "{db_name}" in system parameter "ribbon.name".
the system parameter "ribbon.name".
Usage Usage
===== =====
To use this module, you need only to install it. After installation, a To use this module, you need only to install it. After installation, a red
red ribbon will be visible on top left corner of every Odoo backend page ribbon will be visible on top left corner of every Odoo backend page
Bug Tracker Bug Tracker
=========== ===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_. Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_.
In case of trouble, please check there if your issue has already been reported. 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 If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_environment_ribbon%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. `feedback <https://github.com/OCA/web/issues/new?body=module:%20web_environment_ribbon%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues. Do not contact contributors directly about support or help with technical issues.
@@ -69,24 +64,24 @@ Credits
======= =======
Authors Authors
------- ~~~~~~~
* Francesco OpenCode Apruzzese * Francesco OpenCode Apruzzese
* Tecnativa * Tecnativa
Contributors Contributors
------------ ~~~~~~~~~~~~
- Francesco Apruzzese <cescoap@gmail.com> * Francesco Apruzzese <cescoap@gmail.com>
- Javi Melendez <javimelex@gmail.com> * Javi Melendez <javimelex@gmail.com>
- Antonio Espinosa <antonio.espinosa@tecnativa.com> * Antonio Espinosa <antonio.espinosa@tecnativa.com>
- Thomas Binsfeld <thomas.binsfeld@acsone.eu> * Thomas Binsfeld <thomas.binsfeld@acsone.eu>
- Xavier Jiménez <xavier.jimenez@qubiq.es> * Xavier Jiménez <xavier.jimenez@qubiq.es>
- Dennis Sluijk <d.sluijk@onestein.nl> * Dennis Sluijk <d.sluijk@onestein.nl>
- Eric Lembregts <eric@lembregts.eu> * Eric Lembregts <eric@lembregts.eu>
Maintainers Maintainers
----------- ~~~~~~~~~~~
This module is maintained by the OCA. This module is maintained by the OCA.
@@ -98,6 +93,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and mission is to support the collaborative development of Odoo features and
promote its widespread use. promote its widespread use.
This module is part of the `OCA/web <https://github.com/OCA/web/tree/17.0/web_environment_ribbon>`_ project on GitHub. This module is part of the `OCA/web <https://github.com/OCA/web/tree/15.0/web_environment_ribbon>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -6,7 +6,7 @@
{ {
"name": "Web Environment Ribbon", "name": "Web Environment Ribbon",
"version": "17.0.1.0.0", "version": "15.0.1.0.0",
"category": "Web", "category": "Web",
"author": "Francesco OpenCode Apruzzese, " "author": "Francesco OpenCode Apruzzese, "
"Tecnativa, " "Tecnativa, "
@@ -20,8 +20,8 @@
"auto_install": False, "auto_install": False,
"installable": True, "installable": True,
"assets": { "assets": {
"web.assets_backend": [ "web.assets_common": [
"web_environment_ribbon/static/src/components/environment_ribbon/*", "web_environment_ribbon/static/**/*",
], ],
}, },
} }

View File

@@ -16,16 +16,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.10\n" "X-Generator: Weblate 3.10\n"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__display_name
msgid "Display Name"
msgstr "Nom mostrat"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__id
msgid "ID"
msgstr "ID"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend____last_update
msgid "Last Modified on"
msgstr "Última modificació el"
#. module: web_environment_ribbon #. module: web_environment_ribbon
#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend #: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
msgid "Web Environment Ribbon Backend" msgid "Web Environment Ribbon Backend"
msgstr "Backend \"Web Environment Ribbon\"" msgstr "Backend \"Web Environment Ribbon\""
#~ msgid "Display Name"
#~ msgstr "Nom mostrat"
#~ msgid "ID"
#~ msgstr "ID"
#~ msgid "Last Modified on"
#~ msgstr "Última modificació el"

View File

@@ -19,16 +19,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.10\n" "X-Generator: Weblate 3.10\n"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__display_name
msgid "Display Name"
msgstr "Anzeigename"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__id
msgid "ID"
msgstr "ID"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend____last_update
msgid "Last Modified on"
msgstr "Zuletzt geändert am"
#. module: web_environment_ribbon #. module: web_environment_ribbon
#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend #: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
msgid "Web Environment Ribbon Backend" msgid "Web Environment Ribbon Backend"
msgstr "Web-Umgebung Ribbon-Backend" msgstr "Web-Umgebung Ribbon-Backend"
#~ msgid "Display Name"
#~ msgstr "Anzeigename"
#~ msgid "ID"
#~ msgstr "ID"
#~ msgid "Last Modified on"
#~ msgstr "Zuletzt geändert am"

View File

@@ -16,16 +16,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.7.1\n" "X-Generator: Weblate 3.7.1\n"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__display_name
msgid "Display Name"
msgstr "Nombre mostrado"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__id
msgid "ID"
msgstr "ID"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend____last_update
msgid "Last Modified on"
msgstr "Última modificación el"
#. module: web_environment_ribbon #. module: web_environment_ribbon
#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend #: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
msgid "Web Environment Ribbon Backend" msgid "Web Environment Ribbon Backend"
msgstr "Backend \"Web Environment Ribbon\"" msgstr "Backend \"Web Environment Ribbon\""
#~ msgid "Display Name"
#~ msgstr "Nombre mostrado"
#~ msgid "ID"
#~ msgstr "ID"
#~ msgid "Last Modified on"
#~ msgstr "Última modificación el"

View File

@@ -19,16 +19,22 @@ msgstr ""
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__display_name
msgid "Display Name"
msgstr "Nom affiché"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__id
msgid "ID"
msgstr "ID"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend____last_update
msgid "Last Modified on"
msgstr "Dernière modification le"
#. module: web_environment_ribbon #. module: web_environment_ribbon
#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend #: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
msgid "Web Environment Ribbon Backend" msgid "Web Environment Ribbon Backend"
msgstr "Backend du bandeau de l'environnement Web" msgstr "Backend du bandeau de l'environnement Web"
#~ msgid "Display Name"
#~ msgstr "Nom affiché"
#~ msgid "ID"
#~ msgstr "ID"
#~ msgid "Last Modified on"
#~ msgstr "Dernière modification le"

View File

@@ -9,8 +9,8 @@ msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-07-13 16:06+0000\n" "POT-Creation-Date: 2017-07-13 16:06+0000\n"
"PO-Revision-Date: 2023-01-04 02:41+0000\n" "PO-Revision-Date: 2017-07-13 16:06+0000\n"
"Last-Translator: Bole <bole@dajmi5.com>\n" "Last-Translator: Bole <bole@dajmi5.com>, 2017\n"
"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" "Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n"
"Language: hr\n" "Language: hr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -18,18 +18,23 @@ msgstr ""
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.14.1\n"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__display_name
msgid "Display Name"
msgstr "Naziv za prikaz"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__id
msgid "ID"
msgstr "ID"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend____last_update
msgid "Last Modified on"
msgstr "Zadnje modificirano"
#. module: web_environment_ribbon #. module: web_environment_ribbon
#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend #: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
msgid "Web Environment Ribbon Backend" msgid "Web Environment Ribbon Backend"
msgstr "Pozadina trake okoline" msgstr ""
#~ msgid "Display Name"
#~ msgstr "Naziv za prikaz"
#~ msgid "ID"
#~ msgstr "ID"
#~ msgid "Last Modified on"
#~ msgstr "Zadnje modificirano"

View File

@@ -16,16 +16,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.3.2\n" "X-Generator: Weblate 4.3.2\n"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__display_name
msgid "Display Name"
msgstr "Weergavenaam"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__id
msgid "ID"
msgstr "ID"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend____last_update
msgid "Last Modified on"
msgstr "Laatst Gewijzigd op"
#. module: web_environment_ribbon #. module: web_environment_ribbon
#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend #: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
msgid "Web Environment Ribbon Backend" msgid "Web Environment Ribbon Backend"
msgstr "Web Environment Ribbon Backend" msgstr "Web Environment Ribbon Backend"
#~ msgid "Display Name"
#~ msgstr "Weergavenaam"
#~ msgid "ID"
#~ msgstr "ID"
#~ msgid "Last Modified on"
#~ msgstr "Laatst Gewijzigd op"

View File

@@ -11,8 +11,8 @@ msgstr ""
"POT-Creation-Date: 2017-07-13 16:06+0000\n" "POT-Creation-Date: 2017-07-13 16:06+0000\n"
"PO-Revision-Date: 2021-04-22 15:47+0000\n" "PO-Revision-Date: 2021-04-22 15:47+0000\n"
"Last-Translator: Bosd <c5e2fd43-d292-4c90-9d1f-74ff3436329a@anonaddy.me>\n" "Last-Translator: Bosd <c5e2fd43-d292-4c90-9d1f-74ff3436329a@anonaddy.me>\n"
"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/" "Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/teams/"
"teams/23907/nl_NL/)\n" "23907/nl_NL/)\n"
"Language: nl_NL\n" "Language: nl_NL\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -20,16 +20,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.3.2\n" "X-Generator: Weblate 4.3.2\n"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__display_name
msgid "Display Name"
msgstr "Weergavenaam"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__id
msgid "ID"
msgstr "ID"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend____last_update
msgid "Last Modified on"
msgstr "Laatst bijgewerkt op"
#. module: web_environment_ribbon #. module: web_environment_ribbon
#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend #: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
msgid "Web Environment Ribbon Backend" msgid "Web Environment Ribbon Backend"
msgstr "" msgstr ""
#~ msgid "Display Name"
#~ msgstr "Weergavenaam"
#~ msgid "ID"
#~ msgstr "ID"
#~ msgid "Last Modified on"
#~ msgstr "Laatst bijgewerkt op"

View File

@@ -16,16 +16,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.7.1\n" "X-Generator: Weblate 3.7.1\n"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__display_name
msgid "Display Name"
msgstr "Nome a Exibir"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__id
msgid "ID"
msgstr "ID"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend____last_update
msgid "Last Modified on"
msgstr "Última Modificação em"
#. module: web_environment_ribbon #. module: web_environment_ribbon
#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend #: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
msgid "Web Environment Ribbon Backend" msgid "Web Environment Ribbon Backend"
msgstr "" msgstr ""
#~ msgid "Display Name"
#~ msgstr "Nome a Exibir"
#~ msgid "ID"
#~ msgstr "ID"
#~ msgid "Last Modified on"
#~ msgstr "Última Modificação em"

View File

@@ -20,16 +20,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.1.1\n" "X-Generator: Weblate 3.1.1\n"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__display_name
msgid "Display Name"
msgstr "Exibir Nome"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__id
msgid "ID"
msgstr "Identificação"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend____last_update
msgid "Last Modified on"
msgstr "Última Modificação em"
#. module: web_environment_ribbon #. module: web_environment_ribbon
#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend #: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
msgid "Web Environment Ribbon Backend" msgid "Web Environment Ribbon Backend"
msgstr "Back-end da fita do ambiente da Web" msgstr "Back-end da fita do ambiente da Web"
#~ msgid "Display Name"
#~ msgstr "Exibir Nome"
#~ msgid "ID"
#~ msgstr "Identificação"
#~ msgid "Last Modified on"
#~ msgstr "Última Modificação em"

View File

@@ -19,10 +19,22 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3);\n" "%100==4 ? 2 : 3);\n"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__display_name
msgid "Display Name"
msgstr ""
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__id
msgid "ID"
msgstr "ID"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend____last_update
msgid "Last Modified on"
msgstr ""
#. module: web_environment_ribbon #. module: web_environment_ribbon
#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend #: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
msgid "Web Environment Ribbon Backend" msgid "Web Environment Ribbon Backend"
msgstr "" msgstr ""
#~ msgid "ID"
#~ msgstr "ID"

View File

@@ -4,7 +4,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 17.0\n" "Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"

View File

@@ -1,20 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_environment_ribbon
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: zh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: web_environment_ribbon
#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
msgid "Web Environment Ribbon Backend"
msgstr ""

View File

@@ -16,16 +16,22 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.8\n" "X-Generator: Weblate 3.8\n"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__display_name
msgid "Display Name"
msgstr "显示名称"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend__id
msgid "ID"
msgstr "ID"
#. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend____last_update
msgid "Last Modified on"
msgstr "最后修改时间"
#. module: web_environment_ribbon #. module: web_environment_ribbon
#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend #: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
msgid "Web Environment Ribbon Backend" msgid "Web Environment Ribbon Backend"
msgstr "Web环境功能区后台" msgstr "Web环境功能区后台"
#~ msgid "Display Name"
#~ msgstr "显示名称"
#~ msgid "ID"
#~ msgstr "ID"
#~ msgid "Last Modified on"
#~ msgstr "最后修改时间"

View File

@@ -5,6 +5,7 @@ from odoo import api, models
class WebEnvironmentRibbonBackend(models.AbstractModel): class WebEnvironmentRibbonBackend(models.AbstractModel):
_name = "web.environment.ribbon.backend" _name = "web.environment.ribbon.backend"
_description = "Web Environment Ribbon Backend" _description = "Web Environment Ribbon Backend"

View File

@@ -1,3 +0,0 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"

View File

@@ -1,9 +0,0 @@
- You can change the ribbon's name ("TEST") by editing the default
system parameter "ribbon.name" (in the menu Settings \> Parameters \>
System Parameters) To hide the ribbon, set this parameter to "False"
or delete it.
- You can customize the ribbon color and background color through system
parameters: "ribbon.color", "ribbon.background.color". Fill with valid
CSS colors or just set to "False" to use default values.
- You can add the database name in the ribbon by adding "{db_name}" in
the system parameter "ribbon.name".

View File

@@ -0,0 +1,8 @@
* You can change the ribbon's name ("TEST") by editing the default system
parameter "ribbon.name" (in the menu Settings > Parameters > System
Parameters) To hide the ribbon, set this parameter to "False" or delete it.
* You can customize the ribbon color and background color through system
parameters: "ribbon.color", "ribbon.background.color". Fill with valid CSS
colors or just set to "False" to use default values.
* You can add the database name in the ribbon by adding "{db_name}" in the
system parameter "ribbon.name".

View File

@@ -1,7 +0,0 @@
- Francesco Apruzzese \<<cescoap@gmail.com>\>
- Javi Melendez \<<javimelex@gmail.com>\>
- Antonio Espinosa \<<antonio.espinosa@tecnativa.com>\>
- Thomas Binsfeld \<<thomas.binsfeld@acsone.eu>\>
- Xavier Jiménez \<<xavier.jimenez@qubiq.es>\>
- Dennis Sluijk \<<d.sluijk@onestein.nl>\>
- Eric Lembregts \<<eric@lembregts.eu>\>

View File

@@ -0,0 +1,7 @@
* Francesco Apruzzese <cescoap@gmail.com>
* Javi Melendez <javimelex@gmail.com>
* Antonio Espinosa <antonio.espinosa@tecnativa.com>
* Thomas Binsfeld <thomas.binsfeld@acsone.eu>
* Xavier Jiménez <xavier.jimenez@qubiq.es>
* Dennis Sluijk <d.sluijk@onestein.nl>
* Eric Lembregts <eric@lembregts.eu>

View File

@@ -1,2 +1 @@
Mark a Test Environment with a red ribbon on the top left corner in Mark a Test Environment with a red ribbon on the top left corner in every page
every page

View File

@@ -1,2 +0,0 @@
To use this module, you need only to install it. After installation, a
red ribbon will be visible on top left corner of every Odoo backend page

View File

@@ -0,0 +1,2 @@
To use this module, you need only to install it. After installation, a red
ribbon will be visible on top left corner of every Odoo backend page

View File

@@ -3,18 +3,18 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" /> <meta name="generator" content="Docutils 0.15.1: http://docutils.sourceforge.net/" />
<title>Web Environment Ribbon</title> <title>Web Environment Ribbon</title>
<style type="text/css"> <style type="text/css">
/* /*
:Author: David Goodger (goodger@python.org) :Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ :Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
:Copyright: This stylesheet has been placed in the public domain. :Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils. Default cascading style sheet for the HTML output of Docutils.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet. customize this style sheet.
*/ */
@@ -366,64 +366,60 @@ ul.auto-toc {
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !! !! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !! !! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:633699dce7538787594626fb371be0a97de6e53505ea986d27b7e1faafb870ff
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/web/tree/17.0/web_environment_ribbon"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/web-17-0/web-17-0-web_environment_ribbon"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/web&amp;target_branch=17.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p> <p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/web/tree/15.0/web_environment_ribbon"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_environment_ribbon"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/162/15.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>Mark a Test Environment with a red ribbon on the top left corner in <p>Mark a Test Environment with a red ribbon on the top left corner in every page</p>
every page</p>
<p><strong>Table of contents</strong></p> <p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents"> <div class="contents local topic" id="contents">
<ul class="simple"> <ul class="simple">
<li><a class="reference internal" href="#configuration" id="toc-entry-1">Configuration</a></li> <li><a class="reference internal" href="#configuration" id="id1">Configuration</a></li>
<li><a class="reference internal" href="#usage" id="toc-entry-2">Usage</a></li> <li><a class="reference internal" href="#usage" id="id2">Usage</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-3">Bug Tracker</a></li> <li><a class="reference internal" href="#bug-tracker" id="id3">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-4">Credits</a><ul> <li><a class="reference internal" href="#credits" id="id4">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-5">Authors</a></li> <li><a class="reference internal" href="#authors" id="id5">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-6">Contributors</a></li> <li><a class="reference internal" href="#contributors" id="id6">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-7">Maintainers</a></li> <li><a class="reference internal" href="#maintainers" id="id7">Maintainers</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</div> </div>
<div class="section" id="configuration"> <div class="section" id="configuration">
<h1><a class="toc-backref" href="#toc-entry-1">Configuration</a></h1> <h1><a class="toc-backref" href="#id1">Configuration</a></h1>
<ul class="simple"> <ul class="simple">
<li>You can change the ribbons name (“TEST”) by editing the default <li>You can change the ribbons name (“TEST”) by editing the default system
system parameter “ribbon.name” (in the menu Settings &gt; Parameters &gt; parameter “ribbon.name” (in the menu Settings &gt; Parameters &gt; System
System Parameters) To hide the ribbon, set this parameter to “False” Parameters) To hide the ribbon, set this parameter to “False” or delete it.</li>
or delete it.</li> <li>You can customize the ribbon color and background color through system
<li>You can customize the ribbon color and background color through parameters: “ribbon.color”, “ribbon.background.color”. Fill with valid CSS
system parameters: “ribbon.color”, “ribbon.background.color”. Fill colors or just set to “False” to use default values.</li>
with valid CSS colors or just set to “False” to use default values.</li> <li>You can add the database name in the ribbon by adding “{db_name}” in the
<li>You can add the database name in the ribbon by adding “{db_name}” in system parameter “ribbon.name”.</li>
the system parameter “ribbon.name”.</li>
</ul> </ul>
</div> </div>
<div class="section" id="usage"> <div class="section" id="usage">
<h1><a class="toc-backref" href="#toc-entry-2">Usage</a></h1> <h1><a class="toc-backref" href="#id2">Usage</a></h1>
<p>To use this module, you need only to install it. After installation, a <p>To use this module, you need only to install it. After installation, a red
red ribbon will be visible on top left corner of every Odoo backend page</p> ribbon will be visible on top left corner of every Odoo backend page</p>
</div> </div>
<div class="section" id="bug-tracker"> <div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#toc-entry-3">Bug Tracker</a></h1> <h1><a class="toc-backref" href="#id3">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/web/issues">GitHub Issues</a>. <p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/web/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported. 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 If you spotted it first, help us smashing it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_environment_ribbon%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p> <a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_environment_ribbon%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p> <p>Do not contact contributors directly about support or help with technical issues.</p>
</div> </div>
<div class="section" id="credits"> <div class="section" id="credits">
<h1><a class="toc-backref" href="#toc-entry-4">Credits</a></h1> <h1><a class="toc-backref" href="#id4">Credits</a></h1>
<div class="section" id="authors"> <div class="section" id="authors">
<h2><a class="toc-backref" href="#toc-entry-5">Authors</a></h2> <h2><a class="toc-backref" href="#id5">Authors</a></h2>
<ul class="simple"> <ul class="simple">
<li>Francesco OpenCode Apruzzese</li> <li>Francesco OpenCode Apruzzese</li>
<li>Tecnativa</li> <li>Tecnativa</li>
</ul> </ul>
</div> </div>
<div class="section" id="contributors"> <div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-6">Contributors</a></h2> <h2><a class="toc-backref" href="#id6">Contributors</a></h2>
<ul class="simple"> <ul class="simple">
<li>Francesco Apruzzese &lt;<a class="reference external" href="mailto:cescoap&#64;gmail.com">cescoap&#64;gmail.com</a>&gt;</li> <li>Francesco Apruzzese &lt;<a class="reference external" href="mailto:cescoap&#64;gmail.com">cescoap&#64;gmail.com</a>&gt;</li>
<li>Javi Melendez &lt;<a class="reference external" href="mailto:javimelex&#64;gmail.com">javimelex&#64;gmail.com</a>&gt;</li> <li>Javi Melendez &lt;<a class="reference external" href="mailto:javimelex&#64;gmail.com">javimelex&#64;gmail.com</a>&gt;</li>
@@ -435,13 +431,13 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
</ul> </ul>
</div> </div>
<div class="section" id="maintainers"> <div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h2> <h2><a class="toc-backref" href="#id7">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p> <p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a> <a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose <p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and mission is to support the collaborative development of Odoo features and
promote its widespread use.</p> promote its widespread use.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/web/tree/17.0/web_environment_ribbon">OCA/web</a> project on GitHub.</p> <p>This module is part of the <a class="reference external" href="https://github.com/OCA/web/tree/15.0/web_environment_ribbon">OCA/web</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p> <p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div> </div>
</div> </div>

View File

@@ -1,68 +0,0 @@
/** @odoo-module **/
import {Component, xml} from "@odoo/owl";
import {useBus, useService} from "@web/core/utils/hooks";
import {registry} from "@web/core/registry";
export class WebEnvironmentRibbon extends Component {
setup() {
this.orm = useService("orm");
useBus(this.env.bus, "WEB_CLIENT_READY", this.showRibbon.bind(this));
}
// Code from: http://jsfiddle.net/WK_of_Angmar/xgA5C/
validStrColour(strToTest) {
if (strToTest === "") {
return false;
}
if (strToTest === "inherit") {
return true;
}
if (strToTest === "transparent") {
return true;
}
const image = document.createElement("img");
image.style.color = "rgb(0, 0, 0)";
image.style.color = strToTest;
if (image.style.color !== "rgb(0, 0, 0)") {
return true;
}
image.style.color = "rgb(255, 255, 255)";
image.style.color = strToTest;
return image.style.color !== "rgb(255, 255, 255)";
}
showRibbon() {
const ribbon = $(".test-ribbon");
const self = this;
ribbon.hide();
// Get ribbon data from backend
self.orm
.call("web.environment.ribbon.backend", "get_environment_ribbon")
.then(function (ribbon_data) {
// Ribbon name
if (ribbon_data.name && ribbon_data.name !== "False") {
ribbon.show();
ribbon.html(ribbon_data.name);
}
// Ribbon color
if (ribbon_data.color && self.validStrColour(ribbon_data.color)) {
ribbon.css("color", ribbon_data.color);
}
// Ribbon background color
if (
ribbon_data.background_color &&
self.validStrColour(ribbon_data.background_color)
) {
ribbon.css("background-color", ribbon_data.background_color);
}
});
}
}
WebEnvironmentRibbon.props = {};
WebEnvironmentRibbon.template = xml`<div class="test-ribbon" />`;
registry.category("main_components").add("WebEnvironmentRibbon", {
Component: WebEnvironmentRibbon,
});

View File

@@ -27,3 +27,10 @@
.test-ribbon b { .test-ribbon b {
font-size: 20px; font-size: 20px;
} }
header:hover ~ .test-ribbon,
nav:hover ~ .test-ribbon {
/* Ease out ribbon when user is using the navigation in Odoo */
opacity: 0;
transition: 0.2s ease;
}

View File

@@ -0,0 +1,62 @@
/* Copyright 2015 Sylvain Calador <sylvain.calador@akretion.com>
Copyright 2015 Javi Melendez <javi.melendez@algios.com>
Copyright 2016 Antonio Espinosa <antonio.espinosa@tecnativa.com>
Copyright 2017 Thomas Binsfeld <thomas.binsfeld@acsone.eu>
Copyright 2017 Xavier Jiménez <xavier.jimenez@qubiq.es>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
odoo.define("web_environment_ribbon.ribbon", function (require) {
"use strict";
var rpc = require("web.rpc");
var core = require("web.core");
// Code from: http://jsfiddle.net/WK_of_Angmar/xgA5C/
function validStrColour(strToTest) {
if (strToTest === "") {
return false;
}
if (strToTest === "inherit") {
return true;
}
if (strToTest === "transparent") {
return true;
}
var image = document.createElement("img");
image.style.color = "rgb(0, 0, 0)";
image.style.color = strToTest;
if (image.style.color !== "rgb(0, 0, 0)") {
return true;
}
image.style.color = "rgb(255, 255, 255)";
image.style.color = strToTest;
return image.style.color !== "rgb(255, 255, 255)";
}
core.bus.on("web_client_ready", null, function () {
var ribbon = $('<div class="test-ribbon hidden"/>');
$("body").append(ribbon);
ribbon.hide();
// Get ribbon data from backend
rpc.query({
model: "web.environment.ribbon.backend",
method: "get_environment_ribbon",
}).then(function (ribbon_data) {
// Ribbon name
if (ribbon_data.name && ribbon_data.name !== "False") {
ribbon.html(ribbon_data.name);
ribbon.show();
}
// Ribbon color
if (ribbon_data.color && validStrColour(ribbon_data.color)) {
ribbon.css("color", ribbon_data.color);
}
// Ribbon background color
if (
ribbon_data.background_color &&
validStrColour(ribbon_data.background_color)
) {
ribbon.css("background-color", ribbon_data.background_color);
}
});
});
});

View File

@@ -7,7 +7,7 @@ from odoo.tests import common
class TestEnvironmentRibbonData(common.TransactionCase): class TestEnvironmentRibbonData(common.TransactionCase):
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
super().setUpClass() super(TestEnvironmentRibbonData, cls).setUpClass()
cls.env["ir.config_parameter"].set_param("ribbon.name", "Test Ribbon {db_name}") cls.env["ir.config_parameter"].set_param("ribbon.name", "Test Ribbon {db_name}")
cls.env["ir.config_parameter"].set_param("ribbon.color", "#000000") cls.env["ir.config_parameter"].set_param("ribbon.color", "#000000")
cls.env["ir.config_parameter"].set_param("ribbon.background.color", "#FFFFFF") cls.env["ir.config_parameter"].set_param("ribbon.background.color", "#FFFFFF")
@@ -18,7 +18,7 @@ class TestEnvironmentRibbonData(common.TransactionCase):
ribbon = self.env["web.environment.ribbon.backend"].get_environment_ribbon() ribbon = self.env["web.environment.ribbon.backend"].get_environment_ribbon()
expected_ribbon = { expected_ribbon = {
"name": f"Test Ribbon {self.env.cr.dbname}", "name": "Test Ribbon {db_name}".format(db_name=self.env.cr.dbname),
"color": "#000000", "color": "#000000",
"background_color": "#FFFFFF", "background_color": "#FFFFFF",
} }