source: publico/il.spdo/trunk/il/spdo/browser/forms/pessoa.py @ 5932

Última Alteração nesse arquivo desde 5932 foi 5932, incluída por fabianosantos, 7 anos atrás

Finalizado a validacao de cep, email, cpf e cnpj no cadastro de pessoas.

File size: 2.6 KB
Linha 
1# -*- coding: utf-8 -*-
2
3from five import grok
4from zope.component import getUtility
5from plone.app.layout.navigation.interfaces import INavigationRoot
6
7from il.spdo.browser.forms import base
8from il.spdo.config import MessageFactory as _
9from il.spdo.config import Session
10from il.spdo.interfaces import IPessoa
11from il.spdo.db import Pessoa
12from il.spdo.log import log
13from il.spdo.interfaces import ISecurityChecker
14
15class PessoaAddForm(base.AddForm):
16    """Formulário de cadastro de uma pessoa.
17    """
18
19    grok.context(INavigationRoot)
20    grok.name('add-pessoa')
21    grok.require('zope2.View')
22
23    schema = IPessoa
24    klass = Pessoa
25    label = _(u'Adicionar Pessoa')
26    description = _(u'Formulário de cadastro de uma pessoa.')
27
28    def update(self):
29        sc = getUtility(ISecurityChecker)
30        sc.enforce('acessar_add_pessoa')
31        super(PessoaAddForm, self).update()
32
33    @log
34    def createAndAdd(self, data):
35        del data['id']
36        # garante que alguns campos são armazenados apenas como números
37        for campo in ('cep', 'cpf_cnpj'):
38            if data[campo] is not None:
39                data[campo] = ''.join([c for c in data[campo] if c.isdigit()])       
40        pessoa = Pessoa(**data)
41        session = Session()
42        session.add(pessoa)
43        session.flush()
44
45class PessoaEditForm(base.EditForm):
46    """Formulário de edição de uma pessoa.
47    """
48
49    grok.context(INavigationRoot)
50    grok.name('edit-pessoa')
51    grok.require('zope2.View')
52
53    schema = IPessoa
54    klass = Pessoa
55    label = _(u'Editar Pessoa')
56    descrition = _(u'Formulário de edição de uma pessoa.')
57
58    def update(self):
59        sc = getUtility(ISecurityChecker)
60        sc.enforce('acessar_edit_pessoa')
61        super(PessoaEditForm, self).update()
62
63    @log
64    def applyChanges(self, data):
65        content = self.getContent()
66        if content:
67            for k, v in data.items():
68                # garante que alguns campos são armazenados apenas como números
69                if k in ('cep', 'cpf_cnpj') and v is not None:
70                    v = ''.join([c for c in v if c.isdigit()])
71                setattr(content, k, v)
72
73class PessoaShowForm(base.ShowForm):
74    """Formulário de visualização de uma pessoa.
75    """
76   
77    grok.context(INavigationRoot)
78    grok.name('show-pessoa')
79    grok.require('zope2.View')
80
81    schema = IPessoa
82    klass = Pessoa
83    label = _(u'Detalhes da Pessoa')
84    description = _(u'Formulário de visualização de uma pessoa.')
85
86    def update(self):
87        sc = getUtility(ISecurityChecker)
88        sc.enforce('acessar_show_pessoa')
89        super(PessoaShowForm, self).update()
Note: Veja TracBrowser para ajuda no uso do navegador do trac.
 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.