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

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

Novo módulo com global utility que define API geral do sistema.

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