summaryrefslogtreecommitdiff
path: root/odoo/fields.py
diff options
context:
space:
mode:
authorSébastien Theys <seb@odoo.com>2019-08-01 11:20:25 +0000
committerSébastien Theys <seb@odoo.com>2019-08-02 16:44:47 +0000
commit8206b5b4cc92b6befd98ebec7f7ef8af588a9b68 (patch)
tree3d04cc7b07524124adcb26a1f61b3b326870476b /odoo/fields.py
parentec32fd54595614ee8763ba82c5862d79a3e21897 (diff)
[IMP] fields: add image field
PR: #34925
Diffstat (limited to 'odoo/fields.py')
-rw-r--r--odoo/fields.py29
1 files changed, 28 insertions, 1 deletions
diff --git a/odoo/fields.py b/odoo/fields.py
index 41779826d6e..8d866204765 100644
--- a/odoo/fields.py
+++ b/odoo/fields.py
@@ -23,7 +23,7 @@ except ImportError:
import psycopg2
from .tools import float_repr, float_round, frozendict, html_sanitize, human_size, pg_varchar, \
- ustr, OrderedSet, pycompat, sql, date_utils, unique, IterableGenerator
+ ustr, OrderedSet, pycompat, sql, date_utils, unique, IterableGenerator, image_process
from .tools import DEFAULT_SERVER_DATE_FORMAT as DATE_FORMAT
from .tools import DEFAULT_SERVER_DATETIME_FORMAT as DATETIME_FORMAT
from .tools.translate import html_translate, _
@@ -1906,6 +1906,33 @@ class Binary(Field):
atts.unlink()
+class Image(Binary):
+ _slots = {
+ 'max_width': 0,
+ 'max_height': 0,
+ }
+
+ def create(self, record_values):
+ new_record_values = []
+ for record, value in record_values:
+ new_record_values.append((record, self._image_process(value)))
+ super(Image, self).create(new_record_values)
+
+ def write(self, records, value):
+ value = self._image_process(value)
+ super(Image, self).write(records, value)
+
+ def _image_process(self, value):
+ if value and (self.max_width or self.max_height):
+ value = image_process(value, size=(self.max_width, self.max_height))
+ return value
+
+ def _compute_related(self, records):
+ super(Image, self)._compute_related(records)
+ for record in records:
+ record[self.name] = self._image_process(record[self.name])
+
+
class Selection(Field):
"""
:param selection: specifies the possible values for this field.