← Back to team overview

c2c-oerpscenario team mailing list archive

[Bug 662493] Re: [TRUNK and 5.0] SLICE opcodes missing in safe_eval() (string[:])

 

Hi Anup,

Like Torvals said, this issue is present in v5.0 yet. Nhomar, maybe you
had applied Borja's patch, with his patch it works.

-- 
You received this bug notification because you are a member of C2C
OERPScenario, which is subscribed to the OpenERP Project Group.
https://bugs.launchpad.net/bugs/662493

Title:
  [TRUNK and 5.0] SLICE opcodes missing in safe_eval() (string[:])

Status in OpenERP Modules (addons):
  Fix Released
Status in OpenERP Addons 5.0 series:
  Fix Released
Status in OpenERP Addons trunk series:
  Fix Released

Bug description:
  Slice opcodes are missing in safe_eval, that means that you cannot use
  the string slice operator [:] in reports.

  For example [[ o.partner_id.vat[2:] ]] will fail.

  The missing opcodes are:

    SLICE+0    Implements TOS = TOS[:]. 
    SLICE+1    Implements TOS = TOS1[TOS:]. 
    SLICE+2    Implements TOS = TOS1[:TOS]. 
    SLICE+3    Implements TOS = TOS2[TOS1:TOS]. 

  
  --- Original report: ---

  Hello.

  We detected this error some time ago.

  As we know yo can put on line python functions between [[  ]] and on
  rml reports this was evaluated, at least until V5.0.12, right, we used
  this to take o the 2 first letters to the VAT number, for example in a
  report, the Vat number is in this way, VEJ123456789, for european
  countrie it is BEXXXXXXXXX, the 2 first letters are not necesary on
  some reports for this reason we use this on reports.

  [[ o.partner_id.vat[2:] ]]

  Last time it works was in 5.0.12, right now this kind of simply python
  functions on string are not working, and no error and no traceback...

  Thanks.

  How do i can try it?.

  Use the report "Overdue Payment" on partner.

  For trunk_
  account/report/account_print_overdue.rml

  In line 102:
            <para style="terp_default_9">[[ addr['street'] ]]</para>
  replace by
            <para style="terp_default_9">[[ addr['street'][:4] ]]</para>

  Go to customers> select China Export> Overdue Payments on Reports.

  Originaly it return:
  52 Chop Suey street (PDF1)

  With change it should return only the first 4 elements on string, I
  mean: "52 C" against this It is returning the function as if it have
  an error on sintax.(PDF2)

  You can try in V5 too, i dont think we need to develop a "parser" for
  a than simply function...

  If you try other like "upper()" this are working fne, speccially i
  don't know why it is happening.

  regards.



References