예제 #1
0
 def update(self):
     sc = getUtility(ISecurityChecker)
     sc.enforce("acessar_list_referencia")
     self.request.set("disable_border", True)
     self.dados = []
     self.dados_protocolo = {}
     api = getUtility(ISPDOAPI)
     protocolo = api.getProtocolo()
     self.dados_protocolo = {
         "protocolo_id": protocolo.id,
         "numero": protocolo.numero,
         "data_protocolo": protocolo.data_protocolo,
         "assunto": protocolo.assunto,
         "tipodocumento": protocolo.tipodocumento.nome,
         "situacao": protocolo.situacao.nome,
         "url": url("show-protocolo", id=protocolo.id),
     }
     for i in protocolo.protocolo:
         self.dados.append(
             {
                 "protocolo_id": i.protocolo_id,
                 "referencia_id": i.referencia_id,
                 "numero": i.referencia.numero,
                 "data_protocolo": i.referencia.data_protocolo,
                 "assunto": i.referencia.assunto,
                 "tipodocumento": i.referencia.tipodocumento.nome,
                 "situacao": i.referencia.situacao.nome,
                 "url-remove": url("remove-referencia", protocolo_id=i.protocolo_id, referencia_id=i.referencia_id),
             }
         )
예제 #2
0
 def update(self):
     self.request.set('disable_border', True)
     self.dados = []
     api = getUtility(ISPDOAPI)
     fluxo = api.getFluxo()
     self.request.response.setCookie('fluxo_id', fluxo.id)
     self.dados_fluxo = {
         'nome': fluxo.nome,
         'url': url('show-fluxo', id=fluxo.id),
     }
     for i in fluxo.transicao:
         self.dados.append({
             'fluxo_id':
             i.fluxo_id,
             'inicial':
             i.inicial,
             'area_origem':
             i.area_origem.nome,
             'url-area-origem':
             url('show-area', id=i.area_origem_id),
             'area_destino':
             i.area_destino.nome,
             'url-area-destino':
             url('show-area', id=i.area_destino_id),
             'url-remove':
             url('remove-transicao', id=i.id),
         })
예제 #3
0
 def update(self):
     sc = getUtility(ISecurityChecker)
     sc.enforce('acessar_list_referencia')
     self.request.set('disable_border', True)
     self.dados = []
     self.dados_protocolo = {}
     api = getUtility(ISPDOAPI)
     protocolo = api.getProtocolo()
     self.dados_protocolo = {
         'protocolo_id': protocolo.id,
         'numero': protocolo.numero,
         'data_protocolo': protocolo.data_protocolo,
         'assunto': protocolo.assunto,
         'tipodocumento': protocolo.tipodocumento.nome,
         'situacao': protocolo.situacao.nome,
         'url': url('show-protocolo', id=protocolo.id)
         }
     for i in protocolo.protocolo:
         self.dados.append({
             'protocolo_id': i.protocolo_id,
             'referencia_id': i.referencia_id,
             'numero': i.referencia.numero,
             'data_protocolo': i.referencia.data_protocolo,
             'assunto': i.referencia.assunto,
             'tipodocumento': i.referencia.tipodocumento.nome,
             'situacao': i.referencia.situacao.nome,
             'url-remove': url('remove-referencia', protocolo_id=i.protocolo_id, referencia_id=i.referencia_id),
             })
예제 #4
0
 def _destinos(self):
     sc = getUtility(ISecurityChecker)
     show_pessoa = sc.check("acessar_show_pessoa")
     edit_pessoadestino = sc.check("acessar_edit_pessoadestino", protocolo_id=self._protocolo.id)
     remove_pessoadestino = sc.check("acessar_remove_pessoadestino", protocolo_id=self._protocolo.id)
     ret = []
     for p in self._protocolo.pessoa_destino:
         i = p.pessoa
         url_pessoa = show_pessoa and url("show-pessoa", id=i.id) or None
         url_edit = (
             edit_pessoadestino
             and url("edit-pessoadestino", protocolo_id=self._protocolo.id, pessoa_id=i.id)
             or None
         )
         url_remove = (
             remove_pessoadestino
             and url("remove-pessoadestino", protocolo_id=self._protocolo.id, pessoa_id=i.id)
             or None
         )
         ret.append(
             {
                 "nome": i.nome,
                 "email": i.email,
                 "tipoentrega": p.tipoentrega.nome if p.tipoentrega is not None else "",
                 "data_entrega": p.data_entrega,
                 "objeto_correios": p.objeto_correios,
                 "url": url_pessoa,
                 "url-edit": url_edit,
                 "url-remove": url_remove,
             }
         )
     return ret
