No but I found a work around. I know this is probably not the best way to 
do this but here is a way to do this without any javascript. 


#Without styling gives the value numerically
db.define_table('my_table',
    Field('name', 'string', requires=[IS_NOT_EMPTY()]),
    Field('Rating', widget=SQLFORM.widgets.radio.widget, 
requires=IS_IN_SET({1 : '☆', 2 : '☆☆', 3 : '☆☆☆', 4: '☆☆☆☆', 5: '☆☆☆☆☆'})))

#with styling gives the value horizontally but a string output I believe.
db.define_table('my_table',
                Field('name', 'string', requires=[IS_NOT_EMPTY()]),
                Field('Rating', requires=IS_IN_SET ({1 : '☆', 2 : '☆☆', 3 : 
'☆☆☆', 4: '☆☆☆☆', 5: '☆☆☆☆☆'}, multiple=True),
                      widget=lambda field, value: 
SQLFORM.widgets.radio.widget(field, value, style='divs', label=True, 
_class="horizontal")))


In my controller I have:
def index():
    form = SQLFORM(db.my_table)
    if form.process().accepted:
        response.flash = 'record inserted'
    return dict(form=form,Ratings = form.vars.Rating)


View:
{{extend 'layout.html'}}
{{=form}}
{{=Ratings}}

<style>
  .web2py_radiowidget.horizontal {
            display: -ms-flexbox;
            display: -webkit-flex;
            display: flex;

        }
        
        .web2py_radiowidget.horizontal > div {
            margin-right: 3px;
            display: inline-block;
            color: Green;
        }

</style>




On Wednesday, January 27, 2016 at 6:13:10 PM UTC-5, Massimo Di Pierro wrote:
>
> did you put the script at the bottom of your html? If not, it gets 
> executed before the HTML exists and you have to wrap it in a 
> jQuery(function(){... });
>
> On Tuesday, 26 January 2016 13:31:06 UTC-6, Ron Chatterjee wrote:
>>
>> I probably need to invoke that jQuery routine in my controllers. My table 
>> is this:
>>
>>
>> db.define_table('song',
>>     Field('title'),
>>     Field('rating', 'integer', requires=IS_IN_SET(range(0, 6))),)
>>
>> Any example anyone can point me to get this jQuery to work.
>>
>>
>> On Tuesday, January 26, 2016 at 12:51:04 PM UTC-5, Massimo Di Pierro 
>> wrote:
>>>
>>> What you mean does not work.... I use this all the time:
>>> https://gist.github.com/mdipierro/f221957e002baa014c9a
>>>
>>> None of your fields contains "rating". you have to change the names of 
>>> the selector in the code 'input.rating,input[name*="rating"]' to make 
>>> it work with your fields.
>>>
>>> On Monday, 25 January 2016 12:14:13 UTC-6, Ron Chatterjee wrote:
>>>>
>>>> Since the star rating widget doesn't work, how we get this js to work 
>>>> for example if my database is:
>>>>
>>>> db.define_table('song',
>>>>     Field('title'),
>>>>     Field('voice_quality', 'integer',requires=IS_IN_SET(range(0, 6))),
>>>>     Field('highs_and_lows', 'integer',requires=IS_IN_SET(range(0, 6))), 
>>>>        
>>>>     Field('depth_and_sentiment', 'integer',requires=IS_IN_SET(range(0, 
>>>> 6))),)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Sunday, November 23, 2014 at 2:05:07 PM UTC-5, Niphlod wrote:
>>>>>
>>>>> simple and effective, if you don't care about graphic niceties. Also, 
>>>>> another example of "pre-minified" code ;-P 
>>>>> But I don't think this should go in web2py's core.
>>>>>
>>>>> On Sunday, November 23, 2014 7:23:07 PM UTC+1, Massimo Di Pierro wrote:
>>>>>>
>>>>>> Errata. You have to download it as "star.rating.js" into static/js 
>>>>>> and then include it as
>>>>>>
>>>>>> <script src="{{=URL('static','js/star.rating.js')}}"></script>
>>>>>>
>>>>>>
>>>>>> On Sunday, 23 November 2014 12:02:44 UTC-6, Massimo Di Pierro wrote:
>>>>>>>
>>>>>>> I have been very unsatisfied with existing star rating plugins. 
>>>>>>> First, they are too complex. Second, they required dedicated 
>>>>>>> fonts/images 
>>>>>>> while all the necessary symbols are already in unicode. So I made this:
>>>>>>>
>>>>>>>     https://gist.github.com/mdipierro/f221957e002baa014c9a
>>>>>>>
>>>>>>> Just add this code at the bottom of your views:
>>>>>>>
>>>>>>>     <script src="
>>>>>>> https://gist.github.com/mdipierro/f221957e002baa014c9a.js";></script>
>>>>>>>
>>>>>>> and all the fields with a name containing "rating" or input fields 
>>>>>>> having a class "rating" will be represented by a star 1-5 widget. 
>>>>>>> Perhaps we should make this default in web2py?
>>>>>>>
>>>>>>> Massimo
>>>>>>>  
>>>>>>>
>>>>>>

-- 
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