Browse Source

mudancas do model de casas legislativas para comportar o formato de contatos dos diagnosticos

diagnosticos
Felipe Vieira 13 years ago
parent
commit
465fa6d274
  1. 30
      sigi/apps/casas/admin.py
  2. 43
      sigi/apps/casas/models.py

30
sigi/apps/casas/admin.py

@ -2,8 +2,8 @@
from django.contrib import admin from django.contrib import admin
from django.contrib.contenttypes import generic from django.contrib.contenttypes import generic
from sigi.apps.casas.forms import CasaLegislativaForm from sigi.apps.casas.forms import CasaLegislativaForm
from sigi.apps.casas.models import CasaLegislativa from sigi.apps.casas.models import CasaLegislativa, Presidente, Funcionario
from sigi.apps.contatos.models import Contato, Telefone from sigi.apps.contatos.models import Telefone
from sigi.apps.convenios.models import Projeto, Convenio, EquipamentoPrevisto, Anexo from sigi.apps.convenios.models import Projeto, Convenio, EquipamentoPrevisto, Anexo
from django.http import HttpResponse, HttpResponseRedirect from django.http import HttpResponse, HttpResponseRedirect
from sigi.apps.casas.reports import CasasLegislativasLabels, CasasLegislativasReport from sigi.apps.casas.reports import CasasLegislativasLabels, CasasLegislativasReport
@ -13,14 +13,21 @@ from sigi.apps.casas.views import report_complete, labels_report, export_csv, \
adicionar_casas_carrinho adicionar_casas_carrinho
from sigi.apps.utils import queryset_ascii from sigi.apps.utils import queryset_ascii
class ContatosInline(generic.GenericTabularInline):
model = Contato
extra = 2
raw_id_fields = ('municipio',)
class TelefonesInline(generic.GenericTabularInline): class TelefonesInline(generic.GenericTabularInline):
model = Telefone model = Telefone
extra = 2 extra = 1
class PresidenteInline(admin.StackedInline):
model = Presidente
exclude = ['cargo','funcao']
extra = 1
max_num = 1
inlines = (TelefonesInline)
class FuncionariosInline(admin.StackedInline):
model = Funcionario
extra = 1
inlines = (TelefonesInline)
class ConveniosInline(admin.TabularInline): class ConveniosInline(admin.TabularInline):
model = Convenio model = Convenio
@ -32,16 +39,15 @@ class CasaLegislativaAdmin(admin.ModelAdmin):
change_form_template = 'casas/change_form.html' change_form_template = 'casas/change_form.html'
change_list_template = 'casas/change_list.html' change_list_template = 'casas/change_list.html'
actions = ['adicionar_casas',] actions = ['adicionar_casas',]
inlines = (TelefonesInline, ContatosInline, ConveniosInline) inlines = (TelefonesInline, PresidenteInline, FuncionariosInline, ConveniosInline)
list_display = ('nome','municipio','presidente','logradouro') list_display = ('nome','municipio','logradouro')
list_display_links = ('nome',) list_display_links = ('nome',)
list_filter = ('tipo', 'municipio') list_filter = ('tipo', 'municipio')
ordering = ('nome','municipio__uf') ordering = ('nome','municipio__uf')
queyrset = queryset_ascii queyrset = queryset_ascii
fieldsets = ( fieldsets = (
(None, { (None, {
'fields': ('tipo', 'nome', 'telefone', 'cnpj', 'fields': ('tipo', 'nome', 'cnpj',)
'presidente'),
}), }),
('Endereço', { ('Endereço', {
'fields': ('logradouro', 'bairro', 'municipio', 'cep', 'pagina_web','email'), 'fields': ('logradouro', 'bairro', 'municipio', 'cep', 'pagina_web','email'),

43
sigi/apps/casas/models.py

@ -1,7 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from django.db import models from django.db import models
from django.contrib.contenttypes import generic from django.contrib.contenttypes import generic
from sigi.apps.mesas.models import MesaDiretora, MembroMesaDiretora
from sigi.apps.parlamentares.models import Parlamentar from sigi.apps.parlamentares.models import Parlamentar
from sigi.apps.utils import SearchField from sigi.apps.utils import SearchField
@ -35,7 +34,6 @@ class CasaLegislativa(models.Model):
tipo = models.ForeignKey(TipoCasaLegislativa, verbose_name="Tipo") tipo = models.ForeignKey(TipoCasaLegislativa, verbose_name="Tipo")
cnpj = models.CharField('CNPJ', max_length=32, blank=True) cnpj = models.CharField('CNPJ', max_length=32, blank=True)
observacoes = models.TextField(u'observações', blank=True) observacoes = models.TextField(u'observações', blank=True)
presidente = models.CharField('Presidente', max_length=150, blank=True)
# Informações de contato # Informações de contato
logradouro = models.CharField( logradouro = models.CharField(
@ -56,7 +54,6 @@ class CasaLegislativa(models.Model):
blank=True, blank=True,
verify_exists=False verify_exists=False
) )
telefone = models.CharField('Telefone', max_length=100, blank=True)
telefones = generic.GenericRelation('contatos.Telefone') telefones = generic.GenericRelation('contatos.Telefone')
foto = models.ImageField( foto = models.ImageField(
@ -68,7 +65,6 @@ class CasaLegislativa(models.Model):
foto_largura = models.SmallIntegerField(editable=False, null=True) foto_largura = models.SmallIntegerField(editable=False, null=True)
foto_altura = models.SmallIntegerField(editable=False, null=True) foto_altura = models.SmallIntegerField(editable=False, null=True)
contatos = generic.GenericRelation('contatos.Contato')
class Meta: class Meta:
ordering = ('nome',) ordering = ('nome',)
@ -78,3 +74,42 @@ class CasaLegislativa(models.Model):
def __unicode__(self): def __unicode__(self):
return self.nome return self.nome
class Funcionario(models.Model):
""" Modelo para registrar contatos vinculados às
Casas Legislativas
"""
casa_legislativa = models.ForeignKey(CasaLegislativa)
nome = models.CharField('nome completo', max_length=60)
nome.alphabetic_filter = True
nota = models.CharField(max_length=70, blank=True)
email = models.EmailField('e-mail', blank=True)
telefones = generic.GenericRelation('contatos.Telefone')
endereco = generic.GenericRelation('contatos.Endereco')
cargo = models.CharField(max_length=100, null=True, blank=True)
funcao = models.CharField(u'função', max_length=100, null=True, blank=True)
tempo_de_servico = models.CharField(u'tempo de serviço', max_length=50, null=True, blank=True)
class Meta:
ordering = ('nome',)
verbose_name = 'contato Casa Legislativa'
verbose_name_plural = 'contatos Casas Legislativa'
def __unicode__(self):
return self.nome
class PresidenteManager(models.Manager):
def get_query_set(self):
qs = super(PresidenteManager, self).get_query_set()
qs = qs.filter(cargo='Presidente')
return qs
class Presidente(Funcionario):
class Meta:
proxy = True
objects = PresidenteManager()
def save(self, *args, **kwargs):
self.cargo = 'Presidente'
return super(Presidente, self).save(*args, **kwargs)

Loading…
Cancel
Save