diff --git a/sigi/apps/servicos/models.py~ b/sigi/apps/servicos/models.py~
new file mode 100644
index 0000000..a4d7ba0
--- /dev/null
+++ b/sigi/apps/servicos/models.py~
@@ -0,0 +1,122 @@
+# -*- coding: utf-8 -*-
+from django.db import models
+from sigi.apps.casas.models import CasaLegislativa, Funcionario
+from datetime import date
+from django.core.mail import send_mail
+from sigi.settings import DEFAULT_FROM_EMAIL
+
+class TipoServico(models.Model):
+ email_help = '''Use:
+ {url} para incluir a URL do serviço,
+ {senha} para incluir a senha inicial do serviço'''
+ nome = models.CharField('Nome', max_length=60)
+ sigla = models.CharField('Sigla', max_length='12')
+ template_email_ativa = models.TextField('Template de email de ativação', help_text = email_help, blank=True)
+ template_email_altera = models.TextField('Template de email de alteração', help_text = email_help, blank=True)
+ template_email_desativa = models.TextField('Template de email de desativação', help_text = email_help + '
{motivo} para incluir o motivo da desativação do serviço', blank=True)
+
+ @property
+ def qtde_casas_atendidas(self):
+ u"""Quantidade de casas atendidas"""
+ return self.servico_set.filter(data_desativacao=None).count()
+
+ class Meta:
+ verbose_name = 'Tipo de serviço'
+ verbose_name_plural = 'Tipos de serviço'
+
+ def __unicode__(self):
+ return self.nome;
+
+class Servico(models.Model):
+ casa_legislativa = models.ForeignKey(CasaLegislativa, verbose_name='Casa legislativa')
+ tipo_servico = models.ForeignKey(TipoServico, verbose_name='Tipo de serviço')
+ contato_tecnico = models.ForeignKey(Funcionario, verbose_name='Contato técnico', related_name='contato_tecnico')
+ contato_administrativo = models.ForeignKey(Funcionario, verbose_name='Contato administrativo', related_name='contato_administrativo')
+ url = models.URLField('URL do serviço', verify_exists=False, blank=True)
+ hospedagem_interlegis = models.BooleanField('Hospedagem no Interlegis?')
+ nome_servidor = models.CharField('Hospedado em', max_length=60, blank=True, help_text='Se hospedado no Interlegis, informe o nome do servidor.
Senão, informe o nome do provedor de serviços.')
+ porta_servico = models.PositiveSmallIntegerField('Porta de serviço (instância)', blank=True, null=True)
+ senha_inicial = models.CharField('Senha inicial', max_length=33, blank=True)
+ data_ativacao = models.DateField('Data de ativação', default=date.today)
+ data_alteracao = models.DateField('Data da última alteração', blank=True, null=True, auto_now=True)
+ data_desativacao = models.DateField('Data de desativação', blank=True, null=True)
+ motivo_desativacao = models.TextField('Motivo da desativação', blank=True)
+
+ casa_legislativa.casa_uf_filter = True
+
+ def __unicode__(self):
+ return "%s (%s)" % (self.tipo_servico.nome, 'ativo' if self.data_desativacao is None else 'Desativado')
+
+ def save(self, *args, **kwargs):
+ # Reter o objeto original para verificar mudanças
+
+ if self.id is not None:
+ original = Servico.objects.get(id=self.id)
+
+ if self.id is None:
+ # Novo serviço, email de ativação
+ subject = u'INTERLEGIS - Ativação de serviço %s' % (self.tipo_servico.nome,)
+ body = self.tipo_servico.template_email_ativa
+ elif self.data_desativacao is not None and original.data_desativacao is None:
+ # Serviço foi desativado. Email de desativação
+ subject = u'INTERLEGIS - Desativação de serviço %s' % (self.tipo_servico.nome,)
+ body = self.tipo_servico.template_email_desativa
+ elif (self.tipo_servico != original.tipo_servico or
+ self.contato_tecnico != original.contato_tecnico or
+ self.url != original.url or
+ self.nome_servidor != original.nome_servidor or
+ self.senha_inicial != original.senha_inicial):
+ # Serviço foi alterado
+ subject = u'INTERLEGIS - Alteração de serviço %s' % (self.tipo_servico.nome,)
+ body = self.tipo_servico.template_email_altera
+ else:
+ # Salvar o Servico
+ super(Servico, self).save(*args, **kwargs)
+ return # sem enviar email
+
+ # Prepara e envia o email
+ body = body.replace('{url}', self.url) \
+ .replace('{senha}', self.senha_inicial) \
+ .replace('{motivo}', self.motivo_desativacao)
+
+# send_mail(subject, body, DEFAULT_FROM_EMAIL, \
+# (self.contato_tecnico.email,), fail_silently=False)
+
+ # Salvar o Servico
+ super(Servico, self).save(*args, **kwargs)
+
+ return
+
+class LogServico(models.Model):
+ servico = models.ForeignKey(Servico, verbose_name='Serviço')
+ descricao = models.CharField('Breve descrição da ação', max_length=60)
+ data = models.DateField('Data da ação', default=date.today)
+ log = models.TextField('Log da ação')
+
+ def __unicode__(self):
+ return "%s (%s)" % (self.descricao, self.data)
+
+ class Meta:
+ verbose_name = 'Log do serviço'
+ verbose_name_plural = 'Logs do serviço'
+
+class CasaAtendidaManager(models.Manager):
+ def get_query_set(self):
+ qs = super(CasaAtendidaManager, self).get_query_set()
+ qs = qs.exclude(codigo_interlegis='')
+ return qs
+
+class CasaAtendida(CasaLegislativa):
+ class Meta:
+ proxy = True
+ verbose_name_plural = 'Casas atendidas'
+
+ objects = CasaAtendidaManager()
+
+ @property
+ def servicos(self):
+ result = []
+ for servico in self.servico_set.all():
+ result.append(unicode(servico))
+
+ return ", ".join(result)
\ No newline at end of file