diff options
| author | Sébastien Theys <seb@odoo.com> | 2019-08-01 11:20:25 +0000 |
|---|---|---|
| committer | Sébastien Theys <seb@odoo.com> | 2019-08-02 16:44:47 +0000 |
| commit | 8206b5b4cc92b6befd98ebec7f7ef8af588a9b68 (patch) | |
| tree | 3d04cc7b07524124adcb26a1f61b3b326870476b /odoo/fields.py | |
| parent | ec32fd54595614ee8763ba82c5862d79a3e21897 (diff) | |
[IMP] fields: add image field
PR: #34925
Diffstat (limited to 'odoo/fields.py')
| -rw-r--r-- | odoo/fields.py | 29 |
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. |
