diff --git a/sigi/apps/casas/admin.py b/sigi/apps/casas/admin.py index 19b67f8..d5562de 100644 --- a/sigi/apps/casas/admin.py +++ b/sigi/apps/casas/admin.py @@ -1,11 +1,13 @@ # -*- coding: utf-8 -*- +from unicodedata import name from django.contrib import admin from django.contrib.contenttypes import generic from django.core.urlresolvers import reverse from django.http import HttpResponseRedirect from django.shortcuts import render from django.utils.translation import ugettext as _ +#from geraldo.site.newsite.django_1_0.django.forms import extras from image_cropping import ImageCroppingMixin from sigi.apps.casas.forms import OrgaoForm @@ -57,6 +59,24 @@ class PresidenteInline(admin.StackedInline): # A função extra foi usada para quando existir um registro com o campo igual a null não aparecer na frente dos mais novos ) +class ContatoInterlegisInline(admin.StackedInline): + model = Funcionario + fields = ('nome', 'sexo', 'data_nascimento', 'nota', 'email', 'cargo', + 'funcao', 'setor', 'tempo_de_servico', 'ult_alteracao', + 'endereco', 'municipio', 'bairro', 'cep', 'redes_sociais', + 'desativado', 'observacoes') + raw_id_fields = ('municipio',) + readonly_fields = ('ult_alteracao',) + extra = 1 + inlines = (TelefonesInline,) + verbose_name_plural = _(u'Contato Interlegis Vigente') + def get_queryset(self, request): + return (self.model.objects.filter(setor='contato_interlegis') + .extra(select={'ult_null': 'ult_alteracao is null'}).order_by('-ult_alteracao') + ) + def get_extra(self, request, obj=None , **kwargs): + extra = 0 + return extra class FuncionariosInline(admin.StackedInline): model = Funcionario @@ -65,6 +85,7 @@ class FuncionariosInline(admin.StackedInline): 'endereco', 'municipio', 'bairro', 'cep', 'redes_sociais', 'desativado', 'observacoes') raw_id_fields = ('municipio',) + # fieldsets = ((None, { # 'fields': ( # ('nome', 'sexo', 'data_nascimento'), @@ -80,15 +101,15 @@ class FuncionariosInline(admin.StackedInline): readonly_fields = ('ult_alteracao',) extra = 1 inlines = (TelefonesInline,) + verbose_name_plural = _(u'Outros Contatos da Casa') def get_queryset(self, request): - return (self.model.objects.exclude(cargo='Presidente') + return (self.model.objects.exclude(cargo='Presidente',) .exclude(desativado=True).extra(select={'ult_null': 'ult_alteracao is null'}) .order_by('ult_null', '-ult_alteracao') # A função extra foi usada para quando existir um registro com o campo igual a null não aparecer na frente dos mais novos ) - class ConveniosInline(admin.TabularInline): model = Convenio fieldsets = ( @@ -313,8 +334,11 @@ class ExcluirConvenioFilter(admin.SimpleListFilter): return tuple([(p.pk, p.sigla) for p in Projeto.objects.all()]) def queryset(self, request, queryset): - queryset = queryset.exclude(convenio__projeto_id=self.value()) - return queryset.distinct('municipio__uf__nome', 'nome') + if (self.value() is None): + return queryset + else: + queryset = queryset.exclude(convenio__projeto_id=self.value()).distinct('municipio__uf__nome', 'nome') + return queryset class ServicoFilter(admin.SimpleListFilter): title = _(u"Serviço") @@ -354,7 +378,7 @@ class ServicoFilter(admin.SimpleListFilter): class OrgaoAdmin(ImageCroppingMixin, BaseModelAdmin): form = OrgaoForm actions = ['adicionar_casas', ] - inlines = (TelefonesInline, PresidenteInline, FuncionariosInline, + inlines = (TelefonesInline, PresidenteInline, ContatoInterlegisInline, FuncionariosInline, ConveniosInline, ServicoInline, OcorrenciaInline,) list_display = ('id', 'sigla', 'nome', 'get_uf', 'get_gerentes', 'get_convenios', 'get_servicos') diff --git a/sigi/apps/convenios/models.py b/sigi/apps/convenios/models.py index 84e683d..5ab575e 100644 --- a/sigi/apps/convenios/models.py +++ b/sigi/apps/convenios/models.py @@ -3,13 +3,14 @@ import re import requests from datetime import datetime, date from django.db import models -from django.db.models import Q +from django.db.models import Q, fields from django.core.mail import send_mail from django.core.urlresolvers import reverse from django.utils.translation import ugettext as _ from sigi.apps.utils import SearchField, to_ascii from sigi.apps.casas.models import Orgao from sigi.apps.servidores.models import Servidor, Servico +#from sigi.apps.convenios.admin import ConvenioAdmin class Projeto(models.Model): """ Modelo para representar os projetos do programa @@ -249,18 +250,18 @@ class Convenio(models.Model): if ((self.data_retorno_assinatura is None) and (self.equipada and self.data_termo_aceite is not None)): - return _(u"Convênio nº {number} - equipada em {date} pelo {project}" + return _(u"{project} nº {number} - equipada em {date}" ).format(number=self.num_convenio, date=self.data_termo_aceite.strftime('%d/%m/%Y'), project=self.projeto.sigla) elif self.data_retorno_assinatura is None: - return _(u"Convênio nº {number} - adesão ao projeto {project}, " + return _(u"{project}, nº {number}, início " u"em {date}").format(number=self.num_convenio, project=self.projeto.sigla, date=self.data_adesao) if ((self.data_retorno_assinatura is not None) and not (self.equipada and self.data_termo_aceite is not None)): - return _(u"Convênio nº {number} - conveniada ao {project} em " + return _(u"{project}, nº {number}, inicio em " u"{date}. Status: {status}").format( number=self.num_convenio, project=self.projeto.sigla, @@ -268,7 +269,7 @@ class Convenio(models.Model): status=self.get_status()) if ((self.data_retorno_assinatura is not None) and (self.equipada and self.data_termo_aceite is not None)): - return _(u"Convẽnio nº {number} - conveniada ao {project} em {date}" + return _(u"{project}, nº {number}, início em {date}" u" e equipada em {equipped_date}. Status: {status}" ).format(number=self.num_convenio, project=self.projeto.sigla,