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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to