Conjunto de mudanças 5936 no repositório publico


Ignorar:
Timestamp:
18/12/2011 11:25:28 (9 anos atrás)
Autor:
fabianosantos
Mensagem:

Refatorado api com wrappers ao redor dos metodos que efetuam a tramitacao para implementar a notificacao das tramitacoes sem modificar o restante do sistema. Movido operacoes de log para o respectivo modulo, removendo prints do codigo e substituindo por chamadas ao logger

Localização:
il.spdo/trunk/il/spdo
Arquivos:
4 editados

Legenda:

Não Modificado
Adicionado
Removido
  • il.spdo/trunk/il/spdo/api.py

    r5935 r5936  
    1616from il.spdo.config import Session, PATH_ANEXOS, SEARCH_LIMIT
    1717from il.spdo.nav import url
    18 from il.spdo.log import log
     18from il.spdo.log import log, logger
    1919from il.spdo.interfaces import (ISPDOAPI, ISecurityChecker,
    2020getTipoProtocolo, getTipoDocumento, getAssunto, getSituacao,
     
    198198        session.flush()
    199199
    200     @log
    201     def TramiteEnvio(self, protocolos, areas, despacho, apenso=False):
     200    def TramiteEnvio(self, protocolos, areas, despacho):
     201        """Wrapper do tramite de envio.
     202        """
     203        protocolos_tramitados = self._TramiteEnvio(protocolos, areas, despacho)
     204        self._EnviaNotificacoes(protocolos_tramitados)
     205
     206    @log
     207    def _TramiteEnvio(self, protocolos, areas, despacho, apenso=False):
    202208        """Tramite de envio.
    203209        """
     
    235241            # propaga tramitação nos apensos
    236242            for apenso in protocolo.apenso:
    237                 ret.extend(self.TramiteEnvio([apenso.id], areas, despacho, apenso=True))
     243                ret.extend(self._TramiteEnvio([apenso.id], areas, despacho, apenso=True))
    238244        return ret
    239245   
    240     @log
    241     def TramiteRecebimento(self, protocolos, apenso=False):
     246    def TramiteRecebimento(self, protocolos):
     247        """Wrapper do tramite de recebimento.
     248        """
     249        protocolos_tramitados = self._TramiteRecebimento(protocolos)
     250        self._EnviaNotificacoes(protocolos_tramitados)
     251   
     252    @log
     253    def _TramiteRecebimento(self, protocolos, apenso=False):
    242254        """Tramite de recebimento.
    243255        """
     
    262274            # propaga tramitação nos apensos
    263275            for apenso in protocolo.apenso:
    264                 ret.extend(self.TramiteRecebimento([apenso.id], apenso=True))
     276                ret.extend(self._TramiteRecebimento([apenso.id], apenso=True))
    265277        return ret
    266278
    267     @log
    268     def TramiteRecuperacao(self, protocolos, apenso=False):
     279    def TramiteRecuperacao(self, protocolos):
     280        """Wrapper do tramite de recuperação.
     281        """
     282        protocolos_tramitados = self._TramiteRecuperacao(protocolos)
     283        self._EnviaNotificacoes(protocolos_tramitados)
     284
     285    @log
     286    def _TramiteRecuperacao(self, protocolos, apenso=False):
    269287        """Tramite de recuperação (recupera um protocolo enviado que não foi recebido).
    270288        """
     
    290308            # propaga tramitação nos apensos
    291309            for apenso in protocolo.apenso:
    292                 ret.extend(self.TramiteRecuperacao([apenso.id], apenso=True))
     310                ret.extend(self._TramiteRecuperacao([apenso.id], apenso=True))
    293311        return ret
    294312
     
    399417
    400418        return self._getProtocolosData(items.limit(SEARCH_LIMIT).all())
     419
     420    def _EnviaNotificacoes(self, protocolos):
     421        """Envia emails de notificação, avisando as pessoas
     422        interessadas que os protocolos tramitaram.
     423        """
     424        protocolos = list(set(protocolos))
     425        session = Session()
     426        for protocolo_id in protocolos:
     427            notificacoes = session.query(db.Notificacao).\
     428                           filter_by(protocolo_id=protocolo_id).all()
     429            for notificacao in notificacoes:
     430                logger(u'Enviando notificação para %s avisando que o protocolo %s tramitou.' %
     431                       (notificacao.pessoa.email, notificacao.protocolo.numero))
  • il.spdo/trunk/il/spdo/log.py

    r5526 r5936  
     1import logging
     2
     3from zope.globalrequest import getRequest
     4
    15from il.spdo.db import Log
    26from il.spdo.config import Session
    3 from zope.globalrequest import getRequest
    47
    58def log(fn):
     
    1922        return ret
    2023    return f
     24
     25def logger(msg):
     26    logger = logging.getLogger('SPDO')
     27    logger.warning(msg)
  • il.spdo/trunk/il/spdo/saconfig.py

    r5473 r5936  
     1# -*- coding: utf-8 -*-
     2
     3from zope.component import provideUtility
     4from zope.component.interfaces import ComponentLookupError
     5from zope.app.component.hooks import getSite
    16from z3c.saconfig import EngineFactory, GloballyScopedSession, SiteScopedSession
    2 from zope.component import provideUtility
    37from z3c.saconfig.interfaces import IEngineFactory, IScopedSession
     8from collective.saconnect.interfaces import ISQLAlchemyConnectionStrings
     9from Products.CMFCore.utils import getToolByName
     10
     11from il.spdo.config import DEFAULT_DSN
     12from il.spdo.log import logger
    413from il.spdo.history_meta import ZopeVersionedExtension
    5 from collective.saconnect.interfaces import ISQLAlchemyConnectionStrings
    6 from zope.app.component.hooks import getSite
    7 from zope.component.interfaces import ComponentLookupError
    8 from il.spdo.config import DEFAULT_DSN
    9 from Products.CMFCore.utils import getToolByName
    1014
    1115class SPDOEngineFactory(EngineFactory):
     
    1721            saconnect = ISQLAlchemyConnectionStrings(portal)
    1822            dsn = saconnect['spdo']
    19             print "utilizando configuracao local: ", dsn
     23            logger(u"Utilizando configuração local: " + unicode(dsn, 'utf-8'))
    2024        except (ComponentLookupError, KeyError), e:
    2125            dsn = DEFAULT_DSN
    22             print "utilizando configuracao padrao: ", dsn
     26            logger(u"Utilizando configuração padrão: " + unicode(dsn, 'utf-8'))
    2327        return (dsn,),{}
    2428
  • il.spdo/trunk/il/spdo/seguranca.py

    r5933 r5936  
    22
    33import bcrypt
    4 import logging
    54
    65from zope.interface import Interface
     
    1615from il.spdo import db
    1716from il.spdo.interfaces import ISPDOAPI, ISecurityChecker
     17from il.spdo.log import logger
    1818
    1919ROLE_USUARIO = 'Usuario SPDO'
     
    7777    grok.provides(ISecurityChecker)
    7878
    79     def _log(self, msg):
    80         logger = logging.getLogger('SPDO')
    81         logger.warning(msg)
    82 
    8379    def _run_verificacoes(self, acao, verificacoes, **kwargs):
    8480        """Esse método executa as verificações, de acordo com as
     
    9793            view = acao.replace('acessar_', '/@@').replace('_', '-')
    9894            if not url.endswith(view):
    99                 self._log(_(u'Permitindo acesso direto a URL: ') + unicode(url, 'utf-8'))
     95                logger(_(u'Permitindo acesso direto a URL: ') + unicode(url, 'utf-8'))
    10096                return True
    10197
     
    126122        verificacoes = CONFIG.get(acao, None)
    127123        if verificacoes is None:
    128             self._log(_(u'Ação informada não existe na configuração do sistema. Ação: ') + unicode(acao, 'utf-8'))
     124            logger(_(u'Ação informada não existe na configuração do sistema. Ação: ') + unicode(acao, 'utf-8'))
    129125            raise Unauthorized
    130126        return self._run_verificacoes(acao, verificacoes, **kwargs)
     
    132128    def enforce(self, acao, **kwargs):
    133129        if not self.check(acao, **kwargs):
    134             self._log(kwargs.get('msg', _(u'Privilégios Insuficientes. Ação: ') + unicode(acao, 'utf-8')))
     130            logger(kwargs.get('msg', _(u'Privilégios Insuficientes. Ação: ') + unicode(acao, 'utf-8')))
    135131            raise Unauthorized
    136132
     
    207203        protocolo_id = kwargs.get('protocolo_id', None)
    208204        if anexo_id is None or protocolo_id is None:
    209             self._log(_(u'O método _valida_privilegio_criador_anexo não recebeu os parâmetros anexo_id ou protocolo_id.'))
     205            logger(_(u'O método _valida_privilegio_criador_anexo não recebeu os parâmetros anexo_id ou protocolo_id.'))
    210206            return False
    211207        session = Session()
     
    231227        protocolo_id = kwargs.get('protocolo_id', None)
    232228        if observacao_id is None or protocolo_id is None:
    233             self._log(_(u'O método _valida_privilegio_criador_observacao não recebeu os parâmetros observacao_id ou protocolo_id.'))
     229            logger(_(u'O método _valida_privilegio_criador_observacao não recebeu os parâmetros observacao_id ou protocolo_id.'))
    234230            return False
    235231        session = Session()
     
    253249        protocolo_id = kwargs.get('protocolo_id', api.getProtocoloId())
    254250        if protocolo_id is None:
    255             self._log(_(u'O método _valida_protocolo_apensado não recebeu o parâmetro protocolo_id.'))
     251            logger(_(u'O método _valida_protocolo_apensado não recebeu o parâmetro protocolo_id.'))
    256252            return False
    257253        protocolo = api.getProtocolo(protocolo_id)
     
    278274        apenso_id = kwargs.get('apenso_id', None)
    279275        if protocolo_id is None or apenso_id is None:
    280             self._log(_(u'O método _valida_protocolo_apenso_ciclo não recebeu os parâmetros protocolo_id ou apenso_id.'))
     276            logger(_(u'O método _valida_protocolo_apenso_ciclo não recebeu os parâmetros protocolo_id ou apenso_id.'))
    281277            return False
    282278        api = getUtility(ISPDOAPI)
     
    307303        apenso_id = kwargs.get('apenso_id', None)
    308304        if protocolo_id is None or apenso_id is None:
    309             self._log(_(u'O método _valida_protocolo_apenso_momento não recebeu os parâmetros protocolo_id ou apenso_id.'))
     305            logger(_(u'O método _valida_protocolo_apenso_momento não recebeu os parâmetros protocolo_id ou apenso_id.'))
    310306            return False
    311307        api = getUtility(ISPDOAPI)
     
    325321        protocolo_id = kwargs.get('protocolo_id', api.getProtocoloId())
    326322        if protocolo_id is None:
    327             self._log(_(u'O método _valida_protocolo_enviado não recebeu o parâmetro protocolo_id.'))
     323            logger(_(u'O método _valida_protocolo_enviado não recebeu o parâmetro protocolo_id.'))
    328324            return False
    329325        area_id_auth = self._get_area_usuario()
     
    345341        tipodocumento_id = kwargs.get('tipodocumento_id', None)
    346342        if tipoprotocolo is None or tipodocumento_id is None:
    347             self._log(_(u'O método _valida_protocolo_fluxo_area_inicial não recebeu os parâmetros tipoprotocolo e tipodocumento_id.'))
     343            logger(_(u'O método _valida_protocolo_fluxo_area_inicial não recebeu os parâmetros tipoprotocolo e tipodocumento_id.'))
    348344            return False
    349345        area_id_auth = self._get_area_usuario()
     
    369365        protocolo_id = kwargs.get('protocolo_id', api.getProtocoloId())
    370366        if protocolo_id is None:
    371             self._log(_(u'O método _valida_protocolo_nao_recebido não recebeu o parâmetro protocolo_id.'))
     367            logger(_(u'O método _valida_protocolo_nao_recebido não recebeu o parâmetro protocolo_id.'))
    372368            return False
    373369        area_id_auth = self._get_area_usuario()
     
    385381        protocolo_id = kwargs.get('protocolo_id', api.getProtocoloId())
    386382        if protocolo_id is None:
    387             self._log(_(u'O método _valida_protocolo_situacao_final não recebeu o parâmetro protocolo_id.'))
     383            logger(_(u'O método _valida_protocolo_situacao_final não recebeu o parâmetro protocolo_id.'))
    388384            return False
    389385        protocolo = api.getProtocolo(protocolo_id)
     
    399395        protocolo_id = kwargs.get('protocolo_id', api.getProtocoloId())
    400396        if protocolo_id is None:
    401             self._log(_(u'O método _valida_protocolo_tramita_area não recebeu o parâmetro protocolo_id.'))
     397            logger(_(u'O método _valida_protocolo_tramita_area não recebeu o parâmetro protocolo_id.'))
    402398            return False
    403399        area_id_auth = self._get_area_usuario()
Note: Veja TracChangeset para ajuda no uso do visualizador de conjunto de mudanças.
 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.