← Back to team overview

openerp-community team mailing list archive

Re: Image store problem in Odoo

 

Yannick,

if you are using a folder to store images you can overwrite product's img
method and return the correct path to the image.
Take a look at
https://github.com/odoo/odoo/blob/master/addons/website_sale/models/product.py#L197

then at your template call <img src="{{ img(product.id, field="something"
}} /> also you will need to add this method to values dict in main.py
controller.

Hope it helps,

Aristobulo




2014-06-11 10:43 GMT-04:30 Yannick Buron <yannick.buron@xxxxxxxxx>:

>  Thank you Sebastien, I think this is what we are all looking for.
>
> I am currently testing it for the marketplace module. I have the following
> error :
>
> Traceback (most recent call last):
>   File "/opt/openerp/oct-dev/server/openerp/http.py", line 470, in dispatch
>     result = self._call_function(**self.params)
>   File "/opt/openerp/oct-dev/server/openerp/http.py", line 294, in _call_function
>     return checked_call(self.db, *args, **kwargs)
>   File "/opt/openerp/oct-dev/server/openerp/service/model.py", line 113, in wrapper
>     return f(dbname, *args, **kwargs)
>   File "/opt/openerp/oct-dev/server/openerp/http.py", line 291, in checked_call
>     return self.endpoint(*a, **kw)
>   File "/opt/openerp/oct-dev/server/openerp/http.py", line 652, in __call__
>     return self.method(*args, **kw)
>   File "/opt/openerp/oct-dev/server/openerp/http.py", line 337, in response_wrap
>     response = f(*args, **kw)
>   File "/opt/openerp/oct-dev/web/addons/web/controllers/main.py", line 1046, in call_kw
>     return self._call_kw(model, method, args, kwargs)
>   File "/opt/openerp/oct-dev/web/addons/web/controllers/main.py", line 1038, in _call_kw
>     return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
>   File "/opt/openerp/oct-dev/addons/mail/mail_thread.py", line 419, in write
>     result = super(mail_thread, self).write(cr, uid, ids, values, context=context)
>   File "/opt/openerp/oct-dev/server/openerp/osv/orm.py", line 3946, in write
>     result += self._columns[field].set(cr, self, id, field, vals[field], user, context=rel_context) or []
>   File "/opt/openerp/oct-dev/server/openerp/osv/fields.py", line 1287, in set
>     self._fnct_inv(obj, cr, user, id, name, value, self._fnct_inv_arg, context)
>   File "/opt/openerp/oct-dev/server-env-tools/binary_field/fields.py", line 156, in _fnct_write
>     obj, cr, uid, ids, field_name, value, args, context=context)
>   File "/opt/openerp/oct-dev/server-env-tools/binary_field/fields.py", line 128, in _fnct_write
>     res = storage.add(value)
>   File "/opt/openerp/oct-dev/server-env-tools/binary_field/fields.py", line 61, in add
>     _file_write(self.cr, self.uid, self.location, value)
> TypeError: _file_write() takes exactly 4 arguments (5 given)
>
>
> I checked the server/openerp/base/ir/ir_attachment.py line 129, it seems that the function changed :
>    def _file_write(self, cr, uid, value):
>
> In general, all 'location' seems to have disappeared, in -file_read, _file_delete and _full_path.
>
> I am using the latest trunk file. I guess the module may correctly work on V7.
>
> Available this evening if you need.
> Yannick.
>
>
>
>
> Le 11/06/2014 15:43, Sebastien Beau a écrit :
>
> Hi all,
>
>  I worked on this during the last month and I need your feedback
> https://code.launchpad.net/~akretion-team/server-env-tools/server-env-tools
>
>  The aim of my first module is to implement new kind of fields
>
>  BinaryField
> ImageField
> ImageResizeField
>
>
>  All of this fields will be store on the file system by default and not
> in the
> database. If you want to store it on an other support (database, S3, ftp,
> SFTP...)
> Then you should create your own 'storage class' and use your custom
> 'storage
> class' instead
>
>  The default Storage class will store the field on the file system and
> build
> the path like that
>
>  BASE_LOCATION/DB_NAME/MODEL-FIELD/XXX/YYYYY
>
>  with
>
>  - BASE_LOCATION: the base location configured in ir.config_parameter
> - DB_NAME:  your database name
> - MODEL-FIELD: the concatenation of the name of the model with the name of
> the
> field, for example 'product_product-image'
> - XXX: the first 3 letter of the file name build with their sha1 hash
> - YYYYYY: file name build with their sha1 hash
>
>  Here is an example of field declaration
>
>      'binary_test': fields.BinaryField('Test Binary'),
>     'image_test': fields.ImageField('Test Image'),
>     'image_test_resize': fields.ImageResizeField(
>         related_field='image_test',
>         string='Test Image small',
>         height=64,
>         width=64,
>         ),
>
>
>
>  If you want to see to a real implementation take a look here :
>
> http://bazaar.launchpad.net/~akretion-team/openerp-product-attributes/openerp-product-attributes-product-image/view/head:/product_image/product_image.py#L38
>
>
>  You can also try this module to understand better the way it work. (Note
> resize field will be recomputed automatically as this field depend of
> refernce field)
>
>  As you can see I have a custom path based on the model-field. I need
> this because I want to serve some image directly from nginx without using
> OpenERP/Odoo. If I use the same path for all of the binary/image then I
> will be not able to choose what I want to share with nginx.
>
>
>  Hope this can help you.
>
>
> 2014-06-11 12:45 GMT+02:00 Falinwa Hans <hans.yonathan@xxxxxxxxxxx>:
>
>>  Hi Tony,
>>
>>
>>
>> Wow, I look on the code, and its very beautiful.
>>
>> Thanks for the solution, I think it will solved the problem for now.
>>
>> Very appreciated it.
>>
>> I remember that you developed oe_cn_fonts module too.
>>
>> It’s a great work.
>>
>>
>>
>> Hi Franck Bret,
>>
>>
>>
>> Thanks for the information, its nice to see that we have the same problem
>> in this topic.
>>
>>
>>
>>
>>
>> Thank You.
>>
>>
>>
>> Best Regards,
>>
>> *Hans Yonathan*
>>
>> *OpenERP Support*
>>
>> FALINWA Limited
>>
>> *Expert in Finance & Business Intelligence*
>>
>> *OpenERP Partner*
>>
>> *Website: **www.falinwa.com* <http://www.falinwa.com/>
>>
>>
>>
>> On 06/11/2014 06:28 PM, Tony Gu wrote:
>>
>>
>>
>> Hi Hans,
>>
>> You may be interested to have a look at our module here:
>> https://github.com/shine-it/product_image_filestore
>> The image on product can be save as an attachment of the product and
>> display correctly on the product form. If you have product image stored in
>> database already, this module will also extract the binary and store it
>> back to file store.
>>
>> Have fun!
>>
>>
>>
>>
>>
>> *From:* Franck Bret [via OpenERP Community] [mailto:[hidden email]
>> <http://user/SendEmail.jtp?type=node&node=4645761&i=0>]
>> *Sent:* Wednesday, June 11, 2014 6:31 PM
>>
>> *To:* Falinwa Hans
>> *Subject:* Re: [Openerp-community] Image store problem in Odoo
>>
>>
>>
>> there is a community call for discussion around this here, hope it helps
>>
>> https://twitter.com/Seb_Beau/status/474847322887974912
>>
>>
>> https://code.launchpad.net/~akretion-team/server-env-tools/server-env-tools
>>
>> Interesting read and module too here :
>>
>> https://bitbucket.org/anybox/advanced_attachment
>> http://docs.anybox.fr/advanced_attachment/current/
>>
>> Le 11/06/2014 11:48, Falinwa Hans a écrit :
>>
>>  Hi Yannick,
>>
>>
>>
>> Thx for your response.
>>
>> I see the code, and it’s a nice idea. I will keep it on myself.
>>
>>
>>
>> It will be nicer if the improvement is made from Odoo framework itself.
>>
>>
>>
>> Thank You.
>>
>>
>>
>> Best Regards,
>>
>> *Hans Yonathan*
>>
>> *OpenERP Support*
>>
>> FALINWA Limited
>>
>> *Expert in Finance & Business Intelligence*
>>
>> *OpenERP Partner*
>>
>> *Website: **www.falinwa.com* <http://www.falinwa.com/>
>>
>>
>>
>> *From:* Yannick Buron-2 [via OpenERP Community] [mailto:[hidden email]
>> <http://user/SendEmail.jtp?type=node&node=4645759&i=0>]
>> *Sent:* Wednesday, June 11, 2014 5:06 PM
>> *To:* Falinwa Hans
>> *Subject:* Re: [Openerp-community] Image store problem in Odoo
>>
>>
>>
>> +1 I have the same problem with the marketplace module in
>> communityTools. We need to have pictures displayed on the announcements,
>> and I really don't want to store them in database.
>>
>> I worked on the problem three month ago, and at this time the problem
>> was : There was no way to store the content of binary fields on the
>> ir.attachments, and thus store the content in filesystem.
>> When you set the ir_location key in system configuration, ir.attachments
>> are correctly stored in filesystem, the problem is really the fact that
>> there is no link between binary fields and ir.attachments.
>>
>> I tried to make a workaround in my module, please see
>>
>> http://bazaar.launchpad.net/~yannick-buron/openerp-communitytools/trunk/view/head:/marketplace/marketplace.py
>>
>> starting line 173. It almost work, the content is stored in filesystem,
>> but unfortunately then it's not displayed back correctly on the form in
>> the picture widget. I only spent some hours on this problem, so maybe
>> there is little to correct to make it works.
>>
>> This was an issue three month ago, with the ecommerce module I really
>> hope that Odoo SA worked on this because having such limitations on
>> binary fields is really a pain. Does someone have some news regarding
>> this matter?
>>
>> Yannick.
>>
>>
>> Le 11/06/2014 10:49, Falinwa Hans a écrit :
>>
>> > Hi Guys,
>> >
>> > I find that the image in Odoo is stored in database.
>> > Did we can change the configuration so it can stored in the file
>> system?
>> > I can't find the tutorial anywhere. So I think we cannot.
>> >
>> > What I know is we can change the configuration when we want to store
>> the
>> > attachment, but its different case in image.
>> >
>> > I think its an important feature for Odoo, importantly Odoo will have
>> an
>> > e-commerce and website builder feature which we will have a lot of
>> image in
>> > Odoo.
>> >
>> > I find that its very important and there's a problem when the image is
>> > stored in database :
>> > 1. Odoo not convert the size/resolution of the image. (We must warned
>> the
>> > end user to only just upload a small size of file, which usually user
>> always
>> > make a mistake)
>> > 2. Its very hard to make an importation on image
>> > 3. The database will be very big because of image, and it will be hard
>> to
>> > make a dump file(backup and restore) in web interface.
>> > (which end user always use this feature to make a test database which
>> image
>> > is not important in here)
>> >
>> > If we can change the configuration so we can store it in file system
>> and
>> > save the database only the name of file. We will have advantage:
>> > 1. It will be  easier to make an importation of image.
>> > 2. We will not care about file size anymore because it save on file
>> system.
>> > 3. The database size will reduce greatly.
>> >
>> > Before I have a problem in attachment, when my database size raise to 2
>> GB
>> > which impossible to make a dump(backup and restore) in web interface.
>> After
>> > I change the configuration the database size reduce greatly to only 30
>> MB.
>> > So I think this problem will occur again if we begin to upload the
>> image in
>> > Odoo.
>> >
>> > Is there any solution for this?
>> >
>> > Thank You.
>> >
>> >
>> >
>> >
>> > -----
>> > Hans Yonathan
>> > OpenERP Support
>> > FALINWA Limited
>> > Expert in Finance & Business Intelligence
>> > OpenERP Silver Partner
>> > Website: www.falinwa.com
>> >
>> > --
>> > View this message in context:
>> http://openerp-community.2306076.n4.nabble.com/Openerp-community-Image-store-problem-in-Odoo-tp4645755.html
>> > Sent from the OpenERP Community mailing list archive at Nabble.com.
>> >
>> > _______________________________________________
>> > Mailing list: https://launchpad.net/~openerp-community
>> > Post to     : [hidden email]
>> <http://user/SendEmail.jtp?type=node&node=4645757&i=0>
>> > Unsubscribe : https://launchpad.net/~openerp-community
>> > More help   : https://help.launchpad.net/ListHelp
>>
>>  _______________________________________________
>> Mailing list: https://launchpad.net/~openerp-community
>> Post to     : [hidden email]
>> <http://user/SendEmail.jtp?type=node&node=4645757&i=1>
>> Unsubscribe : https://launchpad.net/~openerp-community
>> More help   : https://help.launchpad.net/ListHelp
>> ------------------------------
>>
>> *If you reply to this email, your message will be added to the discussion
>> below:*
>>
>>
>> http://openerp-community.2306076.n4.nabble.com/Openerp-community-Image-store-problem-in-Odoo-tp4645755p4645757.html
>>
>> To start a new topic under OpenERP Community, email [hidden email]
>> <http://user/SendEmail.jtp?type=node&node=4645759&i=1>
>> To unsubscribe from OpenERP Community, click here.
>> NAML
>> <http://openerp-community.2306076.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>>
>>    Hans Yonathan
>> OpenERP Support
>> FALINWA Limited
>> Expert in Finance & Business Intelligence
>> OpenERP Silver Partner
>> Website: www.falinwa.com
>>
>>
>>   ------------------------------
>>
>> View this message in context: RE: [Openerp-community] Image store
>> problem in Odoo
>> <http://openerp-community.2306076.n4.nabble.com/Openerp-community-Image-store-problem-in-Odoo-tp4645755p4645759.html>
>> Sent from the OpenERP Community mailing list archive
>> <http://openerp-community.2306076.n4.nabble.com/> at Nabble.com.
>>
>>
>>
>>  _______________________________________________
>>
>> Mailing list: https://launchpad.net/~openerp-community
>>
>>  Post to     : [hidden email] <http://user/SendEmail.jtp?type=node&node=4645760&i=0>
>>
>>  Unsubscribe : https://launchpad.net/~openerp-community
>>
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>>
>>
>>   --
>>
>> Franck Bret
>>
>> ============
>>
>> Consultant fonctionel OpenErp
>>
>> ------------
>>
>>  [hidden email] <http://user/SendEmail.jtp?type=node&node=4645760&i=1>
>>
>> Gsm. 0603906598
>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~openerp-community
>> Post to     : [hidden email]
>> <http://user/SendEmail.jtp?type=node&node=4645760&i=2>
>> Unsubscribe : https://launchpad.net/~openerp-community
>> More help   : https://help.launchpad.net/ListHelp
>>
>>  ------------------------------
>>
>> *If you reply to this email, your message will be added to the discussion
>> below:*
>>
>>
>> http://openerp-community.2306076.n4.nabble.com/Openerp-community-Image-store-problem-in-Odoo-tp4645755p4645760.html
>>
>> To start a new topic under OpenERP Community, email [hidden email]
>> <http://user/SendEmail.jtp?type=node&node=4645761&i=1>
>> To unsubscribe from OpenERP Community, click here.
>> NAML
>> <http://openerp-community.2306076.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>>  Hans Yonathan
>> OpenERP Support
>> FALINWA Limited
>> Expert in Finance & Business Intelligence
>> OpenERP Silver Partner
>> Website: www.falinwa.com
>>
>> ------------------------------
>> View this message in context: RE: [Openerp-community] Image store
>> problem in Odoo
>> <http://openerp-community.2306076.n4.nabble.com/Openerp-community-Image-store-problem-in-Odoo-tp4645755p4645761.html>
>> Sent from the OpenERP Community mailing list archive
>> <http://openerp-community.2306076.n4.nabble.com/> at Nabble.com.
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~openerp-community
>> Post to     : openerp-community@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~openerp-community
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openerp-community
> Post to     : openerp-community@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~openerp-community
> More help   : https://help.launchpad.net/ListHelp
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openerp-community
> Post to     : openerp-community@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~openerp-community
> More help   : https://help.launchpad.net/ListHelp
>
>


-- 
La experiencia es la más dura maestra;
primero pone la prueba, luego dá la explicación...
-------------------------------------------------------------------------

Follow ups

References