예제 #5
0
 def update(self):
     sc = getUtility(ISecurityChecker)
     sc.enforce('acessar_list_referencia')
     self.request.set('disable_border', True)
     self.dados = []
     self.dados_protocolo = {}
     api = getUtility(ISPDOAPI)
     protocolo = api.getProtocolo()
     self.dados_protocolo = {
         'protocolo_id': protocolo.id,
         'numero': protocolo.numero,
         'data_protocolo': protocolo.data_protocolo,
         'assunto': protocolo.assunto,
         'tipodocumento': protocolo.tipodocumento.nome,
         'situacao': protocolo.situacao.nome,
         'url': url('show-protocolo', id=protocolo.id)
         }
     for i in protocolo.protocolo:
         self.dados.append({
             'protocolo_id': i.protocolo_id,
             'referencia_id': i.referencia_id,
             'numero': i.referencia.numero,
             'data_protocolo': i.referencia.data_protocolo,
             'assunto': i.referencia.assunto,
             'tipodocumento': i.referencia.tipodocumento.nome,
             'situacao': i.referencia.situacao.nome,
             'url-remove': url('remove-referencia', protocolo_id=i.protocolo_id, referencia_id=i.referencia_id),
             })
예제 #6
0
 def update(self):
     sc = getUtility(ISecurityChecker)
     sc.enforce('acessar_list_notificacao')
     self.request.set('disable_border', True)
     self.dados = []
     self.dados_pessoa = {}
     api = getUtility(ISPDOAPI)
     pessoa = api.getAuthPessoa()
     self.dados_pessoa = {
         'pessoa_id': pessoa.id,
         'nome': pessoa.nome,
         'email': pessoa.email,
         'url': url('show-pessoa', id=pessoa.id)
     }
     for i in pessoa.notificacao:
         self.dados.append({
             'protocolo_id':
             i.protocolo.id,
             'numero':
             i.protocolo.numero,
             'data_protocolo':
             i.protocolo.data_protocolo,
             'assunto':
             i.protocolo.assunto,
             'tipodocumento':
             i.protocolo.tipodocumento.nome,
             'situacao':
             i.protocolo.situacao.nome,
             'url-remove':
             url('remove-notificacao', protocolo_id=i.protocolo.id),
         })
예제 #7
0
 def update(self):
     sc = getUtility(ISecurityChecker)
     sc.enforce("acessar_list_notificacao")
     self.request.set("disable_border", True)
     self.dados = []
     self.dados_pessoa = {}
     api = getUtility(ISPDOAPI)
     pessoa = api.getAuthPessoa()
     self.dados_pessoa = {
         "pessoa_id": pessoa.id,
         "nome": pessoa.nome,
         "email": pessoa.email,
         "url": url("show-pessoa", id=pessoa.id),
     }
     for i in pessoa.notificacao:
         self.dados.append(
             {
                 "protocolo_id": i.protocolo.id,
                 "numero": i.protocolo.numero,
                 "data_protocolo": i.protocolo.data_protocolo,
                 "assunto": i.protocolo.assunto,
                 "tipodocumento": i.protocolo.tipodocumento.nome,
                 "situacao": i.protocolo.situacao.nome,
                 "url-remove": url("remove-notificacao", protocolo_id=i.protocolo.id),
             }
         )
예제 #8
0
    def _EnviaNotificacoes(self, protocolos):
        """Envia emails de notificação, avisando as pessoas
        interessadas que os protocolos tramitaram.
        """
        protocolos = list(set(protocolos))
        pu = getToolByName(getSite(), 'portal_url')
        portal = pu.getPortalObject()
        mh = portal.MailHost
        session = Session()
        for protocolo_id in protocolos:
            notificacoes = session.query(db.Notificacao).\
                           filter_by(protocolo_id=protocolo_id).all()
            for notificacao in notificacoes:
                logger(_(u'Notificando ') + notificacao.pessoa.email)

                # TODO: refatorar. Essa lista de tramites pode vir
                # pronta do método TramiteEnvio, evitando notificações
                # desnecessárias nas tramitações por cópia.

                tramites = session.query(db.Tramite).\
                           filter_by(protocolo_id=protocolo_id).\
                           filter_by(data_recebimento=None).all()
                for tramite in tramites:
                    d = {
                        'numero':
                        notificacao.protocolo.numero,
                        'data_tramitacao':
                        tramite.data_disponibilizacao,
                        'assunto':
                        notificacao.protocolo.assunto,
                        'area_origem':
                        tramite.area_anterior.nome,
                        'responsavel_origem':
                        tramite.area_anterior.responsavel[-1].pessoa.nome,
                        'area_destino':
                        tramite.area.nome,
                        'responsavel_destino':
                        tramite.responsavel.pessoa.nome,
                        'situacao':
                        notificacao.protocolo.situacao.nome,
                        'url_protocolo':
                        url('show-protocolo', id=notificacao.protocolo.id),
                        'url_notificacoes':
                        url('list-notificacao')
                    }
                    mfrom = unicode(portal.getProperty('email_from_address'),
                                    'utf-8')
                    mto = notificacao.pessoa.email
                    subject = NOTIFICACAO_ASSUNTO % d
                    body = NOTIFICACAO_MSG % d
                    text = u"From: %s\nTo: %s\nSubject: %s\n\n%s" % (
                        mfrom, mto, subject, body)
                    try:
                        mh.send(text, immediate=True, charset='utf8')
                    except:
                        logger(_(u'Erro ao enviar a mensagem de notificação.'))
