Browse Source

publish muk_dbfilter - 12.0

pull/9/head
MuK IT GmbH 5 years ago
parent
commit
ed02ffcfff
  1. 25
      muk_dbfilter/__init__.py
  2. 51
      muk_dbfilter/__manifest__.py
  3. 4
      muk_dbfilter/doc/changelog.rst
  4. 126
      muk_dbfilter/doc/index.rst
  5. 20
      muk_dbfilter/patch/__init__.py
  6. 35
      muk_dbfilter/patch/http.py
  7. BIN
      muk_dbfilter/static/description/banner.png
  8. BIN
      muk_dbfilter/static/description/icon.png
  9. 1
      muk_dbfilter/static/description/icon.svg
  10. 129
      muk_dbfilter/static/description/index.html
  11. BIN
      muk_dbfilter/static/description/logo.png
  12. BIN
      muk_dbfilter/static/description/preview.png
  13. BIN
      muk_dbfilter/static/description/service_customization.png
  14. BIN
      muk_dbfilter/static/description/service_development.png
  15. BIN
      muk_dbfilter/static/description/service_implementation.png
  16. BIN
      muk_dbfilter/static/description/service_integration.png
  17. BIN
      muk_dbfilter/static/description/service_support.png

25
muk_dbfilter/__init__.py

@ -0,0 +1,25 @@
###################################################################################
#
# Copyright (C) 2018 MuK IT GmbH
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###################################################################################
from odoo.tools import config
def _patch_system():
server_modules = config.get('server_wide_modules') or []
if 'muk_dbfilter' in server_modules and config.get('proxy_mode'):
from . import patch

51
muk_dbfilter/__manifest__.py

@ -0,0 +1,51 @@
###################################################################################
#
# Copyright (C) 2018 MuK IT GmbH
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###################################################################################
{
"name": "MuK DB Filter",
"summary": """Headers based Database Selection""",
"version": "11.0.1.0.1",
'category': 'Extra Tools',
'license': 'AGPL-3',
'author': 'MuK IT',
'website': 'https://www.mukit.at',
'live_test_url': 'https://demo.mukit.at/web/login',
"depends": [
],
"contributors": [
"Kerrim Abdelhamed <kerrim.abdelhamed@mukit.at>",
"Mathias Markl <mathias.markl@mukit.at>"
],
"data": [
],
"demo": [
],
"qweb": [
],
"images": [
],
"external_dependencies": {
"python": [],
"bin": [],
},
"installable": True,
"auto_install": False,
"application": False,
"post_load": "_patch_system",
}

4
muk_dbfilter/doc/changelog.rst

@ -0,0 +1,4 @@
`1.0.0`
-------
- Init version

126
muk_dbfilter/doc/index.rst

