mirror of
https://github.com/bringout/oca-storage.git
synced 2026-04-21 04:32:06 +02:00
Initial commit: OCA Storage packages (17 packages)
This commit is contained in:
commit
7a380f05d3
659 changed files with 41828 additions and 0 deletions
|
|
@ -0,0 +1 @@
|
|||
* Laurent Mignon <laurent.mignon@acsone.eu>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
This addon defines a new field **FSImage** to use in your models. It is a
|
||||
subclass of the **FSFile** field and comes with the same features. It extends
|
||||
the **FSFile** field with specific properties dedicated to images. On the field
|
||||
definition, the following additional properties are available:
|
||||
|
||||
* **max_width** (int): maximum width of the image in pixels (default: ``0``, no limit)
|
||||
* **max_height** (int): maximum height of the image in pixels (default: ``0``, no limit)
|
||||
* **verify_resolution** (bool):whether the image resolution should be verified
|
||||
to ensure it doesn't go over the maximum image resolution (default: ``True``).
|
||||
See `odoo.tools.image.ImageProcess` for maximum image resolution (default: ``50e6``).
|
||||
|
||||
On the field's value side, the value is an instance of a subclass of
|
||||
`odoo.addons.fs_file.fields.FSFileValue`. It extends the class to allows
|
||||
you to manage an alt_text for the image. The alt_text is a text that will be
|
||||
displayed when the image cannot be displayed.
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
16.0.1.0.3 (2024-02-23)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
- (`#305 <https://github.com/OCA/storage/issues/305>`_)
|
||||
|
||||
|
||||
16.0.1.0.2 (2023-12-02)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
- Fix view crash when uploading an image
|
||||
|
||||
The rawCacheKey is appropriately managed by the base class and reflects the
|
||||
record's last update datetime (write_date).
|
||||
Since it lacks a setter, attempting to invalidate its value results in a view crash.
|
||||
Nevertheless, the value will automatically be updated upon saving the record. (`#305 <https://github.com/OCA/storage/issues/305>`_)
|
||||
|
||||
|
||||
16.0.1.0.1 (2023-12-02)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
- Avoid to generate an SQL update query when an image field is read.
|
||||
|
||||
Fix a bug in the initialization of the image field value object when the field
|
||||
is read. Before this fix, every time the value object was initialized with
|
||||
an attachment, an assignment of the alt text was done into the constructor.
|
||||
This assignment triggered the mark of the field as modified and an SQL update
|
||||
query was generated at the end of the request. The alt text in the constructor
|
||||
of the FSImageValue class must only be used when the class is initialized without
|
||||
an attachment. We now check if an attachment and an alt text are provided at
|
||||
the same time and throw an exception if this is the case. (`#307 <https://github.com/OCA/storage/issues/307>`_)
|
||||
113
odoo-bringout-oca-storage-fs_image/fs_image/readme/USAGE.rst
Normal file
113
odoo-bringout-oca-storage-fs_image/fs_image/readme/USAGE.rst
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
This new field type can be used in the same way as the odoo 'Image' field type.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from odoo import models
|
||||
from odoo.addons.fs_image.fields import FSImage
|
||||
|
||||
class MyModel(models.Model):
|
||||
_name = 'my.model'
|
||||
|
||||
image = FSImage('Image', max_width=1920, max_height=1920)
|
||||
|
||||
|
||||
.. code-block:: xml
|
||||
|
||||
<record id="my_model_form" model="ir.ui.view">
|
||||
<field name="name">my.model.form</field>
|
||||
<field name="model">my.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<group>
|
||||
<field name="image" class="oe_avatar"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
In the example above, the image will be resized to 1920x1920px if it is larger than that.
|
||||
The widget used in the form view will also allow the user set an 'alt' text for the image.
|
||||
|
||||
|
||||
A mode advanced and useful example is the following:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from odoo import models
|
||||
from odoo.addons.fs_image.fields import FSImage
|
||||
|
||||
class MyModel(models.Model):
|
||||
_name = 'my.model'
|
||||
|
||||
image_1920 = FSImage('Image', max_width=1920, max_height=1920)
|
||||
image_128 = FSImage('Image', max_width=128, max_height=128, related='image_1920', store=True)
|
||||
|
||||
|
||||
.. code-block:: xml
|
||||
|
||||
<record id="my_model_form" model="ir.ui.view">
|
||||
<field name="name">my.model.form</field>
|
||||
<field name="model">my.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<group>
|
||||
<field
|
||||
name="image_1920"
|
||||
class="oe_avatar"
|
||||
options="{'preview_image': 'image_128', 'zoom': true}"
|
||||
/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
In the example above we have two fields, one for the original image and one for a thumbnail.
|
||||
As the thumbnail is defined as a related stored field it's automatically generated
|
||||
from the original image, resized at the given size and stored in the database.
|
||||
The thumbnail is then used as a preview image for the original image in the form view.
|
||||
The main advantage of this approach is that the original image is not loaded in the form view
|
||||
and the thumbnail is used instead, which is much smaller in size and faster to load.
|
||||
The 'zoom' option allows the user to see the original image in a popup when clicking on the thumbnail.
|
||||
|
||||
For convenience, the 'fs_image' module also provides a 'FSImageMixin' mixin class
|
||||
that can be used to add the 'image' and 'image_medium' fields to a model. It only
|
||||
define the medium thumbnail as a 128x128px image since it's the most common use case.
|
||||
When using an image field in a model, it's recommended to use this mixin class
|
||||
in order ensure that the 'image_medium' field is always defined. A good practice
|
||||
is to use the `image_medium` field as a preview image for the `image` field in
|
||||
the form view to avoid to overload the form view with a large image and consume
|
||||
too much bandwidth.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from odoo import models
|
||||
|
||||
class MyModel(models.Model):
|
||||
_name = 'my.model'
|
||||
_inherit = ['fs_image.mixin']
|
||||
|
||||
|
||||
.. code-block:: xml
|
||||
|
||||
<record id="my_model_form" model="ir.ui.view">
|
||||
<field name="name">my.model.form</field>
|
||||
<field name="model">my.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<group>
|
||||
<field
|
||||
name="image"
|
||||
class="oe_avatar"
|
||||
options="{'preview_image': 'image_medium', 'zoom': true}"
|
||||
/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
0
odoo-bringout-oca-storage-fs_image/fs_image/readme/newsfragments/.gitignore
vendored
Normal file
0
odoo-bringout-oca-storage-fs_image/fs_image/readme/newsfragments/.gitignore
vendored
Normal file
Loading…
Add table
Add a link
Reference in a new issue