Web2py Rating Widget (5 из них и в одной строке)

У меня новая проблема.

Я уже сделал свой виджет, но теперь я хочу 5 рейтинговых виджетов для 5 категорий в моей базе данных.

У меня есть этот столбец в моей базе данных (с именем place.categ):

places.categ
       a
       b
       c
       d
       a
       e
       ....

У меня есть 21 маркер в моих Картах Google и каждый из них как категория. (a,b,c,d или e).

Как я могу связать 5 рейтинговых виджетов с этими 21 маркером по категории? Все, что я мог сделать, это:

db.define_table('product',
Field('A', 'integer',requires=IS_IN_SET(range(1,6))), 
   Field('B', 'integer',requires=IS_IN_SET(range(1,6))),
   Field('C', 'integer',requires=IS_IN_SET(range(1,6))),
   Field('D', 'integer',requires=IS_IN_SET(range(1,6))),
   Field('E', 'integer',requires=IS_IN_SET(range(1,6))))

У меня есть этот код в моей модели / db.py и этот в моих контроллерах / default.py:

from plugin_rating_widget import RatingWidget

# Inject the widgets
db.product.A.widget = RatingWidget()
db.product.B.widget = RatingWidget()
db.product.C.widget = RatingWidget()
db.product.D.widget = RatingWidget()
db.product.E.widget = RatingWidget()




# form2 = SQLFORM.factory(
   # Field('Rating','integer',widget=SQLFORM.widgets.RatingWidget))

   # if form2.process().accepted:
   #     print form2.vars.search



form2 = SQLFORM(db.product)
if form2.accepts(request.vars, session):
    session.flash = 'submitted %s' % form2.vars
    redirect(URL('index'))

У меня есть 5 рейтинговых виджетов, но они не связаны с моей базой данных, и они вертикальные (в 5 строк), а не в 1 строке, как я хотел тоже.

ТИА.

PS: у меня загружен виджет рейтинга плагинов.

1 ответ

Я решил по-другому. Я получаю цвета для каждой категории с этим кодом:

var amarelo = new google.maps.MarkerImage(
  "http://labs.google.com/ridefinder/images/mm_20_yellow.png",
  new google.maps.Size(12, 20),
  new google.maps.Point(0, 0),
  new google.maps.Point(6, 20));
var vermelho = new google.maps.MarkerImage(
  "http://labs.google.com/ridefinder/images/mm_20_red.png",
  new google.maps.Size(12, 20),
  new google.maps.Point(0, 0),
  new google.maps.Point(6, 20));
var verde = new google.maps.MarkerImage(
  "http://labs.google.com/ridefinder/images/mm_20_green.png",
  new google.maps.Size(12, 20),
  new google.maps.Point(0, 0),
  new google.maps.Point(6, 20));
var azul = new google.maps.MarkerImage(
  "http://labs.google.com/ridefinder/images/mm_20_blue.png",
  new google.maps.Size(12, 20),
  new google.maps.Point(0, 0),
  new google.maps.Point(6, 20));
var branco = new google.maps.MarkerImage(
  "http://labs.google.com/ridefinder/images/mm_20_white.png",
  new google.maps.Size(12, 20),
  new google.maps.Point(0, 0),
  new google.maps.Point(6, 20));
var sombra = new google.maps.MarkerImage(
  "http://labs.google.com/ridefinder/images/mm_20_shadow.png",
  new google.maps.Size(22, 20),
  new google.maps.Point(0, 0),
  new google.maps.Point(6, 20));

Я присвоил каждой категории один из следующих цветов (пример):

if (placescoordjs[i][4]== 'a')
    {
    marker = new google.maps.Marker({
        position: new google.maps.LatLng(placescoordjs[i][1],placescoordjs[i][2]),
        icon: amarelo, shadow: sombra,
        map: map,
        title: placescoordjs[i][3]
    });
    google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
            infowindow.setContent(placescoordjs[i][0]);
            infowindow.open(map, marker);
        }
    })(marker, i));
     }

У меня есть еще 3 "еще, если" и последний еще с окончательным цветом моей последней категории.

Спасибо, в любом случае.;)

Другие вопросы по тегам