mirror of https://github.com/interlegis/sigi.git
Sesostris Vieira
4 years ago
4 changed files with 79 additions and 10 deletions
@ -0,0 +1,68 @@ |
|||||
|
# coding: utf-8 |
||||
|
from django.contrib.auth.models import User, Group |
||||
|
from sigi.apps.servidores.models import Servidor |
||||
|
from django.core.management.base import BaseCommand |
||||
|
|
||||
|
class Command(BaseCommand): |
||||
|
help = u'Transfere os dados do servidor OLD para o servidor NEW.' |
||||
|
args = u'old_id new_id' |
||||
|
|
||||
|
def handle(self, *args, **options): |
||||
|
if len(args) != 2: |
||||
|
self.stderr.write(u"Informe old_id e new_id") |
||||
|
return |
||||
|
|
||||
|
old_id = args[0] |
||||
|
new_id = args[1] |
||||
|
|
||||
|
old = Servidor.objects.get(id=old_id) |
||||
|
new = Servidor.objects.get(id=new_id) |
||||
|
|
||||
|
self.stdout.write(self.style.WARNING( |
||||
|
u"Transferir dados de {old_name} para {new_name}".format( |
||||
|
old_name=old.nome_completo, |
||||
|
new_name=new.nome_completo |
||||
|
) |
||||
|
)) |
||||
|
|
||||
|
self.stdout.write(u"\t* Transferindo a carteira de atendimento...") |
||||
|
for casa in old.casas_que_gerencia.all(): |
||||
|
new.casas_que_gerencia.add(casa) |
||||
|
old.casas_que_gerencia.remove(casa) |
||||
|
|
||||
|
self.stdout.write(u"\t* Transferindo ocorrências registradas...") |
||||
|
old.ocorrencia_set.all().update(servidor_registro=new) |
||||
|
|
||||
|
self.stdout.write(u"\t* Transferindo comentários de ocorrências...") |
||||
|
old.comentario_set.all().update(usuario=new) |
||||
|
|
||||
|
self.stdout.write(u"\t* Transferindo convênios geridos...") |
||||
|
old.convenio_set.all().update(servidor_gestao=new) |
||||
|
|
||||
|
self.stdout.write(u"\t* Transferindo convênios acompanhados...") |
||||
|
old.convenio_set.all().update(acompanha=new) |
||||
|
|
||||
|
self.stdout.write(u"\t* Transferindo participação em eventos...") |
||||
|
old.equipe_evento.all().update(membro=new) |
||||
|
|
||||
|
self.stdout.write(u"\t* Transferindo convites para eventos...") |
||||
|
old.convite_set.all().update(servidor=new) |
||||
|
|
||||
|
self.stdout.write(u"\t* Transferindo diagnósticos...") |
||||
|
old.diagnostico_set.all().update(responsavel=new) |
||||
|
|
||||
|
self.stdout.write(u"\t* Transferindo participação em diagnósticos...") |
||||
|
old.equipe_set.all().update(membro=new) |
||||
|
|
||||
|
self.stdout.write(u"\t* Transferindo dados de autenticação...") |
||||
|
|
||||
|
if new.user: |
||||
|
old.user.logentry_set.all().update(user=new) |
||||
|
old.user.delete() |
||||
|
else: |
||||
|
new.user = old.user |
||||
|
new.save() |
||||
|
old.user = None |
||||
|
old.save() |
||||
|
|
||||
|
self.stdout.write(u"Concluído!") |
Loading…
Reference in new issue