Compare commits

...

8 commits

Author SHA1 Message Date
Frederik Jaeckel
9d0001f262 Version 6.0.2 2023-01-23 13:13:29 +01:00
Frederik Jaeckel
a149f46dbb line: show image in tab 'image/pdf' 2023-01-23 13:11:54 +01:00
Frederik Jaeckel
3750a4b0f6 depends korrigiert 2022-12-30 23:02:04 +01:00
Frederik Jaeckel
89ad435e72 Etikett ver 6.0.1 zum Änderungssatz d6834c950d17 hinzugefügt 2022-11-29 10:37:14 +01:00
Frederik Jaeckel
51934f46bc Version 6.0.1 2022-11-29 10:37:05 +01:00
Frederik Jaeckel
fa526fa69e fix: exception beim hochladen eines unbekannten bildtypes 2022-11-29 10:30:39 +01:00
Frederik Jaeckel
6aa9bb5325 Etikett ver 6.0.0 zum Änderungssatz 0e8cb36121b5 hinzugefügt 2022-10-14 15:30:18 +02:00
Frederik Jaeckel
1286fa6f2f Version 6.0.0 2022-10-14 15:30:08 +02:00
9 changed files with 56 additions and 8 deletions

View file

@ -1,3 +1,6 @@
syntax: glob
__pycache__/*
locale/convert_de2en.py
build/*
mds_cashbook_media.egg-info/*
dist/*

View file

@ -14,6 +14,15 @@ Requires
Changes
=======
*6.0.2 - 23.01.2023*
- add: show image in tab 'image/pdf'
*6.0.1 - 29.11.2022*
- fix: exception when image type unknown
*6.0.0 - 14.10.2022*
- init

29
line.py
View file

@ -5,7 +5,7 @@
import mimetypes, magic
from io import BytesIO
from PIL import Image
from PIL import Image, UnidentifiedImageError
from trytond.model import fields
from trytond.pool import Pool, PoolMeta
from trytond.config import config
@ -28,20 +28,38 @@ except :
image_limit = 2000
STATES2 = {}
STATES2.update(STATES)
DEPENDS2 = []
DEPENDS2.extend(DEPENDS)
class Line(metaclass=PoolMeta):
__name__ = 'cashbook.line'
media = fields.Binary(string='Image of PDF', filename='media_name',
file_id='media_id', store_prefix=store_prefix,
states=STATES, depends=DEPENDS)
states=STATES2, depends=DEPENDS2)
media_name = fields.Char(string='File name',
states={
'required': Bool(Eval('media')),
'readonly': STATES['readonly'],
}, depends=DEPENDS)
'readonly': STATES2['readonly'],
}, depends=DEPENDS2)
media_id = fields.Char(string='File ID', readonly=True)
media_mime = fields.Char(string='MIME', readonly=True)
media_size = fields.Integer(string='File size', readonly=True)
media_image = fields.Function(fields.Binary(string='Image', readonly=True,
states={
'invisible': ~Eval('media_mime', '').in_(['image/png', 'image/jpg', 'image/jpeg']),
}, depends=['media_mime']),
'on_change_with_media_image')
@fields.depends('media', 'media_mime')
def on_change_with_media_image(self, name=True):
""" return binary if its a image
"""
if (self.media_mime or '-').startswith('image/'):
return self.media
@classmethod
def _identify_file(cls, data, mime=True):
@ -65,7 +83,10 @@ class Line(metaclass=PoolMeta):
"""
image_data2 = None
with BytesIO(image_data) as fhdl:
try :
image = Image.open(fhdl, 'r')
except UnidentifiedImageError:
raise UserError(gettext('cashbook_media.msg_file_unknown_type'))
(width, height) = image.size
if (width > image_limit) or (height > image_limit):

View file

@ -14,6 +14,10 @@ msgctxt "model:ir.message,text:msg_file_invalid_mime"
msgid "The file type '%(fmime)s' of the record '%(recname)s' is not allowed. (allowed: PNG, JPG, PDF)"
msgstr "Der Dateityp '%(fmime)s' des Datensatzes '%(recname)s' ist nicht zugelassen. (erlaubt: PNG, JPG, PDF)"
msgctxt "model:ir.message,text:msg_file_unknown_type"
msgid "cannot identify image file"
msgstr "Bilddatei kann nicht identifiziert werden"
#################
# cashbook.line #
@ -42,3 +46,6 @@ msgctxt "field:cashbook.line,media_size:"
msgid "File size"
msgstr "Dateigröße"
msgctxt "field:cashbook.line,media_image:"
msgid "Image"
msgstr "Bild"

View file

@ -10,6 +10,10 @@ msgctxt "model:ir.message,text:msg_file_invalid_mime"
msgid "The file type '%(fmime)s' of the record '%(recname)s' is not allowed. (allowed: PNG, JPG, PDF)"
msgstr "The file type '%(fmime)s' of the record '%(recname)s' is not allowed. (allowed: PNG, JPG, PDF)"
msgctxt "model:ir.message,text:msg_file_unknown_type"
msgid "cannot identify image file"
msgstr "cannot identify image file"
msgctxt "view:cashbook.line:"
msgid "Image/PDF"
msgstr "Image/PDF"

View file

@ -11,6 +11,9 @@ full copyright notices and license terms. -->
<record model="ir.message" id="msg_file_invalid_mime">
<field name="text">The file type '%(fmime)s' of the record '%(recname)s' is not allowed. (allowed: PNG, JPG, PDF)</field>
</record>
<record model="ir.message" id="msg_file_unknown_type">
<field name="text">cannot identify image file</field>
</record>
</data>
</tryton>

View file

@ -1,7 +1,8 @@
[tryton]
version=6.0.0
version=6.0.2
depends:
cashbook
xml:
message.xml
line.xml

View file

@ -1 +1 @@
cashbook;6.0.18;6.0.999;mds
cashbook;6.0.22;6.0.999;mds

View file

@ -13,10 +13,10 @@ full copyright notices and license terms. -->
<label name="media_name"/>
<field name="media_name"/>
<label name="media_mime"/>
<field name="media_mime"/>
<field name="media_image" readonly="1" colspan="4" widget="image" xexpand="1" yexpand="1"/>
</page>
</xpath>