The problem is I need the values 'as displayed to the user'  for all
referenced fields. So I  need the represent value for some fields and do
not for others.

I was over thinking the problem and Cliff pointed me in the right
direction....Thanks as this appears to work.  Vars not Args

if '_export_type' not in request.vars:
        db.inventory.cpu_status.represent = lambda cpu_status, row: \
            SPAN(row.cpu_status,
                 _style='text-transform: uppercase; font-weight: bold;
padding:5px; color: %s; background-color: %s' %
                 ('black' if row.cpu_status == 'Staged' else 'white','red'
if row.cpu_status == 'Repair' else 'gold'
                 if row.cpu_status == 'Staged' else 'green' if
row.cpu_status == 'In Use' else 'black'))





On Wed, Apr 16, 2014 at 1:35 PM, Anthony <abasta...@gmail.com> wrote:

> Also, I believe CSV does not use the represent attribute (i.e., it returns
> the raw values) -- only TSV converts the values via represent. So, maybe
> just disable TSV.
>
> Anthony
>
>
> On Wednesday, April 16, 2014 1:29:30 PM UTC-4, Cliff Kachinske wrote:
>
>> There must be something in the request that indicates you want csv or tsv.
>>
>> If it's in the request.args, for example, something like this would work:
>>
>> if 'csv' not in request.args and 'tsv' not in request.args:
>>     db.inventory.cpu_status.represent = lambda cpu_status, row: SPAN(
>>        ...
>>
>> On Wednesday, April 16, 2014 12:58:12 PM UTC-4, John Fraser wrote:
>>>
>>> Is there an easy way to strip HTML markup from SQLFORM.grid's CSV/TSV
>>> export?  I realize I probably need to create a custom export function, but
>>> curious if there is an argument or a one liner that would do the trick.  Or
>>> is there a better way to format the display?
>>>
>>> I have the following controller function:
>>>
>>> @auth.requires_login()
>>> def index():
>>>     response.title = 'Computer Inventory'
>>>     db.inventory.id.readable = False
>>>     db.inventory.cpu_status.represent = lambda cpu_status, row: \
>>>         SPAN(row.cpu_status,
>>>              _style='text-transform: uppercase; font-weight: bold;
>>> padding:5px; color: %s; background-color: %s' %
>>>              ('black' if row.cpu_status == 'Staged' else 'white','red'
>>> if row.cpu_status == 'Repair' else 'gold'
>>>              if row.cpu_status == 'Staged' else 'green' if
>>> row.cpu_status == 'In Use' else 'black'))
>>>     grid = SQLFORM.grid(db.inventory, csv=True)
>>>     return locals()
>>>
>>>
>>> When I export as CSV/TSV (as displayed to the user) all values for
>>> db.inventory.cpu_status are wrapped in SPAN tags for example:
>>>
>>> <span style='text-transform: uppercase; font-weight: bold; padding:5px;
>>> color: white; background-color: black'>VALUE</span>
>>>
>>>
>>>  --
> Resources:
> - http://web2py.com
> - http://web2py.com/book (Documentation)
> - http://github.com/web2py/web2py (Source code)
> - https://code.google.com/p/web2py/issues/list (Report Issues)
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "web2py-users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/web2py/q7IC4wo_BE0/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> web2py+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to