Criando componentes customizados para WEB2PY
Criando componentes customizados para WEB2PY
Bom amigos estou adotando o Web2py para desenvolver a maioria dos meus sistemas, o Web2py é um framework bastante ágil e full-stack, o que significa que não vou precisar de biblioteca de terceiros (pelo menos em sua maioria) para fazer o que preciso.
A template engine do framework nos dá alguns Helpers para fazermos desde uma simples tag HTML até tabelas com consulta e paginação prontas com formulários embutidos. Show de bola.
Porém a medida que a coisa vai crescendo se faz necessário criar seus próprios componentes, então temos duas opções, ou aproveitamos os recursos do Web2py ou fazemos tudo na unha.
Fazer tudo na unha é uma boa opção se quisermos usar o que fizemos com outros frameworks, se tivermos tempo e paciência isto não é tão mal. Mas....
Se utilizarmos os recursos do Web2py podemos simplesmente copiar a biblioteca de Helpers do Web2py para onde queremos e fazer o que bem entendermos, já que eles foram projetados para serem reaproveitados e portados.
Mão na massa.
Em um arquivo de módulo ou em seu arquivo de bibliotecas digite o código abaixo.
NOTA: É possível fazer isto de forma orientada a objetos, mas no meu caso não tinha muito tempo e fui fazendo em forma de funções, que podem ser reutilizadas depois.
Disponível em github: https://github.com/attiquetecnologia/python_librarys/blob/master/web2py/custom_helpers.py
Bom amigos estou adotando o Web2py para desenvolver a maioria dos meus sistemas, o Web2py é um framework bastante ágil e full-stack, o que significa que não vou precisar de biblioteca de terceiros (pelo menos em sua maioria) para fazer o que preciso.
A template engine do framework nos dá alguns Helpers para fazermos desde uma simples tag HTML até tabelas com consulta e paginação prontas com formulários embutidos. Show de bola.
Porém a medida que a coisa vai crescendo se faz necessário criar seus próprios componentes, então temos duas opções, ou aproveitamos os recursos do Web2py ou fazemos tudo na unha.
Fazer tudo na unha é uma boa opção se quisermos usar o que fizemos com outros frameworks, se tivermos tempo e paciência isto não é tão mal. Mas....
Se utilizarmos os recursos do Web2py podemos simplesmente copiar a biblioteca de Helpers do Web2py para onde queremos e fazer o que bem entendermos, já que eles foram projetados para serem reaproveitados e portados.
Mão na massa.
Em um arquivo de módulo ou em seu arquivo de bibliotecas digite o código abaixo.
NOTA: É possível fazer isto de forma orientada a objetos, mas no meu caso não tinha muito tempo e fui fazendo em forma de funções, que podem ser reutilizadas depois.
def btn_acao(nome='',acao=None,target=None,data_target=None,tipo='default',role='button',titulo='default'): tipos = {'default':'btn-default','edit':'btn-success','del':'btn-danger' ,'view':'btn-warning','search':'btn-info','refresh':'btn-default','add':'btn-primary' ,'save':'btn-primary','close':'btn-danger','confirm':'btn-success'} icones = {'default':'','edit':'glyphicon glyphicon-edit' ,'del':'glyphicon glyphicon-trash','search':'glyphicon glyphicon-search' ,'refresh':'glyphicon glyphicon-refresh','view':'glyphicon glyphicon-zoom-in' ,'add':'glyphicon glyphicon-plus','save':'glyphicon glyphicon-save' ,'close':'glyphicon glyphicon-remove','confirm':'glyphicon glyphicon-ok'} titulos = {'default':'','edit':'Editar','del':'Excluir','view':'Visualizar' ,'search':'Pesquisar','refresh':'Atualisar','add':'Adicionar','save':'Salvar' ,'close':'Fechar','confirm':'Confirmar'} click = acao return TAG.button( TAG.span(_class=icones[tipo]) if tipo != 'default' else '' ,nome ,_class='btn ' + tipos[tipo] or 'btn-default' ,_type=role ,_title=titulos[tipo] if tipo != 'default' else '' , _onClick=click ,**{"_data-target":data_target,"_target":target} )
btn_acao(nome="Cancelar", acao=A(_href=URL(...)), tipo="close", titulo="Cancelar")
Disponível em github: https://github.com/attiquetecnologia/python_librarys/blob/master/web2py/custom_helpers.py
Comentários
Postar um comentário