Atma SCRUD
8 Junho, 2007
O trabalho para lançar o release 1.0 do Atma vai de vento em popa. Há preparativos por parte do Alexandre para o Atma suportar FastCGI e trabalhar lado-a-lado com o Lighttpd.
Eu por outro lado, estou trabalhando na interação direta com os usuários do atma. Estou criando um sistema de Scrud (Search, create, read, update, delete). Vejam este exemplo de código:
import atma.scrud as scrud
import orm# used to do deferred translations
_ = lambda a: a
class State(scrud.Scrud):
table = orm.State
createColumns = ['name', 'country', 'abbrev']
readColumns = ['id','name', 'abbrev', 'country']
searchColumns = ['name', 'country']
resultColumns = ['id', 'name', 'abbrev']
orderBy = 'name'
scrudColumns = [
scrud.ScrudColumn('id', _('ID')),
scrud.ScrudColumn('country', _('Country'), 'name'),
scrud.ScrudColumn('name', _('State Name')),
scrud.ScrudColumn('abbrev', _('Abbreviation'))
]
Este pedaço de código já cria o sistema de inclusão, edição, busca e deleção de registros de estados.
Explicando, você passa o mapeamento em table, declara as colunas do banco que deseja nos *Columns. Na variável scrudColumns, eu passo várias instâncias da classe scrudColumn, onde posso especializar as colunas, olha só:
scrud.ScrudColumn(‘name’, _(‘State Name’))
Aí, ‘name’ é a coluna do banco e ‘State Name’ é o label que ela vai ter quando criado o componente textinput para ela no html. Temos outro caso previsto, como a coluna ser uma chave estrangeira, caso disso:
scrud.ScrudColumn(‘country’, _(‘Country’), ‘name’),
O campo country é uma chave estrangeira para a tabela Country, apontando para o ID da tabela country. Mas não queremos mostrar IDs para o usuário, não é ? Então, o terceiro parâmetro é qual campo da tabela Country será exíbivel para o usuário no combo box. No caso, ‘name’ que é o nome do país.
Há inúmeras facilidades que irei mostrar ainda por aqui.
Página no sourceforge:
http://sourceforge.net/projects/atma
Entry Filed under: Uncategorized. .
2 Comments Add your own
Leave a Comment
Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Trackback this post | Subscribe to the comments via RSS Feed
1.
Hero | 10 Junho, 2007 at 4:47 pm
Qual a previsão para terminar a primeira versão ?
2.
lambdaspace | 10 Junho, 2007 at 5:03 pm
Cerca de 1 mês, estamos preparando o site e alguns features adicionais, aí faremos o lançamento da primeira versão