diff --git a/.gitignore b/.gitignore index d8d9b73..26a1b74 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,51 @@ -.project -.pydevproject -*.pyc -.settings/ -.idea \ No newline at end of file +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +bin/ +develop-eggs/ +dist/ +eggs/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg +*.eggs + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.cache +nosetests.xml +coverage.xml + +# Pycharm +.idea + +# Eclipse +.project +.pydevproject +.settings/ + +# Rope +.ropeproject + +# Sphinx documentation +docs/_build/ + +# Backup files +*~ +*.swp \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 1bc2005..0000000 --- a/.travis.yml +++ /dev/null @@ -1,36 +0,0 @@ -language: python - -python: - - "3.6" - -notifications: - email: false - -sudo: false -cache: pip - -addons: - postgresql: "9.6" - apt: - packages: - - expect-dev - - python3-lxml - - python3-simplejson - - python3-serial - -env: - global: - - VERSION="13.0" TESTS="1" LINT_CHECK="0" - matrix: - - TESTS="1" ODOO_REPO="odoo/odoo" MAKEPOT="1" - -install: - - git clone https://github.com/OCA/maintainer-quality-tools.git ${HOME}/maintainer-quality-tools - - export PATH=${HOME}/maintainer-quality-tools/travis:${PATH} - - travis_install_nightly - -script: - - travis_run_tests - -after_success: - - travis_after_tests_success diff --git a/README.md b/README.md index c418f86..236ec56 100644 --- a/README.md +++ b/README.md @@ -1,72 +1,64 @@ -[![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) -[![Build Status](https://travis-ci.org/muk-it/muk_base.svg?branch=13.0)](https://travis-ci.org/muk-it/muk_base) -[![codecov](https://codecov.io/gh/muk-it/muk_base/branch/13.0/graph/badge.svg)](https://codecov.io/gh/muk-it/muk_base) -[![Codacy Badge](https://api.codacy.com/project/badge/Grade/c867f25820614ed795e7567e37bd81c0)](https://www.codacy.com/app/keshrath/muk_base?utm_source=github.com&utm_medium=referral&utm_content=muk-it/muk_base&utm_campaign=Badge_Grade) -[![Weblate](https://weblate.mukit.at/widgets/base-13/-/svg-badge.svg)](https://weblate.mukit.at/projects/base-13/) -[![Demo](https://img.shields.io/badge/demo-Try%20me-243742.svg)](https://demo.mukit.at) - -# MuK Odoo Base Modules - -This set of modules offers mainly utility functions and libraries that are intended to be used in other projects. - -### 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]). - -To install our modules using the package manager make sure -[odoo-autodiscover] is installed correctly. Note that for Odoo version -11.0 and later this is not necessary anymore. 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 ` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -`odoo-addon-` - -**Example:** - -`sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo13-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. - -You can also view available Apps directly in our [repository] and find a -more detailed installation guide on our [website]. - -### 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 ` - -When the process is finished, restart your server and update the -application in Odoo, just like you would normally. - - [PyPI]: https://pypi.org/project/pip/ - [odoo-autodiscover]: https://pypi.org/project/odoo-autodiscover/ - [repository]: https://nexus.mukit.at/#browse/browse:odoo - [website]: https://mukit.at/page/open-source - [MuK IT]: https://www.mukit.at/ +[![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) +[![PyPI](https://img.shields.io/badge/Weblate-Install%20me-5d8da8.svg)](https://nexus.mukit.at/#browse/browse:odoo) +[![Weblate](https://img.shields.io/badge/Weblate-Translate%20me-0094E9.svg)](https://weblate.mukit.at) +[![Website](https://img.shields.io/badge/Website-Open%20me-243742.svg)](https://mukit.at/) + +# MuK Odoo Base Modules + +This set of modules offers mainly utility functions and libraries that are intended to be used in other projects. + +### 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]). 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 ` + +The module name consists of the Odoo version and the module name, where +underscores are replaced by a dash. + +**Module:** + +`odoo-addon-` + +**Example:** + +`sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo13-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. + +You can also view available Apps directly in our [repository] and find a +more detailed installation guide on our [website]. + +### 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 ` + +When the process is finished, restart your server and update the +application in Odoo, just like you would normally. + + [PyPI]: https://pypi.org/user/mukit/ + [repository]: https://nexus.mukit.at/#browse/browse:odoo + [website]: https://mukit.at/page/open-source diff --git a/muk_attachment_lobject/LICENSE b/muk_attachment_lobject/LICENSE deleted file mode 100644 index 0a04128..0000000 --- a/muk_attachment_lobject/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/muk_attachment_lobject/README.rst b/muk_attachment_lobject/README.rst deleted file mode 100644 index 890c940..0000000 --- a/muk_attachment_lobject/README.rst +++ /dev/null @@ -1,128 +0,0 @@ -============================ -MuK Large Objects Attachment -============================ - -Provides a new attachment location to save attachments as PostgreSQL large objects. -To enable the large object storage option change the `ir_attachment.location` -parameter to `lobject`. - -**Advantages over the in-database storage** - -* Better RAM efficiency (This is more important for large files than for small ones.) -* Possibility to easily dump the base without the large objects (This can be useful for reproducing bugs.) - -**Advantages over the file system storage** - -* Large objects are transactional (fully ACID) -* They work out of the box in multi-system setups (So there is no need for NFS or similar file sharing tools.) -* Enables you to easily create backups of the entire system - -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 `_). - -To install our modules using the package manager make sure -`odoo-autodiscover `_ is installed -correctly. Note that for Odoo version 11.0 and later this is not necessary anymore. -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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**Example:** - -``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo13-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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -For modules licensed under a proprietary license, you will receive the access data after you purchased -the module. If the purchase were made at the Odoo store please contact our `support `_ -with a confirmation of the 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 `` - -When the process is finished, restart your server and update the application in -Odoo, just like you would normally. - - -Configuration -============= - -The module has an init hook, which automatically stores all attachments in -large objects. To activate this hook the config parameter `auto_storage_migration` -has to be set to `true`. - -Usage -===== - -This module has no direct visible effect on the system. However, existing and -future attachments are stored as large objects. - -Credit -====== - -Contributors ------------- - -* Mathias Markl - -Images ------- - -Some pictures are based on or inspired by the icon set of Font Awesome: - -* `Font Awesome `_ - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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 `_ -or visit our `website `_. diff --git a/muk_attachment_lobject/__init__.py b/muk_attachment_lobject/__init__.py deleted file mode 100644 index 1151893..0000000 --- a/muk_attachment_lobject/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Attachment -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from odoo import SUPERUSER_ID, api -from odoo.tools import config - -from . import models - - -def _install_force_storage(cr, registry): - if config.get("auto_storage_migration", False): - env = api.Environment(cr, SUPERUSER_ID, {}) - params = env["ir.config_parameter"].sudo() - params.set_param("ir_attachment.location", "lobject") - env["ir.attachment"].sudo().force_storage() - - -def _uninstall_force_storage(cr, registry): - env = api.Environment(cr, SUPERUSER_ID, {}) - params = env["ir.config_parameter"].sudo() - location = params.get_param("ir_attachment.location") - if location == "lobject": - params.set_param("ir_attachment.location", "file") - env["ir.attachment"].sudo().force_storage() diff --git a/muk_attachment_lobject/__manifest__.py b/muk_attachment_lobject/__manifest__.py deleted file mode 100644 index badfb98..0000000 --- a/muk_attachment_lobject/__manifest__.py +++ /dev/null @@ -1,41 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Attachment -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -{ - "name": "MuK Large Objects Attachment", - "summary": """Large Objects Attachment Location""", - "version": "13.0.1.0.1", - "category": "Extra Tools", - "license": "LGPL-3", - "website": "http://www.mukit.at", - "live_test_url": "https://mukit.at/r/SgN", - "author": "MuK IT", - "contributors": ["Mathias Markl "], - "depends": ["muk_fields_lobject"], - "data": ["views/ir_attachment.xml"], - "images": ["static/description/banner.png"], - "application": False, - "installable": True, - "auto_install": False, - "post_init_hook": "_install_force_storage", - "uninstall_hook": "_uninstall_force_storage", -} diff --git a/muk_attachment_lobject/doc/changelog.rst b/muk_attachment_lobject/doc/changelog.rst deleted file mode 100644 index ea96db5..0000000 --- a/muk_attachment_lobject/doc/changelog.rst +++ /dev/null @@ -1,14 +0,0 @@ -`2.1.0` -------- - -- Added Auto Migration - -`2.0.0` -------- - -- Migrated to Python 3 - -`1.0.0` -------- - -- Init version diff --git a/muk_attachment_lobject/doc/index.rst b/muk_attachment_lobject/doc/index.rst deleted file mode 100644 index 890c940..0000000 --- a/muk_attachment_lobject/doc/index.rst +++ /dev/null @@ -1,128 +0,0 @@ -============================ -MuK Large Objects Attachment -============================ - -Provides a new attachment location to save attachments as PostgreSQL large objects. -To enable the large object storage option change the `ir_attachment.location` -parameter to `lobject`. - -**Advantages over the in-database storage** - -* Better RAM efficiency (This is more important for large files than for small ones.) -* Possibility to easily dump the base without the large objects (This can be useful for reproducing bugs.) - -**Advantages over the file system storage** - -* Large objects are transactional (fully ACID) -* They work out of the box in multi-system setups (So there is no need for NFS or similar file sharing tools.) -* Enables you to easily create backups of the entire system - -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 `_). - -To install our modules using the package manager make sure -`odoo-autodiscover `_ is installed -correctly. Note that for Odoo version 11.0 and later this is not necessary anymore. -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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**Example:** - -``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo13-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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -For modules licensed under a proprietary license, you will receive the access data after you purchased -the module. If the purchase were made at the Odoo store please contact our `support `_ -with a confirmation of the 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 `` - -When the process is finished, restart your server and update the application in -Odoo, just like you would normally. - - -Configuration -============= - -The module has an init hook, which automatically stores all attachments in -large objects. To activate this hook the config parameter `auto_storage_migration` -has to be set to `true`. - -Usage -===== - -This module has no direct visible effect on the system. However, existing and -future attachments are stored as large objects. - -Credit -====== - -Contributors ------------- - -* Mathias Markl - -Images ------- - -Some pictures are based on or inspired by the icon set of Font Awesome: - -* `Font Awesome `_ - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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 `_ -or visit our `website `_. diff --git a/muk_attachment_lobject/i18n/ar.po b/muk_attachment_lobject/i18n/ar.po deleted file mode 100644 index e1e7fb4..0000000 --- a/muk_attachment_lobject/i18n/ar.po +++ /dev/null @@ -1,37 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_attachment_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:24+0000\n" -"PO-Revision-Date: 2019-07-12 23:24+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_attachment_lobject -#: model:ir.model,name:muk_attachment_lobject.model_ir_attachment -msgid "Attachment" -msgstr "مرفق" - -#. module: muk_attachment_lobject -#: model:ir.model.fields,field_description:muk_attachment_lobject.field_ir_attachment__store_lobject -msgid "Data" -msgstr "" - -#. module: muk_attachment_lobject -#: code:addons/muk_attachment_lobject/models/ir_attachment.py:68 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_attachment_lobject -#: model_terms:ir.ui.view,arch_db:muk_attachment_lobject.view_attachment_form -msgid "Storage" -msgstr "" diff --git a/muk_attachment_lobject/i18n/de.po b/muk_attachment_lobject/i18n/de.po deleted file mode 100644 index c7a7236..0000000 --- a/muk_attachment_lobject/i18n/de.po +++ /dev/null @@ -1,37 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_attachment_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:24+0000\n" -"PO-Revision-Date: 2019-07-12 23:24+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_attachment_lobject -#: model:ir.model,name:muk_attachment_lobject.model_ir_attachment -msgid "Attachment" -msgstr "Dateianhang" - -#. module: muk_attachment_lobject -#: model:ir.model.fields,field_description:muk_attachment_lobject.field_ir_attachment__store_lobject -msgid "Data" -msgstr "Daten" - -#. module: muk_attachment_lobject -#: code:addons/muk_attachment_lobject/models/ir_attachment.py:68 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_attachment_lobject -#: model_terms:ir.ui.view,arch_db:muk_attachment_lobject.view_attachment_form -msgid "Storage" -msgstr "Speicher" diff --git a/muk_attachment_lobject/i18n/es.po b/muk_attachment_lobject/i18n/es.po deleted file mode 100644 index 0682762..0000000 --- a/muk_attachment_lobject/i18n/es.po +++ /dev/null @@ -1,37 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_attachment_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:25+0000\n" -"PO-Revision-Date: 2019-07-12 23:25+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_attachment_lobject -#: model:ir.model,name:muk_attachment_lobject.model_ir_attachment -msgid "Attachment" -msgstr "Adjunto" - -#. module: muk_attachment_lobject -#: model:ir.model.fields,field_description:muk_attachment_lobject.field_ir_attachment__store_lobject -msgid "Data" -msgstr "" - -#. module: muk_attachment_lobject -#: code:addons/muk_attachment_lobject/models/ir_attachment.py:68 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_attachment_lobject -#: model_terms:ir.ui.view,arch_db:muk_attachment_lobject.view_attachment_form -msgid "Storage" -msgstr "" diff --git a/muk_attachment_lobject/i18n/fr.po b/muk_attachment_lobject/i18n/fr.po deleted file mode 100644 index 6297796..0000000 --- a/muk_attachment_lobject/i18n/fr.po +++ /dev/null @@ -1,37 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_attachment_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:25+0000\n" -"PO-Revision-Date: 2019-07-12 23:25+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_attachment_lobject -#: model:ir.model,name:muk_attachment_lobject.model_ir_attachment -msgid "Attachment" -msgstr "Pièce jointe" - -#. module: muk_attachment_lobject -#: model:ir.model.fields,field_description:muk_attachment_lobject.field_ir_attachment__store_lobject -msgid "Data" -msgstr "" - -#. module: muk_attachment_lobject -#: code:addons/muk_attachment_lobject/models/ir_attachment.py:68 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_attachment_lobject -#: model_terms:ir.ui.view,arch_db:muk_attachment_lobject.view_attachment_form -msgid "Storage" -msgstr "" diff --git a/muk_attachment_lobject/i18n/hi.po b/muk_attachment_lobject/i18n/hi.po deleted file mode 100644 index 0dfa14c..0000000 --- a/muk_attachment_lobject/i18n/hi.po +++ /dev/null @@ -1,37 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_attachment_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:25+0000\n" -"PO-Revision-Date: 2019-07-12 23:25+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_attachment_lobject -#: model:ir.model,name:muk_attachment_lobject.model_ir_attachment -msgid "Attachment" -msgstr "" - -#. module: muk_attachment_lobject -#: model:ir.model.fields,field_description:muk_attachment_lobject.field_ir_attachment__store_lobject -msgid "Data" -msgstr "" - -#. module: muk_attachment_lobject -#: code:addons/muk_attachment_lobject/models/ir_attachment.py:68 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_attachment_lobject -#: model_terms:ir.ui.view,arch_db:muk_attachment_lobject.view_attachment_form -msgid "Storage" -msgstr "" diff --git a/muk_attachment_lobject/i18n/muk_attachment_lobject.pot b/muk_attachment_lobject/i18n/muk_attachment_lobject.pot deleted file mode 100644 index 0b5464e..0000000 --- a/muk_attachment_lobject/i18n/muk_attachment_lobject.pot +++ /dev/null @@ -1,37 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_attachment_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:24+0000\n" -"PO-Revision-Date: 2019-07-12 23:24+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_attachment_lobject -#: model:ir.model,name:muk_attachment_lobject.model_ir_attachment -msgid "Attachment" -msgstr "" - -#. module: muk_attachment_lobject -#: model:ir.model.fields,field_description:muk_attachment_lobject.field_ir_attachment__store_lobject -msgid "Data" -msgstr "" - -#. module: muk_attachment_lobject -#: code:addons/muk_attachment_lobject/models/ir_attachment.py:68 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_attachment_lobject -#: model_terms:ir.ui.view,arch_db:muk_attachment_lobject.view_attachment_form -msgid "Storage" -msgstr "" diff --git a/muk_attachment_lobject/i18n/nl.po b/muk_attachment_lobject/i18n/nl.po deleted file mode 100644 index 01a7861..0000000 --- a/muk_attachment_lobject/i18n/nl.po +++ /dev/null @@ -1,37 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_attachment_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:25+0000\n" -"PO-Revision-Date: 2019-07-12 23:25+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_attachment_lobject -#: model:ir.model,name:muk_attachment_lobject.model_ir_attachment -msgid "Attachment" -msgstr "Bijlage" - -#. module: muk_attachment_lobject -#: model:ir.model.fields,field_description:muk_attachment_lobject.field_ir_attachment__store_lobject -msgid "Data" -msgstr "" - -#. module: muk_attachment_lobject -#: code:addons/muk_attachment_lobject/models/ir_attachment.py:68 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_attachment_lobject -#: model_terms:ir.ui.view,arch_db:muk_attachment_lobject.view_attachment_form -msgid "Storage" -msgstr "" diff --git a/muk_attachment_lobject/i18n/pt.po b/muk_attachment_lobject/i18n/pt.po deleted file mode 100644 index 7afd8ba..0000000 --- a/muk_attachment_lobject/i18n/pt.po +++ /dev/null @@ -1,37 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_attachment_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:26+0000\n" -"PO-Revision-Date: 2019-07-12 23:26+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_attachment_lobject -#: model:ir.model,name:muk_attachment_lobject.model_ir_attachment -msgid "Attachment" -msgstr "Anexo" - -#. module: muk_attachment_lobject -#: model:ir.model.fields,field_description:muk_attachment_lobject.field_ir_attachment__store_lobject -msgid "Data" -msgstr "" - -#. module: muk_attachment_lobject -#: code:addons/muk_attachment_lobject/models/ir_attachment.py:68 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_attachment_lobject -#: model_terms:ir.ui.view,arch_db:muk_attachment_lobject.view_attachment_form -msgid "Storage" -msgstr "" diff --git a/muk_attachment_lobject/i18n/ru.po b/muk_attachment_lobject/i18n/ru.po deleted file mode 100644 index fb1e908..0000000 --- a/muk_attachment_lobject/i18n/ru.po +++ /dev/null @@ -1,37 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_attachment_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:26+0000\n" -"PO-Revision-Date: 2019-07-12 23:26+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_attachment_lobject -#: model:ir.model,name:muk_attachment_lobject.model_ir_attachment -msgid "Attachment" -msgstr "Приложение" - -#. module: muk_attachment_lobject -#: model:ir.model.fields,field_description:muk_attachment_lobject.field_ir_attachment__store_lobject -msgid "Data" -msgstr "" - -#. module: muk_attachment_lobject -#: code:addons/muk_attachment_lobject/models/ir_attachment.py:68 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_attachment_lobject -#: model_terms:ir.ui.view,arch_db:muk_attachment_lobject.view_attachment_form -msgid "Storage" -msgstr "" diff --git a/muk_attachment_lobject/models/__init__.py b/muk_attachment_lobject/models/__init__.py deleted file mode 100644 index 78fcd8a..0000000 --- a/muk_attachment_lobject/models/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Attachment -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import ir_attachment diff --git a/muk_attachment_lobject/models/ir_attachment.py b/muk_attachment_lobject/models/ir_attachment.py deleted file mode 100644 index 74a95fe..0000000 --- a/muk_attachment_lobject/models/ir_attachment.py +++ /dev/null @@ -1,98 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Attachment -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import base64 -import logging - -from odoo import api, models -from odoo.addons.muk_fields_lobject.fields.lobject import LargeObject - -_logger = logging.getLogger(__name__) - - -class LObjectIrAttachment(models.Model): - - _inherit = "ir.attachment" - - # ---------------------------------------------------------- - # Database - # ---------------------------------------------------------- - - store_lobject = LargeObject(string="Data") - - # ---------------------------------------------------------- - # Helper - # ---------------------------------------------------------- - - @api.model - def _get_storage_domain(self, storage): - if storage == "lobject": - return [("store_lobject", "=", False)] - return super(LObjectIrAttachment, self)._get_storage_domain(storage) - - # ---------------------------------------------------------- - # Function - # ---------------------------------------------------------- - - @api.model - def storage_locations(self): - locations = super(LObjectIrAttachment, self).storage_locations() - locations.append("lobject") - return locations - - # ---------------------------------------------------------- - # Read - # ---------------------------------------------------------- - - @api.depends("store_lobject") - def _compute_datas(self): - bin_size = self._context.get("bin_size") - for attach in self: - if attach.store_lobject: - if bin_size: - attach.datas = attach.with_context( - {"human_size": True} - ).store_lobject - else: - attach.datas = attach.with_context({"base64": True}).store_lobject - else: - super(LObjectIrAttachment, attach)._compute_datas() - - # ---------------------------------------------------------- - # Create, Write, Delete - # ---------------------------------------------------------- - - def _get_datas_related_values(self, data, mimetype): - if self._storage() == "lobject": - bin_data = base64.b64decode(data) if data else b"" - values = { - "file_size": len(bin_data), - "checksum": self._compute_checksum(bin_data), - "index_content": self._index(bin_data, mimetype), - "store_lobject": bin_data, - "store_fname": False, - "db_datas": False, - } - return values - return super(LObjectIrAttachment, self)._get_datas_related_values( - data, mimetype - ) diff --git a/muk_attachment_lobject/static/description/banner.png b/muk_attachment_lobject/static/description/banner.png deleted file mode 100644 index 4c36d0c..0000000 Binary files a/muk_attachment_lobject/static/description/banner.png and /dev/null differ diff --git a/muk_attachment_lobject/static/description/icon.png b/muk_attachment_lobject/static/description/icon.png deleted file mode 100644 index 8425938..0000000 Binary files a/muk_attachment_lobject/static/description/icon.png and /dev/null differ diff --git a/muk_attachment_lobject/static/description/icon.svg b/muk_attachment_lobject/static/description/icon.svg deleted file mode 100644 index c92a352..0000000 --- a/muk_attachment_lobject/static/description/icon.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/muk_attachment_lobject/static/description/index.html b/muk_attachment_lobject/static/description/index.html deleted file mode 100644 index 4634af9..0000000 --- a/muk_attachment_lobject/static/description/index.html +++ /dev/null @@ -1,197 +0,0 @@ -
-
-

MuK Large Objects Attachment

-

Large Objects Attachment Location

-

- MuK IT GmbH - www.mukit.at -

-
-
- -
-
-
-

Overview

-
-

- Provides a new attachment location to save attachment as large - objects. To enable the large object storage option change the - ir_attachment.location - parameter to - lobject - . -

-
- Advantages over the in-database storage -
-
    -
  • - Better RAM efficiency (This is more important for large files than - for small ones.) -
  • -
  • - Possibility to easily dump the base without the large objects (This - can be useful for reproducing bugs.) -
  • -
-
- Advantages over the file system storage -
-
    -
  • Large objects are transactional (fully ACID)
  • -
  • - They work out of the box in multi-system setups (So there is no need - for NFS or similar file sharing tools.) -
  • -
  • Enables you to easily create backups of the entire system
  • -
-
-
-
-
- -
- -
- -
-
-
- - - -
-
-
- -
-

Help and Support