예제 #9
0
 def _origens(self):
     sc = getUtility(ISecurityChecker)
     show_pessoa = sc.check("acessar_show_pessoa")
     remove_pessoaorigem = sc.check("acessar_remove_pessoaorigem", protocolo_id=self._protocolo.id)
     ret = []
     for p in self._protocolo.pessoa_origem:
         i = p.pessoa
         url_pessoa = show_pessoa and url("show-pessoa", id=i.id) or None
         url_remove = (
             remove_pessoaorigem
             and url("remove-pessoaorigem", protocolo_id=self._protocolo.id, pessoa_id=i.id)
             or None
         )
         ret.append({"nome": i.nome, "email": i.email, "url": url_pessoa, "url-remove": url_remove})
     return ret
예제 #10
0
 def _origens(self):
     sc = getUtility(ISecurityChecker)
     show_pessoa = sc.check('acessar_show_pessoa')
     remove_pessoaorigem = sc.check('acessar_remove_pessoaorigem', protocolo_id=self._protocolo.id)
     ret = []
     for p in self._protocolo.pessoa_origem:
         i = p.pessoa
         url_pessoa = show_pessoa and url('show-pessoa', id=i.id) or None
         url_remove = remove_pessoaorigem and url('remove-pessoaorigem', protocolo_id=self._protocolo.id, pessoa_id=i.id) or None
         ret.append({
             'nome': i.nome,
             'email': i.email,
             'url': url_pessoa,
             'url-remove': url_remove,
             })
     return ret
예제 #11
0
 def _apensado(self):
     i = self._protocolo.apensado
     if i is not None:
         return {
             'numero': i.numero,
             'url': url('show-protocolo', id=i.id)
             }
예제 #12
0
 def _observacoes(self):
     ret = []
     sc = getUtility(ISecurityChecker)
     if not sc.check("visualizar_observacoes", protocolo_id=self._protocolo.id):
         return ret
     for i in self._protocolo.observacao:
         edit_observacao = sc.check("acessar_edit_observacao", protocolo_id=self._protocolo.id, observacao_id=i.id)
         url_edit = edit_observacao and url("edit-observacao", id=i.id) or None
         remove_observacao = sc.check(
             "acessar_remove_observacao", protocolo_id=self._protocolo.id, observacao_id=i.id
         )
         url_remove = remove_observacao and url("remove-observacao", id=i.id) or None
         ret.append(
             {"texto": i.texto, "data_observacao": i.data_observacao, "url-edit": url_edit, "url-remove": url_remove}
         )
     return ret
예제 #13
0
 def _anexos(self):
     ret = []
     sc = getUtility(ISecurityChecker)
     if not sc.check('visualizar_anexos', protocolo_id=self._protocolo.id):
         return ret
     for i in self._protocolo.anexo:
         remove_anexo = sc.check('acessar_remove_anexo', protocolo_id=self._protocolo.id, anexo_id=i.id)
         url_remove = remove_anexo and url('remove-anexo', id=i.id) or None
         ret.append({
             'arquivo': i.arquivo,
             'tamanho': i.tamanho,
             'data_anexo': i.data_anexo,
             'download_url': url('download-anexo', id=i.id),
             'url-remove': url_remove,
             })
     return ret
예제 #14
0
 def _apensado(self):
     i = self._protocolo.apensado
     if i is not None:
         return {
             'numero': i.numero,
             'url': url('show-protocolo', id=i.id)
             }
예제 #15
0
 def _anexos(self):
     ret = []
     sc = getUtility(ISecurityChecker)
     if not sc.check('visualizar_anexos', protocolo_id=self._protocolo.id):
         return ret
     for i in self._protocolo.anexo:
         remove_anexo = sc.check('acessar_remove_anexo', protocolo_id=self._protocolo.id, anexo_id=i.id)
         url_remove = remove_anexo and url('remove-anexo', id=i.id) or None
         ret.append({
             'arquivo': i.arquivo,
             'tamanho': i.tamanho,
             'data_anexo': i.data_anexo,
             'download_url': url('download-anexo', id=i.id),
             'url-remove': url_remove,
             })
     return ret
예제 #16
0
 def _origens(self):
     sc = getUtility(ISecurityChecker)
     show_pessoa = sc.check('acessar_show_pessoa')
     remove_pessoaorigem = sc.check('acessar_remove_pessoaorigem', protocolo_id=self._protocolo.id)
     ret = []
     for p in self._protocolo.pessoa_origem:
         i = p.pessoa
         url_pessoa = show_pessoa and url('show-pessoa', id=i.id) or None
         url_remove = remove_pessoaorigem and url('remove-pessoaorigem', protocolo_id=self._protocolo.id, pessoa_id=i.id) or None
         ret.append({
             'nome': i.nome,
             'email': i.email,
             'url': url_pessoa,
             'url-remove': url_remove,
             })
     return ret
예제 #17
0
 def _observacoes(self):
     ret = []
     sc = getUtility(ISecurityChecker)
     if not sc.check('visualizar_observacoes', protocolo_id=self._protocolo.id):
         return ret
     for i in self._protocolo.observacao:
         edit_observacao = sc.check('acessar_edit_observacao', protocolo_id=self._protocolo.id, observacao_id=i.id)
         url_edit = edit_observacao and url('edit-observacao', id=i.id) or None
         remove_observacao = sc.check('acessar_remove_observacao', protocolo_id=self._protocolo.id, observacao_id=i.id)
         url_remove = remove_observacao and url('remove-observacao', id=i.id) or None
         ret.append({
             'texto': i.texto,
             'data_observacao': i.data_observacao,
             'url-edit': url_edit,
             'url-remove': url_remove,
             })
     return ret
