The logic you have currently loops through and creates rows for all 
tcinputs for each timecard and that is why they are all the same.
 
I can think of 2 solutions:  
1) Keep your queries the same but add an if statement to determine which of 
the tcinputs apply:
 
 {{for timecard_entry in tcinputs:}}                                       
                                                                            
                                                                            
                                                                       
    {{if timecard_entry.timecard==timecard.id:}}                           
                                                                            
                                                                            
                                                                            
      
        <tr><td>{{=timecard_entry.company.name}}</td>....etc               
                                                                            
                                                                            
                                                                            
                  
    {{pass}}                                                               
                                                                            
                                                                            
                                              
{{pass}}
 
2) Make one query in the controller with something like tcrows = 
db(db.timecard_entry.timecard==db.timecard.id).select(orderby=~db.timecard.tc_date)
 
But then the code in the view is a little more complicated--you would need 
to check for when you reach a "new" timecard so that you know when to 
end/create your tables.  Also note that if you used this query, it contains 
fields from both tables so to access the variables you need to specify the 
tablename e.g. 
 {{for t in tcrows:}}             
    <tr><td><strong>{{=A(t.timecard.employee.fname, etc, etc
    <tr><td>{{=t.timecard_entry.company.name}}, etc, etc
{{pass}}


On Monday, December 2, 2013 9:20:38 PM UTC-8, Jesse Ferguson wrote:

>  I have two tables set up and i want to show the TimeCard with all the 
> entries for said time card however im unsure of how to create such a view...
>
> CONTOLLER:
>
> def timecard_index():
>     tcrows =db(db.timecard).select(orderby=~db.timecard.tc_date)
>     tcinputs =db(db.timecard_entry).select(orderby=db.timecard_entry.timecard)
>     return locals()
>
> MODEL:
>
> db.define_table('timecard',
>                 Field('tc_date','date'),
>                 Field('employee', 'reference 
> employee',requires=IS_IN_DB(db,'employee.id','%(fname)s %(lname)s')),
>                 Field('myid', unique=True, compute=lambda r: str(r.tc_date) + 
> str(r.employee))
>                 )
>
> db.define_table('timecard_entry',
>                 Field('timecard', 'reference timecard', readable=False, 
> writable=False,),
>                 Field('company', 'reference company', label='Company'),
>                 Field('tc_start', 'time', 
> requires=[IS_TIME(),IS_NOT_EMPTY()], label='Start'),
>                 Field('tc_stop', 'time', requires=[IS_TIME(),IS_NOT_EMPTY()], 
> label='Stop'),
>                 Field('st' , 'double', label='ST', default=0.0),
>                 Field('ot' , 'double', label='OT', default=0.0),
>                 Field('dt' , 'double', label='DT', default=0.0),
>                 Field('tc_classification' ,'string', label='Classification'),
>                 auth.signature)
>
> VIEW:
>
> {{for timecard in tcrows:}}
> <div class="well">
>     <table>
>         <tr><td><strong>{{=A(timecard.employee.fname +' 
> '+timecard.employee.lname,_href=URL('view_timecard',args=timecard.id))}} 
> {{=timecard.tc_date.strftime("%m.%d.%Y")}}</strong></td></tr>
>         {{for timecard_entry in tcinputs:}}
>         
> <tr><td>{{=timecard_entry.company.name}}</td><td>{{=timecard_entry.tc_start}}</td><td>{{=timecard_entry.tc_stop}}</td><td>{{=timecard_entry.st}}</td><td>{{=timecard_entry.ot}}</td><td>{{=timecard_entry.dt}}</td><td>{{=timecard_entry.tc_classification}}</td></tr>
>         {{pass}}
>      </table>
> </div>
> {{pass}}    
>
> This results in the same entries being put into each timecard (not the 
> correct ones), I know I'm missing something in the logic but I'm too green 
> of a programmer to see it... Im also not sure if im making the correct 
> query for tcinputs...
>

-- 
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