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

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

Implementação inicial do formulário de Tramitação.

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