-
- Feel free to contact us, if you need any help with your Odoo integration or - addiontal features. -
- - -
diff --git a/muk_attachment_lobject/static/description/logo.png b/muk_attachment_lobject/static/description/logo.png deleted file mode 100644 index 9427ce3..0000000 Binary files a/muk_attachment_lobject/static/description/logo.png and /dev/null differ diff --git a/muk_attachment_lobject/static/description/preview.png b/muk_attachment_lobject/static/description/preview.png deleted file mode 100644 index 1deb1cc..0000000 Binary files a/muk_attachment_lobject/static/description/preview.png and /dev/null differ diff --git a/muk_attachment_lobject/static/description/service_customization.png b/muk_attachment_lobject/static/description/service_customization.png deleted file mode 100644 index 3eac664..0000000 Binary files a/muk_attachment_lobject/static/description/service_customization.png and /dev/null differ diff --git a/muk_attachment_lobject/static/description/service_development.png b/muk_attachment_lobject/static/description/service_development.png deleted file mode 100644 index 580d460..0000000 Binary files a/muk_attachment_lobject/static/description/service_development.png and /dev/null differ diff --git a/muk_attachment_lobject/static/description/service_implementation.png b/muk_attachment_lobject/static/description/service_implementation.png deleted file mode 100644 index d64b66b..0000000 Binary files a/muk_attachment_lobject/static/description/service_implementation.png and /dev/null differ diff --git a/muk_attachment_lobject/static/description/service_integration.png b/muk_attachment_lobject/static/description/service_integration.png deleted file mode 100644 index 76c5e80..0000000 Binary files a/muk_attachment_lobject/static/description/service_integration.png and /dev/null differ diff --git a/muk_attachment_lobject/static/description/service_support.png b/muk_attachment_lobject/static/description/service_support.png deleted file mode 100644 index 4c530fa..0000000 Binary files a/muk_attachment_lobject/static/description/service_support.png and /dev/null differ diff --git a/muk_attachment_lobject/tests/__init__.py b/muk_attachment_lobject/tests/__init__.py deleted file mode 100644 index 9a737ca..0000000 --- a/muk_attachment_lobject/tests/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Attachment -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import test_attachment, test_download diff --git a/muk_attachment_lobject/tests/test_attachment.py b/muk_attachment_lobject/tests/test_attachment.py deleted file mode 100644 index 514aacd..0000000 --- a/muk_attachment_lobject/tests/test_attachment.py +++ /dev/null @@ -1,65 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Attachment -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import base64 -import logging -import unittest - -from odoo.tests import common - -_logger = logging.getLogger(__name__) - - -class AttachmentTestCase(common.HttpCase): - def setUp(self): - super(AttachmentTestCase, self).setUp() - self.attachment = self.env["ir.attachment"].sudo() - self.params = self.env["ir.config_parameter"].sudo() - self.location = self.params.get_param("ir_attachment.location") - self.params.set_param("ir_attachment.location", "lobject") - - def tearDown(self): - self.params.set_param("ir_attachment.location", self.location) - super(AttachmentTestCase, self).tearDown() - - def test_attachment(self): - attach = self.attachment.create( - {"name": "Test", "datas": base64.b64encode(b"\xff data")} - ) - self.assertTrue(attach.datas) - self.assertTrue(attach.store_lobject) - self.assertTrue(attach.with_context({"bin_size": True}).datas) - self.assertTrue(attach.with_context({"bin_size": True}).store_lobject) - self.assertTrue(attach.with_context({"human_size": True}).store_lobject) - self.assertTrue(attach.with_context({"base64": True}).store_lobject) - self.assertTrue(attach.with_context({"stream": True}).store_lobject) - oid = attach.with_context({"oid": True}).store_lobject - self.assertTrue(oid) - attach.write({"datas": base64.b64encode(b"\xff data")}) - self.assertTrue(oid != attach.with_context({"oid": True}).store_lobject) - self.assertTrue(attach.export_data(["datas"])) - self.assertTrue(attach.export_data(["datas"], raw_data=True)) - attach.unlink() - - @unittest.skip("The test takes a long time and is therefore skipped by default.") - def test_migration(self): - self.attachment.force_storage() diff --git a/muk_attachment_lobject/tests/test_download.py b/muk_attachment_lobject/tests/test_download.py deleted file mode 100644 index 31f05ec..0000000 --- a/muk_attachment_lobject/tests/test_download.py +++ /dev/null @@ -1,61 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Attachment -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import base64 -import logging -import os - -from odoo.tests import common - -_path = os.path.dirname(os.path.dirname(__file__)) -_logger = logging.getLogger(__name__) - - -class DownloadTestCase(common.HttpCase): - def setUp(self): - super(DownloadTestCase, self).setUp() - self.attachment = self.env["ir.attachment"].sudo() - self.params = self.env["ir.config_parameter"].sudo() - self.location = self.params.get_param("ir_attachment.location") - self.params.set_param("ir_attachment.location", "lobject") - - def tearDown(self): - self.params.set_param("ir_attachment.location", self.location) - super(DownloadTestCase, self).tearDown() - - def test_attachment_download(self): - self.authenticate("admin", "admin") - attach_01 = self.attachment.create( - {"name": "Test_01", "datas": base64.b64encode(b"\xff data")} - ) - attach_02 = self.attachment.create({"name": "Test_02"}) - self.assertTrue(attach_01.datas) - self.assertFalse(attach_02.datas) - data = { - "model": "ir.attachment", - "field": "store_lobject", - "filename_field": "datas_fname", - } - data.update({"id": attach_01.id}) - self.assertTrue(self.url_open("/binary/content", data=data)) - data.update({"id": attach_02.id}) - self.assertTrue(self.url_open("/binary/content", data=data)) diff --git a/muk_attachment_lobject/views/ir_attachment.xml b/muk_attachment_lobject/views/ir_attachment.xml deleted file mode 100644 index a013481..0000000 --- a/muk_attachment_lobject/views/ir_attachment.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - ir_attachment.form - ir.attachment - - - - - - - - - - - diff --git a/muk_autovacuum/LICENSE b/muk_autovacuum/LICENSE deleted file mode 100644 index 153d416..0000000 --- a/muk_autovacuum/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. \ No newline at end of file diff --git a/muk_autovacuum/README.rst b/muk_autovacuum/README.rst deleted file mode 100644 index d81dcd9..0000000 --- a/muk_autovacuum/README.rst +++ /dev/null @@ -1,120 +0,0 @@ -============== -MuK Autovacuum -============== - -Allows the administrator to create rules to automatically garbage collect -a certain model. Every rule can have a different time interval additional -constraints. An extra constraint can be for example to only delete inactive -records. - -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 `_). - -To install our modules using the package manager make sure -`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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -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 `_ 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 `` - -When the process is finished, restart your server and update the application in -Odoo, just like you would normally. - -Configuration -============= - -To configure this module, you need to: - -#. Go to *Settings* while being in debug mode. -#. Afterwards go to *Technical -> Automation -> Auto Vacuum Rules*. -#. And create a new rule. - -Usage -============= - -This module has no direct visible effect on the system. The garbage collections -happens during the autovacuum cron job. - -Credits -======= - -Contributors ------------- - -* Mathias Markl - -Images ------------- - -Some pictures are based on or inspired by the icon set of Font Awesome: - -* `Font Awesome `_ - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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). diff --git a/muk_autovacuum/__init__.py b/muk_autovacuum/__init__.py deleted file mode 100644 index 57c50e8..0000000 --- a/muk_autovacuum/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Autovacuum -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import models diff --git a/muk_autovacuum/__manifest__.py b/muk_autovacuum/__manifest__.py deleted file mode 100644 index 1a997b0..0000000 --- a/muk_autovacuum/__manifest__.py +++ /dev/null @@ -1,56 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Autovacuum -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -{ - 'name': 'MuK Autovacuum', - 'summary': 'Configure automatic garbage collection', - 'version': '13.0.3.0.1', - 'category': 'Extra Tools', - 'license': 'LGPL-3', - 'author': 'MuK IT', - 'website': 'https://www.mukit.at', - 'live_test_url': 'https://mukit.at/r/SgN', - 'contributors': [ - 'Mathias Markl ', - ], - 'depends': [ - 'muk_utils', - ], - 'data': [ - 'security/ir.model.access.csv', - 'views/rules.xml', - 'data/rules.xml', - ], - 'qweb': [ - 'static/src/xml/*.xml', - ], - 'images': [ - 'static/description/banner.png' - ], - 'external_dependencies': { - 'python': [], - 'bin': [], - }, - 'application': False, - 'installable': True, - 'auto_install': False, -} \ No newline at end of file diff --git a/muk_autovacuum/data/rules.xml b/muk_autovacuum/data/rules.xml deleted file mode 100644 index c2cea2d..0000000 --- a/muk_autovacuum/data/rules.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - Delete Logs after 2 Weeks - - - - time - weeks - 2 - - - - \ No newline at end of file diff --git a/muk_autovacuum/doc/changelog.rst b/muk_autovacuum/doc/changelog.rst deleted file mode 100644 index 75ffd70..0000000 --- a/muk_autovacuum/doc/changelog.rst +++ /dev/null @@ -1,20 +0,0 @@ -`2.1.0` -------- - -- Added Python Expressions - -`2.0.0` -------- - -- Migrated to Python 3 - -`1.1.0` -------- - -- Add field selector - - -`1.0.0` -------- - -- Init version diff --git a/muk_autovacuum/doc/index.rst b/muk_autovacuum/doc/index.rst deleted file mode 100644 index d81dcd9..0000000 --- a/muk_autovacuum/doc/index.rst +++ /dev/null @@ -1,120 +0,0 @@ -============== -MuK Autovacuum -============== - -Allows the administrator to create rules to automatically garbage collect -a certain model. Every rule can have a different time interval additional -constraints. An extra constraint can be for example to only delete inactive -records. - -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 `_). - -To install our modules using the package manager make sure -`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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -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 `_ 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 `` - -When the process is finished, restart your server and update the application in -Odoo, just like you would normally. - -Configuration -============= - -To configure this module, you need to: - -#. Go to *Settings* while being in debug mode. -#. Afterwards go to *Technical -> Automation -> Auto Vacuum Rules*. -#. And create a new rule. - -Usage -============= - -This module has no direct visible effect on the system. The garbage collections -happens during the autovacuum cron job. - -Credits -======= - -Contributors ------------- - -* Mathias Markl - -Images ------------- - -Some pictures are based on or inspired by the icon set of Font Awesome: - -* `Font Awesome `_ - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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). diff --git a/muk_autovacuum/i18n/ar.po b/muk_autovacuum/i18n/ar.po deleted file mode 100644 index b23e933..0000000 --- a/muk_autovacuum/i18n/ar.po +++ /dev/null @@ -1,402 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_autovacuum -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:43+0000\n" -"PO-Revision-Date: 2019-07-12 23:43+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Warning: Warning Exception to use with raise" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "b64encode, b64decode: Base64 converter" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "date_format, datetime_format: server date and time formats" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "env: Odoo Environment on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "logger.info(message): Python logging framework" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "model: Odoo Model of the record on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "time, datetime, dateutil, timezone: useful Python libraries" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "uid, user: User on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__active -msgid "Active" -msgstr "نشط" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "All" -msgstr "الكل" - -#. module: muk_autovacuum -#: model:ir.actions.act_window,name:muk_autovacuum.action_autovacuum_rule -#: model:ir.model,name:muk_autovacuum.model_muk_autovacuum_rules -#: model:ir.ui.menu,name:muk_autovacuum.menu_autovacuum_rules -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_tree -msgid "Auto Vacuum Rules" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model,name:muk_autovacuum.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "تفريغ تلقائي" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Code Based" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Code Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code which will be executed during the clean up." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_uid -msgid "Created by" -msgstr "أنشئ بواسطة" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_date -msgid "Created on" -msgstr "أنشئ في" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Days" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Delete all records which match the domain." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Delete older data than x." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Delete records with am index greater than x." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__display_name -msgid "Display Name" -msgstr "اسم العرض" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Do not delete starred records.\n" -" Checks for the following fields:\n" -" - starred\n" -" - favorite\n" -" - is_starred\n" -" - is_favorite" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Domain" -msgstr "النطاق" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Domain Based" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Domain Settings" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Enter Python code here. Help about Python expression is available in the help tab of this document." -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,size_type:0 -msgid "Fixed Value" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:64 -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:74 -#, python-format -msgid "GC domain: %s" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:71 -#, python-format -msgid "GC domain: [] order: %s limit: %s" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:87 -#, python-format -msgid "GC'd %s %s records" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:83 -#, python-format -msgid "GC'd %s attachments from %s entries" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Group By" -msgstr "تجميع حسب" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help" -msgstr "المساعدة" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help with Python expressions" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Hours" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__id -msgid "ID" -msgstr "المعرف" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:290 -#, python-format -msgid "Import Template for Auto Vacuum Rules" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules____last_update -msgid "Last Modified on" -msgstr "آخر تعديل في" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_uid -msgid "Last Updated by" -msgstr "آخر تحديث بواسطة" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_date -msgid "Last Updated on" -msgstr "آخر تحديث في" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Minutes" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Model" -msgstr "النموذج" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model_name -msgid "Model Name" -msgstr "إسم النموذج" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__model -msgid "Model on which the rule is applied." -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Months" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__name -msgid "Name" -msgstr "الاسم" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only Archived" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only Attachments" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only delete archived records." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only delete record attachments." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Order by which the index is defined." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Protect Starred" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__state -msgid "Rule Type" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:330 -#, python-format -msgid "Rule validation has failed!" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__sequence -msgid "Sequence" -msgstr "التسلسل" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size -msgid "Size" -msgstr "الحجم" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Size Based" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Size Order" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Size Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_type -msgid "Size Type" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Size Value" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter -#: selection:muk_autovacuum.rules,size_type:0 -msgid "System Parameter" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Time" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Time Based" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_field -msgid "Time Field" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Time Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_type -msgid "Time Unit" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Various fields may use Python code or Python expressions. The following variables can be used:" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Weeks" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Years" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "e.g. Delete Logs after 30 Days" -msgstr "" - diff --git a/muk_autovacuum/i18n/de.po b/muk_autovacuum/i18n/de.po deleted file mode 100644 index cf9d8de..0000000 --- a/muk_autovacuum/i18n/de.po +++ /dev/null @@ -1,408 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_autovacuum -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:43+0000\n" -"PO-Revision-Date: 2019-07-12 23:43+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Warning: Warning Exception to use with raise" -msgstr "Warnung: Warnausnahme, die bei einer Erhöhung Anwendung findet" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "b64encode, b64decode: Base64 converter" -msgstr "b64encode, b64decode: Base64 Converter" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "date_format, datetime_format: server date and time formats" -msgstr "date_format, datetime_format: Serverdatum und Zeitformate" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "env: Odoo Environment on which the rule is triggered" -msgstr "env: Odoo Umgebung in welcher die Regel angewendet wird" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "logger.info(message): Python logging framework" -msgstr "logger.info(message): Python-Protokollierungs-Framework" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "model: Odoo Model of the record on which the rule is triggered" -msgstr "model: Odoo Modell des Datensatzes, auf dem die Regel angewendet wird" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "time, datetime, dateutil, timezone: useful Python libraries" -msgstr "time, datetime, dateutil, timezone: nützliche Python-Bibliotheken" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "uid, user: User on which the rule is triggered" -msgstr "uid, Benutzer: Benutzer an dem die Regel angewendet wird" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__active -msgid "Active" -msgstr "Aktiv" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "All" -msgstr "Alle" - -#. module: muk_autovacuum -#: model:ir.actions.act_window,name:muk_autovacuum.action_autovacuum_rule -#: model:ir.model,name:muk_autovacuum.model_muk_autovacuum_rules -#: model:ir.ui.menu,name:muk_autovacuum.menu_autovacuum_rules -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_tree -msgid "Auto Vacuum Rules" -msgstr "Auto Vacuum Regeln" - -#. module: muk_autovacuum -#: model:ir.model,name:muk_autovacuum.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "Automatisch aufräumen" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Code Based" -msgstr "Codebasiert" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Code Settings" -msgstr "Codeeinstellungen" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code which will be executed during the clean up." -msgstr "Code, der während der Bereinigung ausgeführt wird." - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_uid -msgid "Created by" -msgstr "Erstellt von" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_date -msgid "Created on" -msgstr "Erstellt am" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Days" -msgstr "Tage" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Delete all records which match the domain." -msgstr "Löschen Sie alle Datensätze, die mit der Domäne übereinstimmen." - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Delete older data than x." -msgstr "Ältere Daten als x löschen." - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Delete records with am index greater than x." -msgstr "Datensätze mit einem Index größer als x löschen." - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__display_name -msgid "Display Name" -msgstr "Anzeigename" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Do not delete starred records.\n" -" Checks for the following fields:\n" -" - starred\n" -" - favorite\n" -" - is_starred\n" -" - is_favorite" -msgstr "Löscht keine markierten Datensätze.\n" -" Überprüft die folgenden Felder:\n" -" - mit Sternen übersät\n" -" - starred\n" -" - favorite\n" -" - is_starred\n" -" - is_favorite" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Domain" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Domain Based" -msgstr "Domainenbasiert" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Domain Settings" -msgstr "Domaineinstellungen" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Enter Python code here. Help about Python expression is available in the help tab of this document." -msgstr "Geben Sie Pyhton-Code hier ein. Hife zu Python-Ausdrücken ist in der Hilfe-Registerkarte dieses Dokuments verfügbar." - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,size_type:0 -msgid "Fixed Value" -msgstr "Fixpunktwert" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:64 -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:74 -#, python-format -msgid "GC domain: %s" -msgstr "GC Domain: %s" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:71 -#, python-format -msgid "GC domain: [] order: %s limit: %s" -msgstr "GC Domain: [] order: %s limit: %s" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:87 -#, python-format -msgid "GC'd %s %s records" -msgstr "GC'd %s %s Aufnahmen" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:83 -#, python-format -msgid "GC'd %s attachments from %s entries" -msgstr "GC'd %s Anhänge aus %s Einträgen" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Group By" -msgstr "Gruppieren nach" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help" -msgstr "Hilfe" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help with Python expressions" -msgstr "Hilfe mit Python-Ausdrücken" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Hours" -msgstr "Stunden" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__id -msgid "ID" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:290 -#, python-format -msgid "Import Template for Auto Vacuum Rules" -msgstr "Importvorlage für die automatischen Aufräumregeln" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules____last_update -msgid "Last Modified on" -msgstr "Zuletzt geändert am" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_uid -msgid "Last Updated by" -msgstr "Zuletzt aktualisiert durch" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_date -msgid "Last Updated on" -msgstr "Zuletzt aktualisiert am" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Minutes" -msgstr "Minuten" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Model" -msgstr "Modell" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model_name -msgid "Model Name" -msgstr "Modellname" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__model -msgid "Model on which the rule is applied." -msgstr "Modell, auf das die Regel angewendet wird." - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Months" -msgstr "Monate" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__name -msgid "Name" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only Archived" -msgstr "Nur Archiviert" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only Attachments" -msgstr "Nur Anhänge" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only delete archived records." -msgstr "Löschen Sie nur archivierte Sätze." - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only delete record attachments." -msgstr "Löschen Sie nur Datensatzanhänge." - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Order by which the index is defined." -msgstr "Reihenfolge, in der der Index definiert ist." - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Protect Starred" -msgstr "Schützt Favoriten" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__state -msgid "Rule Type" -msgstr "Regeltyp" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:330 -#, python-format -msgid "Rule validation has failed!" -msgstr "Die Regelvalidierung ist fehlgeschlagen!" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__sequence -msgid "Sequence" -msgstr "Nummernfolge" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size -msgid "Size" -msgstr "Größe" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Size Based" -msgstr "Größenbasierend" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Size Order" -msgstr "Größensortierung" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Size Settings" -msgstr "Größeneinstellung" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_type -msgid "Size Type" -msgstr "Größe Typ" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Size Value" -msgstr "Größenwert" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter -#: selection:muk_autovacuum.rules,size_type:0 -msgid "System Parameter" -msgstr "Systemparameter" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Time" -msgstr "Zeit" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Time Based" -msgstr "Zeitbasiert" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_field -msgid "Time Field" -msgstr "Zeitfeld" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Time Settings" -msgstr "Zeiteinstellungen" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_type -msgid "Time Unit" -msgstr "Zeiteinheit" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Various fields may use Python code or Python expressions. The following variables can be used:" -msgstr "Einige Felder erlauben Python Code oder Python Ausdrücke. Die folgenden Variablen können verwendet werden:" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Weeks" -msgstr "Wochen" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Years" -msgstr "Jahre" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "e.g. Delete Logs after 30 Days" -msgstr "z.B. Protokolle nach 30 Tagen löschen" - diff --git a/muk_autovacuum/i18n/es.po b/muk_autovacuum/i18n/es.po deleted file mode 100644 index f0b9e06..0000000 --- a/muk_autovacuum/i18n/es.po +++ /dev/null @@ -1,407 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_autovacuum -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:43+0000\n" -"PO-Revision-Date: 2019-07-12 23:43+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Warning: Warning Exception to use with raise" -msgstr "Advertencia: Excepción de Advertencia para usar con aumento" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "b64encode, b64decode: Base64 converter" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "date_format, datetime_format: server date and time formats" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "env: Odoo Environment on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "logger.info(message): Python logging framework" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "model: Odoo Model of the record on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "time, datetime, dateutil, timezone: useful Python libraries" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "uid, user: User on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__active -msgid "Active" -msgstr "Activo" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "All" -msgstr "Todos" - -#. module: muk_autovacuum -#: model:ir.actions.act_window,name:muk_autovacuum.action_autovacuum_rule -#: model:ir.model,name:muk_autovacuum.model_muk_autovacuum_rules -#: model:ir.ui.menu,name:muk_autovacuum.menu_autovacuum_rules -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_tree -msgid "Auto Vacuum Rules" -msgstr "Reglas de vacío automático" - -#. module: muk_autovacuum -#: model:ir.model,name:muk_autovacuum.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code" -msgstr "Código" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Code Based" -msgstr "Basado en código" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Code Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code which will be executed during the clean up." -msgstr "Código que se ejecutará durante la limpieza." - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_date -msgid "Created on" -msgstr "Creado el" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Days" -msgstr "Días" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Delete all records which match the domain." -msgstr "Elimina todos los registros que coincidan con el dominio." - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Delete older data than x." -msgstr "Borrar datos anteriores a x." - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Delete records with am index greater than x." -msgstr "Eliminar registros con un índice am mayor que x." - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__display_name -msgid "Display Name" -msgstr "Nombre mostrado" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Do not delete starred records.\n" -" Checks for the following fields:\n" -" - starred\n" -" - favorite\n" -" - is_starred\n" -" - is_favorite" -msgstr "No borre los registros marcados con asterisco.\n" -" Verifica los siguientes campos:\n" -" - marcado\n" -" - preferido\n" -" - is_starred\n" -" - is_favorite" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Domain" -msgstr "Dominio" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Domain Based" -msgstr "Basado en dominio" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Domain Settings" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Enter Python code here. Help about Python expression is available in the help tab of this document." -msgstr "Introduzca código Python aquí. Ayuda disponible sobre expresiones Python en la pestaña de ayuda de este documento." - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,size_type:0 -msgid "Fixed Value" -msgstr "Valor Fijo" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:64 -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:74 -#, python-format -msgid "GC domain: %s" -msgstr "Dominio GC: %s" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:71 -#, python-format -msgid "GC domain: [] order: %s limit: %s" -msgstr "Dominio GC: [] orden: Límite en %s: %s" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:87 -#, python-format -msgid "GC'd %s %s records" -msgstr "GC'd %s %s registros" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:83 -#, python-format -msgid "GC'd %s attachments from %s entries" -msgstr "GC'd %s adjuntos de las entradas %s" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Group By" -msgstr "Agrupar por" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help" -msgstr "Ayuda" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help with Python expressions" -msgstr "Ayuda con expresiones Python" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Hours" -msgstr "Horas" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__id -msgid "ID" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:290 -#, python-format -msgid "Import Template for Auto Vacuum Rules" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules____last_update -msgid "Last Modified on" -msgstr "Última modificación en" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_uid -msgid "Last Updated by" -msgstr "Última actualización por" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_date -msgid "Last Updated on" -msgstr "Última actualización el" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Minutes" -msgstr "Actas" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Model" -msgstr "Modelo" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model_name -msgid "Model Name" -msgstr "Nombre del modelo" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__model -msgid "Model on which the rule is applied." -msgstr "Modelo sobre el que se aplica la norma." - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Months" -msgstr "Meses" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__name -msgid "Name" -msgstr "Nombre" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only Archived" -msgstr "Sólo archivado" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only Attachments" -msgstr "Sólo archivos adjuntos" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only delete archived records." -msgstr "Borrar sólo registros archivados." - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only delete record attachments." -msgstr "Sólo borre los archivos adjuntos de los registros." - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Order by which the index is defined." -msgstr "Orden por el que se define el índice." - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Protect Starred" -msgstr "Proteger Estrellado" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__state -msgid "Rule Type" -msgstr "Clase de regla" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:330 -#, python-format -msgid "Rule validation has failed!" -msgstr "La validación de reglas ha fallado!" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__sequence -msgid "Sequence" -msgstr "Secuencia" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size -msgid "Size" -msgstr "Tamaño" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Size Based" -msgstr "Basado en el tamaño" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Size Order" -msgstr "Orden de tallas" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Size Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_type -msgid "Size Type" -msgstr "Tamaño Tipo" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Size Value" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter -#: selection:muk_autovacuum.rules,size_type:0 -msgid "System Parameter" -msgstr "Parámetros del sistema" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Time" -msgstr "Tiempo" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Time Based" -msgstr "Basado en el tiempo" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_field -msgid "Time Field" -msgstr "Campo de tiempo" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Time Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_type -msgid "Time Unit" -msgstr "Unidad de tiempo" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Various fields may use Python code or Python expressions. The following variables can be used:" -msgstr "Varios campos pueden usar código Python o expresiones Python. Se pueden usar las siguientes variables:" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Weeks" -msgstr "Semanas" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Years" -msgstr "Años" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "e.g. Delete Logs after 30 Days" -msgstr "" - diff --git a/muk_autovacuum/i18n/fr.po b/muk_autovacuum/i18n/fr.po deleted file mode 100644 index e4a6c82..0000000 --- a/muk_autovacuum/i18n/fr.po +++ /dev/null @@ -1,407 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_autovacuum -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:43+0000\n" -"PO-Revision-Date: 2019-07-12 23:43+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Warning: Warning Exception to use with raise" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "b64encode, b64decode: Base64 converter" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "date_format, datetime_format: server date and time formats" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "env: Odoo Environment on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "logger.info(message): Python logging framework" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "model: Odoo Model of the record on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "time, datetime, dateutil, timezone: useful Python libraries" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "uid, user: User on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__active -msgid "Active" -msgstr "Actif" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "All" -msgstr "Tous" - -#. module: muk_autovacuum -#: model:ir.actions.act_window,name:muk_autovacuum.action_autovacuum_rule -#: model:ir.model,name:muk_autovacuum.model_muk_autovacuum_rules -#: model:ir.ui.menu,name:muk_autovacuum.menu_autovacuum_rules -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_tree -msgid "Auto Vacuum Rules" -msgstr "Règles de l'aspirateur automatique" - -#. module: muk_autovacuum -#: model:ir.model,name:muk_autovacuum.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Code Based" -msgstr "Basé sur le code" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Code Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code which will be executed during the clean up." -msgstr "Code qui sera exécuté pendant le nettoyage." - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_uid -msgid "Created by" -msgstr "Créé par" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_date -msgid "Created on" -msgstr "Créé le" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Days" -msgstr "Jours" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Delete all records which match the domain." -msgstr "Supprimer tous les enregistrements qui correspondent au domaine." - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Delete older data than x." -msgstr "Supprimer les données plus anciennes que x." - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Delete records with am index greater than x." -msgstr "Supprimer les enregistrements dont l'index am est supérieur à x." - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__display_name -msgid "Display Name" -msgstr "Nom affiché" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Do not delete starred records.\n" -" Checks for the following fields:\n" -" - starred\n" -" - favorite\n" -" - is_starred\n" -" - is_favorite" -msgstr "Ne supprimez pas les disques marqués d'une étoile.\n" -" Vérification des champs suivants :\n" -" - étoilés\n" -" - favori\n" -" - is_starred\n" -" - is_favorite" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Domain" -msgstr "Domaine" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Domain Based" -msgstr "Basé sur le domaine" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Domain Settings" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Enter Python code here. Help about Python expression is available in the help tab of this document." -msgstr "Entrer du code Python ici. Une aide sur l'expression Python est disponible dans l'onglet d'aide de ce document." - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,size_type:0 -msgid "Fixed Value" -msgstr "Valeur fixe" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:64 -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:74 -#, python-format -msgid "GC domain: %s" -msgstr "Domaine GC : %s" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:71 -#, python-format -msgid "GC domain: [] order: %s limit: %s" -msgstr "GC : (] Ordre : Limite %s : %s" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:87 -#, python-format -msgid "GC'd %s %s records" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:83 -#, python-format -msgid "GC'd %s attachments from %s entries" -msgstr "GC'd %s pièces jointes à partir d'entrées %s" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Group By" -msgstr "Regrouper par" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help" -msgstr "Aide" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help with Python expressions" -msgstr "Aide sur les expressions Python" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Hours" -msgstr "Heures" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__id -msgid "ID" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:290 -#, python-format -msgid "Import Template for Auto Vacuum Rules" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules____last_update -msgid "Last Modified on" -msgstr "Dernière modification le" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_uid -msgid "Last Updated by" -msgstr "Dernière mise à jour par" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_date -msgid "Last Updated on" -msgstr "Dernière mise à jour le" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Minutes" -msgstr "Procès-verbal" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Model" -msgstr "Modèle" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model_name -msgid "Model Name" -msgstr "Nom de Modèle" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__model -msgid "Model on which the rule is applied." -msgstr "Modèle sur lequel la règle est appliquée." - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Months" -msgstr "Mois" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__name -msgid "Name" -msgstr "Nom" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only Archived" -msgstr "Uniquement archivé" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only Attachments" -msgstr "Uniquement les pièces jointes" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only delete archived records." -msgstr "Ne supprimez que les enregistrements archivés." - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only delete record attachments." -msgstr "Ne supprimez que les pièces jointes d'enregistrement." - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Order by which the index is defined." -msgstr "Ordre dans lequel l'indice est défini." - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Protect Starred" -msgstr "Protéger Starred" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__state -msgid "Rule Type" -msgstr "Type de règle" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:330 -#, python-format -msgid "Rule validation has failed!" -msgstr "La validation des règles a échoué !" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__sequence -msgid "Sequence" -msgstr "Séquence" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size -msgid "Size" -msgstr "Taille" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Size Based" -msgstr "Basé sur la taille" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Size Order" -msgstr "Taille Commande" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Size Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_type -msgid "Size Type" -msgstr "Taille Type" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Size Value" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter -#: selection:muk_autovacuum.rules,size_type:0 -msgid "System Parameter" -msgstr "Paramètres du système" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Time" -msgstr "Temps" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Time Based" -msgstr "Basé sur le temps" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_field -msgid "Time Field" -msgstr "Champ horaire" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Time Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_type -msgid "Time Unit" -msgstr "Unité de temps" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Various fields may use Python code or Python expressions. The following variables can be used:" -msgstr "Divers champs peuvent utiliser du code ou des expressions Python. Les variables suivantes peuvent être utilisées :" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Weeks" -msgstr "Semaines" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Years" -msgstr "Années" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "e.g. Delete Logs after 30 Days" -msgstr "" - diff --git a/muk_autovacuum/i18n/hi.po b/muk_autovacuum/i18n/hi.po deleted file mode 100644 index ceeed86..0000000 --- a/muk_autovacuum/i18n/hi.po +++ /dev/null @@ -1,402 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_autovacuum -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:44+0000\n" -"PO-Revision-Date: 2019-07-12 23:44+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Warning: Warning Exception to use with raise" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "b64encode, b64decode: Base64 converter" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "date_format, datetime_format: server date and time formats" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "env: Odoo Environment on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "logger.info(message): Python logging framework" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "model: Odoo Model of the record on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "time, datetime, dateutil, timezone: useful Python libraries" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "uid, user: User on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__active -msgid "Active" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "All" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.actions.act_window,name:muk_autovacuum.action_autovacuum_rule -#: model:ir.model,name:muk_autovacuum.model_muk_autovacuum_rules -#: model:ir.ui.menu,name:muk_autovacuum.menu_autovacuum_rules -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_tree -msgid "Auto Vacuum Rules" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model,name:muk_autovacuum.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Code Based" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Code Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code which will be executed during the clean up." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_uid -msgid "Created by" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_date -msgid "Created on" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Days" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Delete all records which match the domain." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Delete older data than x." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Delete records with am index greater than x." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__display_name -msgid "Display Name" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Do not delete starred records.\n" -" Checks for the following fields:\n" -" - starred\n" -" - favorite\n" -" - is_starred\n" -" - is_favorite" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Domain" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Domain Based" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Domain Settings" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Enter Python code here. Help about Python expression is available in the help tab of this document." -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,size_type:0 -msgid "Fixed Value" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:64 -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:74 -#, python-format -msgid "GC domain: %s" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:71 -#, python-format -msgid "GC domain: [] order: %s limit: %s" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:87 -#, python-format -msgid "GC'd %s %s records" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:83 -#, python-format -msgid "GC'd %s attachments from %s entries" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Group By" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help with Python expressions" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Hours" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__id -msgid "ID" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:290 -#, python-format -msgid "Import Template for Auto Vacuum Rules" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules____last_update -msgid "Last Modified on" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_date -msgid "Last Updated on" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Minutes" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Model" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model_name -msgid "Model Name" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__model -msgid "Model on which the rule is applied." -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Months" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__name -msgid "Name" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only Archived" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only Attachments" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only delete archived records." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only delete record attachments." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Order by which the index is defined." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Protect Starred" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__state -msgid "Rule Type" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:330 -#, python-format -msgid "Rule validation has failed!" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__sequence -msgid "Sequence" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size -msgid "Size" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Size Based" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Size Order" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Size Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_type -msgid "Size Type" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Size Value" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter -#: selection:muk_autovacuum.rules,size_type:0 -msgid "System Parameter" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Time" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Time Based" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_field -msgid "Time Field" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Time Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_type -msgid "Time Unit" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Various fields may use Python code or Python expressions. The following variables can be used:" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Weeks" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Years" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "e.g. Delete Logs after 30 Days" -msgstr "" - diff --git a/muk_autovacuum/i18n/muk_autovacuum.pot b/muk_autovacuum/i18n/muk_autovacuum.pot deleted file mode 100644 index f0ff291..0000000 --- a/muk_autovacuum/i18n/muk_autovacuum.pot +++ /dev/null @@ -1,402 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_autovacuum -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:42+0000\n" -"PO-Revision-Date: 2019-07-12 23:42+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Warning: Warning Exception to use with raise" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "b64encode, b64decode: Base64 converter" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "date_format, datetime_format: server date and time formats" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "env: Odoo Environment on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "logger.info(message): Python logging framework" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "model: Odoo Model of the record on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "time, datetime, dateutil, timezone: useful Python libraries" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "uid, user: User on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__active -msgid "Active" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "All" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.actions.act_window,name:muk_autovacuum.action_autovacuum_rule -#: model:ir.model,name:muk_autovacuum.model_muk_autovacuum_rules -#: model:ir.ui.menu,name:muk_autovacuum.menu_autovacuum_rules -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_tree -msgid "Auto Vacuum Rules" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model,name:muk_autovacuum.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Code Based" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Code Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code which will be executed during the clean up." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_uid -msgid "Created by" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_date -msgid "Created on" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Days" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Delete all records which match the domain." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Delete older data than x." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Delete records with am index greater than x." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__display_name -msgid "Display Name" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Do not delete starred records.\n" -" Checks for the following fields:\n" -" - starred\n" -" - favorite\n" -" - is_starred\n" -" - is_favorite" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Domain" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Domain Based" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Domain Settings" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Enter Python code here. Help about Python expression is available in the help tab of this document." -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,size_type:0 -msgid "Fixed Value" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:64 -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:74 -#, python-format -msgid "GC domain: %s" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:71 -#, python-format -msgid "GC domain: [] order: %s limit: %s" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:87 -#, python-format -msgid "GC'd %s %s records" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:83 -#, python-format -msgid "GC'd %s attachments from %s entries" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Group By" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help with Python expressions" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Hours" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__id -msgid "ID" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:290 -#, python-format -msgid "Import Template for Auto Vacuum Rules" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules____last_update -msgid "Last Modified on" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_date -msgid "Last Updated on" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Minutes" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Model" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model_name -msgid "Model Name" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__model -msgid "Model on which the rule is applied." -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Months" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__name -msgid "Name" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only Archived" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only Attachments" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only delete archived records." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only delete record attachments." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Order by which the index is defined." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Protect Starred" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__state -msgid "Rule Type" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:330 -#, python-format -msgid "Rule validation has failed!" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__sequence -msgid "Sequence" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size -msgid "Size" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Size Based" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Size Order" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Size Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_type -msgid "Size Type" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Size Value" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter -#: selection:muk_autovacuum.rules,size_type:0 -msgid "System Parameter" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Time" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Time Based" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_field -msgid "Time Field" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Time Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_type -msgid "Time Unit" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Various fields may use Python code or Python expressions. The following variables can be used:" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Weeks" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Years" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "e.g. Delete Logs after 30 Days" -msgstr "" - diff --git a/muk_autovacuum/i18n/nl.po b/muk_autovacuum/i18n/nl.po deleted file mode 100644 index acd392a..0000000 --- a/muk_autovacuum/i18n/nl.po +++ /dev/null @@ -1,402 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_autovacuum -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:44+0000\n" -"PO-Revision-Date: 2019-07-12 23:44+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Warning: Warning Exception to use with raise" -msgstr "Waarschuwing: Waarschuwingsfout te gebruiken met roep op" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "b64encode, b64decode: Base64 converter" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "date_format, datetime_format: server date and time formats" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "env: Odoo Environment on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "logger.info(message): Python logging framework" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "model: Odoo Model of the record on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "time, datetime, dateutil, timezone: useful Python libraries" -msgstr "time, datetime, dateutil, timezone: handige Python libraries" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "uid, user: User on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__active -msgid "Active" -msgstr "Actief" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "All" -msgstr "Alle" - -#. module: muk_autovacuum -#: model:ir.actions.act_window,name:muk_autovacuum.action_autovacuum_rule -#: model:ir.model,name:muk_autovacuum.model_muk_autovacuum_rules -#: model:ir.ui.menu,name:muk_autovacuum.menu_autovacuum_rules -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_tree -msgid "Auto Vacuum Rules" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model,name:muk_autovacuum.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "Automatisch vacuum" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Code Based" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Code Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code which will be executed during the clean up." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_uid -msgid "Created by" -msgstr "Aangemaakt door" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_date -msgid "Created on" -msgstr "Aangemaakt op" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Days" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Delete all records which match the domain." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Delete older data than x." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Delete records with am index greater than x." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__display_name -msgid "Display Name" -msgstr "Weergavenaam" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Do not delete starred records.\n" -" Checks for the following fields:\n" -" - starred\n" -" - favorite\n" -" - is_starred\n" -" - is_favorite" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Domain" -msgstr "Domein" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Domain Based" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Domain Settings" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Enter Python code here. Help about Python expression is available in the help tab of this document." -msgstr "Geef hier Python code in. Help over het gebruik van Python expressies is beschikbaar in de help tab van dit document." - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,size_type:0 -msgid "Fixed Value" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:64 -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:74 -#, python-format -msgid "GC domain: %s" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:71 -#, python-format -msgid "GC domain: [] order: %s limit: %s" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:87 -#, python-format -msgid "GC'd %s %s records" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:83 -#, python-format -msgid "GC'd %s attachments from %s entries" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Group By" -msgstr "Groepeer op" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help with Python expressions" -msgstr "Help met Python expressies" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Hours" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__id -msgid "ID" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:290 -#, python-format -msgid "Import Template for Auto Vacuum Rules" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules____last_update -msgid "Last Modified on" -msgstr "Laatst gewijzigd op" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_uid -msgid "Last Updated by" -msgstr "Laatst bijgewerkt door" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_date -msgid "Last Updated on" -msgstr "Laatst bijgewerkt op" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Minutes" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Model" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model_name -msgid "Model Name" -msgstr "Modelnaam" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__model -msgid "Model on which the rule is applied." -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Months" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__name -msgid "Name" -msgstr "Naam" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only Archived" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only Attachments" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only delete archived records." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only delete record attachments." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Order by which the index is defined." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Protect Starred" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__state -msgid "Rule Type" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:330 -#, python-format -msgid "Rule validation has failed!" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__sequence -msgid "Sequence" -msgstr "Volgorde" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size -msgid "Size" -msgstr "Grootte" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Size Based" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Size Order" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Size Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_type -msgid "Size Type" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Size Value" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter -#: selection:muk_autovacuum.rules,size_type:0 -msgid "System Parameter" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Time" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Time Based" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_field -msgid "Time Field" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Time Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_type -msgid "Time Unit" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Various fields may use Python code or Python expressions. The following variables can be used:" -msgstr "Verschillende velden mogen Python code of Python expressies gebruiken. De volgende variabelen mogen worden gebruikt:" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Weeks" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Years" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "e.g. Delete Logs after 30 Days" -msgstr "" - diff --git a/muk_autovacuum/i18n/pt.po b/muk_autovacuum/i18n/pt.po deleted file mode 100644 index 7487fb7..0000000 --- a/muk_autovacuum/i18n/pt.po +++ /dev/null @@ -1,402 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_autovacuum -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:44+0000\n" -"PO-Revision-Date: 2019-07-12 23:44+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Warning: Warning Exception to use with raise" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "b64encode, b64decode: Base64 converter" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "date_format, datetime_format: server date and time formats" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "env: Odoo Environment on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "logger.info(message): Python logging framework" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "model: Odoo Model of the record on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "time, datetime, dateutil, timezone: useful Python libraries" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "uid, user: User on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__active -msgid "Active" -msgstr "Ativo" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "All" -msgstr "Todas" - -#. module: muk_autovacuum -#: model:ir.actions.act_window,name:muk_autovacuum.action_autovacuum_rule -#: model:ir.model,name:muk_autovacuum.model_muk_autovacuum_rules -#: model:ir.ui.menu,name:muk_autovacuum.menu_autovacuum_rules -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_tree -msgid "Auto Vacuum Rules" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model,name:muk_autovacuum.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Code Based" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Code Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code which will be executed during the clean up." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_uid -msgid "Created by" -msgstr "Criado por" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_date -msgid "Created on" -msgstr "Criada em" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Days" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Delete all records which match the domain." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Delete older data than x." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Delete records with am index greater than x." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__display_name -msgid "Display Name" -msgstr "Nome a Exibir" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Do not delete starred records.\n" -" Checks for the following fields:\n" -" - starred\n" -" - favorite\n" -" - is_starred\n" -" - is_favorite" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Domain" -msgstr "Domínio" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Domain Based" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Domain Settings" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Enter Python code here. Help about Python expression is available in the help tab of this document." -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,size_type:0 -msgid "Fixed Value" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:64 -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:74 -#, python-format -msgid "GC domain: %s" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:71 -#, python-format -msgid "GC domain: [] order: %s limit: %s" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:87 -#, python-format -msgid "GC'd %s %s records" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:83 -#, python-format -msgid "GC'd %s attachments from %s entries" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Group By" -msgstr "Agrupar Por" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help" -msgstr "Ajuda" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help with Python expressions" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Hours" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__id -msgid "ID" -msgstr "Id." - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:290 -#, python-format -msgid "Import Template for Auto Vacuum Rules" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules____last_update -msgid "Last Modified on" -msgstr "Última Modificação em" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_uid -msgid "Last Updated by" -msgstr "Última Atualização por" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_date -msgid "Last Updated on" -msgstr "Última Atualização em" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Minutes" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Model" -msgstr "Modelo" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model_name -msgid "Model Name" -msgstr "Nome do Modelo" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__model -msgid "Model on which the rule is applied." -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Months" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__name -msgid "Name" -msgstr "Nome" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only Archived" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only Attachments" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only delete archived records." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only delete record attachments." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Order by which the index is defined." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Protect Starred" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__state -msgid "Rule Type" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:330 -#, python-format -msgid "Rule validation has failed!" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__sequence -msgid "Sequence" -msgstr "Sequência" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size -msgid "Size" -msgstr "Tamanho" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Size Based" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Size Order" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Size Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_type -msgid "Size Type" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Size Value" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter -#: selection:muk_autovacuum.rules,size_type:0 -msgid "System Parameter" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Time" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Time Based" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_field -msgid "Time Field" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Time Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_type -msgid "Time Unit" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Various fields may use Python code or Python expressions. The following variables can be used:" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Weeks" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Years" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "e.g. Delete Logs after 30 Days" -msgstr "" - diff --git a/muk_autovacuum/i18n/ru.po b/muk_autovacuum/i18n/ru.po deleted file mode 100644 index ea2864d..0000000 --- a/muk_autovacuum/i18n/ru.po +++ /dev/null @@ -1,402 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_autovacuum -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:45+0000\n" -"PO-Revision-Date: 2019-07-12 23:45+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Warning: Warning Exception to use with raise" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "b64encode, b64decode: Base64 converter" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "date_format, datetime_format: server date and time formats" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "env: Odoo Environment on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "logger.info(message): Python logging framework" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "model: Odoo Model of the record on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "time, datetime, dateutil, timezone: useful Python libraries" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "uid, user: User on which the rule is triggered" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__active -msgid "Active" -msgstr "Активно" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "All" -msgstr "Все" - -#. module: muk_autovacuum -#: model:ir.actions.act_window,name:muk_autovacuum.action_autovacuum_rule -#: model:ir.model,name:muk_autovacuum.model_muk_autovacuum_rules -#: model:ir.ui.menu,name:muk_autovacuum.menu_autovacuum_rules -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_tree -msgid "Auto Vacuum Rules" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model,name:muk_autovacuum.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Code Based" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Code Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__code -msgid "Code which will be executed during the clean up." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_uid -msgid "Created by" -msgstr "Создано" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_date -msgid "Created on" -msgstr "Создан" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Days" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Delete all records which match the domain." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Delete older data than x." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Delete records with am index greater than x." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__display_name -msgid "Display Name" -msgstr "Отображаемое Имя" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Do not delete starred records.\n" -" Checks for the following fields:\n" -" - starred\n" -" - favorite\n" -" - is_starred\n" -" - is_favorite" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__domain -msgid "Domain" -msgstr "Домен" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Domain Based" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Domain Settings" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Enter Python code here. Help about Python expression is available in the help tab of this document." -msgstr "Введите код Python здесь. Помощь о Python доступна в колонке справка в этом документе." - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,size_type:0 -msgid "Fixed Value" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:64 -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:74 -#, python-format -msgid "GC domain: %s" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:71 -#, python-format -msgid "GC domain: [] order: %s limit: %s" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:87 -#, python-format -msgid "GC'd %s %s records" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/ir_autovacuum.py:83 -#, python-format -msgid "GC'd %s attachments from %s entries" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Group By" -msgstr "Группировать по" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help" -msgstr "Помощь" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Help with Python expressions" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Hours" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__id -msgid "ID" -msgstr "Номер" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:290 -#, python-format -msgid "Import Template for Auto Vacuum Rules" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules____last_update -msgid "Last Modified on" -msgstr "Последнее изменение" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_uid -msgid "Last Updated by" -msgstr "Последний раз обновил" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_date -msgid "Last Updated on" -msgstr "Последнее обновление" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Minutes" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search -msgid "Model" -msgstr "Модель" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model_name -msgid "Model Name" -msgstr "Название модели" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__model -msgid "Model on which the rule is applied." -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Months" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__name -msgid "Name" -msgstr "Название" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only Archived" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only Attachments" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_inactive -msgid "Only delete archived records." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_attachments -msgid "Only delete record attachments." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Order by which the index is defined." -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__protect_starred -msgid "Protect Starred" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__state -msgid "Rule Type" -msgstr "" - -#. module: muk_autovacuum -#: code:addons/muk_autovacuum/models/rules.py:330 -#, python-format -msgid "Rule validation has failed!" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__sequence -msgid "Sequence" -msgstr "Нумерация" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size -msgid "Size" -msgstr "Размер" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Size Based" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_order -msgid "Size Order" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Size Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_type -msgid "Size Type" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value -msgid "Size Value" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter -#: selection:muk_autovacuum.rules,size_type:0 -msgid "System Parameter" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time -msgid "Time" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,state:0 -msgid "Time Based" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_field -msgid "Time Field" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Time Settings" -msgstr "" - -#. module: muk_autovacuum -#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_type -msgid "Time Unit" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "Various fields may use Python code or Python expressions. The following variables can be used:" -msgstr "Различные поля могут использовать код Python или выражения Python. Могут использоваться следующие переменные:" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Weeks" -msgstr "" - -#. module: muk_autovacuum -#: selection:muk_autovacuum.rules,time_type:0 -msgid "Years" -msgstr "" - -#. module: muk_autovacuum -#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form -msgid "e.g. Delete Logs after 30 Days" -msgstr "" - diff --git a/muk_autovacuum/models/__init__.py b/muk_autovacuum/models/__init__.py deleted file mode 100644 index b8a051f..0000000 --- a/muk_autovacuum/models/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Autovacuum -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import rules -from . import ir_autovacuum \ No newline at end of file diff --git a/muk_autovacuum/models/ir_autovacuum.py b/muk_autovacuum/models/ir_autovacuum.py deleted file mode 100644 index 1b0875e..0000000 --- a/muk_autovacuum/models/ir_autovacuum.py +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Autovacuum -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import time -import logging -import datetime -import dateutil - -from odoo import _ -from odoo import models, api, fields -from odoo.tools.safe_eval import safe_eval - -_logger = logging.getLogger(__name__) - -_types = { - 'days': lambda interval: datetime.timedelta(days=interval), - 'years': lambda interval: datetime.timedelta(weeks=interval*52), - 'hours': lambda interval: datetime.timedelta(hours=interval), - 'weeks': lambda interval: datetime.timedelta(weeks=interval), - 'months': lambda interval: datetime.timedelta(days=interval*30), - 'minutes': lambda interval: datetime.timedelta(minutes=interval), -} - -class AutoVacuum(models.AbstractModel): - - _inherit = 'ir.autovacuum' - - @api.model - def power_on(self, *args, **kwargs): - res = super(AutoVacuum, self).power_on(*args, **kwargs) - rules = self.env['muk_autovacuum.rules'].sudo().search([], order='sequence asc') - for rule in rules: - if rule.state in ['time', 'size', 'domain']: - model = self.env[rule.model.model].sudo() - records = self.env[rule.model.model] - if rule.state == 'time': - computed_time = datetime.datetime.utcnow() - _types[rule.time_type](rule.time) - domain = [(rule.time_field.name, '<', fields.Datetime.to_string(computed_time))] - if rule.protect_starred: - for field in rule.model.field_id: - if field.name in ['starred', 'favorite', 'is_starred', 'is_favorite']: - domain.append((field.name, '=', False)) - if rule.only_inactive and "active" in rule.model.field_id.mapped("name"): - domain.append(('active', '=', False)) - _logger.info(_("GC domain: %s"), domain) - records = model.with_context(active_test=False).search(domain) - elif rule.state == 'size': - size = rule.size if rule.size_type == 'fixed' else rule.size_parameter_value - count = model.with_context(active_test=False).search([], count=True) - if size and size > 0 and count > size: - limit = count - size - _logger.info(_("GC domain: [] order: %s limit: %s"), rule.size_order, limit) - records = model.with_context(active_test=False).search([], order=rule.size_order, limit=limit) - elif rule.state == 'domain': - _logger.info(_("GC domain: %s"), rule.domain) - domain = safe_eval(rule.domain or "[]", rules._get_eval_domain_context()) - records = model.with_context(active_test=False).search(domain) - if rule.only_attachments: - attachments = self.env['ir.attachment'].sudo().search([ - ('res_model', '=', rule.model.model), - ('res_id', 'in', records.mapped('id'))]) - count = len(attachments) - attachments.unlink() - _logger.info(_("GC'd %s attachments from %s entries"), count, rule.model.model) - else: - count = len(records) - records.unlink() - _logger.info(_("GC'd %s %s records"), count, rule.model.model) - elif rule.state == 'code': - safe_eval(rule.code.strip(), rules._get_eval_code_context(rule), mode="exec") - return res \ No newline at end of file diff --git a/muk_autovacuum/models/rules.py b/muk_autovacuum/models/rules.py deleted file mode 100644 index c2dccf3..0000000 --- a/muk_autovacuum/models/rules.py +++ /dev/null @@ -1,330 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Autovacuum -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import time -import base64 -import logging -import datetime -import dateutil - -from pytz import timezone - -from odoo import _ -from odoo import models, api, fields -from odoo.exceptions import ValidationError, Warning -from odoo.tools import DEFAULT_SERVER_DATE_FORMAT -from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT -from odoo.tools.safe_eval import safe_eval, test_python_expr - -_logger = logging.getLogger(__name__) - -class AutoVacuumRules(models.Model): - - _name = 'muk_autovacuum.rules' - _description = "Auto Vacuum Rules" - _order = "sequence asc" - - #---------------------------------------------------------- - # Defaults - #---------------------------------------------------------- - - def _default_sequence(self): - record = self.sudo().search([], order='sequence desc', limit=1) - if record.exists(): - return record.sequence + 1 - else: - return 1 - - #---------------------------------------------------------- - # Database - #---------------------------------------------------------- - - name = fields.Char( - string='Name', - required=True) - - active = fields.Boolean( - string='Active', - default=True) - - state = fields.Selection( - selection=[ - ('time', 'Time Based'), - ('size', 'Size Based'), - ('domain', 'Domain Based'), - ('code', 'Code Based')], - string='Rule Type', - default='time', - required=True) - - sequence = fields.Integer( - string='Sequence', - default=lambda self: self._default_sequence(), - required=True) - - model = fields.Many2one( - comodel_name='ir.model', - string="Model", - required=True, - ondelete='cascade', - help="Model on which the rule is applied.") - - model_name = fields.Char( - related='model.model', - string="Model Name", - readonly=True, - store=True) - - time_field = fields.Many2one( - comodel_name='ir.model.fields', - domain="[('model_id', '=', model), ('ttype', '=', 'datetime')]", - string='Time Field', - ondelete='cascade', - states={ - 'time': [('required', True)], - 'size': [('invisible', True)], - 'domain': [('invisible', True)], - 'code': [('invisible', True)]}) - - time_type = fields.Selection( - selection=[ - ('minutes', 'Minutes'), - ('hours', 'Hours'), - ('days', 'Days'), - ('weeks', 'Weeks'), - ('months', 'Months'), - ('years', 'Years')], - string='Time Unit', - default='months', - states={ - 'time': [('required', True)], - 'size': [('invisible', True)], - 'domain': [('invisible', True)], - 'code': [('invisible', True)]}) - - time = fields.Integer( - string='Time', - default=1, - states={ - 'time': [('required', True)], - 'size': [('invisible', True)], - 'domain': [('invisible', True)], - 'code': [('invisible', True)]}, - help="Delete older data than x.") - - size_type = fields.Selection( - selection=[ - ('fixed', 'Fixed Value'), - ('parameter', 'System Parameter')], - string='Size Type', - default='fixed', - states={ - 'time': [('invisible', True)], - 'size': [('required', True)], - 'domain': [('invisible', True)], - 'code': [('invisible', True)]}) - - size_parameter = fields.Many2one( - comodel_name='ir.config_parameter', - string='System Parameter', - ondelete='cascade', - states={ - 'time': [('invisible', True)], - 'size': [('required', True)], - 'domain': [('invisible', True)], - 'code': [('invisible', True)]}) - - size_parameter_value = fields.Integer( - compute='_compute_size_parameter_value', - string='Size Value', - states={ - 'time': [('invisible', True)], - 'size': [('readonly', True)], - 'domain': [('invisible', True)], - 'code': [('invisible', True)]}, - help="Delete records with am index greater than x.") - - size_order = fields.Char( - string='Size Order', - default='create_date desc', - states={ - 'time': [('invisible', True)], - 'size': [('required', True)], - 'domain': [('invisible', True)], - 'code': [('invisible', True)]}, - help="Order by which the index is defined.") - - size = fields.Integer( - string='Size', - default=200, - states={ - 'time': [('invisible', True)], - 'size': [('required', True)], - 'domain': [('invisible', True)], - 'code': [('invisible', True)]}, - help="Delete records with am index greater than x.") - - domain = fields.Char( - string='Domain', - states={ - 'time': [('invisible', True)], - 'size': [('invisible', True)], - 'domain': [('required', True)], - 'code': [('invisible', True)]}, - help="Delete all records which match the domain.") - - code = fields.Text( - string='Code', - states={ - 'time': [('invisible', True)], - 'size': [('invisible', True)], - 'domain': [('invisible', True)] , - 'code': [('required', True)]}, - default="# Enter Python code here. Help about Python expression is available in the help tab of this document.", - help="Code which will be executed during the clean up.") - - protect_starred = fields.Boolean( - string='Protect Starred', - default=True, - states={ - 'time': [('invisible', False)], - 'size': [('invisible', True)], - 'domain': [('invisible', True)], - 'code': [('invisible', True)]}, - help="""Do not delete starred records. - Checks for the following fields: - - starred - - favorite - - is_starred - - is_favorite""") - - only_inactive = fields.Boolean( - string='Only Archived', - default=False, - states={ - 'time': [('invisible', False)], - 'size': [('invisible', True)], - 'domain': [('invisible', True)], - 'code': [('invisible', True)]}, - help="Only delete archived records.") - - only_attachments = fields.Boolean( - string='Only Attachments', - default=False, - states={ - 'time': [('invisible', False)], - 'size': [('invisible', False)], - 'domain': [('invisible', False)], - 'code': [('invisible', True)]}, - help="Only delete record attachments.") - - #---------------------------------------------------------- - # Functions - #---------------------------------------------------------- - - @api.model - def _get_eval_domain_context(self): - return { - 'datetime': datetime, - 'dateutil': dateutil, - 'timezone': timezone, - 'time': time, - 'uid': self.env.uid, - 'user': self.env.user - } - - @api.model - def _get_eval_code_context(self, rule): - return { - 'env': self.env, - 'model': self.env[rule.model_name], - 'uid': self.env.user.id, - 'user': self.env.user, - 'time': time, - 'datetime': datetime, - 'dateutil': dateutil, - 'timezone': timezone, - 'b64encode': base64.b64encode, - 'b64decode': base64.b64decode, - 'date_format': DEFAULT_SERVER_DATE_FORMAT, - 'datetime_format': DEFAULT_SERVER_DATETIME_FORMAT, - 'Warning': Warning, - 'logger': logging.getLogger("%s (%s)" % (__name__, rule.name)), - } - - #---------------------------------------------------------- - # View - #---------------------------------------------------------- - - @api.onchange('model') - def _onchange_model(self): - field_domain = [ - ('model_id', '=', self.model.id), - ('ttype', '=', 'datetime'), - ('name', '=', 'create_date')] - model = self.env['ir.model.fields'].sudo() - self.time_field = model.search(field_domain, limit=1) - - @api.model - def get_import_templates(self): - return [{ - 'label': _('Import Template for Auto Vacuum Rules'), - 'template': '/muk_autovacuum/static/xls/muk_autovacuum_rules.xls' - }] - - #---------------------------------------------------------- - # Read - #---------------------------------------------------------- - - @api.depends('size_parameter') - def _compute_size_parameter_value(self): - for record in self: - try: - record.size_parameter_value = int(record.size_parameter.value) - except ValueError: - record.size_parameter_value = None - - #---------------------------------------------------------- - # Create, Update, Delete - #---------------------------------------------------------- - - @api.constrains('code') - def _check_code(self): - for record in self.sudo().filtered('code'): - message = test_python_expr(expr=record.code.strip(), mode="exec") - if message: - raise ValidationError(message) - - @api.constrains( - 'state', 'model', 'domain', 'code', - 'time_field', 'time_type', 'time', - 'size_type', 'size_parameter', 'size_order', 'size') - def _validate(self): - validators = { - 'time': lambda rec: rec.time_field and rec.time_type and rec.time, - 'size': lambda rec: rec.size_order and (rec.size_parameter or rec.size), - 'domain': lambda rec: rec.domain, - 'code': lambda rec: rec.code, - } - for record in self: - if not validators[record.state](record): - raise ValidationError(_("Rule validation has failed!")) \ No newline at end of file diff --git a/muk_autovacuum/security/ir.model.access.csv b/muk_autovacuum/security/ir.model.access.csv deleted file mode 100644 index a369089..0000000 --- a/muk_autovacuum/security/ir.model.access.csv +++ /dev/null @@ -1,3 +0,0 @@ -id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink - -access_muk_autovacuum_rules_group_cron,muk_autovacuum_rules group_rules,model_muk_autovacuum_rules,base.group_system,1,1,1,1 \ No newline at end of file diff --git a/muk_autovacuum/static/description/banner.png b/muk_autovacuum/static/description/banner.png deleted file mode 100644 index 488c2eb..0000000 Binary files a/muk_autovacuum/static/description/banner.png and /dev/null differ diff --git a/muk_autovacuum/static/description/icon.png b/muk_autovacuum/static/description/icon.png deleted file mode 100644 index e7654dd..0000000 Binary files a/muk_autovacuum/static/description/icon.png and /dev/null differ diff --git a/muk_autovacuum/static/description/icon.svg b/muk_autovacuum/static/description/icon.svg deleted file mode 100644 index a2f1e29..0000000 --- a/muk_autovacuum/static/description/icon.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/muk_autovacuum/static/description/index.html b/muk_autovacuum/static/description/index.html deleted file mode 100644 index 635dbdf..0000000 --- a/muk_autovacuum/static/description/index.html +++ /dev/null @@ -1,128 +0,0 @@ -
-
-