예제 #18
0
 def _apensos(self):
     ret = []
     for i in self._protocolo.apenso:
         ret.append({
             'numero': i.numero,
             'url': url('show-protocolo', id=i.id),
             })
     return ret
예제 #19
0
 def _referenciado_por(self):
     ret = []
     sc = getUtility(ISecurityChecker)
     if not sc.check("acessar_list_referencia"):
         return ret
     for i in self._protocolo.referencia:
         ret.append({"numero": i.protocolo.numero, "url": url("show-protocolo", id=i.protocolo_id)})
     return ret
예제 #20
0
 def _observacoes(self):
     ret = []
     sc = getUtility(ISecurityChecker)
     if not sc.check('visualizar_observacoes', protocolo_id=self._protocolo.id):
         return ret
     for i in self._protocolo.observacao:
         edit_observacao = sc.check('acessar_edit_observacao', protocolo_id=self._protocolo.id, observacao_id=i.id)
         url_edit = edit_observacao and url('edit-observacao', id=i.id) or None
         remove_observacao = sc.check('acessar_remove_observacao', protocolo_id=self._protocolo.id, observacao_id=i.id)
         url_remove = remove_observacao and url('remove-observacao', id=i.id) or None
         ret.append({
             'texto': i.texto,
             'data_observacao': i.data_observacao,
             'url-edit': url_edit,
             'url-remove': url_remove,
             })
     return ret
예제 #21
0
 def _apensos(self):
     ret = []
     for i in self._protocolo.apenso:
         ret.append({
             'numero': i.numero,
             'url': url('show-protocolo', id=i.id),
             })
     return ret
예제 #22
0
 def update(self):
     self.request.set('disable_border', True)
     self.dados = []
     session = Session()
     items = session.query(db.Responsavel).all()
     for i in items:
         self.dados.append({
             'id': i.id,
             'area_id': i.area_id,
             'area_sigla': i.area.sigla,
             'area_nome': i.area.nome,
             'pessoa_id': i.pessoa_id,
             'pessoa_nome': i.pessoa.nome,
             'pessoa_email': i.pessoa.email,
             'data_responsavel': i.data_responsavel,
             'url-area': url('show-area', id=i.area_id),
             'url-pessoa': url('show-pessoa', id=i.pessoa_id),
            })
예제 #23
0
 def update(self):
     self.request.set('disable_border', True)
     self.dados = []
     session = Session()
     items = session.query(db.Responsavel).all()
     for i in items:
         self.dados.append({
             'id': i.id,
             'area_id': i.area_id,
             'area_sigla': i.area.sigla,
             'area_nome': i.area.nome,
             'pessoa_id': i.pessoa_id,
             'pessoa_nome': i.pessoa.nome,
             'pessoa_email': i.pessoa.email,
             'data_responsavel': i.data_responsavel,
             'url-area': url('show-area', id=i.area_id),
             'url-pessoa': url('show-pessoa', id=i.pessoa_id),
            })
예제 #24
0
 def _anexos(self):
     ret = []
     sc = getUtility(ISecurityChecker)
     if not sc.check("visualizar_anexos", protocolo_id=self._protocolo.id):
         return ret
     for i in self._protocolo.anexo:
         remove_anexo = sc.check("acessar_remove_anexo", protocolo_id=self._protocolo.id, anexo_id=i.id)
         url_remove = remove_anexo and url("remove-anexo", id=i.id) or None
         ret.append(
             {
                 "arquivo": i.arquivo,
                 "tamanho": i.tamanho,
                 "data_anexo": i.data_anexo,
                 "download_url": url("download-anexo", id=i.id),
                 "url-remove": url_remove,
             }
         )
     return ret
예제 #25
0
 def update(self):
     self.request.set("disable_border", True)
     self.dados = []
     api = getUtility(ISPDOAPI)
     fluxo = api.getFluxo()
     self.request.response.setCookie("fluxo_id", fluxo.id)
     self.dados_fluxo = {"nome": fluxo.nome, "url": url("show-fluxo", id=fluxo.id)}
     for i in fluxo.transicao:
         self.dados.append(
             {
                 "fluxo_id": i.fluxo_id,
                 "inicial": i.inicial,
                 "area_origem": i.area_origem.nome,
                 "url-area-origem": url("show-area", id=i.area_origem_id),
                 "area_destino": i.area_destino.nome,
                 "url-area-destino": url("show-area", id=i.area_destino_id),
                 "url-remove": url("remove-transicao", id=i.id),
             }
         )
