[12.0][MIG] base_remote

[UPD] Update base_remote.pot
pull/2344/head
Jaime Arroyo 2019-06-03 12:30:21 +02:00 committed by Olga Marco
parent e21a0cbb98
commit 937ec7cec0
11 changed files with 512 additions and 53 deletions

View File

@ -1,58 +1,81 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
=========== ===========
Remote Base Remote Base
=========== ===========
This module allows to store all the connected remotes (external ip addresses) to odoo. .. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
:target: https://github.com/OCA/server-tools/tree/12.0/base_remote
:alt: OCA/server-tools
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/server-tools-12-0/server-tools-12-0-base_remote
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/149/12.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
This module allows to store all the connected remotes (external ip addresses) to Odoo.
It should be used with other modules in order to check remote's configurations. It should be used with other modules in order to check remote's configurations.
**Table of contents**
.. contents::
:local:
Usage Usage
===== =====
When installed, all remotes will be stored by `hostname` on `res.remote`. When installed, all remotes will be stored by `hostname` on `res.remote`.
They can be viewed on `Settings / Remotes`. They can be viewed on `Settings / Remotes`.
The last Ip of the remote will be stored. The last IP of the remote will be stored.
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/144/11.0
Bug Tracker Bug Tracker
=========== ===========
Bugs are tracked on `GitHub Issues Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-tools/issues>`_.
<https://github.com/OCA/report-print-send/issues>`_. In case of trouble, please In case of trouble, please check there if your issue has already been reported.
check there if your issue has already been reported. If you spotted it first, If you spotted it first, help us smashing it by providing a detailed and welcomed
help us smashing it by providing a detailed and welcomed feedback. `feedback <https://github.com/OCA/server-tools/issues/new?body=module:%20base_remote%0Aversion:%2012.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.
Credits Credits
======= =======
Images Authors
------ ~~~~~~~
* Odoo Community Association: `Icon <https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.svg>`_. * Creu Blanca
Contributors Contributors
------------ ~~~~~~~~~~~~
* Enric Tobella <etobella@creublanca.es> * Enric Tobella <etobella@creublanca.es>
Maintainer Maintainers
---------- ~~~~~~~~~~~
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png .. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association :alt: Odoo Community Association
:target: https://odoo-community.org :target: https://odoo-community.org
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose 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.
To contribute to this module, please visit https://odoo-community.org. This module is part of the `OCA/server-tools <https://github.com/OCA/server-tools/tree/12.0/base_remote>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@ -3,12 +3,12 @@
{ {
'name': "Remote Base", 'name': "Remote Base",
'version': '11.0.1.0.4', 'version': '12.0.1.0.0',
'category': 'Generic Modules/Base', 'category': 'Generic Modules/Base',
'author': "Creu Blanca, Odoo Community Association (OCA)", 'author': "Creu Blanca, Odoo Community Association (OCA)",
'website': 'http://github.com/OCA/server-tools', 'website': 'http://github.com/OCA/server-tools',
'license': 'AGPL-3', 'license': 'AGPL-3',
"depends": ['web', 'base'], "depends": ['web'],
'data': [ 'data': [
'security/ir.model.access.csv', 'security/ir.model.access.csv',
'views/res_remote_views.xml', 'views/res_remote_views.xml',

View File

@ -4,7 +4,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 11.0\n" "Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
@ -14,22 +14,27 @@ msgstr ""
"Plural-Forms: \n" "Plural-Forms: \n"
#. module: base_remote #. module: base_remote
#: model:ir.model.fields,field_description:base_remote.field_res_remote_create_uid #: model:ir.model,name:base_remote.model_base
msgid "Base"
msgstr ""
#. module: base_remote
#: model:ir.model.fields,field_description:base_remote.field_res_remote__create_uid
msgid "Created by" msgid "Created by"
msgstr "" msgstr ""
#. module: base_remote #. module: base_remote
#: model:ir.model.fields,field_description:base_remote.field_res_remote_create_date #: model:ir.model.fields,field_description:base_remote.field_res_remote__create_date
msgid "Created on" msgid "Created on"
msgstr "" msgstr ""
#. module: base_remote #. module: base_remote
#: model:ir.model.fields,field_description:base_remote.field_res_remote_display_name #: model:ir.model.fields,field_description:base_remote.field_res_remote__display_name
msgid "Display Name" msgid "Display Name"
msgstr "" msgstr ""
#. module: base_remote #. module: base_remote
#: model:ir.model.fields,field_description:base_remote.field_res_remote_name #: model:ir.model.fields,field_description:base_remote.field_res_remote__name
msgid "Hostname" msgid "Hostname"
msgstr "" msgstr ""
@ -39,37 +44,37 @@ msgid "Hostname must be unique"
msgstr "" msgstr ""
#. module: base_remote #. module: base_remote
#: model:ir.model.fields,field_description:base_remote.field_res_remote_id #: model:ir.model.fields,field_description:base_remote.field_res_remote__id
msgid "ID" msgid "ID"
msgstr "" msgstr ""
#. module: base_remote #. module: base_remote
#: model:ir.model.fields,field_description:base_remote.field_res_remote_in_network #: model:ir.model.fields,field_description:base_remote.field_res_remote__in_network
msgid "In Network" msgid "In Network"
msgstr "" msgstr ""
#. module: base_remote #. module: base_remote
#: model:ir.model.fields,field_description:base_remote.field_res_remote_ip #: model:ir.model.fields,field_description:base_remote.field_res_remote__ip
msgid "Ip" msgid "Ip"
msgstr "" msgstr ""
#. module: base_remote #. module: base_remote
#: model:ir.model.fields,field_description:base_remote.field_res_remote___last_update #: model:ir.model.fields,field_description:base_remote.field_res_remote____last_update
msgid "Last Modified on" msgid "Last Modified on"
msgstr "" msgstr ""
#. module: base_remote #. module: base_remote
#: model:ir.model.fields,field_description:base_remote.field_res_remote_write_uid #: model:ir.model.fields,field_description:base_remote.field_res_remote__write_uid
msgid "Last Updated by" msgid "Last Updated by"
msgstr "" msgstr ""
#. module: base_remote #. module: base_remote
#: model:ir.model.fields,field_description:base_remote.field_res_remote_write_date #: model:ir.model.fields,field_description:base_remote.field_res_remote__write_date
msgid "Last Updated on" msgid "Last Updated on"
msgstr "" msgstr ""
#. module: base_remote #. module: base_remote
#: model:ir.ui.view,arch_db:base_remote.res_remote_form #: model_terms:ir.ui.view,arch_db:base_remote.res_remote_form
msgid "Remote" msgid "Remote"
msgstr "" msgstr ""
@ -77,12 +82,12 @@ msgstr ""
#: model:ir.actions.act_window,name:base_remote.res_remote_action #: model:ir.actions.act_window,name:base_remote.res_remote_action
#: model:ir.model,name:base_remote.model_res_remote #: model:ir.model,name:base_remote.model_res_remote
#: model:ir.ui.menu,name:base_remote.res_remote_menu #: model:ir.ui.menu,name:base_remote.res_remote_menu
#: model:ir.ui.view,arch_db:base_remote.res_remote_tree #: model_terms:ir.ui.view,arch_db:base_remote.res_remote_tree
msgid "Remotes" msgid "Remotes"
msgstr "" msgstr ""
#. module: base_remote #. module: base_remote
#: model:ir.model.fields,help:base_remote.field_res_remote_in_network #: model:ir.model.fields,help:base_remote.field_res_remote__in_network
msgid "Shows if the remote can be found through the socket" msgid "Shows if the remote can be found through the socket"
msgstr "" msgstr ""
@ -91,8 +96,3 @@ msgstr ""
msgid "Users" msgid "Users"
msgstr "" msgstr ""
#. module: base_remote
#: model:ir.model,name:base_remote.model_base
msgid "base"
msgstr ""

View File

@ -12,8 +12,6 @@ class Base(models.AbstractModel):
def remote(self): def remote(self):
try: try:
remote_addr = current_thread().environ["REMOTE_ADDR"] remote_addr = current_thread().environ["REMOTE_ADDR"]
except KeyError: except (KeyError, AttributeError):
return self.env['res.remote']
except AttributeError:
return self.env['res.remote'] return self.env['res.remote']
return self.env['res.remote']._get_remote(remote_addr) return self.env['res.remote']._get_remote(remote_addr)

View File

@ -40,7 +40,7 @@ class ResRemote(models.Model):
except socket.herror: except socket.herror:
logging.warning('Remote with ip %s could not be found' % addr) logging.warning('Remote with ip %s could not be found' % addr)
hostname = False hostname = False
remote = self.search([('name', '=ilike', hostname or addr)]) remote = self.search([('name', '=', hostname or addr)])
if not remote: if not remote:
remote = self.create(self._create_vals(addr, hostname)) remote = self.create(self._create_vals(addr, hostname))
if remote.ip != addr: if remote.ip != addr:

View File

@ -3,7 +3,9 @@
from threading import current_thread from threading import current_thread
from odoo import api, models, SUPERUSER_ID from odoo import api, models, SUPERUSER_ID
from odoo.exceptions import AccessDenied
from odoo.service import wsgi_server from odoo.service import wsgi_server
from odoo.tools import config
class ResUsers(models.Model): class ResUsers(models.Model):
@ -29,9 +31,13 @@ class ResUsers(models.Model):
with cls.pool.cursor() as cr: with cls.pool.cursor() as cr:
env = api.Environment(cr, SUPERUSER_ID, {}) env = api.Environment(cr, SUPERUSER_ID, {})
remote = env["res.users"].remote remote = env["res.users"].remote
if remote: if not config['test_enable']:
remote.ensure_one() remote.ensure_one()
return method() result = method()
if not result:
# Force exception to record auth failure
raise AccessDenied()
return result
# Override all auth-related core methods # Override all auth-related core methods
@classmethod @classmethod

View File

@ -0,0 +1 @@
* Enric Tobella <etobella@creublanca.es>

View File

@ -0,0 +1,2 @@
This module allows to store all the connected remotes (external ip addresses) to Odoo.
It should be used with other modules in order to check remote's configurations.

View File

@ -0,0 +1,3 @@
When installed, all remotes will be stored by `hostname` on `res.remote`.
They can be viewed on `Settings / Remotes`.
The last IP of the remote will be stored.

View File

@ -0,0 +1,427 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.15.1: http://docutils.sourceforge.net/" />
<title>Remote Base</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: grey; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="remote-base">
<h1 class="title">Remote Base</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<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/server-tools/tree/12.0/base_remote"><img alt="OCA/server-tools" src="https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/server-tools-12-0/server-tools-12-0-base_remote"><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/149/12.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>This module allows to store all the connected remotes (external ip addresses) to Odoo.
It should be used with other modules in order to check remotes configurations.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#usage" id="id1">Usage</a></li>
<li><a class="reference internal" href="#bug-tracker" id="id2">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="id3">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="id4">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="id5">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="id6">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#id1">Usage</a></h1>
<p>When installed, all remotes will be stored by <cite>hostname</cite> on <cite>res.remote</cite>.
They can be viewed on <cite>Settings / Remotes</cite>.
The last IP of the remote will be stored.</p>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#id2">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/server-tools/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/server-tools/issues/new?body=module:%20base_remote%0Aversion:%2012.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>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#id3">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#id4">Authors</a></h2>
<ul class="simple">
<li>Creu Blanca</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#id5">Contributors</a></h2>
<ul class="simple">
<li>Enric Tobella &lt;<a class="reference external" href="mailto:etobella&#64;creublanca.es">etobella&#64;creublanca.es</a>&gt;</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#id6">Maintainers</a></h2>
<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>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/server-tools/tree/12.0/base_remote">OCA/server-tools</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>
</div>
</div>
</div>
</body>
</html>

View File

@ -17,8 +17,7 @@ from odoo.tests.common import at_install, HttpCase, post_install
class TestRemote(HttpCase): class TestRemote(HttpCase):
def setUp(self): def setUp(self):
super().setUp() super().setUp()
# HACK https://github.com/odoo/odoo/issues/24183
# TODO Remove in v12
# Complex password to avoid conflicts with `password_security` # Complex password to avoid conflicts with `password_security`
self.good_password = "Admin$%02584" self.good_password = "Admin$%02584"
self.data_demo = { self.data_demo = {