diff --git a/sigi/apps/casas/admin.py b/sigi/apps/casas/admin.py
index 2487381..ad3cb5d 100644
--- a/sigi/apps/casas/admin.py
+++ b/sigi/apps/casas/admin.py
@@ -2,6 +2,7 @@
from django.contrib import admin
from django.contrib.contenttypes import generic
from django.http import HttpResponseRedirect
+from django.utils.translation import ugettext as _
from image_cropping import ImageCroppingMixin
from sigi.apps.casas.forms import CasaLegislativaForm
@@ -46,7 +47,7 @@ class FuncionariosInline(admin.StackedInline):
inlines = (TelefonesInline,)
def get_queryset(self, request):
- return self.model.objects.exclude(cargo="Presidente")
+ return self.model.objects.exclude(cargo=_("Presidente"))
class ConveniosInline(admin.StackedInline):
@@ -64,17 +65,17 @@ class ConveniosInline(admin.StackedInline):
def get_tramitacoes(self, obj):
return '
'.join([t.__unicode__() for t in obj.tramitacao_set.all()])
- get_tramitacoes.short_description = 'Tramitações'
+ get_tramitacoes.short_description = _('Tramitações')
get_tramitacoes.allow_tags = True
def get_anexos(self, obj):
return '
'.join(['%s' % (a.arquivo.url, a.__unicode__()) for a in obj.anexo_set.all()])
- get_anexos.short_description = 'Anexos'
+ get_anexos.short_description = _('Anexos')
get_anexos.allow_tags = True
def get_equipamentos(self, obj):
return '
'.join([e.__unicode__() for e in obj.equipamentoprevisto_set.all()])
- get_equipamentos.short_description = 'Equipamentos previstos'
+ get_equipamentos.short_description = _('Equipamentos previstos')
get_equipamentos.allow_tags = True
def link_convenio(self, obj):
@@ -88,7 +89,7 @@ class ConveniosInline(admin.StackedInline):
Editar
""" % (obj.pk, obj.pk, url)
- link_convenio.short_description = 'Editar convenio'
+ link_convenio.short_description = _('Editar convenio')
link_convenio.allow_tags = True
@@ -108,7 +109,7 @@ class LegislaturaInline(admin.TabularInline):
Editar
""" % (obj.pk, obj.pk, url)
- link_parlamentares.short_description = 'Parlamentares'
+ link_parlamentares.short_description = _('Parlamentares')
link_parlamentares.allow_tags = True
@@ -130,7 +131,7 @@ class DiagnosticoInline(admin.TabularInline):
Abrir PDF
""" % (obj.pk, obj.pk, url)
- link_diagnostico.short_description = 'Ver PDF'
+ link_diagnostico.short_description = _('Ver PDF')
link_diagnostico.allow_tags = True
@@ -174,11 +175,11 @@ class CasaLegislativaAdmin(ImageCroppingMixin, BaseModelAdmin):
(None, {
'fields': ('tipo', 'nome', 'cnpj', 'num_parlamentares', 'gerente_contas')
}),
- ('Endereço', {
+ (_(u'Endereço'), {
'fields': ('data_instalacao', 'logradouro', 'bairro',
'municipio', 'cep', 'pagina_web', 'email', 'ult_alt_endereco'),
}),
- ('Outras informações', {
+ (_(u'Outras informações'), {
'fields': ('observacoes', 'foto', 'recorte'),
}),
)
@@ -190,7 +191,7 @@ class CasaLegislativaAdmin(ImageCroppingMixin, BaseModelAdmin):
def get_convenios(self, obj):
return '
' + ''.join(['- %s
' % c.__unicode__() for c in obj.convenio_set.all()]) + '
'
- get_convenios.short_description = u'Convênios'
+ get_convenios.short_description = _(u'Convênios')
get_convenios.allow_tags = True
def changelist_view(self, request, extra_context=None):
@@ -205,23 +206,23 @@ class CasaLegislativaAdmin(ImageCroppingMixin, BaseModelAdmin):
def etiqueta(self, request, queryset):
return labels_report(request, queryset=queryset)
- etiqueta.short_description = "Gerar etiqueta(s) da(s) casa(s) selecionada(s)"
+ etiqueta.short_description = _("Gerar etiqueta(s) da(s) casa(s) selecionada(s)")
def etiqueta_sem_presidente(self, request, queryset):
return labels_report_sem_presidente(request, queryset=queryset)
- etiqueta_sem_presidente.short_description = "Gerar etiqueta(s) sem presidente da(s) casa(s) selecionada(s)"
+ etiqueta_sem_presidente.short_description = _("Gerar etiqueta(s) sem presidente da(s) casa(s) selecionada(s)")
def relatorio(self, request, queryset):
return report(request, queryset=queryset)
- relatorio.short_description = u"Exportar a(s) casa(s) selecionada(s) para PDF"
+ relatorio.short_description = _(u"Exportar a(s) casa(s) selecionada(s) para PDF")
def relatorio_completo(self, request, queryset):
return report_complete(request, queryset=queryset)
- relatorio_completo.short_description = u"Gerar relatório completo da(s) casa(s) selecionada(s)"
+ relatorio_completo.short_description = _(u"Gerar relatório completo da(s) casa(s) selecionada(s)")
def relatorio_csv(self, request, queryset):
return export_csv(request)
- relatorio_csv.short_description = u"Exportar casa(s) selecionada(s) para CSV"
+ relatorio_csv.short_description = _(u"Exportar casa(s) selecionada(s) para CSV")
def adicionar_casas(self, request, queryset):
if 'carrinho_casas' in request.session:
@@ -233,12 +234,12 @@ class CasaLegislativaAdmin(ImageCroppingMixin, BaseModelAdmin):
q2 = len(request.session['carrinho_casas'])
quant = q2 - q1
if quant:
- self.message_user(request, str(q2 - q1) + " Casas Legislativas adicionadas no carrinho")
+ self.message_user(request, str(q2 - q1) + " " + _("Casas Legislativas adicionadas no carrinho"))
else:
- self.message_user(request, "As Casas Legislativas selecionadas já foram adicionadas anteriormente")
+ self.message_user(request, _("As Casas Legislativas selecionadas já foram adicionadas anteriormente"))
return HttpResponseRedirect('.')
- adicionar_casas.short_description = u"Armazenar casas no carrinho para exportar"
+ adicionar_casas.short_description = _(u"Armazenar casas no carrinho para exportar")
def get_actions(self, request):
actions = super(CasaLegislativaAdmin, self).get_actions(request)
diff --git a/sigi/apps/casas/forms.py b/sigi/apps/casas/forms.py
index 1d48fcc..b66c680 100644
--- a/sigi/apps/casas/forms.py
+++ b/sigi/apps/casas/forms.py
@@ -1,17 +1,18 @@
# -*- coding: utf-8 -*-
from django import forms
+from django.utils.translation import ugettext as _
from localflavor.br.forms import BRZipCodeField
+
from sigi.apps.casas.models import CasaLegislativa
class CasaLegislativaForm(forms.ModelForm):
# cnpj = BRCNPJField(
- # label='CNPJ',
+ # label=_('CNPJ'),
# required=False,
- # help_text='Utilize o formato XX.XXX.XXX/XXXX-XX ou '
- # 'insira apenas os dígitos.'
+ # help_text=_('Utilize o formato XX.XXX.XXX/XXXX-XX ou insira apenas os dígitos.')
#)
- cep = BRZipCodeField(label='CEP', help_text='Formato: XXXXX-XXX.')
+ cep = BRZipCodeField(label=_('CEP'), help_text=_('Formato: XXXXX-XXX.'))
class Meta:
model = CasaLegislativa
diff --git a/sigi/apps/casas/reports.py b/sigi/apps/casas/reports.py
index 8c8b561..87ce190 100644
--- a/sigi/apps/casas/reports.py
+++ b/sigi/apps/casas/reports.py
@@ -1,17 +1,15 @@
# -*- coding: utf-8 -*-
+from django.utils.translation import ugettext as _
+from geraldo import Report, DetailBand, Label, ObjectValue, ReportGroup, ReportBand, landscape, SubReport, BAND_WIDTH, SystemField
+from geraldo.graphics import Image
+from reportlab.lib.enums import TA_CENTER
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import cm
-from reportlab.lib.enums import TA_CENTER, TA_RIGHT
-from geraldo import Report, DetailBand, Label, ObjectValue, ManyElements, \
- ReportGroup, ReportBand, landscape, SubReport, BAND_WIDTH, SystemField
from sigi.apps.relatorios.reports import ReportDefault
from sigi.settings import STATICFILES_DIRS
-from geraldo.graphics import Image
-
-
def string_to_cm(texto):
tamanho = 0
minEspeciais = {
@@ -97,7 +95,7 @@ class CasasLegislativasLabels(Report):
my_elements = [
Label(
- text='A Sua Excelência o(a) Senhor(a):',
+ text=_('A Sua Excelência o(a) Senhor(a):'),
top=calc_top(0), left=calc_left, width=calc_width,
),
ObjectValue(
@@ -110,7 +108,7 @@ class CasasLegislativasLabels(Report):
attribute_name='nome',
top=calc_top(2), left=calc_left, width=calc_width, height=calc_height(2),
get_value=lambda instance:
- ("Presidente da %s" % instance.nome)
+ (_("Presidente da %s") % instance.nome)
),
ObjectValue(
attribute_name='logradouro',
@@ -123,7 +121,7 @@ class CasasLegislativasLabels(Report):
attribute_name='cep',
top=calc_top(8), left=calc_left, width=calc_width,
get_value=lambda instance:
- "CEP: %s" % instance.cep
+ _("CEP: %s") % instance.cep
),
]
self.band_detail = DetailBand(
@@ -146,14 +144,14 @@ class CasasLegislativasLabelsSemPresidente(CasasLegislativasLabels):
my_elements = [
Label(
- text='A Sua Excelência o(a) Senhor(a):',
+ text=_('A Sua Excelência o(a) Senhor(a):'),
top=calc_top(0), left=calc_left, width=calc_width,
),
ObjectValue(
attribute_name='nome',
top=calc_top(1), left=calc_left, width=calc_width, height=calc_height(2),
get_value=lambda instance:
- ("Presidente da %s" % instance.nome)
+ (_("Presidente da %s") % instance.nome)
),
ObjectValue(
attribute_name='logradouro',
@@ -166,7 +164,7 @@ class CasasLegislativasLabelsSemPresidente(CasasLegislativasLabels):
attribute_name='cep',
top=calc_top(8), left=calc_left, width=calc_width,
get_value=lambda instance:
- "CEP: %s" % instance.cep
+ _("CEP: %s") % instance.cep
),
]
self.band_detail = DetailBand(
@@ -178,7 +176,7 @@ class CasasLegislativasLabelsSemPresidente(CasasLegislativasLabels):
class CasasLegislativasReport(ReportDefault):
- title = u'Relatório de Casas Legislativas'
+ title = _(u'Relatório de Casas Legislativas')
height = 80 * cm
page_size = landscape(A4)
@@ -197,10 +195,10 @@ class CasasLegislativasReport(ReportDefault):
left=1 * cm, right=1 * cm, top=0.1 * cm, bottom=1 * cm,
width=3 * cm, height=3 * cm,
),
- Label(text="SENADO FEDERAL", top=1 * cm, left=0, width=BAND_WIDTH,
+ Label(text=_("SENADO FEDERAL"), top=1 * cm, left=0, width=BAND_WIDTH,
style={'fontName': 'Helvetica-Bold', 'fontSize': 14, 'alignment': TA_CENTER}
),
- Label(text="SINTER - Secretaria Especial do Interlegis", top=1.5 * cm, left=0, width=BAND_WIDTH,
+ Label(text=_("SINTER - Secretaria Especial do Interlegis"), top=1.5 * cm, left=0, width=BAND_WIDTH,
style={'fontName': 'Helvetica-Bold', 'fontSize': 13, 'alignment': TA_CENTER}
),
SystemField(
@@ -208,32 +206,32 @@ class CasasLegislativasReport(ReportDefault):
style={'fontName': 'Helvetica-Bold', 'fontSize': 14, 'alignment': TA_CENTER}
),
Label(
- text="UF",
+ text=_("UF"),
left=label_left[0] * cm,
top=label_top,
),
Label(
- text="Municipio",
+ text=_("Municipio"),
left=label_left[1] * cm,
top=label_top,
),
Label(
- text="Presidente",
+ text=_("Presidente"),
left=label_left[2] * cm,
top=label_top,
),
Label(
- text="Endereço",
+ text=_("Endereço"),
left=label_left[3] * cm,
top=label_top,
),
Label(
- text="Endereço na Internet",
+ text=_("Endereço na Internet"),
left=label_left[4] * cm,
top=label_top,
),
Label(
- text="Email",
+ text=_("Email"),
left=label_left[5] * cm,
top=label_top,
),
@@ -292,11 +290,11 @@ class CasasLegislativasReport(ReportDefault):
class CasasSemConvenioReport(CasasLegislativasReport):
- title = u'Relatório de Casas Legislativas sem Convênio'
+ title = _(u'Relatório de Casas Legislativas sem Convênio')
class InfoCasaLegislativa(ReportDefault):
- title = u'Casa Legislativa'
+ title = _(u'Casa Legislativa')
class band_summary(ReportBand):
pass
@@ -305,7 +303,7 @@ class InfoCasaLegislativa(ReportDefault):
height = 1 * cm
elements = [
- SystemField(expression=u'%(now:%d/%m/%Y)s às %(now:%H:%M)s', top=0.3 * cm),
+ SystemField(expression=_(u'%(now:%d/%m/%Y)s às %(now:%H:%M)s'), top=0.3 * cm),
]
class band_detail(ReportDefault.band_detail):
@@ -343,7 +341,7 @@ class InfoCasaLegislativa(ReportDefault):
elements = [
Label(
- text="Tipo: ",
+ text=_("Tipo: "),
left=posicao_left[0] * cm,
top=posicao_top[0] * cm,
),
@@ -354,7 +352,7 @@ class InfoCasaLegislativa(ReportDefault):
width=6 * cm,
),
Label(
- text="Região: ",
+ text=_("Região: "),
left=posicao_left[2] * cm,
top=posicao_top[1] * cm,
),
@@ -363,11 +361,11 @@ class InfoCasaLegislativa(ReportDefault):
left=posicao_left[3] * cm,
top=posicao_top[1] * cm,
get_value=lambda instance:
- {'SL': 'Sul', 'SD': 'Sudeste', 'CO': 'Centro-Oeste', 'NE': 'Nordeste', 'NO': 'Norte', }
+ {'SL': _('Sul'), 'SD': _('Sudeste'), 'CO': _('Centro-Oeste'), 'NE': _('Nordeste'), 'NO': _('Norte'), }
[instance.municipio.uf.regiao]
),
Label(
- text="U.F.: ",
+ text=_("U.F.: "),
left=posicao_left[4] * cm,
top=posicao_top[2] * cm,
),
@@ -377,7 +375,7 @@ class InfoCasaLegislativa(ReportDefault):
top=posicao_top[2] * cm,
),
Label(
- text="Município: ",
+ text=_("Município: "),
left=posicao_left[6] * cm,
top=posicao_top[3] * cm,
),
@@ -389,7 +387,7 @@ class InfoCasaLegislativa(ReportDefault):
),
# Linha 3
Label(
- text="Endereço: ",
+ text=_("Endereço: "),
left=posicao_left[8] * cm,
top=posicao_top[4] * cm,
),
@@ -400,7 +398,7 @@ class InfoCasaLegislativa(ReportDefault):
width=20 * cm,
),
Label(
- text="Bairro: ",
+ text=_("Bairro: "),
left=posicao_left[10] * cm,
top=posicao_top[5] * cm,
),
@@ -410,7 +408,7 @@ class InfoCasaLegislativa(ReportDefault):
top=posicao_top[5] * cm,
),
Label(
- text="CEP: ",
+ text=_("CEP: "),
left=posicao_left[12] * cm,
top=posicao_top[6] * cm,
),
@@ -420,7 +418,7 @@ class InfoCasaLegislativa(ReportDefault):
top=posicao_top[6] * cm,
),
Label(
- text="CNPJ: ",
+ text=_("CNPJ: "),
left=posicao_left[14] * cm,
top=posicao_top[7] * cm,
),
@@ -430,7 +428,7 @@ class InfoCasaLegislativa(ReportDefault):
top=posicao_top[7] * cm,
),
Label(
- text="Telefone: ",
+ text=_("Telefone: "),
left=posicao_left[16] * cm,
top=posicao_top[8] * cm,
),
@@ -440,7 +438,7 @@ class InfoCasaLegislativa(ReportDefault):
top=posicao_top[8] * cm,
),
Label(
- text="Presidente: ",
+ text=_("Presidente: "),
left=posicao_left[18] * cm,
top=posicao_top[9] * cm,
),
@@ -469,14 +467,14 @@ class InfoCasaLegislativa(ReportDefault):
height=2.5 * cm,
elements=[
Label(
- text="Telefone(s)",
+ text=_("Telefone(s)"),
style={'fontSize': 14, 'alignment': TA_CENTER},
width=BAND_WIDTH,
top=1 * cm,
),
- Label(text="Número", left=tel_left[0] * cm, top=tel_top),
- Label(text="Tipo", left=tel_left[1] * cm, top=tel_top),
- Label(text="Nota", left=tel_left[2] * cm, top=tel_top),
+ Label(text=_("Número"), left=tel_left[0] * cm, top=tel_top),
+ Label(text=_("Tipo"), left=tel_left[1] * cm, top=tel_top),
+ Label(text=_("Nota"), left=tel_left[2] * cm, top=tel_top),
],
borders={'bottom': True},
),
@@ -487,7 +485,7 @@ class InfoCasaLegislativa(ReportDefault):
ObjectValue(attribute_name='__unicode__', left=tel_left[0] * cm),
ObjectValue(attribute_name='tipo', left=tel_left[1] * cm,
get_value=lambda instance:
- {'F': 'Fixo', 'M': u'Móvel', 'X': 'Fax', 'I': 'Indefinido'}[instance.tipo],
+ {'F': _('Fixo'), 'M': _(u'Móvel'), 'X': _('Fax'), 'I': _('Indefinido')}[instance.tipo],
),
ObjectValue(attribute_name='nota', left=tel_left[2] * cm),
],
@@ -502,14 +500,14 @@ class InfoCasaLegislativa(ReportDefault):
height=2.5 * cm,
elements=[
Label(
- text="Contato(s)",
+ text=_("Contato(s)"),
style={'fontSize': 14, 'alignment': TA_CENTER},
width=BAND_WIDTH,
top=1 * cm,
),
- Label(text="Nome", left=cont_left[0] * cm, top=cont_top),
- Label(text="Nota", left=cont_left[1] * cm, top=cont_top),
- Label(text="E-mail", left=cont_left[2] * cm, top=cont_top),
+ Label(text=_("Nome"), left=cont_left[0] * cm, top=cont_top),
+ Label(text=_("Nota"), left=cont_left[1] * cm, top=cont_top),
+ Label(text=_("E-mail"), left=cont_left[2] * cm, top=cont_top),
],
borders={'bottom': True, 'top': True},
),
@@ -532,18 +530,18 @@ class InfoCasaLegislativa(ReportDefault):
height=2.5 * cm,
elements=[
Label(
- text="Convênio(s)",
+ text=_("Convênio(s)"),
style={'fontSize': 14, 'alignment': TA_CENTER},
width=BAND_WIDTH,
top=1 * cm,
),
- Label(text="Projeto", left=convenio_left[0] * cm, top=convenio_top),
- Label(text="Nº Convenio", left=convenio_left[1] * cm, top=convenio_top),
- Label(text="Nº Processo SF", left=convenio_left[2] * cm, top=convenio_top),
- Label(text="Adesão", left=convenio_left[3] * cm, top=convenio_top),
- Label(text="Convênio", left=convenio_left[4] * cm, top=convenio_top),
- Label(text="Equipada", left=convenio_left[5] * cm, top=convenio_top),
- Label(text="Data D.O.", left=convenio_left[6] * cm, top=convenio_top),
+ Label(text=_("Projeto"), left=convenio_left[0] * cm, top=convenio_top),
+ Label(text=_("Nº Convenio"), left=convenio_left[1] * cm, top=convenio_top),
+ Label(text=_("Nº Processo SF"), left=convenio_left[2] * cm, top=convenio_top),
+ Label(text=_("Adesão"), left=convenio_left[3] * cm, top=convenio_top),
+ Label(text=_("Convênio"), left=convenio_left[4] * cm, top=convenio_top),
+ Label(text=_("Equipada"), left=convenio_left[5] * cm, top=convenio_top),
+ Label(text=_("Data D.O."), left=convenio_left[6] * cm, top=convenio_top),
],
borders={'bottom': True}
),
diff --git a/sigi/apps/casas/views.py b/sigi/apps/casas/views.py
index 0ae19c4..a031d7d 100644
--- a/sigi/apps/casas/views.py
+++ b/sigi/apps/casas/views.py
@@ -1,23 +1,18 @@
# -*- coding: utf-8 -*-
+import csv
+from functools import reduce
+
+from django.conf import settings
+from django.core.paginator import Paginator, InvalidPage, EmptyPage
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render
+from django.utils.translation import ugettext as _
from geraldo.generators import PDFGenerator
-from sigi.apps.casas.models import CasaLegislativa, Funcionario
-from sigi.apps.casas.reports import CasasLegislativasLabels
-from sigi.apps.casas.reports import CasasLegislativasLabelsSemPresidente
-from sigi.apps.casas.reports import CasasLegislativasReport
-from sigi.apps.casas.reports import CasasSemConvenioReport
-from sigi.apps.casas.reports import InfoCasaLegislativa
-from sigi.apps.parlamentares.models import Parlamentar
+from sigi.apps.casas.models import CasaLegislativa
+from sigi.apps.casas.reports import CasasLegislativasLabels, CasasLegislativasLabelsSemPresidente, CasasLegislativasReport, CasasSemConvenioReport, InfoCasaLegislativa
from sigi.apps.parlamentares.reports import ParlamentaresLabels
-from django.core.paginator import Paginator, InvalidPage, EmptyPage
-
-from django.conf import settings
-
-import csv
-from functools import reduce
# @param qs: queryset
# @param o: (int) number of order field
@@ -327,7 +322,7 @@ def export_csv(request):
atributos2 = [s.encode("utf-8") for s in atributos]
try:
- atributos2.insert(atributos2.index('Município'), u'UF')
+ atributos2.insert(atributos2.index(_(u'Município')), _(u'UF'))
except ValueError:
pass
@@ -337,49 +332,49 @@ def export_csv(request):
lista = []
contatos = casa.funcionario_set.filter(setor="contato_interlegis")
for atributo in atributos:
- if u"CNPJ" == atributo:
+ if _(u"CNPJ") == atributo:
lista.append(casa.cnpj.encode("utf-8"))
- elif u"Código IBGE" == atributo:
+ elif _(u"Código IBGE") == atributo:
lista.append(str(casa.municipio.codigo_ibge).encode("utf-8"))
- elif u"Código TSE" == atributo:
+ elif _(u"Código TSE") == atributo:
lista.append(str(casa.municipio.codigo_tse).encode("utf-8"))
- elif u"Nome" == atributo:
+ elif _(u"Nome") == atributo:
lista.append(casa.nome.encode("utf-8"))
- elif u"Município" == atributo:
+ elif _(u"Município") == atributo:
lista.append(unicode(casa.municipio.uf.sigla).encode("utf-8"))
lista.append(unicode(casa.municipio.nome).encode("utf-8"))
- elif u"Presidente" == atributo:
+ elif _(u"Presidente") == atributo:
# TODO: Esse encode deu erro em 25/04/2012. Comentei para que o usuário pudesse continuar seu trabalho
# É preciso descobrir o porque do erro e fazer a correção definitiva.
# lista.append(str(casa.presidente or "").encode("utf-8"))
lista.append(str(casa.presidente or ""))
- elif u"Logradouro" == atributo:
+ elif _(u"Logradouro") == atributo:
lista.append(casa.logradouro.encode("utf-8"))
- elif u"Bairro" == atributo:
+ elif _(u"Bairro") == atributo:
lista.append(casa.bairro.encode("utf-8"))
- elif u"CEP" == atributo:
+ elif _(u"CEP") == atributo:
lista.append(casa.cep.encode("utf-8"))
- elif u"Telefone" == atributo:
+ elif _(u"Telefone") == atributo:
lista.append(str(casa.telefone or ""))
- elif u"Página web" == atributo:
+ elif _(u"Página web") == atributo:
lista.append(casa.pagina_web.encode("utf-8"))
- elif u"Email" == atributo:
+ elif _(u"Email") == atributo:
lista.append(casa.email.encode("utf-8"))
- elif u"Número de parlamentares" == atributo:
+ elif _(u"Número de parlamentares") == atributo:
lista.append(casa.total_parlamentares)
- elif u"Última alteração de endereco" == atributo:
+ elif _(u"Última alteração de endereco") == atributo:
lista.append(casa.ult_alt_endereco)
- elif u"Nome contato" == atributo:
+ elif _(u"Nome contato") == atributo:
if contatos and contatos[0].nome:
lista.append(contatos[0].nome.encode("utf-8"))
else:
lista.append('')
- elif u"Cargo contato" == atributo:
+ elif _(u"Cargo contato") == atributo:
if contatos and contatos[0].cargo:
lista.append(contatos[0].cargo.encode("utf-8"))
else:
lista.append('')
- elif u"Email contato" == atributo:
+ elif _(u"Email contato") == atributo:
if contatos and contatos[0].email:
lista.append(contatos[0].email.encode("utf-8"))
else:
diff --git a/sigi/apps/contatos/admin.py b/sigi/apps/contatos/admin.py
index ba934e4..c9687e4 100644
--- a/sigi/apps/contatos/admin.py
+++ b/sigi/apps/contatos/admin.py
@@ -1,5 +1,7 @@
# -*- coding: utf-8 -*-
from django.contrib import admin
+from django.utils.translation import ugettext as _
+
from sigi.apps.contatos.filters import PopulationFilter
from sigi.apps.contatos.models import (UnidadeFederativa, Municipio, Telefone,
Contato)
@@ -29,7 +31,7 @@ class MunicipioAdmin(BaseModelAdmin):
'codigo_microrregiao', 'nome', 'data_criacao', 'uf',
'is_capital', 'populacao', 'is_polo', 'idh', 'pib_ano', 'pib_total', 'pib_percapita')
}),
- ('Posição geográfica', {
+ (_(u'Posição geográfica'), {
'fields': ('latitude', 'longitude'),
}),
)
diff --git a/sigi/apps/contatos/filters.py b/sigi/apps/contatos/filters.py
index 8bf5b77..edf543e 100644
--- a/sigi/apps/contatos/filters.py
+++ b/sigi/apps/contatos/filters.py
@@ -1,11 +1,12 @@
# coding: utf-8
from django.contrib import admin
+from django.utils.translation import ugettext as _
class PopulationFilter(admin.SimpleListFilter):
# Human-readable title which will be displayed in the
# right admin sidebar just above the filter options.
- title = 'População'
+ title = _('População')
# Parameter for the filter that will be used in the URL query.
parameter_name = 'faixa'
@@ -19,10 +20,10 @@ class PopulationFilter(admin.SimpleListFilter):
in the right sidebar.
"""
return (
- ('1', '< 100 Mil'),
- ('2', '100 Mil a 1 Milhão'),
- ('3', '1 Milhão a 100 Milhões'),
- ('4', '> 100 Milhões'),
+ ('1', _('< 100 Mil')),
+ ('2', _('100 Mil a 1 Milhão')),
+ ('3', _('1 Milhão a 100 Milhões')),
+ ('4', _('> 100 Milhões')),
)
def queryset(self, request, queryset):
diff --git a/sigi/apps/contatos/models.py b/sigi/apps/contatos/models.py
index 288ac19..32ec243 100644
--- a/sigi/apps/contatos/models.py
+++ b/sigi/apps/contatos/models.py
@@ -1,9 +1,11 @@
# -*- coding: utf-8 -*-
-from django.db import models
-from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic
-from sigi.apps.utils import SearchField
+from django.contrib.contenttypes.models import ContentType
from django.core.validators import MaxValueValidator, MinValueValidator
+from django.db import models
+from django.utils.translation import ugettext as _
+
+from sigi.apps.utils import SearchField
class UnidadeFederativa(models.Model):
@@ -11,33 +13,33 @@ class UnidadeFederativa(models.Model):
""" Modelo que representa um estado brasileiro
"""
REGIAO_CHOICES = (
- ('SL', 'Sul'),
- ('SD', 'Sudeste'),
- ('CO', 'Centro-Oeste'),
- ('NE', 'Nordeste'),
- ('NO', 'Norte'),
+ ('SL', _('Sul')),
+ ('SD', _('Sudeste')),
+ ('CO', _('Centro-Oeste')),
+ ('NE', _('Nordeste')),
+ ('NO', _('Norte')),
)
codigo_ibge = models.PositiveIntegerField(
u'código IBGE',
primary_key=True,
unique=True,
- help_text='Código do estado segundo IBGE.'
+ help_text=_('Código do estado segundo IBGE.')
)
- nome = models.CharField('Nome UF', max_length=25)
+ nome = models.CharField(_('Nome UF'), max_length=25)
# Campo de busca em caixa baixa sem acento
search_text = SearchField(field_names=['nome'])
sigla = models.CharField(
max_length=2,
unique=True,
- help_text="Exemplo: MG.",
+ help_text=_("Exemplo: MG."),
)
- regiao = models.CharField('região', max_length=2, choices=REGIAO_CHOICES)
- populacao = models.PositiveIntegerField('população')
+ regiao = models.CharField(_('região'), max_length=2, choices=REGIAO_CHOICES)
+ populacao = models.PositiveIntegerField(_('população'))
class Meta:
- ordering = ('nome',)
- verbose_name = 'Unidade Federativa'
- verbose_name_plural = 'Unidades Federativas'
+ ordering = (_('nome'),)
+ verbose_name = _('Unidade Federativa')
+ verbose_name_plural = _('Unidades Federativas')
def __unicode__(self):
return self.nome
@@ -48,41 +50,41 @@ class Municipio(models.Model):
""" Modelo para representar as cidades brasileiras
"""
codigo_ibge = models.PositiveIntegerField(
- u'código IBGE',
+ _(u'código IBGE'),
primary_key=True,
unique=True,
- help_text='Código do município segundo IBGE.'
+ help_text=_('Código do município segundo IBGE.')
)
# agrupamento baseado em similaridades econômicas e sociais
codigo_mesorregiao = models.PositiveIntegerField(
- u'código mesorregião',
+ _(u'código mesorregião'),
blank=True,
null=True
)
# agrupamento baseado em similaridades econômicas e sociais
codigo_microrregiao = models.PositiveIntegerField(
- u'código microrregião',
+ _(u'código microrregião'),
blank=True,
null=True
)
# codio designado pelo Tribunal Superior Eleitoral
codigo_tse = models.PositiveIntegerField(
- u'código TSE',
+ _(u'código TSE'),
unique=True,
null=True,
- help_text='Código do município segundo TSE.'
+ help_text=_('Código do município segundo TSE.')
)
nome = models.CharField(max_length=50)
- search_text = SearchField(field_names=['nome', 'uf'])
- uf = models.ForeignKey(UnidadeFederativa, verbose_name='UF')
+ search_text = SearchField(field_names=[_('nome'), _('uf')])
+ uf = models.ForeignKey(UnidadeFederativa, verbose_name=_('UF'))
# verdadeiro se o município é capital do estado
- is_capital = models.BooleanField('capital', default=False)
- populacao = models.PositiveIntegerField(u'população')
+ is_capital = models.BooleanField(_('capital'), default=False)
+ populacao = models.PositiveIntegerField(_(u'população'))
populacao.list_filter_range = [10000, 100000, 1000000]
- is_polo = models.BooleanField(u'pólo', default=False)
- data_criacao = models.DateField(u'data de criação do município', null=True, blank=True)
+ is_polo = models.BooleanField(_(u'pólo'), default=False)
+ data_criacao = models.DateField(_(u'data de criação do município'), null=True, blank=True)
# posição geográfica do município
latitude = models.DecimalField(
@@ -90,28 +92,28 @@ class Municipio(models.Model):
decimal_places=8,
null=True,
blank=True,
- help_text='Exemplo: -20,464.'
+ help_text=_('Exemplo: -20,464.')
)
longitude = models.DecimalField(
max_digits=11,
decimal_places=8,
null=True,
blank=True,
- help_text='Exemplo: -45,426.'
+ help_text=_('Exemplo: -45,426.')
)
- idh = models.DecimalField(u'IDH', help_text=u'Índice de desenvolvimento Humano', max_digits=4, decimal_places=3,
+ idh = models.DecimalField(_(u'IDH'), help_text=_(u'Índice de desenvolvimento Humano'), max_digits=4, decimal_places=3,
validators=[MinValueValidator(0), MaxValueValidator(1)])
idh.list_filter_range = [0.500, 0.800]
- pib_total = models.DecimalField(u'PIB total', max_digits=18, decimal_places=3, blank=True, null=True)
- pib_percapita = models.DecimalField(u'PIB per capita', max_digits=18, decimal_places=3, blank=True, null=True)
- pib_ano = models.IntegerField(u'Ano de apuração do PIB', blank=True, null=True)
+ pib_total = models.DecimalField(_(u'PIB total'), max_digits=18, decimal_places=3, blank=True, null=True)
+ pib_percapita = models.DecimalField(_(u'PIB per capita'), max_digits=18, decimal_places=3, blank=True, null=True)
+ pib_ano = models.IntegerField(_(u'Ano de apuração do PIB'), blank=True, null=True)
class Meta:
- ordering = ('nome', 'codigo_ibge')
- verbose_name = 'município'
- verbose_name_plural = 'municípios'
+ ordering = (_('nome'), _('codigo_ibge'))
+ verbose_name = _('município')
+ verbose_name_plural = _('municípios')
def __unicode__(self):
return "%s - %s" % (self.nome, self.uf)
@@ -126,15 +128,15 @@ class Telefone(models.Model):
""" Modelo genérico para agrupar telefones dos modulos do sistema
"""
TELEFONE_CHOICES = (
- ('F', 'Fixo'),
- ('M', 'Móvel'),
- ('X', 'Fax'),
- ('I', 'Indefinido'),
+ ('F', _('Fixo')),
+ ('M', _('Móvel')),
+ ('X', _('Fax')),
+ ('I', _('Indefinido')),
)
numero = models.CharField(
- 'número',
+ _('número'),
max_length=64, # TODO: diminuir tamanho de campo após migração de dados
- help_text='Exemplo: (31)8851-9898.',
+ help_text=_('Exemplo: (31)8851-9898.'),
)
tipo = models.CharField(
max_length=1,
@@ -142,7 +144,7 @@ class Telefone(models.Model):
default='I'
)
nota = models.CharField(max_length=70, null=True, blank=True)
- ult_alteracao = models.DateTimeField(u'Última alteração', null=True, blank=True, editable=False, auto_now=True)
+ ult_alteracao = models.DateTimeField(_(u'Última alteração'), null=True, blank=True, editable=False, auto_now=True)
# guarda o tipo do objeto (classe) vinculado a esse registro
content_type = models.ForeignKey(ContentType)
@@ -163,16 +165,16 @@ class Contato(models.Model):
""" Modelo generico para registrar contatos vinculados aos
modulos do sistema
"""
- nome = models.CharField('nome completo', max_length=120)
+ nome = models.CharField(_('nome completo'), max_length=120)
nome.alphabetic_filter = True
nota = models.CharField(max_length=70, blank=True)
- email = models.EmailField('e-mail', blank=True)
+ email = models.EmailField(_('e-mail'), blank=True)
telefones = generic.GenericRelation(Telefone)
municipio = models.ForeignKey(
Municipio,
- verbose_name='município',
+ verbose_name=_('município'),
blank=True,
null=True,
)
@@ -185,8 +187,8 @@ class Contato(models.Model):
class Meta:
ordering = ('nome',)
- verbose_name = 'contato Interlegis'
- verbose_name_plural = 'contatos Interlegis'
+ verbose_name = _('contato Interlegis')
+ verbose_name_plural = _('contatos Interlegis')
def __unicode__(self):
return self.nome
@@ -194,51 +196,51 @@ class Contato(models.Model):
class Endereco(models.Model):
TIPO_CHOICES = (
- ('aeroporto', 'Aeroporto'),
- ('alameda', 'Alameda'),
- ('area', u'Área'),
- ('avenida', 'Avenida'),
- ('campo', 'Campo'),
- ('chacara', u'Chácara'),
- ('colonia', u'Colônia'),
- ('condominio', u'Condomínio'),
- ('conjunto', 'Conjunto'),
- ('distrito', 'Distrito'),
- ('esplanada', 'Esplanada'),
- ('estacao', u'Estação'),
- ('estrada', 'Estrada'),
- ('favela', 'Favela'),
- ('fazenda', 'Fazenda'),
- ('feira', 'Feira'),
- ('jardim', 'Jardim'),
- ('ladeira', 'Ladeira'),
- ('lago', 'Lago'),
- ('lagoa', 'Lagoa'),
- ('largo', 'Largo'),
- ('loteamento', 'Loteamento'),
- ('morro', 'Morro'),
- ('nucleo', u'Núcleo'),
- ('parque', 'Parque'),
- ('passarela', 'Passarela'),
- ('patio', u'Pátio'),
- ('praca', u'Praça'),
- ('quadra', 'Quadra'),
- ('recanto', 'Recanto'),
- ('residencial', 'Residencial'),
- ('rodovia', 'Rodovia'),
- ('rua', 'Rua'),
- ('setor', 'Setor'),
- ('sitio', u'Sítio'),
- ('travessa', 'Travessa'),
- ('trecho', 'Trecho'),
- ('trevo', 'Trevo'),
- ('vale', 'Vale'),
- ('vereda', 'Vereda'),
- ('via', 'Via'),
- ('viaduto', 'Viaduto'),
- ('viela', 'Viela'),
- ('vila', 'Vila'),
- ('outro', 'Outro'),
+ ('aeroporto', _('Aeroporto')),
+ ('alameda', _('Alameda')),
+ ('area', _(u'Área')),
+ ('avenida', _('Avenida')),
+ ('campo', _('Campo')),
+ ('chacara', _(u'Chácara')),
+ ('colonia', _(u'Colônia')),
+ ('condominio', _(u'Condomínio')),
+ ('conjunto', _('Conjunto')),
+ ('distrito', _('Distrito')),
+ ('esplanada', _('Esplanada')),
+ ('estacao', _(u'Estação')),
+ ('estrada', _('Estrada')),
+ ('favela', _('Favela')),
+ ('fazenda', _('Fazenda')),
+ ('feira', _('Feira')),
+ ('jardim', _('Jardim')),
+ ('ladeira', _('Ladeira')),
+ ('lago', _('Lago')),
+ ('lagoa', _('Lagoa')),
+ ('largo', _('Largo')),
+ ('loteamento', _('Loteamento')),
+ ('morro', _('Morro')),
+ ('nucleo', _(u'Núcleo')),
+ ('parque', _('Parque')),
+ ('passarela', _('Passarela')),
+ ('patio', _(u'Pátio')),
+ ('praca', _(u'Praça')),
+ ('quadra', _('Quadra')),
+ ('recanto', _('Recanto')),
+ ('residencial', _('Residencial')),
+ ('rodovia', _('Rodovia')),
+ ('rua', _('Rua')),
+ ('setor', _('Setor')),
+ ('sitio', _(u'Sítio')),
+ ('travessa', _('Travessa')),
+ ('trecho', _('Trecho')),
+ ('trevo', _('Trevo')),
+ ('vale', _('Vale')),
+ ('vereda', _('Vereda')),
+ ('via', _('Via')),
+ ('viaduto', _('Viaduto')),
+ ('viela', _('Viela')),
+ ('vila', _('Vila')),
+ ('outro', _('Outro')),
)
# tipo do endereço obtido no site dos correios
@@ -254,16 +256,16 @@ class Endereco(models.Model):
bairro = models.CharField(max_length=100, blank=True)
cep = models.CharField(
- 'CEP',
+ _('CEP'),
max_length=9,
blank=True,
null=True,
- help_text="Formato: XXXXX-XXX."
+ help_text=_("Formato: XXXXX-XXX.")
)
municipio = models.ForeignKey(
Municipio,
- verbose_name='município',
+ verbose_name=_(u'município'),
blank=True,
null=True,
)
@@ -277,8 +279,8 @@ class Endereco(models.Model):
class Meta:
ordering = ('logradouro', 'numero')
- verbose_name = u'endereço'
- verbose_name_plural = u'endereços'
+ verbose_name = _(u'endereço')
+ verbose_name_plural = _(u'endereços')
def __unicode__(self):
return self.tipo + ' ' + self.logradouro + ', ' + self.numero \
diff --git a/sigi/apps/convenios/admin.py b/sigi/apps/convenios/admin.py
index aceb412..7b3e63a 100644
--- a/sigi/apps/convenios/admin.py
+++ b/sigi/apps/convenios/admin.py
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
from django.contrib import admin
from django.http import HttpResponse, HttpResponseRedirect
+from django.utils.translation import ugettext as _
from geraldo.generators import PDFGenerator
from sigi.apps.convenios.models import Projeto, Convenio, EquipamentoPrevisto, Anexo, Tramitacao
@@ -42,12 +43,12 @@ class ConvenioAdmin(BaseModelAdmin):
(None,
{'fields': ('casa_legislativa', 'num_processo_sf', 'num_convenio', 'projeto', 'observacao')}
),
- ('Datas',
+ (_('Datas'),
{'fields': ('data_adesao', 'data_retorno_assinatura',
'data_termo_aceite', 'data_pub_diario',
'data_devolucao_via', 'data_postagem_correio')}
),
- ('Datas - Convenio sem assinatura',
+ (_('Datas - Convenio sem assinatura'),
{'fields': ('data_devolucao_sem_assinatura', 'data_retorno_sem_assinatura',)}
),
)
@@ -68,7 +69,7 @@ class ConvenioAdmin(BaseModelAdmin):
def get_uf(self, obj):
return obj.casa_legislativa.municipio.uf.sigla
- get_uf.short_description = 'UF'
+ get_uf.short_description = _('UF')
get_uf.admin_order_field = 'casa_legislativa__municipio__uf__sigla'
def changelist_view(self, request, extra_context=None):
@@ -103,7 +104,7 @@ class ConvenioAdmin(BaseModelAdmin):
report = ConvenioReport(queryset=queryset)
report.generate_by(PDFGenerator, filename=response)
return response
- relatorio.short_description = u'Exportar convênios selecionados para PDF'
+ relatorio.short_description = _(u'Exportar convênios selecionados para PDF')
def adicionar_convenios(self, request, queryset):
if 'carrinho_convenios' in request.session:
@@ -114,11 +115,11 @@ class ConvenioAdmin(BaseModelAdmin):
q2 = len(request.session['carrinho_convenios'])
quant = q2 - q1
if quant:
- self.message_user(request, str(q2 - q1) + " Convênios adicionados no carrinho")
+ self.message_user(request, str(q2 - q1) + _(" Convênios adicionados no carrinho"))
else:
- self.message_user(request, "Os Convênios selecionados já foram adicionadas anteriormente")
+ self.message_user(request, _("Os Convênios selecionados já foram adicionadas anteriormente"))
return HttpResponseRedirect('.')
- adicionar_convenios.short_description = u"Armazenar convênios no carrinho para exportar"
+ adicionar_convenios.short_description = _(u"Armazenar convênios no carrinho para exportar")
def get_actions(self, request):
actions = super(ConvenioAdmin, self).get_actions(request)
diff --git a/sigi/apps/convenios/models.py b/sigi/apps/convenios/models.py
index ac9d40f..5d7ca45 100644
--- a/sigi/apps/convenios/models.py
+++ b/sigi/apps/convenios/models.py
@@ -1,7 +1,8 @@
# style="list-style-type: noneo -*- coding: utf-8 -*-
from datetime import datetime
from django.db import models
-from django.contrib.contenttypes import generic
+from django.utils.translation import ugettext as _
+
from sigi.apps.utils import SearchField
@@ -29,67 +30,67 @@ class Convenio(models.Model):
"""
casa_legislativa = models.ForeignKey(
'casas.CasaLegislativa',
- verbose_name='Casa Legislativa'
+ verbose_name=_('Casa Legislativa')
)
# campo de busca em caixa baixa e sem acentos
search_text = SearchField(field_names=['casa_legislativa'])
- projeto = models.ForeignKey('Projeto')
+ projeto = models.ForeignKey(_('Projeto'))
# numero designado pelo Senado Federal para o convênio
num_processo_sf = models.CharField(
- 'número do processo SF (Senado Federal)',
+ _('número do processo SF (Senado Federal)'),
max_length=20,
blank=True,
- help_text='Formatos:
Antigo: XXXXXX/XX-X.
SIGAD: XXXXX.XXXXXX/XXXX-XX'
+ help_text=_('Formatos:
Antigo: XXXXXX/XX-X.
SIGAD: XXXXX.XXXXXX/XXXX-XX')
)
num_convenio = models.CharField(
- 'número do convênio',
+ _('número do convênio'),
max_length=10,
blank=True
)
data_adesao = models.DateField(
- 'Aderidas',
+ _('Aderidas'),
null=True,
blank=True,
)
data_retorno_assinatura = models.DateField(
- 'Conveniadas',
+ _('Conveniadas'),
null=True,
blank=True,
- help_text='Convênio firmado.'
+ help_text=_('Convênio firmado.')
)
data_pub_diario = models.DateField(
- 'data da publicação no Diário Oficial',
+ _('data da publicação no Diário Oficial'),
null=True,
blank=True
)
data_termo_aceite = models.DateField(
- 'Equipadas',
+ _('Equipadas'),
null=True,
blank=True,
- help_text='Equipamentos recebidos.'
+ help_text=_('Equipamentos recebidos.')
)
data_devolucao_via = models.DateField(
- 'data de devolução da via',
+ _('data de devolução da via'),
null=True,
blank=True,
- help_text=u'Data de devolução da via do convênio à Câmara Municipal.'
+ help_text=_(u'Data de devolução da via do convênio à Câmara Municipal.')
)
data_postagem_correio = models.DateField(
- 'data postagem correio',
+ _('data postagem correio'),
null=True,
blank=True,
)
data_devolucao_sem_assinatura = models.DateField(
- 'data de devolução por falta de assinatura',
+ _('data de devolução por falta de assinatura'),
null=True,
blank=True,
- help_text=u'Data de devolução por falta de assinatura',
+ help_text=_(u'Data de devolução por falta de assinatura'),
)
data_retorno_sem_assinatura = models.DateField(
- 'data do retorno sem assinatura',
+ _('data do retorno sem assinatura'),
null=True,
blank=True,
- help_text=u'Data do retorno do convênio sem assinatura',
+ help_text=_(u'Data do retorno do convênio sem assinatura'),
)
observacao = models.CharField(
null=True,
@@ -107,13 +108,13 @@ class Convenio(models.Model):
class Meta:
get_latest_by = 'id'
ordering = ('id',)
- verbose_name = u'convênio'
+ verbose_name = _(u'convênio')
def __unicode__(self):
if self.data_retorno_assinatura is not None:
- return u"Convênio nº %s - projeto %s, em %s" % (self.num_convenio, self.projeto.sigla, self.data_retorno_assinatura)
+ return _(u"Convênio nº %s - projeto %s, em %s") % (self.num_convenio, self.projeto.sigla, self.data_retorno_assinatura)
else:
- return u"Adesão ao projeto %s, em %s" % (self.projeto.sigla, self.data_adesao)
+ return _(u"Adesão ao projeto %s, em %s") % (self.projeto.sigla, self.data_adesao)
class EquipamentoPrevisto(models.Model):
@@ -122,13 +123,13 @@ class EquipamentoPrevisto(models.Model):
disponibilizados para as Casas Legislativas
(foi usado na prmeira etapa do programa)
"""
- convenio = models.ForeignKey(Convenio, verbose_name=u'convênio')
+ convenio = models.ForeignKey(Convenio, verbose_name=_(u'convênio'))
equipamento = models.ForeignKey('inventario.Equipamento')
quantidade = models.PositiveSmallIntegerField(default=1)
class Meta:
- verbose_name = 'equipamento previsto'
- verbose_name_plural = 'equipamentos previstos'
+ verbose_name = _('equipamento previsto')
+ verbose_name_plural = _('equipamentos previstos')
def __unicode__(self):
return u'%s %s(s)' % (self.quantidade, self.equipamento)
@@ -139,12 +140,12 @@ class Anexo(models.Model):
""" Modelo para giardar os documentos gerados
no processo de convênio
"""
- convenio = models.ForeignKey(Convenio, verbose_name=u'convênio')
+ convenio = models.ForeignKey(Convenio, verbose_name=_(u'convênio'))
# caminho no sistema para o documento anexo
arquivo = models.FileField(upload_to='apps/convenios/anexo/arquivo',)
- descricao = models.CharField('descrição', max_length='70')
+ descricao = models.CharField(_('descrição'), max_length='70')
data_pub = models.DateTimeField(
- 'data da publicação do anexo',
+ _('data da publicação do anexo'),
default=datetime.now
)
@@ -173,21 +174,21 @@ class Tramitacao(models.Model):
""" Modelo para registrar as vias do processo de convênio e a Unidade
responsável pelo tramite (ex. colher assinaturas do secretário do senado)
"""
- convenio = models.ForeignKey(Convenio, verbose_name=u'convênio')
- unid_admin = models.ForeignKey(UnidadeAdministrativa, verbose_name=u'Unidade Administrativa')
+ convenio = models.ForeignKey(Convenio, verbose_name=_(u'convênio'))
+ unid_admin = models.ForeignKey(UnidadeAdministrativa, verbose_name=_(u'Unidade Administrativa'))
data = models.DateField()
observacao = models.CharField(
- 'observação',
+ _('observação'),
max_length='512',
null=True,
blank=True,
)
class Meta:
- verbose_name_plural = u'Tramitações'
+ verbose_name_plural = _(u'Tramitações')
def __unicode__(self):
if self.observacao:
- return unicode("%s em %s (%s)" % (self.unid_admin, self.data, self.observacao))
+ return unicode(_("%s em %s (%s)") % (self.unid_admin, self.data, self.observacao))
else:
- return unicode("%s em %s" % (self.unid_admin, self.data))
+ return unicode(_("%s em %s") % (self.unid_admin, self.data))
diff --git a/sigi/apps/convenios/reports.py b/sigi/apps/convenios/reports.py
index f314536..d43816a 100644
--- a/sigi/apps/convenios/reports.py
+++ b/sigi/apps/convenios/reports.py
@@ -1,18 +1,11 @@
# -*- coding: utf-8 -*-
-import os
-from ctypes import alignment
-from operator import attrgetter
-from geraldo import Report, ReportBand, ObjectValue, DetailBand, Label, \
- landscape, SystemField, BAND_WIDTH, ReportGroup, \
- FIELD_ACTION_SUM, FIELD_ACTION_COUNT, FIELD_ACTION_AVG
-from geraldo.graphics import Image
-
+from django.utils.translation import ugettext as _
+from geraldo import ReportBand, ObjectValue, Label, ReportGroup, FIELD_ACTION_SUM
from reportlab.lib.units import cm
-from reportlab.lib.pagesizes import A4
-from reportlab.lib.enums import TA_CENTER, TA_RIGHT
from sigi.apps.relatorios.reports import ReportDefault
+
#from abc import ABCMeta
@@ -33,7 +26,7 @@ class SemEquipamentosReport(object):
class ConvenioReport(ReportDefault):
- title = u'Relatório de Convênios'
+ title = _(u'Relatório de Convênios')
class band_page_header(ReportDefault.band_page_header):
@@ -44,47 +37,47 @@ class ConvenioReport(ReportDefault):
elements += [
Label(
- text="UF",
+ text=_("UF"),
left=label_left[0] * cm,
top=label_top + 0.4 * cm,
),
Label(
- text="Municipio",
+ text=_("Municipio"),
left=label_left[1] * cm,
top=label_top + 0.4 * cm,
),
Label(
- text="Data de Adesão",
+ text=_("Data de Adesão"),
left=label_left[2] * cm,
top=label_top,
width=2 * cm,
),
Label(
- text="Número do Convênio",
+ text=_("Número do Convênio"),
left=label_left[3] * cm,
top=label_top,
width=2 * cm,
),
Label(
- text="Data do Convênio",
+ text=_("Data do Convênio"),
left=label_left[4] * cm,
top=label_top,
width=2 * cm,
),
Label(
- text="Data de Publicação",
+ text=_("Data de Publicação"),
left=label_left[5] * cm,
top=label_top,
width=2 * cm,
),
Label(
- text="Data de Aceite",
+ text=_("Data de Aceite"),
left=label_left[6] * cm,
top=label_top,
width=2 * cm,
),
Label(
- text="Projeto",
+ text=_("Projeto"),
left=label_left[7] * cm,
top=label_top + 0.4 * cm,
width=2 * cm,
@@ -147,7 +140,7 @@ class ConvenioReport(ReportDefault):
height=0.7 * cm,
elements=[
ObjectValue(attribute_name='casa_legislativa.municipio.uf',
- get_Value=lambda instance: 'CasaLegislativa: ' + (instance.casa_legislativa.uf)
+ get_Value=lambda instance: _('CasaLegislativa: ') + (instance.casa_legislativa.uf)
)
],
borders={'top': True},
@@ -167,41 +160,41 @@ class ConvenioReportSemAceite(ConvenioReport):
elements += [
Label(
- text="UF",
+ text=_("UF"),
left=label_left[0] * cm,
top=label_top + 0.4 * cm,
),
Label(
- text="Município",
+ text=_("Município"),
left=label_left[1] * cm,
top=label_top + 0.4 * cm,
),
Label(
- text="Data de Adesão",
+ text=_("Data de Adesão"),
left=label_left[3] * cm,
top=label_top,
width=2 * cm,
),
Label(
- text="Número do Convênio",
+ text=_("Número do Convênio"),
left=label_left[4] * cm,
top=label_top,
width=2 * cm,
),
Label(
- text="Data do Convênio",
+ text=_("Data do Convênio"),
left=label_left[5] * cm,
top=label_top,
width=2 * cm,
),
Label(
- text="Data de Publicação",
+ text=_("Data de Publicação"),
left=label_left[6] * cm,
top=label_top,
width=2 * cm,
),
Label(
- text="Projeto",
+ text=_("Projeto"),
left=label_left[7] * cm,
top=label_top + 0.4 * cm,
width=2 * cm,
@@ -254,7 +247,7 @@ float_duas_casas = lambda instance: '%.2f' % (instance)
class ConvenioReportRegiao(ReportDefault):
- title = u'Relatório de Convênios por Região'
+ title = _(u'Relatório de Convênios por Região')
class band_page_header(ReportDefault.band_page_header):
label_top = ReportDefault.band_page_header.label_top
@@ -264,11 +257,11 @@ class ConvenioReportRegiao(ReportDefault):
elements = list(ReportDefault.band_page_header.elements)
elements += [
- Label(text="UF", left=label_left[0] * cm, top=label_top,),
- Label(text="Total", left=label_left[1] * cm, top=label_top,),
- Label(text="Aderidas", left=label_left[2] * cm, top=label_top,),
+ Label(text=_("UF"), left=label_left[0] * cm, top=label_top,),
+ Label(text=_("Total"), left=label_left[1] * cm, top=label_top,),
+ Label(text=_("Aderidas"), left=label_left[2] * cm, top=label_top,),
Label(text="%", left=label_left[3] * cm, top=label_top),
- Label(text="Ñ Aderidas", left=label_left[4] * cm, top=label_top,),
+ Label(text=_("Ñ Aderidas"), left=label_left[4] * cm, top=label_top,),
Label(text="%", left=label_left[5] * cm, top=label_top),
]
@@ -290,7 +283,7 @@ class ConvenioReportRegiao(ReportDefault):
class band_summary(ReportBand):
label_left = [0.5, 6, 8, 10, 12, 14]
elements = [
- Label(text="Total", top=0.1 * cm, left=label_left[0] * cm),
+ Label(text=_("Total"), top=0.1 * cm, left=label_left[0] * cm),
ObjectValue(attribute_name='quant_casas', action=FIELD_ACTION_SUM, left=label_left[1] * cm, ),
ObjectValue(attribute_name='quant_casas_aderidas', action=FIELD_ACTION_SUM, left=label_left[2] * cm),
# ObjectValue(attribute_name='porc_casas_aderidas', action=FIELD_ACTION_AVG, left=label_left[3]*cm,
@@ -305,16 +298,16 @@ class ConvenioReportRegiao(ReportDefault):
class ConvenioPorCMReport(ConvenioReport):
- title = u'Relatório de Convênios por Câmara Municipal'
+ title = _(u'Relatório de Convênios por Câmara Municipal')
class ConvenioPorALReport(ConvenioReport):
- title = u'Relatório de Convênios por Assembléia Legislativa'
+ title = _(u'Relatório de Convênios por Assembléia Legislativa')
class ConvenioReportSemAceiteCM(ConvenioReportSemAceite):
- title = u'Relatório de Convênios por Câmara Municipal'
+ title = _(u'Relatório de Convênios por Câmara Municipal')
class ConvenioReportSemAceiteAL(ConvenioReportSemAceite):
- title = u'Relatório de Convênios por Assembléia Legislativa'
+ title = _(u'Relatório de Convênios por Assembléia Legislativa')
diff --git a/sigi/apps/convenios/views.py b/sigi/apps/convenios/views.py
index 5405c8f..46f2596 100644
--- a/sigi/apps/convenios/views.py
+++ b/sigi/apps/convenios/views.py
@@ -1,26 +1,20 @@
#-*- coding:utf-8 -*-
+import csv
+
+import datetime
+import ho.pisa as pisa
+from django.conf import settings
+from django.core.paginator import Paginator, InvalidPage, EmptyPage
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render, get_list_or_404
+from django.template import Context, loader
+from django.utils.translation import ugettext as _
from geraldo.generators import PDFGenerator
-from sigi.apps.convenios.models import Convenio, Projeto
-from sigi.apps.convenios.reports import ConvenioReport \
- , ConvenioPorCMReport \
- , ConvenioPorALReport \
- , ConvenioReportSemAceiteAL \
- , ConvenioReportSemAceiteCM
+
from sigi.apps.casas.models import CasaLegislativa
from sigi.apps.contatos.models import UnidadeFederativa
-
-import ho.pisa as pisa
-from django.template import Context, loader
-
-from django.core.paginator import Paginator, InvalidPage, EmptyPage
-
-from django.conf import settings
-
-import datetime
-
-import csv
+from sigi.apps.convenios.models import Convenio, Projeto
+from sigi.apps.convenios.reports import ConvenioPorCMReport, ConvenioPorALReport, ConvenioReportSemAceiteAL, ConvenioReportSemAceiteCM
def query_ordena(qs, o, ot):
@@ -230,12 +224,12 @@ def casas_estado_to_tabela(casas, convenios, regiao):
)
cabecalho_topo = (
- u'UF',
- u'Câmaras municipais',
- u'Não Aderidas',
- u'Aderidas',
- u'Conveniadas',
- u'Equipadas'
+ _(u'UF'),
+ _(u'Câmaras municipais'),
+ _(u'Não Aderidas'),
+ _(u'Aderidas'),
+ _(u'Conveniadas'),
+ _(u'Equipadas')
)
return {
@@ -252,11 +246,11 @@ def report_regiao(request, regiao='NE'):
regiao = request.POST['regiao']
REGIAO_CHOICES = {
- 'SL': 'Sul',
- 'SD': 'Sudeste',
- 'CO': 'Centro-Oeste',
- 'NE': 'Nordeste',
- 'NO': 'Norte',
+ 'SL': _('Sul'),
+ 'SD': _('Sudeste'),
+ 'CO': _('Centro-Oeste'),
+ 'NE': _('Nordeste'),
+ 'NO': _('Norte'),
}
projetos = Projeto.objects.all()
@@ -267,7 +261,7 @@ def report_regiao(request, regiao='NE'):
# Geral
convenios = Convenio.objects.filter(casa_legislativa__tipo__sigla='CM')
tabela = casas_estado_to_tabela(camaras, convenios, regiao)
- tabela["projeto"] = "Geral"
+ tabela["projeto"] = _("Geral")
tabelas.append(tabela)
@@ -301,47 +295,47 @@ def export_csv(request):
if not convenios:
return HttpResponseRedirect('../')
- atributos = [u"No. Processo", u"No. Convênio", u"Projeto", u"Casa Legislativa", u"Data de Adesão", u"Data de Convênio",
- u"Data da Publicacao no D.O.", u"Data Equipada", ]
+ atributos = [_(u"No. Processo"), _(u"No. Convênio"), _(u"Projeto"), _(u"Casa Legislativa"), _(u"Data de Adesão"), _(u"Data de Convênio"),
+ _(u"Data da Publicacao no D.O."), _(u"Data Equipada"), ]
if request.POST:
atributos = request.POST.getlist("itens_csv_selected")
col_titles = atributos
- if u"Casa Legislativa" in col_titles:
- pos = col_titles.index(u"Casa Legislativa") + 1
- col_titles.insert(pos, u"uf")
+ if _(u"Casa Legislativa") in col_titles:
+ pos = col_titles.index(_(u"Casa Legislativa")) + 1
+ col_titles.insert(pos, _(u"uf"))
csv_writer.writerow([s.encode("utf-8") for s in col_titles])
for convenio in convenios:
lista = []
for atributo in atributos:
- if u"No. Processo" == atributo:
+ if _(u"No. Processo") == atributo:
lista.append(convenio.num_processo_sf.encode("utf-8"))
- elif u"No. Convênio" == atributo:
+ elif _(u"No. Convênio") == atributo:
lista.append(convenio.num_convenio.encode("utf-8"))
- elif u"Projeto" == atributo:
+ elif _(u"Projeto") == atributo:
lista.append(convenio.projeto.nome.encode("utf-8"))
- elif u"Casa Legislativa" == atributo:
+ elif _(u"Casa Legislativa") == atributo:
lista.append(convenio.casa_legislativa.nome.encode("utf-8"))
lista.append(convenio.casa_legislativa.municipio.uf.sigla.encode("utf-8"))
- elif u"Data de Adesão" == atributo:
+ elif _(u"Data de Adesão") == atributo:
data = ''
if convenio.data_adesao:
data = convenio.data_adesao.strftime("%d/%m/%Y")
lista.append(data.encode("utf-8"))
- elif u"Data de Convênio" == atributo:
+ elif _(u"Data de Convênio") == atributo:
data = ''
if convenio.data_retorno_assinatura:
data = convenio.data_retorno_assinatura.strftime("%d/%m/%Y")
lista.append(data.encode("utf-8"))
- elif u"Data da Publicacao no D.O." == atributo:
+ elif _(u"Data da Publicacao no D.O.") == atributo:
data = ''
if convenio.data_pub_diario:
data = convenio.data_pub_diario.strftime("%d/%m/%Y")
lista.append(data.encode("utf-8"))
data = ''
- elif u"Data Equipada" == atributo:
+ elif _(u"Data Equipada") == atributo:
if convenio.data_termo_aceite:
data = convenio.data_termo_aceite.strftime("%d/%m/%Y")
lista.append(data.encode("utf-8"))
diff --git a/sigi/apps/diagnosticos/admin.py b/sigi/apps/diagnosticos/admin.py
index 4a751e5..1d8f7a7 100644
--- a/sigi/apps/diagnosticos/admin.py
+++ b/sigi/apps/diagnosticos/admin.py
@@ -2,7 +2,9 @@
from datetime import datetime
from django.contrib import admin
from django.db.utils import OperationalError, ProgrammingError
+from django.utils.translation import ugettext as _
from eav.admin import BaseEntityAdmin, BaseSchemaAdmin
+
from sigi.apps.diagnosticos.forms import DiagnosticoForm
from sigi.apps.diagnosticos.models import Diagnostico, Pergunta, Escolha, Equipe, Anexo, Categoria
from sigi.apps.utils.base_admin import BaseModelAdmin
@@ -19,15 +21,15 @@ def publicar_diagnostico(self, request, queryset):
email = diagnostico.responsavel.user.email
if email:
diagnostico.email_diagnostico_publicado(email, request.get_host())
- self.message_user(request, "Diagnóstico(s) publicado(s) com sucesso!")
-publicar_diagnostico.short_description = u"""
- Definir diagnósticos como publicado"""
+ self.message_user(request, _("Diagnóstico(s) publicado(s) com sucesso!"))
+publicar_diagnostico.short_description = _(u"""
+ Definir diagnósticos como publicado""")
def despublicar_diagnostico(self, request, queryset):
queryset.update(publicado=False)
-despublicar_diagnostico.short_description = u"""
- Definir diagnósticos como não publicado"""
+despublicar_diagnostico.short_description = _(u"""
+ Definir diagnósticos como não publicado""")
class EquipeInline(admin.TabularInline):
@@ -84,7 +86,7 @@ class DiagnosticoAdmin(BaseEntityAdmin):
def get_uf(self, obj):
return '%s' % (obj.casa_legislativa.municipio.uf)
- get_uf.short_description = 'UF'
+ get_uf.short_description = _('UF')
get_uf.admin_order_field = 'casa_legislativa__municipio__uf__nome'
def lookup_allowed(self, lookup, value):
@@ -126,7 +128,7 @@ class EscolhaInline(admin.TabularInline):
model = Escolha
fk_name = 'schema'
raw_id_fields = ('schema_to_open',)
- verbose_name = 'Escolhas (apenas para choices ou multiple choices)'
+ verbose_name = _('Escolhas (apenas para choices ou multiple choices)')
extra = 0
diff --git a/sigi/apps/diagnosticos/forms.py b/sigi/apps/diagnosticos/forms.py
index f06232f..a271a1f 100644
--- a/sigi/apps/diagnosticos/forms.py
+++ b/sigi/apps/diagnosticos/forms.py
@@ -1,18 +1,20 @@
# -*- coding: utf-8 -*-
-
from copy import deepcopy
+
from django import forms
-from django.forms.forms import BoundField
+from django.contrib.contenttypes.generic import generic_inlineformset_factory
from django.forms import (BooleanField, CharField, DateField,
FloatField, ModelChoiceField, Textarea,
ModelMultipleChoiceField)
-from django.contrib.contenttypes.generic import generic_inlineformset_factory
+from django.forms.forms import BoundField
+from django.utils.translation import ugettext as _
+from eav.fields import RangeField
+from eav.forms import BaseDynamicEntityForm
+
from sigi.apps.casas.models import CasaLegislativa, Funcionario
from sigi.apps.contatos.models import Telefone
from sigi.apps.diagnosticos.models import Diagnostico
from sigi.apps.diagnosticos.widgets import EavCheckboxSelectMultiple, EavRadioSelect
-from eav.forms import BaseDynamicEntityForm
-from eav.fields import RangeField
class DiagnosticoForm(BaseDynamicEntityForm):
@@ -131,7 +133,7 @@ class DiagnosticoMobileForm(BaseDynamicEntityForm):
class CasaLegislativaMobileForm(forms.ModelForm):
- data_instalacao = forms.DateField(label=u'Data de instalação da Casa Legislativa', required=False)
+ data_instalacao = forms.DateField(label=_(u'Data de instalação da Casa Legislativa'), required=False)
data_criacao = forms.DateField()
class Meta:
@@ -141,7 +143,7 @@ class CasaLegislativaMobileForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(CasaLegislativaMobileForm, self).__init__(*args, **kwargs)
self.fields['data_criacao'] = forms.DateField(
- label=u'Data de criação do Município',
+ label=_(u'Data de criação do Município'),
initial=self.instance.municipio.data_criacao,
required=False)
diff --git a/sigi/apps/diagnosticos/models.py b/sigi/apps/diagnosticos/models.py
index f26160c..3f6ed71 100644
--- a/sigi/apps/diagnosticos/models.py
+++ b/sigi/apps/diagnosticos/models.py
@@ -1,11 +1,11 @@
# -*- coding: utf-8 -*-
from datetime import datetime
from django.db import models
+from django.utils.translation import ugettext as _
+from eav.models import BaseChoice, BaseEntity, BaseSchema, BaseAttribute
-from sigi.apps.casas.models import CasaLegislativa
from sigi.apps.utils import SearchField
from sigi.apps.utils.email import enviar_email
-from eav.models import BaseChoice, BaseEntity, BaseSchema, BaseAttribute
class Diagnostico(BaseEntity):
@@ -15,7 +15,7 @@ class Diagnostico(BaseEntity):
"""
casa_legislativa = models.ForeignKey(
'casas.CasaLegislativa',
- verbose_name='Casa Legislativa')
+ verbose_name=_('Casa Legislativa'))
# campo de busca em caixa baixa e sem acento
search_text = SearchField(field_names=['casa_legislativa'])
@@ -39,10 +39,10 @@ class Diagnostico(BaseEntity):
)
responsavel = models.ForeignKey('servidores.Servidor',
- verbose_name=u'responsável')
+ verbose_name=_(u'responsável'))
class Meta:
- verbose_name, verbose_name_plural = u'diagnóstico', u'diagnósticos'
+ verbose_name, verbose_name_plural = _(u'diagnóstico'), _(u'diagnósticos')
@property
def membros(self):
@@ -85,7 +85,7 @@ class Diagnostico(BaseEntity):
* host - O Host do sistema, para ser usado na
construção do endereço do diagnóstico
"""
- enviar_email(from_email, u"Diagnóstico publicado",
+ enviar_email(from_email, _(u"Diagnóstico publicado"),
'diagnosticos/email_diagnostico_publicado.txt',
{
'responsavel': self.responsavel.nome_completo,
@@ -93,7 +93,7 @@ class Diagnostico(BaseEntity):
'data_diagnostico': self.data_visita_inicio,
'host': host,
'url_diagnostico': self.get_absolute_url(),
- 'status': u"Publicado",
+ 'status': _(u"Publicado"),
})
def email_diagnostico_alterado(self, from_email, host):
@@ -103,7 +103,7 @@ class Diagnostico(BaseEntity):
* host - O Host do sistema, para ser usado na
construção do endereço do diagnóstico
"""
- enviar_email(from_email, u"Diagnóstico alterado",
+ enviar_email(from_email, _(u"Diagnóstico alterado"),
'diagnosticos/email_diagnostico_alterado.txt',
{
'servidor': self.responsavel.nome_completo,
@@ -111,7 +111,7 @@ class Diagnostico(BaseEntity):
'data_diagnostico': self.data_visita_inicio,
'host': host,
'url_diagnostico': self.get_absolute_url(),
- 'status': "Alterado",
+ 'status': _("Alterado"),
})
def get_schemata(self, category=None, *args, **kwargs):
@@ -188,7 +188,7 @@ class Pergunta(BaseSchema):
class Meta:
ordering = ('title',)
- verbose_name, verbose_name_plural = 'pergunta', 'perguntas'
+ verbose_name, verbose_name_plural = _('pergunta'), _('perguntas')
class Escolha(BaseChoice):
@@ -197,14 +197,14 @@ class Escolha(BaseChoice):
cadastradas neste modelo
"""
schema = models.ForeignKey(Pergunta,
- related_name='choices', verbose_name='pergunta')
+ related_name='choices', verbose_name=_('pergunta'))
schema_to_open = models.ForeignKey(Pergunta, related_name='',
- verbose_name='pergunta para abrir', blank=True, null=True)
+ verbose_name=_('pergunta para abrir'), blank=True, null=True)
ordem = models.PositiveIntegerField(blank=True, null=True)
class Meta:
ordering = ('schema', 'ordem')
- verbose_name, verbose_name_plural = 'escolha', 'escolhas'
+ verbose_name, verbose_name_plural = _('escolha'), _('escolhas')
class Resposta(BaseAttribute):
@@ -213,12 +213,12 @@ class Resposta(BaseAttribute):
de um diagnosico
"""
schema = models.ForeignKey(Pergunta, related_name='attrs',
- verbose_name='pergunta')
- choice = models.ForeignKey(Escolha, verbose_name='escolha',
+ verbose_name=_('pergunta'))
+ choice = models.ForeignKey(Escolha, verbose_name=_('escolha'),
blank=True, null=True)
class Meta:
- verbose_name, verbose_name_plural = 'resposta', 'respostas'
+ verbose_name, verbose_name_plural = _('resposta'), _('respostas')
class Equipe(models.Model):
@@ -229,7 +229,7 @@ class Equipe(models.Model):
membro = models.ForeignKey('servidores.Servidor')
class Meta:
- verbose_name, verbose_name_plural = u'equipe', u'equipe'
+ verbose_name, verbose_name_plural = _(u'equipe'), _(u'equipe')
def __unicode__(self):
return self.membro.__unicode__()
@@ -242,8 +242,8 @@ class Anexo(models.Model):
"""
diagnostico = models.ForeignKey(Diagnostico, verbose_name=u'diagnóstico')
arquivo = models.FileField(upload_to='apps/diagnostico/anexo/arquivo',)
- descricao = models.CharField('descrição', max_length='70')
- data_pub = models.DateTimeField('data da publicação do anexo',
+ descricao = models.CharField(_('descrição'), max_length='70')
+ data_pub = models.DateTimeField(_('data da publicação do anexo'),
default=datetime.now)
class Meta:
diff --git a/sigi/apps/diagnosticos/views.py b/sigi/apps/diagnosticos/views.py
index 7e2dac3..cb45a1b 100644
--- a/sigi/apps/diagnosticos/views.py
+++ b/sigi/apps/diagnosticos/views.py
@@ -1,21 +1,21 @@
# -*- coding: utf-8 -*-
-
+import json as simplejson # XXX trocar isso por simplesmente import json e refatorar o codigo
from itertools import cycle
from django.http import HttpResponse
-import json as simplejson # XXX trocar isso por simplesmente import json e refatorar o codigo
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
+from django.utils.translation import ugettext as _
from django.views.decorators.cache import never_cache
-from sigi.apps.diagnosticos.urls import LOGIN_REDIRECT_URL
-from sigi.apps.utils.decorators import login_required
-from sigi.apps.diagnosticos.decorators import validate_diagnostico
-from sigi.apps.diagnosticos.models import Diagnostico, Categoria, Pergunta
from sigi.apps.casas.models import Funcionario
+from sigi.apps.contatos.models import Telefone
+from sigi.apps.diagnosticos.decorators import validate_diagnostico
from sigi.apps.diagnosticos.forms import (DiagnosticoMobileForm,
CasaLegislativaMobileForm, FuncionariosMobileForm)
-from sigi.apps.contatos.models import Telefone
+from sigi.apps.diagnosticos.models import Diagnostico, Categoria, Pergunta
+from sigi.apps.diagnosticos.urls import LOGIN_REDIRECT_URL
+from sigi.apps.utils.decorators import login_required
from sigi.shortcuts import render_to_pdf
@@ -186,7 +186,9 @@ def categoria_contatos(request, id_diagnostico):
for form_telefones in form.telefones.forms:
tel = form_telefones.instance
if tel._state.adding and tel.numero != '':
- s += 'Novo telefone %s: %s
' % (form_telefones.instance.get_tipo_display(), form_telefones.instance.numero)
+ s += _('Novo telefone %(type)s: %(number)s
') % dict(
+ type=form_telefones.instance.get_tipo_display(),
+ number=form_telefones.instance.numero)
resposta['clean'] += ('id_' + form_telefones.prefix + '-numero',)
if s != '':
resposta['fones'][form.prefix] = s
@@ -205,8 +207,9 @@ def categoria_contatos(request, id_diagnostico):
Telefone.objects.get(pk=form_telefones.fields['id'].initial).delete()
if form.prefix not in resposta['fones']:
resposta['fones'][form.prefix] = ''
- resposta['fones'][form.prefix] += u'O telefone %s %s foi excluído da base de dados
' % (
- form_telefones.instance.get_tipo_display(), form_telefones.instance.numero)
+ resposta['fones'][form.prefix] += _(u'O telefone %(type)s %(number)s foi excluído da base de dados
') % dict(
+ type=form_telefones.instance.get_tipo_display(),
+ number=form_telefones.instance.numero)
else:
for key, value in form_telefones.errors.iteritems():
key = form_telefones.prefix + "-id-errors"
diff --git a/sigi/apps/financeiro/models.py b/sigi/apps/financeiro/models.py
index 0b7d70b..f9dcf91 100644
--- a/sigi/apps/financeiro/models.py
+++ b/sigi/apps/financeiro/models.py
@@ -1,18 +1,20 @@
# -*- coding: utf-8 -*-
from django.db import models
+from django.utils.translation import ugettext as _
+
from sigi.apps.convenios.models import Projeto
class Desembolso(models.Model):
- projeto = models.ForeignKey(Projeto, verbose_name=u'Projeto')
- descricao = models.CharField(u'Descrição da despesa', max_length=100)
- data = models.DateField(u'Data do desembolso')
- valor_reais = models.DecimalField(u'Valor em R$', max_digits=18, decimal_places=2)
- valor_dolar = models.DecimalField(u'Valor em US$', max_digits=18, decimal_places=2)
+ projeto = models.ForeignKey(Projeto, verbose_name=_(u'Projeto'))
+ descricao = models.CharField(_(u'Descrição da despesa'), max_length=100)
+ data = models.DateField(_(u'Data do desembolso'))
+ valor_reais = models.DecimalField(_(u'Valor em R$'), max_digits=18, decimal_places=2)
+ valor_dolar = models.DecimalField(_(u'Valor em US$'), max_digits=18, decimal_places=2)
class Meta:
- verbose_name = 'Desembolso'
- verbose_name_plural = 'Desembolsos'
+ verbose_name = _('Desembolso')
+ verbose_name_plural = _('Desembolsos')
def __unicode__(self):
return u"%s (US$ %s)" % (self.descricao, self.valor_dolar)
diff --git a/sigi/apps/inventario/models.py b/sigi/apps/inventario/models.py
index 396b522..ecda67a 100644
--- a/sigi/apps/inventario/models.py
+++ b/sigi/apps/inventario/models.py
@@ -1,19 +1,20 @@
# -*- coding: utf-8 -*-
-from django.db import models
from django.contrib.contenttypes import generic
+from django.db import models
+from django.utils.translation import ugettext as _
class Fornecedor(models.Model):
nome = models.CharField(max_length=40)
nome.alphabetic_filter = True
- email = models.EmailField('e-mail', blank=True)
- pagina_web = models.URLField('página web', blank=True)
+ email = models.EmailField(_('e-mail'), blank=True)
+ pagina_web = models.URLField(_('página web'), blank=True)
telefones = generic.GenericRelation('contatos.Telefone')
contatos = generic.GenericRelation('contatos.Contato')
class Meta:
ordering = ('nome',)
- verbose_name_plural = 'fornecedores'
+ verbose_name_plural = _('fornecedores')
def __unicode__(self):
return self.nome
@@ -35,8 +36,8 @@ class TipoEquipamento(models.Model):
class Meta:
ordering = ('tipo',)
- verbose_name = 'tipo de equipamento'
- verbose_name_plural = 'tipos de equipamentos'
+ verbose_name = _('tipo de equipamento')
+ verbose_name_plural = _('tipos de equipamentos')
def __unicode__(self):
return self.tipo
@@ -45,14 +46,14 @@ class TipoEquipamento(models.Model):
class ModeloEquipamento(models.Model):
tipo = models.ForeignKey(
TipoEquipamento,
- verbose_name='tipo de equipamento'
+ verbose_name=_('tipo de equipamento')
)
modelo = models.CharField(max_length=30)
class Meta:
ordering = ('modelo',)
- verbose_name = 'modelo de equipamento'
- verbose_name_plural = 'modelos de equipamentos'
+ verbose_name = _('modelo de equipamento')
+ verbose_name_plural = _('modelos de equipamentos')
def __unicode__(self):
return self.modelo
@@ -75,20 +76,20 @@ class Bem(models.Model):
equipamento = models.ForeignKey(Equipamento)
fornecedor = models.ForeignKey(Fornecedor)
num_serie = models.CharField(
- 'número de série',
+ _('número de série'),
max_length=64,
- help_text='Número fornecido pelo fabricante.',
+ help_text=_('Número fornecido pelo fabricante.'),
unique=True
)
recebido_por = models.CharField(
max_length=64,
blank=True,
- help_text='Nome de quem recebeu o equipamento.'
+ help_text=_('Nome de quem recebeu o equipamento.')
)
- observacoes = models.TextField('observações', blank=True)
+ observacoes = models.TextField(_('observações'), blank=True)
class Meta:
- verbose_name_plural = 'bens'
+ verbose_name_plural = _('bens')
def __unicode__(self):
return unicode('%s (%s)') % (self.equipamento, self.casa_legislativa)
diff --git a/sigi/apps/mesas/admin.py b/sigi/apps/mesas/admin.py
index a66aae1..de82f82 100644
--- a/sigi/apps/mesas/admin.py
+++ b/sigi/apps/mesas/admin.py
@@ -2,6 +2,7 @@
from django.contrib import admin
from django.http import HttpResponse
from django.utils.html import escape
+from django.utils.translation import ugettext as _
from sigi.apps.mesas.models import (Legislatura, Coligacao, ComposicaoColigacao,
SessaoLegislativa, MesaDiretora, Cargo,
@@ -26,7 +27,7 @@ class LegislaturaAdmin(BaseModelAdmin):
def uf(self, obj):
return obj.casa_legislativa.municipio.uf.sigla
- uf.short_description = 'UF'
+ uf.short_description = _('UF')
uf.admin_order_field = 'casa_legislativa__municipio__uf'
def lookup_allowed(self, lookup, value):
diff --git a/sigi/apps/mesas/models.py b/sigi/apps/mesas/models.py
index 957e26f..69ed4fa 100644
--- a/sigi/apps/mesas/models.py
+++ b/sigi/apps/mesas/models.py
@@ -1,15 +1,17 @@
# coding: utf-8
from django.db import models
+from django.utils.translation import ugettext as _
+
from sigi.apps.casas.models import CasaLegislativa
class Legislatura(models.Model):
casa_legislativa = models.ForeignKey(CasaLegislativa)
- numero = models.PositiveSmallIntegerField(u'número legislatura')
- data_inicio = models.DateField(u'início')
- data_fim = models.DateField(u'fim')
- data_eleicao = models.DateField(u'data da eleição')
- total_parlamentares = models.PositiveIntegerField(u"Total de parlamentares")
+ numero = models.PositiveSmallIntegerField(_(u'número legislatura'))
+ data_inicio = models.DateField(_(u'início'))
+ data_fim = models.DateField(_(u'fim'))
+ data_eleicao = models.DateField(_(u'data da eleição'))
+ total_parlamentares = models.PositiveIntegerField(_(u"Total de parlamentares"))
casa_legislativa.convenio_uf_filter = True
casa_legislativa.convenio_cl_tipo_filter = True
@@ -19,34 +21,34 @@ class Legislatura(models.Model):
ordering = ['casa_legislativa__municipio__uf__sigla', '-data_inicio']
def __unicode__(self):
- return u"%sª legislatura da %s (%s-%s)" % (self.numero, self.casa_legislativa.__unicode__(), self.data_inicio.year, self.data_fim.year)
+ return _(u"%sª legislatura da %s (%s-%s)") % (self.numero, self.casa_legislativa.__unicode__(), self.data_inicio.year, self.data_fim.year)
class Coligacao(models.Model):
nome = models.CharField(max_length=50)
legislatura = models.ForeignKey(Legislatura)
numero_votos = models.PositiveIntegerField(
- u'número de votos',
+ _(u'número de votos'),
blank=True,
null=True,
)
class Meta:
ordering = ('legislatura', 'nome')
- verbose_name = 'coligação'
- verbose_name_plural = 'coligações'
+ verbose_name = _('coligação')
+ verbose_name_plural = _('coligações')
def __unicode__(self):
return self.nome
class ComposicaoColigacao(models.Model):
- coligacao = models.ForeignKey(Coligacao, verbose_name='coligação')
+ coligacao = models.ForeignKey(Coligacao, verbose_name=_('coligação'))
partido = models.ForeignKey('parlamentares.Partido')
class Meta:
- verbose_name = 'composição da coligação'
- verbose_name_plural = 'composições das coligações'
+ verbose_name = _('composição da coligação')
+ verbose_name_plural = _('composições das coligações')
def __unicode__(self):
return str(self.id)
@@ -54,13 +56,13 @@ class ComposicaoColigacao(models.Model):
class SessaoLegislativa(models.Model):
SESSAO_CHOICES = (
- ('O', 'Ordinária'),
- ('E', 'Extraordinária'),
+ ('O', _('Ordinária')),
+ ('E', _('Extraordinária')),
)
- numero = models.PositiveSmallIntegerField(u'número da sessão', unique=True)
+ numero = models.PositiveSmallIntegerField(_(u'número da sessão'), unique=True)
mesa_diretora = models.ForeignKey(
'MesaDiretora',
- verbose_name='Mesa Diretora'
+ verbose_name=_('Mesa Diretora')
)
legislatura = models.ForeignKey(Legislatura)
tipo = models.CharField(
@@ -68,23 +70,23 @@ class SessaoLegislativa(models.Model):
choices=SESSAO_CHOICES,
default='O'
)
- data_inicio = models.DateField(u'início')
- data_fim = models.DateField('fim')
+ data_inicio = models.DateField(_(u'início'))
+ data_fim = models.DateField(_('fim'))
data_inicio_intervalo = models.DateField(
- u'início de intervalo',
+ _(u'início de intervalo'),
blank=True,
null=True
)
data_fim_intervalo = models.DateField(
- 'fim de intervalo',
+ _('fim de intervalo'),
blank=True,
null=True
)
class Meta:
ordering = ('legislatura', 'numero')
- verbose_name = 'Sessão Legislativa'
- verbose_name_plural = 'Sessões Legislativas'
+ verbose_name = _('Sessão Legislativa')
+ verbose_name_plural = _('Sessões Legislativas')
def __unicode__(self):
return str(self.numero)
@@ -93,19 +95,19 @@ class SessaoLegislativa(models.Model):
class MesaDiretora(models.Model):
casa_legislativa = models.ForeignKey(
'casas.CasaLegislativa',
- verbose_name='Casa Legislativa'
+ verbose_name=_('Casa Legislativa')
)
class Meta:
- verbose_name = 'Mesa Diretora'
- verbose_name_plural = 'Mesas Diretoras'
+ verbose_name = _('Mesa Diretora')
+ verbose_name_plural = _('Mesas Diretoras')
def __unicode__(self):
- return 'Mesa Diretora da %s' % unicode(self.casa_legislativa)
+ return _('Mesa Diretora da %s') % unicode(self.casa_legislativa)
class Cargo(models.Model):
- descricao = models.CharField(u'descrição', max_length=30)
+ descricao = models.CharField(_(u'descrição'), max_length=30)
class Meta:
ordering = ('descricao',)
@@ -122,8 +124,8 @@ class MembroMesaDiretora(models.Model):
class Meta:
ordering = ('parlamentar',)
unique_together = ('cargo', 'mesa_diretora')
- verbose_name = 'membro de Mesa Diretora'
- verbose_name_plural = 'membros de Mesas Diretora'
+ verbose_name = _('membro de Mesa Diretora')
+ verbose_name_plural = _('membros de Mesas Diretora')
def __unicode__(self):
return '%s (%s)' % (unicode(self.parlamentar), unicode(self.cargo))
diff --git a/sigi/apps/metas/admin.py b/sigi/apps/metas/admin.py
index 502770b..37c0941 100644
--- a/sigi/apps/metas/admin.py
+++ b/sigi/apps/metas/admin.py
@@ -1,9 +1,11 @@
# -*- coding: utf-8 -*-
from django.contrib import admin
+from django.utils.translation import ugettext as _
from sigi.apps.metas.models import PlanoDiretor
from sigi.apps.utils.base_admin import BaseModelAdmin
+
class MetaAdmin(BaseModelAdmin):
list_display = ('projeto', 'titulo', 'data_inicio', 'data_fim', 'valor_meta', 'valor_executado', 'percentual_concluido',)
fields = ('projeto', 'titulo', 'descricao', 'data_inicio', 'data_fim', 'algoritmo', 'valor_meta',)
@@ -18,7 +20,7 @@ class PlanoDiretorAdmin(BaseModelAdmin):
def get_uf(self, obj):
return obj.casa_legislativa.municipio.uf.nome
- get_uf.short_description = u"UF"
+ get_uf.short_description = _(u"UF")
get_uf.admin_order_field = 'casa_legislativa__municipio__uf__nome'
def lookup_allowed(self, lookup, value):
diff --git a/sigi/apps/metas/management/commands/gera_map_data.py b/sigi/apps/metas/management/commands/gera_map_data.py
index 4b9e687..a5541b2 100644
--- a/sigi/apps/metas/management/commands/gera_map_data.py
+++ b/sigi/apps/metas/management/commands/gera_map_data.py
@@ -22,11 +22,13 @@
# 02110-1301, USA.
#
from django.core.management.base import BaseCommand
+from django.utils.translation import ugettext as _
+
from sigi.apps.metas.views import gera_map_data_file
class Command(BaseCommand):
- help = u'Gera arquivo de dados de plotagem do mapa de atuação do Interlegis.'
+ help = _(u'Gera arquivo de dados de plotagem do mapa de atuação do Interlegis.')
def handle(self, *args, **options):
result = gera_map_data_file(cronjob=True)
diff --git a/sigi/apps/metas/models.py b/sigi/apps/metas/models.py
index e7609dd..32a9713 100644
--- a/sigi/apps/metas/models.py
+++ b/sigi/apps/metas/models.py
@@ -1,32 +1,34 @@
# -*- coding: utf-8 -*-
-from datetime import date, datetime
+from datetime import date
from django.db import models
+from django.utils.translation import ugettext as _
+
+from sigi.apps.casas.models import CasaLegislativa
from sigi.apps.convenios.models import Projeto, Convenio
from sigi.apps.diagnosticos.models import Diagnostico
-from sigi.apps.casas.models import CasaLegislativa
from sigi.apps.financeiro.models import Desembolso
class Meta(models.Model):
ALGORITMO_CHOICES = (
- ('SUM_GASTOS', u'Soma dos desembolsos'),
- ('COUNT_EQUI', u'Quantidade de casas equipadas'),
- ('COUNT_ADER', u'Quantidade de casas aderidas'),
- ('COUNT_DIAG', u'Quantidade de casas diagnosticadas'),
- ('COUNT_PDIR', u'Quantidade de planos diretores'),
- ('COUNT_CONV', u'Quantidade de casas conveniadas'),
+ ('SUM_GASTOS', _(u'Soma dos desembolsos')),
+ ('COUNT_EQUI', _(u'Quantidade de casas equipadas')),
+ ('COUNT_ADER', _(u'Quantidade de casas aderidas')),
+ ('COUNT_DIAG', _(u'Quantidade de casas diagnosticadas')),
+ ('COUNT_PDIR', _(u'Quantidade de planos diretores')),
+ ('COUNT_CONV', _(u'Quantidade de casas conveniadas')),
)
- projeto = models.ForeignKey(Projeto, verbose_name=u'Projeto', help_text=u'Projeto ao qual a meta se refere')
- titulo = models.CharField(u'Título', max_length=40, help_text=u'Título da meta que aparecerá no dashboard')
- descricao = models.TextField(u'Descrição')
- data_inicio = models.DateField(u'Data inicial', help_text=u'Início do período de cômputo da meta')
- data_fim = models.DateField(u'Data final', help_text=u'Prazo final para cumprimento da meta')
- algoritmo = models.CharField(u'Algoritmo de cálculo', max_length=10, choices=ALGORITMO_CHOICES)
- valor_meta = models.FloatField(u'Valor da meta', help_text=u'Valor que deve ser atingido até o prazo final da meta')
+ projeto = models.ForeignKey(Projeto, verbose_name=_(u'Projeto'), help_text=_(u'Projeto ao qual a meta se refere'))
+ titulo = models.CharField(_(u'Título'), max_length=40, help_text=_(u'Título da meta que aparecerá no dashboard'))
+ descricao = models.TextField(_(u'Descrição'))
+ data_inicio = models.DateField(_(u'Data inicial'), help_text=_(u'Início do período de cômputo da meta'))
+ data_fim = models.DateField(_(u'Data final'), help_text=_(u'Prazo final para cumprimento da meta'))
+ algoritmo = models.CharField(_(u'Algoritmo de cálculo'), max_length=10, choices=ALGORITMO_CHOICES)
+ valor_meta = models.FloatField(_(u'Valor da meta'), help_text=_(u'Valor que deve ser atingido até o prazo final da meta'))
class Meta:
- verbose_name = 'Meta BID'
- verbose_name_plural = 'Metas BID'
+ verbose_name = _('Meta BID')
+ verbose_name_plural = _('Metas BID')
def __unicode__(self):
return self.titulo
@@ -109,19 +111,19 @@ class Meta(models.Model):
class PlanoDiretor(models.Model):
STATUS_CHOICE = (
- ('E', u'Entregue'),
- ('I', u'Implantado'),
+ ('E', _(u'Entregue')),
+ ('I', _(u'Implantado')),
)
- projeto = models.ForeignKey(Projeto, verbose_name=u'Projeto')
- casa_legislativa = models.ForeignKey(CasaLegislativa, verbose_name=u'Casa Legislativa')
+ projeto = models.ForeignKey(Projeto, verbose_name=_(u'Projeto'))
+ casa_legislativa = models.ForeignKey(CasaLegislativa, verbose_name=_(u'Casa Legislativa'))
casa_legislativa.casa_uf_filter = True
- status = models.CharField(u'Status', max_length=1, choices=STATUS_CHOICE, default='E')
- data_entrega = models.DateField(u'Data de entrega', blank=True, null=True)
- data_implantacao = models.DateField(u'Data de implantação', blank=True, null=True)
+ status = models.CharField(_(u'Status'), max_length=1, choices=STATUS_CHOICE, default='E')
+ data_entrega = models.DateField(_(u'Data de entrega'), blank=True, null=True)
+ data_implantacao = models.DateField(_(u'Data de implantação'), blank=True, null=True)
class Meta:
- verbose_name = 'Plano Diretor'
- verbose_name_plural = 'Planos Diretores'
+ verbose_name = _('Plano Diretor')
+ verbose_name_plural = _('Planos Diretores')
def __unicode__(self):
return self.casa_legislativa.nome
diff --git a/sigi/apps/metas/templatetags/mapa_tags.py b/sigi/apps/metas/templatetags/mapa_tags.py
index 4357a16..1ef0ebe 100644
--- a/sigi/apps/metas/templatetags/mapa_tags.py
+++ b/sigi/apps/metas/templatetags/mapa_tags.py
@@ -1,9 +1,11 @@
# -*- coding: utf-8 -*-
-
from django import template
from django.utils.safestring import mark_safe
+from django.utils.translation import ugettext as _
+
from sigi.apps.casas.models import CasaLegislativa
+
register = template.Library()
@@ -15,21 +17,21 @@ def descricao_servicos(value):
result = ""
for sv in value.servico_set.all():
- result += u'%s ativado em %s' % (sv.tipo_servico.nome, sv.data_ativacao.strftime('%d/%m/%Y'))
+ result += _(u'%s ativado em %s') % (sv.tipo_servico.nome, sv.data_ativacao.strftime('%d/%m/%Y'))
for cv in value.convenio_set.all():
if (cv.data_retorno_assinatura is None) and (cv.equipada and cv.data_termo_aceite is not None):
- result += u"Equipada em %s pelo %s" % (cv.data_termo_aceite.strftime('%d/%m/%Y'), cv.projeto.sigla)
+ result += _(u"Equipada em %s pelo %s") % (cv.data_termo_aceite.strftime('%d/%m/%Y'), cv.projeto.sigla)
if (cv.data_retorno_assinatura is not None) and not (cv.equipada and cv.data_termo_aceite is not None):
- result += u"Conveniada ao %s em %s" % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y'))
+ result += _(u"Conveniada ao %s em %s") % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y'))
if (cv.data_retorno_assinatura is not None) and (cv.equipada and cv.data_termo_aceite is not None):
- result += u"Conveniada ao %s em %s e equipada em %s" % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y'), cv.data_termo_aceite.strftime('%d/%m/%Y'))
+ result += _(u"Conveniada ao %s em %s e equipada em %s") % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y'), cv.data_termo_aceite.strftime('%d/%m/%Y'))
for dg in value.diagnostico_set.all():
- result += u'Diagnosticada no período de %s a %s' % (dg.data_visita_inicio.strftime('%d/%m/%Y') if dg.data_visita_inicio
- else u"<< sem data inicial >>",
+ result += _(u'Diagnosticada no período de %s a %s') % (dg.data_visita_inicio.strftime('%d/%m/%Y') if dg.data_visita_inicio
+ else _(u"<< sem data inicial >>"),
dg.data_visita_fim.strftime('%d/%m/%Y') if dg.data_visita_fim
- else u"<< sem data final >>")
+ else _(u"<< sem data final >>"))
return mark_safe(result)
descricao_servicos.is_safe = True
diff --git a/sigi/apps/metas/views.py b/sigi/apps/metas/views.py
index f6e0cd7..efdc747 100644
--- a/sigi/apps/metas/views.py
+++ b/sigi/apps/metas/views.py
@@ -1,27 +1,29 @@
# -*- coding: utf-8 -*-
import csv
+import json as simplejson # XXX trocar isso por simplesmente import json e refatorar o codigo
import os
+from functools import reduce
-from django.http import HttpResponse
+from django.contrib.auth.decorators import login_required
from django.core.exceptions import PermissionDenied
-import json as simplejson # XXX trocar isso por simplesmente import json e refatorar o codigo
-from django.utils.datastructures import SortedDict
+from django.db.models import Q
+from django.db.models.aggregates import Sum
+from django.http import HttpResponse
from django.shortcuts import render_to_response
from django.template import RequestContext
-from django.db.models import Q
+from django.utils.datastructures import SortedDict
+from django.utils.translation import ugettext as _
from django.views.decorators.cache import cache_page
-from django.db.models.aggregates import Sum
-from django.contrib.auth.decorators import user_passes_test, login_required
-from sigi.settings import MEDIA_ROOT, STATIC_URL
-from sigi.shortcuts import render_to_pdf
-from sigi.apps.servicos.models import TipoServico, Servico
-from sigi.apps.convenios.models import Projeto, Convenio
-from sigi.apps.contatos.models import UnidadeFederativa
+
from sigi.apps.casas.models import CasaLegislativa
-from sigi.apps.utils import to_ascii
+from sigi.apps.contatos.models import UnidadeFederativa
+from sigi.apps.convenios.models import Projeto
from sigi.apps.financeiro.models import Desembolso
-from sigi.apps.metas.templatetags.mapa_tags import descricao_servicos
-from functools import reduce
+from sigi.apps.servicos.models import TipoServico
+from sigi.apps.utils import to_ascii
+from sigi.settings import MEDIA_ROOT, STATIC_URL
+from sigi.shortcuts import render_to_pdf
+
JSON_FILE_NAME = os.path.join(MEDIA_ROOT, 'apps/metas/map_data.json')
@@ -308,28 +310,30 @@ def gera_map_data_file(cronjob=False):
}
for sv in c.servico_set.all():
- casa['info'].append(u"%s ativado em %s " % (
- sv.tipo_servico.nome, sv.data_ativacao.strftime('%d/%m/%Y') if sv.data_ativacao else
- u'', sv.url, STATIC_URL))
+ casa['info'].append(
+ _(u"%(name)s ativado em %(date)s") % dict(
+ name=sv.tipo_servico.nome,
+ date=sv.data_ativacao.strftime('%d/%m/%Y') if sv.data_ativacao else _(u'')) +
+ " " % (sv.url, STATIC_URL))
casa['seit'].append(sv.tipo_servico.sigla)
for cv in c.convenio_set.all():
if (cv.data_retorno_assinatura is None) and (cv.equipada and cv.data_termo_aceite is not None):
- casa['info'].append(u"Equipada em %s pelo %s" % (cv.data_termo_aceite.strftime('%d/%m/%Y'), cv.projeto.sigla))
+ casa['info'].append(_(u"Equipada em %s pelo %s") % (cv.data_termo_aceite.strftime('%d/%m/%Y'), cv.projeto.sigla))
casa['equipadas'].append(cv.projeto.sigla)
if (cv.data_retorno_assinatura is not None) and not (cv.equipada and cv.data_termo_aceite is not None):
- casa['info'].append(u"Conveniada ao %s em %s" % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y')))
+ casa['info'].append(_(u"Conveniada ao %s em %s") % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y')))
casa['convenios'].append(cv.projeto.sigla)
if (cv.data_retorno_assinatura is not None) and (cv.equipada and cv.data_termo_aceite is not None):
- casa['info'].append(u"Conveniada ao %s em %s e equipada em %s" % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y'), cv.data_termo_aceite.strftime('%d/%m/%Y')))
+ casa['info'].append(_(u"Conveniada ao %s em %s e equipada em %s") % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y'), cv.data_termo_aceite.strftime('%d/%m/%Y')))
casa['equipadas'].append(cv.projeto.sigla)
casa['convenios'].append(cv.projeto.sigla)
for dg in c.diagnostico_set.all():
casa['diagnosticos'].append('P' if dg.publicado else 'A')
- casa['info'].append(u'Diagnosticada no período de %s a %s' % (dg.data_visita_inicio.strftime('%d/%m/%Y') if
- dg.data_visita_inicio is not None else u"",
- dg.data_visita_fim.strftime('%d/%m/%Y') if dg.data_visita_fim else u""))
+ casa['info'].append(_(u'Diagnosticada no período de %s a %s') % (dg.data_visita_inicio.strftime('%d/%m/%Y') if
+ dg.data_visita_inicio is not None else _(u""),
+ dg.data_visita_fim.strftime('%d/%m/%Y') if dg.data_visita_fim else _(u"")))
casa['info'] = "
".join(casa['info'])
@@ -348,6 +352,6 @@ def gera_map_data_file(cronjob=False):
pass # ... ou os dados poderão ser usados de qualquer forma
if cronjob:
- return "Arquivo %s gerado em %d segundos" % (JSON_FILE_NAME, time.time() - start)
+ return _("Arquivo %s gerado em %d segundos") % (JSON_FILE_NAME, time.time() - start)
return json_data
diff --git a/sigi/apps/ocorrencias/admin.py b/sigi/apps/ocorrencias/admin.py
index 035dad7..82d98bd 100644
--- a/sigi/apps/ocorrencias/admin.py
+++ b/sigi/apps/ocorrencias/admin.py
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
from django.contrib import admin
from django.contrib.admin.views.main import ChangeList
+from django.utils.translation import ugettext as _
from filters import OcorrenciaListFilter
from sigi.apps.ocorrencias.models import Ocorrencia, Comentario, Anexo, Categoria, TipoContato
@@ -13,7 +14,7 @@ class ComentarioViewInline(admin.TabularInline):
extra = 0
max_num = 0
can_delete = False
- verbose_name, verbose_name_plural = u"Comentário anterior", u"Comentários anteriores"
+ verbose_name, verbose_name_plural = _(u"Comentário anterior"), _(u"Comentários anteriores")
fields = ('usuario', 'data_criacao', 'novo_status', 'encaminhar_setor', 'descricao', )
readonly_fields = ('novo_status', 'encaminhar_setor', 'descricao', 'data_criacao', 'usuario',)
@@ -21,7 +22,7 @@ class ComentarioViewInline(admin.TabularInline):
class ComentarioInline(admin.StackedInline):
model = Comentario
extra = 1
- verbose_name, verbose_name_plural = u"Comentário novo", u"Comentários novos"
+ verbose_name, verbose_name_plural = _(u"Comentário novo"), _(u"Comentários novos")
fieldsets = ((None, {'fields': (('novo_status', 'encaminhar_setor',), 'descricao', )}),)
def get_queryset(self, queryset):
@@ -114,12 +115,12 @@ class OcorrenciaAdmin(BaseModelAdmin):
def get_uf(self, obj):
return obj.casa_legislativa.municipio.uf
- get_uf.short_description = u'UF'
+ get_uf.short_description = _(u'UF')
get_uf.admin_order_field = 'casa_legislativa__municipio__uf'
def get_municipio(self, obj):
return obj.casa_legislativa.municipio.nome
- get_municipio.short_description = u'Município'
+ get_municipio.short_description = _(u'Município')
get_municipio.admin_order_field = 'casa_legislativa__municipio__nome'
diff --git a/sigi/apps/ocorrencias/filters.py b/sigi/apps/ocorrencias/filters.py
index 1567526..533d373 100644
--- a/sigi/apps/ocorrencias/filters.py
+++ b/sigi/apps/ocorrencias/filters.py
@@ -1,17 +1,19 @@
# -*- coding: utf-8 -*-
from django.contrib import admin
+from django.utils.translation import ugettext as _
+
from sigi.apps.servidores.models import Servidor
class OcorrenciaListFilter(admin.SimpleListFilter):
- title = u'Relacionadas a Mim'
+ title = _(u'Relacionadas a Mim')
parameter_name = 'minhas'
def lookups(self, request, model_admin):
return (
- ('S', u'Atribuídos ao meu setor'),
- ('M', u'Registrados por mim'),
+ ('S', _(u'Atribuídos ao meu setor')),
+ ('M', _(u'Registrados por mim')),
)
def queryset(self, request, queryset):
diff --git a/sigi/apps/ocorrencias/models.py b/sigi/apps/ocorrencias/models.py
index f60cc45..538516c 100644
--- a/sigi/apps/ocorrencias/models.py
+++ b/sigi/apps/ocorrencias/models.py
@@ -1,24 +1,25 @@
# -*- coding: utf-8 -*-
from django.db import models
+from django.utils.translation import ugettext as _
class Categoria(models.Model):
- nome = models.CharField(u"Categoria", max_length=50)
- descricao = models.TextField(u'descrição', blank=True, null=True)
- setor_responsavel = models.ForeignKey('servidores.Servico', verbose_name=u"Setor responsável")
+ nome = models.CharField(_(u"Categoria"), max_length=50)
+ descricao = models.TextField(_(u'descrição'), blank=True, null=True)
+ setor_responsavel = models.ForeignKey('servidores.Servico', verbose_name=_(u"Setor responsável"))
class Meta:
- verbose_name, verbose_name_plural = u'Categoria', u'Categorias'
+ verbose_name, verbose_name_plural = _(u'Categoria'), _(u'Categorias')
def __unicode__(self):
return self.nome
class TipoContato(models.Model):
- descricao = models.CharField(u"Descrição", max_length=50)
+ descricao = models.CharField(_(u"Descrição"), max_length=50)
class Meta:
- verbose_name, verbose_name_plural = u"Tipo de contato", u"Tipos de contato"
+ verbose_name, verbose_name_plural = _(u"Tipo de contato"), _(u"Tipos de contato")
def __unicode__(self):
return self.descricao
@@ -26,40 +27,40 @@ class TipoContato(models.Model):
class Ocorrencia(models.Model):
STATUS_CHOICES = (
- (1, u'Aberto'),
- (2, u'Reaberto'),
- (3, u'Resolvido'),
- (4, u'Fechado'),
- (5, u'Duplicado'),
+ (1, _(u'Aberto')),
+ (2, _(u'Reaberto')),
+ (3, _(u'Resolvido')),
+ (4, _(u'Fechado')),
+ (5, _(u'Duplicado')),
)
PRIORITY_CHOICES = (
- (1, u'Altíssimo'),
- (2, u'Alto'),
- (3, u'Normal'),
- (4, u'Baixo'),
- (5, u'Baixíssimo'),
+ (1, _(u'Altíssimo')),
+ (2, _(u'Alto')),
+ (3, _(u'Normal')),
+ (4, _(u'Baixo')),
+ (5, _(u'Baixíssimo')),
)
- casa_legislativa = models.ForeignKey('casas.CasaLegislativa', verbose_name=u'Casa Legislativa')
+ casa_legislativa = models.ForeignKey('casas.CasaLegislativa', verbose_name=_(u'Casa Legislativa'))
casa_legislativa.convenio_uf_filter = True
casa_legislativa.convenio_cl_tipo_filter = True
- data_criacao = models.DateField(u'Data de criação', null=True, blank=True, auto_now_add=True)
- data_modificacao = models.DateField(u'Data de modificação', null=True, blank=True, auto_now=True)
- categoria = models.ForeignKey(Categoria, verbose_name=u'Categoria')
- tipo_contato = models.ForeignKey(TipoContato, verbose_name=u"Tipo de contato")
- assunto = models.CharField(u'Assunto', max_length=200)
+ data_criacao = models.DateField(_(u'Data de criação'), null=True, blank=True, auto_now_add=True)
+ data_modificacao = models.DateField(_(u'Data de modificação'), null=True, blank=True, auto_now=True)
+ categoria = models.ForeignKey(Categoria, verbose_name=_(u'Categoria'))
+ tipo_contato = models.ForeignKey(TipoContato, verbose_name=_(u"Tipo de contato"))
+ assunto = models.CharField(_(u'Assunto'), max_length=200)
assunto.grupo_filter = True
- status = models.IntegerField(u'Status', choices=STATUS_CHOICES, default=1,)
+ status = models.IntegerField(_(u'Status'), choices=STATUS_CHOICES, default=1,)
status.multichoice_filter = True
- prioridade = models.IntegerField(u'Prioridade', choices=PRIORITY_CHOICES, default=3, )
- descricao = models.TextField(u'descrição', blank=True,)
- resolucao = models.TextField(u'resolução', blank=True,)
- servidor_registro = models.ForeignKey('servidores.Servidor', verbose_name=u"Servidor que registrou a ocorrência")
- setor_responsavel = models.ForeignKey('servidores.Servico', verbose_name=u"Setor responsável")
+ prioridade = models.IntegerField(_(u'Prioridade'), choices=PRIORITY_CHOICES, default=3, )
+ descricao = models.TextField(_(u'descrição'), blank=True,)
+ resolucao = models.TextField(_(u'resolução'), blank=True,)
+ servidor_registro = models.ForeignKey('servidores.Servidor', verbose_name=_(u"Servidor que registrou a ocorrência"))
+ setor_responsavel = models.ForeignKey('servidores.Servico', verbose_name=_(u"Setor responsável"))
class Meta:
- verbose_name, verbose_name_plural = u'ocorrência', u'ocorrências'
+ verbose_name, verbose_name_plural = _(u'ocorrência'), _(u'ocorrências')
ordering = ['prioridade', 'data_modificacao', 'data_criacao', ]
def __unicode__(self):
@@ -67,23 +68,23 @@ class Ocorrencia(models.Model):
class Comentario(models.Model):
- ocorrencia = models.ForeignKey(Ocorrencia, verbose_name=u'Ocorrência')
- data_criacao = models.DateTimeField(u'Data de criação', null=True, blank=True, auto_now_add=True)
- descricao = models.TextField(u'Descrição', blank=True, null=True)
- usuario = models.ForeignKey('servidores.Servidor', verbose_name=u'Usuário')
- novo_status = models.IntegerField(u'Novo status', choices=Ocorrencia.STATUS_CHOICES, blank=True, null=True)
- encaminhar_setor = models.ForeignKey('servidores.Servico', verbose_name=u'Encaminhar para setor', blank=True, null=True)
+ ocorrencia = models.ForeignKey(Ocorrencia, verbose_name=_(u'Ocorrência'))
+ data_criacao = models.DateTimeField(_(u'Data de criação'), null=True, blank=True, auto_now_add=True)
+ descricao = models.TextField(_(u'Descrição'), blank=True, null=True)
+ usuario = models.ForeignKey('servidores.Servidor', verbose_name=_(u'Usuário'))
+ novo_status = models.IntegerField(_(u'Novo status'), choices=Ocorrencia.STATUS_CHOICES, blank=True, null=True)
+ encaminhar_setor = models.ForeignKey('servidores.Servico', verbose_name=_(u'Encaminhar para setor'), blank=True, null=True)
class Anexo(models.Model):
- ocorrencia = models.ForeignKey(Ocorrencia, verbose_name=u'ocorrência')
- arquivo = models.FileField(u'Arquivo anexado', upload_to='apps/ocorrencia/anexo/arquivo',)
- descricao = models.CharField(u'descrição do anexo', max_length='70')
- data_pub = models.DateTimeField(u'data da publicação do anexo', null=True, blank=True, auto_now_add=True)
+ ocorrencia = models.ForeignKey(Ocorrencia, verbose_name=_(u'ocorrência'))
+ arquivo = models.FileField(_(u'Arquivo anexado'), upload_to='apps/ocorrencia/anexo/arquivo',)
+ descricao = models.CharField(_(u'descrição do anexo'), max_length='70')
+ data_pub = models.DateTimeField(_(u'data da publicação do anexo'), null=True, blank=True, auto_now_add=True)
class Meta:
ordering = ('-data_pub',)
- verbose_name, verbose_name_plural = u'Anexo', u'Anexos'
+ verbose_name, verbose_name_plural = _(u'Anexo'), _(u'Anexos')
def __unicode__(self):
return u"%(arquivo_name)s: %(descricao)s" % {'arquivo_name': self.arquivo.name, 'descricao': self.descricao}
diff --git a/sigi/apps/parlamentares/admin.py b/sigi/apps/parlamentares/admin.py
index 8215b3e..5319bbf 100644
--- a/sigi/apps/parlamentares/admin.py
+++ b/sigi/apps/parlamentares/admin.py
@@ -2,6 +2,7 @@
from django.contrib import admin
from django.contrib.contenttypes import generic
from django.http import HttpResponseRedirect
+from django.utils.translation import ugettext as _
from sigi.apps.contatos.models import Telefone
from sigi.apps.parlamentares.models import Partido, Parlamentar, Mandato
@@ -28,7 +29,7 @@ class PartidoAdmin(BaseModelAdmin):
class ParlamentarNomeCompletoFilter(AlphabeticFilter):
- title = 'Inicial do Nome Completo'
+ title = _('Inicial do Nome Completo')
parameter_name = 'nome_completo'
@@ -42,10 +43,10 @@ class ParlamentarAdmin(BaseModelAdmin):
(None, {
'fields': ('nome_completo', 'nome_parlamentar', 'sexo'),
}),
- # ('Endereço', {
+ # (_('Endereço'), {
# 'fields': ('logradouro', 'bairro', 'municipio', 'cep'),
# }),
- ('Outras informações', {
+ (_('Outras informações'), {
'fields': ('data_nascimento', 'email', 'pagina_web', 'foto'),
}),
)
@@ -63,12 +64,12 @@ class ParlamentarAdmin(BaseModelAdmin):
q2 = len(request.session['carrinho_parlamentar'])
quant = q2 - q1
if quant:
- self.message_user(request, "%s Parlamentares adicionados no carrinho" % (quant))
+ self.message_user(request, _("%s Parlamentares adicionados no carrinho") % (quant))
else:
- self.message_user(request, "Os parlamentares selecionadas já foram adicionadas anteriormente")
+ self.message_user(request, _("Os parlamentares selecionadas já foram adicionadas anteriormente"))
return HttpResponseRedirect('.')
- adiciona_parlamentar.short_description = u"Armazenar parlamentar no carrinho para exportar"
+ adiciona_parlamentar.short_description = _(u"Armazenar parlamentar no carrinho para exportar")
class MandatoAdmin(BaseModelAdmin):
diff --git a/sigi/apps/parlamentares/models.py b/sigi/apps/parlamentares/models.py
index 59cc199..f99ed19 100644
--- a/sigi/apps/parlamentares/models.py
+++ b/sigi/apps/parlamentares/models.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
from django.db import models
-from django.contrib.contenttypes import generic
+from django.utils.translation import ugettext as _
class Partido(models.Model):
@@ -16,8 +16,8 @@ class Partido(models.Model):
class Parlamentar(models.Model):
SEXO_CHOICES = (
- ('M', 'Masculino'),
- ('F', 'Feminino'),
+ ('M', _('Masculino')),
+ ('F', _('Feminino')),
)
nome_completo = models.CharField(max_length=128)
nome_parlamentar = models.CharField(max_length=35, blank=True)
@@ -34,17 +34,17 @@ class Parlamentar(models.Model):
choices=SEXO_CHOICES,
)
data_nascimento = models.DateField(
- 'data de nascimento',
+ _('data de nascimento'),
blank=True,
null=True,
)
- email = models.EmailField('e-mail', blank=True)
- pagina_web = models.URLField(u'página web',
+ email = models.EmailField(_('e-mail'), blank=True)
+ pagina_web = models.URLField(_(u'página web'),
blank=True)
class Meta:
ordering = ('nome_completo',)
- verbose_name_plural = 'parlamentares'
+ verbose_name_plural = _('parlamentares')
def __unicode__(self):
if self.nome_parlamentar:
@@ -54,23 +54,23 @@ class Parlamentar(models.Model):
class Mandato(models.Model):
SUPLENCIA_CHOICES = (
- ('T', 'Titular'),
- ('S', 'Suplente'),
+ ('T', _('Titular')),
+ ('S', _('Suplente')),
)
parlamentar = models.ForeignKey(Parlamentar)
legislatura = models.ForeignKey('mesas.Legislatura')
partido = models.ForeignKey(Partido)
cargo = models.ForeignKey('mesas.Cargo')
- inicio_mandato = models.DateField(u'início de mandato')
- fim_mandato = models.DateField('fim de mandato')
+ inicio_mandato = models.DateField(_(u'início de mandato'))
+ fim_mandato = models.DateField(_('fim de mandato'))
is_afastado = models.BooleanField(
- 'afastado',
+ _('afastado'),
default=False,
- help_text=u'Marque caso parlamentar não esteja ativo.'
+ help_text=_(u'Marque caso parlamentar não esteja ativo.')
)
# suplencia = models.CharField(
-# u'suplência',
+# _(u'suplência'),
# max_length=1,
# choices=SUPLENCIA_CHOICES,
# )
diff --git a/sigi/apps/parlamentares/reports.py b/sigi/apps/parlamentares/reports.py
index 24c2f68..d33ed8b 100644
--- a/sigi/apps/parlamentares/reports.py
+++ b/sigi/apps/parlamentares/reports.py
@@ -1,14 +1,13 @@
# -*- coding: utf-8 -*-
+from django.utils.translation import ugettext as _
+from geraldo import Report, DetailBand, Label, ObjectValue, ReportGroup, ReportBand, landscape, SubReport, BAND_WIDTH, SystemField
+from geraldo.graphics import Image
+from reportlab.lib.enums import TA_CENTER
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import cm
-from reportlab.lib.enums import TA_CENTER, TA_RIGHT
-from geraldo import Report, DetailBand, Label, ObjectValue, ManyElements, \
- ReportGroup, ReportBand, landscape, SubReport, BAND_WIDTH, SystemField
from sigi.apps.relatorios.reports import ReportDefault
-from geraldo.graphics import Image
-
def string_to_cm(texto):
tamanho = 0
@@ -85,7 +84,7 @@ class ParlamentaresLabels(Report):
my_elements = [
Label(
- text=u'A Sua Excelência o(a) Senhor(a)',
+ text=_(u'A Sua Excelência o(a) Senhor(a)'),
top=(self.start + self.delta) * cm, left=self.y * cm, width=(self.largura_etiqueta - self.y) * cm,
),
ObjectValue(
@@ -126,32 +125,32 @@ def logradouro_parlamentar(instance):
try:
return instance.mandato_set.latest('inicio_mandato').legislatura.casa_legislativa.logradouro
except:
- return u"<>"
+ return _(u"<>")
def bairro_parlamentar(instance):
try:
return instance.mandato_set.latest('inicio_mandato').legislatura.casa_legislativa.bairro
except:
- return u"<>"
+ return _(u"<>")
def municipio_parlamentar(instance):
try:
return instance.mandato_set.latest('inicio_mandato').legislatura.casa_legislativa.municipio
except:
- return u"<>"
+ return _(u"<>")
def cep_parlamentar(instance):
try:
return instance.mandato_set.latest('inicio_mandato').legislatura.casa_legislativa.cep
except:
- return u"<>"
+ return _(u"<>")
class CasasLegislativasReport(ReportDefault):
- title = u'Relatório de Casas Legislativas'
+ title = _(u'Relatório de Casas Legislativas')
height = 80 * cm
page_size = landscape(A4)
@@ -170,10 +169,10 @@ class CasasLegislativasReport(ReportDefault):
left=1 * cm, right=1 * cm, top=0.1 * cm, bottom=1 * cm,
width=3 * cm, height=3 * cm,
),
- Label(text=u"SENADO FEDERAL", top=1 * cm, left=0, width=BAND_WIDTH,
+ Label(text=_(u"SENADO FEDERAL"), top=1 * cm, left=0, width=BAND_WIDTH,
style={'fontName': 'Helvetica-Bold', 'fontSize': 14, 'alignment': TA_CENTER}
),
- Label(text=u"SINTER - Secretaria Especial do Interlegis", top=1.5 * cm, left=0, width=BAND_WIDTH,
+ Label(text=_(u"SINTER - Secretaria Especial do Interlegis"), top=1.5 * cm, left=0, width=BAND_WIDTH,
style={'fontName': 'Helvetica-Bold', 'fontSize': 13, 'alignment': TA_CENTER}
),
SystemField(
@@ -181,32 +180,32 @@ class CasasLegislativasReport(ReportDefault):
style={'fontName': 'Helvetica-Bold', 'fontSize': 14, 'alignment': TA_CENTER}
),
Label(
- text=u"UF",
+ text=_(u"UF"),
left=label_left[0] * cm,
top=label_top,
),
Label(
- text=u"Municipio",
+ text=_(u"Municipio"),
left=label_left[1] * cm,
top=label_top,
),
Label(
- text=u"Presidente",
+ text=_(u"Presidente"),
left=label_left[2] * cm,
top=label_top,
),
Label(
- text=u"Endereço",
+ text=_(u"Endereço"),
left=label_left[3] * cm,
top=label_top,
),
Label(
- text=u"Endereço na Internet",
+ text=_(u"Endereço na Internet"),
left=label_left[4] * cm,
top=label_top,
),
Label(
- text=u"Email",
+ text=_(u"Email"),
left=label_left[5] * cm,
top=label_top,
),
@@ -265,7 +264,7 @@ class CasasLegislativasReport(ReportDefault):
class InfoCasaLegislativa(ReportDefault):
- title = u'Casa Legislativa'
+ title = _(u'Casa Legislativa')
class band_summary(ReportBand):
pass
@@ -274,7 +273,7 @@ class InfoCasaLegislativa(ReportDefault):
height = 1 * cm
elements = [
- SystemField(expression=u'%(now:%d/%m/%Y)s às %(now:%H:%M)s', top=0.3 * cm),
+ SystemField(expression=_(u'%(now:%d/%m/%Y)s às %(now:%H:%M)s'), top=0.3 * cm),
]
class band_detail(ReportDefault.band_detail):
@@ -312,7 +311,7 @@ class InfoCasaLegislativa(ReportDefault):
elements = [
Label(
- text=u"Tipo: ",
+ text=_(u"Tipo: "),
left=posicao_left[0] * cm,
top=posicao_top[0] * cm,
),
@@ -323,7 +322,7 @@ class InfoCasaLegislativa(ReportDefault):
width=6 * cm,
),
Label(
- text=u"Região: ",
+ text=_(u"Região: "),
left=posicao_left[2] * cm,
top=posicao_top[1] * cm,
),
@@ -332,11 +331,11 @@ class InfoCasaLegislativa(ReportDefault):
left=posicao_left[3] * cm,
top=posicao_top[1] * cm,
get_value=lambda instance:
- {'SL': 'Sul', 'SD': 'Sudeste', 'CO': 'Centro-Oeste', 'NE': 'Nordeste', 'NO': 'Norte', }
+ {'SL': _('Sul'), 'SD': _('Sudeste'), 'CO': _('Centro-Oeste'), 'NE': _('Nordeste'), 'NO': _('Norte'), }
[instance.municipio.uf.regiao]
),
Label(
- text=u"U.F.: ",
+ text=_(u"U.F.: "),
left=posicao_left[4] * cm,
top=posicao_top[2] * cm,
),
@@ -346,7 +345,7 @@ class InfoCasaLegislativa(ReportDefault):
top=posicao_top[2] * cm,
),
Label(
- text=u"Município: ",
+ text=_(u"Município: "),
left=posicao_left[6] * cm,
top=posicao_top[3] * cm,
),
@@ -358,7 +357,7 @@ class InfoCasaLegislativa(ReportDefault):
),
# Linha 3
Label(
- text=u"Endereço: ",
+ text=_(u"Endereço: "),
left=posicao_left[8] * cm,
top=posicao_top[4] * cm,
),
@@ -369,7 +368,7 @@ class InfoCasaLegislativa(ReportDefault):
width=20 * cm,
),
Label(
- text=u"Bairro: ",
+ text=_(u"Bairro: "),
left=posicao_left[10] * cm,
top=posicao_top[5] * cm,
),
@@ -379,7 +378,7 @@ class InfoCasaLegislativa(ReportDefault):
top=posicao_top[5] * cm,
),
Label(
- text=u"CEP: ",
+ text=_(u"CEP: "),
left=posicao_left[12] * cm,
top=posicao_top[6] * cm,
),
@@ -389,7 +388,7 @@ class InfoCasaLegislativa(ReportDefault):
top=posicao_top[6] * cm,
),
Label(
- text=u"CNPJ: ",
+ text=_(u"CNPJ: "),
left=posicao_left[14] * cm,
top=posicao_top[7] * cm,
),
@@ -399,7 +398,7 @@ class InfoCasaLegislativa(ReportDefault):
top=posicao_top[7] * cm,
),
Label(
- text=u"Telefone: ",
+ text=_(u"Telefone: "),
left=posicao_left[16] * cm,
top=posicao_top[8] * cm,
),
@@ -409,7 +408,7 @@ class InfoCasaLegislativa(ReportDefault):
top=posicao_top[8] * cm,
),
Label(
- text=u"Presidente: ",
+ text=_(u"Presidente: "),
left=posicao_left[18] * cm,
top=posicao_top[9] * cm,
),
@@ -438,14 +437,14 @@ class InfoCasaLegislativa(ReportDefault):
height=2.5 * cm,
elements=[
Label(
- text=u"Telefone(s)",
+ text=_(u"Telefone(s)"),
style={'fontSize': 14, 'alignment': TA_CENTER},
width=BAND_WIDTH,
top=1 * cm,
),
- Label(text=u"Número", left=tel_left[0] * cm, top=tel_top),
- Label(text=u"Tipo", left=tel_left[1] * cm, top=tel_top),
- Label(text=u"Nota", left=tel_left[2] * cm, top=tel_top),
+ Label(text=_(u"Número"), left=tel_left[0] * cm, top=tel_top),
+ Label(text=_(u"Tipo"), left=tel_left[1] * cm, top=tel_top),
+ Label(text=_(u"Nota"), left=tel_left[2] * cm, top=tel_top),
],
borders={'bottom': True},
),
@@ -456,7 +455,7 @@ class InfoCasaLegislativa(ReportDefault):
ObjectValue(attribute_name='__unicode__', left=tel_left[0] * cm),
ObjectValue(attribute_name='tipo', left=tel_left[1] * cm,
get_value=lambda instance:
- {'F': 'Fixo', 'M': u'Móvel', 'X': 'Fax', 'I': 'Indefinido'}[instance.tipo],
+ {'F': _('Fixo'), 'M': _(u'Móvel'), 'X': _('Fax'), 'I': _('Indefinido')}[instance.tipo],
),
ObjectValue(attribute_name='nota', left=tel_left[2] * cm),
],
@@ -471,14 +470,14 @@ class InfoCasaLegislativa(ReportDefault):
height=2.5 * cm,
elements=[
Label(
- text=u"Contato(s)",
+ text=_(u"Contato(s)"),
style={'fontSize': 14, 'alignment': TA_CENTER},
width=BAND_WIDTH,
top=1 * cm,
),
- Label(text=u"Nome", left=cont_left[0] * cm, top=cont_top),
- Label(text=u"Nota", left=cont_left[1] * cm, top=cont_top),
- Label(text=u"E-mail", left=cont_left[2] * cm, top=cont_top),
+ Label(text=_(u"Nome"), left=cont_left[0] * cm, top=cont_top),
+ Label(text=_(u"Nota"), left=cont_left[1] * cm, top=cont_top),
+ Label(text=_(u"E-mail"), left=cont_left[2] * cm, top=cont_top),
],
borders={'bottom': True, 'top': True},
),
@@ -501,18 +500,18 @@ class InfoCasaLegislativa(ReportDefault):
height=2.5 * cm,
elements=[
Label(
- text=u"Convênio(s)",
+ text=_(u"Convênio(s)"),
style={'fontSize': 14, 'alignment': TA_CENTER},
width=BAND_WIDTH,
top=1 * cm,
),
- Label(text=u"Projeto", left=convenio_left[0] * cm, top=convenio_top),
- Label(text=u"Nº Convenio", left=convenio_left[1] * cm, top=convenio_top),
- Label(text=u"Nº Processo SF", left=convenio_left[2] * cm, top=convenio_top),
- Label(text=u"Adesão", left=convenio_left[3] * cm, top=convenio_top),
- Label(text=u"Convênio", left=convenio_left[4] * cm, top=convenio_top),
- Label(text=u"Equipada", left=convenio_left[5] * cm, top=convenio_top),
- Label(text=u"Data D.O.", left=convenio_left[6] * cm, top=convenio_top),
+ Label(text=_(u"Projeto"), left=convenio_left[0] * cm, top=convenio_top),
+ Label(text=_(u"Nº Convenio"), left=convenio_left[1] * cm, top=convenio_top),
+ Label(text=_(u"Nº Processo SF"), left=convenio_left[2] * cm, top=convenio_top),
+ Label(text=_(u"Adesão"), left=convenio_left[3] * cm, top=convenio_top),
+ Label(text=_(u"Convênio"), left=convenio_left[4] * cm, top=convenio_top),
+ Label(text=_(u"Equipada"), left=convenio_left[5] * cm, top=convenio_top),
+ Label(text=_(u"Data D.O."), left=convenio_left[6] * cm, top=convenio_top),
],
borders={'bottom': True}
),
diff --git a/sigi/apps/relatorios/reports.py b/sigi/apps/relatorios/reports.py
index c3c0a5c..7133641 100644
--- a/sigi/apps/relatorios/reports.py
+++ b/sigi/apps/relatorios/reports.py
@@ -1,20 +1,19 @@
#-*- coding:utf-8 -*-
import os
-from geraldo import Report, ReportBand, ObjectValue, DetailBand, Label, \
- landscape, SystemField, BAND_WIDTH, ReportGroup, \
- FIELD_ACTION_SUM, FIELD_ACTION_COUNT, Line
+from django.utils.translation import ugettext as _
+from geraldo import Report, ReportBand, ObjectValue, DetailBand, Label, SystemField, BAND_WIDTH, FIELD_ACTION_COUNT, Line
from geraldo.graphics import Image
-from reportlab.lib.units import cm
-from reportlab.lib.pagesizes import A4
+from reportlab.lib.colors import navy
from reportlab.lib.enums import TA_CENTER, TA_RIGHT
-from reportlab.lib.colors import navy, red
+from reportlab.lib.pagesizes import A4
+from reportlab.lib.units import cm
class ReportDefault(Report):
#__metaclass__ = ABCMeta
- title = u'Relatório'
- author = u'Interlegis'
+ title = _(u'Relatório')
+ author = _(u'Interlegis')
print_if_empty = True
page_size = A4
@@ -35,10 +34,10 @@ class ReportDefault(Report):
left=1 * cm, right=1 * cm, top=0.1 * cm, bottom=1 * cm,
width=3 * cm, height=3 * cm,
),
- Label(text="SENADO FEDERAL", top=1 * cm, left=0, width=BAND_WIDTH,
+ Label(text=_("SENADO FEDERAL"), top=1 * cm, left=0, width=BAND_WIDTH,
style={'fontName': 'Helvetica-Bold', 'fontSize': 14, 'alignment': TA_CENTER}
),
- Label(text="SINTER - Secretaria Especial do Interlegis", top=1.5 * cm, left=0, width=BAND_WIDTH,
+ Label(text=_("SINTER - Secretaria Especial do Interlegis"), top=1.5 * cm, left=0, width=BAND_WIDTH,
style={'fontName': 'Helvetica-Bold', 'fontSize': 13, 'alignment': TA_CENTER}
),
SystemField(
@@ -52,8 +51,8 @@ class ReportDefault(Report):
height = 1 * cm
elements = [
- SystemField(expression=u'%(now:%d/%m/%Y)s às %(now:%H:%M)s', top=0.3 * cm),
- SystemField(expression=u'Página %(page_number)d de %(page_count)d', top=0.3 * cm,
+ SystemField(expression=_(u'%(now:%d/%m/%Y)s às %(now:%H:%M)s'), top=0.3 * cm),
+ SystemField(expression=_(u'Página %(page_number)d de %(page_count)d'), top=0.3 * cm,
width=BAND_WIDTH, style={'alignment': TA_RIGHT}
),
]
@@ -67,7 +66,7 @@ class ReportDefault(Report):
class band_summary(ReportBand):
height = 0.8 * cm
elements = [
- Label(text="Total:", top=0.1 * cm, left=0),
+ Label(text=_("Total:"), top=0.1 * cm, left=0),
ObjectValue(attribute_name='id', top=0.1 * cm, left=1 * cm,
action=FIELD_ACTION_COUNT, display_format='%s'),
]
diff --git a/sigi/apps/servicos/admin.py b/sigi/apps/servicos/admin.py
index b7a43da..009ad72 100644
--- a/sigi/apps/servicos/admin.py
+++ b/sigi/apps/servicos/admin.py
@@ -58,13 +58,13 @@ class ServicoAdmin(BaseModelAdmin):
fieldsets = ((None, {
'fields': ('casa_legislativa', 'data_ativacao',)
}),
- ('Serviço', {
+ (_('Serviço'), {
'fields': ('tipo_servico', ('url', 'hospedagem_interlegis'), ('nome_servidor', 'porta_servico', 'senha_inicial'),)
}),
- ('Contatos', {
+ (_('Contatos'), {
'fields': ('contato_tecnico', 'contato_administrativo',)
}),
- ('Alterações', {
+ (_('Alterações'), {
'fields': ('data_alteracao', 'data_desativacao', 'motivo_desativacao',)
}))
readonly_fields = ('casa_legislativa', 'data_ativacao', 'data_alteracao')
@@ -76,17 +76,17 @@ class ServicoAdmin(BaseModelAdmin):
def get_codigo_interlegis(self, obj):
return obj.casa_legislativa.codigo_interlegis
- get_codigo_interlegis.short_description = u'Código Interlegis'
+ get_codigo_interlegis.short_description = _(u'Código Interlegis')
get_codigo_interlegis.admin_order_field = 'casa_legislativa__codigo_interlegis'
def get_uf(self, obj):
return u'%s' % (obj.casa_legislativa.municipio.uf)
- get_uf.short_description = 'UF'
+ get_uf.short_description = _('UF')
get_uf.admin_order_field = 'casa_legislativa__municipio__uf'
def getUrl(self, obj):
return u'%s' % (obj.url, obj.url)
- getUrl.short_description = 'Url'
+ getUrl.short_description = _('Url')
getUrl.allow_tags = True
def get_link_erro(self, obj):
@@ -98,15 +98,15 @@ class ServicoAdmin(BaseModelAdmin):
url += obj.tipo_servico.string_pesquisa
return u'%s' % (url, obj.erro_atualizacao)
get_link_erro.allow_tags = True
- get_link_erro.short_description = u"Erro na atualização"
+ get_link_erro.short_description = _(u"Erro na atualização")
get_link_erro.admin_order_field = 'erro_atualizacao'
def calcular_data_uso(self, request, queryset):
for servico in queryset:
servico.atualiza_data_uso()
- self.message_user(request, "Atualização concluída. Os sites que não responderam foram deixados com a data em branco")
+ self.message_user(request, _("Atualização concluída. Os sites que não responderam foram deixados com a data em branco"))
return HttpResponseRedirect('.')
- calcular_data_uso.short_description = u"Atualizar a data do último uso do(s) serviço(s)"
+ calcular_data_uso.short_description = _(u"Atualizar a data do último uso do(s) serviço(s)")
def get_actions(self, request):
from django.utils.datastructures import SortedDict
@@ -191,12 +191,12 @@ class CasaAtendidaAdmin(BaseModelAdmin):
def get_servicos(self, obj):
result = []
for servico in obj.servico_set.all():
- result.append(u"%s (%s). Contato: %s" % (servico.tipo_servico.nome, 'ativo' if servico.data_desativacao is None
- else 'Desativado', servico.contato_administrativo.nome))
+ result.append(_(u"%s (%s). Contato: %s") % (servico.tipo_servico.nome, _('ativo') if servico.data_desativacao is None
+ else _('Desativado'), servico.contato_administrativo.nome))
return ""
get_servicos.allow_tags = True
- get_servicos.short_description = u"Serviços"
+ get_servicos.short_description = _(u"Serviços")
def lookup_allowed(self, lookup, value):
return super(CasaAtendidaAdmin, self).lookup_allowed(lookup, value) or \
diff --git a/sigi/apps/servicos/management/commands/atualiza_uso_servico.py b/sigi/apps/servicos/management/commands/atualiza_uso_servico.py
index 5c3b9be..edc3404 100644
--- a/sigi/apps/servicos/management/commands/atualiza_uso_servico.py
+++ b/sigi/apps/servicos/management/commands/atualiza_uso_servico.py
@@ -22,11 +22,13 @@
# 02110-1301, USA.
#
from django.core.management.base import BaseCommand
+from django.utils.translation import ugettext as _
+
from sigi.apps.servicos.models import Servico
class Command(BaseCommand):
- help = u'Atualiza a informação de data de último serviço dos serviços SEIT hospedados no Interlegis.'
+ help = _(u'Atualiza a informação de data de último serviço dos serviços SEIT hospedados no Interlegis.')
def handle(self, *args, **options):
verbosity = int(options['verbosity'])
diff --git a/sigi/apps/servicos/models.py b/sigi/apps/servicos/models.py
index bce63b2..bd6a7a4 100644
--- a/sigi/apps/servicos/models.py
+++ b/sigi/apps/servicos/models.py
@@ -1,22 +1,22 @@
# -*- coding: utf-8 -*-
+from datetime import date
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
+from django.utils.translation import ugettext as _
class TipoServico(models.Model):
email_help = u'''Use:
{url} para incluir a URL do serviço,
{senha} para incluir a senha inicial do serviço'''
- nome = models.CharField(u'Nome', max_length=60)
- sigla = models.CharField(u'Sigla', max_length='12')
- string_pesquisa = models.CharField(u'String de pesquisa', blank=True, max_length=200,
- help_text=u'Sufixo para pesquisa RSS para averiguar a data da última atualização do serviço')
- template_email_ativa = models.TextField(u'Template de email de ativação', help_text=email_help, blank=True)
- template_email_altera = models.TextField(u'Template de email de alteração', help_text=email_help, blank=True)
- template_email_desativa = models.TextField(u'Template de email de desativação', help_text=email_help + u'
{motivo} para incluir o motivo da desativação do serviço', blank=True)
+ nome = models.CharField(_(u'Nome'), max_length=60)
+ sigla = models.CharField(_(u'Sigla'), max_length='12')
+ string_pesquisa = models.CharField(_(u'String de pesquisa'), blank=True, max_length=200,
+ help_text=_(u'Sufixo para pesquisa RSS para averiguar a data da última atualização do serviço'))
+ template_email_ativa = models.TextField(_(u'Template de email de ativação'), help_text=email_help, blank=True)
+ template_email_altera = models.TextField(_(u'Template de email de alteração'), help_text=email_help, blank=True)
+ template_email_desativa = models.TextField(_(u'Template de email de desativação'), help_text=email_help + _(u'
{motivo} para incluir o motivo da desativação do serviço'), blank=True)
@property
def qtde_casas_atendidas(self):
@@ -24,32 +24,32 @@ class TipoServico(models.Model):
return self.servico_set.filter(data_desativacao=None).count()
class Meta:
- verbose_name = u'Tipo de serviço'
- verbose_name_plural = u'Tipos de serviço'
+ verbose_name = _(u'Tipo de serviço')
+ verbose_name_plural = _(u'Tipos de serviço')
def __unicode__(self):
return self.nome
class Servico(models.Model):
- casa_legislativa = models.ForeignKey(CasaLegislativa, verbose_name=u'Casa Legislativa')
- tipo_servico = models.ForeignKey(TipoServico, verbose_name=u'Tipo de serviço')
- contato_tecnico = models.ForeignKey(Funcionario, verbose_name=u'Contato técnico', related_name='contato_tecnico')
- contato_administrativo = models.ForeignKey(Funcionario, verbose_name=u'Contato administrativo', related_name='contato_administrativo')
- url = models.URLField(u'URL do serviço', blank=True)
- hospedagem_interlegis = models.BooleanField(u'Hospedagem no Interlegis?', default=False)
- nome_servidor = models.CharField(u'Hospedado em', max_length=60, blank=True,
- help_text=u'Se hospedado no Interlegis, informe o nome do servidor.
Senão, informe o nome do provedor de serviços.')
- porta_servico = models.PositiveSmallIntegerField(u'Porta de serviço (instância)', blank=True, null=True)
- senha_inicial = models.CharField(u'Senha inicial', max_length=33, blank=True)
- data_ativacao = models.DateField(u'Data de ativação', default=date.today)
- data_alteracao = models.DateField(u'Data da última alteração', blank=True, null=True, auto_now=True)
- data_desativacao = models.DateField(u'Data de desativação', blank=True, null=True)
- motivo_desativacao = models.TextField(u'Motivo da desativação', blank=True)
- data_ultimo_uso = models.DateField(u'Data da última utilização', blank=True, null=True,
- help_text=u'Data em que o serviço foi utilizado pela Casa Legislativa pela última vez
NÃO É ATUALIZADO AUTOMATICAMENTE!')
- erro_atualizacao = models.CharField(u"Erro na atualização", blank=True, max_length=200,
- help_text=u"Erro ocorrido na última tentativa de atualizar a data de último acesso")
+ casa_legislativa = models.ForeignKey(CasaLegislativa, verbose_name=_(u'Casa Legislativa'))
+ tipo_servico = models.ForeignKey(TipoServico, verbose_name=_(u'Tipo de serviço'))
+ contato_tecnico = models.ForeignKey(Funcionario, verbose_name=_(u'Contato técnico'), related_name='contato_tecnico')
+ contato_administrativo = models.ForeignKey(Funcionario, verbose_name=_(u'Contato administrativo'), related_name='contato_administrativo')
+ url = models.URLField(_(u'URL do serviço'), blank=True)
+ hospedagem_interlegis = models.BooleanField(_(u'Hospedagem no Interlegis?'), default=False)
+ nome_servidor = models.CharField(_(u'Hospedado em'), max_length=60, blank=True,
+ help_text=_(u'Se hospedado no Interlegis, informe o nome do servidor.
Senão, informe o nome do provedor de serviços.'))
+ porta_servico = models.PositiveSmallIntegerField(_(u'Porta de serviço (instância)'), blank=True, null=True)
+ senha_inicial = models.CharField(_(u'Senha inicial'), max_length=33, blank=True)
+ data_ativacao = models.DateField(_(u'Data de ativação'), default=date.today)
+ data_alteracao = models.DateField(_(u'Data da última alteração'), blank=True, null=True, auto_now=True)
+ data_desativacao = models.DateField(_(u'Data de desativação'), blank=True, null=True)
+ motivo_desativacao = models.TextField(_(u'Motivo da desativação'), blank=True)
+ data_ultimo_uso = models.DateField(_(u'Data da última utilização'), blank=True, null=True,
+ help_text=_(u'Data em que o serviço foi utilizado pela Casa Legislativa pela última vez
NÃO É ATUALIZADO AUTOMATICAMENTE!'))
+ erro_atualizacao = models.CharField(_(u"Erro na atualização"), blank=True, max_length=200,
+ help_text=_(u"Erro ocorrido na última tentativa de atualizar a data de último acesso"))
# casa_legislativa.casa_uf_filter = True
@@ -87,14 +87,14 @@ class Servico(models.Model):
opener = urllib2.build_opener(proxy)
req = opener.open(fullurl=url, timeout=5)
except Exception as e:
- reset(erro=str(e), comment=u'Não foi possível conectar com o servidor. Pode estar fora do ar ou não ser um ' +
+ reset(erro=str(e), comment=_(u'Não foi possível conectar com o servidor. Pode estar fora do ar ou não ser um ') +
self.tipo_servico.nome)
return
try:
rss = req.read()
except Exception as e:
- reset(erro=str(e), comment=u'Não foi possível receber os dados do servidor. O acesso pode ter sido negado.')
+ reset(erro=str(e), comment=_(u'Não foi possível receber os dados do servidor. O acesso pode ter sido negado.'))
return
try:
@@ -108,12 +108,12 @@ class Servico(models.Model):
self.erro_atualizacao = ""
self.save()
except Exception as e:
- reset(erro=str(e), comment=u'A resposta do servidor não é compatível com %s. Pode ser outro software que está sendo usado' %
+ reset(erro=str(e), comment=_(u'A resposta do servidor não é compatível com %s. Pode ser outro software que está sendo usado') %
self.tipo_servico.nome)
return
def __unicode__(self):
- return "%s (%s)" % (self.tipo_servico.nome, 'ativo' if self.data_desativacao is None else 'Desativado')
+ 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
@@ -123,11 +123,11 @@ class Servico(models.Model):
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,)
+ 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,)
+ 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
@@ -135,7 +135,7 @@ class Servico(models.Model):
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,)
+ subject = _(u'INTERLEGIS - Alteração de serviço %s') % (self.tipo_servico.nome,)
body = self.tipo_servico.template_email_altera
else:
# Salvar o Servico
@@ -157,17 +157,17 @@ class Servico(models.Model):
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')
+ 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'
+ verbose_name = _('Log do serviço')
+ verbose_name_plural = _('Logs do serviço')
class CasaAtendidaManager(models.Manager):
@@ -182,7 +182,7 @@ class CasaAtendida(CasaLegislativa):
class Meta:
proxy = True
- verbose_name_plural = 'Casas atendidas'
+ verbose_name_plural = _('Casas atendidas')
objects = CasaAtendidaManager()
@@ -191,16 +191,16 @@ class CasaManifesta(models.Model):
casa_legislativa = models.OneToOneField(CasaLegislativa)
data_manifestacao = models.DateTimeField(auto_now_add=True)
data_atualizacao = models.DateTimeField(auto_now=True)
- informante = models.CharField(u'Nome do informante', max_length=100, blank=True)
- cargo = models.CharField(u'Cargo do informante', max_length=100, blank=True)
- email = models.EmailField(u'E-mail de contato', blank=True)
+ informante = models.CharField(_(u'Nome do informante'), max_length=100, blank=True)
+ cargo = models.CharField(_(u'Cargo do informante'), max_length=100, blank=True)
+ email = models.EmailField(_(u'E-mail de contato'), blank=True)
class ServicoManifesto(models.Model):
casa_manifesta = models.ForeignKey(CasaManifesta)
servico = models.ForeignKey(TipoServico)
url = models.URLField(blank=True)
- hospedagem_interlegis = models.BooleanField(u'Hospedagem no Interlegis?', default=False)
+ hospedagem_interlegis = models.BooleanField(_(u'Hospedagem no Interlegis?'), default=False)
class Meta:
unique_together = ('casa_manifesta', 'servico')
@@ -213,4 +213,4 @@ class RegistroServico(models.Model):
data_registro = models.DateTimeField(auto_now=True)
class Meta:
- verbose_name_plural = u'Registro de serviços'
+ verbose_name_plural = _(u'Registro de serviços')
diff --git a/sigi/apps/servicos/views.py b/sigi/apps/servicos/views.py
index 3885502..748779f 100644
--- a/sigi/apps/servicos/views.py
+++ b/sigi/apps/servicos/views.py
@@ -1,20 +1,19 @@
# -*- coding: utf-8 -*-
+import json as simplejson # XXX trocar isso por simplesmente import json e refatorar o codigo
+
from django import forms
+from django.db.models import Q
+from django.forms.forms import BoundField
from django.http import HttpResponse
-import json as simplejson # XXX trocar isso por simplesmente import json e refatorar o codigo
from django.shortcuts import render_to_response, get_object_or_404
-from django.db.models import Q
-from sigi.apps.servicos.models import TipoServico, CasaAtendida, CasaManifesta, ServicoManifesto
-from sigi.apps.contatos.models import UnidadeFederativa
-from sigi.apps.casas.models import CasaLegislativa
from django.template.context import RequestContext
-from django.utils.encoding import force_unicode
-from django.forms.forms import BoundField
-from django.utils.html import conditional_escape
-from django.utils.safestring import mark_safe
-from django.contrib.admin.helpers import AdminForm
+from django.utils.translation import ugettext as _
from django.views.generic.base import TemplateView
+from sigi.apps.casas.models import CasaLegislativa
+from sigi.apps.contatos.models import UnidadeFederativa
+from sigi.apps.servicos.models import TipoServico, CasaAtendida, CasaManifesta, ServicoManifesto
+
class MapaView(TemplateView):
@@ -84,9 +83,9 @@ def casa_manifesta_view(request):
fieldsets = ((None, ('informante', 'cargo', 'email'),),)
for ts in TipoServico.objects.all():
- campos['possui_%s' % ts.pk] = forms.BooleanField(label=u'Possui o serviço de %s' % ts.nome, required=False)
- campos['url_%s' % ts.pk] = forms.URLField(label=u'Informe a URL', required=False)
- campos['hospedagem_interlegis_%s' % ts.pk] = forms.BooleanField(label=u'Serviço está hospedado no Interlegis', required=False)
+ campos['possui_%s' % ts.pk] = forms.BooleanField(label=_(u'Possui o serviço de %s') % ts.nome, required=False)
+ campos['url_%s' % ts.pk] = forms.URLField(label=_(u'Informe a URL'), required=False)
+ campos['hospedagem_interlegis_%s' % ts.pk] = forms.BooleanField(label=_(u'Serviço está hospedado no Interlegis'), required=False)
fieldsets += ((ts.nome, ('possui_%s' % ts.pk, 'url_%s' % ts.pk, 'hospedagem_interlegis_%s' % ts.pk)),)
CasaManifestaForm = type('', (CasaManifestaProtoForm,), campos)
@@ -100,20 +99,20 @@ def casa_manifesta_view(request):
cm.cargo = cmf.cleaned_data['cargo']
cm.email = cmf.cleaned_data['email']
cm.save()
- thanks.append((u'Informante', cmf.cleaned_data['informante']))
- thanks.append((u'Cargo', cmf.cleaned_data['cargo']))
- thanks.append((u'E-mail', cmf.cleaned_data['email']))
+ thanks.append((_(u'Informante'), cmf.cleaned_data['informante']))
+ thanks.append((_(u'Cargo'), cmf.cleaned_data['cargo']))
+ thanks.append((_(u'E-mail'), cmf.cleaned_data['email']))
for ts in TipoServico.objects.all():
if cmf.cleaned_data['possui_%s' % ts.pk]:
sm, created = ServicoManifesto.objects.get_or_create(casa_manifesta=cm, servico=ts)
sm.url = cmf.cleaned_data['url_%s' % ts.pk]
sm.hospedagem_interlegis = cmf.cleaned_data['hospedagem_interlegis_%s' % ts.pk]
sm.save()
- thanks.append((ts.nome, u'Possui o serviço acessível em %s %s' % (sm.url, u'hospedado no Interlegis' if
- sm.hospedagem_interlegis else '')))
+ thanks.append((ts.nome, _(u'Possui o serviço acessível em %s %s') % (sm.url, u'hospedado no Interlegis' if
+ sm.hospedagem_interlegis else '')))
else:
ServicoManifesto.objects.filter(casa_manifesta=cm, servico=ts).delete()
- thanks.append((ts.nome, u'Não possui'))
+ thanks.append((ts.nome, _(u'Não possui')))
extra_context = {'casa': casa, 'thanks': thanks}
else:
extra_context = {'casa': casa, 'cmf': cmf}
diff --git a/sigi/apps/servidores/admin.py b/sigi/apps/servidores/admin.py
index 409c3af..20e6385 100644
--- a/sigi/apps/servidores/admin.py
+++ b/sigi/apps/servidores/admin.py
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
from django.contrib import admin
from django.contrib.contenttypes import generic
+from django.utils.translation import ugettext as _
from sigi.apps.contatos.models import Endereco, Telefone
from sigi.apps.servidores.forms import FeriasForm, LicencaForm, FuncaoForm
@@ -30,7 +31,7 @@ class FeriasAdmin(BaseModelAdmin):
class ServidorFilter(AlphabeticFilter):
- title = 'Nome do Servidor'
+ title = _('Nome do Servidor')
parameter_name = 'servidor__nome_completo'
@@ -64,7 +65,7 @@ class ServidorAdmin(BaseModelAdmin):
return servidor.user.is_active
is_active.admin_order_field = 'user__is_active'
is_active.boolean = True
- is_active.short_description = 'ativo'
+ is_active.short_description = _('ativo')
list_display = ('nome_completo', 'is_active', 'foto', 'servico', )
list_filter = ('user__is_active', 'sexo', 'servico',)
@@ -74,16 +75,16 @@ class ServidorAdmin(BaseModelAdmin):
raw_id_fields = ('user',)
inlines = (TelefonesInline, EnderecoInline)
fieldsets = (
- (u'Autenticação', {
+ (_(u'Autenticação'), {
'fields': ('user',),
}),
- ('Cadastro', {
+ (_('Cadastro'), {
'fields': ('nome_completo', 'foto', 'email_pessoal', 'rg', 'cpf', 'sexo', 'data_nascimento', 'matricula', 'ramal', 'data_nomeacao', 'ato_numero', 'ato_exoneracao')
}),
- ('Lotação', {
+ (_('Lotação'), {
'fields': ('servico', 'turno', 'de_fora'),
}),
- (u'Observações', {
+ (_(u'Observações'), {
'fields': ('apontamentos', 'obs'),
}),
)
diff --git a/sigi/apps/servidores/forms.py b/sigi/apps/servidores/forms.py
index 2a9522b..a497286 100644
--- a/sigi/apps/servidores/forms.py
+++ b/sigi/apps/servidores/forms.py
@@ -1,10 +1,9 @@
# -*- coding: utf-8 -*-
-
from django import forms
-
-from sigi.apps.utils.validators import valida_data, valida_periodo_data
+from django.utils.translation import ugettext as _
from sigi.apps.servidores.models import Ferias, Licenca, Funcao, Servidor
+from sigi.apps.utils.validators import valida_data, valida_periodo_data
class FeriasForm(forms.ModelForm):
@@ -16,8 +15,8 @@ class FeriasForm(forms.ModelForm):
def clean(self):
data = self.cleaned_data
if valida_data(data.get('inicio_ferias'), data.get('fim_ferias')):
- raise forms.ValidationError(u"""A data de início deve ser menor
- que a data final. Verifique novamente""")
+ raise forms.ValidationError(_(u"""A data de início deve ser menor
+ que a data final. Verifique novamente"""))
return data
@@ -30,8 +29,8 @@ class LicencaForm(forms.ModelForm):
def clean(self):
data = self.cleaned_data
if valida_data(data.get('inicio_licenca'), data.get('fim_licenca')):
- raise forms.ValidationError(u"""A data de início deve ser menor
- que a data final. Verifique novamente""")
+ raise forms.ValidationError(_(u"""A data de início deve ser menor
+ que a data final. Verifique novamente"""))
return data
@@ -44,9 +43,9 @@ class FuncaoForm(forms.ModelForm):
def clean(self):
data = self.cleaned_data
if valida_data(data.get('inicio_funcao'), data.get('fim_funcao')):
- raise forms.ValidationError(u"""A data de início deve ser menor
+ raise forms.ValidationError(_(u"""A data de início deve ser menor
que a data final. Verifique
- novamente""")
+ novamente"""))
# Verifica na função anterior, se o seu período é igual
# ou está entre o período da função atual.
@@ -60,7 +59,7 @@ class FuncaoForm(forms.ModelForm):
if valida_periodo_data(funcao_anterior.inicio_funcao,
funcao_anterior.fim_funcao, data.get('inicio_funcao'),
data.get('fim_funcao')):
- raise forms.ValidationError(u"""Você não pode exercer
+ raise forms.ValidationError(_(u"""Você não pode exercer
uma função no mesmo período que a anterior, como também,
- não pode ser entre o período da mesma.""")
+ não pode ser entre o período da mesma."""))
return data
diff --git a/sigi/apps/servidores/management/commands/migra.py b/sigi/apps/servidores/management/commands/migra.py
index 9802456..c797bc3 100644
--- a/sigi/apps/servidores/management/commands/migra.py
+++ b/sigi/apps/servidores/management/commands/migra.py
@@ -1,12 +1,15 @@
# coding= utf-8
-import sys
import csv
import re
+
from datetime import datetime
-from django.core.management.base import BaseCommand, CommandError
from django.contrib.auth.models import User
-from sigi.apps.servidores.models import Servidor, Servico, Subsecretaria, Funcao, Ferias, Licenca
+from django.core.management.base import BaseCommand
+from django.utils.translation import ugettext as _
+
from sigi.apps.contatos.models import Municipio
+from sigi.apps.servidores.models import Servidor, Servico, Subsecretaria
+
# Funcao.objects.all().delete()
# Ferias.objects.all().delete()
@@ -21,7 +24,7 @@ class MigrationError(Exception):
class Command(BaseCommand):
- help = 'Migra usuários do antigo Sistema de RH'
+ help = _('Migra usuários do antigo Sistema de RH')
def to_date(self, data):
return datetime.strptime(data, "%Y-%m-%d 00:00:00")
@@ -222,7 +225,7 @@ class Command(BaseCommand):
funcao.bap_saida = p['bap_saida']
funcao.save()
- if re.search(r'estagi.ri[o|a]', p['cargo'], re.I):
+ if re.search(r'estagi.ri[o|a]', p['cargo'], re.I): # XXX i18n
# TODO inserir dados de estagio
pass
diff --git a/sigi/apps/servidores/models.py b/sigi/apps/servidores/models.py
index 794634c..fa8e1a0 100644
--- a/sigi/apps/servidores/models.py
+++ b/sigi/apps/servidores/models.py
@@ -1,8 +1,9 @@
# -*- coding: utf-8 -*-
+from django.contrib.auth.models import User
+from django.contrib.contenttypes import generic
from django.db import models
from django.db.models.signals import post_save
-from django.contrib.contenttypes import generic
-from django.contrib.auth.models import User
+from django.utils.translation import ugettext as _
class Subsecretaria(models.Model):
@@ -27,7 +28,7 @@ class Servico(models.Model):
""" Modelo para representação dos Serviços de uma Subsecretaria
"""
- nome = models.CharField(u'Setor', max_length=250, null=True)
+ nome = models.CharField(_(u'Setor'), max_length=250, null=True)
sigla = models.CharField(max_length=10, null=True)
subsecretaria = models.ForeignKey(Subsecretaria, null=True)
# servidor responsavel por chefiar o serviço
@@ -35,8 +36,8 @@ class Servico(models.Model):
class Meta:
ordering = ('nome',)
- verbose_name = 'serviço'
- verbose_name_plural = 'serviços'
+ verbose_name = _('serviço')
+ verbose_name_plural = _('serviços')
def __unicode__(self):
return '%s (%s)' % (unicode(self.nome), unicode(self.sigla))
diff --git a/sigi/apps/utils/admin_widgets.py b/sigi/apps/utils/admin_widgets.py
index db49889..90b2f96 100644
--- a/sigi/apps/utils/admin_widgets.py
+++ b/sigi/apps/utils/admin_widgets.py
@@ -1,6 +1,6 @@
from django.contrib.admin.widgets import AdminFileWidget
-from django.utils.translation import ugettext as _
from django.utils.safestring import mark_safe
+from django.utils.translation import ugettext as _
class AdminImageWidget(AdminFileWidget):
diff --git a/sigi/apps/utils/email.py b/sigi/apps/utils/email.py
index 4c4b1b8..9c38789 100644
--- a/sigi/apps/utils/email.py
+++ b/sigi/apps/utils/email.py
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
-
-from django.template.loader import render_to_string
-from django.core.mail import EmailMessage
from django.conf import settings
+from django.core.mail import EmailMessage
+from django.template.loader import render_to_string
+from django.utils.translation import ugettext as _
def enviar_email(from_email, subject, template, tags):
@@ -16,13 +16,13 @@ def enviar_email(from_email, subject, template, tags):
template.
"""
if from_email is None:
- raise ValueError("Insira o email do remetente.")
+ raise ValueError(_("Insira o email do remetente."))
elif subject is None:
- raise ValueError("Insira o assunto da mensagem.")
+ raise ValueError(_("Insira o assunto da mensagem."))
elif template is None:
- raise ValueError(u"Template da mensagem não encontrado")
+ raise ValueError(_(u"Template da mensagem não encontrado"))
elif tags is None:
- raise ValueError("Insira o conteúdo da mensagem.")
+ raise ValueError(_("Insira o conteúdo da mensagem."))
# Gerando a mensagem
mensagem = render_to_string(template, tags)
diff --git a/sigi/context_processors.py b/sigi/context_processors.py
index bcd0936..79a0f25 100644
--- a/sigi/context_processors.py
+++ b/sigi/context_processors.py
@@ -1,12 +1,14 @@
#-*- coding:utf-8 -*-
from itertools import cycle
+
import datetime
+from django.utils.translation import ugettext as _
from sigi.apps.casas.models import CasaLegislativa
from sigi.apps.convenios.models import Convenio, Projeto
-from sigi.apps.servicos.models import TipoServico
from sigi.apps.diagnosticos.models import Diagnostico
from sigi.apps.metas.models import Meta
+from sigi.apps.servicos.models import TipoServico
def charts_data(request):
@@ -81,14 +83,14 @@ def busca_informacoes_camara():
# Cabecalho da esquerda na tabela
cabecalho_esquerda = (
- u'Câmaras municipais',
- u'Câmaras municipais não aderidas',
- u'Câmaras municipais aderidas',
- u'Câmaras municipais com convênios assinados',
- u'Câmaras municipais convênios em andamento',
- u'Câmaras municipais equipadas',
- u'Diagnósticos digitados',
- u'Diagnósticos publicados'
+ _(u'Câmaras municipais'),
+ _(u'Câmaras municipais não aderidas'),
+ _(u'Câmaras municipais aderidas'),
+ _(u'Câmaras municipais com convênios assinados'),
+ _(u'Câmaras municipais convênios em andamento'),
+ _(u'Câmaras municipais equipadas'),
+ _(u'Diagnósticos digitados'),
+ _(u'Diagnósticos publicados')
)
linhas = (
@@ -178,6 +180,6 @@ def busca_informacoes_seit():
def busca_informacoes_diagnostico():
return [
- {'title': 'Diagnósticos digitados', 'count': Diagnostico.objects.count()},
- {'title': 'Diagnósticos publicados', 'count': Diagnostico.objects.filter(publicado=True).count()},
+ {'title': _('Diagnósticos digitados'), 'count': Diagnostico.objects.count()},
+ {'title': _('Diagnósticos publicados'), 'count': Diagnostico.objects.filter(publicado=True).count()},
]
diff --git a/sigi/shortcuts.py b/sigi/shortcuts.py
index 6750649..be6a43c 100644
--- a/sigi/shortcuts.py
+++ b/sigi/shortcuts.py
@@ -1,11 +1,13 @@
import cStringIO as StringIO
+import os
+from cgi import escape
+
import ho.pisa as pisa
-from django.template.loader import get_template
-from django.template import Context
-from django.http import HttpResponse
from django.conf import settings
-from cgi import escape
-import os
+from django.http import HttpResponse
+from django.template import Context
+from django.template.loader import get_template
+from django.utils.translation import ugettext as _
def fetch_resources(uri, rel):
@@ -22,4 +24,4 @@ def render_to_pdf(template_src, context_dict):
pdf = pisa.pisaDocument(StringIO.StringIO(html.encode('utf-8')), result, link_callback=fetch_resources)
if not pdf.err:
return HttpResponse(result.getvalue(), content_type='application/pdf')
- return HttpResponse('We had some errors%s
' % escape(html))
+ return HttpResponse(_('We had some errors%s
') % escape(html))