Atchuthan, Sodexis
9 years ago
25 changed files with 2783 additions and 0 deletions
-
123base_multi_image/README.rst
-
7base_multi_image/__init__.py
-
27base_multi_image/__openerp__.py
-
44base_multi_image/hooks.py
-
165base_multi_image/i18n/de.po
-
165base_multi_image/i18n/en.po
-
165base_multi_image/i18n/es.po
-
165base_multi_image/i18n/fi.po
-
165base_multi_image/i18n/fr.po
-
165base_multi_image/i18n/fr_CA.po
-
166base_multi_image/i18n/it.po
-
165base_multi_image/i18n/pt_BR.po
-
165base_multi_image/i18n/ru.po
-
166base_multi_image/i18n/sl.po
-
22base_multi_image/i18n/sv.po
-
165base_multi_image/i18n/tr.po
-
BINbase_multi_image/images/form.png
-
BINbase_multi_image/images/kanban.png
-
5base_multi_image/models/__init__.py
-
176base_multi_image/models/image.py
-
98base_multi_image/models/owner.py
-
2base_multi_image/security/ir.model.access.csv
-
BINbase_multi_image/static/description/icon.png
-
320base_multi_image/static/description/icon.svg
-
142base_multi_image/views/image_view.xml
@ -0,0 +1,123 @@ |
|||||
|
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg |
||||
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html |
||||
|
:alt: License: AGPL-3 |
||||
|
|
||||
|
==================== |
||||
|
Multiple Images Base |
||||
|
==================== |
||||
|
|
||||
|
This module extends the functionality of any model to support multiple images |
||||
|
(a gallery) attached to it and allow you to manage them. |
||||
|
|
||||
|
Installation |
||||
|
============ |
||||
|
|
||||
|
This module adds abstract models to work on. Its sole purpose is to serve as |
||||
|
base for other modules that implement galleries, so if you install this one |
||||
|
manually you will notice no change. You should install any other module based |
||||
|
on this one and this will get installed automatically. |
||||
|
|
||||
|
Usage |
||||
|
===== |
||||
|
|
||||
|
To manage all stored images, you need to: |
||||
|
|
||||
|
* Go to *Settings > Configuration > Multi images*. |
||||
|
|
||||
|
... but you probably prefer to manage them from the forms supplied by |
||||
|
submodules that inherit this behavior. |
||||
|
|
||||
|
Development |
||||
|
=========== |
||||
|
|
||||
|
To develop a module based on this one: |
||||
|
|
||||
|
* See module ``product_multi_image`` as an example. |
||||
|
|
||||
|
* You have to inherit model ``base_multi_image.owner`` to the model that needs |
||||
|
the gallery:: |
||||
|
|
||||
|
class MyOwner(models.Model): |
||||
|
_name = "my.model.name" |
||||
|
_inherit = ["my.model.name", "base_multi_image.owner"] |
||||
|
|
||||
|
# If you need this, you will need ``post_init_hook_for_submodules`` |
||||
|
old_image_field = fields.Binary(related="image_main", store=False) |
||||
|
|
||||
|
* Somewhere in the owner view, add:: |
||||
|
|
||||
|
<field |
||||
|
name="image_ids" |
||||
|
nolabel="1" |
||||
|
context="{ |
||||
|
'default_owner_model': 'my.model.name', |
||||
|
'default_owner_id': id, |
||||
|
}" |
||||
|
mode="kanban"/> |
||||
|
|
||||
|
* If the model you are extending already had an image field, and you want to |
||||
|
trick Odoo to make those images to multi-image mode, you will need to make |
||||
|
use of the provided :meth:`~.hooks.pre_init_hook_for_submodules`, like |
||||
|
the ``product_multi_image`` module does:: |
||||
|
|
||||
|
from openerp.addons.base_multi_image.hooks import \ |
||||
|
pre_init_hook_for_submodules |
||||
|
|
||||
|
|
||||
|
def pre_init_hook(cr): |
||||
|
pre_init_hook_for_submodules(cr, "product.template", "image") |
||||
|
pre_init_hook_for_submodules(cr, "product.product", "image_variant") |
||||
|
|
||||
|
|
||||
|
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas |
||||
|
:alt: Try me on Runbot |
||||
|
:target: https://runbot.odoo-community.org/runbot/149/8.0 |
||||
|
|
||||
|
Known issues / Roadmap |
||||
|
====================== |
||||
|
|
||||
|
* *OS file* storage mode for images is meant to provide a path where Odoo has |
||||
|
read access and the image is already found, **not for making the module store |
||||
|
images there**. It would be nice to add that feature though. |
||||
|
|
||||
|
Bug Tracker |
||||
|
=========== |
||||
|
|
||||
|
Bugs are tracked on `GitHub Issues |
||||
|
<https://github.com/OCA/server-tools/issues>`_. In case of trouble, please |
||||
|
check there if your issue has already been reported. If you spotted it first, |
||||
|
help us smashing it by providing a detailed and welcomed `feedback |
||||
|
<https://github.com/OCA/ |
||||
|
server-tools/issues/new?body=module:%20 |
||||
|
base_multi_image%0Aversion:%20 |
||||
|
8.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. |
||||
|
|
||||
|
Credits |
||||
|
======= |
||||
|
|
||||
|
Original implementation |
||||
|
----------------------- |
||||
|
This module is inspired in previous module *product_images* from OpenLabs |
||||
|
and Akretion. |
||||
|
|
||||
|
Contributors |
||||
|
------------ |
||||
|
|
||||
|
* Pedro M. Baeza <pedro.baeza@serviciosbaeza.com> |
||||
|
* Rafael Blasco <rafabn@antiun.com> |
||||
|
* Jairo Llopis <yajo.sk8@gmail.com> |
||||
|
|
||||
|
Maintainer |
||||
|
---------- |
||||
|
|
||||
|
.. image:: https://odoo-community.org/logo.png |
||||
|
:alt: Odoo Community Association |
||||
|
:target: https://odoo-community.org |
||||
|
|
||||
|
This module is maintained by the OCA. |
||||
|
|
||||
|
OCA, or the Odoo Community Association, is a nonprofit organization whose |
||||
|
mission is to support the collaborative development of Odoo features and |
||||
|
promote its widespread use. |
||||
|
|
||||
|
To contribute to this module, please visit http://odoo-community.org. |
@ -0,0 +1,7 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# © 2014 Serv. Tecnol. Avanzados (http://www.serviciosbaeza.com) |
||||
|
# Pedro M. Baeza <pedro.baeza@serviciosbaeza.com> |
||||
|
# © 2015 Antiun Ingeniería S.L. - Jairo Llopis |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
||||
|
|
||||
|
from . import models |
@ -0,0 +1,27 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# © 2014 Serv. Tecnol. Avanzados (http://www.serviciosbaeza.com) |
||||
|
# Pedro M. Baeza <pedro.baeza@serviciosbaeza.com> |
||||
|
# © 2015 Antiun Ingeniería S.L. - Jairo Llopis |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
||||
|
|
||||
|
{ |
||||
|
"name": "Multiple images base", |
||||
|
"summary": "Allow multiple images for database objects", |
||||
|
"version": "8.0.2.0.0", |
||||
|
"author": "Serv. Tecnol. Avanzados - Pedro M. Baeza, " |
||||
|
"Antiun Ingeniería, S.L., " |
||||
|
"Odoo Community Association (OCA)", |
||||
|
"license": "AGPL-3", |
||||
|
"website": "http://www.antiun.com", |
||||
|
"category": "Tools", |
||||
|
"depends": ['base'], |
||||
|
'installable': True, |
||||
|
"data": [ |
||||
|
"security/ir.model.access.csv", |
||||
|
"views/image_view.xml", |
||||
|
], |
||||
|
"images": [ |
||||
|
"images/form.png", |
||||
|
"images/kanban.png", |
||||
|
], |
||||
|
} |
@ -0,0 +1,44 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# © 2016 Antiun Ingeniería S.L. - Jairo Llopis |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
||||
|
|
||||
|
from openerp import api, SUPERUSER_ID |
||||
|
import logging |
||||
|
|
||||
|
_logger = logging.getLogger(__name__) |
||||
|
|
||||
|
|
||||
|
def pre_init_hook_for_submodules(cr, model, field): |
||||
|
"""Moves images from single to multi mode. |
||||
|
|
||||
|
Feel free to use this as a ``pre_init_hook`` for submodules. |
||||
|
|
||||
|
:param str model: |
||||
|
Model name, like ``product.template``. |
||||
|
|
||||
|
:param str field: |
||||
|
Binary field that had the images in that :param:`model`, like |
||||
|
``image``. |
||||
|
""" |
||||
|
env = api.Environment(cr, SUPERUSER_ID, dict()) |
||||
|
with cr.savepoint(): |
||||
|
cr.execute( |
||||
|
""" |
||||
|
INSERT INTO base_multi_image_image ( |
||||
|
owner_id, |
||||
|
owner_model, |
||||
|
storage, |
||||
|
file_db_store |
||||
|
) |
||||
|
SELECT |
||||
|
id, |
||||
|
%%s, |
||||
|
'db', |
||||
|
%(field)s |
||||
|
FROM |
||||
|
%(table)s |
||||
|
WHERE |
||||
|
%(field)s IS NOT NULL |
||||
|
""" % {"table": env[model]._table, "field": field}, |
||||
|
(model,) |
||||
|
) |
@ -0,0 +1,165 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * base_multi_image |
||||
|
# |
||||
|
# Translators: |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: server-tools (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2016-03-12 02:05+0000\n" |
||||
|
"PO-Revision-Date: 2016-03-09 16:29+0000\n" |
||||
|
"Last-Translator: <>\n" |
||||
|
"Language-Team: German (http://www.transifex.com/oca/OCA-server-tools-8-0/language/de/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: de\n" |
||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/image.py:22 |
||||
|
#: sql_constraint:base_multi_image.image:0 |
||||
|
#, python-format |
||||
|
msgid "A document can have only one image with the same name." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,comments:0 |
||||
|
msgid "Comments" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_uid:0 |
||||
|
msgid "Created by" |
||||
|
msgstr "Erstellt von" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_date:0 |
||||
|
msgid "Created on" |
||||
|
msgstr "Erstellt am:" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "Database" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,extension:0 |
||||
|
msgid "File extension" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,filename:0 |
||||
|
msgid "Filename" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,id:0 field:base_multi_image.owner,id:0 |
||||
|
msgid "ID" |
||||
|
msgstr "ID" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Image" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,path:0 help:base_multi_image.image,path:0 |
||||
|
msgid "Image path" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,url:0 |
||||
|
msgid "Image remote URL" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,file_db_store:0 |
||||
|
msgid "Image stored in database" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,name:0 |
||||
|
msgid "Image title" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_tree_view |
||||
|
#: field:base_multi_image.owner,image_ids:0 |
||||
|
msgid "Images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_uid:0 |
||||
|
msgid "Last Updated by" |
||||
|
msgstr "Zuletzt aktualisiert von" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_date:0 |
||||
|
msgid "Last Updated on" |
||||
|
msgstr "Zuletzt aktualisiert am" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/owner.py:73 |
||||
|
#, python-format |
||||
|
msgid "Main image" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: model:ir.actions.act_window,name:base_multi_image.image_action |
||||
|
#: model:ir.ui.menu,name:base_multi_image.image_menu |
||||
|
msgid "Multi images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Name" |
||||
|
msgstr "Name" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "OS file" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Options" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,owner_id:0 |
||||
|
msgid "Owner" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,owner_model:0 |
||||
|
msgid "Owner model" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Preview" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_kanban_view |
||||
|
msgid "Product Images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,sequence:0 |
||||
|
msgid "Sequence" |
||||
|
msgstr "Reihenfolge" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,storage:0 |
||||
|
msgid "Storage" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "URL" |
||||
|
msgstr "" |
@ -0,0 +1,165 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * base_multi_image |
||||
|
# |
||||
|
# Translators: |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: server-tools (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2016-03-12 02:05+0000\n" |
||||
|
"PO-Revision-Date: 2016-03-09 16:29+0000\n" |
||||
|
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n" |
||||
|
"Language-Team: English (http://www.transifex.com/oca/OCA-server-tools-8-0/language/en/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: en\n" |
||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/image.py:22 |
||||
|
#: sql_constraint:base_multi_image.image:0 |
||||
|
#, python-format |
||||
|
msgid "A document can have only one image with the same name." |
||||
|
msgstr "A document can have only one image with the same name." |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,comments:0 |
||||
|
msgid "Comments" |
||||
|
msgstr "Comments" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_uid:0 |
||||
|
msgid "Created by" |
||||
|
msgstr "Created by" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_date:0 |
||||
|
msgid "Created on" |
||||
|
msgstr "Created on" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "Database" |
||||
|
msgstr "Database" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,extension:0 |
||||
|
msgid "File extension" |
||||
|
msgstr "File extension" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,filename:0 |
||||
|
msgid "Filename" |
||||
|
msgstr "Filename" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,id:0 field:base_multi_image.owner,id:0 |
||||
|
msgid "ID" |
||||
|
msgstr "ID" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Image" |
||||
|
msgstr "Image" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,path:0 help:base_multi_image.image,path:0 |
||||
|
msgid "Image path" |
||||
|
msgstr "Image path" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,url:0 |
||||
|
msgid "Image remote URL" |
||||
|
msgstr "Image remote URL" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,file_db_store:0 |
||||
|
msgid "Image stored in database" |
||||
|
msgstr "Image stored in database" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,name:0 |
||||
|
msgid "Image title" |
||||
|
msgstr "Image title" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_tree_view |
||||
|
#: field:base_multi_image.owner,image_ids:0 |
||||
|
msgid "Images" |
||||
|
msgstr "Images" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_uid:0 |
||||
|
msgid "Last Updated by" |
||||
|
msgstr "Last Updated by" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_date:0 |
||||
|
msgid "Last Updated on" |
||||
|
msgstr "Last Updated on" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/owner.py:73 |
||||
|
#, python-format |
||||
|
msgid "Main image" |
||||
|
msgstr "Main image" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: model:ir.actions.act_window,name:base_multi_image.image_action |
||||
|
#: model:ir.ui.menu,name:base_multi_image.image_menu |
||||
|
msgid "Multi images" |
||||
|
msgstr "Multi images" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Name" |
||||
|
msgstr "Name" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "OS file" |
||||
|
msgstr "OS file" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Options" |
||||
|
msgstr "Options" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,owner_id:0 |
||||
|
msgid "Owner" |
||||
|
msgstr "Owner" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,owner_model:0 |
||||
|
msgid "Owner model" |
||||
|
msgstr "Owner model" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Preview" |
||||
|
msgstr "Preview" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_kanban_view |
||||
|
msgid "Product Images" |
||||
|
msgstr "Product Images" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,sequence:0 |
||||
|
msgid "Sequence" |
||||
|
msgstr "Sequence" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,storage:0 |
||||
|
msgid "Storage" |
||||
|
msgstr "Storage" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "URL" |
||||
|
msgstr "URL" |
@ -0,0 +1,165 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * base_multi_image |
||||
|
# |
||||
|
# Translators: |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: server-tools (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2016-03-12 02:05+0000\n" |
||||
|
"PO-Revision-Date: 2016-03-09 16:29+0000\n" |
||||
|
"Last-Translator: <>\n" |
||||
|
"Language-Team: Spanish (http://www.transifex.com/oca/OCA-server-tools-8-0/language/es/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: es\n" |
||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/image.py:22 |
||||
|
#: sql_constraint:base_multi_image.image:0 |
||||
|
#, python-format |
||||
|
msgid "A document can have only one image with the same name." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,comments:0 |
||||
|
msgid "Comments" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_uid:0 |
||||
|
msgid "Created by" |
||||
|
msgstr "Creado por" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_date:0 |
||||
|
msgid "Created on" |
||||
|
msgstr "Creado en" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "Database" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,extension:0 |
||||
|
msgid "File extension" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,filename:0 |
||||
|
msgid "Filename" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,id:0 field:base_multi_image.owner,id:0 |
||||
|
msgid "ID" |
||||
|
msgstr "ID" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Image" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,path:0 help:base_multi_image.image,path:0 |
||||
|
msgid "Image path" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,url:0 |
||||
|
msgid "Image remote URL" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,file_db_store:0 |
||||
|
msgid "Image stored in database" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,name:0 |
||||
|
msgid "Image title" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_tree_view |
||||
|
#: field:base_multi_image.owner,image_ids:0 |
||||
|
msgid "Images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_uid:0 |
||||
|
msgid "Last Updated by" |
||||
|
msgstr "Última actualización de" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_date:0 |
||||
|
msgid "Last Updated on" |
||||
|
msgstr "Última actualización en" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/owner.py:73 |
||||
|
#, python-format |
||||
|
msgid "Main image" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: model:ir.actions.act_window,name:base_multi_image.image_action |
||||
|
#: model:ir.ui.menu,name:base_multi_image.image_menu |
||||
|
msgid "Multi images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Name" |
||||
|
msgstr "Nombre" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "OS file" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Options" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,owner_id:0 |
||||
|
msgid "Owner" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,owner_model:0 |
||||
|
msgid "Owner model" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Preview" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_kanban_view |
||||
|
msgid "Product Images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,sequence:0 |
||||
|
msgid "Sequence" |
||||
|
msgstr "Secuencia" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,storage:0 |
||||
|
msgid "Storage" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "URL" |
||||
|
msgstr "" |
@ -0,0 +1,165 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * base_multi_image |
||||
|
# |
||||
|
# Translators: |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: server-tools (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2016-03-12 02:05+0000\n" |
||||
|
"PO-Revision-Date: 2016-03-09 16:29+0000\n" |
||||
|
"Last-Translator: <>\n" |
||||
|
"Language-Team: Finnish (http://www.transifex.com/oca/OCA-server-tools-8-0/language/fi/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: fi\n" |
||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/image.py:22 |
||||
|
#: sql_constraint:base_multi_image.image:0 |
||||
|
#, python-format |
||||
|
msgid "A document can have only one image with the same name." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,comments:0 |
||||
|
msgid "Comments" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_uid:0 |
||||
|
msgid "Created by" |
||||
|
msgstr "Luonut" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_date:0 |
||||
|
msgid "Created on" |
||||
|
msgstr "Luotu" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "Database" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,extension:0 |
||||
|
msgid "File extension" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,filename:0 |
||||
|
msgid "Filename" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,id:0 field:base_multi_image.owner,id:0 |
||||
|
msgid "ID" |
||||
|
msgstr "ID" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Image" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,path:0 help:base_multi_image.image,path:0 |
||||
|
msgid "Image path" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,url:0 |
||||
|
msgid "Image remote URL" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,file_db_store:0 |
||||
|
msgid "Image stored in database" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,name:0 |
||||
|
msgid "Image title" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_tree_view |
||||
|
#: field:base_multi_image.owner,image_ids:0 |
||||
|
msgid "Images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_uid:0 |
||||
|
msgid "Last Updated by" |
||||
|
msgstr "Viimeksi päivittänyt" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_date:0 |
||||
|
msgid "Last Updated on" |
||||
|
msgstr "Viimeksi päivitetty" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/owner.py:73 |
||||
|
#, python-format |
||||
|
msgid "Main image" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: model:ir.actions.act_window,name:base_multi_image.image_action |
||||
|
#: model:ir.ui.menu,name:base_multi_image.image_menu |
||||
|
msgid "Multi images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Name" |
||||
|
msgstr "Nimi" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "OS file" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Options" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,owner_id:0 |
||||
|
msgid "Owner" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,owner_model:0 |
||||
|
msgid "Owner model" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Preview" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_kanban_view |
||||
|
msgid "Product Images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,sequence:0 |
||||
|
msgid "Sequence" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,storage:0 |
||||
|
msgid "Storage" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "URL" |
||||
|
msgstr "" |
@ -0,0 +1,165 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * base_multi_image |
||||
|
# |
||||
|
# Translators: |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: server-tools (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2016-03-12 02:05+0000\n" |
||||
|
"PO-Revision-Date: 2016-03-09 16:29+0000\n" |
||||
|
"Last-Translator: <>\n" |
||||
|
"Language-Team: French (http://www.transifex.com/oca/OCA-server-tools-8-0/language/fr/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: fr\n" |
||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/image.py:22 |
||||
|
#: sql_constraint:base_multi_image.image:0 |
||||
|
#, python-format |
||||
|
msgid "A document can have only one image with the same name." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,comments:0 |
||||
|
msgid "Comments" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_uid:0 |
||||
|
msgid "Created by" |
||||
|
msgstr "Créé par" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_date:0 |
||||
|
msgid "Created on" |
||||
|
msgstr "Créé le" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "Database" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,extension:0 |
||||
|
msgid "File extension" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,filename:0 |
||||
|
msgid "Filename" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,id:0 field:base_multi_image.owner,id:0 |
||||
|
msgid "ID" |
||||
|
msgstr "ID" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Image" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,path:0 help:base_multi_image.image,path:0 |
||||
|
msgid "Image path" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,url:0 |
||||
|
msgid "Image remote URL" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,file_db_store:0 |
||||
|
msgid "Image stored in database" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,name:0 |
||||
|
msgid "Image title" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_tree_view |
||||
|
#: field:base_multi_image.owner,image_ids:0 |
||||
|
msgid "Images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_uid:0 |
||||
|
msgid "Last Updated by" |
||||
|
msgstr "Mis à jour par" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_date:0 |
||||
|
msgid "Last Updated on" |
||||
|
msgstr "Mis à jour le" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/owner.py:73 |
||||
|
#, python-format |
||||
|
msgid "Main image" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: model:ir.actions.act_window,name:base_multi_image.image_action |
||||
|
#: model:ir.ui.menu,name:base_multi_image.image_menu |
||||
|
msgid "Multi images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Name" |
||||
|
msgstr "Nom" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "OS file" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Options" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,owner_id:0 |
||||
|
msgid "Owner" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,owner_model:0 |
||||
|
msgid "Owner model" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Preview" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_kanban_view |
||||
|
msgid "Product Images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,sequence:0 |
||||
|
msgid "Sequence" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,storage:0 |
||||
|
msgid "Storage" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "URL" |
||||
|
msgstr "" |
@ -0,0 +1,165 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * base_multi_image |
||||
|
# |
||||
|
# Translators: |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: server-tools (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2016-03-12 02:05+0000\n" |
||||
|
"PO-Revision-Date: 2016-03-09 16:29+0000\n" |
||||
|
"Last-Translator: <>\n" |
||||
|
"Language-Team: French (Canada) (http://www.transifex.com/oca/OCA-server-tools-8-0/language/fr_CA/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: fr_CA\n" |
||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/image.py:22 |
||||
|
#: sql_constraint:base_multi_image.image:0 |
||||
|
#, python-format |
||||
|
msgid "A document can have only one image with the same name." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,comments:0 |
||||
|
msgid "Comments" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_uid:0 |
||||
|
msgid "Created by" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_date:0 |
||||
|
msgid "Created on" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "Database" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,extension:0 |
||||
|
msgid "File extension" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,filename:0 |
||||
|
msgid "Filename" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,id:0 field:base_multi_image.owner,id:0 |
||||
|
msgid "ID" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Image" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,path:0 help:base_multi_image.image,path:0 |
||||
|
msgid "Image path" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,url:0 |
||||
|
msgid "Image remote URL" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,file_db_store:0 |
||||
|
msgid "Image stored in database" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,name:0 |
||||
|
msgid "Image title" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_tree_view |
||||
|
#: field:base_multi_image.owner,image_ids:0 |
||||
|
msgid "Images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_uid:0 |
||||
|
msgid "Last Updated by" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_date:0 |
||||
|
msgid "Last Updated on" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/owner.py:73 |
||||
|
#, python-format |
||||
|
msgid "Main image" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: model:ir.actions.act_window,name:base_multi_image.image_action |
||||
|
#: model:ir.ui.menu,name:base_multi_image.image_menu |
||||
|
msgid "Multi images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Name" |
||||
|
msgstr "Nom" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "OS file" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Options" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,owner_id:0 |
||||
|
msgid "Owner" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,owner_model:0 |
||||
|
msgid "Owner model" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Preview" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_kanban_view |
||||
|
msgid "Product Images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,sequence:0 |
||||
|
msgid "Sequence" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,storage:0 |
||||
|
msgid "Storage" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "URL" |
||||
|
msgstr "" |
@ -0,0 +1,166 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * base_multi_image |
||||
|
# |
||||
|
# Translators: |
||||
|
# Paolo Valier, 2016 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: server-tools (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2016-03-17 15:36+0000\n" |
||||
|
"PO-Revision-Date: 2016-03-13 08:39+0000\n" |
||||
|
"Last-Translator: Paolo Valier\n" |
||||
|
"Language-Team: Italian (http://www.transifex.com/oca/OCA-server-tools-8-0/language/it/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: it\n" |
||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/image.py:22 |
||||
|
#: sql_constraint:base_multi_image.image:0 |
||||
|
#, python-format |
||||
|
msgid "A document can have only one image with the same name." |
||||
|
msgstr "Un documento può avere una sola immagine con lo stesso nome." |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,comments:0 |
||||
|
msgid "Comments" |
||||
|
msgstr "Commenti" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_uid:0 |
||||
|
msgid "Created by" |
||||
|
msgstr "Creato da" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_date:0 |
||||
|
msgid "Created on" |
||||
|
msgstr "Creato il" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "Database" |
||||
|
msgstr "Database" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,extension:0 |
||||
|
msgid "File extension" |
||||
|
msgstr "Estensione file" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,filename:0 |
||||
|
msgid "Filename" |
||||
|
msgstr "Nome del file" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,id:0 field:base_multi_image.owner,id:0 |
||||
|
msgid "ID" |
||||
|
msgstr "ID" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Image" |
||||
|
msgstr "Immagine" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,path:0 help:base_multi_image.image,path:0 |
||||
|
msgid "Image path" |
||||
|
msgstr "Percorso immagine" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,url:0 |
||||
|
msgid "Image remote URL" |
||||
|
msgstr "URL remoto dell'immagine" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,file_db_store:0 |
||||
|
msgid "Image stored in database" |
||||
|
msgstr "Immagine salata del database" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,name:0 |
||||
|
msgid "Image title" |
||||
|
msgstr "Titolo dell'immagine" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_tree_view |
||||
|
#: field:base_multi_image.owner,image_ids:0 |
||||
|
msgid "Images" |
||||
|
msgstr "Immagini" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_uid:0 |
||||
|
msgid "Last Updated by" |
||||
|
msgstr "Ultimo aggiornamento da" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_date:0 |
||||
|
msgid "Last Updated on" |
||||
|
msgstr "Ultimo aggiornamento il" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/owner.py:73 |
||||
|
#, python-format |
||||
|
msgid "Main image" |
||||
|
msgstr "Immagine principale" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: model:ir.actions.act_window,name:base_multi_image.image_action |
||||
|
#: model:ir.ui.menu,name:base_multi_image.image_menu |
||||
|
msgid "Multi images" |
||||
|
msgstr "Immagini multiple" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Name" |
||||
|
msgstr "Nome" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "OS file" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Options" |
||||
|
msgstr "Opzioni" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,owner_id:0 |
||||
|
msgid "Owner" |
||||
|
msgstr "Proprietario" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,owner_model:0 |
||||
|
msgid "Owner model" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Preview" |
||||
|
msgstr "Anteprima" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_kanban_view |
||||
|
msgid "Product Images" |
||||
|
msgstr "Immagini del Prodotto" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,sequence:0 |
||||
|
msgid "Sequence" |
||||
|
msgstr "Sequenza" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,storage:0 |
||||
|
msgid "Storage" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "URL" |
||||
|
msgstr "URL" |
@ -0,0 +1,165 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * base_multi_image |
||||
|
# |
||||
|
# Translators: |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: server-tools (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2016-03-12 02:05+0000\n" |
||||
|
"PO-Revision-Date: 2016-03-09 16:29+0000\n" |
||||
|
"Last-Translator: <>\n" |
||||
|
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-server-tools-8-0/language/pt_BR/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: pt_BR\n" |
||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/image.py:22 |
||||
|
#: sql_constraint:base_multi_image.image:0 |
||||
|
#, python-format |
||||
|
msgid "A document can have only one image with the same name." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,comments:0 |
||||
|
msgid "Comments" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_uid:0 |
||||
|
msgid "Created by" |
||||
|
msgstr "Criado por" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_date:0 |
||||
|
msgid "Created on" |
||||
|
msgstr "Criado em" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "Database" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,extension:0 |
||||
|
msgid "File extension" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,filename:0 |
||||
|
msgid "Filename" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,id:0 field:base_multi_image.owner,id:0 |
||||
|
msgid "ID" |
||||
|
msgstr "Identificação" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Image" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,path:0 help:base_multi_image.image,path:0 |
||||
|
msgid "Image path" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,url:0 |
||||
|
msgid "Image remote URL" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,file_db_store:0 |
||||
|
msgid "Image stored in database" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,name:0 |
||||
|
msgid "Image title" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_tree_view |
||||
|
#: field:base_multi_image.owner,image_ids:0 |
||||
|
msgid "Images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_uid:0 |
||||
|
msgid "Last Updated by" |
||||
|
msgstr "Última atualização por" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_date:0 |
||||
|
msgid "Last Updated on" |
||||
|
msgstr "Última atualização em" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/owner.py:73 |
||||
|
#, python-format |
||||
|
msgid "Main image" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: model:ir.actions.act_window,name:base_multi_image.image_action |
||||
|
#: model:ir.ui.menu,name:base_multi_image.image_menu |
||||
|
msgid "Multi images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Name" |
||||
|
msgstr "Nome" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "OS file" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Options" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,owner_id:0 |
||||
|
msgid "Owner" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,owner_model:0 |
||||
|
msgid "Owner model" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Preview" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_kanban_view |
||||
|
msgid "Product Images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,sequence:0 |
||||
|
msgid "Sequence" |
||||
|
msgstr "Sequência" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,storage:0 |
||||
|
msgid "Storage" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "URL" |
||||
|
msgstr "" |
@ -0,0 +1,165 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * base_multi_image |
||||
|
# |
||||
|
# Translators: |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: server-tools (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2016-03-12 02:05+0000\n" |
||||
|
"PO-Revision-Date: 2016-03-09 16:29+0000\n" |
||||
|
"Last-Translator: <>\n" |
||||
|
"Language-Team: Russian (http://www.transifex.com/oca/OCA-server-tools-8-0/language/ru/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: ru\n" |
||||
|
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/image.py:22 |
||||
|
#: sql_constraint:base_multi_image.image:0 |
||||
|
#, python-format |
||||
|
msgid "A document can have only one image with the same name." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,comments:0 |
||||
|
msgid "Comments" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_uid:0 |
||||
|
msgid "Created by" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_date:0 |
||||
|
msgid "Created on" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "Database" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,extension:0 |
||||
|
msgid "File extension" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,filename:0 |
||||
|
msgid "Filename" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,id:0 field:base_multi_image.owner,id:0 |
||||
|
msgid "ID" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Image" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,path:0 help:base_multi_image.image,path:0 |
||||
|
msgid "Image path" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,url:0 |
||||
|
msgid "Image remote URL" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,file_db_store:0 |
||||
|
msgid "Image stored in database" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,name:0 |
||||
|
msgid "Image title" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_tree_view |
||||
|
#: field:base_multi_image.owner,image_ids:0 |
||||
|
msgid "Images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_uid:0 |
||||
|
msgid "Last Updated by" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_date:0 |
||||
|
msgid "Last Updated on" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/owner.py:73 |
||||
|
#, python-format |
||||
|
msgid "Main image" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: model:ir.actions.act_window,name:base_multi_image.image_action |
||||
|
#: model:ir.ui.menu,name:base_multi_image.image_menu |
||||
|
msgid "Multi images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Name" |
||||
|
msgstr "Название" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "OS file" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Options" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,owner_id:0 |
||||
|
msgid "Owner" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,owner_model:0 |
||||
|
msgid "Owner model" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Preview" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_kanban_view |
||||
|
msgid "Product Images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,sequence:0 |
||||
|
msgid "Sequence" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,storage:0 |
||||
|
msgid "Storage" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "URL" |
||||
|
msgstr "" |
@ -0,0 +1,166 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * base_multi_image |
||||
|
# |
||||
|
# Translators: |
||||
|
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2016 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: server-tools (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2016-03-12 02:05+0000\n" |
||||
|
"PO-Revision-Date: 2016-03-10 05:44+0000\n" |
||||
|
"Last-Translator: Matjaž Mozetič <m.mozetic@matmoz.si>\n" |
||||
|
"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-server-tools-8-0/language/sl/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: sl\n" |
||||
|
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/image.py:22 |
||||
|
#: sql_constraint:base_multi_image.image:0 |
||||
|
#, python-format |
||||
|
msgid "A document can have only one image with the same name." |
||||
|
msgstr "Dokument lahko vsebuje le eno sliko z istim nazivom." |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,comments:0 |
||||
|
msgid "Comments" |
||||
|
msgstr "Komentarji" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_uid:0 |
||||
|
msgid "Created by" |
||||
|
msgstr "Ustvaril" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_date:0 |
||||
|
msgid "Created on" |
||||
|
msgstr "Ustvarjeno" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "Database" |
||||
|
msgstr "Podatkovna baza" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,extension:0 |
||||
|
msgid "File extension" |
||||
|
msgstr "Končnica datoteke" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,filename:0 |
||||
|
msgid "Filename" |
||||
|
msgstr "Naziv datoteke" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,id:0 field:base_multi_image.owner,id:0 |
||||
|
msgid "ID" |
||||
|
msgstr "ID" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Image" |
||||
|
msgstr "Slika" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,path:0 help:base_multi_image.image,path:0 |
||||
|
msgid "Image path" |
||||
|
msgstr "Pot do slike" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,url:0 |
||||
|
msgid "Image remote URL" |
||||
|
msgstr "URL povezava do slike" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,file_db_store:0 |
||||
|
msgid "Image stored in database" |
||||
|
msgstr "Slika shranjena v podatkovno bazo" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,name:0 |
||||
|
msgid "Image title" |
||||
|
msgstr "Naziv slike" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_tree_view |
||||
|
#: field:base_multi_image.owner,image_ids:0 |
||||
|
msgid "Images" |
||||
|
msgstr "Slike" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_uid:0 |
||||
|
msgid "Last Updated by" |
||||
|
msgstr "Zadnji posodobil" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_date:0 |
||||
|
msgid "Last Updated on" |
||||
|
msgstr "Zadnjič posodobljeno" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/owner.py:73 |
||||
|
#, python-format |
||||
|
msgid "Main image" |
||||
|
msgstr "Glavna slika" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: model:ir.actions.act_window,name:base_multi_image.image_action |
||||
|
#: model:ir.ui.menu,name:base_multi_image.image_menu |
||||
|
msgid "Multi images" |
||||
|
msgstr "Več slik" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Name" |
||||
|
msgstr "Naziv" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "OS file" |
||||
|
msgstr "OS datoteka" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Options" |
||||
|
msgstr "Možnosti" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,owner_id:0 |
||||
|
msgid "Owner" |
||||
|
msgstr "Lastnik" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,owner_model:0 |
||||
|
msgid "Owner model" |
||||
|
msgstr "Model lastnika" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Preview" |
||||
|
msgstr "Predogled" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_kanban_view |
||||
|
msgid "Product Images" |
||||
|
msgstr "Slike proizvoda" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,sequence:0 |
||||
|
msgid "Sequence" |
||||
|
msgstr "Zaporedje" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,storage:0 |
||||
|
msgid "Storage" |
||||
|
msgstr "Shranjevalni medij" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "URL" |
||||
|
msgstr "URL" |
@ -0,0 +1,22 @@ |
|||||
|
# Translation of OpenERP Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * product_images_olbs |
||||
|
# |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: OpenERP Server 5.0.14\n" |
||||
|
"Report-Msgid-Bugs-To: support@openerp.com\n" |
||||
|
"POT-Creation-Date: 2010-11-22 10:19:32+0000\n" |
||||
|
"PO-Revision-Date: 2010-11-22 10:19:32+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: product_images_olbs |
||||
|
#: model:ir.module.module,shortdesc:product_images_olbs.module_meta_information |
||||
|
msgid "Product Image Gallery" |
||||
|
msgstr "Product Image Gallery" |
||||
|
|
@ -0,0 +1,165 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * base_multi_image |
||||
|
# |
||||
|
# Translators: |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: server-tools (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2016-03-12 02:05+0000\n" |
||||
|
"PO-Revision-Date: 2016-03-09 16:29+0000\n" |
||||
|
"Last-Translator: <>\n" |
||||
|
"Language-Team: Turkish (http://www.transifex.com/oca/OCA-server-tools-8-0/language/tr/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: tr\n" |
||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/image.py:22 |
||||
|
#: sql_constraint:base_multi_image.image:0 |
||||
|
#, python-format |
||||
|
msgid "A document can have only one image with the same name." |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,comments:0 |
||||
|
msgid "Comments" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_uid:0 |
||||
|
msgid "Created by" |
||||
|
msgstr "Oluşturan" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,create_date:0 |
||||
|
msgid "Created on" |
||||
|
msgstr "Oluşturuldu" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "Database" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,extension:0 |
||||
|
msgid "File extension" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,filename:0 |
||||
|
msgid "Filename" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,id:0 field:base_multi_image.owner,id:0 |
||||
|
msgid "ID" |
||||
|
msgstr "ID" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Image" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,path:0 help:base_multi_image.image,path:0 |
||||
|
msgid "Image path" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,url:0 |
||||
|
msgid "Image remote URL" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,file_db_store:0 |
||||
|
msgid "Image stored in database" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,name:0 |
||||
|
msgid "Image title" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_tree_view |
||||
|
#: field:base_multi_image.owner,image_ids:0 |
||||
|
msgid "Images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_uid:0 |
||||
|
msgid "Last Updated by" |
||||
|
msgstr "Son güncelleyen" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,write_date:0 |
||||
|
msgid "Last Updated on" |
||||
|
msgstr "Son güncellenme" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: code:addons/base_multi_image/models/owner.py:73 |
||||
|
#, python-format |
||||
|
msgid "Main image" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: model:ir.actions.act_window,name:base_multi_image.image_action |
||||
|
#: model:ir.ui.menu,name:base_multi_image.image_menu |
||||
|
msgid "Multi images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Name" |
||||
|
msgstr "Adı" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "OS file" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Options" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
#: field:base_multi_image.image,owner_id:0 |
||||
|
msgid "Owner" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,owner_model:0 |
||||
|
msgid "Owner model" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_form_view |
||||
|
msgid "Preview" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: view:base_multi_image.image:base_multi_image.image_kanban_view |
||||
|
msgid "Product Images" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,sequence:0 |
||||
|
msgid "Sequence" |
||||
|
msgstr "Sıra" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: field:base_multi_image.image,storage:0 |
||||
|
msgid "Storage" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: base_multi_image |
||||
|
#: selection:base_multi_image.image,storage:0 |
||||
|
msgid "URL" |
||||
|
msgstr "" |
After Width: 1212 | Height: 479 | Size: 49 KiB |
After Width: 1131 | Height: 501 | Size: 139 KiB |
@ -0,0 +1,5 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# © 2015 Antiun Ingeniería S.L. - Jairo Llopis |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
||||
|
|
||||
|
from . import image, owner |
@ -0,0 +1,176 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# © 2014 Serv. Tecnol. Avanzados (http://www.serviciosbaeza.com) |
||||
|
# Pedro M. Baeza <pedro.baeza@serviciosbaeza.com> |
||||
|
# © 2015 Antiun Ingeniería S.L. - Jairo Llopis |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
||||
|
|
||||
|
import base64 |
||||
|
import urllib |
||||
|
import os |
||||
|
import logging |
||||
|
from openerp import models, fields, api, exceptions, _ |
||||
|
from openerp import tools |
||||
|
|
||||
|
_logger = logging.getLogger(__name__) |
||||
|
|
||||
|
|
||||
|
class Image(models.Model): |
||||
|
_name = "base_multi_image.image" |
||||
|
_order = "sequence, owner_model, owner_id, id" |
||||
|
_sql_constraints = [ |
||||
|
('uniq_name_owner', 'UNIQUE(owner_id, owner_model, name)', |
||||
|
_('A document can have only one image with the same name.')), |
||||
|
] |
||||
|
|
||||
|
owner_id = fields.Integer( |
||||
|
"Owner", |
||||
|
required=True) |
||||
|
owner_model = fields.Char( |
||||
|
required=True) |
||||
|
storage = fields.Selection( |
||||
|
[('url', 'URL'), ('file', 'OS file'), ('db', 'Database')], |
||||
|
required=True) |
||||
|
name = fields.Char( |
||||
|
'Image title', |
||||
|
translate=True) |
||||
|
filename = fields.Char() |
||||
|
extension = fields.Char( |
||||
|
'File extension', |
||||
|
readonly=True) |
||||
|
file_db_store = fields.Binary( |
||||
|
'Image stored in database', |
||||
|
filters='*.png,*.jpg,*.gif') |
||||
|
path = fields.Char( |
||||
|
"Image path", |
||||
|
help="Image path") |
||||
|
url = fields.Char( |
||||
|
'Image remote URL') |
||||
|
image_main = fields.Binary( |
||||
|
"Full-sized image", |
||||
|
compute="_get_image") |
||||
|
image_medium = fields.Binary( |
||||
|
"Medium-sized image", |
||||
|
compute="_get_image_sizes", |
||||
|
help="Medium-sized image. It is automatically resized as a " |
||||
|
"128 x 128 px image, with aspect ratio preserved, only when the " |
||||
|
"image exceeds one of those sizes. Use this field in form views " |
||||
|
"or kanban views.") |
||||
|
image_small = fields.Binary( |
||||
|
"Small-sized image", |
||||
|
compute="_get_image_sizes", |
||||
|
help="Small-sized image. It is automatically resized as a 64 x 64 px " |
||||
|
"image, with aspect ratio preserved. Use this field anywhere a " |
||||
|
"small image is required.") |
||||
|
comments = fields.Text( |
||||
|
'Comments', |
||||
|
translate=True) |
||||
|
sequence = fields.Integer( |
||||
|
default=10) |
||||
|
show_technical = fields.Boolean( |
||||
|
compute="_show_technical") |
||||
|
|
||||
|
@api.multi |
||||
|
@api.depends('storage', 'path', 'file_db_store', 'url') |
||||
|
def _get_image(self): |
||||
|
"""Get image data from the right storage type.""" |
||||
|
for s in self: |
||||
|
s.image_main = getattr(s, "_get_image_from_%s" % s.storage)() |
||||
|
|
||||
|
@api.multi |
||||
|
@api.depends("owner_id", "owner_model") |
||||
|
def _show_technical(self): |
||||
|
"""Know if you need to show the technical fields.""" |
||||
|
self.show_technical = all( |
||||
|
"default_owner_%s" % f not in self.env.context |
||||
|
for f in ("id", "model")) |
||||
|
|
||||
|
@api.multi |
||||
|
def _get_image_from_db(self): |
||||
|
return self.file_db_store |
||||
|
|
||||
|
@api.multi |
||||
|
def _get_image_from_file(self): |
||||
|
if self.path and os.path.exists(self.path): |
||||
|
try: |
||||
|
with open(self.path, 'rb') as f: |
||||
|
return base64.b64encode(f.read()) |
||||
|
except Exception as e: |
||||
|
_logger.error("Can not open the image %s, error : %s", |
||||
|
self.path, e, exc_info=True) |
||||
|
else: |
||||
|
_logger.error("The image %s doesn't exist ", self.path) |
||||
|
|
||||
|
return False |
||||
|
|
||||
|
@api.multi |
||||
|
def _get_image_from_url(self): |
||||
|
return self._get_image_from_url_cached(self.url) |
||||
|
|
||||
|
@api.model |
||||
|
@tools.ormcache(skiparg=1) |
||||
|
def _get_image_from_url_cached(self, url): |
||||
|
"""Allow to download an image and cache it by its URL.""" |
||||
|
if url: |
||||
|
try: |
||||
|
(filename, header) = urllib.urlretrieve(url) |
||||
|
with open(filename, 'rb') as f: |
||||
|
return base64.b64encode(f.read()) |
||||
|
except: |
||||
|
_logger.error("URL %s cannot be fetched", url, |
||||
|
exc_info=True) |
||||
|
|
||||
|
return False |
||||
|
|
||||
|
@api.multi |
||||
|
@api.depends('image_main') |
||||
|
def _get_image_sizes(self): |
||||
|
for s in self: |
||||
|
try: |
||||
|
vals = tools.image_get_resized_images( |
||||
|
s.with_context(bin_size=False).image_main) |
||||
|
except: |
||||
|
vals = {"image_medium": False, |
||||
|
"image_small": False} |
||||
|
s.update(vals) |
||||
|
|
||||
|
@api.model |
||||
|
def _make_name_pretty(self, name): |
||||
|
return name.replace('_', ' ').capitalize() |
||||
|
|
||||
|
@api.onchange('url') |
||||
|
def _onchange_url(self): |
||||
|
if self.url: |
||||
|
filename = self.url.split('/')[-1] |
||||
|
self.name, self.extension = os.path.splitext(filename) |
||||
|
self.name = self._make_name_pretty(self.name) |
||||
|
|
||||
|
@api.onchange('path') |
||||
|
def _onchange_path(self): |
||||
|
if self.path: |
||||
|
self.name, self.extension = os.path.splitext(os.path.basename( |
||||
|
self.path)) |
||||
|
self.name = self._make_name_pretty(self.name) |
||||
|
|
||||
|
@api.onchange('filename') |
||||
|
def _onchange_filename(self): |
||||
|
if self.filename: |
||||
|
self.name, self.extension = os.path.splitext(self.filename) |
||||
|
self.name = self._make_name_pretty(self.name) |
||||
|
|
||||
|
@api.constrains('storage', 'url') |
||||
|
def _check_url(self): |
||||
|
if self.storage == 'url' and not self.url: |
||||
|
raise exceptions.ValidationError( |
||||
|
'You must provide an URL for the image.') |
||||
|
|
||||
|
@api.constrains('storage', 'path') |
||||
|
def _check_path(self): |
||||
|
if self.storage == 'file' and not self.path: |
||||
|
raise exceptions.ValidationError( |
||||
|
'You must provide a file path for the image.') |
||||
|
|
||||
|
@api.constrains('storage', 'file_db_store') |
||||
|
def _check_store(self): |
||||
|
if self.storage == 'db' and not self.file_db_store: |
||||
|
raise exceptions.ValidationError( |
||||
|
'You must provide an attached file for the image.') |
@ -0,0 +1,98 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# © 2014 Serv. Tecnol. Avanzados (http://www.serviciosbaeza.com) |
||||
|
# Pedro M. Baeza <pedro.baeza@serviciosbaeza.com> |
||||
|
# © 2015 Antiun Ingeniería S.L. - Jairo Llopis |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
||||
|
|
||||
|
from openerp import _, api, fields, models, tools |
||||
|
|
||||
|
|
||||
|
class Owner(models.AbstractModel): |
||||
|
_name = "base_multi_image.owner" |
||||
|
|
||||
|
image_ids = fields.One2many( |
||||
|
comodel_name='base_multi_image.image', |
||||
|
inverse_name='owner_id', |
||||
|
string='Images', |
||||
|
domain=lambda self: [("owner_model", "=", self._name)], |
||||
|
copy=True) |
||||
|
image_main = fields.Binary( |
||||
|
string="Main image", |
||||
|
store=False, |
||||
|
compute="_get_multi_image", |
||||
|
inverse="_set_multi_image_main") |
||||
|
image_main_medium = fields.Binary( |
||||
|
string="Medium image", |
||||
|
compute="_get_multi_image", |
||||
|
inverse="_set_multi_image_main_medium", |
||||
|
store=False) |
||||
|
image_main_small = fields.Binary( |
||||
|
string="Small image", |
||||
|
compute="_get_multi_image", |
||||
|
inverse="_set_multi_image_main_small", |
||||
|
store=False) |
||||
|
|
||||
|
@api.multi |
||||
|
@api.depends('image_ids') |
||||
|
def _get_multi_image(self): |
||||
|
"""Get the main image for this object. |
||||
|
|
||||
|
This is provided as a compatibility layer for submodels that already |
||||
|
had one image per record. |
||||
|
""" |
||||
|
for s in self: |
||||
|
first = s.image_ids[:1] |
||||
|
s.image_main = first.image_main |
||||
|
s.image_main_medium = first.image_medium |
||||
|
s.image_main_small = first.image_small |
||||
|
|
||||
|
@api.multi |
||||
|
def _set_multi_image(self, image=False, name=False): |
||||
|
"""Save or delete the main image for this record. |
||||
|
|
||||
|
This is provided as a compatibility layer for submodels that already |
||||
|
had one image per record. |
||||
|
""" |
||||
|
# Values to save |
||||
|
values = { |
||||
|
"storage": "db", |
||||
|
"file_db_store": tools.image_resize_image_big(image), |
||||
|
"owner_model": self._name, |
||||
|
} |
||||
|
if name: |
||||
|
values["name"] = name |
||||
|
|
||||
|
for s in self: |
||||
|
if image: |
||||
|
values["owner_id"] = s.id |
||||
|
# Editing |
||||
|
if s.image_ids: |
||||
|
s.image_ids[0].write(values) |
||||
|
# Adding |
||||
|
else: |
||||
|
values.setdefault("name", name or _("Main image")) |
||||
|
s.image_ids = [(0, 0, values)] |
||||
|
# Deleting |
||||
|
elif s.image_ids: |
||||
|
s.image_ids[0].unlink() |
||||
|
|
||||
|
@api.multi |
||||
|
def _set_multi_image_main(self): |
||||
|
self._set_multi_image(self.image_main) |
||||
|
|
||||
|
@api.multi |
||||
|
def _set_multi_image_main_medium(self): |
||||
|
self._set_multi_image(self.image_main_medium) |
||||
|
|
||||
|
@api.multi |
||||
|
def _set_multi_image_main_small(self): |
||||
|
self._set_multi_image(self.image_main_small) |
||||
|
|
||||
|
@api.multi |
||||
|
def unlink(self): |
||||
|
"""Mimic `ondelete="cascade"` for multi images.""" |
||||
|
images = self.mapped("image_ids") |
||||
|
result = super(Owner, self).unlink() |
||||
|
if result: |
||||
|
images.unlink() |
||||
|
return result |
@ -0,0 +1,2 @@ |
|||||
|
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" |
||||
|
"access_images","Manage multi images","model_base_multi_image_image","base.group_user",1,1,1,1 |
After Width: 128 | Height: 128 | Size: 15 KiB |
@ -0,0 +1,320 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
||||
|
|
||||
|
<svg |
||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/" |
||||
|
xmlns:cc="http://creativecommons.org/ns#" |
||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
||||
|
xmlns:svg="http://www.w3.org/2000/svg" |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
xmlns:xlink="http://www.w3.org/1999/xlink" |
||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
||||
|
id="svg2" |
||||
|
sodipodi:docname="icon.svg" |
||||
|
viewBox="0 0 128 128" |
||||
|
version="1.1" |
||||
|
inkscape:version="0.91 r" |
||||
|
width="128" |
||||
|
height="128" |
||||
|
inkscape:export-filename="icon.png" |
||||
|
inkscape:export-xdpi="90" |
||||
|
inkscape:export-ydpi="90"> |
||||
|
<title |
||||
|
id="title3056">Drawings Icon</title> |
||||
|
<defs |
||||
|
id="defs4"> |
||||
|
<linearGradient |
||||
|
id="linearGradient3840"> |
||||
|
<stop |
||||
|
id="stop3842" |
||||
|
style="stop-color:#008000" |
||||
|
offset="0" /> |
||||
|
<stop |
||||
|
id="stop3844" |
||||
|
style="stop-color:#9def9d" |
||||
|
offset="1" /> |
||||
|
</linearGradient> |
||||
|
<linearGradient |
||||
|
id="linearGradient3629"> |
||||
|
<stop |
||||
|
id="stop3631" |
||||
|
style="stop-color:#ffffff" |
||||
|
offset="0" /> |
||||
|
<stop |
||||
|
id="stop3633" |
||||
|
style="stop-color:#dedede" |
||||
|
offset="1" /> |
||||
|
</linearGradient> |
||||
|
<linearGradient |
||||
|
id="linearGradient3637" |
||||
|
y2="689.96997" |
||||
|
xlink:href="#linearGradient3629" |
||||
|
gradientUnits="userSpaceOnUse" |
||||
|
x2="355.06" |
||||
|
y1="627.34003" |
||||
|
x1="265.67999" |
||||
|
inkscape:collect="always" /> |
||||
|
<filter |
||||
|
id="filter3711" |
||||
|
inkscape:collect="always" |
||||
|
style="color-interpolation-filters:sRGB"> |
||||
|
<feGaussianBlur |
||||
|
id="feGaussianBlur3713" |
||||
|
stdDeviation="1.6175068" |
||||
|
inkscape:collect="always" /> |
||||
|
</filter> |
||||
|
<linearGradient |
||||
|
id="linearGradient3744" |
||||
|
y2="689.96997" |
||||
|
xlink:href="#linearGradient3629" |
||||
|
gradientUnits="userSpaceOnUse" |
||||
|
x2="355.06" |
||||
|
gradientTransform="matrix(0.77469246,0,0,0.77284478,74.87419,156.55306)" |
||||
|
y1="627.34003" |
||||
|
x1="265.67999" |
||||
|
inkscape:collect="always" /> |
||||
|
<linearGradient |
||||
|
inkscape:collect="always" |
||||
|
xlink:href="#linearGradient3629" |
||||
|
id="linearGradient4174" |
||||
|
gradientUnits="userSpaceOnUse" |
||||
|
x1="265.67999" |
||||
|
y1="627.34003" |
||||
|
x2="355.06" |
||||
|
y2="689.96997" /> |
||||
|
<linearGradient |
||||
|
inkscape:collect="always" |
||||
|
xlink:href="#linearGradient3629" |
||||
|
id="linearGradient4248" |
||||
|
gradientUnits="userSpaceOnUse" |
||||
|
x1="265.67999" |
||||
|
y1="627.34003" |
||||
|
x2="355.06" |
||||
|
y2="689.96997" /> |
||||
|
<linearGradient |
||||
|
inkscape:collect="always" |
||||
|
xlink:href="#linearGradient3629" |
||||
|
id="linearGradient4250" |
||||
|
gradientUnits="userSpaceOnUse" |
||||
|
x1="265.67999" |
||||
|
y1="627.34003" |
||||
|
x2="355.06" |
||||
|
y2="689.96997" /> |
||||
|
<linearGradient |
||||
|
inkscape:collect="always" |
||||
|
xlink:href="#linearGradient3629" |
||||
|
id="linearGradient4252" |
||||
|
gradientUnits="userSpaceOnUse" |
||||
|
gradientTransform="matrix(0.77469246,0,0,0.77284478,74.87419,156.55306)" |
||||
|
x1="265.67999" |
||||
|
y1="627.34003" |
||||
|
x2="355.06" |
||||
|
y2="689.96997" /> |
||||
|
<linearGradient |
||||
|
inkscape:collect="always" |
||||
|
xlink:href="#linearGradient3629" |
||||
|
id="linearGradient4266" |
||||
|
gradientUnits="userSpaceOnUse" |
||||
|
x1="265.67999" |
||||
|
y1="627.34003" |
||||
|
x2="355.06" |
||||
|
y2="689.96997" /> |
||||
|
<linearGradient |
||||
|
inkscape:collect="always" |
||||
|
xlink:href="#linearGradient3629" |
||||
|
id="linearGradient4268" |
||||
|
gradientUnits="userSpaceOnUse" |
||||
|
x1="265.67999" |
||||
|
y1="627.34003" |
||||
|
x2="355.06" |
||||
|
y2="689.96997" /> |
||||
|
<linearGradient |
||||
|
inkscape:collect="always" |
||||
|
xlink:href="#linearGradient3629" |
||||
|
id="linearGradient4270" |
||||
|
gradientUnits="userSpaceOnUse" |
||||
|
gradientTransform="matrix(0.77469246,0,0,0.77284478,74.87419,156.55306)" |
||||
|
x1="265.67999" |
||||
|
y1="627.34003" |
||||
|
x2="355.06" |
||||
|
y2="689.96997" /> |
||||
|
</defs> |
||||
|
<sodipodi:namedview |
||||
|
id="base" |
||||
|
fit-margin-left="0" |
||||
|
inkscape:zoom="11.2" |
||||
|
borderopacity="1.0" |
||||
|
inkscape:current-layer="layer1" |
||||
|
inkscape:cx="92.246275" |
||||
|
inkscape:cy="80.63155" |
||||
|
inkscape:window-maximized="1" |
||||
|
showgrid="false" |
||||
|
fit-margin-right="0" |
||||
|
inkscape:snap-nodes="false" |
||||
|
inkscape:document-units="px" |
||||
|
bordercolor="#666666" |
||||
|
inkscape:window-x="65" |
||||
|
inkscape:window-y="24" |
||||
|
fit-margin-bottom="0" |
||||
|
inkscape:window-width="1855" |
||||
|
inkscape:pageopacity="0.0" |
||||
|
inkscape:pageshadow="2" |
||||
|
pagecolor="#ffffff" |
||||
|
inkscape:window-height="1056" |
||||
|
fit-margin-top="0" /> |
||||
|
<g |
||||
|
id="layer1" |
||||
|
inkscape:label="Papers" |
||||
|
inkscape:groupmode="layer" |
||||
|
transform="translate(-254.06,-602.12)"> |
||||
|
<g |
||||
|
id="g4254" |
||||
|
transform="matrix(0.77433453,-0.17292855,0.17292855,0.77433453,-60.645266,215.27704)"> |
||||
|
<g |
||||
|
id="g4256" |
||||
|
transform="translate(2.4999999,3.9285715)"> |
||||
|
<path |
||||
|
id="path4258" |
||||
|
style="fill:url(#linearGradient4266);stroke:#000000;stroke-width:1px;filter:url(#filter3711)" |
||||
|
inkscape:connector-curvature="0" |
||||
|
d="m 266.18,625.07 80.307,-15.152 26.769,90.914 -87.883,17.678 -19.193,-93.439 z" /> |
||||
|
<path |
||||
|
id="path4260" |
||||
|
style="fill:url(#linearGradient4268)" |
||||
|
inkscape:connector-curvature="0" |
||||
|
d="m 266.18,625.07 80.307,-15.152 26.769,90.914 -87.883,17.678 -19.193,-93.439 z" /> |
||||
|
</g> |
||||
|
<path |
||||
|
sodipodi:nodetypes="ccccc" |
||||
|
id="path4262" |
||||
|
style="fill:url(#linearGradient4270);stroke:#b8b8b8;stroke-width:0.77376807" |
||||
|
inkscape:connector-curvature="0" |
||||
|
d="m 279.33626,638.76952 65.69064,-12.23055 17.78177,72.34343 -65.82128,12.79442 z" /> |
||||
|
<image |
||||
|
y="681.4696" |
||||
|
x="120.36314" |
||||
|
id="image4264" |
||||
|
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAAAAACPAi4CAAAACXZwQWcAAABAAAAAQADq8/hgAAAE WklEQVRYw9WX6XKjRhCAef8HiySQvGt5vfZuEselOUAcEpe4GdI9MAgQOjb5k3SVyzY1801PX9Ot Nf9StP80QJR5miRpXtb/AFCnvmMySgmhlJn2Mal+BSBSj1NCGeNSGAMOd0/iQYCI95TAXnm+FCr/ I2ZYPwJILEJhPaGm7flBFIW+Z5sUvwEivguovG7pMR0cV2e+BbYArF3cBqQclKfEvryvSB2KaHa6 BYhgDSP7ZN7gmUNQCf86wCdgcBaKq04/cTzAuwbA/czKb8VdZYMSI8IAEOJ+XjTiFkF4SDjOARII HLiBK+4E/xHOIdEloMSAAwZx7hEOBKIquwA4lFPbR/3uEhzCqSUmgBiwrGgeIlQm5b0zO0CN3yKw 34QgQC4JKZqrGAFC0MpWvuwJ3V6hWD3BI5wchoDaBAumzYQgmsrd7ewZx5bosHIAAAtQp4+nXUuA +2yXy9Xyi4OsIorjauBLZQWtd0Gqrt3EvCXQlb4BMZYfsPP7cr0gvS4FaNw6Qus0ovtez8DZcYyH t8Wmk9XWdF+Mjf570Ke4q46UgAgUCtX55mKl/wSbsD83hrEE0VGJ1RrEWHz2aaXuIAEe7b3SNG/6 01oSzL/W20/T2r2uDNACARvjWelZQTTaCiCg2vSR1bzrsFgSQMk8SbPi8FWX+0GFbX2OXMarDoAm OGfo+wpXt7cwj4Hv+1n+rSMYW3HOfS4TAgHZIDIVYG38wNzchyB+kj4ZUwB4npw6ABokmgA2qz9k fbIkoWDLzQSQ0tbw2gA20kA/nmyqCHG8nmqQd2prbSKQZAIwnk5B5PSE/EWfACCUZGFSgHQKeE6D sCcExfc5wKEDRLMaJHBwTwA/zFzhOLBBPGODoCfEyYUb0XVBB1AGHXvho/SVDsSjF15QrtMG1xlp sDbCrCewj7UxAWAJSjsAlJOuHI0AX9Mi8IMgsJnMC2MMOJA2f7RhXI8AG/2LVxZZVlQWmKElnAFi T5nMH62L67Mb3lTmbIzVK3Uc9r6GvJAEyMa6d0KXP1oXliqbRPPzN0NvBcrBAmSpr37wlrB8GeRS 6zkJECZVNRKeuLfty1C+wc/zp7TD9jVQN7DUDq2vkUEzfAymIl9uZ5iL1B0U1Rw7surmc4SE/sUB E3KaDB8Wd1QS7hJQga4Kayow2aAsXiV0L458HE/jx9UbPi33CIf+ITwDSnxM/IcIcAGIrHzaH+BX 8Ky4awdq41nBZYsjG4/kEQLjg9Q5A9A1jJ7u3CJEa1OzmuvSKgubwPA24IT7WT7fJ5YmEtwbASWO 2AkP94871WpPOCc8vmYHaORhv5lf75VrV3bD+9nZIrUJamhXN9v9kMlu3wonYVlGe9msU1/cGTgK px0YmO2fsrKq66rMk8Bh7dd99sDIk+xxxsE5icqhqfsLflkz1pkbukSCBzI5bqG0EGrPGvfK2FeG DseRi1I5eVFuB8WvDp51FvsH13Fcz4+y6n86Oz8kfwPMD02INEiadQAAAABJRU5ErkJggg== " |
||||
|
preserveAspectRatio="none" |
||||
|
height="73.870087" |
||||
|
width="66.013809" |
||||
|
transform="matrix(0.98201428,-0.18880665,0.23736204,0.97142126,0,0)" /> |
||||
|
</g> |
||||
|
<g |
||||
|
id="g4229" |
||||
|
transform="matrix(0.79340926,0,0,0.79340926,57.365182,120.76411)"> |
||||
|
<g |
||||
|
transform="translate(2.4999999,3.9285715)" |
||||
|
id="g3719"> |
||||
|
<path |
||||
|
d="m 266.18,625.07 80.307,-15.152 26.769,90.914 -87.883,17.678 -19.193,-93.439 z" |
||||
|
inkscape:connector-curvature="0" |
||||
|
style="fill:url(#linearGradient4174);stroke:#000000;stroke-width:1px;filter:url(#filter3711)" |
||||
|
id="path3689" /> |
||||
|
<path |
||||
|
d="m 266.18,625.07 80.307,-15.152 26.769,90.914 -87.883,17.678 -19.193,-93.439 z" |
||||
|
inkscape:connector-curvature="0" |
||||
|
style="fill:url(#linearGradient3637)" |
||||
|
id="path2851" /> |
||||
|
</g> |
||||
|
<path |
||||
|
d="m 279.33626,638.76952 65.69064,-12.23055 17.78177,72.34343 -65.82128,12.79442 z" |
||||
|
inkscape:connector-curvature="0" |
||||
|
style="fill:url(#linearGradient3744);stroke:#b8b8b8;stroke-width:0.77376807" |
||||
|
id="path3737" |
||||
|
sodipodi:nodetypes="ccccc" /> |
||||
|
<image |
||||
|
transform="matrix(0.98201428,-0.18880665,0.23736204,0.97142126,0,0)" |
||||
|
width="66.013809" |
||||
|
height="73.870087" |
||||
|
preserveAspectRatio="none" |
||||
|
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAAAAACPAi4CAAAACXZwQWcAAABAAAAAQADq8/hgAAAE WklEQVRYw9WX6XKjRhCAef8HiySQvGt5vfZuEselOUAcEpe4GdI9MAgQOjb5k3SVyzY1801PX9Ot Nf9StP80QJR5miRpXtb/AFCnvmMySgmhlJn2Mal+BSBSj1NCGeNSGAMOd0/iQYCI95TAXnm+FCr/ I2ZYPwJILEJhPaGm7flBFIW+Z5sUvwEivguovG7pMR0cV2e+BbYArF3cBqQclKfEvryvSB2KaHa6 BYhgDSP7ZN7gmUNQCf86wCdgcBaKq04/cTzAuwbA/czKb8VdZYMSI8IAEOJ+XjTiFkF4SDjOARII HLiBK+4E/xHOIdEloMSAAwZx7hEOBKIquwA4lFPbR/3uEhzCqSUmgBiwrGgeIlQm5b0zO0CN3yKw 34QgQC4JKZqrGAFC0MpWvuwJ3V6hWD3BI5wchoDaBAumzYQgmsrd7ewZx5bosHIAAAtQp4+nXUuA +2yXy9Xyi4OsIorjauBLZQWtd0Gqrt3EvCXQlb4BMZYfsPP7cr0gvS4FaNw6Qus0ovtez8DZcYyH t8Wmk9XWdF+Mjf570Ke4q46UgAgUCtX55mKl/wSbsD83hrEE0VGJ1RrEWHz2aaXuIAEe7b3SNG/6 01oSzL/W20/T2r2uDNACARvjWelZQTTaCiCg2vSR1bzrsFgSQMk8SbPi8FWX+0GFbX2OXMarDoAm OGfo+wpXt7cwj4Hv+1n+rSMYW3HOfS4TAgHZIDIVYG38wNzchyB+kj4ZUwB4npw6ABokmgA2qz9k fbIkoWDLzQSQ0tbw2gA20kA/nmyqCHG8nmqQd2prbSKQZAIwnk5B5PSE/EWfACCUZGFSgHQKeE6D sCcExfc5wKEDRLMaJHBwTwA/zFzhOLBBPGODoCfEyYUb0XVBB1AGHXvho/SVDsSjF15QrtMG1xlp sDbCrCewj7UxAWAJSjsAlJOuHI0AX9Mi8IMgsJnMC2MMOJA2f7RhXI8AG/2LVxZZVlQWmKElnAFi T5nMH62L67Mb3lTmbIzVK3Uc9r6GvJAEyMa6d0KXP1oXliqbRPPzN0NvBcrBAmSpr37wlrB8GeRS 6zkJECZVNRKeuLfty1C+wc/zp7TD9jVQN7DUDq2vkUEzfAymIl9uZ5iL1B0U1Rw7surmc4SE/sUB E3KaDB8Wd1QS7hJQga4Kayow2aAsXiV0L458HE/jx9UbPi33CIf+ITwDSnxM/IcIcAGIrHzaH+BX 8Ky4awdq41nBZYsjG4/kEQLjg9Q5A9A1jJ7u3CJEa1OzmuvSKgubwPA24IT7WT7fJ5YmEtwbASWO 2AkP94871WpPOCc8vmYHaORhv5lf75VrV3bD+9nZIrUJamhXN9v9kMlu3wonYVlGe9msU1/cGTgK px0YmO2fsrKq66rMk8Bh7dd99sDIk+xxxsE5icqhqfsLflkz1pkbukSCBzI5bqG0EGrPGvfK2FeG DseRi1I5eVFuB8WvDp51FvsH13Fcz4+y6n86Oz8kfwPMD02INEiadQAAAABJRU5ErkJggg== " |
||||
|
id="image4222" |
||||
|
x="120.36314" |
||||
|
y="681.4696" /> |
||||
|
</g> |
||||
|
<g |
||||
|
id="g4236" |
||||
|
transform="matrix(0.75185332,0.25340647,-0.25340647,0.75185332,272.3295,77.897414)"> |
||||
|
<g |
||||
|
id="g4238" |
||||
|
transform="translate(2.4999999,3.9285715)"> |
||||
|
<path |
||||
|
id="path4240" |
||||
|
style="fill:url(#linearGradient4248);stroke:#000000;stroke-width:1px;filter:url(#filter3711)" |
||||
|
inkscape:connector-curvature="0" |
||||
|
d="m 266.18,625.07 80.307,-15.152 26.769,90.914 -87.883,17.678 -19.193,-93.439 z" /> |
||||
|
<path |
||||
|
id="path4242" |
||||
|
style="fill:url(#linearGradient4250)" |
||||
|
inkscape:connector-curvature="0" |
||||
|
d="m 266.18,625.07 80.307,-15.152 26.769,90.914 -87.883,17.678 -19.193,-93.439 z" /> |
||||
|
</g> |
||||
|
<path |
||||
|
sodipodi:nodetypes="ccccc" |
||||
|
id="path4244" |
||||
|
style="fill:url(#linearGradient4252);stroke:#b8b8b8;stroke-width:0.77376807" |
||||
|
inkscape:connector-curvature="0" |
||||
|
d="m 279.33626,638.76952 65.69064,-12.23055 17.78177,72.34343 -65.82128,12.79442 z" /> |
||||
|
<image |
||||
|
y="681.4696" |
||||
|
x="120.36314" |
||||
|
id="image4246" |
||||
|
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAAAAACPAi4CAAAACXZwQWcAAABAAAAAQADq8/hgAAAE WklEQVRYw9WX6XKjRhCAef8HiySQvGt5vfZuEselOUAcEpe4GdI9MAgQOjb5k3SVyzY1801PX9Ot Nf9StP80QJR5miRpXtb/AFCnvmMySgmhlJn2Mal+BSBSj1NCGeNSGAMOd0/iQYCI95TAXnm+FCr/ I2ZYPwJILEJhPaGm7flBFIW+Z5sUvwEivguovG7pMR0cV2e+BbYArF3cBqQclKfEvryvSB2KaHa6 BYhgDSP7ZN7gmUNQCf86wCdgcBaKq04/cTzAuwbA/czKb8VdZYMSI8IAEOJ+XjTiFkF4SDjOARII HLiBK+4E/xHOIdEloMSAAwZx7hEOBKIquwA4lFPbR/3uEhzCqSUmgBiwrGgeIlQm5b0zO0CN3yKw 34QgQC4JKZqrGAFC0MpWvuwJ3V6hWD3BI5wchoDaBAumzYQgmsrd7ewZx5bosHIAAAtQp4+nXUuA +2yXy9Xyi4OsIorjauBLZQWtd0Gqrt3EvCXQlb4BMZYfsPP7cr0gvS4FaNw6Qus0ovtez8DZcYyH t8Wmk9XWdF+Mjf570Ke4q46UgAgUCtX55mKl/wSbsD83hrEE0VGJ1RrEWHz2aaXuIAEe7b3SNG/6 01oSzL/W20/T2r2uDNACARvjWelZQTTaCiCg2vSR1bzrsFgSQMk8SbPi8FWX+0GFbX2OXMarDoAm OGfo+wpXt7cwj4Hv+1n+rSMYW3HOfS4TAgHZIDIVYG38wNzchyB+kj4ZUwB4npw6ABokmgA2qz9k fbIkoWDLzQSQ0tbw2gA20kA/nmyqCHG8nmqQd2prbSKQZAIwnk5B5PSE/EWfACCUZGFSgHQKeE6D sCcExfc5wKEDRLMaJHBwTwA/zFzhOLBBPGODoCfEyYUb0XVBB1AGHXvho/SVDsSjF15QrtMG1xlp sDbCrCewj7UxAWAJSjsAlJOuHI0AX9Mi8IMgsJnMC2MMOJA2f7RhXI8AG/2LVxZZVlQWmKElnAFi T5nMH62L67Mb3lTmbIzVK3Uc9r6GvJAEyMa6d0KXP1oXliqbRPPzN0NvBcrBAmSpr37wlrB8GeRS 6zkJECZVNRKeuLfty1C+wc/zp7TD9jVQN7DUDq2vkUEzfAymIl9uZ5iL1B0U1Rw7surmc4SE/sUB E3KaDB8Wd1QS7hJQga4Kayow2aAsXiV0L458HE/jx9UbPi33CIf+ITwDSnxM/IcIcAGIrHzaH+BX 8Ky4awdq41nBZYsjG4/kEQLjg9Q5A9A1jJ7u3CJEa1OzmuvSKgubwPA24IT7WT7fJ5YmEtwbASWO 2AkP94871WpPOCc8vmYHaORhv5lf75VrV3bD+9nZIrUJamhXN9v9kMlu3wonYVlGe9msU1/cGTgK px0YmO2fsrKq66rMk8Bh7dd99sDIk+xxxsE5icqhqfsLflkz1pkbukSCBzI5bqG0EGrPGvfK2FeG DseRi1I5eVFuB8WvDp51FvsH13Fcz4+y6n86Oz8kfwPMD02INEiadQAAAABJRU5ErkJggg== " |
||||
|
preserveAspectRatio="none" |
||||
|
height="73.870087" |
||||
|
width="66.013809" |
||||
|
transform="matrix(0.98201428,-0.18880665,0.23736204,0.97142126,0,0)" /> |
||||
|
</g> |
||||
|
</g> |
||||
|
<g |
||||
|
id="layer4" |
||||
|
inkscape:label="Flower" |
||||
|
inkscape:groupmode="layer" |
||||
|
transform="translate(-254.06,-602.12)" /> |
||||
|
<metadata |
||||
|
id="metadata42"> |
||||
|
<rdf:RDF> |
||||
|
<cc:Work> |
||||
|
<dc:format>image/svg+xml</dc:format> |
||||
|
<dc:type |
||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
||||
|
<cc:license |
||||
|
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /> |
||||
|
<dc:publisher> |
||||
|
<cc:Agent |
||||
|
rdf:about="http://openclipart.org/"> |
||||
|
<dc:title>Openclipart</dc:title> |
||||
|
</cc:Agent> |
||||
|
</dc:publisher> |
||||
|
<dc:title>Drawings Icon</dc:title> |
||||
|
<dc:date>2012-01-29T15:13:42</dc:date> |
||||
|
<dc:description>Icon for Drawings/Pictures folder.</dc:description> |
||||
|
<dc:source>https://openclipart.org/detail/167547/drawings-icon-by-andreibranescu</dc:source> |
||||
|
<dc:creator> |
||||
|
<cc:Agent> |
||||
|
<dc:title>andreibranescu</dc:title> |
||||
|
</cc:Agent> |
||||
|
</dc:creator> |
||||
|
<dc:subject> |
||||
|
<rdf:Bag> |
||||
|
<rdf:li>Inkscape</rdf:li> |
||||
|
<rdf:li>drawings</rdf:li> |
||||
|
<rdf:li>icon</rdf:li> |
||||
|
<rdf:li>pictures</rdf:li> |
||||
|
</rdf:Bag> |
||||
|
</dc:subject> |
||||
|
</cc:Work> |
||||
|
<cc:License |
||||
|
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"> |
||||
|
<cc:permits |
||||
|
rdf:resource="http://creativecommons.org/ns#Reproduction" /> |
||||
|
<cc:permits |
||||
|
rdf:resource="http://creativecommons.org/ns#Distribution" /> |
||||
|
<cc:permits |
||||
|
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> |
||||
|
</cc:License> |
||||
|
</rdf:RDF> |
||||
|
</metadata> |
||||
|
</svg> |
@ -0,0 +1,142 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<openerp> |
||||
|
<data> |
||||
|
|
||||
|
<record id="image_form_view" model="ir.ui.view"> |
||||
|
<field name="name">Multi image form</field> |
||||
|
<field name="model">base_multi_image.image</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<form string="Image"> |
||||
|
<group> |
||||
|
<group |
||||
|
string="Owner" |
||||
|
attrs="{ |
||||
|
'invisible': [ |
||||
|
('show_technical', '=', False), |
||||
|
], |
||||
|
}"> |
||||
|
<field name="show_technical" invisible="True"/> |
||||
|
<field name="owner_model"/> |
||||
|
<field name="owner_id"/> |
||||
|
<field name="sequence"/> |
||||
|
</group> |
||||
|
<group string="Name"> |
||||
|
<field name="name"/> |
||||
|
<field name="storage"/> |
||||
|
<field name="extension"/> |
||||
|
</group> |
||||
|
</group> |
||||
|
<group> |
||||
|
<group string="Options"> |
||||
|
<field |
||||
|
name="url" |
||||
|
attrs="{ |
||||
|
'invisible': [('storage', '!=', 'url')], |
||||
|
'required': [('storage', '=', 'url')], |
||||
|
}" |
||||
|
widget="url"/> |
||||
|
<field |
||||
|
name="path" |
||||
|
attrs="{ |
||||
|
'invisible': [('storage', '!=', 'file')], |
||||
|
'required': [('storage', '=', 'file')], |
||||
|
}"/> |
||||
|
<field name="filename" invisible="1"/> |
||||
|
<field |
||||
|
name="file_db_store" |
||||
|
attrs="{ |
||||
|
'invisible': [('storage', '!=', 'db')], |
||||
|
'required': [('storage', '=', 'db')], |
||||
|
}" |
||||
|
filename="filename"/> |
||||
|
</group> |
||||
|
<group string="Preview"> |
||||
|
<field name="image_medium" |
||||
|
widget="image" |
||||
|
readonly="True" |
||||
|
nolabel="1" /> |
||||
|
</group> |
||||
|
</group> |
||||
|
<group string="Comments"> |
||||
|
<field name="comments" nolabel="1" /> |
||||
|
</group> |
||||
|
</form> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<record id="image_tree_view" model="ir.ui.view"> |
||||
|
<field name="name">Multi image tree</field> |
||||
|
<field name="model">base_multi_image.image</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<tree string="Images"> |
||||
|
<field name="name"/> |
||||
|
<field name="storage"/> |
||||
|
<field name="owner_model"/> |
||||
|
<field name="owner_id"/> |
||||
|
<field name="sequence" invisible="True"/> |
||||
|
</tree> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<record id="image_kanban_view" model="ir.ui.view"> |
||||
|
<field name="name">Product multi image kanban</field> |
||||
|
<field name="model">base_multi_image.image</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<kanban string="Product Images"> |
||||
|
<field name="name"/> |
||||
|
<field name="storage"/> |
||||
|
<field name="sequence"/> |
||||
|
<templates> |
||||
|
<t t-name="kanban-box"> |
||||
|
<div style="position: relative"> |
||||
|
<a t-if="! read_only_mode" |
||||
|
type="delete" |
||||
|
style="position: absolute; right: 0; padding: 4px; diplay: inline-block">X</a> |
||||
|
<div class="oe_module_vignette"> |
||||
|
<a type="open"> |
||||
|
<img |
||||
|
t-att-src="kanban_image( |
||||
|
'base_multi_image.image', |
||||
|
'image_small', |
||||
|
record.id.value)" |
||||
|
class="oe_kanban_image"/> |
||||
|
</a> |
||||
|
<div class="oe_module_desc"> |
||||
|
<div class="oe_kanban_box_content oe_kanban_color_bglight oe_kanban_color_border"> |
||||
|
<table class="oe_kanban_table"> |
||||
|
<tr> |
||||
|
<td class="oe_kanban_title1" |
||||
|
align="left" |
||||
|
valign="middle"> |
||||
|
<h4> |
||||
|
<a type="open"> |
||||
|
<field name="name"/> |
||||
|
</a> |
||||
|
</h4> |
||||
|
<field name="storage"/> |
||||
|
</td> |
||||
|
</tr> |
||||
|
</table> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</t> |
||||
|
</templates> |
||||
|
</kanban> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<record id="image_action" model="ir.actions.act_window"> |
||||
|
<field name="name">Multi images</field> |
||||
|
<field name="res_model">base_multi_image.image</field> |
||||
|
<field name="view_mode">kanban,tree,form</field> |
||||
|
</record> |
||||
|
|
||||
|
<menuitem |
||||
|
id="image_menu" |
||||
|
action="image_action" |
||||
|
parent="base.menu_config"/> |
||||
|
|
||||
|
</data> |
||||
|
</openerp> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue