-
50.gitignore
-
36.travis.yml
-
18README.md
-
165muk_attachment_lobject/LICENSE
-
128muk_attachment_lobject/README.rst
-
43muk_attachment_lobject/__init__.py
-
41muk_attachment_lobject/__manifest__.py
-
14muk_attachment_lobject/doc/changelog.rst
-
128muk_attachment_lobject/doc/index.rst
-
37muk_attachment_lobject/i18n/ar.po
-
37muk_attachment_lobject/i18n/de.po
-
37muk_attachment_lobject/i18n/es.po
-
37muk_attachment_lobject/i18n/fr.po
-
37muk_attachment_lobject/i18n/hi.po
-
37muk_attachment_lobject/i18n/muk_attachment_lobject.pot
-
37muk_attachment_lobject/i18n/nl.po
-
37muk_attachment_lobject/i18n/pt.po
-
37muk_attachment_lobject/i18n/ru.po
-
23muk_attachment_lobject/models/__init__.py
-
98muk_attachment_lobject/models/ir_attachment.py
-
BINmuk_attachment_lobject/static/description/banner.png
-
BINmuk_attachment_lobject/static/description/icon.png
-
1muk_attachment_lobject/static/description/icon.svg
-
197muk_attachment_lobject/static/description/index.html
-
BINmuk_attachment_lobject/static/description/logo.png
-
BINmuk_attachment_lobject/static/description/preview.png
-
BINmuk_attachment_lobject/static/description/service_customization.png
-
BINmuk_attachment_lobject/static/description/service_development.png
-
BINmuk_attachment_lobject/static/description/service_implementation.png
-
BINmuk_attachment_lobject/static/description/service_integration.png
-
BINmuk_attachment_lobject/static/description/service_support.png
-
23muk_attachment_lobject/tests/__init__.py
-
65muk_attachment_lobject/tests/test_attachment.py
-
61muk_attachment_lobject/tests/test_download.py
-
41muk_attachment_lobject/views/ir_attachment.xml
-
165muk_autovacuum/LICENSE
-
120muk_autovacuum/README.rst
-
23muk_autovacuum/__init__.py
-
56muk_autovacuum/__manifest__.py
-
38muk_autovacuum/data/rules.xml
-
20muk_autovacuum/doc/changelog.rst
-
120muk_autovacuum/doc/index.rst
-
402muk_autovacuum/i18n/ar.po
-
408muk_autovacuum/i18n/de.po
-
407muk_autovacuum/i18n/es.po
-
407muk_autovacuum/i18n/fr.po
-
402muk_autovacuum/i18n/hi.po
-
402muk_autovacuum/i18n/muk_autovacuum.pot
-
402muk_autovacuum/i18n/nl.po
-
402muk_autovacuum/i18n/pt.po
-
402muk_autovacuum/i18n/ru.po
-
24muk_autovacuum/models/__init__.py
-
90muk_autovacuum/models/ir_autovacuum.py
-
330muk_autovacuum/models/rules.py
-
3muk_autovacuum/security/ir.model.access.csv
-
BINmuk_autovacuum/static/description/banner.png
-
BINmuk_autovacuum/static/description/icon.png
-
38muk_autovacuum/static/description/icon.svg
-
128muk_autovacuum/static/description/index.html
-
BINmuk_autovacuum/static/description/logo.png
-
BINmuk_autovacuum/static/description/preview.png
-
BINmuk_autovacuum/static/description/screenshot.png
-
BINmuk_autovacuum/static/description/service_customization.png
-
BINmuk_autovacuum/static/description/service_development.png
-
BINmuk_autovacuum/static/description/service_implementation.png
-
BINmuk_autovacuum/static/description/service_integration.png
-
BINmuk_autovacuum/static/description/service_support.png
-
BINmuk_autovacuum/static/xls/muk_autovacuum_rules.xls
-
23muk_autovacuum/tests/__init__.py
-
99muk_autovacuum/tests/test_autovacuum.py
-
161muk_autovacuum/views/rules.xml
-
165muk_dbfilter/LICENSE
-
120muk_dbfilter/README.rst
-
29muk_dbfilter/__init__.py
-
40muk_dbfilter/__manifest__.py
-
4muk_dbfilter/doc/changelog.rst
-
120muk_dbfilter/doc/index.rst
-
15muk_dbfilter/i18n/ar.po
-
15muk_dbfilter/i18n/de.po
-
15muk_dbfilter/i18n/es.po
-
15muk_dbfilter/i18n/fr.po
-
15muk_dbfilter/i18n/hi.po
-
15muk_dbfilter/i18n/muk_dbfilter.pot
-
15muk_dbfilter/i18n/nl.po
-
15muk_dbfilter/i18n/pt.po
-
15muk_dbfilter/i18n/ru.po
-
23muk_dbfilter/patch/__init__.py
-
38muk_dbfilter/patch/http.py
-
BINmuk_dbfilter/static/description/banner.png
-
BINmuk_dbfilter/static/description/icon.png
-
1muk_dbfilter/static/description/icon.svg
-
171muk_dbfilter/static/description/index.html
-
BINmuk_dbfilter/static/description/logo.png
-
BINmuk_dbfilter/static/description/preview.png
-
BINmuk_dbfilter/static/description/service_customization.png
-
BINmuk_dbfilter/static/description/service_development.png
-
BINmuk_dbfilter/static/description/service_implementation.png
-
BINmuk_dbfilter/static/description/service_integration.png
-
BINmuk_dbfilter/static/description/service_support.png
-
165muk_fields_file/LICENSE
@ -1,5 +1,51 @@ |
|||
# 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 |
|||
*.pyc |
|||
.settings/ |
|||
.idea |
|||
|
|||
# Rope |
|||
.ropeproject |
|||
|
|||
# Sphinx documentation |
|||
docs/_build/ |
|||
|
|||
# Backup files |
|||
*~ |
|||
*.swp |
@ -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 |
@ -1,165 +0,0 @@ |
|||
GNU LESSER GENERAL PUBLIC LICENSE |
|||
Version 3, 29 June 2007 |
|||
|
|||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> |
|||
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. |
@ -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 <https://pypi.org/project/pip/>`_). |
|||
|
|||
To install our modules using the package manager make sure |
|||
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed |
|||
correctly. 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 <module>`` |
|||
|
|||
The module name consists of the Odoo version and the module name, where |
|||
underscores are replaced by a dash. |
|||
|
|||
**Module:** |
|||
|
|||
``odoo<version>-addon-<module_name>`` |
|||
|
|||
**Example:** |
|||
|
|||
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple 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 <module>`` |
|||
|
|||
When the process is finished, restart your server and update the application in |
|||
Odoo. The steps are the same as for the installation only the button has changed |
|||
from "Install" to "Upgrade". |
|||
|
|||
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_ |
|||
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_. |
|||
|
|||
For modules licensed under 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 <support@mukit.at>`_ |
|||
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 <module>`` |
|||
|
|||
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 <mathias.markl@mukit.at> |
|||
|
|||
Images |
|||
------ |
|||
|
|||
Some pictures are based on or inspired by the icon set of Font Awesome: |
|||
|
|||
* `Font Awesome <https://fontawesome.com>`_ |
|||
|
|||
Author & Maintainer |
|||
------------------- |
|||
|
|||
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_. |
|||
|
|||
MuK IT is an Austrian company specialized in customizing and extending Odoo. |
|||
We develop custom solutions for your individual needs to help you focus on |
|||
your strength and expertise to grow your business. |
|||
|
|||
If you want to get in touch please contact us via `mail <sale@mukit.at>`_ |
|||
or visit our `website <https://mukit.at>`_. |
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
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() |
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
{ |
|||
"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 <mathias.markl@mukit.at>"], |
|||
"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", |
|||
} |
@ -1,14 +0,0 @@ |
|||
`2.1.0` |
|||
------- |
|||
|
|||
- Added Auto Migration |
|||
|
|||
`2.0.0` |
|||
------- |
|||
|
|||
- Migrated to Python 3 |
|||
|
|||
`1.0.0` |
|||
------- |
|||
|
|||
- Init version |
@ -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 <https://pypi.org/project/pip/>`_). |
|||
|
|||
To install our modules using the package manager make sure |
|||
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed |
|||
correctly. 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 <module>`` |
|||
|
|||
The module name consists of the Odoo version and the module name, where |
|||
underscores are replaced by a dash. |
|||
|
|||
**Module:** |
|||
|
|||
``odoo<version>-addon-<module_name>`` |
|||
|
|||
**Example:** |
|||
|
|||
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple 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 <module>`` |
|||
|
|||
When the process is finished, restart your server and update the application in |
|||
Odoo. The steps are the same as for the installation only the button has changed |
|||
from "Install" to "Upgrade". |
|||
|
|||
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_ |
|||
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_. |
|||
|
|||
For modules licensed under 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 <support@mukit.at>`_ |
|||
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 <module>`` |
|||
|
|||
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 <mathias.markl@mukit.at> |
|||
|
|||
Images |
|||
------ |
|||
|
|||
Some pictures are based on or inspired by the icon set of Font Awesome: |
|||
|
|||
* `Font Awesome <https://fontawesome.com>`_ |
|||
|
|||
Author & Maintainer |
|||
------------------- |
|||
|
|||
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_. |
|||
|
|||
MuK IT is an Austrian company specialized in customizing and extending Odoo. |
|||
We develop custom solutions for your individual needs to help you focus on |
|||
your strength and expertise to grow your business. |
|||
|
|||
If you want to get in touch please contact us via `mail <sale@mukit.at>`_ |
|||
or visit our `website <https://mukit.at>`_. |
@ -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 "" |
@ -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" |
@ -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 "" |
@ -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 "" |
@ -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 "" |
@ -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 "" |
@ -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 "" |
@ -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 "" |
@ -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 "" |
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
from . import ir_attachment |
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
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 |
|||
) |
Before Width: 880 | Height: 440 | Size: 46 KiB |
Before Width: 250 | Height: 250 | Size: 10 KiB |
1
muk_attachment_lobject/static/description/icon.svg
File diff suppressed because it is too large
View File
@ -1,197 +0,0 @@ |
|||
<section class="oe_container"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h2 class="oe_slogan">MuK Large Objects Attachment</h2> |
|||
<h3 class="oe_slogan">Large Objects Attachment Location</h3> |
|||
<h4 class="oe_slogan" style="font-size: 23px;"> |
|||
MuK IT GmbH - www.mukit.at |
|||
</h4> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container"> |
|||
<div class="oe_row oe_spaced"> |
|||
<div class="text-justify" style="max-width: 84%; margin: 16px 8%;"> |
|||
<h3 class="oe_slogan">Overview</h3> |
|||
<div class="oe_mt32" style="padding-bottom: 10px; text-align: justify;"> |
|||
<p> |
|||
Provides a new attachment location to save attachment as large |
|||
objects. To enable the large object storage option change the |
|||
<code>ir_attachment.location</code> |
|||
parameter to |
|||
<code>lobject</code> |
|||
. |
|||
</p> |
|||
<h5 style="padding-top: 10px;"> |
|||
Advantages over the in-database storage |
|||
</h5> |
|||
<ul> |
|||
<li> |
|||
Better RAM efficiency (This is more important for large files than |
|||
for small ones.) |
|||
</li> |
|||
<li> |
|||
Possibility to easily dump the base without the large objects (This |
|||
can be useful for reproducing bugs.) |
|||
</li> |
|||
</ul> |
|||
<h5 style="padding-top: 10px;"> |
|||
Advantages over the file system storage |
|||
</h5> |
|||
<ul> |
|||
<li>Large objects are transactional (fully ACID)</li> |
|||
<li> |
|||
They work out of the box in multi-system setups (So there is no need |
|||
for NFS or similar file sharing tools.) |
|||
</li> |
|||
<li>Enables you to easily create backups of the entire system</li> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h3 class="oe_slogan">Our Services</h3> |
|||
<div |
|||
style="display: flex; padding-top: 20px; justify-content: space-between;" |
|||
> |
|||
<div style="flex-basis: 18%;"> |
|||
<a href="https://mukit.at/r/MQ5" target="_blank"> |
|||
<div |
|||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;" |
|||
> |
|||
<img |
|||
src="service_implementation.png" |
|||
style="width: 100%; border-radius: 100%;" |
|||
/> |
|||
</div> |
|||
<h3 |
|||
class="oe_slogan" |
|||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;" |
|||
> |
|||
Odoo <br />Implementation |
|||
</h3> |
|||
</a> |
|||
</div> |
|||
<div style="flex-basis: 18%;"> |
|||
<a href="https://mukit.at/r/u7c" target="_blank"> |
|||
<div |
|||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;" |
|||
> |
|||
<img |
|||
src="service_integration.png" |
|||
style="width: 100%; border-radius: 100%;" |
|||
/> |
|||
</div> |
|||
<h3 |
|||
class="oe_slogan" |
|||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;" |
|||
> |
|||
Odoo <br />Integration |
|||
</h3> |
|||
</a> |
|||
</div> |
|||
<div style="flex-basis: 18%;"> |
|||
<a href="https://mukit.at/r/xDJ" target="_blank"> |
|||
<div |
|||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;" |
|||
> |
|||
<img |
|||
src="service_customization.png" |
|||
style="width: 100%; border-radius: 100%;" |
|||
/> |
|||
</div> |
|||
<h3 |
|||
class="oe_slogan" |
|||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;" |
|||
> |
|||
Odoo <br />Customization |
|||
</h3> |
|||
</a> |
|||
</div> |
|||
<div style="flex-basis: 18%;"> |
|||
<a href=" https://mukit.at/r/J3A" target="_blank"> |
|||
<div |
|||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;" |
|||
> |
|||
<img |
|||
src="service_development.png" |
|||
style="width: 100%; border-radius: 100%;" |
|||
/> |
|||
</div> |
|||
<h3 |
|||
class="oe_slogan" |
|||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;" |
|||
> |
|||
Odoo <br />Development |
|||
</h3> |
|||
</a> |
|||
</div> |
|||
<div style="flex-basis: 18%;"> |
|||
<a href=" https://mukit.at/r/R1v" target="_blank"> |
|||
<div |
|||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;" |
|||
> |
|||
<img |
|||
src="service_support.png" |
|||
style="width: 100%; border-radius: 100%;" |
|||
/> |
|||
</div> |
|||
<h3 |
|||
class="oe_slogan" |
|||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;" |
|||
> |
|||
Odoo <br />Support |
|||
</h3> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container" style="padding: 32px 0;"> |
|||
<div class="oe_row oe_spaced" style="margin: auto;"> |
|||
<div class="oe_demo oe_picture oe_screenshot"> |
|||
<a href="https://mukit.at/r/SgN" target="_blank"> |
|||
<img src="preview.png" /> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<h3 class="oe_slogan">Help and Support</h3> |
|||
<h5 class="oe_slogan" style="font-size: 20px;"> |
|||
Feel free to contact us, if you need any help with your Odoo integration or |
|||
addiontal features. |
|||
</h5> |
|||
<div class="oe_slogan"> |
|||
<a |
|||
class="btn btn-primary btn-lg mt8" |
|||
href="https://mukit.at" |
|||
target="_blank" |
|||
> |
|||
<i class="fa fa-globe"></i> Website |
|||
</a> |
|||
<a |
|||
class="btn btn-primary btn-lg mt8" |
|||
href="https://mukit.at/page/contactus" |
|||
target="_blank" |
|||
> |
|||
<i class="fa fa-envelope"></i> Contact Us |
|||
</a> |
|||
<a |
|||
class="btn btn-primary btn-lg mt8" |
|||
href="https://github.com/muk-it" |
|||
target="_blank" |
|||
> |
|||
<i class="fa fa-github"></i> Issues |
|||
</a> |
|||
</div> |
|||
<img |
|||
src="logo.png" |
|||
style="width: 200px; margin-bottom: 20px; display: block;" |
|||
class="mx-auto center-block" |
|||
/> |
|||
</section> |
Before Width: 500 | Height: 500 | Size: 37 KiB |
Before Width: 1000 | Height: 200 | Size: 32 KiB |
Before Width: 250 | Height: 250 | Size: 27 KiB |
Before Width: 250 | Height: 250 | Size: 28 KiB |
Before Width: 250 | Height: 250 | Size: 26 KiB |
Before Width: 250 | Height: 250 | Size: 24 KiB |
Before Width: 250 | Height: 250 | Size: 24 KiB |
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
from . import test_attachment, test_download |
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
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() |
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
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)) |
@ -1,41 +0,0 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
|
|||
<!-- |
|||
|
|||
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 <http://www.gnu.org/licenses/>. |
|||
|
|||
--> |
|||
|
|||
<odoo> |
|||
|
|||
|
|||
<record id="view_attachment_form" model="ir.ui.view"> |
|||
<field name="name">ir_attachment.form</field> |
|||
<field name="model">ir.attachment</field> |
|||
<field name="inherit_id" ref="base.view_attachment_form"/> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//group[@name='storage']" position="inside"> |
|||
<group string="Storage" name="storage" groups="base.group_no_one"> |
|||
<field name="store_lobject" readonly="1" attrs="{'invisible':[('store_lobject','=',False)]}"/> |
|||
</group> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
</odoo> |
@ -1,165 +0,0 @@ |
|||
GNU LESSER GENERAL PUBLIC LICENSE |
|||
Version 3, 29 June 2007 |
|||
|
|||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> |
|||
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. |
@ -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 <https://pypi.org/project/pip/>`_). |
|||
|
|||
To install our modules using the package manager make sure |
|||
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed |
|||
correctly. Then open a console and install the module by entering the following |
|||
command: |
|||
|
|||
``pip install --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
|||
|
|||
The module name consists of the Odoo version and the module name, where |
|||
underscores are replaced by a dash. |
|||
|
|||
**Module:** |
|||
|
|||
``odoo<version>-addon-<module_name>`` |
|||
|
|||
**Example:** |
|||
|
|||
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo11-addon-muk-utils`` |
|||
|
|||
Once the installation has been successfully completed, the app is already in the |
|||
correct folder. Log on to your Odoo server and go to the Apps menu. Trigger the |
|||
debug mode and update the list by clicking on the "Update Apps List" link. Now |
|||
install the module by clicking on the install button. |
|||
|
|||
The biggest advantage of this variant is that you can now also update the app |
|||
using the "pip" command. To do this, enter the following command in your console: |
|||
|
|||
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
|||
|
|||
When the process is finished, restart your server and update the application in |
|||
Odoo. The steps are the same as for the installation only the button has changed |
|||
from "Install" to "Upgrade". |
|||
|
|||
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_ |
|||
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_. |
|||
|
|||
For modules licensed under OPL-1, you will receive access data when you purchase |
|||
the module. If the modules were not purchased directly from |
|||
`MuK IT <https://www.mukit.at/>`_ please contact our support (support@mukit.at) |
|||
with a confirmation of purchase to receive the corresponding access data. |
|||
|
|||
Upgrade |
|||
============ |
|||
|
|||
To upgrade this module, you need to: |
|||
|
|||
Download the module and add it to your Odoo addons folder. Restart the server |
|||
and log on to your Odoo server. Select the Apps menu and upgrade the module by |
|||
clicking on the upgrade button. |
|||
|
|||
If you installed the module using the "pip" command, you can also update the |
|||
module in the same way. Just type the following command into the console: |
|||
|
|||
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
|||
|
|||
When the process is finished, restart your server and update the application in |
|||
Odoo, just like you would normally. |
|||
|
|||
Configuration |
|||
============= |
|||
|
|||
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 <mathias.markl@mukit.at> |
|||
|
|||
Images |
|||
------------ |
|||
|
|||
Some pictures are based on or inspired by the icon set of Font Awesome: |
|||
|
|||
* `Font Awesome <https://fontawesome.com>`_ |
|||
|
|||
Author & Maintainer |
|||
------------------- |
|||
|
|||
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_. |
|||
|
|||
MuK IT is an Austrian company specialized in customizing and extending Odoo. |
|||
We develop custom solutions for your individual needs to help you focus on |
|||
your strength and expertise to grow your business. |
|||
|
|||
If you want to get in touch please contact us via mail |
|||
(sale@mukit.at) or visit our website (https://mukit.at). |
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
from . import models |
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
{ |
|||
'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 <mathias.markl@mukit.at>', |
|||
], |
|||
'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, |
|||
} |
@ -1,38 +0,0 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
|
|||
<!-- |
|||
|
|||
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 <http://www.gnu.org/licenses/>. |
|||
|
|||
--> |
|||
|
|||
<odoo noupdate="1"> |
|||
|
|||
<record id="data_autovacuum_logs" model="muk_autovacuum.rules"> |
|||
<field name="name">Delete Logs after 2 Weeks</field> |
|||
<field name="model" ref="base.model_ir_logging"/> |
|||
<field name="time_field" ref="base.field_ir_logging__create_date"/> |
|||
<field name="active" eval="False" /> |
|||
<field name="state">time</field> |
|||
<field name="time_type">weeks</field> |
|||
<field name="time">2</field> |
|||
<field name="protect_starred" eval="False" /> |
|||
</record> |
|||
|
|||
</odoo> |
@ -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 |
@ -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 <https://pypi.org/project/pip/>`_). |
|||
|
|||
To install our modules using the package manager make sure |
|||
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed |
|||
correctly. Then open a console and install the module by entering the following |
|||
command: |
|||
|
|||
``pip install --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
|||
|
|||
The module name consists of the Odoo version and the module name, where |
|||
underscores are replaced by a dash. |
|||
|
|||
**Module:** |
|||
|
|||
``odoo<version>-addon-<module_name>`` |
|||
|
|||
**Example:** |
|||
|
|||
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo11-addon-muk-utils`` |
|||
|
|||
Once the installation has been successfully completed, the app is already in the |
|||
correct folder. Log on to your Odoo server and go to the Apps menu. Trigger the |
|||
debug mode and update the list by clicking on the "Update Apps List" link. Now |
|||
install the module by clicking on the install button. |
|||
|
|||
The biggest advantage of this variant is that you can now also update the app |
|||
using the "pip" command. To do this, enter the following command in your console: |
|||
|
|||
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
|||
|
|||
When the process is finished, restart your server and update the application in |
|||
Odoo. The steps are the same as for the installation only the button has changed |
|||
from "Install" to "Upgrade". |
|||
|
|||
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_ |
|||
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_. |
|||
|
|||
For modules licensed under OPL-1, you will receive access data when you purchase |
|||
the module. If the modules were not purchased directly from |
|||
`MuK IT <https://www.mukit.at/>`_ please contact our support (support@mukit.at) |
|||
with a confirmation of purchase to receive the corresponding access data. |
|||
|
|||
Upgrade |
|||
============ |
|||
|
|||
To upgrade this module, you need to: |
|||
|
|||
Download the module and add it to your Odoo addons folder. Restart the server |
|||
and log on to your Odoo server. Select the Apps menu and upgrade the module by |
|||
clicking on the upgrade button. |
|||
|
|||
If you installed the module using the "pip" command, you can also update the |
|||
module in the same way. Just type the following command into the console: |
|||
|
|||
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
|||
|
|||
When the process is finished, restart your server and update the application in |
|||
Odoo, just like you would normally. |
|||
|
|||
Configuration |
|||
============= |
|||
|
|||
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 <mathias.markl@mukit.at> |
|||
|
|||
Images |
|||
------------ |
|||
|
|||
Some pictures are based on or inspired by the icon set of Font Awesome: |
|||
|
|||
* `Font Awesome <https://fontawesome.com>`_ |
|||
|
|||
Author & Maintainer |
|||
------------------- |
|||
|
|||
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_. |
|||
|
|||
MuK IT is an Austrian company specialized in customizing and extending Odoo. |
|||
We develop custom solutions for your individual needs to help you focus on |
|||
your strength and expertise to grow your business. |
|||
|
|||
If you want to get in touch please contact us via mail |
|||
(sale@mukit.at) or visit our website (https://mukit.at). |
@ -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 "<code>Warning</code>: Warning Exception to use with <code>raise</code>" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>b64encode</code>, <code>b64decode</code>: Base64 converter" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>date_format</code>, <code>datetime_format</code>: server date and time formats" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>env</code>: 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 "<code>logger.info(message)</code>: Python logging framework" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>model</code>: 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 "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>uid</code>, <code>user</code>: 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 "" |
|||
|
@ -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 "<code>Warning</code>: Warning Exception to use with <code>raise</code>" |
|||
msgstr "<code>Warnung:</code> Warnausnahme, die bei <code>einer Erhöhung</code> Anwendung findet" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>b64encode</code>, <code>b64decode</code>: Base64 converter" |
|||
msgstr "<code>b64encode</code>, <code>b64decode</code>: Base64 Converter" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>date_format</code>, <code>datetime_format</code>: server date and time formats" |
|||
msgstr "<code>date_format</code>, <code>datetime_format</code>: Serverdatum und Zeitformate" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>env</code>: Odoo Environment on which the rule is triggered" |
|||
msgstr "<code>env</code>: 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 "<code>logger.info(message)</code>: Python logging framework" |
|||
msgstr "<code>logger.info(message)</code>: Python-Protokollierungs-Framework" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>model</code>: Odoo Model of the record on which the rule is triggered" |
|||
msgstr "<code>model</code>: 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 "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries" |
|||
msgstr "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone:</code> nützliche Python-Bibliotheken" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>uid</code>, <code>user</code>: User on which the rule is triggered" |
|||
msgstr "<code>uid</code>, <code>Benutzer</code>: 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" |
|||
|
@ -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 "<code>Warning</code>: Warning Exception to use with <code>raise</code>" |
|||
msgstr "<code>Advertencia</code>: Excepción de Advertencia para usar con <code>aumento</code>" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>b64encode</code>, <code>b64decode</code>: Base64 converter" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>date_format</code>, <code>datetime_format</code>: server date and time formats" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>env</code>: 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 "<code>logger.info(message)</code>: Python logging framework" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>model</code>: 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 "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>uid</code>, <code>user</code>: 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 "" |
|||
|
@ -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 "<code>Warning</code>: Warning Exception to use with <code>raise</code>" |
|||
msgstr "<code/><code/>" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>b64encode</code>, <code>b64decode</code>: Base64 converter" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>date_format</code>, <code>datetime_format</code>: server date and time formats" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>env</code>: 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 "<code>logger.info(message)</code>: Python logging framework" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>model</code>: 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 "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries" |
|||
msgstr "<code/><code/><code/><code/>" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>uid</code>, <code>user</code>: 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 "" |
|||
|
@ -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 "<code>Warning</code>: Warning Exception to use with <code>raise</code>" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>b64encode</code>, <code>b64decode</code>: Base64 converter" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>date_format</code>, <code>datetime_format</code>: server date and time formats" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>env</code>: 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 "<code>logger.info(message)</code>: Python logging framework" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>model</code>: 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 "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>uid</code>, <code>user</code>: 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 "" |
|||
|
@ -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 "<code>Warning</code>: Warning Exception to use with <code>raise</code>" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>b64encode</code>, <code>b64decode</code>: Base64 converter" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>date_format</code>, <code>datetime_format</code>: server date and time formats" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>env</code>: 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 "<code>logger.info(message)</code>: Python logging framework" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>model</code>: 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 "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>uid</code>, <code>user</code>: 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 "" |
|||
|
@ -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 "<code>Warning</code>: Warning Exception to use with <code>raise</code>" |
|||
msgstr "<code>Waarschuwing</code>: Waarschuwingsfout te gebruiken met <code>roep op</code>" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>b64encode</code>, <code>b64decode</code>: Base64 converter" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>date_format</code>, <code>datetime_format</code>: server date and time formats" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>env</code>: 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 "<code>logger.info(message)</code>: Python logging framework" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>model</code>: 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 "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries" |
|||
msgstr "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: handige Python libraries" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>uid</code>, <code>user</code>: 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 "" |
|||
|
@ -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 "<code>Warning</code>: Warning Exception to use with <code>raise</code>" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>b64encode</code>, <code>b64decode</code>: Base64 converter" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>date_format</code>, <code>datetime_format</code>: server date and time formats" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>env</code>: 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 "<code>logger.info(message)</code>: Python logging framework" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>model</code>: 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 "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>uid</code>, <code>user</code>: 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 "" |
|||
|
@ -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 "<code>Warning</code>: Warning Exception to use with <code>raise</code>" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>b64encode</code>, <code>b64decode</code>: Base64 converter" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>date_format</code>, <code>datetime_format</code>: server date and time formats" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>env</code>: 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 "<code>logger.info(message)</code>: Python logging framework" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>model</code>: 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 "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries" |
|||
msgstr "" |
|||
|
|||
#. module: muk_autovacuum |
|||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form |
|||
msgid "<code>uid</code>, <code>user</code>: 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 "" |
|||
|
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
from . import rules |
|||
from . import ir_autovacuum |
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
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 |
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
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!")) |
@ -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 |
Before Width: 880 | Height: 440 | Size: 42 KiB |
Before Width: 250 | Height: 250 | Size: 9.1 KiB |
@ -1,38 +0,0 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!-- Generator: Gravit.io --> |
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="0 0 250 250" width="250" height="250"> |
|||
<defs> |
|||
<filter id="6h5zhs6EsmCdYqoDWpQdye92PuVIAFlM" x="-200%" y="-200%" width="400%" height="400%" filterUnits="objectBoundingBox" color-interpolation-filters="sRGB"> |
|||
<feOffset in="SourceGraphic" dx="0" dy="3" /> |
|||
<feGaussianBlur stdDeviation="2.146804531419514" result="pf_100_offsetBlur" /> |
|||
<feComposite in="SourceGraphic" in2="pf_100_offsetBlur" result="pf_100_inverse" operator="out" /> |
|||
<feFlood flood-color="#FFFFFF" flood-opacity="0.5" result="pf_100_color" /> |
|||
<feComposite in="pf_100_color" in2="pf_100_inverse" operator="in" result="pf_100_shadow" /> |
|||
<feComposite in="pf_100_shadow" in2="SourceGraphic" operator="over" result="_out_uR74cLfpCM9hl8SPG68bUNeAvlHMO7D6" /> |
|||
<feOffset in="_out_uR74cLfpCM9hl8SPG68bUNeAvlHMO7D6" dx="0" dy="-3" /> |
|||
<feGaussianBlur stdDeviation="2.146804531419514" result="pf_101_offsetBlur" /> |
|||
<feComposite in="_out_uR74cLfpCM9hl8SPG68bUNeAvlHMO7D6" in2="pf_101_offsetBlur" result="pf_101_inverse" operator="out" /> |
|||
<feFlood flood-color="#000000" flood-opacity="0.5" result="pf_101_color" /> |
|||
<feComposite in="pf_101_color" in2="pf_101_inverse" operator="in" result="pf_101_shadow" /> |
|||
<feComposite in="pf_101_shadow" in2="_out_uR74cLfpCM9hl8SPG68bUNeAvlHMO7D6" operator="over" result="_out_Oq5ydn0Hq6rxbDiq5dZm4MzQyVH9DQcs" /> |
|||
<feMerge> |
|||
<feMergeNode in="_out_Oq5ydn0Hq6rxbDiq5dZm4MzQyVH9DQcs" /> |
|||
</feMerge> |
|||
</filter> |
|||
</defs> |
|||
<g filter="url(#6h5zhs6EsmCdYqoDWpQdye92PuVIAFlM)"> |
|||
<path d="M 15 0 L 235 0 C 243.279 0 250 6.721 250 15 L 250 235 C 250 243.279 243.279 250 235 250 L 15 250 C 6.721 250 0 243.279 0 235 L 0 15 C 0 6.721 6.721 0 15 0 Z" style="stroke:none;fill:#243742;stroke-miterlimit:10;" /> |
|||
</g> |
|||
<defs> |
|||
<filter id="3ix5SvWnYst0fHrBWMeRNC0a7ShQ7jfe" x="-200%" y="-200%" width="400%" height="400%" filterUnits="objectBoundingBox" color-interpolation-filters="sRGB"> |
|||
<feGaussianBlur in="SourceGraphic" stdDeviation="2.146804531419514" /> |
|||
<feOffset dx="-5" dy="5" result="pf_100_offsetBlur" /> |
|||
<feFlood flood-color="#000000" flood-opacity="0.5" /> |
|||
<feComposite in2="pf_100_offsetBlur" operator="in" result="pf_100_dropShadow" /> |
|||
<feBlend in="SourceGraphic" in2="pf_100_dropShadow" mode="normal" /> |
|||
</filter> |
|||
</defs> |
|||
<g filter="url(#3ix5SvWnYst0fHrBWMeRNC0a7ShQ7jfe)"> |
|||
<path d=" M 114.779 103.281 L 114.779 172.271 C 114.779 174.388 113.063 176.104 110.946 176.104 L 103.281 176.104 C 101.164 176.104 99.448 174.388 99.448 172.271 L 99.448 103.281 C 99.448 101.164 101.164 99.448 103.281 99.448 L 110.946 99.448 C 113.063 99.448 114.779 101.164 114.779 103.281 Z M 146.719 99.448 L 139.054 99.448 C 136.937 99.448 135.221 101.164 135.221 103.281 L 135.221 172.271 C 135.221 174.388 136.937 176.104 139.054 176.104 L 146.719 176.104 C 148.836 176.104 150.552 174.388 150.552 172.271 L 150.552 103.281 C 150.552 101.164 148.836 99.448 146.719 99.448 Z M 188.88 68.786 C 193.113 68.786 196.545 72.218 196.545 76.452 L 196.545 80.284 C 196.545 82.401 194.829 84.117 192.712 84.117 L 186.324 84.117 L 186.324 191.435 C 186.324 199.902 179.461 206.766 170.993 206.766 L 79.007 206.766 C 70.539 206.766 63.676 199.902 63.676 191.435 L 63.676 84.117 L 57.288 84.117 C 55.171 84.117 53.455 82.401 53.455 80.284 L 53.455 76.452 C 53.455 72.218 56.887 68.786 61.12 68.786 L 84.887 68.786 L 95.752 50.677 C 98.523 46.06 103.514 43.234 108.899 43.234 L 141.101 43.234 C 146.487 43.234 151.477 46.06 154.248 50.677 L 165.113 68.786 L 188.88 68.786 Z M 102.766 68.786 L 147.234 68.786 L 141.66 59.496 C 141.313 58.918 140.69 58.565 140.016 58.565 L 109.984 58.565 C 109.311 58.565 108.687 58.918 108.341 59.496 L 102.766 68.786 Z M 170.993 84.117 L 79.007 84.117 L 79.007 189.518 C 79.007 190.577 79.865 191.435 80.923 191.435 L 169.077 191.435 C 170.135 191.435 170.993 190.577 170.993 189.518 L 170.993 84.117 Z " id="trash-alt-regular" fill="rgb(255,255,255)" /> |
|||
</g> |
|||
</svg> |
@ -1,128 +0,0 @@ |
|||
<section class="oe_container"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h2 class="oe_slogan">MuK Auto Vacuum</h2> |
|||
<h3 class="oe_slogan">Configure automatic garbage collection</h3> |
|||
<h4 class="oe_slogan" style="font-size: 23px;">MuK IT GmbH - |
|||
www.mukit.at</h4> |
|||
<div class="oe_demo oe_screenshot" |
|||
style="max-width: 84%; margin: 16px 8%;"> |
|||
<img src="screenshot.png"> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container"> |
|||
<div class="oe_row oe_spaced"> |
|||
<div class="text-justify" style="max-width: 84%; margin: 16px 8%;"> |
|||
<h3 class="oe_slogan">Overview</h3> |
|||
<p class="oe_mt32">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.</p> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h3 class="oe_slogan">Our Services</h3> |
|||
<div |
|||
style="display: flex; padding-top: 20px; justify-content: space-between;"> |
|||
<div style="flex-basis: 18%;"> |
|||
<a href="https://mukit.at/r/MQ5" target="_blank"> |
|||
<div |
|||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;"> |
|||
<img src="service_implementation.png" |
|||
style="width: 100%; border-radius: 100%;"> |
|||
</div> |
|||
<h3 class="oe_slogan" |
|||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;"> |
|||
Odoo <br>Implementation |
|||
</h3> |
|||
</a> |
|||
</div> |
|||
<div style="flex-basis: 18%;"> |
|||
<a href="https://mukit.at/r/u7c" target="_blank"> |
|||
<div |
|||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;"> |
|||
<img src="service_integration.png" |
|||
style="width: 100%; border-radius: 100%;"> |
|||
</div> |
|||
<h3 class="oe_slogan" |
|||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;"> |
|||
Odoo <br>Integration |
|||
</h3> |
|||
</a> |
|||
</div> |
|||
<div style="flex-basis: 18%;"> |
|||
<a href="https://mukit.at/r/xDJ" target="_blank"> |
|||
<div |
|||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;"> |
|||
<img src="service_customization.png" |
|||
style="width: 100%; border-radius: 100%;"> |
|||
</div> |
|||
<h3 class="oe_slogan" |
|||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;"> |
|||
Odoo <br>Customization |
|||
</h3> |
|||
</a> |
|||
</div> |
|||
<div style="flex-basis: 18%;"> |
|||
<a href=" https://mukit.at/r/J3A" target="_blank"> |
|||
<div |
|||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;"> |
|||
<img src="service_development.png" |
|||
style="width: 100%; border-radius: 100%;"> |
|||
</div> |
|||
<h3 class="oe_slogan" |
|||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;"> |
|||
Odoo <br>Development |
|||
</h3> |
|||
</a> |
|||
</div> |
|||
<div style="flex-basis: 18%;"> |
|||
<a href=" https://mukit.at/r/R1v" target="_blank"> |
|||
<div |
|||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;"> |
|||
<img src="service_support.png" |
|||
style="width: 100%; border-radius: 100%;"> |
|||
</div> |
|||
<h3 class="oe_slogan" |
|||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;"> |
|||
Odoo <br>Support |
|||
</h3> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container" style="padding: 32px 0;"> |
|||
<div class="oe_row oe_spaced" style="margin: auto;"> |
|||
<div class="oe_demo oe_picture oe_screenshot"> |
|||
<a href="https://mukit.at/r/SgN" target="_blank"> <img src="preview.png"> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<h3 class="oe_slogan">Help and Support</h3> |
|||
<h5 class="oe_slogan" style="font-size: 20px;">Feel free to |
|||
contact us, if you need any help with your Odoo integration or |
|||
addiontal features.</h5> |
|||
<div class="oe_slogan"> |
|||
<a class="btn btn-primary btn-lg mt8" href="https://mukit.at" target="_blank"> |
|||
<i class="fa fa-globe"></i> Website |
|||
</a> |
|||
<a class="btn btn-primary btn-lg mt8" href="mailto:sale@mukit.at"> |
|||
<i class="fa fa-envelope"></i> Contact Us |
|||
</a> |
|||
<a class="btn btn-primary btn-lg mt8" href="https://github.com/muk-it" target="_blank"> |
|||
<i class="fa fa-github"></i> Issues |
|||
</a> |
|||
</div> |
|||
<img src="logo.png" |
|||
style="width: 200px; margin-bottom: 20px; display: block;" |
|||
class="mx-auto center-block"> |
|||
</section> |
Before Width: 500 | Height: 500 | Size: 37 KiB |
Before Width: 1000 | Height: 200 | Size: 32 KiB |
Before Width: 1601 | Height: 900 | Size: 44 KiB |
Before Width: 250 | Height: 250 | Size: 27 KiB |
Before Width: 250 | Height: 250 | Size: 28 KiB |
Before Width: 250 | Height: 250 | Size: 26 KiB |
Before Width: 250 | Height: 250 | Size: 24 KiB |
Before Width: 250 | Height: 250 | Size: 24 KiB |
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
from . import test_autovacuum |
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
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) |
|||
|
@ -1,161 +0,0 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
|
|||
<!-- |
|||
|
|||
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 <http://www.gnu.org/licenses/>. |
|||
|
|||
--> |
|||
|
|||
<odoo> |
|||
|
|||
<record id="view_autovacuum_rule_search" model="ir.ui.view"> |
|||
<field name="name">muk_autovacuum_rules.search</field> |
|||
<field name="model">muk_autovacuum.rules</field> |
|||
<field name="arch" type="xml"> |
|||
<search string="Auto Vacuum Rules"> |
|||
<field name="name" filter_domain="[('name', 'ilike', self)]" /> |
|||
<field name="model" /> |
|||
<field name="state" /> |
|||
<field name="active" /> |
|||
<filter string="All" name="all" domain="['|', ('active', '=', False), ('active', '=', True)]" /> |
|||
<group expand="0" name="group_by" string="Group By"> |
|||
<filter name="group_by_model" string="Model" domain="[]" context="{'group_by': 'model'}"/> |
|||
</group> |
|||
</search> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="view_autovacuum_rule_tree" model="ir.ui.view"> |
|||
<field name="name">muk_autovacuum_rules.tree</field> |
|||
<field name="model">muk_autovacuum.rules</field> |
|||
<field name="arch" type="xml"> |
|||
<tree string="Auto Vacuum Rules" decoration-muted="(not active)"> |
|||
<field name="sequence" widget="handle"/> |
|||
<field name="name"/> |
|||
<field name="model"/> |
|||
<field name="state"/> |
|||
<field name="active"/> |
|||
</tree> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="view_autovacuum_rule_form" model="ir.ui.view"> |
|||
<field name="name">muk_autovacuum_rules.form</field> |
|||
<field name="model">muk_autovacuum.rules</field> |
|||
<field name="arch" type="xml"> |
|||
<form string="Auto Vacuum Rules"> |
|||
<sheet> |
|||
<div class="oe_button_box" name="button_box"> |
|||
<button name="toggle_active" type="object" class="oe_stat_button" icon="fa-bell"> |
|||
<field name="active" widget="boolean_button"/> |
|||
</button> |
|||
</div> |
|||
<div class="oe_title"> |
|||
<label for="name" class="oe_edit_only"/> |
|||
<h1> |
|||
<field name="name" placeholder="e.g. Delete Logs after 30 Days"/> |
|||
</h1> |
|||
</div> |
|||
<group> |
|||
<group> |
|||
<field name="sequence"/> |
|||
<field name="model"/> |
|||
<field name="model_name" invisible="1"/> |
|||
<field name="state"/> |
|||
</group> |
|||
<group> |
|||
<field name="protect_starred"/> |
|||
<field name="only_inactive"/> |
|||
<field name="only_attachments"/> |
|||
</group> |
|||
</group> |
|||
<notebook> |
|||
<page string="Time Settings" name='time' autofocus="autofocus" |
|||
attrs="{'invisible': [('state', '!=', 'time')]}"> |
|||
<group> |
|||
<group> |
|||
<field name="time_field"/> |
|||
</group> |
|||
<group> |
|||
<field name="time_type"/> |
|||
<field name="time"/> |
|||
</group> |
|||
</group> |
|||
</page> |
|||
<page string="Size Settings" name='size' autofocus="autofocus" |
|||
attrs="{'invisible': [('state', '!=', 'size')]}"> |
|||
<group> |
|||
<group> |
|||
<field name="size_type"/> |
|||
</group> |
|||
<group> |
|||
<field name="size_parameter" |
|||
attrs="{'invisible': [('size_type', '!=', 'parameter')]}"/> |
|||
<field name="size_parameter_value" |
|||
attrs="{'invisible': [('size_type', '!=', 'parameter')]}"/> |
|||
<field name="size" |
|||
attrs="{'invisible': [('size_type', '!=', 'fixed')]}"/> |
|||
<field name="size_order"/> |
|||
</group> |
|||
</group> |
|||
</page> |
|||
<page string="Domain Settings" name='domain' autofocus="autofocus" |
|||
attrs="{'invisible': [('state', '!=', 'domain')]}"> |
|||
<field name="domain" widget="domain" options="{'model': 'model_name'}" /> |
|||
</page> |
|||
<page string="Code Settings" name='code' autofocus="autofocus" |
|||
attrs="{'invisible': [('state', '!=', 'code')]}"> |
|||
<field name="code" widget="ace" options="{'mode': 'python'}" |
|||
placeholder="Enter Python code here. Help about Python expression is available in the help tab of this document."/> |
|||
</page> |
|||
<page string="Help" attrs="{'invisible': [('state', '!=', 'code')]}"> |
|||
<group> |
|||
<div style="margin-top: 4px;"> |
|||
<h3>Help with Python expressions</h3> |
|||
<p>Various fields may use Python code or Python expressions. The following variables can be used:</p> |
|||
<ul> |
|||
<li><code>uid</code>, <code>user</code>: User on which the rule is triggered</li> |
|||
<li><code>env</code>: Odoo Environment on which the rule is triggered</li> |
|||
<li><code>model</code>: Odoo Model of the record on which the rule is triggered</li> |
|||
<li><code>b64encode</code>, <code>b64decode</code>: Base64 converter</li> |
|||
<li><code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries</li> |
|||
<li><code>date_format</code>, <code>datetime_format</code>: server date and time formats</li> |
|||
<li><code>logger.info(message)</code>: Python logging framework</li> |
|||
<li><code>Warning</code>: Warning Exception to use with <code>raise</code></li> |
|||
</ul> |
|||
</div> |
|||
</group> |
|||
</page> |
|||
</notebook> |
|||
</sheet> |
|||
</form> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="action_autovacuum_rule" model="ir.actions.act_window"> |
|||
<field name="name">Auto Vacuum Rules</field> |
|||
<field name="res_model">muk_autovacuum.rules</field> |
|||
<field name="view_mode">tree,form</field> |
|||
<field name="context">{'search_default_all': 1}</field> |
|||
</record> |
|||
|
|||
<menuitem id="menu_autovacuum_rules" name="Auto Vacuum Rules" |
|||
parent="base.menu_automation" action="action_autovacuum_rule"/> |
|||
|
|||
</odoo> |
@ -1,165 +0,0 @@ |
|||
GNU LESSER GENERAL PUBLIC LICENSE |
|||
Version 3, 29 June 2007 |
|||
|
|||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> |
|||
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. |
@ -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 <https://pypi.org/project/pip/>`_). |
|||
|
|||
To install our modules using the package manager make sure |
|||
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed |
|||
correctly. 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 <module>`` |
|||
|
|||
The module name consists of the Odoo version and the module name, where |
|||
underscores are replaced by a dash. |
|||
|
|||
**Module:** |
|||
|
|||
``odoo<version>-addon-<module_name>`` |
|||
|
|||
**Example:** |
|||
|
|||
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple 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 <module>`` |
|||
|
|||
When the process is finished, restart your server and update the application in |
|||
Odoo. The steps are the same as for the installation only the button has changed |
|||
from "Install" to "Upgrade". |
|||
|
|||
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_ |
|||
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_. |
|||
|
|||
For modules licensed under 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 <support@mukit.at>`_ |
|||
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 <module>`` |
|||
|
|||
When the process is finished, restart your server and update the application in |
|||
Odoo, just like you would normally. |
|||
|
|||
|
|||
Configuration |
|||
============= |
|||
|
|||
Since this module need to be activated even if no database is selected it should |
|||
be loaded right at the server start. This can be done by editing the configuration |
|||
file or passing a load parameter to the start script. |
|||
|
|||
Parameter: ``--load=web,muk_session_store`` |
|||
|
|||
Usage |
|||
===== |
|||
|
|||
After loading the module, the ``dbfilter`` function reacts to request headers. |
|||
|
|||
Credit |
|||
====== |
|||
|
|||
Contributors |
|||
------------ |
|||
|
|||
* Kerrim Abdelhamed <kerrim.abdelhamed@mukit.at> |
|||
* Mathias Markl <mathias.markl@mukit.at> |
|||
|
|||
Images |
|||
------ |
|||
|
|||
Some pictures are based on or inspired by the icon set of Font Awesome: |
|||
|
|||
* `Font Awesome <https://fontawesome.com>`_ |
|||
|
|||
Author & Maintainer |
|||
------------------- |
|||
|
|||
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_. |
|||
|
|||
MuK IT is an Austrian company specialized in customizing and extending Odoo. |
|||
We develop custom solutions for your individual needs to help you focus on |
|||
your strength and expertise to grow your business. |
|||
|
|||
If you want to get in touch please contact us via `mail <sale@mukit.at>`_ |
|||
or visit our `website <https://mukit.at>`_. |
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
from odoo.tools import config |
|||
|
|||
|
|||
def _patch_system(): |
|||
server_modules = config.get("server_wide_modules") or [] |
|||
if "muk_dbfilter" in server_modules and config.get("proxy_mode"): |
|||
from . import patch |
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
{ |
|||
"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 <kerrim.abdelhamed@mukit.at>", |
|||
"Mathias Markl <mathias.markl@mukit.at>", |
|||
], |
|||
"images": ["static/description/banner.png"], |
|||
"installable": True, |
|||
"application": False, |
|||
"post_load": "_patch_system", |
|||
} |
@ -1,4 +0,0 @@ |
|||
`1.0.0` |
|||
------- |
|||
|
|||
- Init version |
@ -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 <https://pypi.org/project/pip/>`_). |
|||
|
|||
To install our modules using the package manager make sure |
|||
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed |
|||
correctly. 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 <module>`` |
|||
|
|||
The module name consists of the Odoo version and the module name, where |
|||
underscores are replaced by a dash. |
|||
|
|||
**Module:** |
|||
|
|||
``odoo<version>-addon-<module_name>`` |
|||
|
|||
**Example:** |
|||
|
|||
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple 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 <module>`` |
|||
|
|||
When the process is finished, restart your server and update the application in |
|||
Odoo. The steps are the same as for the installation only the button has changed |
|||
from "Install" to "Upgrade". |
|||
|
|||
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_ |
|||
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_. |
|||
|
|||
For modules licensed under 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 <support@mukit.at>`_ |
|||
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 <module>`` |
|||
|
|||
When the process is finished, restart your server and update the application in |
|||
Odoo, just like you would normally. |
|||
|
|||
|
|||
Configuration |
|||
============= |
|||
|
|||
Since this module need to be activated even if no database is selected it should |
|||
be loaded right at the server start. This can be done by editing the configuration |
|||
file or passing a load parameter to the start script. |
|||
|
|||
Parameter: ``--load=web,muk_session_store`` |
|||
|
|||
Usage |
|||
===== |
|||
|
|||
After loading the module, the ``dbfilter`` function reacts to request headers. |
|||
|
|||
Credit |
|||
====== |
|||
|
|||
Contributors |
|||
------------ |
|||
|
|||
* Kerrim Abdelhamed <kerrim.abdelhamed@mukit.at> |
|||
* Mathias Markl <mathias.markl@mukit.at> |
|||
|
|||
Images |
|||
------ |
|||
|
|||
Some pictures are based on or inspired by the icon set of Font Awesome: |
|||
|
|||
* `Font Awesome <https://fontawesome.com>`_ |
|||
|
|||
Author & Maintainer |
|||
------------------- |
|||
|
|||
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_. |
|||
|
|||
MuK IT is an Austrian company specialized in customizing and extending Odoo. |
|||
We develop custom solutions for your individual needs to help you focus on |
|||
your strength and expertise to grow your business. |
|||
|
|||
If you want to get in touch please contact us via `mail <sale@mukit.at>`_ |
|||
or visit our `website <https://mukit.at>`_. |
@ -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" |
@ -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" |
@ -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" |
@ -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" |
@ -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" |
@ -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" |
@ -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" |
@ -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" |
@ -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" |
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
from . import http |
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
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 |
Before Width: 880 | Height: 440 | Size: 39 KiB |
Before Width: 250 | Height: 250 | Size: 7.4 KiB |
@ -1 +0,0 @@ |
|||
<?xml version="1.0" standalone="no"?><!-- Generator: Gravit.io --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="0 0 250 250" width="250" height="250"><defs><clipPath id="_clipPath_RKMe3wwWD2dTyBn6NcW0C9MUCvwmzaAI"><rect width="250" height="250"/></clipPath></defs><g clip-path="url(#_clipPath_RKMe3wwWD2dTyBn6NcW0C9MUCvwmzaAI)"><rect width="250" height="250" style="fill:rgb(0,0,0)" fill-opacity="0"/><defs><filter id="iTmkcAVccMUU4hUgeTgbMGmbHN67spCn" x="-200%" y="-200%" width="400%" height="400%" filterUnits="objectBoundingBox" color-interpolation-filters="sRGB"><feOffset xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" dx="0" dy="3"/><feGaussianBlur xmlns="http://www.w3.org/2000/svg" stdDeviation="2.146804531419514" result="pf_100_offsetBlur"/><feComposite xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" in2="pf_100_offsetBlur" result="pf_100_inverse" operator="out"/><feFlood xmlns="http://www.w3.org/2000/svg" flood-color="#FFFFFF" flood-opacity="0.5" result="pf_100_color"/><feComposite xmlns="http://www.w3.org/2000/svg" in="pf_100_color" in2="pf_100_inverse" operator="in" result="pf_100_shadow"/><feComposite xmlns="http://www.w3.org/2000/svg" in="pf_100_shadow" in2="SourceGraphic" operator="over" result="_out_CNsltqqfCf30Oj6FOSlIWDEJNRlv6JTn"/><feOffset xmlns="http://www.w3.org/2000/svg" in="_out_CNsltqqfCf30Oj6FOSlIWDEJNRlv6JTn" dx="0" dy="-3"/><feGaussianBlur xmlns="http://www.w3.org/2000/svg" stdDeviation="2.146804531419514" result="pf_101_offsetBlur"/><feComposite xmlns="http://www.w3.org/2000/svg" in="_out_CNsltqqfCf30Oj6FOSlIWDEJNRlv6JTn" in2="pf_101_offsetBlur" result="pf_101_inverse" operator="out"/><feFlood xmlns="http://www.w3.org/2000/svg" flood-color="#000000" flood-opacity="0.5" result="pf_101_color"/><feComposite xmlns="http://www.w3.org/2000/svg" in="pf_101_color" in2="pf_101_inverse" operator="in" result="pf_101_shadow"/><feComposite xmlns="http://www.w3.org/2000/svg" in="pf_101_shadow" in2="_out_CNsltqqfCf30Oj6FOSlIWDEJNRlv6JTn" operator="over" result="_out_L1EYinKj8v6JxdOmZQsGWztvn86VKUMs"/><feMerge><feMergeNode in="_out_L1EYinKj8v6JxdOmZQsGWztvn86VKUMs"/></feMerge></filter></defs><g filter="url(#iTmkcAVccMUU4hUgeTgbMGmbHN67spCn)"><path d="M 15 0 L 235 0 C 243.279 0 250 6.721 250 15 L 250 235 C 250 243.279 243.279 250 235 250 L 15 250 C 6.721 250 0 243.279 0 235 L 0 15 C 0 6.721 6.721 0 15 0 Z" style="stroke:none;fill:#243742;stroke-miterlimit:10;"/></g><defs><filter id="FqYMU1EfKVNrvA77yugstR2NvAnWDSXy" x="-200%" y="-200%" width="400%" height="400%" filterUnits="objectBoundingBox" color-interpolation-filters="sRGB"><feGaussianBlur xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" stdDeviation="2.146804531419514"/><feOffset xmlns="http://www.w3.org/2000/svg" dx="-5" dy="5" result="pf_100_offsetBlur"/><feFlood xmlns="http://www.w3.org/2000/svg" flood-color="#000000" flood-opacity="0.5"/><feComposite xmlns="http://www.w3.org/2000/svg" in2="pf_100_offsetBlur" operator="in" result="pf_100_dropShadow"/><feBlend xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" in2="pf_100_dropShadow" mode="normal"/></filter></defs><g filter="url(#FqYMU1EfKVNrvA77yugstR2NvAnWDSXy)"><path d=" M 193.593 43.234 L 56.408 43.234 C 50.104 43.234 46.923 51.496 51.39 56.32 L 106.076 115.399 L 106.076 181.214 C 106.076 183.715 107.206 186.059 109.103 187.494 L 132.758 205.374 C 137.425 208.903 143.924 205.326 143.924 199.094 L 143.924 115.399 L 198.612 56.32 C 203.069 51.505 199.91 43.234 193.593 43.234 Z " fill="rgb(255,255,255)"/></g></g></svg> |
@ -1,171 +0,0 @@ |
|||
<section class="oe_container"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h2 class="oe_slogan">MuK DB Filter</h2> |
|||
<h3 class="oe_slogan">Headers based Database Selection</h3> |
|||
<h4 class="oe_slogan" style="font-size: 23px;"> |
|||
MuK IT GmbH - www.mukit.at |
|||
</h4> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container"> |
|||
<div class="oe_row oe_spaced"> |
|||
<div class="text-justify" style="max-width: 84%; margin: 16px 8%;"> |
|||
<h3 class="oe_slogan">Overview</h3> |
|||
<p class="oe_mt32"> |
|||
This module allows to add additional filter criteria to the |
|||
<code>dbfilter</code> |
|||
function using a request header. To pass a regular expression to the |
|||
filter set the |
|||
<code>X-Odoo-dbfilter</code> |
|||
header field on the request and make sure that Odoo runs with an enabled |
|||
proxy mode. |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
<section class="oe_container oe_dark"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h3 class="oe_slogan">Our Services</h3> |
|||
<div |
|||
style="display: flex; padding-top: 20px; justify-content: space-between;" |
|||
> |
|||
<div style="flex-basis: 18%;"> |
|||
<a href="https://mukit.at/r/MQ5" target="_blank"> |
|||
<div |
|||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;" |
|||
> |
|||
<img |
|||
src="service_implementation.png" |
|||
style="width: 100%; border-radius: 100%;" |
|||
/> |
|||
</div> |
|||
<h3 |
|||
class="oe_slogan" |
|||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;" |
|||
> |
|||
Odoo <br />Implementation |
|||
</h3> |
|||
</a> |
|||
</div> |
|||
<div style="flex-basis: 18%;"> |
|||
<a href="https://mukit.at/r/u7c" target="_blank"> |
|||
<div |
|||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;" |
|||
> |
|||
<img |
|||
src="service_integration.png" |
|||
style="width: 100%; border-radius: 100%;" |
|||
/> |
|||
</div> |
|||
<h3 |
|||
class="oe_slogan" |
|||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;" |
|||
> |
|||
Odoo <br />Integration |
|||
</h3> |
|||
</a> |
|||
</div> |
|||
<div style="flex-basis: 18%;"> |
|||
<a href="https://mukit.at/r/xDJ" target="_blank"> |
|||
<div |
|||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;" |
|||
> |
|||
<img |
|||
src="service_customization.png" |
|||
style="width: 100%; border-radius: 100%;" |
|||
/> |
|||
</div> |
|||
<h3 |
|||
class="oe_slogan" |
|||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;" |
|||
> |
|||
Odoo <br />Customization |
|||
</h3> |
|||
</a> |
|||
</div> |
|||
<div style="flex-basis: 18%;"> |
|||
<a href=" https://mukit.at/r/J3A" target="_blank"> |
|||
<div |
|||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;" |
|||
> |
|||
<img |
|||
src="service_development.png" |
|||
style="width: 100%; border-radius: 100%;" |
|||
/> |
|||
</div> |
|||
<h3 |
|||
class="oe_slogan" |
|||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;" |
|||
> |
|||
Odoo <br />Development |
|||
</h3> |
|||
</a> |
|||
</div> |
|||
<div style="flex-basis: 18%;"> |
|||
<a href=" https://mukit.at/r/R1v" target="_blank"> |
|||
<div |
|||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;" |
|||
> |
|||
<img |
|||
src="service_support.png" |
|||
style="width: 100%; border-radius: 100%;" |
|||
/> |
|||
</div> |
|||
<h3 |
|||
class="oe_slogan" |
|||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;" |
|||
> |
|||
Odoo <br />Support |
|||
</h3> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container" style="padding: 32px 0;"> |
|||
<div class="oe_row oe_spaced" style="margin: auto;"> |
|||
<div class="oe_demo oe_picture oe_screenshot"> |
|||
<a href="https://mukit.at/r/SgN" target="_blank"> |
|||
<img src="preview.png" /> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<h3 class="oe_slogan">Help and Support</h3> |
|||
<h5 class="oe_slogan" style="font-size: 20px;"> |
|||
Feel free to contact us, if you need any help with your Odoo integration or |
|||
addiontal features. |
|||
</h5> |
|||
<div class="oe_slogan"> |
|||
<a |
|||
class="btn btn-primary btn-lg mt8" |
|||
href="https://mukit.at" |
|||
target="_blank" |
|||
> |
|||
<i class="fa fa-globe"></i> Website |
|||
</a> |
|||
<a |
|||
class="btn btn-primary btn-lg mt8" |
|||
href="https://mukit.at/page/contactus" |
|||
target="_blank" |
|||
> |
|||
<i class="fa fa-envelope"></i> Contact Us |
|||
</a> |
|||
<a |
|||
class="btn btn-primary btn-lg mt8" |
|||
href="https://github.com/muk-it" |
|||
target="_blank" |
|||
> |
|||
<i class="fa fa-github"></i> Issues |
|||
</a> |
|||
</div> |
|||
<img |
|||
src="logo.png" |
|||
style="width: 200px; margin-bottom: 20px; display: block;" |
|||
class="mx-auto center-block" |
|||
/> |
|||
</section> |
Before Width: 500 | Height: 500 | Size: 37 KiB |
Before Width: 1000 | Height: 200 | Size: 32 KiB |
Before Width: 250 | Height: 250 | Size: 27 KiB |
Before Width: 250 | Height: 250 | Size: 28 KiB |
Before Width: 250 | Height: 250 | Size: 26 KiB |
Before Width: 250 | Height: 250 | Size: 24 KiB |
Before Width: 250 | Height: 250 | Size: 24 KiB |
@ -1,165 +0,0 @@ |
|||
GNU LESSER GENERAL PUBLIC LICENSE |
|||
Version 3, 29 June 2007 |
|||
|
|||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> |
|||
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. |