MuK Auto Vacuum

-

Configure automatic garbage collection

-

MuK IT GmbH - - www.mukit.at

-
- -
-
-
- -
-
-
-

Overview

-

Allows the administrator to create rules to - automatically garbage collect a certain model. Every rule can have a - different time interval additional constraints. An extra constraint - can be for example to only delete inactive records.

-
-
-
- -
- -
- -
-
-
- - -
-
-
- -
-

Help and Support

-
Feel free to - contact us, if you need any help with your Odoo integration or - addiontal features.
- - -
\ No newline at end of file diff --git a/muk_autovacuum/static/description/logo.png b/muk_autovacuum/static/description/logo.png deleted file mode 100644 index 9427ce3..0000000 Binary files a/muk_autovacuum/static/description/logo.png and /dev/null differ diff --git a/muk_autovacuum/static/description/preview.png b/muk_autovacuum/static/description/preview.png deleted file mode 100644 index 1deb1cc..0000000 Binary files a/muk_autovacuum/static/description/preview.png and /dev/null differ diff --git a/muk_autovacuum/static/description/screenshot.png b/muk_autovacuum/static/description/screenshot.png deleted file mode 100644 index ef9395f..0000000 Binary files a/muk_autovacuum/static/description/screenshot.png and /dev/null differ diff --git a/muk_autovacuum/static/description/service_customization.png b/muk_autovacuum/static/description/service_customization.png deleted file mode 100644 index 3eac664..0000000 Binary files a/muk_autovacuum/static/description/service_customization.png and /dev/null differ diff --git a/muk_autovacuum/static/description/service_development.png b/muk_autovacuum/static/description/service_development.png deleted file mode 100644 index 580d460..0000000 Binary files a/muk_autovacuum/static/description/service_development.png and /dev/null differ diff --git a/muk_autovacuum/static/description/service_implementation.png b/muk_autovacuum/static/description/service_implementation.png deleted file mode 100644 index d64b66b..0000000 Binary files a/muk_autovacuum/static/description/service_implementation.png and /dev/null differ diff --git a/muk_autovacuum/static/description/service_integration.png b/muk_autovacuum/static/description/service_integration.png deleted file mode 100644 index 76c5e80..0000000 Binary files a/muk_autovacuum/static/description/service_integration.png and /dev/null differ diff --git a/muk_autovacuum/static/description/service_support.png b/muk_autovacuum/static/description/service_support.png deleted file mode 100644 index 4c530fa..0000000 Binary files a/muk_autovacuum/static/description/service_support.png and /dev/null differ diff --git a/muk_autovacuum/static/xls/muk_autovacuum_rules.xls b/muk_autovacuum/static/xls/muk_autovacuum_rules.xls deleted file mode 100644 index 5968613..0000000 Binary files a/muk_autovacuum/static/xls/muk_autovacuum_rules.xls and /dev/null differ diff --git a/muk_autovacuum/tests/__init__.py b/muk_autovacuum/tests/__init__.py deleted file mode 100644 index 895ce04..0000000 --- a/muk_autovacuum/tests/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Autovacuum -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import test_autovacuum \ No newline at end of file diff --git a/muk_autovacuum/tests/test_autovacuum.py b/muk_autovacuum/tests/test_autovacuum.py deleted file mode 100644 index cfaf2cc..0000000 --- a/muk_autovacuum/tests/test_autovacuum.py +++ /dev/null @@ -1,99 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Autovacuum -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging -import datetime - -from odoo.tests import common - -_logger = logging.getLogger(__name__) - -class AutoVacuumTestCase(common.TransactionCase): - - def setUp(self): - super(AutoVacuumTestCase, self).setUp() - self.logs = self.env['ir.logging'] - self.rules = self.env['muk_autovacuum.rules'] - self.model_model = self.env['ir.model'] - self.model_fields = self.env['ir.model.fields'] - self.model_logs = self.model_model.search([('model', '=', 'ir.logging')], limit=1) - time_field_domain = [ - ('model_id', '=', self.model_logs.id), - ('ttype', '=', 'datetime'), - ('name', '=', 'create_date')] - self.time_field_logs = self.model_fields.search(time_field_domain, limit=1) - - def test_autovacuum_time(self): - self.create_logs() - self.rules.create({ - 'name': "Delete Logs after 1 Minute", - 'state': 'time', - 'model': self.model_logs.id, - 'time_field': self.time_field_logs.id, - 'time_type': 'minutes', - 'time': 1}) - self.run_autovacuum() - - def test_autovacuum_size(self): - self.create_logs() - self.rules.create({ - 'name': "Delete Logs Count > 1", - 'state': 'size', - 'model': self.model_logs.id, - 'size': 1, - 'size_order': "id desc", - 'size_type': 'fixed'}) - self.run_autovacuum() - - def test_autovacuum_domain(self): - self.create_logs() - self.rules.create({ - 'name': "Delete Logs with Domain", - 'state': 'domain', - 'model': self.model_logs.id, - 'domain': "[]"}) - self.run_autovacuum() - - def create_logs(self): - ids = [] - time = datetime.datetime.utcnow() - for index in range(0, 10): - log = self.logs.create({ - 'create_date': time - datetime.timedelta(days=index), - 'create_uid': self.env.user.id, - 'name': "Test %s" % index, - 'type': 'server', - 'dbname': self.env.cr.dbname, - 'level': "INFO", - 'message': "TEST", - 'path': "PATH", - 'func': "TEST", - 'line': 1}) - ids.append(log.id) - return ids - - def run_autovacuum(self): - count_before = self.env['ir.logging'].search([], count=True) - self.env['ir.cron'].search([('model_id', '=', 'ir.autovacuum')]).ir_actions_server_id.run() - count_after = self.env['ir.logging'].search([], count=True) - self.assertTrue(count_before > count_after) - \ No newline at end of file diff --git a/muk_autovacuum/views/rules.xml b/muk_autovacuum/views/rules.xml deleted file mode 100644 index 05eda69..0000000 --- a/muk_autovacuum/views/rules.xml +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - muk_autovacuum_rules.search - muk_autovacuum.rules - - - - - - - - - - - - - - - - muk_autovacuum_rules.tree - muk_autovacuum.rules - - - - - - - - - - - - - muk_autovacuum_rules.form - muk_autovacuum.rules - -
- -
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Help with Python expressions

-

Various fields may use Python code or Python expressions. The following variables can be used:

-
    -
  • uid, user: User on which the rule is triggered
  • -
  • env: Odoo Environment on which the rule is triggered
  • -
  • model: Odoo Model of the record on which the rule is triggered
  • -
  • b64encode, b64decode: Base64 converter
  • -
  • time, datetime, dateutil, timezone: useful Python libraries
  • -
  • date_format, datetime_format: server date and time formats
  • -
  • logger.info(message): Python logging framework
  • -
  • Warning: Warning Exception to use with raise
  • -
-
-
-
-
-
-
-
-
- - - Auto Vacuum Rules - muk_autovacuum.rules - tree,form - {'search_default_all': 1} - - - - -
\ No newline at end of file diff --git a/muk_dbfilter/LICENSE b/muk_dbfilter/LICENSE deleted file mode 100644 index 11e8067..0000000 --- a/muk_dbfilter/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/muk_dbfilter/README.rst b/muk_dbfilter/README.rst deleted file mode 100644 index 933d56d..0000000 --- a/muk_dbfilter/README.rst +++ /dev/null @@ -1,120 +0,0 @@ -============= -MuK DB Filter -============= - -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 `_). - -To install our modules using the package manager make sure -`odoo-autodiscover `_ is installed -correctly. Note that for Odoo version 11.0 and later this is not necessary anymore. -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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**Example:** - -``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo13-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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -For modules licensed under a proprietary license, you will receive the access data after you purchased -the module. If the purchase were made at the Odoo store please contact our `support `_ -with a confirmation of the 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 `` - -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. - -Credit -====== - -Contributors ------------- - -* Kerrim Abdelhamed -* Mathias Markl - -Images ------- - -Some pictures are based on or inspired by the icon set of Font Awesome: - -* `Font Awesome `_ - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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 `_ -or visit our `website `_. diff --git a/muk_dbfilter/__init__.py b/muk_dbfilter/__init__.py deleted file mode 100644 index 326de9c..0000000 --- a/muk_dbfilter/__init__.py +++ /dev/null @@ -1,29 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK DB Filter -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -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 diff --git a/muk_dbfilter/__manifest__.py b/muk_dbfilter/__manifest__.py deleted file mode 100644 index 4c0f89f..0000000 --- a/muk_dbfilter/__manifest__.py +++ /dev/null @@ -1,40 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK DB Filter -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -{ - "name": "MuK DB Filter", - "summary": """Headers based Database Selection""", - "version": "13.0.1.0.0", - "category": "Extra Tools", - "license": "LGPL-3", - "author": "MuK IT", - "website": "https://www.mukit.at", - "depends": [], - "contributors": [ - "Kerrim Abdelhamed ", - "Mathias Markl ", - ], - "images": ["static/description/banner.png"], - "installable": True, - "application": False, - "post_load": "_patch_system", -} diff --git a/muk_dbfilter/doc/changelog.rst b/muk_dbfilter/doc/changelog.rst deleted file mode 100644 index 9ee2b48..0000000 --- a/muk_dbfilter/doc/changelog.rst +++ /dev/null @@ -1,4 +0,0 @@ -`1.0.0` -------- - -- Init version diff --git a/muk_dbfilter/doc/index.rst b/muk_dbfilter/doc/index.rst deleted file mode 100644 index 933d56d..0000000 --- a/muk_dbfilter/doc/index.rst +++ /dev/null @@ -1,120 +0,0 @@ -============= -MuK DB Filter -============= - -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 `_). - -To install our modules using the package manager make sure -`odoo-autodiscover `_ is installed -correctly. Note that for Odoo version 11.0 and later this is not necessary anymore. -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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**Example:** - -``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo13-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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -For modules licensed under a proprietary license, you will receive the access data after you purchased -the module. If the purchase were made at the Odoo store please contact our `support `_ -with a confirmation of the 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 `` - -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. - -Credit -====== - -Contributors ------------- - -* Kerrim Abdelhamed -* Mathias Markl - -Images ------- - -Some pictures are based on or inspired by the icon set of Font Awesome: - -* `Font Awesome `_ - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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 `_ -or visit our `website `_. diff --git a/muk_dbfilter/i18n/ar.po b/muk_dbfilter/i18n/ar.po deleted file mode 100644 index e6d46bf..0000000 --- a/muk_dbfilter/i18n/ar.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:19+0000\n" -"PO-Revision-Date: 2019-07-12 23:19+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_dbfilter/i18n/de.po b/muk_dbfilter/i18n/de.po deleted file mode 100644 index e6d46bf..0000000 --- a/muk_dbfilter/i18n/de.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:19+0000\n" -"PO-Revision-Date: 2019-07-12 23:19+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_dbfilter/i18n/es.po b/muk_dbfilter/i18n/es.po deleted file mode 100644 index e6d46bf..0000000 --- a/muk_dbfilter/i18n/es.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:19+0000\n" -"PO-Revision-Date: 2019-07-12 23:19+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_dbfilter/i18n/fr.po b/muk_dbfilter/i18n/fr.po deleted file mode 100644 index e6d46bf..0000000 --- a/muk_dbfilter/i18n/fr.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:19+0000\n" -"PO-Revision-Date: 2019-07-12 23:19+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_dbfilter/i18n/hi.po b/muk_dbfilter/i18n/hi.po deleted file mode 100644 index 6553d0e..0000000 --- a/muk_dbfilter/i18n/hi.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:20+0000\n" -"PO-Revision-Date: 2019-07-12 23:20+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_dbfilter/i18n/muk_dbfilter.pot b/muk_dbfilter/i18n/muk_dbfilter.pot deleted file mode 100644 index 3e232bf..0000000 --- a/muk_dbfilter/i18n/muk_dbfilter.pot +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:18+0000\n" -"PO-Revision-Date: 2019-07-12 23:18+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_dbfilter/i18n/nl.po b/muk_dbfilter/i18n/nl.po deleted file mode 100644 index 6553d0e..0000000 --- a/muk_dbfilter/i18n/nl.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:20+0000\n" -"PO-Revision-Date: 2019-07-12 23:20+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_dbfilter/i18n/pt.po b/muk_dbfilter/i18n/pt.po deleted file mode 100644 index 6553d0e..0000000 --- a/muk_dbfilter/i18n/pt.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:20+0000\n" -"PO-Revision-Date: 2019-07-12 23:20+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_dbfilter/i18n/ru.po b/muk_dbfilter/i18n/ru.po deleted file mode 100644 index 6553d0e..0000000 --- a/muk_dbfilter/i18n/ru.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:20+0000\n" -"PO-Revision-Date: 2019-07-12 23:20+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_dbfilter/patch/__init__.py b/muk_dbfilter/patch/__init__.py deleted file mode 100644 index 1fc8764..0000000 --- a/muk_dbfilter/patch/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK DB Filter -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import http diff --git a/muk_dbfilter/patch/http.py b/muk_dbfilter/patch/http.py deleted file mode 100644 index f89cad0..0000000 --- a/muk_dbfilter/patch/http.py +++ /dev/null @@ -1,38 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK DB Filter -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging -import re - -from odoo import http -from odoo.addons.muk_utils.tools.patch import monkey_patch -from odoo.http import request - -_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 diff --git a/muk_dbfilter/static/description/banner.png b/muk_dbfilter/static/description/banner.png deleted file mode 100644 index 534951c..0000000 Binary files a/muk_dbfilter/static/description/banner.png and /dev/null differ diff --git a/muk_dbfilter/static/description/icon.png b/muk_dbfilter/static/description/icon.png deleted file mode 100644 index 3162407..0000000 Binary files a/muk_dbfilter/static/description/icon.png and /dev/null differ diff --git a/muk_dbfilter/static/description/icon.svg b/muk_dbfilter/static/description/icon.svg deleted file mode 100644 index f7a13a0..0000000 --- a/muk_dbfilter/static/description/icon.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/muk_dbfilter/static/description/index.html b/muk_dbfilter/static/description/index.html deleted file mode 100644 index f3d9529..0000000 --- a/muk_dbfilter/static/description/index.html +++ /dev/null @@ -1,171 +0,0 @@ -
-
-