예제 #26
0
파일: api.py 프로젝트: interlegis/il.spdo
    def _EnviaNotificacoes(self, protocolos):
        """Envia emails de notificação, avisando as pessoas
        interessadas que os protocolos tramitaram.
        """
        protocolos = list(set(protocolos))
        pu = getToolByName(getSite(), 'portal_url')
        portal = pu.getPortalObject()
        mh = portal.MailHost
        session = Session()
        for protocolo_id in protocolos:
            notificacoes = session.query(db.Notificacao).\
                           filter_by(protocolo_id=protocolo_id).all()
            for notificacao in notificacoes:
                logger(_(u'Notificando ') + notificacao.pessoa.email)

                # TODO: refatorar. Essa lista de tramites pode vir
                # pronta do método TramiteEnvio, evitando notificações
                # desnecessárias nas tramitações por cópia.

                tramites = session.query(db.Tramite).\
                           filter_by(protocolo_id=protocolo_id).\
                           filter_by(data_recebimento=None).all()
                for tramite in tramites:
                    d = {'numero': notificacao.protocolo.numero,
                         'data_tramitacao': tramite.data_disponibilizacao,
                         'assunto': notificacao.protocolo.assunto,
                         'area_origem': tramite.area_anterior.nome,
                         'responsavel_origem': tramite.area_anterior.responsavel[-1].pessoa.nome,
                         'area_destino': tramite.area.nome,
                         'responsavel_destino': tramite.responsavel.pessoa.nome,
                         'situacao': notificacao.protocolo.situacao.nome,
                         'url_protocolo': url('show-protocolo', id=notificacao.protocolo.id),
                         'url_notificacoes': url('list-notificacao')}
                    mfrom=unicode(portal.getProperty('email_from_address'), 'utf-8')
                    mto=notificacao.pessoa.email
                    subject=NOTIFICACAO_ASSUNTO % d
                    body=NOTIFICACAO_MSG % d
                    text = u"From: %s\nTo: %s\nSubject: %s\n\n%s" % (mfrom, mto, subject, body)
                    try:
                        mh.send(text, immediate=True, charset='utf8')
                    except:
                        logger(_(u'Erro ao enviar a mensagem de notificação.'))
예제 #27
0
 def update(self):
     self.request.set("disable_border", True)
     self.dados = []
     session = Session()
     items = session.query(db.Responsavel).all()
     for i in items:
         self.dados.append(
             {
                 "id": i.id,
                 "area_id": i.area_id,
                 "area_sigla": i.area.sigla,
                 "area_nome": i.area.nome,
                 "pessoa_id": i.pessoa_id,
                 "pessoa_nome": i.pessoa.nome,
                 "pessoa_email": i.pessoa.email,
                 "data_responsavel": i.data_responsavel,
                 "url-area": url("show-area", id=i.area_id),
                 "url-pessoa": url("show-pessoa", id=i.pessoa_id),
             }
         )
예제 #28
0
 def _referenciado_por(self):
     ret = []
     sc = getUtility(ISecurityChecker)
     if not sc.check('acessar_list_referencia'):
         return ret
     for i in self._protocolo.referencia:
         ret.append({
             'numero': i.protocolo.numero,
             'url': url('show-protocolo', id=i.protocolo_id),
             })
     return ret
예제 #29
0
 def update(self):
     self.request.set('disable_border', True)
     self.dados = []
     api = getUtility(ISPDOAPI)
     fluxo = api.getFluxo()
     self.request.response.setCookie('fluxo_id', fluxo.id)
     self.dados_fluxo = {
         'nome':fluxo.nome,
         'url': url('show-fluxo', id=fluxo.id),
         }
     for i in fluxo.transicao:
         self.dados.append({
             'fluxo_id': i.fluxo_id,
             'inicial': i.inicial,
             'area_origem': i.area_origem.nome,
             'url-area-origem': url('show-area', id=i.area_origem_id),
             'area_destino': i.area_destino.nome,
             'url-area-destino': url('show-area', id=i.area_destino_id),
             'url-remove': url('remove-transicao', id=i.id),
             })
예제 #30
0
 def _referenciado_por(self):
     ret = []
     sc = getUtility(ISecurityChecker)
     if not sc.check('acessar_list_referencia'):
         return ret
     for i in self._protocolo.referencia:
         ret.append({
             'numero': i.protocolo.numero,
             'url': url('show-protocolo', id=i.protocolo_id),
             })
     return ret
예제 #31
0
    def _menu(self):
        sc = getUtility(ISecurityChecker)
        protocolo_id = self._protocolo.id
        apenso_id = self._protocolo.apenso_id
        ret = []
        
        if sc.check('acessar_edit_protocolo', protocolo_id=protocolo_id):
            ret.append({'url': url('edit-protocolo', id=protocolo_id),
                        'titulo': _(u'Atualizar Protocolo'),
                        'id': 'overlay-edit-protocolo'})

        if sc.check('acessar_add_observacao', protocolo_id=protocolo_id):
            ret.append({'url': url('add-observacao', protocolo_id=protocolo_id),
                        'titulo': _(u'Adicionar Observação'),
                        'class': 'overlay-add-edit-observacao'})

        if sc.check('acessar_add_anexo', protocolo_id=protocolo_id):
            ret.append({'url': url('add-anexo', protocolo_id=protocolo_id),
                        'titulo': _(u'Adicionar Anexo')})

        if sc.check('acessar_list_referencia', protocolo_id=protocolo_id):
            ret.append({'url': url('list-referencia', protocolo_id=protocolo_id),
                        'titulo': _(u'Referências')})

        if sc.check('acessar_add_apenso', protocolo_id=protocolo_id, apenso_id=apenso_id):
            ret.append({'url': url('add-apenso', protocolo_id=protocolo_id),
                        'titulo': _(u'Apenso')})

        if sc.check('acessar_add_tramite', protocolo_id=protocolo_id):
            ret.append({'url': url('add-tramite', protocolo_id=protocolo_id),
                        'titulo': _(u'Tramitar')})

        return ret
