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

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

Refactory inicial dos cruds. Ajuste no tramite para nao replicar os anexos para cada tramite, isso provavelmente precisara ser revisto em breve. Desligado filtro do jquery.

File size: 2.1 KB
Linha 
1# -*- coding: utf-8 -*-a
2import datetime
3from five import grok
4
5from zope.component import getMultiAdapter, getUtility
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, LogModificacao, Permissao
13from il.spdo.config import Session
14from il.spdo.api import ISPDOAPI
15
16class TramiteAddForm(base.AddForm):
17    """Formulário de tramitação de protocolo.
18    """
19    grok.context(INavigationRoot)
20    grok.name('add-tramite')
21    grok.require('cmf.ManagePortal')
22
23    schema = IAddTramite
24    label = _(u'Tramitação de Protocolo')
25    description = _(u'Formulário de tramitação de um protocolo.')
26
27    def createAndAdd(self, data):
28        api = getUtility(ISPDOAPI)
29        user = api.getUser()
30        protocolo = api.getProtocolo()
31
32        # TODO: avaliar a necessidade de associar os anexos a
33        # tramitação para permitir que quem tramitou possa remover os
34        # anexos que adicionou, sem modificar os demais anexos
35        api.addAnexos(protocolo.id, data['anexos'])
36
37        session = Session()
38        copia = len(data['areas']) > 1
39        for area_id in data['areas']:
40
41            tramite = Tramite(
42                    protocolo_id=protocolo.id,
43                    area_id=area_id,
44                    data_disponibilizacao=datetime.datetime.now(),
45                    data_recebimento=None,
46                    acao=data['acao'],
47                    copia=copia,
48                )
49            session.add(tramite)
50            session.flush()
51
52            log = LogModificacao(
53                usuario=user.email,
54                protocolo_id=protocolo.id,
55                tramite_id=tramite.id,
56                detalhes=_(u'Novo Tramite'),
57            )
58            session.add(log)
59
60        return True
61
62    def nextURL(self):
63        api = getUtility(ISPDOAPI)
64        url_base = self.context.absolute_url()
65        self.redirect(url_base + '/@@show-protocolo?id=' + api.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.