← Back to team overview

openerp-community team mailing list archive

Re: Image store problem in Odoo

 

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 <https://code.launchpad.net/%7Eakretion-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 <http://bazaar.launchpad.net/%7Eakretion-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 <mailto: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
    <https://code.launchpad.net/%7Eakretion-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
        <http://bazaar.launchpad.net/%7Eyannick-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 <http://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
        <https://launchpad.net/%7Eopenerp-community>
        > Post to     : [hidden email]
        <http://user/SendEmail.jtp?type=node&node=4645757&i=0>
        > Unsubscribe : https://launchpad.net/~openerp-community
        <https://launchpad.net/%7Eopenerp-community>
        > More help   : https://help.launchpad.net/ListHelp

        _______________________________________________
        Mailing list: https://launchpad.net/~openerp-community
        <https://launchpad.net/%7Eopenerp-community>
        Post to     : [hidden email]
        <http://user/SendEmail.jtp?type=node&node=4645757&i=1>
        Unsubscribe : https://launchpad.net/~openerp-community
        <https://launchpad.net/%7Eopenerp-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 <http://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  <https://launchpad.net/%7Eopenerp-community>

    Post to     :[hidden email]  <http://user/SendEmail.jtp?type=node&node=4645760&i=0>

    Unsubscribe :https://launchpad.net/~openerp-community  <https://launchpad.net/%7Eopenerp-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
    <https://launchpad.net/%7Eopenerp-community>
    Post to     : [hidden email]
    <http://user/SendEmail.jtp?type=node&node=4645760&i=2>
    Unsubscribe : https://launchpad.net/~openerp-community
    <https://launchpad.net/%7Eopenerp-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 <http://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
    <https://launchpad.net/%7Eopenerp-community>
    Post to     : openerp-community@xxxxxxxxxxxxxxxxxxx
    <mailto:openerp-community@xxxxxxxxxxxxxxxxxxx>
    Unsubscribe : https://launchpad.net/~openerp-community
    <https://launchpad.net/%7Eopenerp-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


Follow ups

References