예제 #32
0
    def _menu(self):
        sc = getUtility(ISecurityChecker)
        protocolo_id = self._protocolo.id
        apenso_id = self._protocolo.apenso_id
        ret = []
        
        if sc.check('acessar_edit_protocolo', protocolo_id=protocolo_id):
            ret.append({'url': url('edit-protocolo', id=protocolo_id),
                        'titulo': _(u'Atualizar Protocolo'),
                        'id': 'overlay-edit-protocolo'})

        if sc.check('acessar_add_observacao', protocolo_id=protocolo_id):
            ret.append({'url': url('add-observacao', protocolo_id=protocolo_id),
                        'titulo': _(u'Adicionar Observação'),
                        'class': 'overlay-add-edit-observacao'})

        if sc.check('acessar_add_anexo', protocolo_id=protocolo_id):
            ret.append({'url': url('add-anexo', protocolo_id=protocolo_id),
                        'titulo': _(u'Adicionar Anexo')})

        if sc.check('acessar_list_referencia', protocolo_id=protocolo_id):
            ret.append({'url': url('list-referencia', protocolo_id=protocolo_id),
                        'titulo': _(u'Referências')})

        if sc.check('acessar_add_apenso', protocolo_id=protocolo_id, apenso_id=apenso_id):
            ret.append({'url': url('add-apenso', protocolo_id=protocolo_id),
                        'titulo': _(u'Apenso')})

        if sc.check('acessar_add_tramite', protocolo_id=protocolo_id):
            ret.append({'url': url('add-tramite', protocolo_id=protocolo_id),
                        'titulo': _(u'Tramitar')})

        return ret
예제 #33
0
파일: api.py 프로젝트: interlegis/il.spdo
 def _getProtocolosData(self, protocolos):
     ret = []
     for i in protocolos:
         ret.append({
            'id': i.id,
            'numero': i.numero,
            'data_protocolo': i.data_protocolo,
            'assunto': i.assunto,
            'tipodocumento': i.tipodocumento.nome,
            'situacao': i.situacao.nome,
            'url': url('show-protocolo', id=i.id),
            })
     return ret
예제 #34
0
 def _getProtocolosData(self, protocolos):
     ret = []
     for i in protocolos:
         ret.append({
             'id': i.id,
             'numero': i.numero,
             'data_protocolo': i.data_protocolo,
             'assunto': i.assunto,
             'tipodocumento': i.tipodocumento.nome,
             'situacao': i.situacao.nome,
             'url': url('show-protocolo', id=i.id),
         })
     return ret
예제 #35
0
 def _destinos(self):
     sc = getUtility(ISecurityChecker)
     show_pessoa = sc.check('acessar_show_pessoa')
     edit_pessoadestino = sc.check('acessar_edit_pessoadestino', protocolo_id=self._protocolo.id)
     remove_pessoadestino = sc.check('acessar_remove_pessoadestino', protocolo_id=self._protocolo.id)
     ret = []
     for p in self._protocolo.pessoa_destino:
         i = p.pessoa
         url_pessoa = show_pessoa and url('show-pessoa', id=i.id) or None
         url_edit = edit_pessoadestino and url('edit-pessoadestino', protocolo_id=self._protocolo.id, pessoa_id=i.id) or None
         url_remove = remove_pessoadestino and url('remove-pessoadestino', protocolo_id=self._protocolo.id, pessoa_id=i.id) or None
         ret.append({
             'nome': i.nome,
             'email': i.email,
             'tipoentrega': p.tipoentrega.nome if p.tipoentrega is not None else '',
             'data_entrega': p.data_entrega,
             'objeto_correios': p.objeto_correios,
             'url': url_pessoa,
             'url-edit': url_edit,
             'url-remove': url_remove,
             })
     return ret
예제 #36
0
 def _destinos(self):
     sc = getUtility(ISecurityChecker)
     show_pessoa = sc.check('acessar_show_pessoa')
     edit_pessoadestino = sc.check('acessar_edit_pessoadestino', protocolo_id=self._protocolo.id)
     remove_pessoadestino = sc.check('acessar_remove_pessoadestino', protocolo_id=self._protocolo.id)
     ret = []
     for p in self._protocolo.pessoa_destino:
         i = p.pessoa
         url_pessoa = show_pessoa and url('show-pessoa', id=i.id) or None
         url_edit = edit_pessoadestino and url('edit-pessoadestino', protocolo_id=self._protocolo.id, pessoa_id=i.id) or None
         url_remove = remove_pessoadestino and url('remove-pessoadestino', protocolo_id=self._protocolo.id, pessoa_id=i.id) or None
         ret.append({
             'nome': i.nome,
             'email': i.email,
             'tipoentrega': p.tipoentrega.nome if p.tipoentrega is not None else '',
             'data_entrega': p.data_entrega,
             'objeto_correios': p.objeto_correios,
             'url': url_pessoa,
             'url-edit': url_edit,
             'url-remove': url_remove,
             })
     return ret
