db_mydb.my_table.location.represent = lambda value, row: XML('<span style="color:#EB0F0F">'%s</span>' % value )
On Thursday, 18 July 2013 11:37:57 UTC-5, Woody wrote: > > Hmm. I'm having a lot of trouble figuring out how to use 'represent'. > Let's try a different approach. Let's say I want to do this: > > db_mydb.my_table.location.represent = lambda "something") > > And the "something" I want to output would be XML('<span > style="color:#EB0F0F">' + row.location + '</span>') > > Now, how would I create the lambda function to do this and then, how would > I reference the .represent attribute: > > db_mydb.my_table.location.represent(?) > > to retrieve the value that I want? > > > On Thursday, July 18, 2013 8:57:56 AM UTC-4, Richard wrote: >> >> Ok, I see 2 possibility why it not working. 1) Cause you use TABLE(), you >> should try SQLTABLE or SQLFORM.gris. 2) LOAD(), since component strip all >> the style it may be possible that you can't see your stuff. >> >> You can try to just embed your table in a view without LOAD() like that >> {{=table}} see what happen. >> >> Then try SQLFORM.grid or SQLTABLE (that tend to be deprecated, but still >> help in many situation where SQLFORM.gris lack of flexibility). >> >> Richard >> >> >> On Wed, Jul 17, 2013 at 11:46 PM, Woody <myl...@woodring.us> wrote: >> >>> Ok, here's the format for my select and table creation: >>> >>> In the controller: >>> >>> rows = db_mydb(db_mydb.my_table).select() >>> fields = db_mydb.my_table.fields >>> headers = [list of headers] >>> >>> table = TABLE(THEAD(TR(*[B(header) for header in headers])), >>> TBODY(*[TR(*[TD(row[field]) for field in fields]) \ >>> for row in rows])) >>> table["_class"] = "table table-striped table-bordered table-condensed" >>> return dict(table=table) >>> >>> In the view: >>> >>> <div id="table" > >>> {{=LOAD('default','my_table_function',ajax=True, target='table')}} >>> </div> >>> >>> >>> >>> On Wednesday, July 17, 2013 11:10:35 PM UTC-4, Richard wrote: >>> >>>> Can you show us you select and the way you make your table and view? >>>> >>>> Richard >>>> >>>> >>>> On Wed, Jul 17, 2013 at 11:02 PM, Woody <myl...@woodring.us> wrote: >>>> >>>>> I don't see 'This is a test'. The table looks exactly the same as it >>>>> does without the represent statement. >>>>> >>>>> It doesn't matter what I put in the represent statement, If I have: >>>>> >>>>> db_mydb.my_table.location.**repr**esent=lambda location,row: >>>>> XML(T('This is a test')) >>>>> >>>>> 'This is a test' doesn't appear in the table. >>>>> >>>>> It also doesn't work if I put: >>>>> >>>>> db_mydb.my_table.location.**repr**esent=lambda location,row:T('This >>>>> is a test'). >>>>> >>>>> No matter what I put in the represent statement, my table looks the >>>>> same. I'm obviously doing something wrong, but I can't figure out what >>>>> it >>>>> is. >>>>> >>>>> >>>>> On Wednesday, July 17, 2013 7:34:13 PM UTC-4, Richard wrote: >>>>> >>>>>> I don't understand... Do you see : This is a test ?? You don't need >>>>>> XML() for use a simple T(), XML serve to escape special caracter and >>>>>> accentuated one, at least that my understanding. And of course there >>>>>> will >>>>>> be not change (all your value will be represent with : This is a test, >>>>>> since you don't take care of your location in your lambda. >>>>>> >>>>>> I never try to pass html tag in a represent except a A() helper, but >>>>>> I don't why it would not work. >>>>>> >>>>>> You don't really need XML in the code above (virtual field), try this >>>>>> : >>>>>> >>>>>> Field.Virtual('description_**for****matted', lambda row: >>>>>> SPAN(row.description, _style="color:#EB0F0F;"), >>>>>> >>>>>> or >>>>>> >>>>>> Field.Virtual('description_**for****matted', lambda row: >>>>>> TAG.span(row.description, _style="color:#EB0F0F;"), >>>>>> >>>>>> In case there is no SPAN helper (don't remember if there is SPAN() >>>>>> helper). >>>>>> >>>>>> Richard >>>>>> >>>>>> >>>>>> On Wed, Jul 17, 2013 at 5:55 PM, Woody <myl...@woodring.us> wrote: >>>>>> >>>>>>> 'represent' is not working for me. Here's my code: >>>>>>> >>>>>>> ----------------------- >>>>>>> db_mydb.define_table('my_**table**', >>>>>>> Field('ROWID', 'id'), >>>>>>> Field('location', 'string'), >>>>>>> Field('other_field', 'string'), >>>>>>> migrate=False) >>>>>>> >>>>>>> db_mydb.my_table.location.**repr**esent=lambda location,row: >>>>>>> XML(T('This is a test')) >>>>>>> ------------------------ >>>>>>> >>>>>>> Doesn't matter what I put in the represent declaration, the data >>>>>>> displayed in the table doesn't change. >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Wednesday, July 17, 2013 3:34:21 PM UTC-4, Richard wrote: >>>>>>> >>>>>>>> represent!! >>>>>>>> >>>>>>>> represent=lambda value, row: XML(...) if value is not None else >>>>>>>> T('N/A') >>>>>>>> >>>>>>>> Richard >>>>>>>> >>>>>>>> >>>>>>>> On Wed, Jul 17, 2013 at 3:24 PM, Woody <myl...@woodring.us> wrote: >>>>>>>> >>>>>>>>> I have a table definition that uses virtual fields with XML: >>>>>>>>> >>>>>>>>> db_mydb.define_table('my_**table****', >>>>>>>>> Field('ROWID', 'id'), >>>>>>>>> Field('location', 'string'), >>>>>>>>> Field('description', 'string', required=False), >>>>>>>>> Field.Virtual('description_**for****matted', >>>>>>>>> lambda row: XML('<span style="color:#EB0F0F">' + row.description + >>>>>>>>> '</span>'), >>>>>>>>> etc........ >>>>>>>>> >>>>>>>>> So, using Field.Virtual, I can pass XML with HTML tags to a table. >>>>>>>>> Is there a way to do this without having to create a virtual field? >>>>>>>>> In >>>>>>>>> other words, I'd like to be able to add HTML formatting in a normal >>>>>>>>> field >>>>>>>>> definition, using XML or helper functions. >>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> --- >>>>>>>>> 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+un...@**googlegroups.com. >>>>>>>>> >>>>>>>>> For more options, visit https://groups.google.com/**grou**** >>>>>>>>> ps/opt_out <https://groups.google.com/groups/opt_out>. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>> >>>>>>> --- >>>>>>> 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+un...@**googlegroups.com. >>>>>>> For more options, visit >>>>>>> https://groups.google.com/**grou**ps/opt_out<https://groups.google.com/groups/opt_out> >>>>>>> . >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> -- >>>>> >>>>> --- >>>>> 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+un...@**googlegroups.com. >>>>> For more options, visit >>>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >>>>> . >>>>> >>>>> >>>>> >>>> >>>> -- >>> >>> --- >>> 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+un...@googlegroups.com. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >> >> -- --- 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/groups/opt_out.