MuK DB Filter

-

Headers based Database Selection

-

- MuK IT GmbH - www.mukit.at -

-
-
- -
-
-
-

Overview

-

- 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. -

-
-
-
-
- -
- -
-
-
- - - -
-
-
- -
-

Help and Support

-
- Feel free to contact us, if you need any help with your Odoo integration or - addiontal features. -
- - -
diff --git a/muk_dbfilter/static/description/logo.png b/muk_dbfilter/static/description/logo.png deleted file mode 100644 index 9427ce3..0000000 Binary files a/muk_dbfilter/static/description/logo.png and /dev/null differ diff --git a/muk_dbfilter/static/description/preview.png b/muk_dbfilter/static/description/preview.png deleted file mode 100644 index 1deb1cc..0000000 Binary files a/muk_dbfilter/static/description/preview.png and /dev/null differ diff --git a/muk_dbfilter/static/description/service_customization.png b/muk_dbfilter/static/description/service_customization.png deleted file mode 100644 index 3eac664..0000000 Binary files a/muk_dbfilter/static/description/service_customization.png and /dev/null differ diff --git a/muk_dbfilter/static/description/service_development.png b/muk_dbfilter/static/description/service_development.png deleted file mode 100644 index 580d460..0000000 Binary files a/muk_dbfilter/static/description/service_development.png and /dev/null differ diff --git a/muk_dbfilter/static/description/service_implementation.png b/muk_dbfilter/static/description/service_implementation.png deleted file mode 100644 index d64b66b..0000000 Binary files a/muk_dbfilter/static/description/service_implementation.png and /dev/null differ diff --git a/muk_dbfilter/static/description/service_integration.png b/muk_dbfilter/static/description/service_integration.png deleted file mode 100644 index 76c5e80..0000000 Binary files a/muk_dbfilter/static/description/service_integration.png and /dev/null differ diff --git a/muk_dbfilter/static/description/service_support.png b/muk_dbfilter/static/description/service_support.png deleted file mode 100644 index 4c530fa..0000000 Binary files a/muk_dbfilter/static/description/service_support.png and /dev/null differ diff --git a/muk_fields_file/LICENSE b/muk_fields_file/LICENSE deleted file mode 100644 index 0a04128..0000000 --- a/muk_fields_file/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/muk_fields_file/README.rst b/muk_fields_file/README.rst deleted file mode 100644 index 6bb6961..0000000 --- a/muk_fields_file/README.rst +++ /dev/null @@ -1,116 +0,0 @@ -=================== -MuK Filestore Field -=================== - -Provides a field to store bytes as a file in the filestore. This fields are useful -with data values too large to be manipulated conveniently as a whole and a way to -keep the database slim since it only has to save the path to the file and not the -content itself. - -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 `_). - -To install our modules using the package manager make sure -`odoo-autodiscover `_ is installed -correctly. Note that for Odoo version 11.0 and later this is not necessary anymore. -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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**Example:** - -``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo13-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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -For modules licensed under a proprietary license, you will receive the access data after you purchased -the module. If the purchase were made at the Odoo store please contact our `support `_ -with a confirmation of the 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 `` - -When the process is finished, restart your server and update the application in -Odoo, just like you would normally. - - -Configuration -============= - -No additional configuration is needed to use this module. - -Usage -===== - -This module has no direct visible effect on the system. It adds a new field type, -which can be used in other modules. - -Credit -====== - -Contributors ------------- - -* Mathias Markl - -Images ------- - -Some pictures are based on or inspired by the icon set of Font Awesome: - -* `Font Awesome `_ - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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 `_ -or visit our `website `_. diff --git a/muk_fields_file/__init__.py b/muk_fields_file/__init__.py deleted file mode 100644 index 5d197a8..0000000 --- a/muk_fields_file/__init__.py +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Filestore Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import fields, models - - -def _patch_system(): - from . import patch diff --git a/muk_fields_file/__manifest__.py b/muk_fields_file/__manifest__.py deleted file mode 100644 index ba5de71..0000000 --- a/muk_fields_file/__manifest__.py +++ /dev/null @@ -1,38 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Filestore Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -{ - "name": "MuK Filestore Field", - "summary": """Filestore Support for Fields""", - "version": "13.0.1.0.1", - "category": "Extra Tools", - "license": "LGPL-3", - "website": "https://www.mukit.at", - "author": "MuK IT", - "contributors": ["Mathias Markl "], - "depends": ["muk_fields_stream"], - "images": ["static/description/banner.png"], - "auto_install": False, - "application": False, - "installable": True, - "post_load": "_patch_system", -} diff --git a/muk_fields_file/doc/changelog.rst b/muk_fields_file/doc/changelog.rst deleted file mode 100644 index 9ee2b48..0000000 --- a/muk_fields_file/doc/changelog.rst +++ /dev/null @@ -1,4 +0,0 @@ -`1.0.0` -------- - -- Init version diff --git a/muk_fields_file/doc/index.rst b/muk_fields_file/doc/index.rst deleted file mode 100644 index 6bb6961..0000000 --- a/muk_fields_file/doc/index.rst +++ /dev/null @@ -1,116 +0,0 @@ -=================== -MuK Filestore Field -=================== - -Provides a field to store bytes as a file in the filestore. This fields are useful -with data values too large to be manipulated conveniently as a whole and a way to -keep the database slim since it only has to save the path to the file and not the -content itself. - -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 `_). - -To install our modules using the package manager make sure -`odoo-autodiscover `_ is installed -correctly. Note that for Odoo version 11.0 and later this is not necessary anymore. -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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**Example:** - -``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo13-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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -For modules licensed under a proprietary license, you will receive the access data after you purchased -the module. If the purchase were made at the Odoo store please contact our `support `_ -with a confirmation of the 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 `` - -When the process is finished, restart your server and update the application in -Odoo, just like you would normally. - - -Configuration -============= - -No additional configuration is needed to use this module. - -Usage -===== - -This module has no direct visible effect on the system. It adds a new field type, -which can be used in other modules. - -Credit -====== - -Contributors ------------- - -* Mathias Markl - -Images ------- - -Some pictures are based on or inspired by the icon set of Font Awesome: - -* `Font Awesome `_ - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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 `_ -or visit our `website `_. diff --git a/muk_fields_file/fields/__init__.py b/muk_fields_file/fields/__init__.py deleted file mode 100644 index 866426c..0000000 --- a/muk_fields_file/fields/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Filestore Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import file diff --git a/muk_fields_file/fields/file.py b/muk_fields_file/fields/file.py deleted file mode 100644 index 4e1e566..0000000 --- a/muk_fields_file/fields/file.py +++ /dev/null @@ -1,201 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Filestore Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import base64 -import hashlib -import logging -import os -import re -import shutil -import tempfile -from collections import defaultdict - -from odoo import fields, tools -from odoo.addons.muk_utils.tools.file import ensure_path_directories -from odoo.tools import config, human_size - -_logger = logging.getLogger(__name__) - - -def get_store_path(dbname): - return os.path.join(config.get("data_dir"), "files", dbname) - - -def clean_store(dbname, env): - tables = defaultdict(set) - for model_name in env.registry.models: - model = env[model_name] - if not model._abstract: - for name, field in model._fields.items(): - if field.type == "file": - tables[model._table].add(name) - checklist = set() - filestore = get_store_path(dbname) - path = os.path.join(filestore, "checklist") - for root, dirs, files in os.walk(path): - for file in files: - checkpath = os.path.join(root, file) - relpath = os.path.relpath(checkpath, path) - checklist.add(os.path.join(filestore, relpath)) - env.cr.commit() - whitelist = set() - for table, fields in tables.items(): - select_fields = list(fields) - env.cr.execute("LOCK {} IN SHARE MODE".format(table)) - select_query = "SELECT {}".format(", ".join(select_fields)) - where_query = "WHERE {} IN %(paths)s".format(select_fields[0]) - if len(select_fields) > 1: - for field in select_fields[:1]: - where_query += "OR {} IN %(paths)s".format(field) - sql_query = "{} FROM {} {};".format(select_query, table, where_query) - for paths in env.cr.split_for_in_conditions(checklist): - env.cr.execute(sql_query, {"paths": paths}) - for row in env.cr.fetchall(): - for column in row: - whitelist.add(column) - remove = checklist - whitelist - for file in remove: - try: - os.unlink(file) - except (OSError, IOError): - _logger.warn("Deleting file from %s failed!", file, exc_info=True) - with tools.ignore(OSError): - shutil.rmtree(path) - env.cr.commit() - _logger.info( - "Cleaned files [ %d checked | %d removed ]", len(checklist), len(remove) - ) - - -class File(fields.Field): - - type = "file" - column_type = ("varchar", "varchar") - _slots = { - "prefetch": False, - "depends_context": ("bin_size", "human_size", "path", "bytes", "stream", "checksum", "base64"), - } - - def _get_file_path(self, checksume, dbname): - name = os.path.join(checksume[:2], checksume) - name = re.sub("[.]", "", name).strip("/\\") - filestore = get_store_path(dbname) - path = os.path.join(filestore, name) - ensure_path_directories(path) - return path - - def _add_to_checklist(self, path, dbname): - filestore = get_store_path(dbname) - relpath = os.path.relpath(path, filestore) - checklist = os.path.join(filestore, "checklist", relpath) - if not os.path.exists(checklist): - ensure_path_directories(checklist) - open(checklist, "ab").close() - - def _get_checksum(self, value): - if isinstance(value, bytes): - return hashlib.sha1(value).hexdigest() - else: - checksum = hashlib.sha1() - while True: - chunk = value.read(4096) - if not chunk: - return checksum.hexdigest() - checksum.update(chunk) - - def convert_to_column(self, value, record, values=None, validate=True): - path = None - try: - current_path = record.with_context({"path": True})[self.name] - if current_path: - self._add_to_checklist(current_path, record.env.cr.dbname) - if not value: - return None - binary = None - if isinstance(value, bytes): - binary = value - elif isinstance(value, str): - binary = base64.b64decode(value) - if binary: - checksume = self._get_checksum(binary) - path = self._get_file_path(checksume, record.env.cr.dbname) - with open(path, "wb") as file: - file.write(binary) - self._add_to_checklist(path, record.env.cr.dbname) - else: - checksume = self._get_checksum(value) - path = self._get_file_path(checksume, record.env.cr.dbname) - value.seek(0, 0) - with open(path, "wb") as file: - while True: - chunk = value.read(4096) - if not chunk: - break - file.write(chunk) - self._add_to_checklist(path) - except (IOError, OSError): - _logger.warn("Writing file to %s failed!", path, exc_info=True) - return path - - def convert_to_record(self, value, record): - if value and isinstance(value, str) and os.path.exists(value): - try: - with open(value, "rb") as file: - if record._context.get("human_size"): - return human_size(file.seek(0, 2)) - elif record._context.get("bin_size"): - return file.seek(0, 2) - elif record._context.get("path"): - return value - elif record._context.get("bytes"): - return file.read() - elif record._context.get("stream"): - temp = tempfile.TemporaryFile() - while True: - chunk = file.read(4096) - if not chunk: - temp.seek(0) - return temp - temp.write(chunk) - elif record._context.get("checksum"): - checksum = hashlib.sha1() - while True: - chunk = file.read(4096) - if not chunk: - return checksum.hexdigest() - checksum.update(chunk) - else: - return base64.b64encode(file.read()) - except (IOError, OSError): - _logger.warn("Reading file from %s failed!", value, exc_info=True) - return None if value is False else value - - def convert_to_export(self, value, record): - if value: - try: - with open(value, "rb") as file: - if record._context.get("export_raw_data"): - return file.read() - return base64.b64encode(file.read()) - except (IOError, OSError): - _logger.warn("Reading file from %s failed!", value, exc_info=True) - return "" diff --git a/muk_fields_file/i18n/ar.po b/muk_fields_file/i18n/ar.po deleted file mode 100644 index 13dfda7..0000000 --- a/muk_fields_file/i18n/ar.po +++ /dev/null @@ -1,121 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_file -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:48+0000\n" -"PO-Revision-Date: 2019-07-12 23:48+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "تفريغ تلقائي" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_base -msgid "Base" -msgstr "الأساس" - -#. module: muk_fields_file -#: model:ir.model.fields,field_description:muk_fields_file.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "نوع الحقل" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_model_fields -msgid "Fields" -msgstr "الحقول" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_http -msgid "HTTP Routing" -msgstr "مسار HTTP" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "بيانات ثنائية" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "قيمة منطقية" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "محارف" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "تاريخ" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "التاريخ والوقت" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "file" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "فاصلة عائمة" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "عدد صحيح" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "علاقة متعدد لمتعدد" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "علاقة متعدد لواحد" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "قيمة نقدية" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "علاقة واحد لمتعدد" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "المرجع" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "قائمة خيارات" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "نص" diff --git a/muk_fields_file/i18n/de.po b/muk_fields_file/i18n/de.po deleted file mode 100644 index e113b46..0000000 --- a/muk_fields_file/i18n/de.po +++ /dev/null @@ -1,121 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_file -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:49+0000\n" -"PO-Revision-Date: 2019-07-12 23:49+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "Automatisch aufräumen" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_base -msgid "Base" -msgstr "Basis" - -#. module: muk_fields_file -#: model:ir.model.fields,field_description:muk_fields_file.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "Typfeld-Text" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_model_fields -msgid "Fields" -msgstr "Felder" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_http -msgid "HTTP Routing" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "Binär" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "Boolean" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "Zeichen" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "Datum" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "Datum/Zeit" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "file" -msgstr "Datei" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "Gleitkommazahl" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "HTML" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "Ganzzahl" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "Many2many" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "Many2One" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "monetär" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "One2many" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "Referenz" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "Auswahl" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "Text" diff --git a/muk_fields_file/i18n/es.po b/muk_fields_file/i18n/es.po deleted file mode 100644 index 0340be8..0000000 --- a/muk_fields_file/i18n/es.po +++ /dev/null @@ -1,121 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_file -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:49+0000\n" -"PO-Revision-Date: 2019-07-12 23:49+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_base -msgid "Base" -msgstr "" - -#. module: muk_fields_file -#: model:ir.model.fields,field_description:muk_fields_file.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "Tipo de campo" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_model_fields -msgid "Fields" -msgstr "Campos" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_http -msgid "HTTP Routing" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "binario" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "booleano" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "Carácter" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "fecha" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "Fecha y hora" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "file" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "número flotante" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "entero" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "Monetario" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "Referencia" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "Selección" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "texto" diff --git a/muk_fields_file/i18n/fr.po b/muk_fields_file/i18n/fr.po deleted file mode 100644 index ba33d65..0000000 --- a/muk_fields_file/i18n/fr.po +++ /dev/null @@ -1,121 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_file -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:49+0000\n" -"PO-Revision-Date: 2019-07-12 23:49+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_base -msgid "Base" -msgstr "" - -#. module: muk_fields_file -#: model:ir.model.fields,field_description:muk_fields_file.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "Type de Champ" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_model_fields -msgid "Fields" -msgstr "Champs" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_http -msgid "HTTP Routing" -msgstr "Routage HTTP" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "binaire" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "booléen" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "caractère" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "date/heure" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "file" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "flottant" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "monétaire" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "référence" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "sélection" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "texte" diff --git a/muk_fields_file/i18n/hi.po b/muk_fields_file/i18n/hi.po deleted file mode 100644 index d47120f..0000000 --- a/muk_fields_file/i18n/hi.po +++ /dev/null @@ -1,121 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_file -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:49+0000\n" -"PO-Revision-Date: 2019-07-12 23:49+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_base -msgid "Base" -msgstr "" - -#. module: muk_fields_file -#: model:ir.model.fields,field_description:muk_fields_file.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_model_fields -msgid "Fields" -msgstr "" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_http -msgid "HTTP Routing" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "file" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "" diff --git a/muk_fields_file/i18n/muk_fields_file.pot b/muk_fields_file/i18n/muk_fields_file.pot deleted file mode 100644 index 655e166..0000000 --- a/muk_fields_file/i18n/muk_fields_file.pot +++ /dev/null @@ -1,121 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_file -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:48+0000\n" -"PO-Revision-Date: 2019-07-12 23:48+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_base -msgid "Base" -msgstr "" - -#. module: muk_fields_file -#: model:ir.model.fields,field_description:muk_fields_file.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_model_fields -msgid "Fields" -msgstr "" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_http -msgid "HTTP Routing" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "file" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "" diff --git a/muk_fields_file/i18n/nl.po b/muk_fields_file/i18n/nl.po deleted file mode 100644 index a6d7f16..0000000 --- a/muk_fields_file/i18n/nl.po +++ /dev/null @@ -1,121 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_file -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:50+0000\n" -"PO-Revision-Date: 2019-07-12 23:50+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "Automatisch vacuum" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_base -msgid "Base" -msgstr "Basis" - -#. module: muk_fields_file -#: model:ir.model.fields,field_description:muk_fields_file.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "Soort veld" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_model_fields -msgid "Fields" -msgstr "Velden" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_http -msgid "HTTP Routing" -msgstr "HTTP routing" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "binair" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "datum" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "file" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "monetair" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "referentie" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "selectie" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "tekst" diff --git a/muk_fields_file/i18n/pt.po b/muk_fields_file/i18n/pt.po deleted file mode 100644 index c4bef58..0000000 --- a/muk_fields_file/i18n/pt.po +++ /dev/null @@ -1,121 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_file -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:50+0000\n" -"PO-Revision-Date: 2019-07-12 23:50+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_base -msgid "Base" -msgstr "" - -#. module: muk_fields_file -#: model:ir.model.fields,field_description:muk_fields_file.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "Tipo de Campo" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_model_fields -msgid "Fields" -msgstr "Campos" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_http -msgid "HTTP Routing" -msgstr "Rota HTTP" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "file" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "Texto" diff --git a/muk_fields_file/i18n/ru.po b/muk_fields_file/i18n/ru.po deleted file mode 100644 index de3125e..0000000 --- a/muk_fields_file/i18n/ru.po +++ /dev/null @@ -1,121 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_file -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:50+0000\n" -"PO-Revision-Date: 2019-07-12 23:50+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_autovacuum -msgid "Automatic Vacuum" -msgstr "" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_base -msgid "Base" -msgstr "Базовый" - -#. module: muk_fields_file -#: model:ir.model.fields,field_description:muk_fields_file.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "Тип поля" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_model_fields -msgid "Fields" -msgstr "Поля" - -#. module: muk_fields_file -#: model:ir.model,name:muk_fields_file.model_ir_http -msgid "HTTP Routing" -msgstr "Маршрутизация HTTP" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "file" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "" - -#. module: muk_fields_file -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "" diff --git a/muk_fields_file/models/__init__.py b/muk_fields_file/models/__init__.py deleted file mode 100644 index a4dcdf7..0000000 --- a/muk_fields_file/models/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Filestore Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import base, ir_autovacuum, ir_http, ir_model_fields diff --git a/muk_fields_file/models/base.py b/muk_fields_file/models/base.py deleted file mode 100644 index bfea049..0000000 --- a/muk_fields_file/models/base.py +++ /dev/null @@ -1,42 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Filestore Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging - -from odoo import api, models - -_logger = logging.getLogger(__name__) - - -class Base(models.AbstractModel): - - _inherit = "base" - - def unlink(self): - for name in self._fields: - field = self._fields[name] - if field.type == "file" and field.store: - for record in self: - path = record.with_context({"path": True})[name] - if path: - field._add_to_checklist(path, self.env.cr.dbname) - super(Base, self).unlink() diff --git a/muk_fields_file/models/ir_autovacuum.py b/muk_fields_file/models/ir_autovacuum.py deleted file mode 100644 index 7ac566f..0000000 --- a/muk_fields_file/models/ir_autovacuum.py +++ /dev/null @@ -1,39 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Filestore Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging - -from odoo import api, models -from odoo.addons.muk_fields_file.fields import file - -_logger = logging.getLogger(__name__) - - -class AutoVacuum(models.AbstractModel): - - _inherit = "ir.autovacuum" - - @api.model - def power_on(self, *args, **kwargs): - res = super(AutoVacuum, self).power_on(*args, **kwargs) - file.clean_store(self.env.cr.dbname, self.env) - return res diff --git a/muk_fields_file/models/ir_http.py b/muk_fields_file/models/ir_http.py deleted file mode 100644 index a28e899..0000000 --- a/muk_fields_file/models/ir_http.py +++ /dev/null @@ -1,43 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Binary Stream Support -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import io -import logging -import mimetypes - -from odoo import models - -_logger = logging.getLogger(__name__) - - -class IrHttp(models.AbstractModel): - - _inherit = "ir.http" - - # ---------------------------------------------------------- - # Helper - # ---------------------------------------------------------- - - def _check_streamable(record, field): - if record._fields[field].type == 'file': - return True - return super(IrHttp, self)._check_streamable(record, field) diff --git a/muk_fields_file/models/ir_model_fields.py b/muk_fields_file/models/ir_model_fields.py deleted file mode 100644 index 440441c..0000000 --- a/muk_fields_file/models/ir_model_fields.py +++ /dev/null @@ -1,30 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Filestore Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from odoo import fields, models - - -class IrModelField(models.Model): - - _inherit = "ir.model.fields" - - ttype = fields.Selection(selection_add=[("file", "file")]) diff --git a/muk_fields_file/patch/__init__.py b/muk_fields_file/patch/__init__.py deleted file mode 100644 index bbeab55..0000000 --- a/muk_fields_file/patch/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Filestore Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import fields, service_db diff --git a/muk_fields_file/patch/fields.py b/muk_fields_file/patch/fields.py deleted file mode 100644 index 527ae35..0000000 --- a/muk_fields_file/patch/fields.py +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Filestore Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from odoo import fields -from odoo.addons.muk_fields_file.fields.file import File - -fields.File = File diff --git a/muk_fields_file/patch/service_db.py b/muk_fields_file/patch/service_db.py deleted file mode 100644 index c1c1a66..0000000 --- a/muk_fields_file/patch/service_db.py +++ /dev/null @@ -1,113 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Filestore Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging -import os -import shutil -import tempfile -import zipfile - -from odoo.addons.muk_fields_file.fields import file -from odoo.addons.muk_utils.tools import patch -from odoo.service import db -from odoo.tools import osutil - -_logger = logging.getLogger(__name__) - - -@patch.monkey_patch(db) -@db.check_db_management_enabled -def exp_duplicate_database(db_original_name, db_name): - res = exp_duplicate_database.super(db_original_name, db_name) - from_files = file.get_store_path(db_original_name) - to_files = file.get_store_path(db_name) - if os.path.exists(from_files) and not os.path.exists(to_files): - shutil.copytree(from_files, to_files) - return res - - -@patch.monkey_patch(db) -@db.check_db_management_enabled -def exp_drop(db_name): - res = exp_drop.super(db_name) - files = file.get_store_path(db_name) - if os.path.exists(files): - shutil.rmtree(files) - return res - - -@patch.monkey_patch(db) -@db.check_db_management_enabled -def dump_db(db_name, stream, backup_format="zip"): - if backup_format == "zip": - res = dump_db.super(db_name, False, backup_format) - with osutil.tempdir() as dump_dir: - with zipfile.ZipFile(res, "r") as zip: - zip.extractall(dump_dir) - files = file.get_store_path(db_name) - if os.path.exists(files): - shutil.copytree(files, os.path.join(dump_dir, "files")) - if stream: - osutil.zip_dir( - dump_dir, - stream, - include_dir=False, - fnct_sort=lambda file_name: file_name != "dump.sql", - ) - else: - t = tempfile.TemporaryFile() - osutil.zip_dir( - dump_dir, - t, - include_dir=False, - fnct_sort=lambda file_name: file_name != "dump.sql", - ) - t.seek(0) - return t - else: - return dump_db.super(db_name, stream, backup_format) - - -@patch.monkey_patch(db) -@db.check_db_management_enabled -def restore_db(db, dump_file, copy=False): - res = restore_db.super(db, dump_file, copy) - with osutil.tempdir() as dump_dir: - if zipfile.is_zipfile(dump_file): - with zipfile.ZipFile(dump_file, "r") as zip: - files = [m for m in zip.namelist() if m.startswith("files/")] - if files: - z.extractall(dump_dir, files) - files_path = os.path.join(dump_dir, "files") - shutil.move(files_path, file.get_store_path(db_name)) - return res - - -@patch.monkey_patch(db) -@db.check_db_management_enabled -def exp_rename(old_name, new_name): - res = exp_rename.super(old_name, new_name) - from_files = file.get_store_path(old_name) - to_files = file.get_store_path(new_name) - if os.path.exists(from_files) and not os.path.exists(to_files): - shutil.copytree(from_files, to_files) - return res diff --git a/muk_fields_file/static/description/banner.png b/muk_fields_file/static/description/banner.png deleted file mode 100644 index 5a691ec..0000000 Binary files a/muk_fields_file/static/description/banner.png and /dev/null differ diff --git a/muk_fields_file/static/description/icon.png b/muk_fields_file/static/description/icon.png deleted file mode 100644 index 8a4f3ff..0000000 Binary files a/muk_fields_file/static/description/icon.png and /dev/null differ diff --git a/muk_fields_file/static/description/icon.svg b/muk_fields_file/static/description/icon.svg deleted file mode 100644 index c51aad0..0000000 --- a/muk_fields_file/static/description/icon.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/muk_fields_file/static/description/index.html b/muk_fields_file/static/description/index.html deleted file mode 100644 index 6351fec..0000000 --- a/muk_fields_file/static/description/index.html +++ /dev/null @@ -1,188 +0,0 @@ -
-
-

MuK Filestore Field

-

Filestore Support for Fields

-

- MuK IT GmbH - www.mukit.at -

-
-
- -
-
-
-

Overview

-
-

- Provides a field to store bytes as a file in the filestore. This - fields are useful with data values too large to be manipulated - conveniently as a whole and a way to keep the database slim since it - only has to save the path to the file and not the content itself. -

-
-
-		    	
-from odoo.addons.muk_fields_file.fields.file import File
-
-class FileModel(models.Model):
-
-    data_content = File(string="Data")
-
-    def data(self):
-        for record in self:
-            base64 = record.data_content
-            oid = record.with_context({'path': True}).data_content
-            size = record.with_context({'bin_size': True}).data_content
-            bytes = record.with_context({'bytes': True}).data_content
-            stream = record.with_context({'stream': True}).data_content
-		    	
-			
-
-
-
- -
- -
- -
-
-
- - - -
-
-
- -
-

Help and Support

