Na tabela dbatividade no campo assistente, gostaria que só fosse possível selecionar os usuários (da tabela auth_users) que estão descritos na dbassistente cujo evento seja digamos '7', tentei de varias formas mas o IS_IN_DB de dbatividade.assistente não enxerga o first_name da tabela auth_users, acaba retornando o código duas vezes no combobox.
Como fazer um combobox assumir valores de:
db((
db.auth_user.id == db.assistente.nome) and (db.assistente.evento=='7')).select()
exibindo id e first_name, mas armazenando apena o id?
=======================================================================
dbevento = db.define_table('evento',
Field('titulo',label='Título do Evento',requires = IS_NOT_EMPTY()),
Field('data_inicio','date',label='Data do Início',requires = IS_DATE()),
Field('data_fim','date',label='Data do Fim',requires = IS_DATE()),
Field('data_inicio_inscricao','date',label='Data do Início das Inscrições',requires = IS_DATE()),
Field('data_fim_inscricao','date',label='Data do Fim das Inscrições',requires = IS_DATE()),
Field('carga_horaria','integer',label='Carga Horária'),
Field('arquivo_template','upload',label='Template para a Submissão de Trabalhos'),
Field('numero_avaliadores','integer',label='Número de Avaliadores'),
Field('regras_submissao','upload',label='Regras de Submissão de Trabalhos'),
Field('max_submissao_por_autor','integer',label='Número Máximo de Submissões por Autor'),
Field('percentual_frequencia','integer',label='Percentual Mínimo de Frequência'),
Field('coordenador','reference auth_user',label='Coordenador do Evento',requires = IS_IN_DB(db,'
auth_user.id','%(id)s - %(first_name)s')),
auth.signature
)
#rows = db((
db.auth_user.id == db.assistente.nome) and (db.assistente.evento=='7')).select()
dbassistente = db.define_table('assistente',
Field('nome','reference auth_user',label='Nome do Assistente do Evento',requires = IS_IN_DB(db,'
auth_user.id','%(id)s - %(first_name)s')),
Field('evento','reference evento',label='',requires = IS_IN_DB(db,'
evento.id','%(id)s - %(titulo)s')),
#Field.Virtual('nome_assistente',lambda row: row.nome.auth_user.first_name),
auth.signature
)
dbatividade = db.define_table('atividade',
Field('descricao',label='Descrição da Atividade do Evento',requires = IS_NOT_EMPTY()),
Field('evento','reference evento',label='Evento',requires = IS_IN_DB(db,'
evento.id','%(id)s - %(titulo)s')),
Field('assistente','reference assistente',label='Nome do Assistente do Evento',requires = IS_IN_DB(db,'assistente.nome','%(id)s - %(nome)s')),
auth.signature
)