Beispiel #1
0
class PessoaShowForm(base.ShowForm):
    """Formulário de visualização de uma pessoa.
    """

    grok.context(INavigationRoot)
    grok.name('show-pessoa')
    grok.require('zope2.View')

    schema = IPessoa
    klass = Pessoa
    label = _(u'Detalhes da Pessoa')
    description = _(u'Formulário de visualização de uma pessoa.')
Beispiel #2
0
class UFShowForm(base.ShowForm):
    """Formulário de visualização de uma UF.
    """

    grok.context(INavigationRoot)
    grok.name('show-uf')
    grok.require('cmf.ManagePortal')

    schema = IUF
    klass = UF
    label = _(u'Detalhes da UF')
    description = _(u'Formulário de visualização de uma UF.')
Beispiel #3
0
class UFEditForm(base.EditForm):
    """Formulário de edição de uma UF.
    """

    grok.context(INavigationRoot)
    grok.name('edit-uf')
    grok.require('cmf.ManagePortal')

    schema = IUF
    klass = UF
    label = _(u'Editar UF')
    descrition = _(u'Formulário de edição de uma UF.')
Beispiel #4
0
class AddForm(form.SchemaForm):
    """Formulário base de cadastro.
    """

    grok.context(INavigationRoot)

    ignoreContext = True

    def createAndAdd(self, data):
        raise NotImplementedError

    def nextURL(self):
        go('list-' + vs(self.klass))

    def cancelURL(self):
        self.nextURL()

    @button.buttonAndHandler(_(u'Cadastrar'), name='cadastrar')
    def handleCadastrar(self, action):
        data, errors = self.extractData()
        if errors:
            self.status = self.formErrorsMessage
            return
        status = IStatusMessage(self.request)
        try:
            obj = self.createAndAdd(data)
            session = Session()
            session.flush()
        except IntegrityError, e:
            msg = _(u'Falha de integridade relacional: ' + str(e))
            status.add(msg, 'error')
            raise
        else:
Beispiel #5
0
 def removeItem(self):
     content = self.getContent()
     status = IStatusMessage(self.request)
     try:
         session = Session()
         session.delete(content)
         session.flush()
     except AssertionError, e:
         msg = _(u'Falha de integridade relacional: ' + str(e))
         status.add(msg, 'error')
         raise
Beispiel #6
0
class UFAddForm(base.AddForm):
    """Formulário de cadastro de uma UF.
    """

    grok.context(INavigationRoot)
    grok.name('add-uf')
    grok.require('cmf.ManagePortal')

    schema = IUF
    klass = UF
    label = _(u'Adicionar UF')
    description = _(u'Formulário de cadastro de uma UF.')

    def createAndAdd(self, data):
        uf = UF()
        uf.sigla = data['sigla']
        uf.nome = data['nome']
        session = Session()
        session.add(uf)
        session.flush()
Beispiel #7
0
 def removeItem(self):
     content = self.getContent()
     status = IStatusMessage(self.request)
     try:
         session = Session()
         session.delete(content)
         session.flush()
     except AssertionError, e:
         msg = _(u'Falha de integridade relacional: ' + str(e))
         status.add(msg, 'error')
         raise
Beispiel #8
0
 def handleSalvar(self, action):
     data, errors = self.extractData()
     if errors:
         self.status = self.formErrorsMessage
         return
     status = IStatusMessage(self.request)
     try:
         self.applyChanges(data)
         session = Session()
         session.flush()
     except IntegrityError, e:
         msg = _(u'Falha de integridade relacional: ' + str(e))
         status.add(msg, 'error')
         raise
Beispiel #9
0
 def handleSalvar(self, action):
     data, errors = self.extractData()
     if errors:
         self.status = self.formErrorsMessage
         return
     status = IStatusMessage(self.request)
     try:
         self.applyChanges(data)
         session = Session()
         session.flush()
     except IntegrityError, e:
         msg = _(u'Falha de integridade relacional: ' + str(e))
         status.add(msg, 'error')
         raise