-
- Feel free to contact us, if you need any help with your Odoo integration or - addiontal features. -
- - -
diff --git a/muk_fields_file/static/description/logo.png b/muk_fields_file/static/description/logo.png deleted file mode 100644 index 9427ce3..0000000 Binary files a/muk_fields_file/static/description/logo.png and /dev/null differ diff --git a/muk_fields_file/static/description/preview.png b/muk_fields_file/static/description/preview.png deleted file mode 100644 index 1deb1cc..0000000 Binary files a/muk_fields_file/static/description/preview.png and /dev/null differ diff --git a/muk_fields_file/static/description/service_customization.png b/muk_fields_file/static/description/service_customization.png deleted file mode 100644 index 3eac664..0000000 Binary files a/muk_fields_file/static/description/service_customization.png and /dev/null differ diff --git a/muk_fields_file/static/description/service_development.png b/muk_fields_file/static/description/service_development.png deleted file mode 100644 index 580d460..0000000 Binary files a/muk_fields_file/static/description/service_development.png and /dev/null differ diff --git a/muk_fields_file/static/description/service_implementation.png b/muk_fields_file/static/description/service_implementation.png deleted file mode 100644 index d64b66b..0000000 Binary files a/muk_fields_file/static/description/service_implementation.png and /dev/null differ diff --git a/muk_fields_file/static/description/service_integration.png b/muk_fields_file/static/description/service_integration.png deleted file mode 100644 index 76c5e80..0000000 Binary files a/muk_fields_file/static/description/service_integration.png and /dev/null differ diff --git a/muk_fields_file/static/description/service_support.png b/muk_fields_file/static/description/service_support.png deleted file mode 100644 index 4c530fa..0000000 Binary files a/muk_fields_file/static/description/service_support.png and /dev/null differ diff --git a/muk_fields_file/tests/__init__.py b/muk_fields_file/tests/__init__.py deleted file mode 100644 index ad9627b..0000000 --- a/muk_fields_file/tests/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Filestore Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import test_file diff --git a/muk_fields_file/tests/test_file.py b/muk_fields_file/tests/test_file.py deleted file mode 100644 index 87769b3..0000000 --- a/muk_fields_file/tests/test_file.py +++ /dev/null @@ -1,41 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Filestore Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging -import os - -from odoo.addons.muk_fields_file.fields.file import File -from odoo.tests import common - -_path = os.path.dirname(os.path.dirname(__file__)) -_logger = logging.getLogger(__name__) - - -class FileTestCase(common.TransactionCase): - def setUp(self): - super(FileTestCase, self).setUp() - - def tearDown(self): - super(FileTestCase, self).tearDown() - - def test_import(self): - self.assertEqual(File.type, "file") diff --git a/muk_fields_lobject/LICENSE b/muk_fields_lobject/LICENSE deleted file mode 100644 index 0a04128..0000000 --- a/muk_fields_lobject/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/muk_fields_lobject/README.rst b/muk_fields_lobject/README.rst deleted file mode 100644 index 7c7f6ff..0000000 --- a/muk_fields_lobject/README.rst +++ /dev/null @@ -1,134 +0,0 @@ -======================= -MuK Large Objects Field -======================= - -PostgreSQL offers support for large objects, which provide stream-style access -to user data that is stored in a special large-object structure. They are useful -with data values too large to be manipulated conveniently as a whole. - -Psycopg allows access to the large object using the `lobject` class. Objects are -generated using the `connection.lobject()` factory method. Data can be retrieved -either as bytes or as Unicode strings. - -Psycopg large object support efficient import/export with file system files using -the `lo_import()` and `lo_export()` libpq functions. - -Changed in version 2.6: added support for large objects greated than 2GB. Note -that the support is enabled only if all the following conditions are verified: - -* the Python build is 64 bits; -* the extension was built against at least libpq 9.3; -* the server version is at least PostgreSQL 9.3 (server_version must be >= 90300). - -If Psycopg was built with 64 bits large objects support (i.e. the first two -contidions above are verified), the `psycopg2.__version__` constant will contain -the lo64 flag. If any of the contition is not met several lobject methods will -fail if the arguments exceed 2GB. - -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 `_). - -To install our modules using the package manager make sure -`odoo-autodiscover `_ is installed -correctly. Note that for Odoo version 11.0 and later this is not necessary anymore. -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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**Example:** - -``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo13-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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -For modules licensed under a proprietary license, you will receive the access data after you purchased -the module. If the purchase were made at the Odoo store please contact our `support `_ -with a confirmation of the 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 `` - -When the process is finished, restart your server and update the application in -Odoo, just like you would normally. - - -Configuration -============= - -No additional configuration is needed to use this module. - -Usage -===== - -This module has no direct visible effect on the system. It adds a new field type, -which can be used in other modules. - -Credit -====== - -Contributors ------------- - -* Mathias Markl - -Images ------- - -Some pictures are based on or inspired by the icon set of Font Awesome: - -* `Font Awesome `_ - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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 `_ -or visit our `website `_. diff --git a/muk_fields_lobject/__init__.py b/muk_fields_lobject/__init__.py deleted file mode 100644 index 20e7159..0000000 --- a/muk_fields_lobject/__init__.py +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import fields, models - - -def _patch_system(): - from . import patch diff --git a/muk_fields_lobject/__manifest__.py b/muk_fields_lobject/__manifest__.py deleted file mode 100644 index 122cfcf..0000000 --- a/muk_fields_lobject/__manifest__.py +++ /dev/null @@ -1,38 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -{ - "name": "MuK Large Objects Field", - "summary": """PGSQL Large Objects Support for Fields""", - "version": "13.0.1.0.1", - "category": "Extra Tools", - "license": "LGPL-3", - "website": "https://www.mukit.at", - "author": "MuK IT", - "contributors": ["Mathias Markl "], - "depends": ["muk_fields_stream"], - "images": ["static/description/banner.png"], - "auto_install": False, - "application": False, - "installable": True, - "post_load": "_patch_system", -} diff --git a/muk_fields_lobject/doc/changelog.rst b/muk_fields_lobject/doc/changelog.rst deleted file mode 100644 index 8466ee4..0000000 --- a/muk_fields_lobject/doc/changelog.rst +++ /dev/null @@ -1,22 +0,0 @@ -`2.2.0` -------- - -- Monkey Patch Methods - -`2.1.0` -------- - -- Added XML View Support - -`2.0.0` -------- - -- Migrated to Python 3 -- Can handle Base64 input -- Can return value as Base64 -- Can return value as Checksum - -`1.0.0` -------- - -- Init version diff --git a/muk_fields_lobject/doc/index.rst b/muk_fields_lobject/doc/index.rst deleted file mode 100644 index 7c7f6ff..0000000 --- a/muk_fields_lobject/doc/index.rst +++ /dev/null @@ -1,134 +0,0 @@ -======================= -MuK Large Objects Field -======================= - -PostgreSQL offers support for large objects, which provide stream-style access -to user data that is stored in a special large-object structure. They are useful -with data values too large to be manipulated conveniently as a whole. - -Psycopg allows access to the large object using the `lobject` class. Objects are -generated using the `connection.lobject()` factory method. Data can be retrieved -either as bytes or as Unicode strings. - -Psycopg large object support efficient import/export with file system files using -the `lo_import()` and `lo_export()` libpq functions. - -Changed in version 2.6: added support for large objects greated than 2GB. Note -that the support is enabled only if all the following conditions are verified: - -* the Python build is 64 bits; -* the extension was built against at least libpq 9.3; -* the server version is at least PostgreSQL 9.3 (server_version must be >= 90300). - -If Psycopg was built with 64 bits large objects support (i.e. the first two -contidions above are verified), the `psycopg2.__version__` constant will contain -the lo64 flag. If any of the contition is not met several lobject methods will -fail if the arguments exceed 2GB. - -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 `_). - -To install our modules using the package manager make sure -`odoo-autodiscover `_ is installed -correctly. Note that for Odoo version 11.0 and later this is not necessary anymore. -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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**Example:** - -``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo13-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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -For modules licensed under a proprietary license, you will receive the access data after you purchased -the module. If the purchase were made at the Odoo store please contact our `support `_ -with a confirmation of the 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 `` - -When the process is finished, restart your server and update the application in -Odoo, just like you would normally. - - -Configuration -============= - -No additional configuration is needed to use this module. - -Usage -===== - -This module has no direct visible effect on the system. It adds a new field type, -which can be used in other modules. - -Credit -====== - -Contributors ------------- - -* Mathias Markl - -Images ------- - -Some pictures are based on or inspired by the icon set of Font Awesome: - -* `Font Awesome `_ - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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 `_ -or visit our `website `_. diff --git a/muk_fields_lobject/fields/__init__.py b/muk_fields_lobject/fields/__init__.py deleted file mode 100644 index cdb4cd5..0000000 --- a/muk_fields_lobject/fields/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import lobject diff --git a/muk_fields_lobject/fields/lobject.py b/muk_fields_lobject/fields/lobject.py deleted file mode 100644 index 15a21fa..0000000 --- a/muk_fields_lobject/fields/lobject.py +++ /dev/null @@ -1,98 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import base64 -import hashlib -import logging -import tempfile - -from odoo import fields -from odoo.tools import human_size - -_logger = logging.getLogger(__name__) - - -class LargeObject(fields.Field): - - type = "lobject" - column_type = ("oid", "oid") - _slots = { - "prefetch": False, - "depends_context": ("bin_size", "human_size", "oid", "bytes", "stream", "checksum", "base64"), - } - - def convert_to_column(self, value, record, values=None, validate=True): - oid = record.with_context({"oid": True})[self.name] - if oid: - record.env.cr._cnx.lobject(oid, "rb").unlink() - if not value: - return None - lobject = record.env.cr._cnx.lobject(0, "wb") - if isinstance(value, bytes): - lobject.write(value) - elif isinstance(value, str): - lobject.write(base64.b64decode(value)) - else: - while True: - chunk = value.read(4096) - if not chunk: - break - lobject.write(chunk) - return lobject.oid - - def convert_to_record(self, value, record): - if value and isinstance(value, int): - lobject = record.env.cr._cnx.lobject(value, "rb") - if record._context.get("human_size"): - return human_size(lobject.seek(0, 2)) - elif record._context.get("bin_size"): - return lobject.seek(0, 2) - elif record._context.get("oid"): - return lobject.oid - elif record._context.get("bytes"): - return lobject.read() - elif record._context.get("stream"): - file = tempfile.TemporaryFile() - while True: - chunk = lobject.read(4096) - if not chunk: - file.seek(0) - return file - file.write(chunk) - elif record._context.get("checksum"): - checksum = hashlib.sha1() - while True: - chunk = lobject.read(4096) - if not chunk: - return checksum.hexdigest() - checksum.update(chunk) - else: - return base64.b64encode(lobject.read()) - return None if value is False else value - - def convert_to_export(self, value, record): - if value: - lobject = record.env.cr._cnx.lobject(value, "rb") - if record._context.get("export_raw_data"): - return lobject.read() - return base64.b64encode(lobject.read()) - return "" diff --git a/muk_fields_lobject/i18n/ar.po b/muk_fields_lobject/i18n/ar.po deleted file mode 100644 index 588e101..0000000 --- a/muk_fields_lobject/i18n/ar.po +++ /dev/null @@ -1,116 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 00:18+0000\n" -"PO-Revision-Date: 2019-07-13 00:18+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_base -msgid "Base" -msgstr "الأساس" - -#. module: muk_fields_lobject -#: model:ir.model.fields,field_description:muk_fields_lobject.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "نوع الحقل" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_model_fields -msgid "Fields" -msgstr "الحقول" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_http -msgid "HTTP Routing" -msgstr "مسار HTTP" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "بيانات ثنائية" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "قيمة منطقية" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "محارف" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "تاريخ" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "التاريخ والوقت" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "فاصلة عائمة" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "عدد صحيح" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "lobject" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "علاقة متعدد لمتعدد" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "علاقة متعدد لواحد" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "قيمة نقدية" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "علاقة واحد لمتعدد" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "المرجع" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "قائمة خيارات" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "نص" diff --git a/muk_fields_lobject/i18n/de.po b/muk_fields_lobject/i18n/de.po deleted file mode 100644 index 17e33aa..0000000 --- a/muk_fields_lobject/i18n/de.po +++ /dev/null @@ -1,116 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 00:18+0000\n" -"PO-Revision-Date: 2019-07-13 00:18+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_base -msgid "Base" -msgstr "Basis" - -#. module: muk_fields_lobject -#: model:ir.model.fields,field_description:muk_fields_lobject.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "Typfeld-Text" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_model_fields -msgid "Fields" -msgstr "Felder" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_http -msgid "HTTP Routing" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "Binär" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "Boolean" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "Zeichen" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "Datum" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "Datum/Zeit" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "Gleitkommazahl" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "HTML" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "Ganzzahl" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "lobject" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "Many2many" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "Many2One" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "monetär" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "One2many" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "Referenz" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "Auswahl" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "Text" diff --git a/muk_fields_lobject/i18n/es.po b/muk_fields_lobject/i18n/es.po deleted file mode 100644 index be901bc..0000000 --- a/muk_fields_lobject/i18n/es.po +++ /dev/null @@ -1,116 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 00:18+0000\n" -"PO-Revision-Date: 2019-07-13 00:18+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_base -msgid "Base" -msgstr "" - -#. module: muk_fields_lobject -#: model:ir.model.fields,field_description:muk_fields_lobject.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "Tipo de campo" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_model_fields -msgid "Fields" -msgstr "Campos" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_http -msgid "HTTP Routing" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "binario" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "booleano" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "Carácter" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "fecha" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "Fecha y hora" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "número flotante" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "entero" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "lobject" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "Monetario" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "Referencia" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "Selección" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "texto" diff --git a/muk_fields_lobject/i18n/fr.po b/muk_fields_lobject/i18n/fr.po deleted file mode 100644 index 179b91e..0000000 --- a/muk_fields_lobject/i18n/fr.po +++ /dev/null @@ -1,116 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 00:19+0000\n" -"PO-Revision-Date: 2019-07-13 00:19+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_base -msgid "Base" -msgstr "" - -#. module: muk_fields_lobject -#: model:ir.model.fields,field_description:muk_fields_lobject.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "Type de Champ" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_model_fields -msgid "Fields" -msgstr "Champs" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_http -msgid "HTTP Routing" -msgstr "Routage HTTP" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "binaire" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "booléen" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "caractère" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "date/heure" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "flottant" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "lobject" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "monétaire" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "référence" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "sélection" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "texte" diff --git a/muk_fields_lobject/i18n/hi.po b/muk_fields_lobject/i18n/hi.po deleted file mode 100644 index 5b8a024..0000000 --- a/muk_fields_lobject/i18n/hi.po +++ /dev/null @@ -1,116 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 00:19+0000\n" -"PO-Revision-Date: 2019-07-13 00:19+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_base -msgid "Base" -msgstr "" - -#. module: muk_fields_lobject -#: model:ir.model.fields,field_description:muk_fields_lobject.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_model_fields -msgid "Fields" -msgstr "" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_http -msgid "HTTP Routing" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "lobject" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "" diff --git a/muk_fields_lobject/i18n/muk_fields_lobject.pot b/muk_fields_lobject/i18n/muk_fields_lobject.pot deleted file mode 100644 index 860ad1f..0000000 --- a/muk_fields_lobject/i18n/muk_fields_lobject.pot +++ /dev/null @@ -1,116 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 00:18+0000\n" -"PO-Revision-Date: 2019-07-13 00:18+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_base -msgid "Base" -msgstr "" - -#. module: muk_fields_lobject -#: model:ir.model.fields,field_description:muk_fields_lobject.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_model_fields -msgid "Fields" -msgstr "" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_http -msgid "HTTP Routing" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "lobject" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "" diff --git a/muk_fields_lobject/i18n/nl.po b/muk_fields_lobject/i18n/nl.po deleted file mode 100644 index 414ba58..0000000 --- a/muk_fields_lobject/i18n/nl.po +++ /dev/null @@ -1,116 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 00:19+0000\n" -"PO-Revision-Date: 2019-07-13 00:19+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_base -msgid "Base" -msgstr "Basis" - -#. module: muk_fields_lobject -#: model:ir.model.fields,field_description:muk_fields_lobject.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "Soort veld" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_model_fields -msgid "Fields" -msgstr "Velden" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_http -msgid "HTTP Routing" -msgstr "HTTP routing" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "binair" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "datum" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "lobject" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "monetair" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "referentie" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "selectie" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "tekst" diff --git a/muk_fields_lobject/i18n/pt.po b/muk_fields_lobject/i18n/pt.po deleted file mode 100644 index d9c17c8..0000000 --- a/muk_fields_lobject/i18n/pt.po +++ /dev/null @@ -1,116 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 00:19+0000\n" -"PO-Revision-Date: 2019-07-13 00:19+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_base -msgid "Base" -msgstr "" - -#. module: muk_fields_lobject -#: model:ir.model.fields,field_description:muk_fields_lobject.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "Tipo de Campo" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_model_fields -msgid "Fields" -msgstr "Campos" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_http -msgid "HTTP Routing" -msgstr "Rota HTTP" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "lobject" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "Texto" diff --git a/muk_fields_lobject/i18n/ru.po b/muk_fields_lobject/i18n/ru.po deleted file mode 100644 index c6d8980..0000000 --- a/muk_fields_lobject/i18n/ru.po +++ /dev/null @@ -1,116 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_fields_lobject -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 00:20+0000\n" -"PO-Revision-Date: 2019-07-13 00:20+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_base -msgid "Base" -msgstr "Базовый" - -#. module: muk_fields_lobject -#: model:ir.model.fields,field_description:muk_fields_lobject.field_ir_model_fields__ttype -msgid "Field Type" -msgstr "Тип поля" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_model_fields -msgid "Fields" -msgstr "Поля" - -#. module: muk_fields_lobject -#: model:ir.model,name:muk_fields_lobject.model_ir_http -msgid "HTTP Routing" -msgstr "Маршрутизация HTTP" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "binary" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "boolean" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "char" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "date" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "datetime" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "float" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "html" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "integer" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "lobject" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2many" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "many2one" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "monetary" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "one2many" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "reference" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "selection" -msgstr "" - -#. module: muk_fields_lobject -#: selection:ir.model.fields,ttype:0 -msgid "text" -msgstr "" diff --git a/muk_fields_lobject/models/__init__.py b/muk_fields_lobject/models/__init__.py deleted file mode 100644 index 3b6ae6c..0000000 --- a/muk_fields_lobject/models/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import base, ir_http, ir_model_fields diff --git a/muk_fields_lobject/models/base.py b/muk_fields_lobject/models/base.py deleted file mode 100644 index 2dc415c..0000000 --- a/muk_fields_lobject/models/base.py +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging - -from odoo import api, models - -_logger = logging.getLogger(__name__) - - -class Base(models.AbstractModel): - - _inherit = "base" - - def unlink(self): - oids = [] - for name in self._fields: - field = self._fields[name] - if field.type == "lobject" and field.store: - for record in self: - oid = record.with_context({"oid": True})[name] - if oid: - oids.append(oid) - super(Base, self).unlink() - for oid in oids: - self.env.cr._cnx.lobject(oid, "rb").unlink() diff --git a/muk_fields_lobject/models/ir_http.py b/muk_fields_lobject/models/ir_http.py deleted file mode 100644 index 3854ae6..0000000 --- a/muk_fields_lobject/models/ir_http.py +++ /dev/null @@ -1,41 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging - -from odoo import models - -_logger = logging.getLogger(__name__) - - -class IrHttp(models.AbstractModel): - - _inherit = "ir.http" - - # ---------------------------------------------------------- - # Helper - # ---------------------------------------------------------- - - def _check_streamable(record, field): - if record._fields[field].type == "lobject": - return True - return super(IrHttp, self)._check_streamable(record, field) diff --git a/muk_fields_lobject/models/ir_model_fields.py b/muk_fields_lobject/models/ir_model_fields.py deleted file mode 100644 index d9db799..0000000 --- a/muk_fields_lobject/models/ir_model_fields.py +++ /dev/null @@ -1,30 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from odoo import fields, models - - -class IrModelField(models.Model): - - _inherit = "ir.model.fields" - - ttype = fields.Selection(selection_add=[("lobject", "lobject")]) diff --git a/muk_fields_lobject/patch/__init__.py b/muk_fields_lobject/patch/__init__.py deleted file mode 100644 index 93be9e8..0000000 --- a/muk_fields_lobject/patch/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import fields diff --git a/muk_fields_lobject/patch/fields.py b/muk_fields_lobject/patch/fields.py deleted file mode 100644 index 7a8394d..0000000 --- a/muk_fields_lobject/patch/fields.py +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from odoo import fields -from odoo.addons.muk_fields_lobject.fields.lobject import LargeObject - -fields.LargeObject = LargeObject diff --git a/muk_fields_lobject/static/description/banner.png b/muk_fields_lobject/static/description/banner.png deleted file mode 100644 index 6a008b7..0000000 Binary files a/muk_fields_lobject/static/description/banner.png and /dev/null differ diff --git a/muk_fields_lobject/static/description/icon.png b/muk_fields_lobject/static/description/icon.png deleted file mode 100644 index 9fff4f9..0000000 Binary files a/muk_fields_lobject/static/description/icon.png and /dev/null differ diff --git a/muk_fields_lobject/static/description/icon.svg b/muk_fields_lobject/static/description/icon.svg deleted file mode 100644 index 6bcc961..0000000 --- a/muk_fields_lobject/static/description/icon.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/muk_fields_lobject/static/description/index.html b/muk_fields_lobject/static/description/index.html deleted file mode 100644 index 00dd3ea..0000000 --- a/muk_fields_lobject/static/description/index.html +++ /dev/null @@ -1,228 +0,0 @@ -
-
-

MuK Large Objects Field

-

PGSQL Large Objects Support for Fields

-

- MuK IT GmbH - www.mukit.at -

-
-
- -
-
-
-

Overview

-
-

- Provides a field to store bytes as PostgreSQL large objects. - PostgreSQL offers support for large objects, which provide - stream-style access to user data that is stored in a special - large-object structure. They are useful with data values too large to - be manipulated conveniently as a whole. -

-
Psycopg2 for Python
-

- Psycopg allows access to the large object using the - lobject - class. Objects are generated using the - connection.lobject() - factory method. Data can be retrieved either as bytes or as Unicode - strings. -

-

- Psycopg large object support efficient import/export with file system - files using the - lo_import() - and - lo_export() - libpq functions. -

-

- Changed in version 2.6: added support for large objects greated than - 2GB. Note that the support is enabled only if all the following - conditions are verified: -

-
    -
  • the Python build is 64 bits;
  • -
  • the extension was built against at least libpq 9.3;
  • -
  • - the server version is at least PostgreSQL 9.3 (server_version must - be >= 90300). -
  • -
-

- If Psycopg was built with 64 bits large objects support (i.e. the - first two contidions above are verified), the - psycopg2.__version__ - constant will contain the lo64 flag. If any of the contition is not - met several lobject methods will fail if the arguments exceed 2GB. -

-
- -
-		    	
-from odoo.addons.muk_fields_lobject.fields.lobject import LargeObject
-
-class LargeObjectModel(models.Model):
-
-    data_content = LargeObject(string="Data")
-
-    @api.multi
-    def data(self):
-        for record in self:
-            base64 = record.data_content
-            oid = record.with_context({'oid': True}).data_content
-            size = record.with_context({'bin_size': True}).data_content
-            bytes = record.with_context({'bytes': True}).data_content
-            stream = record.with_context({'stream': True}).data_content
-		    	
-			
-
-
-
- -
- -
- -
-
-
- - - -
-
-
- -
-

Help and Support

-
- Feel free to contact us, if you need any help with your Odoo integration or - addiontal features. -
- - -
diff --git a/muk_fields_lobject/static/description/logo.png b/muk_fields_lobject/static/description/logo.png deleted file mode 100644 index 9427ce3..0000000 Binary files a/muk_fields_lobject/static/description/logo.png and /dev/null differ diff --git a/muk_fields_lobject/static/description/preview.png b/muk_fields_lobject/static/description/preview.png deleted file mode 100644 index 1deb1cc..0000000 Binary files a/muk_fields_lobject/static/description/preview.png and /dev/null differ diff --git a/muk_fields_lobject/static/description/service_customization.png b/muk_fields_lobject/static/description/service_customization.png deleted file mode 100644 index 3eac664..0000000 Binary files a/muk_fields_lobject/static/description/service_customization.png and /dev/null differ diff --git a/muk_fields_lobject/static/description/service_development.png b/muk_fields_lobject/static/description/service_development.png deleted file mode 100644 index 580d460..0000000 Binary files a/muk_fields_lobject/static/description/service_development.png and /dev/null differ diff --git a/muk_fields_lobject/static/description/service_implementation.png b/muk_fields_lobject/static/description/service_implementation.png deleted file mode 100644 index d64b66b..0000000 Binary files a/muk_fields_lobject/static/description/service_implementation.png and /dev/null differ diff --git a/muk_fields_lobject/static/description/service_integration.png b/muk_fields_lobject/static/description/service_integration.png deleted file mode 100644 index 76c5e80..0000000 Binary files a/muk_fields_lobject/static/description/service_integration.png and /dev/null differ diff --git a/muk_fields_lobject/static/description/service_support.png b/muk_fields_lobject/static/description/service_support.png deleted file mode 100644 index 4c530fa..0000000 Binary files a/muk_fields_lobject/static/description/service_support.png and /dev/null differ diff --git a/muk_fields_lobject/tests/__init__.py b/muk_fields_lobject/tests/__init__.py deleted file mode 100644 index 759fa03..0000000 --- a/muk_fields_lobject/tests/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import test_lobject diff --git a/muk_fields_lobject/tests/test_lobject.py b/muk_fields_lobject/tests/test_lobject.py deleted file mode 100644 index d8c53fd..0000000 --- a/muk_fields_lobject/tests/test_lobject.py +++ /dev/null @@ -1,41 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Large Objects Field -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging -import os - -from odoo.addons.muk_fields_lobject.fields.lobject import LargeObject -from odoo.tests import common - -_path = os.path.dirname(os.path.dirname(__file__)) -_logger = logging.getLogger(__name__) - - -class LargeObjectTestCase(common.TransactionCase): - def setUp(self): - super(LargeObjectTestCase, self).setUp() - - def tearDown(self): - super(LargeObjectTestCase, self).tearDown() - - def test_import(self): - self.assertEqual(LargeObject.type, "lobject") diff --git a/muk_fields_stream/LICENSE b/muk_fields_stream/LICENSE deleted file mode 100644 index 0a04128..0000000 --- a/muk_fields_stream/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/muk_fields_stream/README.rst b/muk_fields_stream/README.rst deleted file mode 100644 index b209539..0000000 --- a/muk_fields_stream/README.rst +++ /dev/null @@ -1,117 +0,0 @@ -========================= -MuK Binary Stream Support -========================= - -This module adds a new http route which allows to download binary data as a stream. -This is especially useful for large files, because they don't fit in the ram as a -whole and can easily cause an error because ram limits are exceeded. This module -serves as a basis for a number of extensions that add fields to Odoo which support -this functionality. - -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 `_). - -To install our modules using the package manager make sure -`odoo-autodiscover `_ is installed -correctly. Note that for Odoo version 11.0 and later this is not necessary anymore. -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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**Example:** - -``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo13-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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -For modules licensed under a proprietary license, you will receive the access data after you purchased -the module. If the purchase were made at the Odoo store please contact our `support `_ -with a confirmation of the 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 `` - -When the process is finished, restart your server and update the application in -Odoo, just like you would normally. - - -Configuration -============= - -No additional configuration is needed to use this module. - -Usage -===== - -This module has no direct visible effect on the system. It adds a new route -which can be used by modules which add fields with stream capability. - -Credit -====== - -Contributors ------------- - -* Mathias Markl - -Images ------- - -Some pictures are based on or inspired by the icon set of Font Awesome: - -* `Font Awesome `_ - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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 `_ -or visit our `website `_. diff --git a/muk_fields_stream/__init__.py b/muk_fields_stream/__init__.py deleted file mode 100644 index 19e9685..0000000 --- a/muk_fields_stream/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Binary Stream Support -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import controllers, models diff --git a/muk_fields_stream/__manifest__.py b/muk_fields_stream/__manifest__.py deleted file mode 100644 index a3dc319..0000000 --- a/muk_fields_stream/__manifest__.py +++ /dev/null @@ -1,37 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Binary Stream Support -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -{ - "name": "MuK Binary Stream Support", - "summary": """Support for Binary Streams""", - "version": "13.0.1.0.0", - "category": "Extra Tools", - "license": "LGPL-3", - "website": "https://www.mukit.at", - "author": "MuK IT", - "contributors": ["Mathias Markl "], - "depends": ["muk_utils"], - "images": ["static/description/banner.png"], - "auto_install": False, - "application": False, - "installable": True, -} diff --git a/muk_fields_stream/controllers/__init__.py b/muk_fields_stream/controllers/__init__.py deleted file mode 100644 index be2bbc0..0000000 --- a/muk_fields_stream/controllers/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Binary Stream Support -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import main diff --git a/muk_fields_stream/controllers/main.py b/muk_fields_stream/controllers/main.py deleted file mode 100644 index 54a1502..0000000 --- a/muk_fields_stream/controllers/main.py +++ /dev/null @@ -1,91 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Binary Stream Support -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging - -from odoo import http -from odoo.http import request -from werkzeug import wrappers - -_logger = logging.getLogger(__name__) - - -class StreamController(http.Controller): - - # ---------------------------------------------------------- - # Routes - # ---------------------------------------------------------- - - @http.route( - [ - "/binary/content", - "/binary/content/", - "/binary/content//", - "/binary/content/", - "/binary/content//", - "/binary/content/-", - "/binary/content/-/", - "/binary/content/-//", - "/binary/content///", - "/binary/content////", - ], - type="http", - auth="public", - ) - def binary_content( - self, - xmlid=None, - model=None, - id=None, - field="content", - filename=None, - filename_field="content_fname", - unique=None, - mimetype=None, - download=None, - token=None, - access_token=None, - **kwargs - ): - status, headers, stream = request.env["ir.http"].binary_stream( - xmlid=xmlid, - model=model, - id=id, - field=field, - unique=unique, - filename=filename, - filename_field=filename_field, - download=download, - mimetype=mimetype, - access_token=access_token, - ) - if status != 200: - return request.env["ir.http"]._response_by_status(status, headers, False) - else: - headers.append(("Content-Length", stream.seek(0, 2))) - stream.seek(0, 0) - response = wrappers.Response( - stream, headers=headers, status=status, direct_passthrough=True - ) - if token: - response.set_cookie("fileToken", token) - return response diff --git a/muk_fields_stream/doc/changelog.rst b/muk_fields_stream/doc/changelog.rst deleted file mode 100644 index 9ee2b48..0000000 --- a/muk_fields_stream/doc/changelog.rst +++ /dev/null @@ -1,4 +0,0 @@ -`1.0.0` -------- - -- Init version diff --git a/muk_fields_stream/doc/index.rst b/muk_fields_stream/doc/index.rst deleted file mode 100644 index b209539..0000000 --- a/muk_fields_stream/doc/index.rst +++ /dev/null @@ -1,117 +0,0 @@ -========================= -MuK Binary Stream Support -========================= - -This module adds a new http route which allows to download binary data as a stream. -This is especially useful for large files, because they don't fit in the ram as a -whole and can easily cause an error because ram limits are exceeded. This module -serves as a basis for a number of extensions that add fields to Odoo which support -this functionality. - -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 `_). - -To install our modules using the package manager make sure -`odoo-autodiscover `_ is installed -correctly. Note that for Odoo version 11.0 and later this is not necessary anymore. -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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**Example:** - -``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo13-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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -For modules licensed under a proprietary license, you will receive the access data after you purchased -the module. If the purchase were made at the Odoo store please contact our `support `_ -with a confirmation of the 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 `` - -When the process is finished, restart your server and update the application in -Odoo, just like you would normally. - - -Configuration -============= - -No additional configuration is needed to use this module. - -Usage -===== - -This module has no direct visible effect on the system. It adds a new route -which can be used by modules which add fields with stream capability. - -Credit -====== - -Contributors ------------- - -* Mathias Markl - -Images ------- - -Some pictures are based on or inspired by the icon set of Font Awesome: - -* `Font Awesome `_ - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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 `_ -or visit our `website `_. diff --git a/muk_fields_stream/i18n/ar.po b/muk_fields_stream/i18n/ar.po deleted file mode 100644 index cce4a4e..0000000 --- a/muk_fields_stream/i18n/ar.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:53+0000\n" -"PO-Revision-Date: 2019-07-12 23:53+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_fields_stream/i18n/de.po b/muk_fields_stream/i18n/de.po deleted file mode 100644 index 1717864..0000000 --- a/muk_fields_stream/i18n/de.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:54+0000\n" -"PO-Revision-Date: 2019-07-12 23:54+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_fields_stream/i18n/es.po b/muk_fields_stream/i18n/es.po deleted file mode 100644 index 1717864..0000000 --- a/muk_fields_stream/i18n/es.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:54+0000\n" -"PO-Revision-Date: 2019-07-12 23:54+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_fields_stream/i18n/fr.po b/muk_fields_stream/i18n/fr.po deleted file mode 100644 index 1717864..0000000 --- a/muk_fields_stream/i18n/fr.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:54+0000\n" -"PO-Revision-Date: 2019-07-12 23:54+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_fields_stream/i18n/hi.po b/muk_fields_stream/i18n/hi.po deleted file mode 100644 index 1717864..0000000 --- a/muk_fields_stream/i18n/hi.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:54+0000\n" -"PO-Revision-Date: 2019-07-12 23:54+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_fields_stream/i18n/muk_fields_stream.pot b/muk_fields_stream/i18n/muk_fields_stream.pot deleted file mode 100644 index cce4a4e..0000000 --- a/muk_fields_stream/i18n/muk_fields_stream.pot +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:53+0000\n" -"PO-Revision-Date: 2019-07-12 23:53+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_fields_stream/i18n/nl.po b/muk_fields_stream/i18n/nl.po deleted file mode 100644 index c29f50a..0000000 --- a/muk_fields_stream/i18n/nl.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:55+0000\n" -"PO-Revision-Date: 2019-07-12 23:55+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_fields_stream/i18n/pt.po b/muk_fields_stream/i18n/pt.po deleted file mode 100644 index c29f50a..0000000 --- a/muk_fields_stream/i18n/pt.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:55+0000\n" -"PO-Revision-Date: 2019-07-12 23:55+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_fields_stream/i18n/ru.po b/muk_fields_stream/i18n/ru.po deleted file mode 100644 index c29f50a..0000000 --- a/muk_fields_stream/i18n/ru.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:55+0000\n" -"PO-Revision-Date: 2019-07-12 23:55+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_fields_stream/models/__init__.py b/muk_fields_stream/models/__init__.py deleted file mode 100644 index 2ebdfee..0000000 --- a/muk_fields_stream/models/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Binary Stream Support -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import ir_http diff --git a/muk_fields_stream/models/ir_http.py b/muk_fields_stream/models/ir_http.py deleted file mode 100644 index 0b6464f..0000000 --- a/muk_fields_stream/models/ir_http.py +++ /dev/null @@ -1,132 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Binary Stream Support -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import io -import logging -import mimetypes - -from odoo import models - -_logger = logging.getLogger(__name__) - - -class IrHttp(models.AbstractModel): - - _inherit = "ir.http" - - # ---------------------------------------------------------- - # Helper - # ---------------------------------------------------------- - - def _check_streamable(record, field): - return False - - def _stream_content( - self, - record, - field="content", - filename=None, - filename_field="content_fname", - default_mimetype="application/octet-stream", - ): - if self._check_streamable(record, field): - mimetype = "mimetype" in record and record.mimetype or False - filehash = "checksum" in record and record["checksum"] or False - stream = record.with_context({"stream": True})[field] or io.BytesIO() - if not filename: - if filename_field in record: - filename = record[filename_field] - if not filename: - filename = "{}-{}-{}".format(record._name, record.id, field) - if not mimetype and filename: - mimetype = mimetypes.guess_type(filename)[0] - if not mimetype: - mimetype = default_mimetype - _, existing_extension = os.path.splitext(filename) - if not existing_extension: - extension = mimetypes.guess_extension(mimetype) - if extension: - filename = "{}{}".format(filename, extension) - if not filehash and stream: - filehash = record.with_context({"checksum": True})[field] - return stream and 200 or 404, stream, filename, mimetype, filehash - return (404, [], None) - - # ---------------------------------------------------------- - # Functions - # ---------------------------------------------------------- - - def binary_stream( - self, - xmlid=None, - model=None, - id=None, - field="content", - unique=False, - filename=None, - filename_field="content_fname", - download=False, - mimetype=None, - default_mimetype="application/octet-stream", - access_token=None, - ): - """ Get file, attachment or downloadable content - - If the ``xmlid`` and ``id`` parameter is omitted, fetches the default value for the - binary field (via ``default_get``), otherwise fetches the field for - that precise record. - - :param str xmlid: xmlid of the record - :param str model: name of the model to fetch the binary from - :param int id: id of the record from which to fetch the binary - :param str field: binary field - :param bool unique: add a max-age for the cache control - :param str filename: choose a filename - :param str filename_field: if not create an filename with model-id-field - :param bool download: apply headers to download the file - :param str mimetype: mintype of the field (for headers) - :param str default_mimetype: default mintype if no mintype found - :param str access_token: optional token for unauthenticated access - :returns: (status, headers, content) - """ - record, status = self._get_record_and_check( - xmlid=xmlid, model=model, id=id, field=field, access_token=access_token - ) - if not record: - return (status or 404, [], None) - status, stream, filename, mimetype, filehash = self._stream_content( - record, - field=field, - filename=filename, - filename_field=filename_field, - default_mimetype="application/octet-stream", - ) - status, headers, stream = self._binary_set_headers( - status, - stream, - filename, - mimetype, - unique, - filehash=filehash, - download=download, - ) - return status, headers, stream diff --git a/muk_fields_stream/static/description/banner.png b/muk_fields_stream/static/description/banner.png deleted file mode 100644 index 19e9ad0..0000000 Binary files a/muk_fields_stream/static/description/banner.png and /dev/null differ diff --git a/muk_fields_stream/static/description/icon.png b/muk_fields_stream/static/description/icon.png deleted file mode 100644 index d6d9278..0000000 Binary files a/muk_fields_stream/static/description/icon.png and /dev/null differ diff --git a/muk_fields_stream/static/description/icon.svg b/muk_fields_stream/static/description/icon.svg deleted file mode 100644 index 42f8a2e..0000000 --- a/muk_fields_stream/static/description/icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/muk_fields_stream/static/description/index.html b/muk_fields_stream/static/description/index.html deleted file mode 100644 index 509918e..0000000 --- a/muk_fields_stream/static/description/index.html +++ /dev/null @@ -1,172 +0,0 @@ -
-
-

