Conjunto de mudanças 5375 no repositório publico


Ignorar:
Timestamp:
15/10/2011 01:34:55 (8 anos atrás)
Autor:
fabianosantos
Mensagem:

Implementacao das atualizações na tabela de permissões sempre que um
novo tramite é realizado.

Arquivo:
1 editado

Legenda:

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

    r5368 r5375  
    229229    arquivo = Column(Text(), nullable=False)
    230230    tamanho = Column(Integer(), nullable=False)
     231    data = Column(DateTime(), default=datetime.datetime.now(), nullable=False)
    231232
    232233class Tramite(Base):
     
    241242    acao = Column(Text())
    242243    copia = Column(Boolean(), default=False)
     244    responsavel_id = Column(Integer, ForeignKey('responsavel.id'))
     245    responsavel = relationship("Responsavel", backref="tramite")
     246
     247    def __init__(self, protocolo_id, area_id, data_disponibilizacao, data_recebimento, acao, copia=False):
     248        self.protocolo_id = protocolo_id
     249        self.area_id = area_id
     250        self.data_disponibilizacao = data_disponibilizacao
     251        self.data_recebimento = data_recebimento
     252        self.acao = acao
     253        self.copia = copia
     254        session = Session()
     255
     256        #atribui o responsavel atual da área de destino do tramite
     257        query = session.query(Responsavel.id).filter(Responsavel.area_id==area_id)
     258        self.responsavel_id = query.order_by(Responsavel.id).all()[-1][0]
     259
     260        #testa se existe alguma permissão definida para o protocolo.
     261        query = session.query(Permissao).filter(Permissao.protocolo_id==protocolo_id)
     262        permissoes = query.all()
     263        #na criacao do protocolo não existem permissoes
     264        if not permissoes:
     265            escrita = True
     266        else:
     267            #nas demais, deve-se desativar a escrita da permissao do tramite anterior
     268            escrita = False
     269            permissao_anterior = permissoes[-1]
     270            permissao_anterior.escrita = False
     271
     272        permissao = Permissao(
     273                    protocolo_id=protocolo_id,
     274                    area_id=area_id,
     275                    leitura=True,
     276                    escrita=escrita,
     277                    )
     278        session.add(permissao)
    243279
    244280class Fluxo(Base):
     
    354390
    355391    # Responsavel
    356     re1 = Responsavel(area_id=a1.id, pessoa_id=ps1.id)
     392    re1 = Responsavel(area_id=a1.id, pessoa_id=ps2.id)
    357393    session.add(re1)
    358     re2 = Responsavel(area_id=a2.id, pessoa_id=ps2.id)
     394    re2 = Responsavel(area_id=a2.id, pessoa_id=ps3.id)
    359395    session.add(re2)
    360     re3 = Responsavel(area_id=a3.id, pessoa_id=ps3.id)
     396    re3 = Responsavel(area_id=a3.id, pessoa_id=ps1.id)
    361397    session.add(re3)
     398    re4 = Responsavel(area_id=a1.id, pessoa_id=ps3.id)
     399    session.add(re4)
     400    re5 = Responsavel(area_id=a2.id, pessoa_id=ps1.id)
     401    session.add(re5)
     402    re6 = Responsavel(area_id=a3.id, pessoa_id=ps2.id)
     403    session.add(re6)
     404
    362405    session.flush()
    363406
     
    420463   
    421464    # Tramite
    422     tr1 = Tramite(protocolo_id=pt1.id, area_id=a1.id)
     465    data = datetime.datetime.now()
     466    tr1 = Tramite(pt1.id, a1.id, None, data,'',False)
    423467    session.add(tr1)
    424     tr2 = Tramite(protocolo_id=pt1.id, area_id=a2.id, acao='Revisar...')
     468    tr2 = Tramite(pt1.id, a2.id, None, data, 'Revisar...')
    425469    session.add(tr2)
    426     tr3 = Tramite(protocolo_id=pt1.id, area_id=a3.id, acao='Verificar...')
     470    tr3 = Tramite(pt1.id, a3.id, None, data, 'Verificar...')
    427471    session.add(tr3)
    428472    session.flush()
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.