Beispiel #10
0
class PessoaAddForm(base.AddForm):
    """Formulário de cadastro de uma pessoa.
    """

    grok.context(INavigationRoot)
    grok.name('add-pessoa')
    grok.require('zope2.View')

    schema = IPessoa
    klass = Pessoa
    label = _(u'Adicionar Pessoa')
    description = _(u'Formulário de cadastro de uma pessoa.')

    def createAndAdd(self, data):
        del data['id']

        # garante que alguns campos são armazenados apenas como
        # números, mesmo sendo strings
        for campo in ('cep', 'cpf_cnpj'):
            if data[campo] is not None:
                data[campo] = ''.join([c for c in data[campo] if c.isdigit()])

        pessoa = Pessoa()
        pessoa.nome = data['nome']
        pessoa.email = data['email']
        pessoa.endereco = data['endereco']
        pessoa.bairro = data['bairro']
        pessoa.cep = data['cep']
        pessoa.cidade = data['cidade']
        pessoa.uf_id = data['uf_id']
        pessoa.telefone = data['telefone']
        pessoa.cpf_cnpj = data['cpf_cnpj']
        pessoa.tipopessoa = data['tipopessoa']

        session = Session()
        session.add(pessoa)
        session.flush()
Beispiel #11
0
class PessoaEditForm(base.EditForm):
    """Formulário de edição de uma pessoa.
    """

    grok.context(INavigationRoot)
    grok.name('edit-pessoa')
    grok.require('zope2.View')

    schema = IPessoa
    klass = Pessoa
    label = _(u'Editar Pessoa')
    descrition = _(u'Formulário de edição de uma pessoa.')

    def applyChanges(self, data):
        content = self.getContent()
        if content:
            for k, v in data.items():

                # garante que alguns campos são armazenados apenas
                # como números, mesmo sendo strings
                if k in ('cep', 'cpf_cnpj') and v is not None:
                    v = ''.join([c for c in v if c.isdigit()])

                setattr(content, k, v)
class IUF(form.Schema):

    form.mode(id='hidden')
    id = schema.Int(title=_(u'ID'),
                    description=_(u'Identificador da UF.'),
                    required=False)

    sigla = schema.TextLine(title=_(u'Sigla'),
                            description=_(u'Informe a sigla da UF.'))

    nome = schema.TextLine(title=_(u'Nome'),
                           description=_(u'Informe o nome da UF.'))
Beispiel #13
0
class EditForm(form.SchemaForm):
    """Formulário base de edição dos formmulários.
    """

    grok.context(INavigationRoot)

    def getContent(self):
        session = Session()
        return session.query(self.klass).get(self.rec_id())

    def applyChanges(self, data):
        content = self.getContent()
        if content:
            for k, v in data.items():
                setattr(content, k, v)

    def nextURL(self):
        go('show-' + vs(self.klass), id=self.rec_id())

    def rec_id(self):
        return self.request.get('id', self.request.get('form.widgets.id',
                                                       None))

    @button.buttonAndHandler(_(u'Salvar'), name='salvar')
    def handleSalvar(self, action):
        data, errors = self.extractData()
        if errors:
            self.status = self.formErrorsMessage
            return
        status = IStatusMessage(self.request)
        try:
            self.applyChanges(data)
            session = Session()
            session.flush()
        except IntegrityError, e:
            msg = _(u'Falha de integridade relacional: ' + str(e))
            status.add(msg, 'error')
            raise
        else:
def validateCPFCNPJ(value):
    if value and not valida_cpf_cnpj(value):
        raise interface.Invalid(_(u'CPF/CNPJ inválido.'))
def validateEmail(value):
    if value and re.compile(EMAIL_RE).match(value) is None:
        raise interface.Invalid(_(u'E-mail inválido.'))
def validateCPFCNPJ(value):
    if value and not valida_cpf_cnpj(value):
        raise interface.Invalid(_(u'CPF/CNPJ inválido.'))
Beispiel #17
0
    def handleCadastrar(self, action):
        data, errors = self.extractData()
        if errors:
            self.status = self.formErrorsMessage
            return
        status = IStatusMessage(self.request)
        try:
            obj = self.createAndAdd(data)
            session = Session()
            session.flush()
        except IntegrityError, e:
            msg = _(u'Falha de integridade relacional: ' + str(e))
            status.add(msg, 'error')
            raise
        else:
            status.add(_(u'Cadastro efetuado com sucesso.'), 'info')
            self.nextURL()

    @button.buttonAndHandler(_(u'Cancelar'), name='cancelar')
    def handleCancelar(self, action):
        self.cancelURL()

    def updateActions(self):
        self.request.set('disable_border', True)
        super(AddForm, self).updateActions()
        self.actions["cadastrar"].addClass("context")
        self.actions["cancelar"].addClass("standalone")