MuK Binary Stream Support

-

Support for Binary Streams

-

- MuK IT GmbH - www.mukit.at -

-
-
- -
-
-
-

Overview

-
-

This module adds a new http route which allows to download - binary data as a stream. This is especially useful for large files, - because they don't fit in the ram as a whole and can easily cause - an error because ram limits are exceeded. This module serves as a - basis for a number of extensions that add fields to Odoo which - support this functionality.

-
-
-
-
- -
- -
- -
-
-
- - - -
-
-
- -
-

Help and Support

-
- Feel free to contact us, if you need any help with your Odoo integration or - addiontal features. -
- - -
diff --git a/muk_fields_stream/static/description/logo.png b/muk_fields_stream/static/description/logo.png deleted file mode 100644 index 9427ce3..0000000 Binary files a/muk_fields_stream/static/description/logo.png and /dev/null differ diff --git a/muk_fields_stream/static/description/preview.png b/muk_fields_stream/static/description/preview.png deleted file mode 100644 index 1deb1cc..0000000 Binary files a/muk_fields_stream/static/description/preview.png and /dev/null differ diff --git a/muk_fields_stream/static/description/service_customization.png b/muk_fields_stream/static/description/service_customization.png deleted file mode 100644 index 3eac664..0000000 Binary files a/muk_fields_stream/static/description/service_customization.png and /dev/null differ diff --git a/muk_fields_stream/static/description/service_development.png b/muk_fields_stream/static/description/service_development.png deleted file mode 100644 index 580d460..0000000 Binary files a/muk_fields_stream/static/description/service_development.png and /dev/null differ diff --git a/muk_fields_stream/static/description/service_implementation.png b/muk_fields_stream/static/description/service_implementation.png deleted file mode 100644 index d64b66b..0000000 Binary files a/muk_fields_stream/static/description/service_implementation.png and /dev/null differ diff --git a/muk_fields_stream/static/description/service_integration.png b/muk_fields_stream/static/description/service_integration.png deleted file mode 100644 index 76c5e80..0000000 Binary files a/muk_fields_stream/static/description/service_integration.png and /dev/null differ diff --git a/muk_fields_stream/static/description/service_support.png b/muk_fields_stream/static/description/service_support.png deleted file mode 100644 index 4c530fa..0000000 Binary files a/muk_fields_stream/static/description/service_support.png and /dev/null differ diff --git a/muk_session_store/LICENSE b/muk_session_store/LICENSE deleted file mode 100644 index 0a04128..0000000 --- a/muk_session_store/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/muk_session_store/README.rst b/muk_session_store/README.rst deleted file mode 100644 index c414815..0000000 --- a/muk_session_store/README.rst +++ /dev/null @@ -1,178 +0,0 @@ -================= -MuK Session Store -================= - -In a distributed system the filestore based session store of Odoo has the problem that -unwanted session timeouts occur regularly. This module offers two additional options for -the Session Store. Sessions can be stored either in a Redis database or directly in -Postgres. Both options have the advantage that the session information can also be queried -in a distributed system. - -Requirements -============ - -The requirements are only required if Redis is used as the session store. - -Redis -------------- - -A interface to the Redis key-value store for Python. To install Redis please follow the -`instructions `_ or install the library via pip. - -``pip install redis`` - -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 `_). - -To install our modules using the package manager make sure -`odoo-autodiscover `_ is installed -correctly. Note that for Odoo version 11.0 and later this is not necessary anymore. -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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**Example:** - -``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo13-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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -For modules licensed under a proprietary license, you will receive the access data after you purchased -the module. If the purchase were made at the Odoo store please contact our `support `_ -with a confirmation of the 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 `` - -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`` - -The following fields can be modified in the config file: - -**Store:** - -* session_store_database -* session_store_redis - -**Postgres:** - -* session_store_dbname -* session_store_dbtable - -**Redis:** - -* session_store_prefix -* session_store_host -* session_store_port -* session_store_dbindex -* session_store_pass -* session_store_ssl -* session_store_ssl_cert_reqs - -Usage -===== - -After setting the parameters, the session store is used automatically. - -In order to use ssl, which is a requirement of some databases, session_store_ssl -should be set to True and session_store_ssl_cert_reqs should be set to 'required' -except in the case where the server certificate does not match the host name. - -e.g. -# Server has a proper certificate -session_store_ssl=True -session_store_ssl_cert_reqs=required - -# Server does not have a proper certificate (AWS possibly) -session_store_ssl=True -session_store_ssl_cert_reqs=None - -For more information please see the redis python module documentation - -Credit -====== - -Contributors ------------- - -* Mathias Markl - -Images ------- - -Some pictures are based on or inspired by the icon set of Font Awesome: - -* `Font Awesome `_ - - -Projects --------- - -Parts of the module are inspired by: - -* `PSQL Session Store `_ - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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 `_ -or visit our `website `_. diff --git a/muk_session_store/__init__.py b/muk_session_store/__init__.py deleted file mode 100644 index 333eb93..0000000 --- a/muk_session_store/__init__.py +++ /dev/null @@ -1,28 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Session Store -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from odoo.tools import config - - -def _patch_system(): - if "muk_session_store" in config.get("server_wide_modules"): - from . import patch diff --git a/muk_session_store/__manifest__.py b/muk_session_store/__manifest__.py deleted file mode 100644 index 8b0ab24..0000000 --- a/muk_session_store/__manifest__.py +++ /dev/null @@ -1,37 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Session Store -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -{ - "name": "MuK Session Store", - "summary": """Session Store Options""", - "version": "13.0.1.0.0", - "category": "Extra Tools", - "license": "LGPL-3", - "website": "http://www.mukit.at", - "author": "MuK IT", - "contributors": ["Mathias Markl "], - "depends": ["muk_utils"], - "images": ["static/description/banner.png"], - "application": False, - "installable": True, - "post_load": "_patch_system", -} diff --git a/muk_session_store/doc/changelog.rst b/muk_session_store/doc/changelog.rst deleted file mode 100644 index 9ee2b48..0000000 --- a/muk_session_store/doc/changelog.rst +++ /dev/null @@ -1,4 +0,0 @@ -`1.0.0` -------- - -- Init version diff --git a/muk_session_store/doc/index.rst b/muk_session_store/doc/index.rst deleted file mode 100644 index c414815..0000000 --- a/muk_session_store/doc/index.rst +++ /dev/null @@ -1,178 +0,0 @@ -================= -MuK Session Store -================= - -In a distributed system the filestore based session store of Odoo has the problem that -unwanted session timeouts occur regularly. This module offers two additional options for -the Session Store. Sessions can be stored either in a Redis database or directly in -Postgres. Both options have the advantage that the session information can also be queried -in a distributed system. - -Requirements -============ - -The requirements are only required if Redis is used as the session store. - -Redis -------------- - -A interface to the Redis key-value store for Python. To install Redis please follow the -`instructions `_ or install the library via pip. - -``pip install redis`` - -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 `_). - -To install our modules using the package manager make sure -`odoo-autodiscover `_ is installed -correctly. Note that for Odoo version 11.0 and later this is not necessary anymore. -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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**Example:** - -``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo13-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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -For modules licensed under a proprietary license, you will receive the access data after you purchased -the module. If the purchase were made at the Odoo store please contact our `support `_ -with a confirmation of the 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 `` - -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`` - -The following fields can be modified in the config file: - -**Store:** - -* session_store_database -* session_store_redis - -**Postgres:** - -* session_store_dbname -* session_store_dbtable - -**Redis:** - -* session_store_prefix -* session_store_host -* session_store_port -* session_store_dbindex -* session_store_pass -* session_store_ssl -* session_store_ssl_cert_reqs - -Usage -===== - -After setting the parameters, the session store is used automatically. - -In order to use ssl, which is a requirement of some databases, session_store_ssl -should be set to True and session_store_ssl_cert_reqs should be set to 'required' -except in the case where the server certificate does not match the host name. - -e.g. -# Server has a proper certificate -session_store_ssl=True -session_store_ssl_cert_reqs=required - -# Server does not have a proper certificate (AWS possibly) -session_store_ssl=True -session_store_ssl_cert_reqs=None - -For more information please see the redis python module documentation - -Credit -====== - -Contributors ------------- - -* Mathias Markl - -Images ------- - -Some pictures are based on or inspired by the icon set of Font Awesome: - -* `Font Awesome `_ - - -Projects --------- - -Parts of the module are inspired by: - -* `PSQL Session Store `_ - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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 `_ -or visit our `website `_. diff --git a/muk_session_store/i18n/ar.po b/muk_session_store/i18n/ar.po deleted file mode 100644 index cce4a4e..0000000 --- a/muk_session_store/i18n/ar.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:53+0000\n" -"PO-Revision-Date: 2019-07-12 23:53+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_session_store/i18n/de.po b/muk_session_store/i18n/de.po deleted file mode 100644 index 1717864..0000000 --- a/muk_session_store/i18n/de.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:54+0000\n" -"PO-Revision-Date: 2019-07-12 23:54+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_session_store/i18n/es.po b/muk_session_store/i18n/es.po deleted file mode 100644 index 1717864..0000000 --- a/muk_session_store/i18n/es.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:54+0000\n" -"PO-Revision-Date: 2019-07-12 23:54+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_session_store/i18n/fr.po b/muk_session_store/i18n/fr.po deleted file mode 100644 index 1717864..0000000 --- a/muk_session_store/i18n/fr.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:54+0000\n" -"PO-Revision-Date: 2019-07-12 23:54+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_session_store/i18n/hi.po b/muk_session_store/i18n/hi.po deleted file mode 100644 index 1717864..0000000 --- a/muk_session_store/i18n/hi.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:54+0000\n" -"PO-Revision-Date: 2019-07-12 23:54+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_session_store/i18n/muk_session_store.pot b/muk_session_store/i18n/muk_session_store.pot deleted file mode 100644 index cce4a4e..0000000 --- a/muk_session_store/i18n/muk_session_store.pot +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:53+0000\n" -"PO-Revision-Date: 2019-07-12 23:53+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_session_store/i18n/nl.po b/muk_session_store/i18n/nl.po deleted file mode 100644 index c29f50a..0000000 --- a/muk_session_store/i18n/nl.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:55+0000\n" -"PO-Revision-Date: 2019-07-12 23:55+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_session_store/i18n/pt.po b/muk_session_store/i18n/pt.po deleted file mode 100644 index c29f50a..0000000 --- a/muk_session_store/i18n/pt.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:55+0000\n" -"PO-Revision-Date: 2019-07-12 23:55+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_session_store/i18n/ru.po b/muk_session_store/i18n/ru.po deleted file mode 100644 index c29f50a..0000000 --- a/muk_session_store/i18n/ru.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-12 23:55+0000\n" -"PO-Revision-Date: 2019-07-12 23:55+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/muk_session_store/patch/__init__.py b/muk_session_store/patch/__init__.py deleted file mode 100644 index e6a77ad..0000000 --- a/muk_session_store/patch/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Session Store -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import http diff --git a/muk_session_store/patch/http.py b/muk_session_store/patch/http.py deleted file mode 100644 index bb02505..0000000 --- a/muk_session_store/patch/http.py +++ /dev/null @@ -1,95 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Session Store -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging -import random - -from odoo import http, tools -from odoo.addons.muk_session_store.store.postgres import PostgresSessionStore -from odoo.addons.muk_session_store.store.redis import RedisSessionStore -from odoo.addons.muk_utils.tools.patch import monkey_patch -from odoo.http import request -from odoo.tools.func import lazy_property - -_logger = logging.getLogger(__name__) - -try: - import redis -except ImportError: - if tools.config.get("session_store_redis"): - _logger.warning("The Python library redis is not installed.") - redis = False - - -def get_session_store_database(): - return tools.config.get("session_store_dbname", "session_store") - - -@monkey_patch(http) -def db_monodb(httprequest=None): - if tools.config.get("session_store_database"): - httprequest = httprequest or request.httprequest - dbs = http.db_list(True, httprequest) - store = get_session_store_database() - db_session = httprequest.session.db - if db_session in dbs: - return db_session - if store in dbs: - dbs.remove(store) - if len(dbs) == 1: - return dbs[0] - return None - else: - return db_monodb.super(httprequest) - - -@monkey_patch(http) -def db_filter(dbs, httprequest=None): - dbs = db_filter.super(dbs, httprequest=httprequest) - store = get_session_store_database() - if store in dbs: - dbs.remove(store) - return dbs - - -@monkey_patch(http) -def session_gc(session_store): - if tools.config.get("session_store_database"): - if random.random() < 0.001: - session_store.clean() - elif tools.config.get("session_store_redis"): - pass - else: - session_gc.super(session_store) - - -class Root(http.Root): - @lazy_property - def session_store(self): - if tools.config.get("session_store_database"): - return PostgresSessionStore(session_class=http.OpenERPSession) - elif tools.config.get("session_store_redis") and redis: - return RedisSessionStore(session_class=http.OpenERPSession) - return super(Root, self).session_store - - -http.root = Root() diff --git a/muk_session_store/requirements.txt b/muk_session_store/requirements.txt deleted file mode 100644 index dd70cdb..0000000 --- a/muk_session_store/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -redis==3.3.11 diff --git a/muk_session_store/static/description/banner.png b/muk_session_store/static/description/banner.png deleted file mode 100644 index a28122c..0000000 Binary files a/muk_session_store/static/description/banner.png and /dev/null differ diff --git a/muk_session_store/static/description/icon.png b/muk_session_store/static/description/icon.png deleted file mode 100644 index cdbc81e..0000000 Binary files a/muk_session_store/static/description/icon.png and /dev/null differ diff --git a/muk_session_store/static/description/icon.svg b/muk_session_store/static/description/icon.svg deleted file mode 100644 index ae33dc2..0000000 --- a/muk_session_store/static/description/icon.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/muk_session_store/static/description/index.html b/muk_session_store/static/description/index.html deleted file mode 100644 index d103827..0000000 --- a/muk_session_store/static/description/index.html +++ /dev/null @@ -1,181 +0,0 @@ -
-
-

MuK Session Store

-

Session Store Options

-

- MuK IT GmbH - www.mukit.at -

-
-
- -
-
-
-

Overview

-

- In a distributed system the filestore based session store of Odoo has - the problem that unwanted session timeouts occur regularly. This module - offers two additional options for the Session Store. Sessions can be - stored either in a Redis database or directly in Postgres. Both options - have the advantage that the session information can also be queried in a - distributed system. -

-

- 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 -

-
-
-
- -
- -
- -
-
-
- - - -
-
-
- -
-

Help and Support