@ -0,0 +1,126 @@
============
MuK DBFilter
============
This module allows to add additional filter criteria to the ``dbfilter``
function using a request header. To pass a regular expression to the
filter set the ``X-Odoo-dbfilter`` header field on the request and make
sure that Odoo runs with an enabled proxy mode.
Installation
============
To install this module, you need to:
Download the module and add it to your Odoo addons folder. Afterward, log on to
your Odoo server and go to the Apps menu. Trigger the debug mode and update the
list by clicking on the "Update Apps List" link. Now install the module by
clicking on the install button.
Another way to install this module is via the package management for Python
(`PyPI <https://pypi.org/project/pip/>`_).
To install our modules using the package manager make sure
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed
correctly. Then open a console and install the module by entering the following
command:
``pip install --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
The module name consists of the Odoo version and the module name, where
underscores are replaced by a dash.
**Module:**
``odoo<version>-addon-<module_name>``
**Example:**
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo11-addon-muk-utils``
Once the installation has been successfully completed, the app is already in the
correct folder. Log on to your Odoo server and go to the Apps menu. Trigger the
debug mode and update the list by clicking on the "Update Apps List" link. Now
install the module by clicking on the install button.
The biggest advantage of this variant is that you can now also update the app
using the "pip" command. To do this, enter the following command in your console:
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
When the process is finished, restart your server and update the application in
Odoo. The steps are the same as for the installation only the button has changed
from "Install" to "Upgrade".
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_.
For modules licensed under OPL-1, you will receive access data when you purchase
the module. If the modules were not purchased directly from
`MuK IT <https://www.mukit.at/>`_ please contact our support (support@mukit.at)
with a confirmation of purchase to receive the corresponding access data.
Upgrade
============
To upgrade this module, you need to:
Download the module and add it to your Odoo addons folder. Restart the server
and log on to your Odoo server. Select the Apps menu and upgrade the module by
clicking on the upgrade button.
If you installed the module using the "pip" command, you can also update the
module in the same way. Just type the following command into the console:
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
When the process is finished, restart your server and update the application in
Odoo, just like you would normally.
Configuration
=============
Since this module need to be activated even if no database is selected it should
be loaded right at the server start. This can be done by editing the configuration
file or passing a load parameter to the start script.
Parameter: ``--load=web,muk_session_store``
Usage
=============
After loading the module, the ``dbfilter`` function reacts to request headers.
Credits
=======
Contributors
------------
* Mathias Markl <mathias.markl@mukit.at>
Images
------------
Some pictures are based on or inspired by the icon set of Font Awesome:
* `Font Awesome <https://fontawesome.com>`_
Projects
------------
Parts of the module are based on or inspired by:
* `DBFilter from Header <https://github.com/OCA/server-tools>`_
Author & Maintainer
-------------------
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_.
MuK IT is an Austrian company specialized in customizing and extending Odoo.
We develop custom solutions for your individual needs to help you focus on
your strength and expertise to grow your business.
If you want to get in touch please contact us via mail
(sale@mukit.at) or visit our website (https://mukit.at).

20
muk_dbfilter/patch/__init__.py

@ -0,0 +1,20 @@
###################################################################################
#
# Copyright (C) 2018 MuK IT GmbH
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###################################################################################
from . import http

35
muk_dbfilter/patch/http.py

@ -0,0 +1,35 @@
###################################################################################
#
# Copyright (C) 2018 MuK IT GmbH
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###################################################################################
import random
import logging
from odoo import http, tools
from odoo.http import request
from odoo.addons.muk_utils.tools.patch import monkey_patch
_logger = logging.getLogger(__name__)
@monkey_patch(http)
def db_filter(dbs, httprequest=None):
httprequest = httprequest or request.httprequest
dbs = db_filter.super(dbs, httprequest=httprequest)
filter = httprequest.environ.get('HTTP_X_ODOO_DBFILTER')
return [db for db in dbs if re.match(filter, db)] if filter else dbs

BIN
muk_dbfilter/static/description/banner.png

After

Width: 880  |  Height: 440  |  Size: 39 KiB

BIN
muk_dbfilter/static/description/icon.png

After

Width: 250  |  Height: 250  |  Size: 7.4 KiB

1
muk_dbfilter/static/description/icon.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!-- Generator: Gravit.io --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="0 0 250 250" width="250" height="250"><defs><clipPath id="_clipPath_RKMe3wwWD2dTyBn6NcW0C9MUCvwmzaAI"><rect width="250" height="250"/></clipPath></defs><g clip-path="url(#_clipPath_RKMe3wwWD2dTyBn6NcW0C9MUCvwmzaAI)"><rect width="250" height="250" style="fill:rgb(0,0,0)" fill-opacity="0"/><defs><filter id="iTmkcAVccMUU4hUgeTgbMGmbHN67spCn" x="-200%" y="-200%" width="400%" height="400%" filterUnits="objectBoundingBox" color-interpolation-filters="sRGB"><feOffset xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" dx="0" dy="3"/><feGaussianBlur xmlns="http://www.w3.org/2000/svg" stdDeviation="2.146804531419514" result="pf_100_offsetBlur"/><feComposite xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" in2="pf_100_offsetBlur" result="pf_100_inverse" operator="out"/><feFlood xmlns="http://www.w3.org/2000/svg" flood-color="#FFFFFF" flood-opacity="0.5" result="pf_100_color"/><feComposite xmlns="http://www.w3.org/2000/svg" in="pf_100_color" in2="pf_100_inverse" operator="in" result="pf_100_shadow"/><feComposite xmlns="http://www.w3.org/2000/svg" in="pf_100_shadow" in2="SourceGraphic" operator="over" result="_out_CNsltqqfCf30Oj6FOSlIWDEJNRlv6JTn"/><feOffset xmlns="http://www.w3.org/2000/svg" in="_out_CNsltqqfCf30Oj6FOSlIWDEJNRlv6JTn" dx="0" dy="-3"/><feGaussianBlur xmlns="http://www.w3.org/2000/svg" stdDeviation="2.146804531419514" result="pf_101_offsetBlur"/><feComposite xmlns="http://www.w3.org/2000/svg" in="_out_CNsltqqfCf30Oj6FOSlIWDEJNRlv6JTn" in2="pf_101_offsetBlur" result="pf_101_inverse" operator="out"/><feFlood xmlns="http://www.w3.org/2000/svg" flood-color="#000000" flood-opacity="0.5" result="pf_101_color"/><feComposite xmlns="http://www.w3.org/2000/svg" in="pf_101_color" in2="pf_101_inverse" operator="in" result="pf_101_shadow"/><feComposite xmlns="http://www.w3.org/2000/svg" in="pf_101_shadow" in2="_out_CNsltqqfCf30Oj6FOSlIWDEJNRlv6JTn" operator="over" result="_out_L1EYinKj8v6JxdOmZQsGWztvn86VKUMs"/><feMerge><feMergeNode in="_out_L1EYinKj8v6JxdOmZQsGWztvn86VKUMs"/></feMerge></filter></defs><g filter="url(#iTmkcAVccMUU4hUgeTgbMGmbHN67spCn)"><path d="M 15 0 L 235 0 C 243.279 0 250 6.721 250 15 L 250 235 C 250 243.279 243.279 250 235 250 L 15 250 C 6.721 250 0 243.279 0 235 L 0 15 C 0 6.721 6.721 0 15 0 Z" style="stroke:none;fill:#243742;stroke-miterlimit:10;"/></g><defs><filter id="FqYMU1EfKVNrvA77yugstR2NvAnWDSXy" x="-200%" y="-200%" width="400%" height="400%" filterUnits="objectBoundingBox" color-interpolation-filters="sRGB"><feGaussianBlur xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" stdDeviation="2.146804531419514"/><feOffset xmlns="http://www.w3.org/2000/svg" dx="-5" dy="5" result="pf_100_offsetBlur"/><feFlood xmlns="http://www.w3.org/2000/svg" flood-color="#000000" flood-opacity="0.5"/><feComposite xmlns="http://www.w3.org/2000/svg" in2="pf_100_offsetBlur" operator="in" result="pf_100_dropShadow"/><feBlend xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" in2="pf_100_dropShadow" mode="normal"/></filter></defs><g filter="url(#FqYMU1EfKVNrvA77yugstR2NvAnWDSXy)"><path d=" M 193.593 43.234 L 56.408 43.234 C 50.104 43.234 46.923 51.496 51.39 56.32 L 106.076 115.399 L 106.076 181.214 C 106.076 183.715 107.206 186.059 109.103 187.494 L 132.758 205.374 C 137.425 208.903 143.924 205.326 143.924 199.094 L 143.924 115.399 L 198.612 56.32 C 203.069 51.505 199.91 43.234 193.593 43.234 Z " fill="rgb(255,255,255)"/></g></g></svg>

129
muk_dbfilter/static/description/index.html

@ -0,0 +1,129 @@
<section class="oe_container">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan">MuK DB Filter</h2>
<h3 class="oe_slogan">Headers based Database Selection</h3>
<h4 class="oe_slogan" style="font-size: 23px;">MuK IT GmbH -
www.mukit.at</h4>
</div>
</section>
<section class="oe_container">
<div class="oe_row oe_spaced">
<div class="text-justify" style="max-width: 84%; margin: 16px 8%;">
<h3 class="oe_slogan">Overview</h3>
<p class="oe_mt32">
This module allows to add additional filter criteria to the
<code>dbfilter</code>
function using a request header. To pass a regular expression to the
filter set the
<code>X-Odoo-dbfilter</code>
header field on the request and make sure that Odoo runs with an
enabled proxy mode.
</p>
</div>
</div>
</section>
<section class="oe_container oe_dark">
<div class="oe_row oe_spaced">
<h3 class="oe_slogan">Our Services</h3>
<div
style="display: flex; padding-top: 20px; justify-content: space-between;">
<div style="flex-basis: 18%;">
<a href="https://mukit.at/r/MQ5" target="_blank">
<div
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;">
<img src="service_implementation.png"
style="width: 100%; border-radius: 100%;">
</div>
<h3 class="oe_slogan"
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;">
Odoo <br>Implementation
</h3>
</a>
</div>
<div style="flex-basis: 18%;">
<a href="https://mukit.at/r/u7c" target="_blank">
<div
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;">
<img src="service_integration.png"
style="width: 100%; border-radius: 100%;">
</div>
<h3 class="oe_slogan"
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;">
Odoo <br>Integration
</h3>
</a>
</div>
<div style="flex-basis: 18%;">
<a href="https://mukit.at/r/xDJ" target="_blank">
<div
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;">
<img src="service_customization.png"
style="width: 100%; border-radius: 100%;">
</div>
<h3 class="oe_slogan"
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;">
Odoo <br>Customization
</h3>
</a>
</div>
<div style="flex-basis: 18%;">
<a href=" https://mukit.at/r/J3A" target="_blank">
<div
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;">
<img src="service_development.png"
style="width: 100%; border-radius: 100%;">
</div>
<h3 class="oe_slogan"
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;">
Odoo <br>Development
</h3>
</a>
</div>
<div style="flex-basis: 18%;">
<a href=" https://mukit.at/r/R1v" target="_blank">
<div
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;">
<img src="service_support.png"
style="width: 100%; border-radius: 100%;">
</div>
<h3 class="oe_slogan"
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;">
Odoo <br>Support
</h3>
</a>
</div>
</div>
</div>
</section>
<section class="oe_container" style="padding: 32px 0;">
<div class="oe_row oe_spaced" style="margin: auto;">
<div class="oe_demo oe_picture oe_screenshot">
<a href="https://mukit.at/r/SgN" target="_blank"> <img
src="preview.png">
</a>
</div>
</div>
</section>
<section class="oe_container oe_dark">
<h3 class="oe_slogan">Help and Support</h3>
<h5 class="oe_slogan" style="font-size: 20px;">Feel free to
contact us, if you need any help with your Odoo integration or
addiontal features.</h5>
<div class="oe_slogan">
<a class="btn btn-primary btn-lg mt8" href="https://mukit.at"
target="_blank"> <i class="fa fa-globe"></i> Website
</a> <a class="btn btn-primary btn-lg mt8" href="mailto:sale@mukit.at">
<i class="fa fa-envelope"></i> Contact Us
</a> <a class="btn btn-primary btn-lg mt8"
href="https://github.com/muk-it" target="_blank"> <i
class="fa fa-github"></i> Issues
</a>
</div>
<img src="logo.png"
style="width: 200px; margin-bottom: 20px; display: block;"
class="mx-auto center-block">
</section>

BIN
muk_dbfilter/static/description/logo.png

After

Width: 500  |  Height: 500  |  Size: 37 KiB

BIN
muk_dbfilter/static/description/preview.png

After

Width: 1000  |  Height: 200  |  Size: 32 KiB

BIN
muk_dbfilter/static/description/service_customization.png

After

Width: 250  |  Height: 250  |  Size: 27 KiB

BIN
muk_dbfilter/static/description/service_development.png

After

Width: 250  |  Height: 250  |  Size: 28 KiB

BIN
muk_dbfilter/static/description/service_implementation.png

After

Width: 250  |  Height: 250  |  Size: 26 KiB

BIN
muk_dbfilter/static/description/service_integration.png

After

Width: 250  |  Height: 250  |  Size: 24 KiB

BIN
muk_dbfilter/static/description/service_support.png

After

Width: 250  |  Height: 250  |  Size: 24 KiB

Loading…
Cancel
Save