source: publico/il.spdo/trunk/il/spdo/browser/views.py @ 5364

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

Nova view para exibicao dos detalhes de um Protocolo.

File size: 2.4 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.db import Area, Pessoa, Protocolo
8from il.spdo.config import Session
9from il.spdo.config import MessageFactory as _
10
11class AreaListView(grok.View):
12    grok.name('list-area')
13    grok.context(INavigationRoot)
14    grok.require('cmf.ManagePortal')
15
16    areas = []
17
18    def update(self):
19        session = Session()
20        items = session.query(Area).all()
21        self.areas = []
22        for area in items:
23            self.areas.append({
24               'nome': area.nome,
25               'id': area.id,
26               'chefia_id': getattr(area, 'chefia_id', ''),
27               'chefia_nome': getattr(area.area,'nome','')
28               })
29   
30    def show_url(self, area_id):
31        return self.context.absolute_url() + '/@@show-area?id=%s' % area_id
32
33    def add_url(self):
34        return self.context.absolute_url() + '/@@add-area'
35
36class PessoaListView(grok.View):
37    grok.name('list-pessoa')
38    grok.context(INavigationRoot)
39    grok.require('cmf.ManagePortal')
40
41    pessoas = []
42
43    def update(self):
44        session = Session()
45        items = session.query(Pessoa).all()
46        self.pessoas = []
47        for pessoa in items:
48            self.pessoas.append({
49               'nome': pessoa.nome,
50               'id': pessoa.id,
51               'email': pessoa.email
52               })
53   
54    def show_url(self, pessoa_id):
55        return self.context.absolute_url() + '/@@show-pessoa?id=%s' % pessoa_id
56
57    def add_url(self):
58        return self.context.absolute_url() + '/@@add-pessoa'
59
60
61class ProtocoloShowView(grok.View):
62    grok.name('show-protocolo')
63    grok.context(INavigationRoot)
64    grok.require('cmf.ManagePortal')
65
66    def rec_id(self):
67        return self.request.get('id', None) or\
68            self.request.get('form.widgets.id', None)
69   
70    @property
71    def protocolo(self):
72        return {'id': self._protocolo.id,
73                'numero': self._protocolo.numero
74            }
75
76    def update(self):
77        session = Session()
78        self._protocolo = session.query(Protocolo).get(self.rec_id())
79        if self._protocolo is None:
80            status = IStatusMessage(self.request)
81            status.add(_(u'Protocolo não localizado'), 'warn')
82            return self.request.response.redirect(self.context.absolute_url())
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.