-
- Feel free to contact us, if you need any help with your Odoo integration or - addiontal features. -
- - -
diff --git a/muk_session_store/static/description/logo.png b/muk_session_store/static/description/logo.png deleted file mode 100644 index 9427ce3..0000000 Binary files a/muk_session_store/static/description/logo.png and /dev/null differ diff --git a/muk_session_store/static/description/preview.png b/muk_session_store/static/description/preview.png deleted file mode 100644 index 1deb1cc..0000000 Binary files a/muk_session_store/static/description/preview.png and /dev/null differ diff --git a/muk_session_store/static/description/service_customization.png b/muk_session_store/static/description/service_customization.png deleted file mode 100644 index 3eac664..0000000 Binary files a/muk_session_store/static/description/service_customization.png and /dev/null differ diff --git a/muk_session_store/static/description/service_development.png b/muk_session_store/static/description/service_development.png deleted file mode 100644 index 580d460..0000000 Binary files a/muk_session_store/static/description/service_development.png and /dev/null differ diff --git a/muk_session_store/static/description/service_implementation.png b/muk_session_store/static/description/service_implementation.png deleted file mode 100644 index d64b66b..0000000 Binary files a/muk_session_store/static/description/service_implementation.png and /dev/null differ diff --git a/muk_session_store/static/description/service_integration.png b/muk_session_store/static/description/service_integration.png deleted file mode 100644 index 76c5e80..0000000 Binary files a/muk_session_store/static/description/service_integration.png and /dev/null differ diff --git a/muk_session_store/static/description/service_support.png b/muk_session_store/static/description/service_support.png deleted file mode 100644 index 4c530fa..0000000 Binary files a/muk_session_store/static/description/service_support.png and /dev/null differ diff --git a/muk_session_store/store/__init__.py b/muk_session_store/store/__init__.py deleted file mode 100644 index 2454122..0000000 --- a/muk_session_store/store/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Session Store -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import postgres, redis diff --git a/muk_session_store/store/postgres.py b/muk_session_store/store/postgres.py deleted file mode 100644 index 596db65..0000000 --- a/muk_session_store/store/postgres.py +++ /dev/null @@ -1,179 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Session Store -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import pickle -import logging -import psycopg2 -import functools - -from contextlib import closing -from contextlib import contextmanager -from datetime import datetime, date - -from werkzeug.contrib.sessions import SessionStore - -from odoo.sql_db import db_connect -from odoo.tools import config - -_logger = logging.getLogger(__name__) - - -def retry_database(func): - @functools.wraps(func) - def wrapper(self, *args, **kwargs): - for attempts in range(1, 6): - try: - return func(self, *args, **kwargs) - except psycopg2.InterfaceError as error: - _logger.warn("SessionStore connection failed! (%s/5)" % attempts) - if attempts >= 5: - raise error - - return wrapper - - -class PostgresSessionStore(SessionStore): - def __init__(self, *args, **kwargs): - super(PostgresSessionStore, self).__init__(*args, **kwargs) - self.dbname = config.get("session_store_dbname", "session_store") - self.dbtable = config.get("session_store_dbtable", "odoo_sessions") - self._setup_database(raise_exception=False) - - def _setup_database(self, raise_exception=True): - try: - with db_connect(self.dbname, allow_uri=True).cursor() as cursor: - cursor.autocommit(True) - self._create_table(cursor) - except: - self._create_database() - self._setup_database() - - def _create_database(self): - with db_connect("postgres").cursor() as cursor: - cursor.autocommit(True) - cursor.execute( - """ - CREATE DATABASE {dbname} - ENCODING 'unicode' - TEMPLATE 'template0'; - """.format( - dbname=self.dbname - ) - ) - - def _create_table(self, cursor): - cursor.execute( - """ - CREATE TABLE IF NOT EXISTS {dbtable} ( - sid varchar PRIMARY KEY, - write_date timestamp without time zone NOT NULL, - payload bytea NOT NULL - ); - """.format( - dbtable=self.dbtable - ) - ) - - @contextmanager - def open_cursor(self): - connection = db_connect(self.dbname, allow_uri=True) - cursor = connection.cursor() - cursor.autocommit(True) - yield cursor - cursor.close() - - @retry_database - def save(self, session): - with self.open_cursor() as cursor: - cursor.execute( - """ - INSERT INTO {dbtable} (sid, write_date, payload) - VALUES (%(sid)s, now() at time zone 'UTC', %(payload)s) - ON CONFLICT (sid) - DO UPDATE SET payload = %(payload)s, write_date = now() at time zone 'UTC'; - """.format( - dbtable=self.dbtable - ), - dict( - sid=session.sid, - payload=psycopg2.Binary( - pickle.dumps(dict(session), pickle.HIGHEST_PROTOCOL) - ), - ), - ) - - @retry_database - def delete(self, session): - with self.open_cursor() as cursor: - cursor.execute( - "DELETE FROM {dbtable} WHERE sid=%s;".format(dbtable=self.dbtable), - [session.sid], - ) - - @retry_database - def get(self, sid): - if not self.is_valid_key(sid): - return self.new() - with self.open_cursor() as cursor: - cursor.execute( - """ - SELECT payload, write_date - FROM {dbtable} WHERE sid=%s; - """.format( - dbtable=self.dbtable - ), - [sid], - ) - try: - payload, write_date = cursor.fetchone() - if write_date.date() != datetime.today().date(): - cursor.execute( - """ - UPDATE {dbtable} - SET write_date = now() at time zone 'UTC' - WHERE sid=%s; - """.format( - dbtable=self.dbtable - ), - [sid], - ) - return self.session_class(pickle.loads(payload), sid, False) - except Exception: - return self.session_class({}, sid, False) - - @retry_database - def list(self): - with self.open_cursor() as cursor: - cursor.execute("SELECT sid FROM {dbtable};".format(dbtable=self.dbtable)) - return [record[0] for record in cursor.fetchall()] - - @retry_database - def clean(self): - with self.open_cursor() as cursor: - cursor.execute( - """ - DELETE FROM {dbtable} - WHERE now() at time zone 'UTC' - write_date > '7 days'; - """.format( - dbtable=self.dbtable - ) - ) diff --git a/muk_session_store/store/redis.py b/muk_session_store/store/redis.py deleted file mode 100644 index c6c3c32..0000000 --- a/muk_session_store/store/redis.py +++ /dev/null @@ -1,94 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Session Store -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import functools -import logging -import pickle - -from odoo.tools import config -from werkzeug.contrib.sessions import SessionStore - -_logger = logging.getLogger(__name__) - -try: - import redis -except ImportError: - pass - -SESSION_TIMEOUT = 60 * 60 * 24 * 7 - - -def retry_redis(func): - @functools.wraps(func) - def wrapper(self, *args, **kwargs): - for attempts in range(1, 6): - try: - return func(self, *args, **kwargs) - except redis.ConnectionError as error: - _logger.warn("SessionStore connection failed! (%s/5)" % attempts) - if attempts >= 5: - raise error - - return wrapper - - -class RedisSessionStore(SessionStore): - def __init__(self, *args, **kwargs): - super(RedisSessionStore, self).__init__(*args, **kwargs) - self.prefix = config.get("session_store_prefix", "") - self.server = redis.Redis( - host=config.get("session_store_host", "localhost"), - port=int(config.get("session_store_port", 6379)), - db=int(config.get("session_store_dbindex", 1)), - password=config.get("session_store_pass", None), - ssl=config.get("session_store_ssl", False), - ssl_cert_reqs=config.get("session_store_ssl_cert_reqs", None), - ) - - def _encode_session_key(self, key): - return key.encode("utf-8") if isinstance(key, str) else key - - def _get_session_key(self, sid): - return self._encode_session_key(self.prefix + sid) - - @retry_redis - def save(self, session): - key = self._get_session_key(session.sid) - payload = pickle.dumps(dict(session), pickle.HIGHEST_PROTOCOL) - self.server.setex(name=key, value=payload, time=SESSION_TIMEOUT) - - @retry_redis - def delete(self, session): - self.server.delete(self._get_session_key(session.sid)) - - @retry_redis - def get(self, sid): - if not self.is_valid_key(sid): - return self.new() - key = self._get_session_key(sid) - payload = self.server.get(key) - if payload: - self.server.setex(name=key, value=payload, time=SESSION_TIMEOUT) - return self.session_class(pickle.loads(payload), sid, False) - else: - return self.session_class({}, sid, False) - diff --git a/muk_utils/LICENSE b/muk_utils/LICENSE deleted file mode 100644 index 11e8067..0000000 --- a/muk_utils/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/muk_utils/README.rst b/muk_utils/README.rst deleted file mode 100644 index 8d86771..0000000 --- a/muk_utils/README.rst +++ /dev/null @@ -1,118 +0,0 @@ -========= -MuK Utils -========= - -Technical module to provide tools and mixins. It extends the general settings -view to include the option to migrate the attachment storage. Furthermore it -offers a Group and Hierarchy mixin. - - -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 `_). - -To install our modules using the package manager make sure -`odoo-autodiscover `_ is installed -correctly. Note that for Odoo version 11.0 and later this is not necessary anymore. -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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**Example:** - -``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo13-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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -For modules licensed under a proprietary license, you will receive the access data after you purchased -the module. If the purchase were made at the Odoo store please contact our `support `_ -with a confirmation of the 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 `` - -When the process is finished, restart your server and update the application in -Odoo, just like you would normally. - - -Configuration -============= - -No additional configuration is needed to use this module. - - -Usage -===== - -This module has no direct visible effect on the system. It provide utility features. - - -Credit -====== - -Contributors ------------- - -* Mathias Markl - -Images ------- - -Some pictures are based on or inspired by the icon set of Font Awesome: - -* `Font Awesome `_ - - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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 `_ -or visit our `website `_. diff --git a/muk_utils/__init__.py b/muk_utils/__init__.py deleted file mode 100644 index fc090e5..0000000 --- a/muk_utils/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import models, tools diff --git a/muk_utils/__manifest__.py b/muk_utils/__manifest__.py deleted file mode 100644 index 2f4738b..0000000 --- a/muk_utils/__manifest__.py +++ /dev/null @@ -1,43 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -{ - "name": "MuK Utils", - "summary": """Utility Features""", - "version": "13.0.1.0.2", - "category": "Extra Tools", - "license": "LGPL-3", - "author": "MuK IT", - "website": "https://www.mukit.at", - "contributors": ["Mathias Markl "], - "depends": ["base_setup"], - "data": [ - "actions/ir_attachment.xml", - "views/ir_attachment.xml", - "views/mixins_groups.xml", - "views/res_config_settings.xml", - ], - "images": ["static/description/banner.png"], - "application": False, - "installable": True, - "auto_install": False, -} \ No newline at end of file diff --git a/muk_utils/actions/ir_attachment.xml b/muk_utils/actions/ir_attachment.xml deleted file mode 100644 index 7a1b317..0000000 --- a/muk_utils/actions/ir_attachment.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - Migrate - - - code - records.action_migrate() - - - diff --git a/muk_utils/doc/changelog.rst b/muk_utils/doc/changelog.rst deleted file mode 100644 index fcc9635..0000000 --- a/muk_utils/doc/changelog.rst +++ /dev/null @@ -1,34 +0,0 @@ -`1.6.0` -------- - -- Override Attachment to make it more extendable - -`1.5.0` -------- - -- Storage Migration Action - -`1.4.0` -------- - -- Added Hierarchy Mixin - -`1.3.0` -------- - -- Added SCSS Editor - -`1.2.0` -------- - -- Added Group Mixin - -`1.1.0` -------- - -- Added Storage Settings - -`1.0.0` -------- - -- Init Version diff --git a/muk_utils/doc/index.rst b/muk_utils/doc/index.rst deleted file mode 100644 index 8d86771..0000000 --- a/muk_utils/doc/index.rst +++ /dev/null @@ -1,118 +0,0 @@ -========= -MuK Utils -========= - -Technical module to provide tools and mixins. It extends the general settings -view to include the option to migrate the attachment storage. Furthermore it -offers a Group and Hierarchy mixin. - - -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 `_). - -To install our modules using the package manager make sure -`odoo-autodiscover `_ is installed -correctly. Note that for Odoo version 11.0 and later this is not necessary anymore. -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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**Example:** - -``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo13-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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -For modules licensed under a proprietary license, you will receive the access data after you purchased -the module. If the purchase were made at the Odoo store please contact our `support `_ -with a confirmation of the 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 `` - -When the process is finished, restart your server and update the application in -Odoo, just like you would normally. - - -Configuration -============= - -No additional configuration is needed to use this module. - - -Usage -===== - -This module has no direct visible effect on the system. It provide utility features. - - -Credit -====== - -Contributors ------------- - -* Mathias Markl - -Images ------- - -Some pictures are based on or inspired by the icon set of Font Awesome: - -* `Font Awesome `_ - - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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 `_ -or visit our `website `_. diff --git a/muk_utils/i18n/ar.po b/muk_utils/i18n/ar.po deleted file mode 100644 index 20c2caf..0000000 --- a/muk_utils/i18n/ar.po +++ /dev/null @@ -1,210 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_utils -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 09:39+0000\n" -"PO-Revision-Date: 2019-07-13 09:39+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Save this page before triggering the migration." -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "All Data" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Field" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Model" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_attachment -msgid "Attachment" -msgstr "مرفق" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Attachment storage location" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,help:muk_utils.field_res_config_settings__attachment_location -msgid "Attachment storage location." -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attachments" -msgstr "المُرفقات" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_base -msgid "Base" -msgstr "الأساس" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__child_groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Child Groups" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_res_config_settings -msgid "Config Settings" -msgstr "ضبط الإعدادات" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__display_name -msgid "Display Name" -msgstr "اسم العرض" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__explicit_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Explicit Users" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Field Data" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Force Storage Migration" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Group" -msgstr "المجموعة" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_groups -msgid "Group Mixin" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__name -msgid "Group Name" -msgstr "اسم المجموعة" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__users -msgid "Group Users" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_tree -msgid "Groups" -msgstr "المجموعات" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_hierarchy -msgid "Hierarchy Mixin" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__id -msgid "ID" -msgstr "المعرف" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor____last_update -msgid "Last Modified on" -msgstr "آخر تعديل في" - -#. module: muk_utils -#: model:ir.actions.server,name:muk_utils.action_attachment_migrate -msgid "Migrate" -msgstr "" - -#. module: muk_utils -#: code:addons/muk_utils/models/ir_attachment.py:87 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_group -msgid "Parent Group" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_path -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path -msgid "Parent Path" -msgstr "المسار الأصلي" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_json -msgid "Path Json" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_names -msgid "Path Names" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_scss_editor -msgid "Scss Editor" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_form -msgid "Storage" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location -msgid "Storage Location" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location_changed -msgid "Storage Location Changed" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_config_parameter -msgid "System Parameter" -msgstr "باراميتر النظام" - -#. module: muk_utils -#: sql_constraint:muk_utils.mixins.groups:0 -msgid "The name of the group must be unique!" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__count_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Users" -msgstr "المستخدمون" diff --git a/muk_utils/i18n/de.po b/muk_utils/i18n/de.po deleted file mode 100644 index cb29f86..0000000 --- a/muk_utils/i18n/de.po +++ /dev/null @@ -1,210 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_utils -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 09:39+0000\n" -"PO-Revision-Date: 2019-07-13 09:39+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Save this page before triggering the migration." -msgstr "SpeichernSie diese Seite, bevor Sie die Migration auslösen." - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "All Data" -msgstr "Alle Daten" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Field" -msgstr "Dokumenten Feld" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Model" -msgstr "Dokumenten Model" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_attachment -msgid "Attachment" -msgstr "Dateianhang" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Attachment storage location" -msgstr "Speicherort des Attachments" - -#. module: muk_utils -#: model:ir.model.fields,help:muk_utils.field_res_config_settings__attachment_location -msgid "Attachment storage location." -msgstr "Speicherort des Attachments." - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attachments" -msgstr "Dateianhänge" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_base -msgid "Base" -msgstr "Basis" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__child_groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Child Groups" -msgstr "Untergruppen" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_res_config_settings -msgid "Config Settings" -msgstr "Konfiguration " - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__display_name -msgid "Display Name" -msgstr "Anzeigename" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__explicit_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Explicit Users" -msgstr "Explizite Benutzer" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Field Data" -msgstr "Felddaten" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Force Storage Migration" -msgstr "Speichermigration erzwingen" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Group" -msgstr "Gruppe" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_groups -msgid "Group Mixin" -msgstr "Gruppen Mixin" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__name -msgid "Group Name" -msgstr "Gruppenname" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__users -msgid "Group Users" -msgstr "Gruppenbenutzer" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_tree -msgid "Groups" -msgstr "Gruppen" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_hierarchy -msgid "Hierarchy Mixin" -msgstr "Hierarchie Mixin" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__id -msgid "ID" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor____last_update -msgid "Last Modified on" -msgstr "Zuletzt geändert am" - -#. module: muk_utils -#: model:ir.actions.server,name:muk_utils.action_attachment_migrate -msgid "Migrate" -msgstr "Migrieren" - -#. module: muk_utils -#: code:addons/muk_utils/models/ir_attachment.py:87 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_group -msgid "Parent Group" -msgstr "Übergeordnete Gruppe" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_path -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path -msgid "Parent Path" -msgstr "Übergeordneter Pfad" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_json -msgid "Path Json" -msgstr "Json Pfad" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_names -msgid "Path Names" -msgstr "Pfadnamen" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_scss_editor -msgid "Scss Editor" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_form -msgid "Storage" -msgstr "Speicher" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location -msgid "Storage Location" -msgstr "Speicherort" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location_changed -msgid "Storage Location Changed" -msgstr "Speicherort geändert" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_config_parameter -msgid "System Parameter" -msgstr "Systemparameter" - -#. module: muk_utils -#: sql_constraint:muk_utils.mixins.groups:0 -msgid "The name of the group must be unique!" -msgstr "Der Name der Gruppe muss einzigartig sein!" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__count_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Users" -msgstr "Benutzer" diff --git a/muk_utils/i18n/es.po b/muk_utils/i18n/es.po deleted file mode 100644 index e111f90..0000000 --- a/muk_utils/i18n/es.po +++ /dev/null @@ -1,210 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_utils -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 09:39+0000\n" -"PO-Revision-Date: 2019-07-13 09:39+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Save this page before triggering the migration." -msgstr "Save esta página antes de iniciar la migración." - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "All Data" -msgstr "Todos los datos" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Field" -msgstr "Campo de documento adjunto" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Model" -msgstr "Modelo de documento adjunto" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_attachment -msgid "Attachment" -msgstr "Adjunto" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Attachment storage location" -msgstr "Almacén de anexos" - -#. module: muk_utils -#: model:ir.model.fields,help:muk_utils.field_res_config_settings__attachment_location -msgid "Attachment storage location." -msgstr "Almacén de archivos adjuntos." - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attachments" -msgstr "Adjuntos" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_base -msgid "Base" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__child_groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Child Groups" -msgstr "Grupos de niños" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_res_config_settings -msgid "Config Settings" -msgstr "Opciones de Configuración" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__display_name -msgid "Display Name" -msgstr "Nombre mostrado" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__explicit_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Explicit Users" -msgstr "Usuarios Explícitos" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Field Data" -msgstr "Datos de campo" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Force Storage Migration" -msgstr "Migración de almacenamiento forzado" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Group" -msgstr "Grupo" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_groups -msgid "Group Mixin" -msgstr "Mezcla de Grupo" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__name -msgid "Group Name" -msgstr "Nombre del grupo" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__users -msgid "Group Users" -msgstr "Usuarios del grupo" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_tree -msgid "Groups" -msgstr "Grupos" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_hierarchy -msgid "Hierarchy Mixin" -msgstr "Mezcla de jerarquías" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__id -msgid "ID" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor____last_update -msgid "Last Modified on" -msgstr "Última modificación en" - -#. module: muk_utils -#: model:ir.actions.server,name:muk_utils.action_attachment_migrate -msgid "Migrate" -msgstr "Migrar" - -#. module: muk_utils -#: code:addons/muk_utils/models/ir_attachment.py:87 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_group -msgid "Parent Group" -msgstr "Grupo de padres" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_path -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path -msgid "Parent Path" -msgstr "Trayectoria de los padres" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_json -msgid "Path Json" -msgstr "Camino Json" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_names -msgid "Path Names" -msgstr "Nombres de senderos" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_scss_editor -msgid "Scss Editor" -msgstr "Editor de Scss" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_form -msgid "Storage" -msgstr "Almacenamiento" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location -msgid "Storage Location" -msgstr "Almacén" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location_changed -msgid "Storage Location Changed" -msgstr "Almacén modificado" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_config_parameter -msgid "System Parameter" -msgstr "Parámetros del sistema" - -#. module: muk_utils -#: sql_constraint:muk_utils.mixins.groups:0 -msgid "The name of the group must be unique!" -msgstr "El nombre del grupo debe ser único!" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__count_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Users" -msgstr "Usuarios" diff --git a/muk_utils/i18n/fr.po b/muk_utils/i18n/fr.po deleted file mode 100644 index c8cca24..0000000 --- a/muk_utils/i18n/fr.po +++ /dev/null @@ -1,210 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_utils -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 09:40+0000\n" -"PO-Revision-Date: 2019-07-13 09:40+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Save this page before triggering the migration." -msgstr "Save cette page avant de déclencher la migration." - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "All Data" -msgstr "Toutes les données" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Field" -msgstr "Champ du document joint" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Model" -msgstr "Modèle de document joint" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_attachment -msgid "Attachment" -msgstr "Pièce jointe" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Attachment storage location" -msgstr "Pièce jointe" - -#. module: muk_utils -#: model:ir.model.fields,help:muk_utils.field_res_config_settings__attachment_location -msgid "Attachment storage location." -msgstr "Emplacement de stockage des pièces jointes" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attachments" -msgstr "Pièces jointes" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_base -msgid "Base" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__child_groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Child Groups" -msgstr "Base" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_res_config_settings -msgid "Config Settings" -msgstr "Paramètres de config" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__display_name -msgid "Display Name" -msgstr "Nom affiché" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__explicit_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Explicit Users" -msgstr "Nom d'affichage" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Field Data" -msgstr "Utilisateurs explicites" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Force Storage Migration" -msgstr "Données de terrain" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Group" -msgstr "Groupe" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_groups -msgid "Group Mixin" -msgstr "Groupe" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__name -msgid "Group Name" -msgstr "Nom du groupe" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__users -msgid "Group Users" -msgstr "Nom du groupe" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_tree -msgid "Groups" -msgstr "Groupes" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_hierarchy -msgid "Hierarchy Mixin" -msgstr "Groupes" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__id -msgid "ID" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor____last_update -msgid "Last Modified on" -msgstr "Dernière modification le" - -#. module: muk_utils -#: model:ir.actions.server,name:muk_utils.action_attachment_migrate -msgid "Migrate" -msgstr "Dernière modification le" - -#. module: muk_utils -#: code:addons/muk_utils/models/ir_attachment.py:87 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_group -msgid "Parent Group" -msgstr "Seuls les administrateurs peuvent exécuter cette action." - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_path -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path -msgid "Parent Path" -msgstr "Chemin parent" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_json -msgid "Path Json" -msgstr "Cheminement des parents" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_names -msgid "Path Names" -msgstr "Sentier Json" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_scss_editor -msgid "Scss Editor" -msgstr "Noms des chemins" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_form -msgid "Storage" -msgstr "Editeur Scss" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location -msgid "Storage Location" -msgstr "Stockage" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location_changed -msgid "Storage Location Changed" -msgstr "Emplacement de stockage" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_config_parameter -msgid "System Parameter" -msgstr "Paramètres du système" - -#. module: muk_utils -#: sql_constraint:muk_utils.mixins.groups:0 -msgid "The name of the group must be unique!" -msgstr "Changement de magasin" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__count_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Users" -msgstr "Utilisateurs" diff --git a/muk_utils/i18n/hi.po b/muk_utils/i18n/hi.po deleted file mode 100644 index 7c00033..0000000 --- a/muk_utils/i18n/hi.po +++ /dev/null @@ -1,210 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_utils -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 09:40+0000\n" -"PO-Revision-Date: 2019-07-13 09:40+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Save this page before triggering the migration." -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "All Data" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Field" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Model" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_attachment -msgid "Attachment" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Attachment storage location" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,help:muk_utils.field_res_config_settings__attachment_location -msgid "Attachment storage location." -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attachments" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_base -msgid "Base" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__child_groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Child Groups" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_res_config_settings -msgid "Config Settings" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__display_name -msgid "Display Name" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__explicit_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Explicit Users" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Field Data" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Force Storage Migration" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Group" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_groups -msgid "Group Mixin" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__name -msgid "Group Name" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__users -msgid "Group Users" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_tree -msgid "Groups" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_hierarchy -msgid "Hierarchy Mixin" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__id -msgid "ID" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor____last_update -msgid "Last Modified on" -msgstr "" - -#. module: muk_utils -#: model:ir.actions.server,name:muk_utils.action_attachment_migrate -msgid "Migrate" -msgstr "" - -#. module: muk_utils -#: code:addons/muk_utils/models/ir_attachment.py:87 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_group -msgid "Parent Group" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_path -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path -msgid "Parent Path" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_json -msgid "Path Json" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_names -msgid "Path Names" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_scss_editor -msgid "Scss Editor" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_form -msgid "Storage" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location -msgid "Storage Location" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location_changed -msgid "Storage Location Changed" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_config_parameter -msgid "System Parameter" -msgstr "" - -#. module: muk_utils -#: sql_constraint:muk_utils.mixins.groups:0 -msgid "The name of the group must be unique!" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__count_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Users" -msgstr "" diff --git a/muk_utils/i18n/muk_utils.pot b/muk_utils/i18n/muk_utils.pot deleted file mode 100644 index 1138072..0000000 --- a/muk_utils/i18n/muk_utils.pot +++ /dev/null @@ -1,210 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_utils -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 09:39+0000\n" -"PO-Revision-Date: 2019-07-13 09:39+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Save this page before triggering the migration." -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "All Data" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Field" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Model" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_attachment -msgid "Attachment" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Attachment storage location" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,help:muk_utils.field_res_config_settings__attachment_location -msgid "Attachment storage location." -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attachments" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_base -msgid "Base" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__child_groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Child Groups" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_res_config_settings -msgid "Config Settings" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__display_name -msgid "Display Name" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__explicit_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Explicit Users" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Field Data" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Force Storage Migration" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Group" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_groups -msgid "Group Mixin" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__name -msgid "Group Name" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__users -msgid "Group Users" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_tree -msgid "Groups" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_hierarchy -msgid "Hierarchy Mixin" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__id -msgid "ID" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor____last_update -msgid "Last Modified on" -msgstr "" - -#. module: muk_utils -#: model:ir.actions.server,name:muk_utils.action_attachment_migrate -msgid "Migrate" -msgstr "" - -#. module: muk_utils -#: code:addons/muk_utils/models/ir_attachment.py:87 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_group -msgid "Parent Group" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_path -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path -msgid "Parent Path" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_json -msgid "Path Json" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_names -msgid "Path Names" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_scss_editor -msgid "Scss Editor" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_form -msgid "Storage" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location -msgid "Storage Location" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location_changed -msgid "Storage Location Changed" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_config_parameter -msgid "System Parameter" -msgstr "" - -#. module: muk_utils -#: sql_constraint:muk_utils.mixins.groups:0 -msgid "The name of the group must be unique!" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__count_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Users" -msgstr "" diff --git a/muk_utils/i18n/nl.po b/muk_utils/i18n/nl.po deleted file mode 100644 index ffdabfc..0000000 --- a/muk_utils/i18n/nl.po +++ /dev/null @@ -1,210 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_utils -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 09:40+0000\n" -"PO-Revision-Date: 2019-07-13 09:40+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Save this page before triggering the migration." -msgstr "Save deze pagina vooraleer de migratie te starten." - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "All Data" -msgstr "Alle gegevens" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Field" -msgstr "Bijgevoegd documentveld" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Model" -msgstr "Bijgevoegd documentmodel" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_attachment -msgid "Attachment" -msgstr "Bijlage" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Attachment storage location" -msgstr "Opslaglocatie voor hulpstukken" - -#. module: muk_utils -#: model:ir.model.fields,help:muk_utils.field_res_config_settings__attachment_location -msgid "Attachment storage location." -msgstr "Opslagplaats voor bevestigingsmateriaal." - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attachments" -msgstr "Bijlagen" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_base -msgid "Base" -msgstr "Basis" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__child_groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Child Groups" -msgstr "Kind groepen" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_res_config_settings -msgid "Config Settings" -msgstr "Configuratie instellingen" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__display_name -msgid "Display Name" -msgstr "Weergavenaam" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__explicit_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Explicit Users" -msgstr "Expliciete gebruikers" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Field Data" -msgstr "Veldgegevens" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Force Storage Migration" -msgstr "Krachtenopslag migratie" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Group" -msgstr "Groep" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_groups -msgid "Group Mixin" -msgstr "Groepsmixer" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__name -msgid "Group Name" -msgstr "Groepsnaam" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__users -msgid "Group Users" -msgstr "Groep gebruikers" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_tree -msgid "Groups" -msgstr "Groepen" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_hierarchy -msgid "Hierarchy Mixin" -msgstr "Hiërarchie Mixin" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__id -msgid "ID" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor____last_update -msgid "Last Modified on" -msgstr "Laatst gewijzigd op" - -#. module: muk_utils -#: model:ir.actions.server,name:muk_utils.action_attachment_migrate -msgid "Migrate" -msgstr "Migreren" - -#. module: muk_utils -#: code:addons/muk_utils/models/ir_attachment.py:87 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_group -msgid "Parent Group" -msgstr "Moedergroep" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_path -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path -msgid "Parent Path" -msgstr "Bovenliggend pad" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_json -msgid "Path Json" -msgstr "Pad Json" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_names -msgid "Path Names" -msgstr "Padnamen" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_scss_editor -msgid "Scss Editor" -msgstr "Scss-editor" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_form -msgid "Storage" -msgstr "Opslag" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location -msgid "Storage Location" -msgstr "Opslaglocatie" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location_changed -msgid "Storage Location Changed" -msgstr "Opslaglocatie veranderd" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_config_parameter -msgid "System Parameter" -msgstr "Systeem parameter" - -#. module: muk_utils -#: sql_constraint:muk_utils.mixins.groups:0 -msgid "The name of the group must be unique!" -msgstr "De naam van de groep moet uniek zijn!" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__count_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Users" -msgstr "Gebruikers" diff --git a/muk_utils/i18n/pt.po b/muk_utils/i18n/pt.po deleted file mode 100644 index 7d39a89..0000000 --- a/muk_utils/i18n/pt.po +++ /dev/null @@ -1,210 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_utils -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 09:40+0000\n" -"PO-Revision-Date: 2019-07-13 09:40+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Save this page before triggering the migration." -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "All Data" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Field" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Model" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_attachment -msgid "Attachment" -msgstr "Anexo" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Attachment storage location" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,help:muk_utils.field_res_config_settings__attachment_location -msgid "Attachment storage location." -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attachments" -msgstr "Anexos" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_base -msgid "Base" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__child_groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Child Groups" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_res_config_settings -msgid "Config Settings" -msgstr "config configurações" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__display_name -msgid "Display Name" -msgstr "Nome a Exibir" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__explicit_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Explicit Users" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Field Data" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Force Storage Migration" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Group" -msgstr "Grupo" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_groups -msgid "Group Mixin" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__name -msgid "Group Name" -msgstr "Nome do Grupo" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__users -msgid "Group Users" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_tree -msgid "Groups" -msgstr "Grupos" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_hierarchy -msgid "Hierarchy Mixin" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__id -msgid "ID" -msgstr "Id." - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor____last_update -msgid "Last Modified on" -msgstr "Última Modificação em" - -#. module: muk_utils -#: model:ir.actions.server,name:muk_utils.action_attachment_migrate -msgid "Migrate" -msgstr "" - -#. module: muk_utils -#: code:addons/muk_utils/models/ir_attachment.py:87 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_group -msgid "Parent Group" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_path -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path -msgid "Parent Path" -msgstr "Caminho ascendente " - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_json -msgid "Path Json" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_names -msgid "Path Names" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_scss_editor -msgid "Scss Editor" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_form -msgid "Storage" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location -msgid "Storage Location" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location_changed -msgid "Storage Location Changed" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_config_parameter -msgid "System Parameter" -msgstr "" - -#. module: muk_utils -#: sql_constraint:muk_utils.mixins.groups:0 -msgid "The name of the group must be unique!" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__count_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Users" -msgstr "Utilizadores" diff --git a/muk_utils/i18n/ru.po b/muk_utils/i18n/ru.po deleted file mode 100644 index b6bded4..0000000 --- a/muk_utils/i18n/ru.po +++ /dev/null @@ -1,210 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * muk_utils -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0-20190522\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-13 09:40+0000\n" -"PO-Revision-Date: 2019-07-13 09:40+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Save this page before triggering the migration." -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "All Data" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Field" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attached Document Model" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_attachment -msgid "Attachment" -msgstr "Приложение" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Attachment storage location" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,help:muk_utils.field_res_config_settings__attachment_location -msgid "Attachment storage location." -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Attachments" -msgstr "Вложения" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_base -msgid "Base" -msgstr "Базовый" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__child_groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Child Groups" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_res_config_settings -msgid "Config Settings" -msgstr "Настройки конфигурации" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__display_name -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__display_name -msgid "Display Name" -msgstr "Отображаемое Имя" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__explicit_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Explicit Users" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_search -msgid "Field Data" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -msgid "Force Storage Migration" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Group" -msgstr "Группа" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_groups -msgid "Group Mixin" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__name -msgid "Group Name" -msgstr "Наименование Группы" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__users -msgid "Group Users" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__groups -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_tree -msgid "Groups" -msgstr "Группы" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_mixins_hierarchy -msgid "Hierarchy Mixin" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__id -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor__id -msgid "ID" -msgstr "Номер" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy____last_update -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_scss_editor____last_update -msgid "Last Modified on" -msgstr "Последнее изменение" - -#. module: muk_utils -#: model:ir.actions.server,name:muk_utils.action_attachment_migrate -msgid "Migrate" -msgstr "" - -#. module: muk_utils -#: code:addons/muk_utils/models/ir_attachment.py:87 -#, python-format -msgid "Only administrators can execute this action." -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_group -msgid "Parent Group" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__parent_path -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path -msgid "Parent Path" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_json -msgid "Path Json" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_hierarchy__parent_path_names -msgid "Path Names" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_muk_utils_scss_editor -msgid "Scss Editor" -msgstr "" - -#. module: muk_utils -#: model_terms:ir.ui.view,arch_db:muk_utils.res_config_settings_view_form -#: model_terms:ir.ui.view,arch_db:muk_utils.view_attachment_form -msgid "Storage" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location -msgid "Storage Location" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_res_config_settings__attachment_location_changed -msgid "Storage Location Changed" -msgstr "" - -#. module: muk_utils -#: model:ir.model,name:muk_utils.model_ir_config_parameter -msgid "System Parameter" -msgstr "" - -#. module: muk_utils -#: sql_constraint:muk_utils.mixins.groups:0 -msgid "The name of the group must be unique!" -msgstr "" - -#. module: muk_utils -#: model:ir.model.fields,field_description:muk_utils.field_muk_utils_mixins_groups__count_users -#: model_terms:ir.ui.view,arch_db:muk_utils.view_mixins_groups_form -msgid "Users" -msgstr "Пользователи" diff --git a/muk_utils/models/__init__.py b/muk_utils/models/__init__.py deleted file mode 100644 index 9342c14..0000000 --- a/muk_utils/models/__init__.py +++ /dev/null @@ -1,31 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import ( - base, - ir_attachment, - ir_config_parameter, - mixins_groups, - mixins_hierarchy, - res_config_settings, - scss_editor, -) diff --git a/muk_utils/models/base.py b/muk_utils/models/base.py deleted file mode 100644 index 13b098e..0000000 --- a/muk_utils/models/base.py +++ /dev/null @@ -1,211 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging - -from odoo import api, models -from odoo.addons.muk_utils.tools import utils -from odoo.osv import expression - -_logger = logging.getLogger(__name__) - - -class Base(models.AbstractModel): - - _inherit = "base" - - # ---------------------------------------------------------- - # Helper Methods - # ---------------------------------------------------------- - - @api.model - def _check_parent_field(self): - if self._parent_name not in self._fields: - raise TypeError( - "The parent ({}) field does not exist.".format(self._parent_name) - ) - - @api.model - def _build_search_childs_domain(self, parent_id, domain=[]): - self._check_parent_field() - parent_domain = [[self._parent_name, "=", parent_id]] - return expression.AND([parent_domain, domain]) if domain else parent_domain - - @api.model - def _check_context_bin_size(self, field): - return any( - key in self.env.context for key in ["bin_size", "bin_size_{}".format(field)] - ) - - # ---------------------------------------------------------- - # Security - # ---------------------------------------------------------- - - def _filter_access(self, operation, in_memory=True): - if self.check_access_rights(operation, False): - if in_memory: - return self._filter_access_rules_python(operation) - else: - return self._filter_access_rules(operation) - return self.env[self._name] - - def _filter_access_ids(self, operation, in_memory=True): - return self._filter_access(operation, in_memory=in_memory).ids - - def check_access(self, operation, raise_exception=False): - """ Verifies that the operation given by ``operation`` is allowed for - the current user according to the access level. - - :param operation: one of ``read``, ``create``, ``write``, ``unlink`` - :raise AccessError: * if current level of access do not permit this operation. - :return: True if the operation is allowed - """ - try: - access_right = self.check_access_rights(operation, raise_exception) - access_rule = self.check_access_rule(operation) is None - return access_right and access_rule - except AccessError: - if raise_exception: - raise - return False - - # ---------------------------------------------------------- - # Hierarchy Methods - # ---------------------------------------------------------- - - @api.model - def search_parents(self, domain=[], offset=0, limit=None, order=None, count=False): - """ This method finds the top level elements of the hierarchy for a given search query. - - :param domain: a search domain (default: empty list) - :param order: a string to define the sort order of the query (default: none) - :returns: the top level elements for the given search query - """ - res = self._search_parents( - domain=domain, offset=offset, limit=limit, order=order, count=count - ) - return res if count else self.browse(res) - - @api.model - def search_read_parents( - self, domain=[], fields=None, offset=0, limit=None, order=None - ): - """ This method finds the top level elements of the hierarchy for a given search query. - - :param domain: a search domain (default: empty list) - :param fields: a list of fields to read (default: all fields of the model) - :param order: a string to define the sort order of the query (default: none) - :returns: the top level elements for the given search query - """ - records = self.search_parents( - domain=domain, offset=offset, limit=limit, order=order - ) - if not records: - return [] - if fields and fields == ["id"]: - return [{"id": record.id} for record in records] - result = records.read(fields) - if len(result) <= 1: - return result - index = {vals["id"]: vals for vals in result} - return [index[record.id] for record in records if record.id in index] - - @api.model - def _search_parents(self, domain=[], offset=0, limit=None, order=None, count=False): - self._check_parent_field() - self.check_access_rights("read") - if expression.is_false(self, domain): - return 0 if count else [] - self._flush_search(domain, fields=[self._parent_name], order=order) - query = self._where_calc(domain) - self._apply_ir_rules(query, "read") - from_clause, where_clause, where_clause_arguments = query.get_sql() - parent_where = where_clause and (" WHERE {}".format(where_clause)) or "" - parent_query = ( - 'SELECT "{}".id FROM '.format(self._table) + from_clause + parent_where - ) - no_parent_clause = '"{table}"."{field}" IS NULL'.format( - table=self._table, field=self._parent_name - ) - no_access_clause = '"{table}"."{field}" NOT IN ({query})'.format( - table=self._table, field=self._parent_name, query=parent_query - ) - parent_clause = "({} OR {})".format(no_parent_clause, no_access_clause) - order_by = self._generate_order_by(order, query) - from_clause, where_clause, where_clause_params = query.get_sql() - where_str = ( - where_clause - and (" WHERE {} AND {}".format(where_clause, parent_clause)) - or (" WHERE {}".format(parent_clause)) - ) - if count: - query_str = "SELECT count(1) FROM " + from_clause + where_str - self.env.cr.execute(query_str, where_clause_params + where_clause_arguments) - return self.env.cr.fetchone()[0] - limit_str = limit and " limit %d" % limit or "" - offset_str = offset and " offset %d" % offset or "" - query_str = ( - 'SELECT "{}".id FROM '.format(self._table) - + from_clause - + where_str - + order_by - + limit_str - + offset_str - ) - self.env.cr.execute(query_str, where_clause_params + where_clause_arguments) - return utils.uniquify_list([x[0] for x in self.env.cr.fetchall()]) - - @api.model - def search_childs( - self, parent_id, domain=[], offset=0, limit=None, order=None, count=False - ): - """ This method finds the direct child elements of the parent record for a given search query. - - :param parent_id: the integer representing the ID of the parent record - :param domain: a search domain (default: empty list) - :param offset: the number of results to ignore (default: none) - :param limit: maximum number of records to return (default: all) - :param order: a string to define the sort order of the query (default: none) - :param count: counts and returns the number of matching records (default: False) - :returns: the top level elements for the given search query - """ - domain = self._build_search_childs_domain(parent_id, domain=domain) - return self.search(domain, offset=offset, limit=limit, order=order, count=count) - - @api.model - def search_read_childs( - self, parent_id, domain=[], fields=None, offset=0, limit=None, order=None - ): - """ This method finds the direct child elements of the parent record for a given search query. - - :param parent_id: the integer representing the ID of the parent record - :param domain: a search domain (default: empty list) - :param fields: a list of fields to read (default: all fields of the model) - :param offset: the number of results to ignore (default: none) - :param limit: maximum number of records to return (default: all) - :param order: a string to define the sort order of the query (default: none) - :returns: the top level elements for the given search query - """ - domain = self._build_search_childs_domain(parent_id, domain=domain) - return self.search_read( - domain=domain, fields=fields, offset=offset, limit=limit, order=order - ) diff --git a/muk_utils/models/ir_attachment.py b/muk_utils/models/ir_attachment.py deleted file mode 100644 index 57e396d..0000000 --- a/muk_utils/models/ir_attachment.py +++ /dev/null @@ -1,102 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging - -from odoo import _, api, models -from odoo.exceptions import AccessError -from odoo.osv import expression - -_logger = logging.getLogger(__name__) - - -class IrAttachment(models.Model): - - _inherit = "ir.attachment" - - # ---------------------------------------------------------- - # Helper - # ---------------------------------------------------------- - - @api.model - def _get_storage_domain(self, storage): - return { - "db": [("db_datas", "=", False)], - "file": [("store_fname", "=", False)], - }[storage] - - # ---------------------------------------------------------- - # Actions - # ---------------------------------------------------------- - - def action_migrate(self): - self.migrate() - - # ---------------------------------------------------------- - # Functions - # ---------------------------------------------------------- - - @api.model - def storage_locations(self): - return ["db", "file"] - - @api.model - def force_storage(self): - """Force all attachments to be stored in the currently configured storage""" - if not self.env.user._is_admin(): - raise AccessError(_("Only administrators can execute this action.")) - self.search( - expression.AND( - [ - self._get_storage_domain(self._storage()), - [ - "&", - "|", - ("res_field", "=", False), - ("res_field", "!=", False), - ("type", "=", "binary"), - ], - ] - ) - ).migrate(batch_size=100) - return True - - def migrate(self, batch_size=None): - commit_on_batch = bool(batch_size) - attachments_to_migrate = len(self) - batch_size = batch_size or len(self) or 1 - storage_location = self._storage().upper() - for index, attachment in enumerate(self, start=1): - _logger.info( - "Migrate Attachment {index} of {total} to {storage}".format( - **{ - "index": index, - "total": attachments_to_migrate, - "storage": storage_location, - } - ) - ) - attachment.write( - {"datas": attachment.datas, "mimetype": attachment.mimetype} - ) - if commit_on_batch and not index % batch_size: - self.env.cr.commit() diff --git a/muk_utils/models/ir_config_parameter.py b/muk_utils/models/ir_config_parameter.py deleted file mode 100644 index 2dd72c9..0000000 --- a/muk_utils/models/ir_config_parameter.py +++ /dev/null @@ -1,33 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from odoo import api, models - - -class IrConfigParameter(models.Model): - - _inherit = "ir.config_parameter" - - @api.model - def set_params(self, params): - for key, value in params.items(): - self.set_param(key, value) diff --git a/muk_utils/models/mixins_groups.py b/muk_utils/models/mixins_groups.py deleted file mode 100644 index 2db9c9a..0000000 --- a/muk_utils/models/mixins_groups.py +++ /dev/null @@ -1,143 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from odoo import api, fields, models - - -class Groups(models.AbstractModel): - - _name = "muk_utils.mixins.groups" - _description = "Group Mixin" - - _parent_store = True - _parent_name = "parent_group" - - # ---------------------------------------------------------- - # Database - # ---------------------------------------------------------- - - name = fields.Char(string="Group Name", required=True, translate=True) - - parent_path = fields.Char(string="Parent Path", index=True) - - count_users = fields.Integer(compute="_compute_users", string="Users", store=True) - - @api.model - def _add_magic_fields(self): - super(Groups, self)._add_magic_fields() - - def add(name, field): - if name not in self._fields: - self._add_field(name, field) - - add( - "parent_group", - fields.Many2one( - _module=self._module, - comodel_name=self._name, - string="Parent Group", - ondelete="cascade", - auto_join=True, - index=True, - automatic=True, - ), - ) - add( - "child_groups", - fields.One2many( - _module=self._module, - comodel_name=self._name, - inverse_name="parent_group", - string="Child Groups", - automatic=True, - ), - ) - add( - "groups", - fields.Many2many( - _module=self._module, - comodel_name="res.groups", - relation="{}_groups_rel".format(self._table), - column1="gid", - column2="rid", - string="Groups", - automatic=True, - ), - ) - add( - "explicit_users", - fields.Many2many( - _module=self._module, - comodel_name="res.users", - relation="{}_explicit_users_rel".format(self._table), - column1="gid", - column2="uid", - string="Explicit Users", - automatic=True, - ), - ) - add( - "users", - fields.Many2many( - _module=self._module, - comodel_name="res.users", - relation="{}_users_rel".format(self._table), - column1="gid", - column2="uid", - string="Group Users", - compute="_compute_users", - store=True, - automatic=True, - ), - ) - - _sql_constraints = [ - ("name_uniq", "unique (name)", "The name of the group must be unique!") - ] - - # ---------------------------------------------------------- - # Functions - # ---------------------------------------------------------- - - @api.model - def default_get(self, fields_list): - res = super(Groups, self).default_get(fields_list) - if not self.env.context.get("groups_no_autojoin"): - if "explicit_users" in res and res["explicit_users"]: - res["explicit_users"] = res["explicit_users"] + [self.env.uid] - else: - res["explicit_users"] = [self.env.uid] - return res - - # ---------------------------------------------------------- - # Read, View - # ---------------------------------------------------------- - - @api.depends( - "parent_group", "parent_group.users", "groups", "groups.users", "explicit_users" - ) - def _compute_users(self): - for record in self: - users = record.mapped("groups.users") - users |= record.mapped("explicit_users") - users |= record.mapped("parent_group.users") - record.update({"users": users, "count_users": len(users)}) diff --git a/muk_utils/models/mixins_hierarchy.py b/muk_utils/models/mixins_hierarchy.py deleted file mode 100644 index 0a8f8e4..0000000 --- a/muk_utils/models/mixins_hierarchy.py +++ /dev/null @@ -1,184 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import functools -import json -import operator - -from odoo import api, fields, models -from odoo.osv import expression - - -class Hierarchy(models.AbstractModel): - - _name = "muk_utils.mixins.hierarchy" - _description = "Hierarchy Mixin" - - _parent_store = True - _parent_path_sudo = False - _parent_path_store = False - - _name_path_context = "show_path" - - # ---------------------------------------------------------- - # Database - # ---------------------------------------------------------- - - parent_path = fields.Char(string="Parent Path", index=True) - - @api.model - def _add_magic_fields(self): - super(Hierarchy, self)._add_magic_fields() - - def add(name, field): - if name not in self._fields: - self._add_field(name, field) - - path_names_search = None - if not self._parent_path_store: - path_names_search = "_search_parent_path_names" - add( - "parent_path_names", - fields.Char( - _module=self._module, - compute="_compute_parent_paths", - compute_sudo=self._parent_path_sudo, - store=self._parent_path_store, - search=path_names_search, - string="Path Names", - readonly=True, - automatic=True, - ), - ) - add( - "parent_path_json", - fields.Text( - _module=self._module, - compute="_compute_parent_paths", - compute_sudo=self._parent_path_sudo, - store=self._parent_path_store, - string="Path Json", - readonly=True, - automatic=True, - ), - ) - - # ---------------------------------------------------------- - # Helper - # ---------------------------------------------------------- - - @api.model - def _get_depends_parent_paths(self): - depends = ["parent_path"] - if self._rec_name: - depends += [self._rec_name] - elif "name" in self._fields: - depends += ["name"] - elif "x_name" in self._fields: - depends += ["x_name"] - return depends - - # ---------------------------------------------------------- - # Search - # ---------------------------------------------------------- - - @api.model - def _search_parent_path_names(self, operator, operand): - domain = [] - for value in operand.split("/"): - args = [(self._rec_name_fallback(), operator, value)] - domain = expression.OR([args, domain]) if domain else args - return domain if domain else [(self._rec_name_fallback(), operator, "")] - - # ---------------------------------------------------------- - # Read, View - # ---------------------------------------------------------- - - @api.depends(lambda self: self._get_depends_parent_paths()) - def _compute_parent_paths(self): - records = self.filtered("parent_path") - records_without_parent_path = self - records - paths = [list(map(int, rec.parent_path.split("/")[:-1])) for rec in records] - ids = paths and set(functools.reduce(operator.concat, paths)) or [] - model_without_path = self.with_context(**{self._name_path_context: False}) - filtered_records = model_without_path.browse(ids)._filter_access("read") - data = dict(filtered_records.name_get()) - for record in records: - path_names = [""] - path_json = [] - for id in reversed(list(map(int, record.parent_path.split("/")[:-1]))): - if id not in data: - break - path_names.append(data[id]) - path_json.append({"model": record._name, "name": data[id], "id": id}) - path_names.reverse() - path_json.reverse() - record.update( - { - "parent_path_names": "/".join(path_names), - "parent_path_json": json.dumps(path_json), - } - ) - records_without_parent_path.update( - {"parent_path_names": False, "parent_path_json": False} - ) - - @api.model - def _name_search( - self, name="", args=None, operator="ilike", limit=100, name_get_uid=None - ): - domain = list(args or []) - if not (name == "" and operator == "ilike"): - if "/" in name: - domain += [("parent_path_names", operator, name)] - else: - domain += [(self._rec_name, operator, name)] - records = self.browse( - self._search(domain, limit=limit, access_rights_uid=name_get_uid) - ) - return models.lazy_name_get(records.with_user(name_get_uid or self.env.uid)) - - def name_get(self): - if self.env.context.get(self._name_path_context): - res = [] - for record in self: - names = record.parent_path_names - if not names: - res.append(super(Hierarchy, record).name_get()[0]) - elif not len(names) > 50: - res.append((record.id, names)) - else: - res.append((record.id, ".." + names[-48:])) - return res - return super(Hierarchy, self).name_get() - - # ---------------------------------------------------------- - # Create, Update, Delete - # ---------------------------------------------------------- - - def write(self, vals): - res = super(Hierarchy, self).write(vals) - if self._parent_path_store and self._rec_name_fallback() in vals: - domain = [("id", "child_of", self.ids)] - records = self.sudo().search(domain) - records.modified(["parent_path"]) - return res diff --git a/muk_utils/models/res_config_settings.py b/muk_utils/models/res_config_settings.py deleted file mode 100644 index bec068d..0000000 --- a/muk_utils/models/res_config_settings.py +++ /dev/null @@ -1,56 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from odoo import fields, models - - -class ResConfigSettings(models.TransientModel): - - _inherit = "res.config.settings" - - # ---------------------------------------------------------- - # Selections - # ---------------------------------------------------------- - - def _attachment_location_selection(self): - locations = self.env["ir.attachment"].storage_locations() - return list(map(lambda location: (location, location.upper()), locations)) - - # ---------------------------------------------------------- - # Database - # ---------------------------------------------------------- - - attachment_location = fields.Selection( - selection=lambda self: self._attachment_location_selection(), - config_parameter="ir_attachment.location", - string="Storage Location", - help="Attachment storage location.", - required=True, - default="file", - ) - - # ---------------------------------------------------------- - # Actions - # ---------------------------------------------------------- - - def action_attachment_force_storage(self): - self.env["ir.attachment"].force_storage() diff --git a/muk_utils/models/scss_editor.py b/muk_utils/models/scss_editor.py deleted file mode 100644 index 8034b0a..0000000 --- a/muk_utils/models/scss_editor.py +++ /dev/null @@ -1,146 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import re -import uuid -import base64 - -from odoo import models, fields, api -from odoo.modules import module - - -class ScssEditor(models.AbstractModel): - _name = 'muk_utils.scss_editor' - _description = 'Scss Editor' - - # ---------------------------------------------------------- - # Helper - # ---------------------------------------------------------- - - def _build_custom_url(self, url_parts, xmlid): - return "%s.custom.%s.%s" % (url_parts[0], xmlid, url_parts[1]) - - def _get_custom_url(self, url, xmlid): - return self._build_custom_url(url.rsplit(".", 1), xmlid) - - def _get_custom_attachment(self, url): - return self.env["ir.attachment"].with_context( - bin_size=False, bin_size_datas=False - ).search([("url", '=', url)], limit=1) - - def _get_custom_view(self, url): - return self.env["ir.ui.view"].search([("name", '=', url)]) - - def _get_variable(self, content, variable): - regex = r'{0}\:?\s(.*?);'.format(variable) - value = re.search(regex, content) - return value and value.group(1) - - def _get_variables(self, content, variables): - return {var: self._get_variable(content, var) for var in variables} - - def _replace_variables(self, content, variables): - for variable in variables: - variable_content = '{0}: {1};'.format( - variable['name'], - variable['value'] - ) - regex = r'{0}\:?\s(.*?);'.format(variable['name']) - content = re.sub(regex, variable_content, content) - return content - - # ---------------------------------------------------------- - # Read - # ---------------------------------------------------------- - - def get_content(self, url, xmlid): - custom_url = self._get_custom_url(url, xmlid) - custom_attachment = self._get_custom_attachment(custom_url) - if custom_attachment.exists(): - return base64.b64decode(custom_attachment.datas).decode('utf-8') - else: - match = re.compile("^/(\w+)/(.+?)(\.custom\.(.+))?\.(\w+)$").match(url) - module_path = module.get_module_path(match.group(1)) - resource_path = "%s.%s" % (match.group(2), match.group(5)) - module_resource_path = module.get_resource_path(module_path, resource_path) - with open(module_resource_path, "rb") as file: - return file.read().decode('utf-8') - - def get_values(self, url, xmlid, variables): - return self._get_variables(self.get_content(url, xmlid), variables) - - # ---------------------------------------------------------- - # Write - # ---------------------------------------------------------- - - def replace_content(self, url, xmlid, content): - custom_url = self._get_custom_url(url, xmlid) - custom_view = self._get_custom_view(custom_url) - custom_attachment = self._get_custom_attachment(custom_url) - datas = base64.b64encode((content or "\n").encode("utf-8")) - if custom_attachment.exists(): - custom_attachment.write({"datas": datas}) - else: - self.env["ir.attachment"].create({ - 'name': custom_url, - 'type': "binary", - 'mimetype': "text/scss", - 'datas': datas, - # TODO: old field datas_fname got removed, check if store_fname is correct and write migration - 'store_fname': url.split("/")[-1], - 'url': custom_url, - }) - if not custom_view.exists(): - view_to_xpath = self.env["ir.ui.view"].get_related_views( - xmlid, bundles=True - ).filtered(lambda v: v.arch.find(url) >= 0) - self.env["ir.ui.view"].create({ - 'name': custom_url, - 'key': 'web_editor.scss_%s' % str(uuid.uuid4())[:6], - 'mode': "extension", - 'priority': view_to_xpath.priority, - 'inherit_id': view_to_xpath.id, - 'arch': """ - - - %(new_url)s - - - """ % { - 'inherit_xml_id': view_to_xpath.xml_id, - 'name': custom_url, - 'url_to_replace': url, - 'new_url': custom_url, - } - }) - self.env["ir.qweb"].clear_caches() - - def replace_values(self, url, xmlid, variables): - content = self._replace_variables( - self.get_content(url, xmlid), variables - ) - self.replace_content(url, xmlid, content) - - def reset_values(self, url, xmlid): - custom_url = self._get_custom_url(url, xmlid) - self._get_custom_attachment(custom_url).unlink() - self._get_custom_view(custom_url).unlink() diff --git a/muk_utils/static/description/banner.png b/muk_utils/static/description/banner.png deleted file mode 100644 index cf5692b..0000000 Binary files a/muk_utils/static/description/banner.png and /dev/null differ diff --git a/muk_utils/static/description/icon.png b/muk_utils/static/description/icon.png deleted file mode 100644 index 1b124a9..0000000 Binary files a/muk_utils/static/description/icon.png and /dev/null differ diff --git a/muk_utils/static/description/icon.svg b/muk_utils/static/description/icon.svg deleted file mode 100644 index 45683e2..0000000 --- a/muk_utils/static/description/icon.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/muk_utils/static/description/index.html b/muk_utils/static/description/index.html deleted file mode 100644 index 8dc5820..0000000 --- a/muk_utils/static/description/index.html +++ /dev/null @@ -1,216 +0,0 @@ -
-
-

