← Back to team overview

c2c-oerpscenario team mailing list archive

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

 

I'm on revno 2144, i can see that on line left, olease add:

    'SLICE+0', 'SLICE+1', 'SLICE+2', 'SLICE+3',

on safe_eval.py on line 59....

Please folks, I know that we are hurry with change and We realy
appreciate that you answare and commit ver wuickly, but it must not
affect the quality control, it shows that th commiter in this case
jay(openerp) even don't try his own change, be carefull folks. Be
carefull, it can happend with worst things....

Regards, and thanks A LOT for the quick commit.

-- 
[TRUNK and 5.0] SLICE opcodes missing in safe_eval() (string[:])
https://bugs.launchpad.net/bugs/662493
You received this bug notification because you are a member of C2C
OERPScenario, which is subscribed to OpenERP OpenObject.

Status in OpenObject Addons Modules: Confirmed
Status in OpenObject Addons 5.0 series: Confirmed
Status in OpenObject Addons trunk series: Confirmed

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