source: publico/il.spdo/trunk/il/spdo/browser/forms/area.py @ 5439

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

Revisado forms de add e edit de areas e tipo de documento. Adicionado views de tipo de documento.

File size: 2.6 KB
Linha 
1# -*- coding: utf-8 -*-
2
3from five import grok
4from plone.app.layout.navigation.interfaces import INavigationRoot
5from Products.statusmessages.interfaces import IStatusMessage
6from il.spdo.browser.forms import base
7from il.spdo.config import MessageFactory as _
8from il.spdo.interfaces import IArea
9from il.spdo.db import Area
10from il.spdo.config import Session
11
12class AreaAddForm(base.AddForm):
13    """Formulário de cadastro de uma área do organograma.
14    """
15
16    grok.context(INavigationRoot)
17    grok.name('add-area')
18    grok.require('cmf.ManagePortal')
19
20    schema = IArea
21    label = _(u'Adicionar Área')
22    description = _(u'Formulário de cadastro de uma área do organograma.')
23
24    def createAndAdd(self, data):
25        area = Area()
26        area.sigla = data['sigla']
27        area.nome = data['nome']
28        area.chefia_id = data['chefia_id']
29        session = Session()
30        session.add(area)
31        session.flush()
32        self.area_id = area.id
33        return area
34
35    def nextURL(self):
36        url_base = self.context.absolute_url()
37        self.redirect(url_base + '/@@show-area?id=' + str(self.area_id))
38
39
40class AreaEditForm(base.EditForm):
41    """Formulário de edição de uma área do organograma.
42    """
43
44    grok.context(INavigationRoot)
45    grok.name('edit-area')
46    grok.require('cmf.ManagePortal')
47
48    schema = IArea
49    label = _(u'Editar Área')
50    descrition = _(u'Formulário de edição de uma área do organograma.')
51
52    def getContent(self):
53        session = Session()
54        return session.query(Area).get(self.rec_id())
55
56    def applyChanges(self, data):
57        content = self.getContent()
58        if content:
59            for k, v in data.items():
60                setattr(content, k, v)
61            return True
62
63    def nextURL(self):
64        url_base = self.context.absolute_url()
65        self.redirect(url_base + '/@@show-area?id=' + self.rec_id())
66
67
68class AreaShowForm(base.ShowForm):
69    """Formulário de visualização de uma área do organograma.
70    """
71   
72    grok.context(INavigationRoot)
73    grok.name('show-area')
74    grok.require('cmf.ManagePortal')
75
76    schema = IArea
77    label = _(u'Detalhes da Área')
78    description = _(u'Formulário de visualização de uma área do organograma.')
79
80    def getContent(self):
81        session = Session()
82        return session.query(Area).get(self.rec_id())
83
84    def nextURL(self):
85        url_base = self.context.absolute_url()
86        self.redirect(url_base + '/@@list-area')
87
88    def editURL(self):
89        url_base = self.context.absolute_url()
90        self.redirect(url_base + '/@@edit-area?id=%s' % self.rec_id())
91
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.