MuK Utils

-

Utility Features

-

- MuK IT GmbH - www.mukit.at -

-
- -
-
-
- -
-
-
-

Overview

-

- Technical module to provide tools and mixins. It extends the - general settings view to include the option to migrate the - attachment storage. Furthermore it offers a Group and - Hierarchy mixin. -

-
-
-
- -
-
-
-

Groups Mixin

-
-
-
- -
-
-
-

- This mixin can be inherited to get a user field based - on groups, jobs and departments, which is automatically - updated. -

-
-
-
-
-
- -
-
-
-

Hierarchy Mixin

-
-
-

- This mixin can be inherited by models with parent path to get an - automatically updating field containing the names of the records - included in the parent path field. -

-
-
-
- -
-
-
-
-
-
- -
- -
- -
-
-
- - - -
-
-
- -
-

Help and Support

-
- Feel free to contact us, if you need any help with your Odoo integration or - addiontal features. -
- - -
diff --git a/muk_utils/static/description/logo.png b/muk_utils/static/description/logo.png deleted file mode 100644 index 9427ce3..0000000 Binary files a/muk_utils/static/description/logo.png and /dev/null differ diff --git a/muk_utils/static/description/preview.png b/muk_utils/static/description/preview.png deleted file mode 100644 index 1deb1cc..0000000 Binary files a/muk_utils/static/description/preview.png and /dev/null differ diff --git a/muk_utils/static/description/screenshot.png b/muk_utils/static/description/screenshot.png deleted file mode 100644 index ad661dc..0000000 Binary files a/muk_utils/static/description/screenshot.png and /dev/null differ diff --git a/muk_utils/static/description/screenshot_groups.png b/muk_utils/static/description/screenshot_groups.png deleted file mode 100644 index 478dbd2..0000000 Binary files a/muk_utils/static/description/screenshot_groups.png and /dev/null differ diff --git a/muk_utils/static/description/screenshot_hierarchy.png b/muk_utils/static/description/screenshot_hierarchy.png deleted file mode 100644 index 0f7081e..0000000 Binary files a/muk_utils/static/description/screenshot_hierarchy.png and /dev/null differ diff --git a/muk_utils/static/description/service_customization.png b/muk_utils/static/description/service_customization.png deleted file mode 100644 index 3eac664..0000000 Binary files a/muk_utils/static/description/service_customization.png and /dev/null differ diff --git a/muk_utils/static/description/service_development.png b/muk_utils/static/description/service_development.png deleted file mode 100644 index 580d460..0000000 Binary files a/muk_utils/static/description/service_development.png and /dev/null differ diff --git a/muk_utils/static/description/service_implementation.png b/muk_utils/static/description/service_implementation.png deleted file mode 100644 index d64b66b..0000000 Binary files a/muk_utils/static/description/service_implementation.png and /dev/null differ diff --git a/muk_utils/static/description/service_integration.png b/muk_utils/static/description/service_integration.png deleted file mode 100644 index 76c5e80..0000000 Binary files a/muk_utils/static/description/service_integration.png and /dev/null differ diff --git a/muk_utils/static/description/service_support.png b/muk_utils/static/description/service_support.png deleted file mode 100644 index 4c530fa..0000000 Binary files a/muk_utils/static/description/service_support.png and /dev/null differ diff --git a/muk_utils/tests/__init__.py b/muk_utils/tests/__init__.py deleted file mode 100644 index 19917f1..0000000 --- a/muk_utils/tests/__init__.py +++ /dev/null @@ -1,31 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import ( - test_attachment_migration, - test_file_tools, - test_http_tools, - test_json_tools, - test_search_childs, - test_search_parents, - test_security_helper, -) diff --git a/muk_utils/tests/test_attachment_migration.py b/muk_utils/tests/test_attachment_migration.py deleted file mode 100644 index f7dcba5..0000000 --- a/muk_utils/tests/test_attachment_migration.py +++ /dev/null @@ -1,70 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging - -from odoo.osv import expression -from odoo.tests import common - -_logger = logging.getLogger(__name__) - - -class MigrationTestCase(common.TransactionCase): - def setUp(self): - super(MigrationTestCase, self).setUp() - self.model = self.env["ir.attachment"] - self.params = self.env["ir.config_parameter"].sudo() - self.location = self.params.get_param("ir_attachment.location") - if self.location == "file": - self.params.set_param("ir_attachment.location", "db") - else: - self.params.set_param("ir_attachment.location", "file") - - def tearDown(self): - self.params.set_param("ir_attachment.location", self.location) - super(MigrationTestCase, self).tearDown() - - def test_storage_domain(self): - self.assertEqual( - self.model._get_storage_domain("db"), [("db_datas", "=", False)] - ) - self.assertEqual( - self.model._get_storage_domain("file"), [("store_fname", "=", False)] - ) - - def test_force_storage_domain(self): - force_storage_domain = expression.AND( - [ - self.model._get_storage_domain("db"), - [ - "&", - "|", - ("res_field", "=", False), - ("res_field", "!=", False), - ("type", "=", "binary"), - ], - ] - ) - self.assertFalse(expression.is_false(self.model, force_storage_domain)) - - def test_migration(self): - self.model.search([("type", "=", "binary")], limit=25).migrate() diff --git a/muk_utils/tests/test_file_tools.py b/muk_utils/tests/test_file_tools.py deleted file mode 100644 index e5ee7a2..0000000 --- a/muk_utils/tests/test_file_tools.py +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging -import os -import shutil -import tempfile - -from odoo.addons.muk_utils.tools import file -from odoo.tests import common - -_logger = logging.getLogger(__name__) - - -class FileTestCase(common.TransactionCase): - def test_check_name(self): - self.assertTrue(file.check_name("Test")) - self.assertFalse(file.check_name("T/est")) - - def test_compute_name(self): - self.assertEqual(file.compute_name("Test", 1, False), "Test(1)") - self.assertEqual(file.compute_name("Test.png", 1, True), "Test(1).png") - - def test_unique_name(self): - self.assertEqual(file.unique_name("Test", ["A", "B"]), "Test") - self.assertEqual(file.unique_name("Test", ["Test"]), "Test(1)") - - def test_unique_files(self): - files = file.unique_files( - [("Test.png", b"\xff data"), ("Test.png", b"\xff data")] - ) - self.assertEqual( - files, [("Test.png", b"\xff data"), ("Test(1).png", b"\xff data")] - ) - - def test_guess_extension(self): - self.assertEqual(file.guess_extension(filename="Test.png"), "png") - self.assertEqual(file.guess_extension(mimetype="image/png"), "png") - - def test_ensure_path_directories(self): - tmp_dir = tempfile.mkdtemp() - try: - path = os.path.join(tmp_dir, "Test/Test/") - file.ensure_path_directories(path) - self.assertTrue(os.path.exists(path)) - finally: - shutil.rmtree(tmp_dir) - return True - - def test_remove_empty_directories(self): - tmp_dir = tempfile.mkdtemp() - try: - dir = os.path.join(tmp_dir, "Test/") - path = os.path.join(dir, "Test/") - os.makedirs(path) - open(os.path.join(dir, "F"), "ab").close() - file.remove_empty_directories(path) - self.assertFalse(os.path.exists(path)) - self.assertTrue(os.path.exists(dir)) - finally: - shutil.rmtree(tmp_dir) - return True diff --git a/muk_utils/tests/test_http_tools.py b/muk_utils/tests/test_http_tools.py deleted file mode 100644 index 5190cd6..0000000 --- a/muk_utils/tests/test_http_tools.py +++ /dev/null @@ -1,36 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import base64 -import logging - -from odoo.addons.muk_utils.tools import http -from odoo.tests import common - -_logger = logging.getLogger(__name__) - - -class HttpTestCase(common.TransactionCase): - def test_decode_http_basic_authentication(self): - credentials = base64.b64encode(b"username:password").decode("ascii") - res = http.decode_http_basic_authentication("Basic {}".format(credentials)) - self.assertEqual(res, ("username", "password")) diff --git a/muk_utils/tests/test_json_tools.py b/muk_utils/tests/test_json_tools.py deleted file mode 100644 index 70878c9..0000000 --- a/muk_utils/tests/test_json_tools.py +++ /dev/null @@ -1,35 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import json -import logging - -from odoo.addons.muk_utils.tools.json import RecordEncoder -from odoo.tests import common - -_logger = logging.getLogger(__name__) - - -class JsonTestCase(common.TransactionCase): - def test_json_dumps(self): - record = self.env["ir.attachment"].search_read([], limit=1) - json.dumps(record, sort_keys=True, indent=4, cls=RecordEncoder) diff --git a/muk_utils/tests/test_search_childs.py b/muk_utils/tests/test_search_childs.py deleted file mode 100644 index 9afde91..0000000 --- a/muk_utils/tests/test_search_childs.py +++ /dev/null @@ -1,61 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging - -from odoo.tests import common - -_logger = logging.getLogger(__name__) - - -class SearchChildsTestCase(common.TransactionCase): - def setUp(self): - super(SearchChildsTestCase, self).setUp() - self.model = self.env["res.partner.category"] - self.parent = self.model.create( - {"parent_id": False, "name": "Parent", "active": True} - ) - self.child = self.model.create( - {"parent_id": self.parent.id, "name": "Child", "active": True} - ) - self.child_parent = self.model.create( - {"parent_id": self.parent.id, "name": "Child Parent", "active": True} - ) - self.child_parent_child = self.model.create( - { - "parent_id": self.child_parent.id, - "name": "Child Parent Child", - "active": True, - } - ) - - def tearDown(self): - super(SearchChildsTestCase, self).tearDown() - - def test_search_childs(self): - childs = self.model.search_childs(self.parent.id) - self.assertEqual(set(childs.ids), {self.child.id, self.child_parent.id}) - - def test_search_read_childs(self): - childs = self.model.search_childs(self.parent.id) - childs_names = self.model.search_read_childs(self.parent.id, fields=["name"]) - self.assertEqual(childs.read(["name"]), childs_names) diff --git a/muk_utils/tests/test_search_parents.py b/muk_utils/tests/test_search_parents.py deleted file mode 100644 index 9542c39..0000000 --- a/muk_utils/tests/test_search_parents.py +++ /dev/null @@ -1,113 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging - -from odoo.tests import common - -_logger = logging.getLogger(__name__) - - -class SearchParentTestCase(common.TransactionCase): - def setUp(self): - super(SearchParentTestCase, self).setUp() - self.model = self.env["res.partner.category"] - self.parent = self.model.create( - {"parent_id": False, "name": "Parent", "active": True} - ) - self.child = self.model.create( - {"parent_id": self.parent.id, "name": "Child", "active": True} - ) - self.child_parent = self.model.create( - {"parent_id": self.parent.id, "name": "Child Parent", "active": True} - ) - self.child_parent_child = self.model.create( - { - "parent_id": self.child_parent.id, - "name": "Child Parent Child", - "active": True, - } - ) - self.ids = [ - self.parent.id, - self.child.id, - self.child_parent.id, - self.child_parent_child.id, - ] - self.domain = [("id", "in", self.ids)] - - def tearDown(self): - super(SearchParentTestCase, self).tearDown() - - def _evaluate_parent_result(self, parents, records): - for parent in parents: - self.assertTrue( - not parent.parent_id or parent.parent_id.id not in records.ids - ) - - def test_search_parents(self): - records = self.model.search([]) - parents = self.model.search_parents([]) - self._evaluate_parent_result(parents, records) - - def test_search_parents_domain(self): - records = self.model.search([("id", "!=", 1)]) - parents = self.model.search_parents([("id", "!=", 1)]) - self._evaluate_parent_result(parents, records) - - def test_search_parents_domain(self): - records = self.model.search([("id", "!=", 1)]) - parents = self.model.search_parents([("id", "!=", 1)]) - self._evaluate_parent_result(parents, records) - - def test_search_parents_args(self): - records = self.model.search([], offset=1, limit=1, order="name desc") - parents = self.model.search_parents(offset=1, limit=1, order="name desc") - self._evaluate_parent_result(parents, records) - - def test_search_parents_count(self): - parents = self.model.search_parents(self.domain, count=False) - parent_count = self.model.search_parents(self.domain, count=True) - self.assertTrue(len(parents) == parent_count) - - def test_search_parents_access_rights(self): - model = self.model.with_user(self.browse_ref("base.user_admin")) - parents = model.search_parents(self.domain) - self._evaluate_parent_result(parents, model.browse(self.ids)) - self.assertTrue(len(parents) == 1 and parents.id == self.parent.id) - access_rule = self.env["ir.rule"].create( - { - "model_id": self.browse_ref("base.model_res_partner_category").id, - "domain_force": [("id", "!=", self.parent.id)], - "name": "Restrict Access", - } - ) - records = model.search(self.domain) - parents = model.search_parents(self.domain) - self._evaluate_parent_result(parents, records) - self.assertTrue(set(parents.ids) == {self.child.id, self.child_parent.id}) - - def test_search_read_parents(self): - parents = self.model.search_parents([]) - read_names = parents.read(["name"]) - search_names = self.model.search_read_parents([], ["name"]) - self.assertTrue(read_names == search_names) diff --git a/muk_utils/tests/test_security_helper.py b/muk_utils/tests/test_security_helper.py deleted file mode 100644 index 7679df1..0000000 --- a/muk_utils/tests/test_security_helper.py +++ /dev/null @@ -1,51 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging - -from odoo.tests import common - -_logger = logging.getLogger(__name__) - - -class SecurityTestCase(common.TransactionCase): - def setUp(self): - super(SecurityTestCase, self).setUp() - self.model = self.env["res.partner"].with_user( - self.browse_ref("base.user_admin") - ) - self.record_ids = self.model.search([], limit=25).ids - - def tearDown(self): - super(SecurityTestCase, self).tearDown() - - def test_check_access(self): - self.model.browse(self.record_ids).check_access("read") - self.model.browse(self.record_ids).check_access("create") - self.model.browse(self.record_ids).check_access("write") - self.model.browse(self.record_ids).check_access("unlink") - - def test_filter_access(self): - self.model.browse(self.record_ids)._filter_access("read", in_memory=True) - self.model.browse(self.record_ids)._filter_access("read", in_memory=False) - self.model.browse(self.record_ids)._filter_access_ids("read", in_memory=True) - self.model.browse(self.record_ids)._filter_access_ids("read", in_memory=False) diff --git a/muk_utils/tools/__init__.py b/muk_utils/tools/__init__.py deleted file mode 100644 index 9e666ba..0000000 --- a/muk_utils/tools/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -from . import file, http, json, patch, security diff --git a/muk_utils/tools/file.py b/muk_utils/tools/file.py deleted file mode 100644 index 3e7f699..0000000 --- a/muk_utils/tools/file.py +++ /dev/null @@ -1,98 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import mimetypes -import os -import shutil -import tempfile - -from odoo.tools.mimetypes import guess_mimetype - - -def check_name(name): - tmp_dir = tempfile.mkdtemp() - try: - open(os.path.join(tmp_dir, name), "a").close() - except IOError: - return False - finally: - shutil.rmtree(tmp_dir) - return True - - -def compute_name(name, suffix, escape_suffix): - if escape_suffix: - name, extension = os.path.splitext(name) - return "{}({}){}".format(name, suffix, extension) - else: - return "{}({})".format(name, suffix) - - -def unique_name(name, names, escape_suffix=False): - if not name in names: - return name - else: - suffix = 1 - name = compute_name(name, suffix, escape_suffix) - while name in names: - suffix += 1 - name = compute_name(name, suffix, escape_suffix) - return name - - -def unique_files(files): - ufiles = [] - unames = [] - for file in files: - uname = unique_name(file[0], unames, escape_suffix=True) - ufiles.append((uname, file[1])) - unames.append(uname) - return ufiles - - -def guess_extension(filename=None, mimetype=None, binary=None): - extension = filename and os.path.splitext(filename)[1][1:].strip().lower() - if not extension and mimetype: - extension = mimetypes.guess_extension(mimetype)[1:].strip().lower() - if not extension and binary: - mimetype = guess_mimetype(binary, default="") - extension = mimetypes.guess_extension(mimetype)[1:].strip().lower() - return extension - - -def ensure_path_directories(path): - directory_path = os.path.dirname(path) - if not os.path.exists(directory_path): - os.makedirs(directory_path) - - -def remove_empty_directories(path): - if not os.path.isdir(path): - return - entries = os.listdir(path) - if len(entries) > 0: - for entry in entries: - subpath = os.path.join(path, entry) - if os.path.isdir(subpath): - self._remove_empty_directories(subpath) - else: - os.rmdir(path) diff --git a/muk_utils/tools/http.py b/muk_utils/tools/http.py deleted file mode 100644 index ed79252..0000000 --- a/muk_utils/tools/http.py +++ /dev/null @@ -1,47 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import base64 -import urllib - -from werkzeug.datastructures import CombinedMultiDict - - -def decode_http_basic_authentication_value(value): - try: - username, password = base64.b64decode(value).decode().split(":", 1) - return urllib.parse.unquote(username), urllib.parse.unquote(password) - except: - return None, None - - -def decode_http_basic_authentication(encoded_header): - header_values = encoded_header.strip().split(" ") - if len(header_values) == 1: - return decode_http_basic_authentication_value(header_values[0]) - if len(header_values) == 2 and header_values[0].strip().lower() == "basic": - return decode_http_basic_authentication_value(header_values[1]) - return None, None - - -def request_params(httprequest): - return CombinedMultiDict([httprequest.args, httprequest.form, httprequest.files]) diff --git a/muk_utils/tools/json.py b/muk_utils/tools/json.py deleted file mode 100644 index 17d9f5c..0000000 --- a/muk_utils/tools/json.py +++ /dev/null @@ -1,45 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import datetime -import json - -from odoo import fields, models -from odoo.tools import ustr - - -class ResponseEncoder(json.JSONEncoder): - def default(self, obj): - if isinstance(obj, datetime.date): - if isinstance(obj, datetime.datetime): - return fields.Datetime.to_string(obj) - return fields.Date.to_string(obj) - if isinstance(obj, (bytes, bytearray)): - return obj.decode() - return ustr(obj) - - -class RecordEncoder(ResponseEncoder): - def default(self, obj): - if isinstance(obj, models.BaseModel): - return obj.name_get() - return ResponseEncoder.default(self, obj) diff --git a/muk_utils/tools/patch.py b/muk_utils/tools/patch.py deleted file mode 100644 index 9f6b1ec..0000000 --- a/muk_utils/tools/patch.py +++ /dev/null @@ -1,31 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - - -def monkey_patch(cls): - def decorate(func): - name = func.__name__ - func.super = getattr(cls, name, None) - setattr(cls, name, func) - return func - - return decorate diff --git a/muk_utils/tools/security.py b/muk_utils/tools/security.py deleted file mode 100644 index 2e21dde..0000000 --- a/muk_utils/tools/security.py +++ /dev/null @@ -1,31 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - -import random -import string - -UNICODE_ASCII_CHARACTERS = string.ascii_letters + string.digits - - -def generate_token(length=30, chars=UNICODE_ASCII_CHARACTERS): - generator = random.SystemRandom() - return "".join(generator.choice(chars) for index in range(length)) diff --git a/muk_utils/tools/utils.py b/muk_utils/tools/utils.py deleted file mode 100644 index c824db1..0000000 --- a/muk_utils/tools/utils.py +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################### -# -# Copyright (c) 2017-2019 MuK IT GmbH. -# -# This file is part of MuK Utils -# (see https://mukit.at). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -################################################################################### - - -def uniquify_list(seq): - seen = set() - return [val for val in seq if val not in seen and not seen.add(val)] diff --git a/muk_utils/views/ir_attachment.xml b/muk_utils/views/ir_attachment.xml deleted file mode 100644 index 36d5a99..0000000 --- a/muk_utils/views/ir_attachment.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - ir_attachment.search - ir.attachment - - - - - - - - - - - - - - - - - - ir_attachment.tree - ir.attachment - - - - - - - - - - ir_attachment.form - ir.attachment - - - - - - - - - - - - diff --git a/muk_utils/views/mixins_groups.xml b/muk_utils/views/mixins_groups.xml deleted file mode 100644 index 3516d63..0000000 --- a/muk_utils/views/mixins_groups.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - muk_utils_mixins_groups.search - muk_utils.mixins.groups - - - - - - - - - muk_utils_mixins_groups.tree - muk_utils.mixins.groups - - - - - - - - - - muk_utils_mixins_groups.form - muk_utils.mixins.groups - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- -
diff --git a/muk_utils/views/res_config_settings.xml b/muk_utils/views/res_config_settings.xml deleted file mode 100644 index fbaa1fa..0000000 --- a/muk_utils/views/res_config_settings.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - res.config.settings.view.form - res.config.settings - - -
-

Storage

-
-
-
-
-
-
-
-
-
-
- -