예제 #37
0
 def update(self):
     self.request.set('disable_border', True)
     self.dados = []
     session = Session()
     items = session.query(db.Fluxo).all()
     for i in items:
         self.dados.append({
            'id': i.id,
            'nome': i.nome,
            'tipoprotocolo': self._tipo_protocolo(i.tipoprotocolo),
            'tipodocumento': i.tipodocumento.nome,
            'flexivel': i.flexivel,
            'url-transicao': url('list-transicao', fluxo_id=i.id),
            })
예제 #38
0
 def update(self):
     self.request.set('disable_border', True)
     self.dados = []
     session = Session()
     items = session.query(db.Fluxo).all()
     for i in items:
         self.dados.append({
            'id': i.id,
            'nome': i.nome,
            'tipoprotocolo': self._tipo_protocolo(i.tipoprotocolo),
            'tipodocumento': i.tipodocumento.nome,
            'flexivel': i.flexivel,
            'url-transicao': url('list-transicao', fluxo_id=i.id),
            })
예제 #39
0
 def update(self):
     sc = getUtility(ISecurityChecker)
     sc.enforce('acessar_list_notificacao')
     self.request.set('disable_border', True)
     self.dados = []
     self.dados_pessoa = {}
     api = getUtility(ISPDOAPI)
     pessoa = api.getAuthPessoa()
     self.dados_pessoa = {
         'pessoa_id': pessoa.id,
         'nome': pessoa.nome,
         'email': pessoa.email,
         'url': url('show-pessoa', id=pessoa.id)
         }
     for i in pessoa.notificacao:
         self.dados.append({
             'protocolo_id': i.protocolo.id,
             'numero': i.protocolo.numero,
             'data_protocolo': i.protocolo.data_protocolo,
             'assunto': i.protocolo.assunto,
             'tipodocumento': i.protocolo.tipodocumento.nome,
             'situacao': i.protocolo.situacao.nome,
             'url-remove': url('remove-notificacao', protocolo_id=i.protocolo.id),
             })
예제 #40
0
 def update(self):
     self.request.set("disable_border", True)
     self.dados = []
     session = Session()
     items = session.query(db.Fluxo).all()
     for i in items:
         self.dados.append(
             {
                 "id": i.id,
                 "nome": i.nome,
                 "tipoprotocolo": self._tipo_protocolo(i.tipoprotocolo),
                 "tipodocumento": i.tipodocumento.nome,
                 "flexivel": i.flexivel,
                 "url-transicao": url("list-transicao", fluxo_id=i.id),
             }
         )
예제 #41
0
 def _tramites(self):
     sc = getUtility(ISecurityChecker)
     show_pessoa = sc.check('acessar_show_pessoa')
     visualizar_despachos = sc.check('visualizar_despachos', protocolo_id=self._protocolo.id)
     ret = []
     for i in self._protocolo.tramite:
         url_responsavel = show_pessoa and url('show-pessoa', id=i.responsavel.pessoa.id) or None
         despacho = visualizar_despachos and i.despacho or None
         ret.append({
             'data_disponibilizacao': i.data_disponibilizacao,
             'data_recebimento': i.data_recebimento,
             'area': i.area.sigla,
             'nome_responsavel': i.responsavel.pessoa.nome,
             'url-responsavel': url_responsavel,
             'despacho': despacho,
             })
     return ret
예제 #42
0
 def _tramites(self):
     sc = getUtility(ISecurityChecker)
     show_pessoa = sc.check("acessar_show_pessoa")
     visualizar_despachos = sc.check("visualizar_despachos", protocolo_id=self._protocolo.id)
     ret = []
     for i in self._protocolo.tramite:
         url_responsavel = show_pessoa and url("show-pessoa", id=i.responsavel.pessoa.id) or None
         despacho = visualizar_despachos and i.despacho or None
         ret.append(
             {
                 "data_disponibilizacao": i.data_disponibilizacao,
                 "data_recebimento": i.data_recebimento,
                 "area": i.area.sigla,
                 "nome_responsavel": i.responsavel.pessoa.nome,
                 "url-responsavel": url_responsavel,
                 "despacho": despacho,
             }
         )
     return ret
예제 #43
0
 def _tramites(self):
     sc = getUtility(ISecurityChecker)
     show_pessoa = sc.check('acessar_show_pessoa')
     visualizar_despachos = sc.check('visualizar_despachos', protocolo_id=self._protocolo.id)
     ret = []
     for i in self._protocolo.tramite:
         if i.responsavel.pessoa:
             url_responsavel = show_pessoa and url('show-pessoa', id=i.responsavel.pessoa.id) or None
         else:
             url_responsavel = None
         despacho = visualizar_despachos and i.despacho or None
         ret.append({
             'data_disponibilizacao': i.data_disponibilizacao,
             'data_recebimento': i.data_recebimento,
             'area': i.area.sigla,
             'nome_responsavel': i.responsavel.pessoa.nome,
             'url-responsavel': url_responsavel,
             'despacho': despacho,
             })
     return ret
