Sorry typo. Let's try again:
db.define_table('store_catalog',
Field('title'),
Field('slug',requires=IS_SLUG(),compute=lambda row:
IS_SLUG.urlify(row.titl\
e)),
Field('parent_id','reference store_catalog'))
id1 = db.store_catalog.insert(title='main')
id2 = db.store_catalog.insert(title='one',parent_id=id1)
id3 = db.store_catalog.insert(title='two',parent_id=id2)
def menu_rec(items): return
[(x.title,None,URL('action',args=x.slug),menu_rec(x\
.children)) for x in items or []]
response.menu = menu_rec(db(db.store_catalog).select().as_trees())
print response.menu
On Tuesday, 21 January 2014 12:17:19 UTC-6, web2pygroup wrote:
>
> Here's what I've tried so far and here's the results if it helps any to
> get me on the right track, plus I hope this helps someone else looking for
> this to because this is something very commonly done in PHP.
>
> I have tried changing this:
> response.menu3[-1]+=([[(T(subcat.subcategory)), False, 'link',]])
>
> to this:
> response.menu3[-1]+=([(T(subcat.subcategory)), False, 'link',])
>
> Which changes the output in the shell to:
> [<lazyT 'Catalog'>,
> False,
> '',
> [<lazyT 'Animals'>,
> False,
> 'link',
> <lazyT 'Dogs'>,
> False,
> 'link',
> <lazyT 'Cats'>,
> False,
> 'link']]
>
> Which obviously isn't correct.
>
> Continuing:
>
> original:
> response.menu3[-1]+=([[(T(subcat.subcategory)), False, 'link',]])
>
> to this:
> response.menu3+=([[(T(subcat.subcategory)), False, 'link',]])
>
> Gives this in the shell output:
> [<lazyT 'Catalog'>,
> False,
> '',
> [<lazyT 'Animals'>, False, 'link'],
> [<lazyT 'Dogs'>, False, 'link'],
> [<lazyT 'Cats'>, False, 'link']]
>
> Again obviously incorrect. Continuing:
>
> original:
> response.menu3+=([[(T(subcat.subcategory)), False, 'link',]])
>
> changed:
> response.menu3[-1]+=((T(subcat.subcategory)), False, 'link',)
>
> Shell output shows:
> [<lazyT 'Catalog'>,
> False,
> '',
> [<lazyT 'Animals'>,
> False,
> 'link',
> <lazyT 'Dogs'>,
> False,
> 'link',
> <lazyT 'Cats'>,
> False,
> 'link']]
>
> I tried additional variations but, not sure how much space we have here to
> keep going with my 2 weeks worth of work. Essentially the end result is
> the same a bracket missing to seperate the subcategories. I've been able
> to modify and add to lists before, however I've never really experienced a
> situation where the negative slice appears to be ignored (removing the
> bracket at the end of dogs and beginning of cats as it is doing for the
> main category Animals as can be seen), even removed the negative slice
> ([-1]) for the main categories iteration and when I do it clearly shows
> that it is actually doing the negative slice properly because the brackets
> come back at the end of Animals, unlike the subcategories that do not
> appear to be removing the bracket(s)
>
>
> On Monday, January 20, 2014 2:33:50 PM UTC-6, web2pygroup wrote:
>>
>>
>> Hi all,
>>
>> I have been trying for a little over 2 weeks to figure this out...
>>
>> I'm trying to generate a menu that drops down, I have been able to
>> statically create it by overwriting sample app that has the same drop down
>> menu like the web2py.com site.
>>
>> I have this in my db.py:
>> db.define_table('store_catalog',
>> Field('maincategory', 'string'),
>> Field('subcategory', 'string'),
>> Field('description', 'text'))
>>
>>
>> in my menu.py I have gotten this so far:
>> response.menu=[]
>> response.menu.append([T('Catalog'), False, '',
>> [(T('%s' % menucatchoice['maincategory']), False, 'link',
>> [(T('%s' % menucatchoice['subcategory']), False,
>> 'link'),]) for menucatchoice in rows ] ])
>>
>> It gets me a drop down menu except that for each subcategory it repeats
>> adding it to the main category. Let's say there is only 1 main category and
>> 2 subs that go after that
>> Catalog (this just shows with the caret next to it as intended)
>> MainCategory
>> Sub
>> Sub
>> What I have does put the "Catalog" for the first but, what I get is:
>> MainCategory
>> (blank)
>> MainCategory(don't want this it's being repeated)
>> Subcategory
>> MainCategory(and this one is also a repeat)
>> Subcategory
>>
>> I have tried to break out the response.menu with so many different
>> .appends it's not funny. I have also tried adding the "[-1]". This was
>> the closest I have gotten to what I want it to look like. I'm at an
>> absolute loss on this, any and all help would be greatly appreciated.
>>
>
--
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.