For this purpose they are not...I may include a field on printers table that inform the date I searching for.
If what I want to do in this page is still not clear I can try to explain more. basically its a grid that each TD have a bg-color dependant on it last date EmpresaTb = db.define_table("empresa", Field('nome_fantasia','string'), format='%(nome_fantasia)s' #migrate=False ) FilialTb = db.define_table("filial_empresa", Field('descricao_filial','string'), Field('endereco','string'), Field('telefone','string'), Field('Contato',default=''), Field('email','string'), Field('id_empresa','reference empresa'), format='%(descricao_filial)s', migrate=False ) FabricanteTb = db.define_table("fabricante", Field('nome_fabricante','string'), format='%(nome_fabricante)s' #migrate=False ) ModeloTb = db.define_table("modelo", Field('nome_modelo','string'), Field('id_fabricante','reference fabricante'), format='%(nome_modelo)s' #migrate=False ) ImpressoraTb = db.define_table("impressora", Field('serial','string'), Field('macaddress','string'), Field('id_modelo','reference modelo'), Field('id_filial_empresa','reference filial_empresa'), format=lambda r: r.serial or r.macaddress #migrate=False ) ContadoresTb = db.define_table("contadores", Field('printpb','integer'), Field('copypb','integer'), Field('printcolor','integer'), Field('copycolor','integer'), Field('singlecolor','integer'), Field('twocolor','integer'), Field('copysinglecolor','integer'), Field('copytwocolor','integer'), Field('scanner','integer'), Field('fax','integer'), Field('total','integer'), Field('data','date'), Field('hora','time'), Field('id_impressora','reference impressora') #Field('fkempresa','reference empresa'), #migrate=False ) Em quarta-feira, 16 de maio de 2012 16h50min35s UTC-3, Richard escreveu: > > Would you show your models... > > You make complexe queries, maybe your models are not pretty well design > for the purpose. > > Richard > > On Wed, May 16, 2012 at 3:22 PM, Fabiano Faver <far...@gmail.com> wrote: > >> But because of the group by clause it are too slow and I curious to know >> if I can query each company separately do what i must with the data and >> show the result on page as soon as they are ready >> >> >> 2012/5/16 Fabiano Faver <far...@gmail.com> >> >>> I'm trying to display a table with the name of some companies with the >>> background color of each TD or DIV dependent of the last day the printers >>> company were checked >>> >>> this it what I have now: >>> >>> def exibicao_empresas(): >>> #get companies >>> empr = db(auth.accessible_query('**read', db.empresa, >>> auth.user_id)).select() >>> tabela_empresa = TABLE( _class='grid_color') >>> tr = TR() >>> columns = 6 >>> count_cl = 0 >>> #for each company get all their printers and the last date it were >>> checked >>> for td in empr: >>> lista_1 = [] >>> count_menos = count_mais = 0 >>> #getting printers >>> impress = db((db.impressora.id_filial_**empresa== >>> db.filial_empresa.id)**&(db.filial_empresa.id_**empresa==td.id >>> ))._select(db.**impressora.id <http://db.impressora.id/>) >>> >>> quant_impressoras = len(impress) >>> maxdata = db.contadores.data.max() >>> #getting dates >>> dias = db(db.contadores.id_**impressora.belongs(impress)).**select( >>> maxdata,db.contadores.id_**impressora, groupby=db.contadores.id_** >>> impressora) >>> >>> # checking to show the indicative background-color >>> for dia in dias: >>> if (((dia_hoje-dia[maxdata]).days >= 1) and >>> ((dia_hoje-dia[maxdata]).days < 5)): count_menos = count_menos+1 >>> if ((dia_hoje-dia[maxdata]).days > 5): count_mais = >>> count_mais+1 >>> bg_td = 'background-color: #99FFCC' >>> if count_menos: bg_td = 'background-color: #EAEA9F' >>> if count_mais == len(dias): bg_td = 'background-color: #FF9999' >>> >>> tr.append(TD(td.nome_fantasia, _style = bg_td)) >>> count_cl = count_cl + 1 >>> if count_cl==columns: >>> tabela_empresa.append(tr) >>> tr=TR() >>> else: >>> if len(tr): tabela_empresa.append(tr) >>> >>> return dict(tabela_empresa =tabela_empresa ) >>> >>>> >>>> >> >