예제 #44
0
    def _menu(self):
        sc = getUtility(ISecurityChecker)
        protocolo_id = self._protocolo.id
        apenso_id = self._protocolo.apenso_id
        ret = []

        if sc.check("acessar_edit_protocolo", protocolo_id=protocolo_id):
            ret.append(
                {
                    "url": url("edit-protocolo", id=protocolo_id),
                    "titulo": _(u"Atualizar Protocolo"),
                    "id": "overlay-edit-protocolo",
                }
            )

        if sc.check("acessar_add_observacao", protocolo_id=protocolo_id):
            ret.append(
                {
                    "url": url("add-observacao", protocolo_id=protocolo_id),
                    "titulo": _(u"Adicionar Observação"),
                    "class": "overlay-add-edit-observacao",
                }
            )

        if sc.check("acessar_add_anexo", protocolo_id=protocolo_id):
            ret.append({"url": url("add-anexo", protocolo_id=protocolo_id), "titulo": _(u"Adicionar Anexo")})

        if sc.check("acessar_list_referencia", protocolo_id=protocolo_id):
            ret.append({"url": url("list-referencia", protocolo_id=protocolo_id), "titulo": _(u"Referências")})

        if sc.check("acessar_add_apenso", protocolo_id=protocolo_id, apenso_id=apenso_id):
            ret.append({"url": url("add-apenso", protocolo_id=protocolo_id), "titulo": _(u"Apenso")})

        if sc.check("acessar_add_tramite", protocolo_id=protocolo_id):
            ret.append({"url": url("add-tramite", protocolo_id=protocolo_id), "titulo": _(u"Tramitar")})

        return ret
예제 #45
0
 def show_url(self, id, vs=None):
     vs = self.view_sufix if vs is None else vs
     return url('show-'+vs, id=id)
예제 #46
0
 def _apensos(self):
     ret = []
     for i in self._protocolo.apenso:
         ret.append({"numero": i.numero, "url": url("show-protocolo", id=i.id)})
     return ret
예제 #47
0
 def _apensado(self):
     i = self._protocolo.apensado
     if i is not None:
         return {"numero": i.numero, "url": url("show-protocolo", id=i.id)}
예제 #48
0
 def add_url(self, vs=None):
     vs = self.view_sufix if vs is None else vs
     return url('add-'+vs)
예제 #49
0
파일: ws.py 프로젝트: LeandroJatai/il.spdo
    def _consulta_protocolos(self, dados):
        session = Session()
        items = session.query(db.Protocolo)

        tipoprotocolo = dados.get('tipoprotocolo', None)
        if tipoprotocolo is not None:
            items = items.filter_by(tipoprotocolo=tipoprotocolo)

        tipodocumento = dados.get('tipodocumento', None)
        if tipodocumento is not None:
            tipodocumento_id = session.query(
                db.TipoDocumento).filter_by(nome=tipodocumento).first().id
            items = items.filter_by(tipodocumento_id=tipodocumento_id)

        situacao = dados.get('situacao', None)
        if situacao is not None:
            situacao_id = session.query(
                db.Situacao).filter_by(nome=situacao).first().id
            items = items.filter_by(situacao_id=situacao_id)

        origem = dados.get('origem', None)
        if origem is not None:
            pessoa1 = aliased(db.Pessoa)
            items = items.join(db.PessoaOrigem).join(pessoa1)
            clause = rdb.or_(pessoa1.nome.contains(origem),
                             pessoa1.nome.ilike(origem))
            items = items.filter(clause)

        destino = dados.get('destino', None)
        if destino is not None:
            pessoa2 = aliased(db.Pessoa)
            items = items.join(db.PessoaDestino).join(pessoa2)
            clause = rdb.or_(pessoa2.nome.contains(destino),
                             pessoa2.nome.ilike(destino))
            items = items.filter(clause)

        assunto = dados.get('assunto', None)
        if assunto is not None:
            clause = rdb.or_(db.Protocolo.assunto.contains(assunto),
                             db.Protocolo.assunto.ilike(assunto))
            items = items.filter(clause)

        area = dados.get('area', None)
        if area is not None:
            area_tb = aliased(db.Area)
            area_id = area_tb.id
            inbox1 = aliased(db.TramiteInbox)
            items = items.join(inbox1).filter_by(area_id=area_id)

        tempo_inativo = dados.get('inativo', None)
        if tempo_inativo is not None:
            tempo_inativo = int(tempo_inativo)
            d = datetime.datetime.now() - datetime.timedelta(
                days=tempo_inativo)
            inbox2 = aliased(db.TramiteInbox)
            items = items.join(inbox2).filter(inbox2.version_date < d)

        ret = []
        resultado = items.limit(SEARCH_LIMIT).all()
        for i in resultado:
            ret.append({
                'id': i.id,
                'numero': i.numero,
                'data_protocolo': i.data_protocolo.strftime('%d/%m/%Y'),
                'assunto': i.assunto,
                'tipodocumento': i.tipodocumento.nome,
                'situacao': i.situacao.nome,
                'url': url('show-protocolo', id=i.id),
            })
        return ret