default.py:
def products():
edit_in_form = 'edit' in request.args
db.product.price.writable = not edit_in_form
grid = SQLFORM.grid(db.product,
columns=[
db.product.name,
db.product.price,
],
)
return dict(
buttons=grid.gridbuttons,
grid=grid)
db.py:
db.define_table('product',
Field('name',length=512),
Field('user_id', db.auth_user),
Field('category'), #db.category
Field('price'),
)
db.product.category.widget = category.select_widget()
here's the widget itself:
def select_widget(self):
categories = self._db().select(
self._db[self._tablename].ALL,
orderby=self._db[self._tablename].lft
)
def widget(field, value, **attributes):
rgt = []
tree = []
attr = OptionsWidget._attributes(field, {}, **attributes)
values = re.compile('[\w\-:]+').findall(str(value))
if hasattr(field.requires, 'options'):
opts = []
options = field.requires.options()
tree.append(OPTION(_value="", _class="branch"))
for cat in categories:
if len(rgt) > 0:
if rgt[-1] > cat.rgt:
# open UL
pass
while rgt[-1] < cat.rgt:
rgt.pop()
if len(rgt) == 0:
break
s = ""
for i in range(len(rgt)):
s += " "
s += cat.name
branch = OPTION(
XML(s),
_value=cat.id,
_class="branch",
)
tree.append(branch)
rgt.append(cat.rgt)
seed = SELECT(**attr)
for branch in tree:
seed.append(branch)
return seed
return widget
On Wednesday, December 4, 2013 2:56:24 PM UTC+1, Anthony wrote:
>
> Doesn't sound right. Can you show your code?
>
> On Wednesday, December 4, 2013 5:11:25 AM UTC-5, Ivo wrote:
>>
>> Is there a way to default the option widget to the current field value?
>> The thing is that when you edit a form, the option widget always defaults
>> to empty (you need to make a selection even if the field already contains a
>> value). I'm quite sure a lot of users will not notice that the select is
>> empty, overriding the existing value upon save. They should however need to
>> be able to change the value if they choose to. I prefer to do it from the
>> controller side if possible.
>>
>>
--
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.