class EditForm(form.SchemaForm):
    """Formulário base de edição dos formmulários.
def TipoPessoaVocabulary(context):
    return SimpleVocabulary([
        SimpleTerm('F','F', _(u'Física')),
        SimpleTerm('O','O', _(u'Organização')),
    ])
def validateEmail(value):
    if value and re.compile(EMAIL_RE).match(value) is None:
        raise interface.Invalid(_(u'E-mail inválido.'))
class IPessoa(form.Schema):
    """ Interface que descreve representações de Pessoa.
    """

    form.fieldset('endereco',
                  label=u"Endereço",
                  fields=['endereco', 'bairro', 'cep', 'cidade', 'uf_id'])

    form.mode(id='hidden')
    id = schema.Int(title=_(u'ID'),
                    description=_(u'Identificador da Pessoa.'),
                    required=False)

    nome = schema.TextLine(title=_(u'Nome'),
                           description=_(u'Nome completo da Pessoa.'),
                           max_length=100)

    email = schema.TextLine(title=_(u'Email'),
                            description=_(u'Informe o email da Pessoa.'),
                            max_length=254)

    endereco = schema.TextLine(
        title=_(u'Endereço'),
        description=_(u'Logradouro, número e complemento.'),
        max_length=100,
        required=False)

    bairro = schema.TextLine(title=_(u'Bairro'),
                             description=_(u'Informe o bairro.'),
                             max_length=50,
                             required=False)

    cep = schema.TextLine(title=_(u'CEP'),
                          description=_(u'Informe o CEP (apenas números)'),
                          required=False)

    cidade = schema.TextLine(title=_(u'Cidade'),
                             description=_(u'Informe a cidade.'),
                             max_length=50,
                             required=False)

    uf_id = schema.Choice(title=_(u'UF'),
                          description=_(u'Selecione o estado da federação.'),
                          required=False,
                          vocabulary='xiru.alchemyform.uf-vocab')

    tipopessoa = schema.Choice(
        title=_(u'Tipo'),
        description=_(u'Informe se a pessoa é física ou uma organização.'),
        default=u'F',
        vocabulary='xiru.alchemyform.tipopessoa-vocab')

    cpf_cnpj = schema.TextLine(
        title=_(u'CPF/CNPJ'),
        description=
        _(u'Informe o CPF ou CNPJ de acordo com o tipo de pessoa: física ou organização.'
          ),
        max_length=20,
        required=False)

    telefone = schema.TextLine(title=_(u'Telefone'),
                               description=_(u'Informe o telefone com DDD.'),
                               max_length=30,
                               required=False)
Beispiel #21
0
    def handleCadastrar(self, action):
        data, errors = self.extractData()
        if errors:
            self.status = self.formErrorsMessage
            return
        status = IStatusMessage(self.request)
        try:
            obj = self.createAndAdd(data)
            session = Session()
            session.flush()
        except IntegrityError, e:
            msg = _(u'Falha de integridade relacional: ' + str(e))
            status.add(msg, 'error')
            raise
        else:
            status.add(_(u'Cadastro efetuado com sucesso.'), 'info')
            self.nextURL()

    @button.buttonAndHandler(_(u'Cancelar'), name='cancelar')
    def handleCancelar(self, action):
        self.cancelURL()

    def updateActions(self):
        self.request.set('disable_border', True)
        super(AddForm, self).updateActions()
        self.actions["cadastrar"].addClass("context")
        self.actions["cancelar"].addClass("standalone")


class EditForm(form.SchemaForm):
    """Formulário base de edição dos formmulários.
def validateCep(value):
    if value:
        value = ''.join([c for c in value if c.isdigit()])
        if len(value) != 8:
            raise interface.Invalid(_(u'CEP inválido.'))
def validateCep(value):
    if value:
        value = ''.join([c for c in value if c.isdigit()])
        if len(value) != 8:
            raise interface.Invalid(_(u'CEP inválido.'))