Tutorial - Criando um produto para Plone usando Archetypes
O que é Archetypes?
Archetypes é um framework projetado para facilitar a construção de aplicações para o Plone. Seu principal propósito é prover um método comum para construção de tipos de conteúdo baseados em definições de schema. Campos podem ser agrupados para edição, tornando muito simples a criação de formulários wizard.
O que Archetypes oferece?
Archetypes facilita nossa vida ao fazer o trabalho comum, massante e pesado, nos permitindo pensar em coisas mais importantes tais como regras de negócio e planejamento. Fornece as seguintes características:
- Auto-geração de edição e apresentação
- Registro de tipos de conteúdo com o CMF tools
- Fácil instalação do tipos de objetos gerados
- Configurabilidade de CMF actions
- Unique IDs
- References
- entre outros...
Schema
O princípio do archetype está na definição de schemas. Schema é o conjunto de campos (atributos), é a definição de um tipo. Quando definimos um schema, estamos definindo os campos que um objeto vai ter, como se estivessemos criando uma tabela. Em cada campo podemos definir seu tipo, permissão de escrita/leitura, se é requerido, se deve ser indexado, validadores, etc. O mais interessante é que além disto tudo, podemos definir como cada campo será visualizado/editado. Cada campo possui um widget que é responsável por renderizar o campo na tela.
Exemplo:
schema = Schema((
StringField(
name='contato',
widget=StringWidget(
label='Contato',
label_msgid='LocadoraVeiculos_label_contato',
i18n_domain='LocadoraVeiculos',
)
),
StringField(
name='CPF',
widget=StringWidget(
label='Cpf',
label_msgid='LocadoraVeiculos_label_CPF',
i18n_domain='LocadoraVeiculos',
)
),
TextField(
name='endereco',
widget=TextAreaWidget(
cols="50",
rows="4",
label='Endereco',
label_msgid='LocadoraVeiculos_label_endereco',
i18n_domain='LocadoraVeiculos',
)
),
),
)