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

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

Implementação do formulário de pessoa.

File size: 3.0 KB
Linha 
1# -*- coding: utf-8 -*-
2from five import grok
3
4from plone.app.layout.navigation.interfaces import INavigationRoot
5from Products.statusmessages.interfaces import IStatusMessage
6
7from il.spdo.browser.forms import base
8from il.spdo.config import MessageFactory as _
9from il.spdo.interfaces import IPessoa
10from il.spdo.db import Pessoa
11from il.spdo.config import Session
12
13class PessoaAddForm(base.AddForm):
14    """Formulário de cadastro de uma pessoa.
15    """
16    grok.context(INavigationRoot)
17    grok.name('add-pessoa')
18    grok.require('cmf.ManagePortal')
19
20    schema = IPessoa
21    label = _(u'Adicionar Pessoa')
22    description = _(u'Formulário de cadastro de uma Pessoa.')
23
24    def createAndAdd(self, data):
25        del data['id'] #id is auto generated
26        pessoa = Pessoa(**data)
27        session = Session()
28        session.add(pessoa)
29        session.flush()
30        return pessoa
31
32    def nextURL(self):
33        url_base = self.context.absolute_url()
34        self.redirect(url_base + '/@@list-pessoa')
35
36
37class PessoaEditForm(base.EditForm):
38    """Formulário de edição de uma pessoa.
39    """
40
41    grok.context(INavigationRoot)
42    grok.name('edit-pessoa')
43    grok.require('cmf.ManagePortal')
44
45    schema = IPessoa
46    label = _(u'Editar Pessoa')
47    descrition = _(u'Formulário de edição de uma pessoa.')
48
49    def getPessoa(self, pessoa_id):
50        if pessoa_id is not None:
51            session = Session()
52            pessoa = session.query(Pessoa).get(pessoa_id)
53            if pessoa is not None:
54                return pessoa
55        return None
56
57    def getContent(self):
58        return self.getPessoa(self.rec_id())
59
60    def applyChanges(self, data):
61        content = self.getPessoa(data['id'])
62        if content:
63            for key, value in data.items():
64                setattr(content, key, value)
65            session = Session()
66            session.flush()
67            return True
68        return False
69
70    def nextURL(self):
71        url_base = self.context.absolute_url()
72        self.redirect(url_base + '/@@list-pessoa')
73
74
75class PessoaShowForm(base.ShowForm):
76    grok.context(INavigationRoot)
77    grok.name('show-pessoa')
78    grok.require('cmf.ManagePortal')
79
80    schema = IPessoa
81    label = _(u'Detalhes Pessoa')
82    description = _(u'Formulário de visualização de uma pessoa.')
83
84    def getPessoa(self, pessoa_id):
85        if pessoa_id is not None:
86            session = Session()
87            pessoa = session.query(Pessoa).get(pessoa_id)
88            if pessoa is not None:
89                return pessoa
90        return None
91
92    @property
93    def pessoa_id(self):
94        self.rec_id()
95
96    def removeItem(self):
97        #XXX: implementar validação e exclusão.
98        print 'Item não foi removido!'
99
100    def getContent(self):
101        return self.getPessoa(self.rec_id())
102
103    def nextURL(self):
104        url_base = self.context.absolute_url()
105        self.redirect(url_base + '/@@list-pessoa')
106
107    def editURL(self):
108        url_base = self.context.absolute_url()
109        self.redirect(url_base + '/@@edit-pessoa?id=%s' % self.rec_id())
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.