source: publico/il.spdo/trunk/il/spdo/browser/forms/tramite.py @ 5374

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

Implementação inicial da visualização do protocolo e integração da
visualização com o formulário de adicionar tramite.

File size: 2.0 KB
Linha 
1# -*- coding: utf-8 -*-a
2import datetime
3from five import grok
4
5from zope.component import getMultiAdapter
6from plone.app.layout.navigation.interfaces import INavigationRoot
7from Products.statusmessages.interfaces import IStatusMessage
8
9from il.spdo.browser.forms import base
10from il.spdo.config import MessageFactory as _
11from il.spdo.interfaces import IAddTramite
12from il.spdo.db import Tramite, Protocolo
13from il.spdo.config import Session
14
15class TramiteAddForm(base.AddForm):
16    """Formulário de tramitação de protocolo.
17    """
18    grok.context(INavigationRoot)
19    grok.name('add-tramite')
20    grok.require('cmf.ManagePortal')
21
22    schema = IAddTramite
23    label = _(u'Tramitação de Protocolo')
24    description = _(u'Formulário de tramitação de um protocolo.')
25
26    def show_protocolo(self):
27        view = getMultiAdapter((self.context, self.request),
28                                name="viewlet-protocolo")
29        return view()
30
31    def getProtocolo(self):
32        protocolo_id = self.rec_id()
33        if protocolo_id:
34            session = Session()
35            protocolo = session.query(Protocolo).get(int(protocolo_id))
36            return protocolo
37       
38    def createAndAdd(self, data):
39        #TODO:rever tratar protocolo não existente para um protocolo_id
40        protocolo = getProtocolo()
41        protocolo_id = protocolo.id if protocolo is not None else None
42        if protocolo_id is None:
43            return
44
45        session = Session()
46        copia = len(data['areas']) > 1
47        for area_id in data['areas']:
48            tramite = Tramite(
49                    protocolo_id=protocolo.id,
50                    data_disonibilizacao=datetime.datetime.now(),
51                    acao=data['acao'],
52                    copia=copia,
53                )
54            session.add(tramite)
55            session.flush()
56        #TODO: realizar log e tratar anexos
57        return True
58
59    def nextURL(self):
60        url_base = self.context.absolute_url()
61        self.redirect(url_base + '/@@show-protocolo?id=' + 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.