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 "еще, если" и последний еще с окончательным цветом моей последней категории.
Спасибо, в любом случае.;)