diff --git a/sigi/apps/casas/admin.py b/sigi/apps/casas/admin.py index 0532d52..72796f7 100644 --- a/sigi/apps/casas/admin.py +++ b/sigi/apps/casas/admin.py @@ -51,7 +51,7 @@ class PresidenteInline(admin.StackedInline): readonly_fields = ('ult_alteracao',) extra = 1 max_num = 1 - verbose_name_plural = _(u'Presidente') + verbose_name_plural = _('Presidente') def get_queryset(self, request): return (self.model.objects.exclude(desativado=True) .extra(select={'ult_null': 'ult_alteracao is null'}) @@ -69,7 +69,7 @@ class ContatoInterlegisInline(admin.StackedInline): readonly_fields = ('ult_alteracao',) extra = 1 inlines = (TelefonesInline,) - verbose_name_plural = _(u'Contato(s) Interlegis Vigente(s)') + verbose_name_plural = _('Contato(s) Interlegis Vigente(s)') def get_queryset(self, request): return (self.model.objects.filter(setor='contato_interlegis') .extra(select={'ult_null': 'ult_alteracao is null'}).order_by('-ult_alteracao') @@ -101,7 +101,7 @@ class FuncionariosInline(admin.StackedInline): readonly_fields = ('ult_alteracao',) extra = 1 inlines = (TelefonesInline,) - verbose_name_plural = _(u'Outros Contatos da Casa') + verbose_name_plural = _('Outros Contatos da Casa') def get_queryset(self, request): return (self.model.objects.exclude(cargo='Presidente',) @@ -138,18 +138,18 @@ class ConveniosInline(admin.TabularInline): # def get_tramitacoes(self, obj): # return '
'.join([t.__unicode__() for t in obj.tramitacao_set.all()]) # -# get_tramitacoes.short_description = _(u'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 = _(u'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 = _(u'Equipamentos previstos') +# get_equipamentos.short_description = _('Equipamentos previstos') # get_equipamentos.allow_tags = True def status_convenio(self, obj): @@ -157,17 +157,17 @@ class ConveniosInline(admin.TabularInline): return "" status = obj.get_status() - if status in [u"Vencido", u"Desistência", u"Cancelado"]: + if status in ["Vencido", "Desistência", "Cancelado"]: label = r"danger" - elif status == u"Vigente": + elif status == "Vigente": label = r"success" - elif status == u"Pendente": + elif status == "Pendente": label = r"warning" else: label = r"info" - return u'

{status}

'.format(label=label, status=status) - status_convenio.short_description = _(u"Status do convênio") + return '

{status}

'.format(label=label, status=status) + status_convenio.short_description = _("Status do convênio") status_convenio.allow_tags = True @@ -181,7 +181,7 @@ class ConveniosInline(admin.TabularInline): Editar """ % (obj.pk, obj.pk, url) - link_convenio.short_description = _(u'Editar convenio') + link_convenio.short_description = _('Editar convenio') link_convenio.allow_tags = True def link_sigad(self, obj): @@ -208,7 +208,7 @@ class ConveniosInline(admin.TabularInline): # Editar # """ % (obj.pk, obj.pk, url) -# link_parlamentares.short_description = _(u'Parlamentares') +# link_parlamentares.short_description = _('Parlamentares') # link_parlamentares.allow_tags = True # class DiagnosticoInline(admin.TabularInline): @@ -228,7 +228,7 @@ class ConveniosInline(admin.TabularInline): # Abrir PDF # """ % (obj.pk, obj.pk, url) -# link_diagnostico.short_description = _(u'Ver PDF') +# link_diagnostico.short_description = _('Ver PDF') # link_diagnostico.allow_tags = True # class BemInline(admin.TabularInline): @@ -249,8 +249,8 @@ class ServicoInline(admin.TabularInline): def link_url(self, servico): if servico.data_desativacao is not None: return servico.url - return u'{url}'.format(url=servico.url) - link_url.short_description = _(u'URL do serviço') + return '{url}'.format(url=servico.url) + link_url.short_description = _('URL do serviço') link_url.allow_tags = True ordering = ('-data_alteracao',) @@ -265,7 +265,7 @@ class ServicoInline(admin.TabularInline): Editar """ % (obj.pk, obj.pk, url) - link_servico.short_description = _(u'Editar Serviço') + link_servico.short_description = _('Editar Serviço') link_servico.allow_tags = True def has_add_permission(self, request): @@ -289,11 +289,11 @@ class OcorrenciaInline(admin.TabularInline): if obj.pk is None: return "" url = reverse('admin:%s_%s_change' % (obj._meta.app_label, obj._meta.module_name), args=[obj.pk]) - return u""" + return """ %s""" % (obj.pk, obj.pk, url, _(u'Editar')) + onclick="return showRelatedObjectLookupPopup(this);">%s""" % (obj.pk, obj.pk, url, _('Editar')) - link_editar.short_description = _(u'Editar') + link_editar.short_description = _('Editar') link_editar.allow_tags = True @@ -306,13 +306,13 @@ class GerentesInterlegisFilter(admin.filters.RelatedFieldListFilter): class ConvenioFilter(admin.SimpleListFilter): - title = _(u"Tipo de convênio") + title = _("Tipo de convênio") parameter_name = 'convenio' def lookups(self, request, model_admin): return ( - ('SC', _(u"Sem nenhum convênio")), - ('CC', _(u"Com algum convênio")), + ('SC', _("Sem nenhum convênio")), + ('CC', _("Com algum convênio")), ) + tuple([(p.pk, p.sigla) for p in Projeto.objects.all()]) def queryset(self, request, queryset): @@ -327,7 +327,7 @@ class ConvenioFilter(admin.SimpleListFilter): return queryset.distinct('municipio__uf__nome', 'nome') class ExcluirConvenioFilter(admin.SimpleListFilter): - title=_(u"Excluir convênio da pesquisa") + title=_("Excluir convênio da pesquisa") parameter_name = 'excluir_convenio' def lookups(self, request, model_admin): @@ -341,15 +341,15 @@ class ExcluirConvenioFilter(admin.SimpleListFilter): return queryset class ServicoFilter(admin.SimpleListFilter): - title = _(u"Serviço") + title = _("Serviço") parameter_name = 'servico' def lookups(self, request, model_admin): return ( - ('SS', _(u"Sem nenhum serviço")), - ('CS', _(u"Com algum serviço")), - ('CH', _(u"Com algum serviço de hospedagem")), - ('CR', _(u"Apenas serviço de registro")), + ('SS', _("Sem nenhum serviço")), + ('CS', _("Com algum serviço")), + ('CH', _("Com algum serviço de hospedagem")), + ('CR', _("Apenas serviço de registro")), ) + tuple([(p.pk, p.nome) for p in TipoServico.objects.all()]) def queryset(self, request, queryset): @@ -375,13 +375,13 @@ class ServicoFilter(admin.SimpleListFilter): return queryset.distinct('municipio__uf__nome', 'nome') class ServicoAtivoFilter(admin.SimpleListFilter): - title = _(u"Serviço ativo") + title = _("Serviço ativo") parameter_name = 'ativo' def lookups(self, request, model_admin): return ( - ('ativo', _(u"Ativo")), - ('desativado', _(u"Desativado")), + ('ativo', _("Ativo")), + ('desativado', _("Desativado")), ) def queryset(self, request, queryset): @@ -410,15 +410,15 @@ class OrgaoAdmin(ImageCroppingMixin, BaseModelAdmin): 'fields': ('tipo', 'nome', 'sigla', 'cnpj', 'num_parlamentares', 'gerentes_interlegis') }), - (_(u'Endereço'), { + (_('Endereço'), { 'fields': ('data_instalacao', 'logradouro', 'bairro', 'municipio', 'cep', 'ult_alt_endereco'), }), - (_(u'Presença na Internet'), { + (_('Presença na Internet'), { 'fields': ('inclusao_digital', 'data_levantamento', 'pesquisador', 'pagina_web', 'email', 'obs_pesquisa',) }), - (_(u'Outras informações'), { + (_('Outras informações'), { 'fields': ('observacoes', 'horario_funcionamento', 'foto', 'recorte'), }), @@ -431,26 +431,26 @@ class OrgaoAdmin(ImageCroppingMixin, BaseModelAdmin): def get_uf(self, obj): return obj.municipio.uf.nome - get_uf.short_description = _(u'Unidade da Federação') + get_uf.short_description = _('Unidade da Federação') get_uf.admin_order_field = 'municipio__uf__nome' def get_gerentes(self, obj): return obj.lista_gerentes() - get_gerentes.short_description = _(u'Gerente Interlegis') + get_gerentes.short_description = _('Gerente Interlegis') get_gerentes.allow_tags = True def get_convenios(self, obj): return '' - get_convenios.short_description = _(u'Convênios') + get_convenios.short_description = _('Convênios') get_convenios.allow_tags = True def get_servicos(self, obj): - return u'' + get_servicos.short_description = _('Serviços') get_servicos.allow_tags = True def changelist_view(self, request, extra_context=None): @@ -468,29 +468,29 @@ class OrgaoAdmin(ImageCroppingMixin, BaseModelAdmin): def etiqueta(self, request, queryset): return labels_report(request, queryset=queryset) - etiqueta.short_description = _(u"Gerar etiqueta(s) da(s) casa(s) " - u"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 = _(u"Gerar etiqueta(s) sem " - u"presidente da(s) casa(s) " - u"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) " - u"para PDF") + relatorio.short_description = _("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) " - u"casa(s) selecionada(s)") + relatorio_completo.short_description = _("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) " - u"para CSV") + relatorio_csv.short_description = _("Exportar casa(s) selecionada(s) " + "para CSV") def adicionar_casas(self, request, queryset): if 'carrinho_casas' in request.session: @@ -503,14 +503,14 @@ class OrgaoAdmin(ImageCroppingMixin, BaseModelAdmin): quant = q2 - q1 if quant: self.message_user(request, str(q2 - q1) + " " + - _(u"Casas Legislativas adicionadas no carrinho")) + _("Casas Legislativas adicionadas no carrinho")) else: - self.message_user(request, _(u"As Casas Legislativas selecionadas " - u"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 " - u"exportar") + adicionar_casas.short_description = _("Armazenar casas no carrinho para " + "exportar") def get_actions(self, request): actions = super(OrgaoAdmin, self).get_actions(request) diff --git a/sigi/apps/casas/forms.py b/sigi/apps/casas/forms.py index 3e9030a..fb347d4 100644 --- a/sigi/apps/casas/forms.py +++ b/sigi/apps/casas/forms.py @@ -9,17 +9,17 @@ from sigi.apps.servidores.models import Servidor class AtualizaCasaForm(forms.Form): arquivo = forms.FileField( required=True, - label=_(u"arquivo a importar"), - help_text=_(u"Envie um arquivo no formato CSV"), + label=_("arquivo a importar"), + help_text=_("Envie um arquivo no formato CSV"), ) class OrgaoForm(forms.ModelForm): # cnpj = BRCNPJField( - # label=_(u'CNPJ'), + # label=_('CNPJ'), # required=False, - # help_text=_(u'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=_(u'CEP'), help_text=_(u'Formato') + ': XXXXX-XXX.') + cep = BRZipCodeField(label=_('CEP'), help_text=_('Formato') + ': XXXXX-XXX.') class Meta: model = Orgao @@ -34,21 +34,21 @@ class OrgaoForm(forms.ModelForm): class PortfolioForm(forms.Form): ACAO_CHOICES = ( - ('ADD', _(u"Adicionar")), - ('DEL', _(u"Remover")) + ('ADD', _("Adicionar")), + ('DEL', _("Remover")) ) acao = forms.ChoiceField( - label=_(u"Ação"), + label=_("Ação"), choices=ACAO_CHOICES, initial='ADD', widget=forms.RadioSelect ) gerente = forms.ModelChoiceField( queryset=Servidor.objects.all(), - label=_(u"Atribuir para") + label=_("Atribuir para") ) # O label precisa ser trocado dependendo da região que se está visualizando - def __init__(self, label=_(u"Atribuir para"), *args, **kwargs): + def __init__(self, label=_("Atribuir para"), *args, **kwargs): super(PortfolioForm, self).__init__(*args, **kwargs) self.fields['gerente'].label = label diff --git a/sigi/apps/casas/management/commands/importa_gerentes.py b/sigi/apps/casas/management/commands/importa_gerentes.py index ce3d009..3f55647 100644 --- a/sigi/apps/casas/management/commands/importa_gerentes.py +++ b/sigi/apps/casas/management/commands/importa_gerentes.py @@ -30,8 +30,8 @@ from sigi.apps.servidores.models import Servidor from sigi.apps.contatos.models import Municipio class Command(BaseCommand): - args = u"data_file.csv" - help = u"""Importa dados de atribuição de gerencia de relacionamentos de um arquivo CSV. + args = "data_file.csv" + help = """Importa dados de atribuição de gerencia de relacionamentos de um arquivo CSV. A primeira linha do arquivo deve possuir um cabeçalho com os seguintes campos obrigatórios: - cod_municipio : Código IBGE do município @@ -43,18 +43,18 @@ class Command(BaseCommand): def handle(self, *args, **options): if len(args) != 1: - raise CommandError(u"Informe UM arquivo csv a importar") + raise CommandError("Informe UM arquivo csv a importar") file_name = args[0] if not os.path.isfile(file_name): - raise CommandError(u"Arquivo %s não encontrado" % [file_name,]) + raise CommandError("Arquivo %s não encontrado" % [file_name,]) with open(file_name, 'rb') as csvfile: reader = csv.DictReader(csvfile) if not self.campos.issubset(reader.fieldnames): - raise CommandError(u"O arquivo não possui todos os campos obrigatórios") + raise CommandError("O arquivo não possui todos os campos obrigatórios") Orgao.gerentes_interlegis.through.objects.all().delete() @@ -66,8 +66,8 @@ class Command(BaseCommand): codigo_ibge=reg['cod_municipio'] ) except Municipio.DoesNotExist: - self.stdout.write(u"{linha}: não existe Município com " - u"código IBGE {ibge}'".format( + self.stdout.write("{linha}: não existe Município com " + "código IBGE {ibge}'".format( linha=reader.line_num, ibge=reg['cod_municipio']) ) @@ -79,8 +79,8 @@ class Command(BaseCommand): user__username=reg['user_id'] ) except Servidor.DoesNotExist: - self.stdout.write(u"({linha}): não existe Servidor com " - u"userid {userid}".format( + self.stdout.write("({linha}): não existe Servidor com " + "userid {userid}".format( linha=reader.line_num, userid=reg['user_id']) ) @@ -92,7 +92,7 @@ class Command(BaseCommand): casa.gerentes_interlegis.add(gerente) casa.save() - self.stdout.write(u"Importação concluída. {erros} erros em {linhas}" - u" linhas".format(erros=erros, + self.stdout.write("Importação concluída. {erros} erros em {linhas}" + " linhas".format(erros=erros, linhas=reader.line_num) ) \ No newline at end of file diff --git a/sigi/apps/casas/models.py b/sigi/apps/casas/models.py index 876308e..f62c327 100644 --- a/sigi/apps/casas/models.py +++ b/sigi/apps/casas/models.py @@ -20,14 +20,14 @@ class TipoOrgao(models.Model): Câmara Distrital ou Legislativo Federal """ - sigla = models.CharField(_(u"Sigla"), max_length=5) - nome = models.CharField(_(u"Nome"), max_length=100) - legislativo = models.BooleanField(_(u"Poder legislativo"), default=False) + sigla = models.CharField(_("Sigla"), max_length=5) + nome = models.CharField(_("Nome"), max_length=100) + legislativo = models.BooleanField(_("Poder legislativo"), default=False) class Meta: ordering = ('nome',) - verbose_name = _(u"Tipo de órgão") - verbose_name_plural = _(u"Tipos de órgão") + verbose_name = _("Tipo de órgão") + verbose_name_plural = _("Tipos de órgão") def __unicode__(self): return self.nome @@ -37,19 +37,19 @@ class Orgao(models.Model): """ INCLUSAO_DIGITAL_CHOICES = ( - ('NAO PESQUISADO', _(u'Não pesquisado')), - ('NAO POSSUI PORTAL', _(u'Não possui portal')), - ('PORTAL MODELO', _(u'Possui Portal Modelo')), - ('OUTRO PORTAL', _(u'Possui outro portal')), + ('NAO PESQUISADO', _('Não pesquisado')), + ('NAO POSSUI PORTAL', _('Não possui portal')), + ('PORTAL MODELO', _('Possui Portal Modelo')), + ('OUTRO PORTAL', _('Possui outro portal')), ) nome = models.CharField( - _(u"Nome"), + _("Nome"), max_length=60, - help_text=_(u'Exemplo: Câmara Municipal de Pains.') + help_text=_('Exemplo: Câmara Municipal de Pains.') ) sigla = models.CharField( - _(u"sigla do órgão"), + _("sigla do órgão"), max_length=30, blank=True ) @@ -58,18 +58,18 @@ class Orgao(models.Model): tipo = models.ForeignKey( TipoOrgao, on_delete=models.PROTECT, - verbose_name=_(u"Tipo") + verbose_name=_("Tipo") ) - cnpj = models.CharField(_(u"CNPJ"), max_length=32, blank=True) - observacoes = models.TextField(_(u'observações'), blank=True) + cnpj = models.CharField(_("CNPJ"), max_length=32, blank=True) + observacoes = models.TextField(_('observações'), blank=True) horario_funcionamento = models.CharField( - _(u"Horário de funcionamento da Casa Legislativa"), + _("Horário de funcionamento da Casa Legislativa"), max_length=100, blank=True, ) # num_parlamentares = models.PositiveIntegerField('Número de parlamentares') codigo_interlegis = models.CharField( - _(u'Código Interlegis'), + _('Código Interlegis'), max_length=3, blank=True ) @@ -77,57 +77,57 @@ class Orgao(models.Model): gerentes_interlegis = models.ManyToManyField( Servidor, - verbose_name=_(u"Gerentes Interlegis"), + verbose_name=_("Gerentes Interlegis"), related_name='casas_que_gerencia', blank=True, ) # Informações de contato logradouro = models.CharField( - _(u"Logradouro"), + _("Logradouro"), max_length=100, - help_text=_(u'Avenida, rua, praça, jardim, parque...') + help_text=_('Avenida, rua, praça, jardim, parque...') ) - bairro = models.CharField(_(u"Bairro"), max_length=100, blank=True) + bairro = models.CharField(_("Bairro"), max_length=100, blank=True) municipio = models.ForeignKey( 'contatos.Municipio', on_delete=models.PROTECT, - verbose_name=_(u'Município') + verbose_name=_('Município') ) # municipio.uf_filter = True - cep = models.CharField(_(u"CEP"), max_length=32) - email = models.EmailField(_(u'E-mail'), max_length=128, blank=True) + cep = models.CharField(_("CEP"), max_length=32) + email = models.EmailField(_('E-mail'), max_length=128, blank=True) pagina_web = models.URLField( - _(u'Página web'), - help_text=_(u'Exemplo: http://www.camarapains.mg.gov.br.'), + _('Página web'), + help_text=_('Exemplo: http://www.camarapains.mg.gov.br.'), blank=True, ) inclusao_digital = models.CharField( - _(u"Inclusão digital"), + _("Inclusão digital"), max_length=30, choices=INCLUSAO_DIGITAL_CHOICES, default=INCLUSAO_DIGITAL_CHOICES[0][0] ) data_levantamento = models.DateTimeField( - _(u"Data/hora da pesquisa"), + _("Data/hora da pesquisa"), null=True, blank=True ) pesquisador = models.ForeignKey( Servidor, on_delete=models.SET_NULL, - verbose_name=_(u"Pesquisador"), + verbose_name=_("Pesquisador"), null=True, blank=True ) obs_pesquisa = models.TextField( - _(u"Observações do pesquisador"), + _("Observações do pesquisador"), blank=True ) ult_alt_endereco = models.DateTimeField( - _(u'Última alteração do endereço'), + _('Última alteração do endereço'), null=True, blank=True, editable=True @@ -135,7 +135,7 @@ class Orgao(models.Model): telefones = GenericRelation('contatos.Telefone') foto = models.ImageField( - _(u"Foto"), + _("Foto"), upload_to='imagens/casas', width_field='foto_largura', height_field='foto_altura', @@ -145,25 +145,25 @@ class Orgao(models.Model): foto_largura = models.SmallIntegerField(editable=False, null=True) foto_altura = models.SmallIntegerField(editable=False, null=True) data_instalacao = models.DateField( - _(u'Data de instalação da Casa Legislativa'), + _('Data de instalação da Casa Legislativa'), null=True, blank=True ) class Meta: ordering = ('nome',) - verbose_name = _(u'Órgão') - verbose_name_plural = _(u'Órgãos') + verbose_name = _('Órgão') + verbose_name_plural = _('Órgãos') def lista_gerentes(self, fmt='html'): if not self.gerentes_interlegis.exists(): return "" if fmt == 'html': - return u"" else: - return u", ".join([g.nome_completo for g in + return ", ".join([g.nome_completo for g in self.gerentes_interlegis.all()]) @property @@ -275,7 +275,7 @@ class Orgao(models.Model): if Orgao.objects.filter(codigo_interlegis=codigo).count() > 0: codigo_cons = cityName.replace('A', '').replace('E', '').\ - replace('I', '').replace('O', '').replace('U', '')[:3] + replace('I', '').replace('O', '').replace('', '')[:3] if len(codigo_cons) == 3 and \ Orgao.objects.filter(codigo_interlegis=codigo).count() > 0: codigo = codigo_cons @@ -325,7 +325,7 @@ class Orgao(models.Model): tipo=self.tipo, municipio=self.municipio).exclude(pk=self.pk).exists(): raise ValidationError( - _(u"Já existe um(a) %(tipo)s em %(municipio)s"), + _("Já existe um(a) %(tipo)s em %(municipio)s"), code='integrity', params={'tipo': self.tipo, 'municipio': self.municipio}) @@ -355,98 +355,98 @@ class Funcionario(models.Model): """ SETOR_CHOICES = [ - ("presidente", _(u"Presidente")), - ("contato_interlegis", _(u"Contato Interlegis")), - ("infraestrutura_fisica", _(u"Infraestrutura Física")), - ("estrutura_de_ti", _(u"Estrutura de TI")), + ("presidente", _("Presidente")), + ("contato_interlegis", _("Contato Interlegis")), + ("infraestrutura_fisica", _("Infraestrutura Física")), + ("estrutura_de_ti", _("Estrutura de TI")), ("organizacao_do_processo_legislativo", - _(u"Organização do Processo Legislativo")), - ("producao_legislativa", _(u"Produção Legislativa")), + _("Organização do Processo Legislativo")), + ("producao_legislativa", _("Produção Legislativa")), ("estrutura_de_comunicacao_social", - _(u"Estrutura de Comunicação Social")), - ("estrutura_de_recursos_humanos", _(u"Estrutura de Recursos Humanos")), - ("gestao", _(u"Gestão")), - ("outros", _(u"Outros")), + _("Estrutura de Comunicação Social")), + ("estrutura_de_recursos_humanos", _("Estrutura de Recursos Humanos")), + ("gestao", _("Gestão")), + ("outros", _("Outros")), ] SEXO_CHOICES = [ - ("M", _(u"Masculino")), - ("F", _(u"Feminino")) + ("M", _("Masculino")), + ("F", _("Feminino")) ] casa_legislativa = models.ForeignKey( Orgao, on_delete=models.CASCADE, - verbose_name=_(u"órgão"), + verbose_name=_("órgão"), ) - nome = models.CharField(_(u'nome completo'), max_length=60, blank=False) + nome = models.CharField(_('nome completo'), max_length=60, blank=False) # nome.alphabetic_filter = True sexo = models.CharField( - _(u"Sexo"), + _("Sexo"), max_length=1, choices=SEXO_CHOICES, default="M" ) data_nascimento = models.DateField( - _(u"Data de nascimento"), + _("Data de nascimento"), blank=True, null=True ) nota = models.CharField( - _(u"Telefones"), + _("Telefones"), max_length=250, null=True, blank=True ) - email = models.CharField(_(u'e-mail'), max_length=250, blank=True) + email = models.CharField(_('e-mail'), max_length=250, blank=True) # endereco = generic.GenericRelation('contatos.Endereco') - endereco = models.CharField(_(u'Endereço'), max_length=100, blank=True) + endereco = models.CharField(_('Endereço'), max_length=100, blank=True) municipio = models.ForeignKey( Municipio, on_delete=models.SET_NULL, - verbose_name=_(u'Municipio'), + verbose_name=_('Municipio'), null=True, blank=True, ) - bairro = models.CharField(_(u'Bairro'), max_length=100, blank=True) - cep = models.CharField(_(u'CEP'), max_length=10, blank=True) + bairro = models.CharField(_('Bairro'), max_length=100, blank=True) + cep = models.CharField(_('CEP'), max_length=10, blank=True) redes_sociais = models.TextField( - _(u'Redes sociais'), - help_text=_(u'Colocar um por linha'), + _('Redes sociais'), + help_text=_('Colocar um por linha'), blank=True ) - cargo = models.CharField(_(u"Cargo"), max_length=100, null=True, blank=True) + cargo = models.CharField(_("Cargo"), max_length=100, null=True, blank=True) funcao = models.CharField( - _(u'função'), + _('função'), max_length=100, null=True, blank=True ) setor = models.CharField( - _(u"Setor"), + _("Setor"), max_length=100, choices=SETOR_CHOICES, default="outros" ) tempo_de_servico = models.CharField( - _(u'Tempo de serviço'), + _('Tempo de serviço'), max_length=50, null=True, blank=True ) ult_alteracao = models.DateTimeField( - _(u'Última alteração'), + _('Última alteração'), null=True, blank=True, editable=True, auto_now=True ) - desativado = models.BooleanField(_(u"Desativado"), default=False) - observacoes = models.TextField(_(u"Observações"), blank=True) + desativado = models.BooleanField(_("Desativado"), default=False) + observacoes = models.TextField(_("Observações"), blank=True) class Meta: ordering = ('nome',) - verbose_name = _(u'contato da Casa Legislativa') - verbose_name_plural = _(u'contatos da Casa Legislativa') + verbose_name = _('contato da Casa Legislativa') + verbose_name_plural = _('contatos da Casa Legislativa') def __unicode__(self): return self.nome diff --git a/sigi/apps/casas/reports.py b/sigi/apps/casas/reports.py index 547ea0c..b718055 100644 --- a/sigi/apps/casas/reports.py +++ b/sigi/apps/casas/reports.py @@ -100,7 +100,7 @@ class CasasLegislativasLabels(Report): my_elements = [ Label( - text=label_text(_(u'A Sua Excelência o(a) Senhor(a)')), + text=label_text(_('A Sua Excelência o(a) Senhor(a)')), top=calc_top(0), left=calc_left, width=calc_width, ), ObjectValue( @@ -113,7 +113,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: - (_(u"Presidente da %s") % instance.nome) + (_("Presidente da %s") % instance.nome) ), ObjectValue( attribute_name='logradouro', @@ -125,7 +125,7 @@ class CasasLegislativasLabels(Report): ObjectValue( attribute_name='cep', top=calc_top(8), left=calc_left, width=calc_width, - get_value=lambda instance: "%s: %s" % (_(u"CEP"), instance.cep) + get_value=lambda instance: "%s: %s" % (_("CEP"), instance.cep) ), ] self.band_detail = DetailBand( @@ -148,14 +148,14 @@ class CasasLegislativasLabelsSemPresidente(CasasLegislativasLabels): my_elements = [ Label( - text=label_text(_(u'A Sua Excelência o(a) Senhor(a)')), + text=label_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: - (_(u"Presidente da %s") % instance.nome) + (_("Presidente da %s") % instance.nome) ), ObjectValue( attribute_name='logradouro', @@ -167,7 +167,7 @@ class CasasLegislativasLabelsSemPresidente(CasasLegislativasLabels): ObjectValue( attribute_name='cep', top=calc_top(8), left=calc_left, width=calc_width, - get_value=lambda instance: "%s: %s" % (_(u"CEP"), instance.cep) + get_value=lambda instance: "%s: %s" % (_("CEP"), instance.cep) ), ] self.band_detail = DetailBand( diff --git a/sigi/apps/casas/views.py b/sigi/apps/casas/views.py index 6aa6781..4f2c549 100644 --- a/sigi/apps/casas/views.py +++ b/sigi/apps/casas/views.py @@ -125,8 +125,8 @@ class importa_casas(View): return render( request, 'casas/importar.html', - {'form': form, 'error': _(u"O arquivo não possui algum dos " - u"campos obrigatórios")} + {'form': form, 'error': _("O arquivo não possui algum dos " + "campos obrigatórios")} ) if self.importa(reader): @@ -165,7 +165,7 @@ class importa_casas(View): return render( request, 'casas/importar.html', - {'form': form, 'error': u"Erro no preenchimento do formulário."} + {'form': form, 'error': "Erro no preenchimento do formulário."} ) # Atualiza ou cria funcionário @@ -448,7 +448,7 @@ def visualizar_carrinho(request): def excluir_carrinho(request): if 'carrinho_casas' in request.session: del request.session['carrinho_casas'] - messages.info(request, u'O carrinho foi esvaziado') + messages.info(request, 'O carrinho foi esvaziado') return HttpResponseRedirect('../../') @@ -588,7 +588,7 @@ def report(request, id=None, tipo=None): return HttpResponseRedirect('../') qs = qs.order_by('municipio__uf', 'nome') - context = {'casas': qs, 'title': _(u"Relação de Casas Legislativas")} + context = {'casas': qs, 'title': _("Relação de Casas Legislativas")} return render_to_pdf('casas/report_pdf.html', context) @@ -617,7 +617,7 @@ def casas_sem_convenio_report(request): return HttpResponseRedirect('../') qs = qs.order_by('municipio__uf', 'nome') - context = {'casas': qs, 'title': _(u"Casas sem convênio")} + context = {'casas': qs, 'title': _("Casas sem convênio")} return render_to_pdf('casas/report_pdf.html', context) @@ -636,7 +636,7 @@ def export_csv(request): atributos = request.POST.getlist("itens_csv_selected") try: - atributos.insert(atributos.index(_(u'Município')), _(u'UF')) + atributos.insert(atributos.index(_('Município')), _('UF')) except ValueError: pass @@ -648,59 +648,59 @@ def export_csv(request): lista = [] contatos = casa.funcionario_set.exclude(nome="") for atributo in atributos: - if _(u"CNPJ") == atributo: + if _("CNPJ") == atributo: lista.append(casa.cnpj.encode("utf-8")) - elif _(u"Código IBGE") == atributo: + elif _("Código IBGE") == atributo: lista.append(str(casa.municipio.codigo_ibge).encode("utf-8")) - elif _(u"Código TSE") == atributo: + elif _("Código TSE") == atributo: lista.append(str(casa.municipio.codigo_tse).encode("utf-8")) - elif _(u"Nome") == atributo: + elif _("Nome") == atributo: lista.append(casa.nome.encode("utf-8")) - elif _(u"Município") == atributo: + elif _("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 _("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 _("Logradouro") == atributo: lista.append(casa.logradouro.encode("utf-8")) - elif _(u"Bairro") == atributo: + elif _("Bairro") == atributo: lista.append(casa.bairro.encode("utf-8")) - elif _(u"CEP") == atributo: + elif _("CEP") == atributo: lista.append(casa.cep.encode("utf-8")) - elif _(u"Telefone") == atributo: + elif _("Telefone") == atributo: lista.append(str(casa.telefone or "")) - elif _(u"Página web") == atributo: + elif _("Página web") == atributo: lista.append(casa.pagina_web.encode("utf-8")) - elif _(u"Email") == atributo: + elif _("Email") == atributo: lista.append(casa.email.encode("utf-8")) - elif _(u"Número de parlamentares") == atributo: + elif _("Número de parlamentares") == atributo: lista.append(casa.total_parlamentares) - elif _(u"Última alteração de endereco") == atributo: + elif _("Última alteração de endereco") == atributo: lista.append(casa.ult_alt_endereco) - elif _(u"Servicos SEIT") == atributo: + elif _("Servicos SEIT") == atributo: lista.append(", ".join([s.tipo_servico.nome.encode('utf-8') for s in casa.servico_set.filter( data_desativacao__isnull=True)]) ) - elif _(u"Nome contato") == atributo: + elif _("Nome contato") == atributo: if contatos: - nomes = u", ".join([c.nome for c in contatos]) + nomes = ", ".join([c.nome for c in contatos]) lista.append(nomes.encode("utf-8")) else: lista.append('') - elif _(u"Cargo contato") == atributo: + elif _("Cargo contato") == atributo: if contatos: - cargos = u", ".join([c.cargo if c.cargo else u"?" + cargos = ", ".join([c.cargo if c.cargo else "?" for c in contatos]) lista.append(cargos.encode("utf-8")) else: lista.append('') - elif _(u"Email contato") == atributo: + elif _("Email contato") == atributo: if contatos: - emails = u", ".join([c.email if c.email else u"?" + emails = ", ".join([c.email if c.email else "?" for c in contatos]) lista.append(emails.encode("utf-8")) else: @@ -745,7 +745,7 @@ def portfolio(request): data['mesorregioes'] = uf.mesorregiao_set.all() data['microrregioes'] = mesorregiao.microrregiao_set.all() data['form'] = PortfolioForm( - _(u'Atribuir casas da microrregiao {name} para').format( + _('Atribuir casas da microrregiao {name} para').format( name=unicode(microrregiao)) ) data['querystring'] = 'micro={0}'.format(microrregiao.pk) @@ -762,7 +762,7 @@ def portfolio(request): data['mesorregioes'] = uf.mesorregiao_set.all() data['microrregioes'] = mesorregiao.microrregiao_set.all() data['form'] = PortfolioForm( - _(u'Atribuir casas da mesorregiao {name} para').format( + _('Atribuir casas da mesorregiao {name} para').format( name=unicode(mesorregiao))) data['querystring'] = 'meso={0}'.format(mesorregiao.pk) casas = Orgao.objects.filter( @@ -775,7 +775,7 @@ def portfolio(request): data['ufs'] = UnidadeFederativa.objects.filter(regiao=uf.regiao) data['mesorregioes'] = uf.mesorregiao_set.all() data['form'] = PortfolioForm( - _(u'Atribuir casas do estado {name} para').format( + _('Atribuir casas do estado {name} para').format( name=unicode(uf))) data['querystring'] = 'uf={0}'.format(uf.pk) casas = Orgao.objects.filter(municipio__uf=uf) @@ -783,7 +783,7 @@ def portfolio(request): data['regiao'] = regiao data['ufs'] = UnidadeFederativa.objects.filter(regiao=regiao) data['form'] = PortfolioForm( - _(u'Atribuir casas da região {name} para').format( + _('Atribuir casas da região {name} para').format( name=[x[1] for x in UnidadeFederativa.REGIAO_CHOICES if x[0] == regiao][0])) data['querystring'] = 'regiao={0}'.format(regiao) @@ -814,21 +814,21 @@ def portfolio(request): if acao == 'ADD': gerente.casas_que_gerencia.add(*casas) data['messages'].append(ungettext( - u"{count} casa adicionada para {gerente}", - u"{count} casas adicionadas para {gerente}", + "{count} casa adicionada para {gerente}", + "{count} casas adicionadas para {gerente}", count).format(count=count,gerente=gerente.nome_completo) ) elif acao == 'DEL': gerente.casas_que_gerencia.remove(*casas) data['messages'].append(ungettext( - u"{count} casa removida de {gerente}", - u"{count} casas removidas de {gerente}", + "{count} casa removida de {gerente}", + "{count} casas removidas de {gerente}", count).format(count=count,gerente=gerente.nome_completo) ) else: - data['errors'].append(_(u"Ação não definida")) + data['errors'].append(_("Ação não definida")) else: - data['errors'].append(_(u"Dados inválidos")) + data['errors'].append(_("Dados inválidos")) paginator = Paginator(casas, 30) try: @@ -892,16 +892,16 @@ def resumo_carteira(casas): else: dados_ocorrencia['media'][r] = (1.0 * dados_ocorrencia['registradas'][r] / (total[r] - dados_ocorrencia['sem'][r])) - resumo = [[_(u"Item"), _(u"Total nacional")] + [r[1] for r in UnidadeFederativa.REGIAO_CHOICES]] - resumo.append([_(u"Casas em sua carteira"), total['total']] + [total[r[0]] for r in UnidadeFederativa.REGIAO_CHOICES]) - resumo.append({'subtitle': _(u"Uso dos produtos Interlegis")}) - resumo.append([_(u"Casas sem nenhum produto"), sem_produto['total']] + [sem_produto[r[0]] for r in UnidadeFederativa.REGIAO_CHOICES]) + resumo = [[_("Item"), _("Total nacional")] + [r[1] for r in UnidadeFederativa.REGIAO_CHOICES]] + resumo.append([_("Casas em sua carteira"), total['total']] + [total[r[0]] for r in UnidadeFederativa.REGIAO_CHOICES]) + resumo.append({'subtitle': _("Uso dos produtos Interlegis")}) + resumo.append([_("Casas sem nenhum produto"), sem_produto['total']] + [sem_produto[r[0]] for r in UnidadeFederativa.REGIAO_CHOICES]) resumo.extend([[ts.nome, dados[ts.id]['total']] + [dados[ts.id][r[0]] for r in UnidadeFederativa.REGIAO_CHOICES] for ts in tipos_servico]) - resumo.append({'subtitle': _(u"Registros no sistema de ocorrências")}) - resumo.append([_(u"Casas que nunca registraram ocorrências"), dados_ocorrencia['sem']['total']] + [dados_ocorrencia['sem'][r[0]] for r in UnidadeFederativa.REGIAO_CHOICES]) - resumo.append([_(u"Total de ocorrências registradas"), dados_ocorrencia['registradas']['total']] + [dados_ocorrencia['registradas'][r[0]] for r in UnidadeFederativa.REGIAO_CHOICES]) - resumo.append([_(u"Total de ocorrências pendentes"), dados_ocorrencia['pendentes']['total']] + [dados_ocorrencia['pendentes'][r[0]] for r in UnidadeFederativa.REGIAO_CHOICES]) - resumo.append([_(u"Média de ocorrências por casa"), round(dados_ocorrencia['media']['total'], 2)] + [round(dados_ocorrencia['media'][r[0]], 2) for r in UnidadeFederativa.REGIAO_CHOICES]) + resumo.append({'subtitle': _("Registros no sistema de ocorrências")}) + resumo.append([_("Casas que nunca registraram ocorrências"), dados_ocorrencia['sem']['total']] + [dados_ocorrencia['sem'][r[0]] for r in UnidadeFederativa.REGIAO_CHOICES]) + resumo.append([_("Total de ocorrências registradas"), dados_ocorrencia['registradas']['total']] + [dados_ocorrencia['registradas'][r[0]] for r in UnidadeFederativa.REGIAO_CHOICES]) + resumo.append([_("Total de ocorrências pendentes"), dados_ocorrencia['pendentes']['total']] + [dados_ocorrencia['pendentes'][r[0]] for r in UnidadeFederativa.REGIAO_CHOICES]) + resumo.append([_("Média de ocorrências por casa"), round(dados_ocorrencia['media']['total'], 2)] + [round(dados_ocorrencia['media'][r[0]], 2) for r in UnidadeFederativa.REGIAO_CHOICES]) return resumo @@ -1016,13 +1016,13 @@ def painel_relacionamento(request): response['Content-Disposition'] = 'attachment; filename=casas.csv' writer = csv.writer(response) writer.writerow([ - _(u"Casa legislativa").encode('utf8'), - _(u"Região").encode('utf8'), - _(u"Estado").encode('utf8'), - _(u"Mesorregião").encode('utf8'), - _(u"Microrregião").encode('utf8'), - _(u"Gerentes Interlegis").encode('utf8'), - _(u"Serviços").encode('utf8'), + _("Casa legislativa").encode('utf8'), + _("Região").encode('utf8'), + _("Estado").encode('utf8'), + _("Mesorregião").encode('utf8'), + _("Microrregião").encode('utf8'), + _("Gerentes Interlegis").encode('utf8'), + _("Serviços").encode('utf8'), ]) for c in casas: writer.writerow([ @@ -1032,7 +1032,7 @@ def painel_relacionamento(request): c.municipio.microrregiao.mesorregiao.nome.encode('utf8'), c.municipio.microrregiao.nome.encode('utf8'), c.lista_gerentes(fmt='lista').encode('utf8'), - (u", ".join([s.tipo_servico.nome for s in c.servico_set.filter(data_desativacao__isnull=True)])).encode('utf8'), + (", ".join([s.tipo_servico.nome for s in c.servico_set.filter(data_desativacao__isnull=True)])).encode('utf8'), ]) return response return render(request, 'casas/lista_casas_carteira_snippet.html', context) diff --git a/sigi/apps/contatos/admin.py b/sigi/apps/contatos/admin.py index 3ea4baf..22b1d07 100644 --- a/sigi/apps/contatos/admin.py +++ b/sigi/apps/contatos/admin.py @@ -44,7 +44,7 @@ class MunicipioAdmin(BaseModelAdmin): 'fields': ('codigo_ibge', 'codigo_tse', 'nome', 'data_criacao', 'uf', 'microrregiao', 'is_capital', 'populacao', 'is_polo', 'idh', 'pib_ano', 'pib_total', 'pib_percapita') }), - (_(u'Posição geográfica'), { + (_('Posição geográfica'), { 'fields': ('latitude', 'longitude'), }), ) diff --git a/sigi/apps/contatos/filters.py b/sigi/apps/contatos/filters.py index ec15bfb..a83fb1c 100644 --- a/sigi/apps/contatos/filters.py +++ b/sigi/apps/contatos/filters.py @@ -6,7 +6,7 @@ from django.utils.translation import gettext as _ class PopulationFilter(admin.SimpleListFilter): # Human-readable title which will be displayed in the # right admin sidebar just above the filter options. - title = _(u'População') + title = _('População') # Parameter for the filter that will be used in the URL query. parameter_name = 'faixa' @@ -20,10 +20,10 @@ class PopulationFilter(admin.SimpleListFilter): in the right sidebar. """ return ( - ('1', _(u'< 100 Mil')), - ('2', _(u'100 Mil a 1 Milhão')), - ('3', _(u'1 Milhão a 100 Milhões')), - ('4', _(u'> 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/management/commands/importa_mesomicro.py b/sigi/apps/contatos/management/commands/importa_mesomicro.py index d4bc2b9..1aa0ae0 100644 --- a/sigi/apps/contatos/management/commands/importa_mesomicro.py +++ b/sigi/apps/contatos/management/commands/importa_mesomicro.py @@ -27,9 +27,9 @@ from django.core.management.base import BaseCommand, CommandError from sigi.apps.contatos.models import Municipio, UnidadeFederativa, Mesorregiao, Microrregiao class Command(BaseCommand): - args = u"data_file.csv" - help = u"""Importa arquivo do IBGE para preencher as tabelas de meso e microrregiões para os municípios. - + args = "data_file.csv" + help = """Importa arquivo do IBGE para preencher as tabelas de meso e microrregiões para os municípios. + A primeira linha do arquivo deve possuir um cabeçalho com os seguintes campos obrigatórios: - cod_uf : Código IBGE da Unidade da Federação - cod_mesorregiao : Código IBGE da mesorregião @@ -37,64 +37,64 @@ class Command(BaseCommand): - cod_microrregiao : Código IBGE da microrregião - nome_microrregiao : Nome da microrregião - cod_municipio : Código IBGE do município - + * Os nomes dos campos devem ser grafados exatamente como descrito.""" - + campos = {'cod_uf', 'cod_mesorregiao', 'nome_mesorregiao', 'cod_microrregiao', 'nome_microrregiao', 'cod_municipio'} - + def handle(self, *args, **options): if len(args) != 1: - raise CommandError(u"Informe UM arquivo csv a importar") - + raise CommandError("Informe UM arquivo csv a importar") + file_name = args[0] - + if not os.path.isfile(file_name): - raise CommandError(u"Arquivo %s não encontrado" % [file_name,]) - + raise CommandError("Arquivo %s não encontrado" % [file_name,]) + with open(file_name, 'rb') as csvfile: reader = csv.DictReader(csvfile) - + if not self.campos.issubset(reader.fieldnames): - raise CommandError(u"O arquivo não possui todos os campos obrigatórios") - + raise CommandError("O arquivo não possui todos os campos obrigatórios") + erros = 0 - + for reg in reader: try: uf = UnidadeFederativa.objects.get(codigo_ibge=reg['cod_uf']) except UnidadeFederativa.DoesNotExist: - self.stdout.write(u"(Linha %s): não existe UF com código IBGE '%s'" % + self.stdout.write("(Linha %s): não existe UF com código IBGE '%s'" % (reader.line_num, reg['cod_uf'],)) erros = erros + 1 continue - + try: municipio = Municipio.objects.get(codigo_ibge=reg['cod_municipio']) except Municipio.DoesNotExist: - self.stdout.write(u"(Linha %s): não existe Município com código IBGE '%s'" % + self.stdout.write("(Linha %s): não existe Município com código IBGE '%s'" % (reader.line_num, reg['cod_municipio'],)) erros = erros + 1 continue - + cod_meso = reg['cod_uf'] + reg['cod_mesorregiao'] cod_micro = cod_meso + reg['cod_microrregiao'] - + if Mesorregiao.objects.filter(codigo_ibge=cod_meso).exists(): meso = Mesorregiao.objects.get(codigo_ibge=cod_meso) else: meso = Mesorregiao(codigo_ibge=cod_meso, uf=uf, nome=reg['nome_mesorregiao']) meso.nome = reg['nome_mesorregiao'] meso.save() - + if Microrregiao.objects.filter(codigo_ibge=cod_micro).exists(): micro = Microrregiao.objects.get(codigo_ibge=cod_micro) else: micro = Microrregiao(codigo_ibge=cod_micro, mesorregiao=meso, nome=reg['nome_microrregiao']) micro.nome = reg['nome_microrregiao'] micro.save() - + municipio.microrregiao = micro municipio.save() - - self.stdout.write(u"Importação concluída. %s erros em %s linhas" % (erros, reader.line_num,)) \ No newline at end of file + + self.stdout.write("Importação concluída. %s erros em %s linhas" % (erros, reader.line_num,)) \ No newline at end of file diff --git a/sigi/apps/contatos/models.py b/sigi/apps/contatos/models.py index 65b1d44..87282b2 100644 --- a/sigi/apps/contatos/models.py +++ b/sigi/apps/contatos/models.py @@ -14,121 +14,121 @@ class UnidadeFederativa(models.Model): """ Modelo que representa um estado brasileiro """ REGIAO_CHOICES = ( - ('CO', _(u'Centro-Oeste')), - ('NE', _(u'Nordeste')), - ('NO', _(u'Norte')), - ('SD', _(u'Sudeste')), - ('SL', _(u'Sul')), + ('CO', _('Centro-Oeste')), + ('NE', _('Nordeste')), + ('NO', _('Norte')), + ('SD', _('Sudeste')), + ('SL', _('Sul')), ) codigo_ibge = models.PositiveIntegerField( - u'código IBGE', + 'código IBGE', primary_key=True, unique=True, - help_text=_(u'Código do estado segundo IBGE.') + help_text=_('Código do estado segundo IBGE.') ) - nome = models.CharField(_(u'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=_(u"Exemplo") + ": MG.", + help_text=_("Exemplo") + ": MG.", ) - regiao = models.CharField(_(u'região'), max_length=2, choices=REGIAO_CHOICES) - populacao = models.PositiveIntegerField(_(u'população')) + regiao = models.CharField(_('região'), max_length=2, choices=REGIAO_CHOICES) + populacao = models.PositiveIntegerField(_('população')) class Meta: ordering = ('nome',) - verbose_name = _(u'Unidade Federativa') - verbose_name_plural = _(u'Unidades Federativas') + verbose_name = _('Unidade Federativa') + verbose_name_plural = _('Unidades Federativas') def __unicode__(self): return self.nome class Mesorregiao(models.Model): codigo_ibge = models.PositiveIntegerField( - _(u'Código IBGE'), + _('Código IBGE'), primary_key=True, unique=True, - help_text=_(u'Código da mesorregião segundo o IBGE') + help_text=_('Código da mesorregião segundo o IBGE') ) uf = models.ForeignKey( UnidadeFederativa, on_delete=models.CASCADE, - verbose_name=_(u'UF') + verbose_name=_('UF') ) - nome = models.CharField(_(u"Nome mesorregião"), max_length=100) + nome = models.CharField(_("Nome mesorregião"), max_length=100) # Campo de busca em caixa baixa sem acento search_text = SearchField(field_names=['nome']) class Meta: ordering = ('uf', 'nome',) - verbose_name, verbose_name_plural = _(u'Mesorregião'), _(u'Mesorregiões') + verbose_name, verbose_name_plural = _('Mesorregião'), _('Mesorregiões') def __unicode__(self): return self.nome class Microrregiao(models.Model): codigo_ibge = models.PositiveIntegerField( - _(u'Código IBGE'), + _('Código IBGE'), primary_key=True, unique=True, - help_text=_(u'Código da microrregião segundo o IBGE') + help_text=_('Código da microrregião segundo o IBGE') ) mesorregiao = models.ForeignKey( Mesorregiao, on_delete=models.CASCADE ) - nome = models.CharField(_(u"Nome microrregião"), max_length=100) + nome = models.CharField(_("Nome microrregião"), max_length=100) # Campo de busca em caixa baixa sem acento search_text = SearchField(field_names=['nome']) class Meta: ordering = ('nome',) - verbose_name, verbose_name_plural = _(u'Microrregião'), _(u'Microrregiões') + verbose_name, verbose_name_plural = _('Microrregião'), _('Microrregiões') def __unicode__(self): - return u"%s (%s)" % (self.nome, self.mesorregiao.nome) + return "%s (%s)" % (self.nome, self.mesorregiao.nome) class Municipio(models.Model): """ Modelo para representar as cidades brasileiras """ codigo_ibge = models.PositiveIntegerField( - _(u'código IBGE'), + _('código IBGE'), primary_key=True, unique=True, - help_text=_(u'Código do município segundo IBGE.') + help_text=_('Código do município segundo IBGE.') ) microrregiao = models.ForeignKey( Microrregiao, on_delete=models.PROTECT, - verbose_name=_(u'Microrregião'), + verbose_name=_('Microrregião'), blank=True, null=True ) # codio designado pelo Tribunal Superior Eleitoral codigo_tse = models.PositiveIntegerField( - _(u'código TSE'), + _('código TSE'), unique=True, null=True, - help_text=_(u'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=[_(u'nome'), _(u'uf')]) + search_text = SearchField(field_names=[_('nome'), _('uf')]) uf = models.ForeignKey( UnidadeFederativa, on_delete=models.PROTECT, - verbose_name=_(u'UF') + verbose_name=_('UF') ) # verdadeiro se o município é capital do estado - is_capital = models.BooleanField(_(u'capital'), default=False) - populacao = models.PositiveIntegerField(_(u'população')) + is_capital = models.BooleanField(_('capital'), default=False) + populacao = models.PositiveIntegerField(_('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(_('pólo'), default=False) + data_criacao = models.DateField(_('data de criação do município'), null=True, blank=True) # posição geográfica do município latitude = models.DecimalField( @@ -136,28 +136,28 @@ class Municipio(models.Model): decimal_places=8, null=True, blank=True, - help_text=_(u'Exemplo') + ': -20,464.' + help_text=_('Exemplo') + ': -20,464.' ) longitude = models.DecimalField( max_digits=11, decimal_places=8, null=True, blank=True, - help_text=_(u'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(_('IDH'), help_text=_('Í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(_('PIB total'), max_digits=18, decimal_places=3, blank=True, null=True) + pib_percapita = models.DecimalField(_('PIB per capita'), max_digits=18, decimal_places=3, blank=True, null=True) + pib_ano = models.IntegerField(_('Ano de apuração do PIB'), blank=True, null=True) class Meta: ordering = ('nome', 'codigo_ibge') - verbose_name = _(u'município') - verbose_name_plural = _(u'municípios') + verbose_name = _('município') + verbose_name_plural = _('municípios') def __unicode__(self): return "%s - %s" % (self.nome, self.uf) @@ -172,15 +172,15 @@ class Telefone(models.Model): """ Modelo genérico para agrupar telefones dos modulos do sistema """ TELEFONE_CHOICES = ( - ('F', _(u'Fixo')), - ('M', _(u'Móvel')), - ('X', _(u'Fax')), - ('I', _(u'Indefinido')), + ('F', _('Fixo')), + ('M', _('Móvel')), + ('X', _('Fax')), + ('I', _('Indefinido')), ) numero = models.CharField( - _(u'número'), + _('número'), max_length=64, # TODO: diminuir tamanho de campo após migração de dados - help_text=_(u'Exemplo') + ': (31)8851-9898.', + help_text=_('Exemplo') + ': (31)8851-9898.', ) tipo = models.CharField( max_length=1, @@ -188,7 +188,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(_('Ú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, on_delete=models.CASCADE) @@ -212,17 +212,17 @@ class Contato(models.Model): """ Modelo generico para registrar contatos vinculados aos modulos do sistema """ - nome = models.CharField(_(u'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(_(u'e-mail'), blank=True) + email = models.EmailField(_('e-mail'), blank=True) telefones = GenericRelation(Telefone) municipio = models.ForeignKey( Municipio, on_delete=models.SET_NULL, - verbose_name=_(u'município'), + verbose_name=_('município'), blank=True, null=True, ) @@ -238,8 +238,8 @@ class Contato(models.Model): class Meta: ordering = ('nome',) - verbose_name = _(u'contato Interlegis') - verbose_name_plural = _(u'contatos Interlegis') + verbose_name = _('contato Interlegis') + verbose_name_plural = _('contatos Interlegis') def __unicode__(self): return self.nome @@ -247,51 +247,51 @@ class Contato(models.Model): class Endereco(models.Model): TIPO_CHOICES = ( - ('aeroporto', _(u'Aeroporto')), - ('alameda', _(u'Alameda')), - ('area', _(u'Área')), - ('avenida', _(u'Avenida')), - ('campo', _(u'Campo')), - ('chacara', _(u'Chácara')), - ('colonia', _(u'Colônia')), - ('condominio', _(u'Condomínio')), - ('conjunto', _(u'Conjunto')), - ('distrito', _(u'Distrito')), - ('esplanada', _(u'Esplanada')), - ('estacao', _(u'Estação')), - ('estrada', _(u'Estrada')), - ('favela', _(u'Favela')), - ('fazenda', _(u'Fazenda')), - ('feira', _(u'Feira')), - ('jardim', _(u'Jardim')), - ('ladeira', _(u'Ladeira')), - ('lago', _(u'Lago')), - ('lagoa', _(u'Lagoa')), - ('largo', _(u'Largo')), - ('loteamento', _(u'Loteamento')), - ('morro', _(u'Morro')), - ('nucleo', _(u'Núcleo')), - ('parque', _(u'Parque')), - ('passarela', _(u'Passarela')), - ('patio', _(u'Pátio')), - ('praca', _(u'Praça')), - ('quadra', _(u'Quadra')), - ('recanto', _(u'Recanto')), - ('residencial', _(u'Residencial')), - ('rodovia', _(u'Rodovia')), - ('rua', _(u'Rua')), - ('setor', _(u'Setor')), - ('sitio', _(u'Sítio')), - ('travessa', _(u'Travessa')), - ('trecho', _(u'Trecho')), - ('trevo', _(u'Trevo')), - ('vale', _(u'Vale')), - ('vereda', _(u'Vereda')), - ('via', _(u'Via')), - ('viaduto', _(u'Viaduto')), - ('viela', _(u'Viela')), - ('vila', _(u'Vila')), - ('outro', _(u'Outro')), + ('aeroporto', _('Aeroporto')), + ('alameda', _('Alameda')), + ('area', _('Área')), + ('avenida', _('Avenida')), + ('campo', _('Campo')), + ('chacara', _('Chácara')), + ('colonia', _('Colônia')), + ('condominio', _('Condomínio')), + ('conjunto', _('Conjunto')), + ('distrito', _('Distrito')), + ('esplanada', _('Esplanada')), + ('estacao', _('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', _('Núcleo')), + ('parque', _('Parque')), + ('passarela', _('Passarela')), + ('patio', _('Pátio')), + ('praca', _('Praça')), + ('quadra', _('Quadra')), + ('recanto', _('Recanto')), + ('residencial', _('Residencial')), + ('rodovia', _('Rodovia')), + ('rua', _('Rua')), + ('setor', _('Setor')), + ('sitio', _('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 @@ -307,17 +307,17 @@ class Endereco(models.Model): bairro = models.CharField(max_length=100, blank=True) cep = models.CharField( - _(u'CEP'), + _('CEP'), max_length=9, blank=True, null=True, - help_text=_(u"Formato") + ": XXXXX-XXX." + help_text=_("Formato") + ": XXXXX-XXX." ) municipio = models.ForeignKey( Municipio, on_delete=models.SET_NULL, - verbose_name=_(u'município'), + verbose_name=_('município'), blank=True, null=True, ) @@ -334,8 +334,8 @@ class Endereco(models.Model): class Meta: ordering = ('logradouro', 'numero') - verbose_name = _(u'endereço') - verbose_name_plural = _(u'endereços') + verbose_name = _('endereço') + verbose_name_plural = _('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 38b0a51..6a9dc1e 100644 --- a/sigi/apps/convenios/admin.py +++ b/sigi/apps/convenios/admin.py @@ -51,17 +51,17 @@ class ConvenioAdmin(BaseModelAdmin): {'fields': ('casa_legislativa', 'num_processo_sf', 'num_convenio', 'projeto', 'data_sigi',)} ), - (_(u"Acompanhamento no gabinete"), + (_("Acompanhamento no gabinete"), {'fields': ('data_solicitacao', 'data_sigad', 'observacao',)} ), - (_(u"Gestão do convênio"), + (_("Gestão do convênio"), {'fields': ('servico_gestao', 'servidor_gestao',)} ), - (_(u'Datas'), + (_('Datas'), {'fields': ('data_retorno_assinatura', 'data_termino_vigencia', 'data_pub_diario',)} ), - (_(u'Gescon'), + (_('Gescon'), {'fields': ('atualizacao_gescon', 'observacao_gescon', 'link_gescon')} ), ) @@ -86,7 +86,7 @@ class ConvenioAdmin(BaseModelAdmin): def get_uf(self, obj): return obj.casa_legislativa.municipio.uf.sigla - get_uf.short_description = _(u'UF') + get_uf.short_description = _('UF') get_uf.admin_order_field = 'casa_legislativa__municipio__uf__sigla' def status_convenio(self, obj): @@ -94,17 +94,17 @@ class ConvenioAdmin(BaseModelAdmin): return "" status = obj.get_status() - if status in [u"Vencido", u"Desistência", u"Cancelado"]: + if status in ["Vencido", "Desistência", "Cancelado"]: label = r"danger" - elif status == u"Vigente": + elif status == "Vigente": label = r"success" - elif status == u"Pendente": + elif status == "Pendente": label = r"warning" else: label = r"info" - return u'

{status}

'.format(label=label, status=status) - status_convenio.short_description = _(u"Status do convênio") + return '

{status}

'.format(label=label, status=status) + status_convenio.short_description = _("Status do convênio") status_convenio.allow_tags = True def link_sigad(self, obj): @@ -117,11 +117,11 @@ class ConvenioAdmin(BaseModelAdmin): def link_gescon(self, obj): if not obj.id_contrato_gescon: - return u"" + return "" return ( - u"https://adm.senado.gov.br/" - u"gestao-contratos/api/{id}").format(id=obj.id_contrato_gescon) + "https://adm.senado.gov.br/" + "gestao-contratos/api/{id}").format(id=obj.id_contrato_gescon) link_gescon.short_description = _("Download MINUTA ASSINADA do Gescon") link_gescon.allow_tags = True @@ -149,7 +149,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 = _('Exportar convênios selecionados para PDF') def adicionar_convenios(self, request, queryset): if 'carrinho_convenios' in request.session: @@ -160,11 +160,11 @@ class ConvenioAdmin(BaseModelAdmin): q2 = len(request.session['carrinho_convenios']) quant = q2 - q1 if quant: - self.message_user(request, str(q2 - q1) + _(u" Convênios adicionados no carrinho")) + self.message_user(request, str(q2 - q1) + _(" Convênios adicionados no carrinho")) else: - self.message_user(request, _(u"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 = _("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 460016d..f55f798 100644 --- a/sigi/apps/convenios/models.py +++ b/sigi/apps/convenios/models.py @@ -26,12 +26,12 @@ class Projeto(models.Model): class StatusConvenio(models.Model): nome = models.CharField(max_length=100) - cancela = models.BooleanField(_(u"Cancela o convênio"), default=False) + cancela = models.BooleanField(_("Cancela o convênio"), default=False) class Meta: ordering = ('nome',) - verbose_name = _(u"Estado de convenios") - verbose_name_plural = _(u"Estados de convenios") + verbose_name = _("Estado de convenios") + verbose_name_plural = _("Estados de convenios") def __unicode__(self): return self.nome @@ -41,8 +41,8 @@ class TipoSolicitacao(models.Model): class Meta: ordering = ('nome',) - verbose_name = _(u"tipo de solicitação") - verbose_name_plural = _(u"Tipos de solicitação") + verbose_name = _("tipo de solicitação") + verbose_name_plural = _("Tipos de solicitação") def __unicode__(self): return self.nome @@ -51,47 +51,47 @@ class Convenio(models.Model): casa_legislativa = models.ForeignKey( 'casas.Orgao', on_delete=models.PROTECT, - verbose_name=_(u'órgão conveniado') + verbose_name=_('órgão conveniado') ) # campo de busca em caixa baixa e sem acentos projeto = models.ForeignKey( Projeto, on_delete=models.PROTECT, - verbose_name=_(u'Tipo de Convenio') + verbose_name=_('Tipo de Convenio') ) # numero designado pelo Senado Federal para o convênio num_processo_sf = models.CharField( - _(u'número do processo SF (Senado Federal)'), + _('número do processo SF (Senado Federal)'), max_length=20, blank=True, - help_text=_(u'Formatos:
Antigo: XXXXXX/XX-X.
SIGAD: XXXXX.XXXXXX/XXXX-XX') + help_text=_('Formatos:
Antigo: XXXXXX/XX-X.
SIGAD: XXXXX.XXXXXX/XXXX-XX') ) # link_processo_stf = ('get_sigad_url') num_convenio = models.CharField( - _(u'número do convênio'), + _('número do convênio'), max_length=10, blank=True ) id_contrato_gescon = models.CharField( - _(u"ID do contrato no Gescon"), + _("ID do contrato no Gescon"), max_length=20, blank=True, default="", editable=False ) data_sigi = models.DateField( - _(u"data de cadastro no SIGI"), + _("data de cadastro no SIGI"), blank=True, null=True, auto_now_add=True ) data_sigad = models.DateField( - _(u"data de cadastro no SIGAD"), + _("data de cadastro no SIGAD"), null=True, blank=True ) data_solicitacao = models.DateField( - _(u"data do e-mail de solicitação"), + _("data do e-mail de solicitação"), null=True, blank=True ) @@ -100,12 +100,12 @@ class Convenio(models.Model): on_delete=models.PROTECT, null=True, blank=True, - verbose_name=_(u"tipo de solicitação") + verbose_name=_("tipo de solicitação") ) status = models.ForeignKey( StatusConvenio, on_delete=models.SET_NULL, - verbose_name=_(u"estado atual"), + verbose_name=_("estado atual"), null=True, blank=True ) @@ -113,12 +113,12 @@ class Convenio(models.Model): Servidor, on_delete=models.SET_NULL, related_name='convenios_acompanhados', - verbose_name=_(u"acompanhado por"), + verbose_name=_("acompanhado por"), null=True, blank=True ) observacao = models.TextField( - _(u"observações"), + _("observações"), null=True, blank=True, ) @@ -128,97 +128,97 @@ class Convenio(models.Model): null=True, blank=True, related_name='convenios_geridos', - verbose_name=_(u"serviço de gestão") + verbose_name=_("serviço de gestão") ) servidor_gestao = models.ForeignKey( Servidor, on_delete=models.SET_NULL, null=True, blank=True, - verbose_name=_(u"servidor de gestão") + verbose_name=_("servidor de gestão") ) data_adesao = models.DateField( - _(u'aderidas'), + _('aderidas'), null=True, blank=True, ) data_retorno_assinatura = models.DateField( - _(u'data início vigência'), + _('data início vigência'), null=True, blank=True, - help_text=_(u'Convênio firmado.') + help_text=_('Convênio firmado.') ) data_termino_vigencia = models.DateField( - _(u'Data término vigência'), + _('Data término vigência'), null=True, blank=True, - help_text=_(u'Término da vigência do convênio.') + help_text=_('Término da vigência do convênio.') ) data_pub_diario = models.DateField( - _(u'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( - _(u'equipadas'), + _('equipadas'), null=True, blank=True, - help_text=_(u'Equipamentos recebidos.') + help_text=_('Equipamentos recebidos.') ) data_devolucao_via = models.DateField( - _(u'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=_('Data de devolução da via do convênio à Câmara Municipal.') ) data_postagem_correio = models.DateField( - _(u'data postagem correio'), + _('data postagem correio'), null=True, blank=True, ) data_devolucao_sem_assinatura = models.DateField( - _(u'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=_('Data de devolução por falta de assinatura'), ) data_retorno_sem_assinatura = models.DateField( - _(u'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=_('Data do retorno do convênio sem assinatura'), ) conveniada = models.BooleanField(default=False) equipada = models.BooleanField(default=False) atualizacao_gescon = models.DateTimeField( - _(u"Data de atualização pelo Gescon"), + _("Data de atualização pelo Gescon"), blank=True, null=True ) observacao_gescon = models.TextField( - _(u"Observações da atualização do Gescon"), + _("Observações da atualização do Gescon"), blank=True ) def get_status(self): if self.status and self.status.cancela: - return _(u"Cancelado") + return _("Cancelado") if self.data_retorno_assinatura is not None: if self.data_termino_vigencia is not None: if date.today() >= self.data_termino_vigencia: - return _(u"Vencido") - return _(u"Vigente") + return _("Vencido") + return _("Vigente") if (self.data_retorno_assinatura is None and self.data_devolucao_sem_assinatura is None and self.data_retorno_sem_assinatura is None): - return _(u"Pendente") + return _("Pendente") if (self.data_devolucao_sem_assinatura is not None or self.data_retorno_sem_assinatura is not None): - return _(u"Desistência") + return _("Desistência") - return _(u"Indefinido") + return _("Indefinido") def link_sigad(self, obj): if obj.pk is None: @@ -250,43 +250,43 @@ class Convenio(models.Model): class Meta: get_latest_by = 'id' ordering = ('id',) - verbose_name = _(u'convênio') + verbose_name = _('convênio') def __unicode__(self): # if self.data_retorno_assinatura is not None: - # return _(u"Convênio {project} nº {number} assinado em {date}. Status: {status}".format( + # return _("Convênio {project} nº {number} assinado em {date}. Status: {status}".format( # number=self.num_convenio, # project=self.projeto.sigla, # date=self.data_retorno_assinatura, # status=self.get_status())) # else: - # return _(u"Adesão ao projeto %(project)s, em %(date)s") % dict( + # return _("Adesão ao projeto %(project)s, em %(date)s") % dict( # project=self.projeto.sigla, # date=self.data_adesao) if ((self.data_retorno_assinatura is None) and (self.equipada and self.data_termo_aceite is not None)): - return _(u"{project} nº {number} - equipada em {date}" + return _("{project} nº {number} - equipada em {date}" ).format(number=self.num_convenio, date=self.data_termo_aceite.strftime('%d/%m/%Y'), project=self.projeto.sigla) elif self.data_retorno_assinatura is None: - return _(u"{project}, nº {number}, início " - u"em {date}").format(number=self.num_convenio, + return _("{project}, nº {number}, início " + "em {date}").format(number=self.num_convenio, project=self.projeto.sigla, date=self.data_adesao) if ((self.data_retorno_assinatura is not None) and not (self.equipada and self.data_termo_aceite is not None)): - return _(u"{project}, nº {number}, inicio em " - u"{date}. Status: {status}").format( + return _("{project}, nº {number}, inicio em " + "{date}. Status: {status}").format( number=self.num_convenio, project=self.projeto.sigla, date=self.data_retorno_assinatura.strftime('%d/%m/%Y'), status=self.get_status()) if ((self.data_retorno_assinatura is not None) and (self.equipada and self.data_termo_aceite is not None)): - return _(u"{project}, nº {number}, início em {date}" - u" e equipada em {equipped_date}. Status: {status}" + return _("{project}, nº {number}, início em {date}" + " e equipada em {equipped_date}. Status: {status}" ).format(number=self.num_convenio, project=self.projeto.sigla, date=self.data_retorno_assinatura.strftime( @@ -304,7 +304,7 @@ class EquipamentoPrevisto(models.Model): convenio = models.ForeignKey( Convenio, on_delete=models.CASCADE, - verbose_name=_(u'convênio') + verbose_name=_('convênio') ) equipamento = models.ForeignKey( 'inventario.Equipamento', @@ -313,11 +313,11 @@ class EquipamentoPrevisto(models.Model): quantidade = models.PositiveSmallIntegerField(default=1) class Meta: - verbose_name = _(u'equipamento previsto') - verbose_name_plural = _(u'equipamentos previstos') + verbose_name = _('equipamento previsto') + verbose_name_plural = _('equipamentos previstos') def __unicode__(self): - return u'%s %s(s)' % (self.quantidade, self.equipamento) + return '%s %s(s)' % (self.quantidade, self.equipamento) class Anexo(models.Model): @@ -328,13 +328,13 @@ class Anexo(models.Model): convenio = models.ForeignKey( Convenio, on_delete=models.CASCADE, - verbose_name=_(u'convênio') + verbose_name=_('convênio') ) # caminho no sistema para o documento anexo arquivo = models.FileField(upload_to='apps/convenios/anexo/arquivo', max_length=500) - descricao = models.CharField(_(u'descrição'), max_length='70') + descricao = models.CharField(_('descrição'), max_length='70') data_pub = models.DateTimeField( - _(u'data da publicação do anexo'), + _('data da publicação do anexo'), default=datetime.now ) @@ -366,74 +366,74 @@ class Tramitacao(models.Model): convenio = models.ForeignKey( Convenio, on_delete=models.CASCADE, - verbose_name=_(u'convênio') + verbose_name=_('convênio') ) unid_admin = models.ForeignKey( UnidadeAdministrativa, on_delete=models.PROTECT, - verbose_name=_(u'Unidade Administrativa') + verbose_name=_('Unidade Administrativa') ) data = models.DateField() observacao = models.CharField( - _(u'observação'), + _('observação'), max_length='512', null=True, blank=True, ) class Meta: - verbose_name_plural = _(u'Tramitações') + verbose_name_plural = _('Tramitações') def __unicode__(self): - in_date = _(u"em %(date)s") % dict(date=self.data) # for focused translation - result = u"%s %s" % (self.unid_admin, in_date) + in_date = _("em %(date)s") % dict(date=self.data) # for focused translation + result = "%s %s" % (self.unid_admin, in_date) if self.observacao: - result = result + u" (%s)" % (self.observacao) + result = result + " (%s)" % (self.observacao) return unicode(result) # XXX is this unicode(...) really necessary??? class Gescon(models.Model): url_gescon = models.URLField( - _(u"Webservice Gescon"), - default=(u"https://adm.senado.gov.br/gestao-contratos/api/contratos" - u"/busca?especie={s}"), - help_text=_(u"Informe o ponto de consulta do webservice do Gescon, " - u"inclusive com a querystring. No ponto onde deve ser " - u"inserida a sigla da subespecie do contrato, use a " - u"marcação {s}.
Por exemplo: " - u"https://adm.senado.gov.br/gestao-contratos/api/contratos" - u"/busca?especie={s}") + _("Webservice Gescon"), + default=("https://adm.senado.gov.br/gestao-contratos/api/contratos" + "/busca?especie={s}"), + help_text=_("Informe o ponto de consulta do webservice do Gescon, " + "inclusive com a querystring. No ponto onde deve ser " + "inserida a sigla da subespecie do contrato, use a " + "marcação {s}.
Por exemplo: " + "https://adm.senado.gov.br/gestao-contratos/api/contratos" + "/busca?especie={s}") ) subespecies = models.TextField( - _(u"Subespécies"), - default=u"AC=ACT\nPI=PI\nCN=PML\nTA=PML", - help_text=_(u"Informe as siglas das subespécies de contratos que " - u"devem ser pesquisados no Gescon com a sigla " - u"correspondente do projeto no SIGI. Coloque um par de " - u"siglas por linha, no formato SIGLA_GESTON=SIGLA_SIGI. " - u"As siglas não encontradas serão ignoradas.") + _("Subespécies"), + default="AC=ACT\nPI=PI\nCN=PML\nTA=PML", + help_text=_("Informe as siglas das subespécies de contratos que " + "devem ser pesquisados no Gescon com a sigla " + "correspondente do projeto no SIGI. Coloque um par de " + "siglas por linha, no formato SIGLA_GESTON=SIGLA_SIGI. " + "As siglas não encontradas serão ignoradas.") ) palavras = models.TextField( - _(u"Palavras de filtro"), - default=u"ILB\nINTERLEGIS", - help_text=_(u"Palavras que devem aparecer no campo OBJETO dos dados do " - u"Gescon para identificar se o contrato pertence ao ILB. " - u"") + _("Palavras de filtro"), + default="ILB\nINTERLEGIS", + help_text=_("Palavras que devem aparecer no campo OBJETO dos dados do " + "Gescon para identificar se o contrato pertence ao ILB. " + "") ) email = models.EmailField( - _(u"E-mail"), - help_text=_(u"Caixa de e-mail para onde o relatório diário de " - u"importação será enviado.") + _("E-mail"), + help_text=_("Caixa de e-mail para onde o relatório diário de " + "importação será enviado.") ) ultima_importacao = models.TextField( - _(u"Resultado da última importação"), + _("Resultado da última importação"), blank=True ) class Meta: - verbose_name = _(u"Configuração do Gescon") - verbose_name_plural = _(u"Configurações do Gescon") + verbose_name = _("Configuração do Gescon") + verbose_name_plural = _("Configurações do Gescon") def __unicode__(self): return self.url_gescon @@ -454,43 +454,43 @@ class Gescon(models.Model): def email_report(self): if self.email: send_mail( - subject=_(u"Relatório de importação GESCON"), + subject=_("Relatório de importação GESCON"), message=self.ultima_importacao, recipient_list=self.email, fail_silently=True ) else: self.ultima_importacao += _( - u"\n\n*Não foi definida uma caixa de e-mail nas configurações " - u"do Gescon*" + "\n\n*Não foi definida uma caixa de e-mail nas configurações " + "do Gescon*" ) self.save() def importa_contratos(self): self.ultima_importacao = "" self.add_message( - _(u"Importação iniciada em {:%d/%m/%Y %H:%M:%S}\n" - u"==========================================\n").format( + _("Importação iniciada em {:%d/%m/%Y %H:%M:%S}\n" + "==========================================\n").format( datetime.now() ) ) if self.palavras == "": - self.add_message(_(u"Nenhuma palavra de pesquisa definida - " - u"processo abortado."), True) + self.add_message(_("Nenhuma palavra de pesquisa definida - " + "processo abortado."), True) return if self.subespecies == "": - self.add_message(_(u"Nenhuma subespécie definida - processo " - u"abortado."), True) + self.add_message(_("Nenhuma subespécie definida - processo " + "abortado."), True) return if "{s}" not in self.url_gescon: self.add_message( _( - u"Falta a marcação {s} na URL para indicar o local onde " - u"inserir a sigla da subespécia na consulta ao webservice " - u"- processo abortado." + "Falta a marcação {s} na URL para indicar o local onde " + "inserir a sigla da subespécia na consulta ao webservice " + "- processo abortado." ), True ) @@ -500,7 +500,7 @@ class Gescon(models.Model): subespecies = {tuple(s.split("=")) for s in self.subespecies.split()} for sigla_gescon, sigla_sigi in subespecies: - self.add_message(_(u"\nImportando subespécie {s}".format( + self.add_message(_("\nImportando subespécie {s}".format( s=sigla_gescon))) url = self.url_gescon.format(s=sigla_gescon) @@ -510,7 +510,7 @@ class Gescon(models.Model): response = requests.get(url, verify=False) except Exception as e: self.add_message( - _(u"\tErro ao acessar {url}: {errmsg}").format( + _("\tErro ao acessar {url}: {errmsg}").format( url=url, errmsg=e.message.decode("utf8") ) @@ -519,7 +519,7 @@ class Gescon(models.Model): if not response.ok: self.add_message( - _(u"\tErro ao acessar {url}: {reason}").format( + _("\tErro ao acessar {url}: {reason}").format( url=url, reason=response.reason ) @@ -527,8 +527,8 @@ class Gescon(models.Model): continue if not 'application/json' in response.headers.get('Content-Type'): - self.add_message(_(u"\tResultado da consulta à {url} não " - u"retornou dados em formato json").format( + self.add_message(_("\tResultado da consulta à {url} não " + "retornou dados em formato json").format( url=url ) ) @@ -542,7 +542,7 @@ class Gescon(models.Model): if any(palavra in c['objeto'] for palavra in palavras)] self.add_message( - _(u"\t{count} contratos encontrados no Gescon").format( + _("\t{count} contratos encontrados no Gescon").format( count=len(nossos) ) ) @@ -570,7 +570,7 @@ class Gescon(models.Model): if contrato['nomeFornecedor']: nome = contrato['nomeFornecedor'] - nome = nome.replace(u'VEREADORES DE', '') + nome = nome.replace('VEREADORES DE', '') nome = nome.split('-')[0] nome = nome.split('/')[0] nome = nome.strip() @@ -581,8 +581,8 @@ class Gescon(models.Model): if (cnpj is None) and (nome is None): self.add_message( - _(u"\tO contrato {numero} no Gescon não informa o CNPJ " - u"nem o nome do órgão.").format(numero=numero) + _("\tO contrato {numero} no Gescon não informa o CNPJ " + "nem o nome do órgão.").format(numero=numero) ) erros += 1 continue @@ -609,10 +609,10 @@ class Gescon(models.Model): if orgao is None: self.add_message( - _(u"\tÓrgão não encontrado no SIGI ou mais de um órgão" - u"encontrado com o mesmo CNPJ ou nome. Favor " - u"regularizar o cadastro: CNPJ: {cnpj}, " - u"Nome: {nome}".format( + _("\tÓrgão não encontrado no SIGI ou mais de um órgão" + "encontrado com o mesmo CNPJ ou nome. Favor " + "regularizar o cadastro: CNPJ: {cnpj}, " + "Nome: {nome}".format( cnpj=contrato['cnpjCpfFornecedor'], nome=contrato['nomeFornecedor'] ) @@ -656,8 +656,8 @@ class Gescon(models.Model): data_termino_vigencia=contrato['terminoVigencia'], data_pub_diario=contrato['publicacao'], atualizacao_gescon=datetime.now(), - observacao_gescon=_(u"Importado integralmente do" - u"Gescon") + observacao_gescon=_("Importado integralmente do" + "Gescon") ) convenio.save() novos += 1 @@ -668,8 +668,8 @@ class Gescon(models.Model): convenio.observacao_gescon = '' if convenio.casa_legislativa != orgao: self.add_message( - _(u"\tO órgao no convênio {url} diverge do que " - u"consta no Gescon ({cnpj}, {nome})").format( + _("\tO órgao no convênio {url} diverge do que " + "consta no Gescon ({cnpj}, {nome})").format( url=reverse('admin:%s_%s_change' % ( convenio._meta.app_label, convenio._meta.model_name), @@ -679,7 +679,7 @@ class Gescon(models.Model): ) ) convenio.observacao_gescon = _( - u'ERRO: Órgão diverge do Gescon. Não atualizado!' + 'ERRO: Órgão diverge do Gescon. Não atualizado!' ) convenio.save() erros += 1 @@ -687,10 +687,10 @@ class Gescon(models.Model): if convenio.num_processo_sf != sigad: self.add_message( - _(u"\tO contrato Gescon nº {numero} corresponde" - u" ao convênio SIGI {url}, mas o NUP sigad " - u"diverge (Gescon: {sigad_gescon}, " - u"SIGI: {sigad_sigi}). CORRIGIDO!").format( + _("\tO contrato Gescon nº {numero} corresponde" + " ao convênio SIGI {url}, mas o NUP sigad " + "diverge (Gescon: {sigad_gescon}, " + "SIGI: {sigad_sigi}). CORRIGIDO!").format( numero=numero, url=reverse('admin:%s_%s_change' % ( convenio._meta.app_label, @@ -702,16 +702,16 @@ class Gescon(models.Model): ) convenio.num_processo_sf = sigad convenio.observacao_gescon += _( - u"Número do SIGAD atualizado.\n" + "Número do SIGAD atualizado.\n" ) alertas += 1 if convenio.num_convenio != numero: self.add_message( - _(u"\tO contrato Gescon ID {id} corresponde ao " - u"convênio SIGI {url}, mas o número do convênio" - u" diverge (Gescon: {numero_gescon}, SIGI: " - u"{numero_sigi}). CORRIGIDO!").format( + _("\tO contrato Gescon ID {id} corresponde ao " + "convênio SIGI {url}, mas o número do convênio" + " diverge (Gescon: {numero_gescon}, SIGI: " + "{numero_sigi}). CORRIGIDO!").format( id=contrato['id'], url=reverse('admin:%s_%s_change' % ( convenio._meta.app_label, @@ -724,14 +724,14 @@ class Gescon(models.Model): ) convenio.num_convenio = numero convenio.observacao_gescon += _( - u"Número do convênio atualizado.\n" + "Número do convênio atualizado.\n" ) alertas += 1 if contrato['objeto'] not in convenio.observacao: convenio.observacao += "\n" + contrato['objeto'] convenio.observacao_gescon += _( - u"Observação atualizada.\n" + "Observação atualizada.\n" ) convenio.data_sigad = contrato['assinatura'] @@ -753,10 +753,10 @@ class Gescon(models.Model): convenio.save() except Exception as e: self.add_message( - _(u"Ocorreu um erro ao salvar o convênio {url} no " - u"SIGI. Alguma informação do Gescon pode ter " - u"quebrado o sistema. Informe ao suporte. Erro:" - u"{errmsg}").format( + _("Ocorreu um erro ao salvar o convênio {url} no " + "SIGI. Alguma informação do Gescon pode ter " + "quebrado o sistema. Informe ao suporte. Erro:" + "{errmsg}").format( url=reverse('admin:%s_%s_change' % ( convenio._meta.app_label, convenio._meta.model_name), @@ -770,10 +770,10 @@ class Gescon(models.Model): atualizados += 1 else: - self.add_message(_(u"\tExistem {count} convênios no SIGI " - u"que correspondem ao mesmo contrato no " - u"Gescon (contrato {numero}, sigad " - u"{sigad})").format( + self.add_message(_("\tExistem {count} convênios no SIGI " + "que correspondem ao mesmo contrato no " + "Gescon (contrato {numero}, sigad " + "{sigad})").format( count=chk, numero=numero, sigad=sigad @@ -783,9 +783,9 @@ class Gescon(models.Model): continue self.add_message( - _(u"\t{novos} novos convenios adicionados ao SIGI, " - u"{atualizados} atualizados, sendo {alertas} com alertas, e " - u"{erros} reportados com erro.").format( + _("\t{novos} novos convenios adicionados ao SIGI, " + "{atualizados} atualizados, sendo {alertas} com alertas, e " + "{erros} reportados com erro.").format( novos=novos, atualizados=atualizados, alertas=alertas, diff --git a/sigi/apps/convenios/reports.py b/sigi/apps/convenios/reports.py index 2f5454c..5c90551 100644 --- a/sigi/apps/convenios/reports.py +++ b/sigi/apps/convenios/reports.py @@ -26,7 +26,7 @@ class SemEquipamentosReport(object): class ConvenioReport(ReportDefault): - title = _(u'Relatório de Parcerias') + title = _('Relatório de Parcerias') class band_page_header(ReportDefault.band_page_header): @@ -37,41 +37,41 @@ class ConvenioReport(ReportDefault): elements += [ Label( - text=_(u"UF"), + text=_("UF"), left=label_left[0] * cm, top=label_top + 0.4 * cm, ), Label( - text=_(u"Municipio"), + text=_("Municipio"), left=label_left[1] * cm, top=label_top + 0.4 * cm, ), Label( - text=_(u"Número do Convênio"), + text=_("Número do Convênio"), left=label_left[2] * cm, top=label_top, width=2 * cm, ), Label( - text=_(u"Projeto"), + text=_("Projeto"), left=label_left[3] * cm, top=label_top + 0.4 * cm, width=2 * cm, ), Label( - text=_(u"Data do Convênio"), + text=_("Data do Convênio"), left=label_left[4] * cm, top=label_top, width=2 * cm, ), Label( - text=_(u"Data de Publicação"), + text=_("Data de Publicação"), left=label_left[5] * cm, top=label_top, width=2 * cm, ), Label( - text=_(u"Orgão"), + text=_("Orgão"), left=label_left[6] * cm, top=label_top + 0.4 * cm, width=2 * cm, @@ -126,7 +126,7 @@ class ConvenioReport(ReportDefault): # height=0.7 * cm, # elements=[ # ObjectValue(attribute_name='casa_legislativa.municipio.uf', - # get_Value=lambda instance: '%s: %s' % (_(u'Casa Legislativa'), instance.casa_legislativa.uf) + # get_Value=lambda instance: '%s: %s' % (_('Casa Legislativa'), instance.casa_legislativa.uf) # ) # ], # borders={'top': True}, @@ -146,35 +146,35 @@ class ConvenioReportSemAceite(ConvenioReport): elements += [ Label( - text=_(u"UF"), + text=_("UF"), left=label_left[0] * cm, top=label_top + 0.4 * cm, ), Label( - text=_(u"Município"), + text=_("Município"), left=label_left[1] * cm, top=label_top + 0.4 * cm, ), Label( - text=_(u"Número do Convênio"), + text=_("Número do Convênio"), left=label_left[2] * cm, top=label_top, width=2 * cm, ), Label( - text=_(u"Projeto"), + text=_("Projeto"), left=label_left[3] * cm, top=label_top, width=2 * cm, ), Label( - text=_(u"Data do Convênio"), + text=_("Data do Convênio"), left=label_left[4] * cm, top=label_top, width=2 * cm, ), Label( - text=_(u"Orgão"), + text=_("Orgão"), left=label_left[5] * cm, top=label_top + 0.4 * cm, width=2 * cm, @@ -219,7 +219,7 @@ float_duas_casas = lambda instance: '%.2f' % (instance) class ConvenioReportRegiao(ReportDefault): - title = _(u'Relatório de Parcerias por Região') + title = _('Relatório de Parcerias por Região') class band_page_header(ReportDefault.band_page_header): label_top = ReportDefault.band_page_header.label_top @@ -229,11 +229,11 @@ class ConvenioReportRegiao(ReportDefault): elements = list(ReportDefault.band_page_header.elements) elements += [ - Label(text=_(u"UF"), left=label_left[0] * cm, top=label_top,), - Label(text=_(u"Total"), left=label_left[1] * cm, top=label_top,), - Label(text=_(u"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=_(u"Ñ 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), ] @@ -255,7 +255,7 @@ class ConvenioReportRegiao(ReportDefault): class band_summary(ReportBand): label_left = [0.5, 6, 8, 10, 12, 14] elements = [ - Label(text=_(u"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, @@ -270,16 +270,16 @@ class ConvenioReportRegiao(ReportDefault): class ConvenioPorCMReport(ConvenioReport): - title = _(u'Relatório de Parcerias por Câmara Municipal') + title = _('Relatório de Parcerias por Câmara Municipal') class ConvenioPorALReport(ConvenioReport): - title = _(u'Relatório de Parcerias por Assembléia Legislativa') + title = _('Relatório de Parcerias por Assembléia Legislativa') class ConvenioReportSemAceiteCM(ConvenioReportSemAceite): - title = _(u'Relatório de Parcerias por Câmara Municipal') + title = _('Relatório de Parcerias por Câmara Municipal') class ConvenioReportSemAceiteAL(ConvenioReportSemAceite): - title = _(u'Relatório de Parcerias por Assembléia Legislativa') + title = _('Relatório de Parcerias por Assembléia Legislativa') diff --git a/sigi/apps/convenios/views.py b/sigi/apps/convenios/views.py index d08d46a..79b7a3d 100644 --- a/sigi/apps/convenios/views.py +++ b/sigi/apps/convenios/views.py @@ -115,7 +115,7 @@ def adicionar_convenios_carrinho(request, queryset=None, id=None): def excluir_carrinho(request): if 'carrinho_convenios' in request.session: del request.session['carrinho_convenios'] - messages.info(request, u'O carrinho foi esvaziado') + messages.info(request, 'O carrinho foi esvaziado') return HttpResponseRedirect('../../') @login_required @@ -260,12 +260,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') + _('UF'), + _('Câmaras municipais'), + _('Não Aderidas'), + _('Aderidas'), + _('Conveniadas'), + _('Equipadas') ) return { @@ -291,7 +291,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"] = _(u"Geral") + tabela["projeto"] = _("Geral") tabelas.append(tabela) @@ -325,47 +325,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 = [_("No. Processo"), _("No. Convênio"), _("Projeto"), _("Casa Legislativa"), _("Data de Adesão"), _("Data de Convênio"), + _("Data da Publicacao no D.O."), _("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 _("Casa Legislativa") in col_titles: + pos = col_titles.index(_("Casa Legislativa")) + 1 + col_titles.insert(pos, _("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 _("No. Processo") == atributo: lista.append(convenio.num_processo_sf.encode("utf-8")) - elif _(u"No. Convênio") == atributo: + elif _("No. Convênio") == atributo: lista.append(convenio.num_convenio.encode("utf-8")) - elif _(u"Projeto") == atributo: + elif _("Projeto") == atributo: lista.append(convenio.projeto.nome.encode("utf-8")) - elif _(u"Casa Legislativa") == atributo: + elif _("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 _("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 _("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 _("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 _("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 d8e4893..adfca8f 100644 --- a/sigi/apps/diagnosticos/admin.py +++ b/sigi/apps/diagnosticos/admin.py @@ -21,14 +21,14 @@ 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, _(u"Diagnóstico(s) publicado(s) com sucesso!")) -publicar_diagnostico.short_description = _(u""" + self.message_user(request, _("Diagnóstico(s) publicado(s) com sucesso!")) +publicar_diagnostico.short_description = _(""" Definir diagnósticos como publicado""") def despublicar_diagnostico(self, request, queryset): queryset.update(publicado=False) -despublicar_diagnostico.short_description = _(u""" +despublicar_diagnostico.short_description = _(""" Definir diagnósticos como não publicado""") @@ -62,9 +62,9 @@ class DiagnosticoAdmin(BaseEntityAdmin): ordering = ('casa_legislativa',) eav_fieldsets = ( - (u'00. Identificação do Diagnóstico', {'fields': ('responsavel', 'data_visita_inicio', 'data_visita_fim',)}), - (u'01. Identificação da Casa Legislativa', {'fields': ('casa_legislativa',)}), - (u'02. Identificação de Competências da Casa Legislativa', {'fields': ()}) + ('00. Identificação do Diagnóstico', {'fields': ('responsavel', 'data_visita_inicio', 'data_visita_fim',)}), + ('01. Identificação da Casa Legislativa', {'fields': ('casa_legislativa',)}), + ('02. Identificação de Competências da Casa Legislativa', {'fields': ()}) ) # popula o eav fieldsets ordenando as categorias e as perguntas @@ -86,7 +86,7 @@ class DiagnosticoAdmin(BaseEntityAdmin): def get_uf(self, obj): return '%s' % (obj.casa_legislativa.municipio.uf) - get_uf.short_description = _(u'UF') + get_uf.short_description = _('UF') get_uf.admin_order_field = 'casa_legislativa__municipio__uf__nome' def lookup_allowed(self, lookup, value): @@ -128,7 +128,7 @@ class EscolhaInline(admin.TabularInline): model = Escolha fk_name = 'schema' raw_id_fields = ('schema_to_open',) - verbose_name = _(u'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 8668e26..48ed782 100644 --- a/sigi/apps/diagnosticos/forms.py +++ b/sigi/apps/diagnosticos/forms.py @@ -115,7 +115,7 @@ class DiagnosticoMobileForm(BaseDynamicEntityForm): defaults.update({'queryset': schema.get_choices(), 'initial': choice.pk if choice else None, # if schema is required remove --------- from ui - 'empty_label': None if schema.required else u"---------"}) + 'empty_label': None if schema.required else "---------"}) extra = self.FIELD_EXTRA.get(datatype, {}) extra.update(self.FIELD_WIDGET.get(schema.name, {})) @@ -133,7 +133,7 @@ class DiagnosticoMobileForm(BaseDynamicEntityForm): class OrgaoMobileForm(forms.ModelForm): - data_instalacao = forms.DateField(label=_(u'Data de instalação da Casa Legislativa'), required=False) + data_instalacao = forms.DateField(label=_('Data de instalação da Casa Legislativa'), required=False) data_criacao = forms.DateField() class Meta: @@ -143,7 +143,7 @@ class OrgaoMobileForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(OrgaoMobileForm, self).__init__(*args, **kwargs) self.fields['data_criacao'] = forms.DateField( - label=_(u'Data de criação do Município'), + label=_('Data de criação do Município'), initial=self.instance.municipio.data_criacao, required=False) diff --git a/sigi/apps/diagnosticos/management/commands/ls_export.py b/sigi/apps/diagnosticos/management/commands/ls_export.py index 5fe31ea..672579e 100644 --- a/sigi/apps/diagnosticos/management/commands/ls_export.py +++ b/sigi/apps/diagnosticos/management/commands/ls_export.py @@ -16,27 +16,27 @@ DATATYPES = { } class Command(BaseCommand): - help = u"""Exporta dados do diagnóstico para o formato Tab-Separated-Values - do LimeSurvey, conforme documentado em + help = """Exporta dados do diagnóstico para o formato Tab-Separated-Values + do LimeSurvey, conforme documentado em https://manual.limesurvey.org/Tab_Separated_Value_survey_structure""" - + def handle(self, *args, **options): def normalize(l): return [s.encode('utf-8') for s in l] nonum = lambda s: s[s.index(' ')+1:] - avalue = lambda e: ('Y' if e.title == u'Sim' else 'N' - if e.title == u'Não' else e.id) + avalue = lambda e: ('Y' if e.title == 'Sim' else 'N' + if e.title == 'Não' else e.id) setores = [(i+1, s[0], s[1]) for i, s in enumerate( Funcionario.SETOR_CHOICES)] if len(args) < 2: - raise CommandError(u"Use: ls_export survey_id struct.txt data.csv") + raise CommandError("Use: ls_export survey_id struct.txt data.csv") survey_id = args[0] - lsf = csv.writer(open(args[1], 'wb+'), delimiter="\t", + lsf = csv.writer(open(args[1], 'wb+'), delimiter="\t", quoting=csv.QUOTE_MINIMAL) struct = ['id', 'token', 'submitdate', 'lastpage', 'startlanguage', @@ -56,55 +56,55 @@ class Command(BaseCommand): 'pt-BR'], ['', '', 'SL', '', 'surveyls_language', '', 'pt-BR', '', 'pt-BR'], ['', '', 'SL', '', 'surveyls_title', '', - u'Diagnóstico PML'.encode('utf-8'), '', 'pt-BR']]) + 'Diagnóstico PML'.encode('utf-8'), '', 'pt-BR']]) self.stdout.write("Done!") - + # Identificação da Casa Legislativa e sua equipe # self.stdout.write("\tIdentificação da Casa...", ending=" ") - lsf.writerow(normalize(['1000', '', 'G', '', u'Identificação da Casa', + lsf.writerow(normalize(['1000', '', 'G', '', 'Identificação da Casa', '', '', '', 'pt-BR'])) lsf.writerow(normalize(['1001', '', 'Q', 'L', 'c001q001', '1', - u'Região', '', 'pt-BR', '', 'Y', 'N', '', '0'])) + 'Região', '', 'pt-BR', '', 'Y', 'N', '', '0'])) struct.append('c001q001') lsf.writerows([normalize(['1001', '', 'A', '0', sigla, '', nome, '', 'pt-BR']) for sigla, nome in UnidadeFederativa.REGIAO_CHOICES]) lsf.writerow(normalize(['1002', '', 'Q', '!', 'c001q002', '1', - u'Estado (UF)', '', 'pt-BR', '', 'Y', 'N', '', '0'])) + 'Estado (UF)', '', 'pt-BR', '', 'Y', 'N', '', '0'])) struct.append('c001q002') lsf.writerows([normalize(['1002', '', 'A', '0', u.sigla, '', u.nome, '', 'pt-BR']) for u in UnidadeFederativa.objects.all()]) lsf.writerow(normalize(['1003', '', 'Q', 'S', 'c001q003', '1', - u'Município', '', 'pt-BR', '', 'Y', 'N', '', '0'])) + 'Município', '', 'pt-BR', '', 'Y', 'N', '', '0'])) struct.append('c001q003') lsf.writerow(normalize(['1004', '', 'Q', 'D', 'c001q004', '1', - u'Data de criação do município', '', 'pt-BR', '', 'Y', 'N', '', + 'Data de criação do município', '', 'pt-BR', '', 'Y', 'N', '', '0'])) struct.append('c001q004') lsf.writerow(normalize(['1005', '', 'Q', 'S', 'c001q005', '1', - u'Nome da Casa', '', 'pt-BR', '', 'Y', 'N', '', '0'])) + 'Nome da Casa', '', 'pt-BR', '', 'Y', 'N', '', '0'])) struct.append('c001q005') lsf.writerow(normalize(['1006', '', 'Q', 'D', 'c001q006', '1', - u'Data de instalação do legislativo', '', 'pt-BR', '', 'Y', 'N', '', + 'Data de instalação do legislativo', '', 'pt-BR', '', 'Y', 'N', '', '0'])) struct.append('c001q006') lsf.writerow(normalize(['1007', '', 'Q', 'T', 'c001q007', '1', - u'Endereço', '', 'pt-BR', '', 'N', 'N', '', '0'])) + 'Endereço', '', 'pt-BR', '', 'N', 'N', '', '0'])) struct.append('c001q007') lsf.writerow(normalize(['1008', '', 'Q', 'S', 'c001q008', '1', - u'CNPJ', '', 'pt-BR', '', 'N', 'N', '', '0'])) + 'CNPJ', '', 'pt-BR', '', 'N', 'N', '', '0'])) struct.append('c001q008') lsf.writerow(normalize(['1009', '', 'Q', 'S', 'c001q009', '1', - u'E-mail principal', '', 'pt-BR', '', 'N', 'N', '', '0'])) + 'E-mail principal', '', 'pt-BR', '', 'N', 'N', '', '0'])) struct.append('c001q009') lsf.writerow(normalize(['1010', '', 'Q', 'S', 'c001q010', '1', - u'Endereço Web', '', 'pt-BR', '', 'N', 'N', '', '0'])) + 'Endereço Web', '', 'pt-BR', '', 'N', 'N', '', '0'])) struct.append('c001q010') lsf.writerow(normalize(['1011', '', 'Q', ';', 'c001q011', '1', - u'Pessoas de contato', '', 'pt-BR', '', 'N', 'N', '', '0'])) - lsf.writerow(normalize(['101198', '', 'SQ', '1', 'SQ00101', '', u'Nome', + 'Pessoas de contato', '', 'pt-BR', '', 'N', 'N', '', '0'])) + lsf.writerow(normalize(['101198', '', 'SQ', '1', 'SQ00101', '', 'Nome', '', 'pt-BR', '', '', 'N', '', '0'])) lsf.writerow(normalize(['101199', '', 'SQ', '1', 'SQ00102', '', - u'E-mail', '', 'pt-BR', '', '', 'N', '', '0'])) + 'E-mail', '', 'pt-BR', '', '', 'N', '', '0'])) for i, k, v in setores: lsf.writerow(normalize(['10110{0}'.format(i), '', 'SQ', '', 'SQ1010{0}'.format(i), '1', v, '', 'pt-BR', '', '', 'N', @@ -117,25 +117,25 @@ class Command(BaseCommand): self.stdout.write("Done!") # Equipe de diagnóstico # self.stdout.write("\tEquipe de diagnóstico...", ending=" ") - lsf.writerow(normalize(['2000', '', 'G', '', u'Equipe de diagnóstico', + lsf.writerow(normalize(['2000', '', 'G', '', 'Equipe de diagnóstico', '', '', '', 'pt-BR'])) lsf.writerow(normalize(['2001', '', 'Q', 'D', 'c002q001', '1', - u'Data de início da visita', '', 'pt-BR', '', 'Y', 'N', '', '0'])) + 'Data de início da visita', '', 'pt-BR', '', 'Y', 'N', '', '0'])) struct.append('c002q001') lsf.writerow(normalize(['2002', '', 'Q', 'D', 'c002q002', '1', - u'Data de término da visita', '', 'pt-BR', '', 'Y', 'N', '', '0'])) + 'Data de término da visita', '', 'pt-BR', '', 'Y', 'N', '', '0'])) struct.append('c002q002') lsf.writerow(normalize(['2003', '', 'Q', 'S', 'c002q003', '1', - u'Líder da equipe', '', 'pt-BR', '', 'Y', 'N', '', '0'])) + 'Líder da equipe', '', 'pt-BR', '', 'Y', 'N', '', '0'])) struct.append('c002q003') lsf.writerow(normalize(['2004', '', 'Q', 'T', 'c002q004', '1', - u'Membros da equipe', '', 'pt-BR', '', 'Y', 'N', '', '0'])) + 'Membros da equipe', '', 'pt-BR', '', 'Y', 'N', '', '0'])) struct.append('c002q004') self.stdout.write("Done!") for c in Categoria.objects.all(): self.stdout.write("\t{0}...".format(nonum(c.nome).encode('utf-8')), ending=" ") - lsf.writerow(normalize([str(c.id), '', 'G', '', + lsf.writerow(normalize([str(c.id), '', 'G', '', nonum(c.nome), '', nonum(c.nome), '', 'pt-BR'])) perguntas = sorted([(p.title, p) for p in c.perguntas.all()]) @@ -143,16 +143,16 @@ class Command(BaseCommand): lstype = DATATYPES[p.datatype] # Hack para perguntas SIM/NÃO que foram cadastradas como Choice if lstype == 'L': - if ("".join([e.title for e in p.choices.all()]) in - [u"SimNão", u"NãoSim"]): + if ("".join([e.title for e in p.choices.all()]) in + ["SimNão", "NãoSim"]): lstype = 'Y' ######## relevance = "1" if p.abre_por.exists(): relevance = "(" + " or ".join( - [u'({sid}X{gid}X{qid}.NAOK == "{value}")'.format( + ['({sid}X{gid}X{qid}.NAOK == "{value}")'.format( sid=survey_id, gid=e.schema.categoria.id, - qid=e.schema.id, value=avalue(e)) for e in + qid=e.schema.id, value=avalue(e)) for e in p.abre_por.all()]) + ")" lsf.writerow(normalize([str(p.id), '', 'Q', lstype, @@ -160,12 +160,12 @@ class Command(BaseCommand): nonum(p.title), p.help_text, 'pt-BR', '', 'NY'[p.required], 'N', '', '0'])) if lstype == 'L': - lsf.writerows([normalize([str(p.id), u'', u'A', u'0', - str(e.id), u'', e.title, u'', u'pt-BR']) + lsf.writerows([normalize([str(p.id), '', 'A', '0', + str(e.id), '', e.title, '', 'pt-BR']) for e in p.choices.all()]) if lstype == 'M': - lsf.writerows([normalize([str(p.id*1000+e.id), u'', u'SQ', - u'', str(e.id), u'1', e.title, u'', u'pt-BR']) + lsf.writerows([normalize([str(p.id*1000+e.id), '', 'SQ', + '', str(e.id), '1', e.title, '', 'pt-BR']) for e in p.choices.all()]) struct.extend(['c{0:03}q{1:03}_{2}'.format(c.id, p.id, e.id) for e in p.choices.all()]) @@ -184,7 +184,7 @@ class Command(BaseCommand): dtf.writerow(struct) for d in Diagnostico.objects.all(): - self.stdout.write(u"\t{0}".format(d.casa_legislativa.nome)) + self.stdout.write("\t{0}".format(d.casa_legislativa.nome)) form = OrderedDict.fromkeys(struct, '{question_not_shown}') @@ -207,9 +207,9 @@ class Command(BaseCommand): form['c001q006'] = \ d.casa_legislativa.data_instalacao.isoformat() form['c001q007'] = ( - u"{logradouro}{{cr}}{{newline}}" - u"{bairro}{{cr}}{{newline}}" - u"{cep} - {municipio} - {uf}".format( + "{logradouro}{{cr}}{{newline}}" + "{bairro}{{cr}}{{newline}}" + "{cep} - {municipio} - {uf}".format( logradouro=d.casa_legislativa.logradouro, bairro=d.casa_legislativa.bairro, cep=d.casa_legislativa.cep, @@ -252,9 +252,9 @@ class Command(BaseCommand): if r.schema.datatype == 'one': if value is None: value = '{question_not_shown}' - elif value.title == u'Sim': + elif value.title == 'Sim': value = 'Y' - elif value.title == u'Não': + elif value.title == 'Não': value = 'N' else: value = r.value.id @@ -264,12 +264,12 @@ class Command(BaseCommand): replace('\r', '{cr}{newline}').\ replace('\n', '{cr}{newline}').\ replace('\t', ' ') - + if value is None: value = '{question_not_shown}' - form[key] = u'{0}'.format(value) + form[key] = '{0}'.format(value) dtf.writerow(normalize(form.values())) self.stdout.write('Done!') - - + + diff --git a/sigi/apps/diagnosticos/models.py b/sigi/apps/diagnosticos/models.py index 1b540a2..cd8e135 100644 --- a/sigi/apps/diagnosticos/models.py +++ b/sigi/apps/diagnosticos/models.py @@ -16,7 +16,7 @@ class Diagnostico(BaseEntity): casa_legislativa = models.ForeignKey( 'casas.Orgao', on_delete=models.PROTECT, - verbose_name=_(u'Casa Legislativa') + verbose_name=_('Casa Legislativa') ) # campo de busca em caixa baixa e sem acento @@ -24,18 +24,18 @@ class Diagnostico(BaseEntity): # casa_legislativa.casa_uf_filter = True # casa_legislativa.casa_tipo_filter = True data_visita_inicio = models.DateField( - u'data inicial da visita', + 'data inicial da visita', null=True, blank=True, ) data_visita_fim = models.DateField( - u'data final da visita', + 'data final da visita', null=True, blank=True, ) publicado = models.BooleanField(default=False) data_publicacao = models.DateField( - u'data de publicação do diagnóstico', + 'data de publicação do diagnóstico', null=True, blank=True, ) @@ -43,11 +43,11 @@ class Diagnostico(BaseEntity): responsavel = models.ForeignKey( 'servidores.Servidor', on_delete=models.PROTECT, - verbose_name=_(u'responsável') + verbose_name=_('responsável') ) class Meta: - verbose_name, verbose_name_plural = _(u'diagnóstico'), _(u'diagnósticos') + verbose_name, verbose_name_plural = _('diagnóstico'), _('diagnósticos') @property def membros(self): @@ -90,7 +90,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, _("Diagnóstico publicado"), 'diagnosticos/email_diagnostico_publicado.txt', { 'responsavel': self.responsavel.nome_completo, @@ -98,7 +98,7 @@ class Diagnostico(BaseEntity): 'data_diagnostico': self.data_visita_inicio, 'host': host, 'url_diagnostico': self.get_absolute_url(), - 'status': _(u"Publicado"), + 'status': _("Publicado"), }) def email_diagnostico_alterado(self, from_email, host): @@ -108,7 +108,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, _("Diagnóstico alterado"), 'diagnosticos/email_diagnostico_alterado.txt', { 'servidor': self.responsavel.nome_completo, @@ -116,7 +116,7 @@ class Diagnostico(BaseEntity): 'data_diagnostico': self.data_visita_inicio, 'host': host, 'url_diagnostico': self.get_absolute_url(), - 'status': _(u"Alterado"), + 'status': _("Alterado"), }) def get_schemata(self, category=None, *args, **kwargs): @@ -197,7 +197,7 @@ class Pergunta(BaseSchema): class Meta: ordering = ('title',) - verbose_name, verbose_name_plural = _(u'pergunta'), _(u'perguntas') + verbose_name, verbose_name_plural = _('pergunta'), _('perguntas') class Escolha(BaseChoice): @@ -209,13 +209,13 @@ class Escolha(BaseChoice): Pergunta, on_delete=models.CASCADE, related_name='choices', - verbose_name=_(u'pergunta') + verbose_name=_('pergunta') ) schema_to_open = models.ForeignKey( Pergunta, on_delete=models.SET_NULL, related_name='abre_por', - verbose_name=_(u'pergunta para abrir'), + verbose_name=_('pergunta para abrir'), blank=True, null=True ) @@ -223,7 +223,7 @@ class Escolha(BaseChoice): class Meta: ordering = ('schema', 'ordem') - verbose_name, verbose_name_plural = _(u'escolha'), _(u'escolhas') + verbose_name, verbose_name_plural = _('escolha'), _('escolhas') class Resposta(BaseAttribute): @@ -235,18 +235,18 @@ class Resposta(BaseAttribute): Pergunta, on_delete=models.PROTECT, related_name='attrs', - verbose_name=_(u'pergunta') + verbose_name=_('pergunta') ) choice = models.ForeignKey( Escolha, on_delete=models.PROTECT, - verbose_name=_(u'escolha'), + verbose_name=_('escolha'), blank=True, null=True ) class Meta: - verbose_name, verbose_name_plural = _(u'resposta'), _(u'respostas') + verbose_name, verbose_name_plural = _('resposta'), _('respostas') class Equipe(models.Model): @@ -260,7 +260,7 @@ class Equipe(models.Model): ) class Meta: - verbose_name, verbose_name_plural = _(u'equipe'), _(u'equipe') + verbose_name, verbose_name_plural = _('equipe'), _('equipe') def __unicode__(self): return self.membro.__unicode__() @@ -274,11 +274,11 @@ class Anexo(models.Model): diagnostico = models.ForeignKey( Diagnostico, on_delete=models.CASCADE, - verbose_name=u'diagnóstico' + verbose_name='diagnóstico' ) arquivo = models.FileField(upload_to='apps/diagnostico/anexo/arquivo', max_length=500) - descricao = models.CharField(_(u'descrição'), max_length='70') - data_pub = models.DateTimeField(_(u'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 e51a884..a3480b6 100644 --- a/sigi/apps/diagnosticos/views.py +++ b/sigi/apps/diagnosticos/views.py @@ -186,7 +186,7 @@ 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 += _(u'

Novo telefone %(type)s: %(number)s

') % dict( + 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',) @@ -207,7 +207,7 @@ 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 %(type)s %(number)s foi excluído da base de dados

') % dict( + resposta['fones'][form.prefix] += _('

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: diff --git a/sigi/apps/diagnosticos/widgets.py b/sigi/apps/diagnosticos/widgets.py index 63eed4b..058ea27 100644 --- a/sigi/apps/diagnosticos/widgets.py +++ b/sigi/apps/diagnosticos/widgets.py @@ -12,11 +12,11 @@ class EavCheckboxSelectMultiple(CheckboxSelectMultiple): if value is None: value = [] final_attrs = self.build_attrs(attrs, name=name) - output = [u'') + return mark_safe('\n'.join(output)) class EavRadioFieldRenderer(RadioFieldRenderer): diff --git a/sigi/apps/eventos/admin.py b/sigi/apps/eventos/admin.py index dfd167c..8cba966 100644 --- a/sigi/apps/eventos/admin.py +++ b/sigi/apps/eventos/admin.py @@ -80,13 +80,13 @@ class EventoAdmin(admin.ModelAdmin): quant = q2 - q1 if quant: self.message_user(request, str(q2 - q1) + " " + - _(u"Eventos adicionados no carrinho")) + _("Eventos adicionados no carrinho")) else: - self.message_user(request, _(u"Os Eventos selecionados " - u"já foram adicionados anteriormente")) + self.message_user(request, _("Os Eventos selecionados " + "já foram adicionados anteriormente")) return HttpResponseRedirect('.') - adicionar_eventos.short_description = _(u"Armazenar eventos no carrinho " - u"para exportar") + adicionar_eventos.short_description = _("Armazenar eventos no carrinho " + "para exportar") def lookup_allowed(self, lookup, value): return (super(EventoAdmin, self).lookup_allowed(lookup, value) or diff --git a/sigi/apps/eventos/forms.py b/sigi/apps/eventos/forms.py index 3ebf6e6..6df7144 100644 --- a/sigi/apps/eventos/forms.py +++ b/sigi/apps/eventos/forms.py @@ -20,7 +20,7 @@ class EventoAdminForm(forms.ModelForm): if data_inicio > data_termino: raise forms.ValidationError( - _(u"Data término deve ser posterior à data inicio"), + _("Data término deve ser posterior à data inicio"), code="invalid_period" ) @@ -28,5 +28,5 @@ class SelecionaModeloForm(forms.Form): modelo = forms.ModelChoiceField( queryset=ModeloDeclaracao.objects.all(), required=True, - label=_(u"Modelo de declaração"), + label=_("Modelo de declaração"), ) \ No newline at end of file diff --git a/sigi/apps/eventos/migrations/0001_initial.py b/sigi/apps/eventos/migrations/0001_initial.py index e30e79b..07a15b6 100644 --- a/sigi/apps/eventos/migrations/0001_initial.py +++ b/sigi/apps/eventos/migrations/0001_initial.py @@ -19,7 +19,7 @@ class Migration(migrations.Migration): ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('data_convite', models.DateField(verbose_name='Data do convite')), ('aceite', models.BooleanField(default=False, verbose_name='Aceitou o convite')), - ('participou', models.BooleanField(default=False, verbose_name='Participou do evento')), + ('participo', models.BooleanField(default=False, verbose_name='Participou do evento')), ('casa', models.ForeignKey(verbose_name='Casa convidada', to='casas.CasaLegislativa')), ], options={ @@ -127,7 +127,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='convite', name='servidor', - field=models.ForeignKey(verbose_name='Servidor que convidou', to='servidores.Servidor'), + field=models.ForeignKey(verbose_name='Servidor que convido', to='servidores.Servidor'), preserve_default=True, ), migrations.AlterUniqueTogether( diff --git a/sigi/apps/eventos/migrations/0006_auto_20210416_0841.py b/sigi/apps/eventos/migrations/0006_auto_20210416_0841.py index 5779175..addbdbb 100644 --- a/sigi/apps/eventos/migrations/0006_auto_20210416_0841.py +++ b/sigi/apps/eventos/migrations/0006_auto_20210416_0841.py @@ -21,7 +21,7 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='convite', name='servidor', - field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, verbose_name='Servidor que convidou', to='servidores.Servidor'), + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, verbose_name='Servidor que convido', to='servidores.Servidor'), preserve_default=True, ), migrations.AlterField( diff --git a/sigi/apps/eventos/models.py b/sigi/apps/eventos/models.py index 087b35a..beb450a 100644 --- a/sigi/apps/eventos/models.py +++ b/sigi/apps/eventos/models.py @@ -14,61 +14,61 @@ from tinymce.models import HTMLField class TipoEvento(models.Model): CATEGORIA_CHOICES = ( - ('C', _(u'Curso')), - ('E', _(u'Encontro')), - ('O', _(u'Oficina')), - ('S', _(u'Seminário')), - ('V', _(u'Visita')), + ('C', _('Curso')), + ('E', _('Encontro')), + ('O', _('Oficina')), + ('S', _('Seminário')), + ('V', _('Visita')), ) - nome = models.CharField(_(u"Nome"), max_length=100) + nome = models.CharField(_("Nome"), max_length=100) categoria = models.CharField( - _(u'Categoaria'), + _('Categoaria'), max_length=1, choices=CATEGORIA_CHOICES ) class Meta: ordering = ("nome",) - verbose_name, verbose_name_plural = _(u"Tipo de evento"), _(u"Tipos de evento") + verbose_name, verbose_name_plural = _("Tipo de evento"), _("Tipos de evento") def __unicode__(self): return self.nome class Evento(models.Model): STATUS_CHOICES = ( - ('P', _(u"Previsão")), - ('A', _(u"A confirmar")), - ('O', _(u"Confirmado")), - ('R', _(u"Realizado")), - ('C', _(u"Cancelado")) + ('P', _("Previsão")), + ('A', _("A confirmar")), + ('O', _("Confirmado")), + ('R', _("Realizado")), + ('C', _("Cancelado")) ) tipo_evento = models.ForeignKey( TipoEvento, on_delete=models.PROTECT, ) - nome = models.CharField(_(u"Nome do evento"), max_length=100) - descricao = models.TextField(_(u"Descrição do evento")) + nome = models.CharField(_("Nome do evento"), max_length=100) + descricao = models.TextField(_("Descrição do evento")) virtual = models.BooleanField(_("Virtual"), default=False) - solicitante = models.CharField(_(u"Solicitante"), max_length=100) + solicitante = models.CharField(_("Solicitante"), max_length=100) data_inicio = models.DateTimeField( - _(u"Data/hora do Início"), + _("Data/hora do Início"), null=True, blank=True ) data_termino = models.DateTimeField( - _(u"Data/hora do Termino"), + _("Data/hora do Termino"), null=True, blank=True ) carga_horaria = models.PositiveIntegerField( - _(u"carga horária"), + _("carga horária"), default=0 ) casa_anfitria = models.ForeignKey( Orgao, on_delete=models.PROTECT, - verbose_name=_(u"Casa anfitriã"), + verbose_name=_("Casa anfitriã"), blank=True, null=True ) @@ -76,22 +76,22 @@ class Evento(models.Model): Municipio, on_delete=models.PROTECT ) - local = models.TextField(_(u"Local do evento"), blank=True) - publico_alvo = models.TextField(_(u"Público alvo"), blank=True) + local = models.TextField(_("Local do evento"), blank=True) + publico_alvo = models.TextField(_("Público alvo"), blank=True) total_participantes = models.PositiveIntegerField( - _(u"Total de participantes"), + _("Total de participantes"), default=0, - help_text=_(u"Se informar quantidade de participantes na aba de " - u"convites, este campo será ajustado com a somatória " - u"dos participantes naquela aba.") + help_text=_("Se informar quantidade de participantes na aba de " + "convites, este campo será ajustado com a somatória " + "dos participantes naquela aba.") ) - status = models.CharField(_(u"Status"), max_length=1, choices=STATUS_CHOICES) - data_cancelamento = models.DateField(_(u"Data de cancelamento"), blank=True, null=True) - motivo_cancelamento = models.TextField(_(u"Motivo do cancelamento"), blank=True) + status = models.CharField(_("Status"), max_length=1, choices=STATUS_CHOICES) + data_cancelamento = models.DateField(_("Data de cancelamento"), blank=True, null=True) + motivo_cancelamento = models.TextField(_("Motivo do cancelamento"), blank=True) class Meta: ordering = ("-data_inicio",) - verbose_name, verbose_name_plural = _(u"Evento"), _(u"Eventos") + verbose_name, verbose_name_plural = _("Evento"), _("Eventos") def __unicode__(self): return _("%(nome)s (%(tipo_evento)s): de %(data_inicio)s a %(data_termino)s") % dict( @@ -105,8 +105,8 @@ class Evento(models.Model): self.data_cancelamento = None self.motivo_cancelamento = "" if self.data_inicio > self.data_termino: - raise ValidationError(_(u"Data de término deve ser posterior à " - u"data de início")) + raise ValidationError(_("Data de término deve ser posterior à " + "data de início")) total = self.convite_set.aggregate(total=Sum('qtde_participantes')) total = total['total'] if (total is not None) or (total > 0): @@ -114,12 +114,12 @@ class Evento(models.Model): return super(Evento, self).save(*args, **kwargs) class Funcao(models.Model): - nome = models.CharField(_(u"Função na equipe de evento"), max_length=100) - descricao = models.TextField(_(u"Descrição da função")) + nome = models.CharField(_("Função na equipe de evento"), max_length=100) + descricao = models.TextField(_("Descrição da função")) class Meta: ordering = ("nome",) - verbose_name, verbose_name_plural = _(u"Função"), _(u"Funções") + verbose_name, verbose_name_plural = _("Função"), _("Funções") def __unicode__(self): return self.nome @@ -137,16 +137,16 @@ class Equipe(models.Model): funcao = models.ForeignKey( Funcao, on_delete=models.PROTECT, - verbose_name=_(u"Função na equipe") + verbose_name=_("Função na equipe") ) - observacoes = models.TextField(_(u"Observações"), blank=True) + observacoes = models.TextField(_("Observações"), blank=True) class Meta: ordering = ('evento', 'funcao', 'membro',) - verbose_name, verbose_name_plural = _(u"Membro da equipe"), _(u"Membros da equipe") + verbose_name, verbose_name_plural = _("Membro da equipe"), _("Membros da equipe") def __unicode__(self): - return u"%s (%s)" % (unicode(self.membro), unicode(self.funcao),) + return "%s (%s)" % (unicode(self.membro), unicode(self.funcao),) class Convite(models.Model): evento = models.ForeignKey( @@ -156,54 +156,54 @@ class Convite(models.Model): casa = models.ForeignKey( Orgao, on_delete=models.PROTECT, - verbose_name=_(u"Casa convidada") + verbose_name=_("Casa convidada") ) servidor = models.ForeignKey( Servidor, on_delete=models.PROTECT, - verbose_name=_(u"Servidor que convidou") + verbose_name=_("Servidor que convidou") ) - data_convite = models.DateField(_(u"Data do convite")) + data_convite = models.DateField(_("Data do convite")) aceite = models.BooleanField(_("Aceitou o convite"), default=False) - participou = models.BooleanField(_(u"Participou do evento"), default=False) + participou = models.BooleanField(_("Participou do evento"), default=False) qtde_participantes = models.PositiveIntegerField( - _(u"número de participantes"), + _("número de participantes"), default=0 ) nomes_participantes = models.TextField( - _(u"nome dos participantes"), + _("nome dos participantes"), blank=True, - help_text=_(u"Favor colocar um participante por linha") + help_text=_("Favor colocar um participante por linha") ) class Meta: ordering = ('evento', 'casa', '-data_convite') unique_together = ('evento', 'casa') - verbose_name = _(u"Casa convidada") - verbose_name_plural = _(u"Casas convidadas") + verbose_name = _("Casa convidada") + verbose_name_plural = _("Casas convidadas") class Modulo(models.Model): TIPO_CHOICES = ( - ('A', _(u'Aula')), - ('P', _(u'Palestra')), - ('R', _(u'Apresentação')), + ('A', _('Aula')), + ('P', _('Palestra')), + ('R', _('Apresentação')), ) - evento = models.ForeignKey(Evento, verbose_name=_(u"Evento")) - nome = models.CharField(_(u"Nome"), max_length=100) - descricao = models.TextField(_(u"Descrição do módulo")) - tipo = models.CharField(_(u'Tipo'), max_length=1, choices=TIPO_CHOICES) + evento = models.ForeignKey(Evento, verbose_name=_("Evento")) + nome = models.CharField(_("Nome"), max_length=100) + descricao = models.TextField(_("Descrição do módulo")) + tipo = models.CharField(_('Tipo'), max_length=1, choices=TIPO_CHOICES) inicio = models.DateTimeField( - _(u"Data/hora de início"), + _("Data/hora de início"), null=True, blank=True ) termino = models.DateTimeField( - _(u"Data/hora de término"), + _("Data/hora de término"), null=True, blank=True ) carga_horaria = models.PositiveIntegerField( - _(u"carga horária"), + _("carga horária"), default=0 ) apresentador = models.ForeignKey( @@ -212,7 +212,7 @@ class Modulo(models.Model): related_name="modulo_apresentador", null=True, blank=True, - verbose_name=_(u"Apresentador"), + verbose_name=_("Apresentador"), ) monitor = models.ForeignKey( Servidor, @@ -220,67 +220,67 @@ class Modulo(models.Model): related_name="modulo_monitor", null=True, blank=True, - verbose_name=_(u"Monitor"), - help_text=_(u"Monitor, mediador, auxiliar, etc.") + verbose_name=_("Monitor"), + help_text=_("Monitor, mediador, auxiliar, etc.") ) qtde_participantes = models.PositiveIntegerField( - _(u"número de participantes"), + _("número de participantes"), default=0, - help_text=_(u"Deixar Zero significa que todos os participantes " - u"do evento participaram do módulo"), + help_text=_("Deixar Zero significa que todos os participantes " + "do evento participaram do módulo"), ) class Meta: ordering = ('inicio',) - verbose_name = _(u"Módulo do evento") - verbose_name_plural = _(u"Módulos do evento") + verbose_name = _("Módulo do evento") + verbose_name_plural = _("Módulos do evento") def __unicode__(self): - return _(u"{nome} ({tipo})").format( + return _("{nome} ({tipo})").format( nome=self.nome, tipo=self.get_tipo_display() ) class ModeloDeclaracao(models.Model): FORMATO_CHOICES = ( - ('A4 portrait', _(u"A4 retrato")), - ('A4 landscape', _(u"A4 paisagem")), - ('letter portrait', _(u"Carta retrato")), - ('letter landscape', _(u"Carta paisagem")) + ('A4 portrait', _("A4 retrato")), + ('A4 landscape', _("A4 paisagem")), + ('letter portrait', _("Carta retrato")), + ('letter landscape', _("Carta paisagem")) ) - nome = models.CharField(_(u"Nome do modelo"), max_length=100) + nome = models.CharField(_("Nome do modelo"), max_length=100) formato = models.CharField( - _(u"Formato da página"), + _("Formato da página"), max_length=30, choices=FORMATO_CHOICES, default=FORMATO_CHOICES[0][0] ) margem = models.PositiveIntegerField( - _(u"Margem"), - help_text=_(u"Margem da página em centímetros"), + _("Margem"), + help_text=_("Margem da página em centímetros"), default=4 ) texto = HTMLField( - _(u"Texto da declaração"), - help_text=_(u"Use as seguintes marcações:") + _("Texto da declaração"), + help_text=_("Use as seguintes marcações:") ) class Meta: - verbose_name = _(u"modelo de declaração") - verbose_name_plural = _(u"modelos de declaração") + verbose_name = _("modelo de declaração") + verbose_name_plural = _("modelos de declaração") def __unicode__(self): - return _(u"{nome} ({formato})").format( + return _("{nome} ({formato})").format( nome=self.nome, formato=self.get_formato_display() ) @@ -289,13 +289,13 @@ class Anexo(models.Model): evento = models.ForeignKey( Evento, on_delete=models.CASCADE, - verbose_name=_(u'evento') + verbose_name=_('evento') ) # caminho no sistema para o documento anexo arquivo = models.FileField(upload_to='apps/eventos/anexo/arquivo', max_length=500) - descricao = models.CharField(_(u'descrição'), max_length='70') + descricao = models.CharField(_('descrição'), max_length='70') data_pub = models.DateTimeField( - _(u'data da publicação do anexo'), + _('data da publicação do anexo'), default=datetime.now ) diff --git a/sigi/apps/eventos/views.py b/sigi/apps/eventos/views.py index 578fc8a..d22cf90 100644 --- a/sigi/apps/eventos/views.py +++ b/sigi/apps/eventos/views.py @@ -157,14 +157,14 @@ def alocacao_equipe(request): locale.setlocale(locale.LC_ALL, lang) meses = [calendar.month_name[m] for m in range(1,13)] - linhas = [[_(u"Servidor")] + meses + ['total']] + linhas = [[_("Servidor")] + meses + ['total']] for r in dados: r[2].append(reduce(lambda x,y:{'dias': x['dias'] + y['dias'], 'eventos': x['eventos'] + y['eventos']}, r[2])) linhas.append([r[1]] + - [_(ungettext(u"%(dias)s dia", u"%(dias)s dias", d['dias']) + " em " + - ungettext(u"%(eventos)s evento", u"%(eventos)s eventos", d['eventos']) + [_(ungettext("%(dias)s dia", "%(dias)s dias", d['dias']) + " em " + + ungettext("%(eventos)s evento", "%(eventos)s eventos", d['eventos']) ) % d if d['dias'] > 0 or d['eventos'] > 0 else '' for d in r[2]]) # for registro in Servidor.objects.filter(equipe_evento__evento__data_inicio__year=ano_pesquisa).exclude(equipe_evento__evento__status='C').distinct(): @@ -173,7 +173,7 @@ def alocacao_equipe(request): # dados[part.evento.data_inicio.month-1]['dias'] += (part.evento.data_termino - # part.evento.data_inicio).days + 1 # dados[part.evento.data_inicio.month-1]['eventos'] += 1 -# dados.append([registro.nome_completo] + [_(ungettext(u"%(dias)s dia", u"%(dias)s dias", d['dias']) + " em " + ungettext(u"%(eventos)s evento", u"%(eventos)s eventos", d['eventos'])) % d if d['dias'] > 0 or d['eventos'] > 0 else '' for d in dados]) +# dados.append([registro.nome_completo] + [_(ungettext("%(dias)s dia", "%(dias)s dias", d['dias']) + " em " + ungettext("%(eventos)s evento", "%(eventos)s eventos", d['eventos'])) % d if d['dias'] > 0 or d['eventos'] > 0 else '' for d in dados]) data['linhas'] = linhas @@ -277,7 +277,7 @@ def visualizar_carrinho(request): def excluir_carrinho(request): if 'carrinho_eventos' in request.session: del request.session['carrinho_eventos'] - messages.info(request, u'O carrinho foi esvaziado') + messages.info(request, 'O carrinho foi esvaziado') return HttpResponseRedirect('../../') @login_required @@ -295,7 +295,7 @@ def deleta_itens_carrinho(request): else: del lista del request.session['carrinho_eventos'] - messages.info(request, u"{0} itens removidos do carrinho".format(removed)) + messages.info(request, "{0} itens removidos do carrinho".format(removed)) return HttpResponseRedirect('.') @login_required @@ -320,14 +320,14 @@ def export_csv(request): eventos.select_related('equipe', 'convite') if not eventos: - messages.info(request, _(u"Nenhum evento a exportar")) + messages.info(request, _("Nenhum evento a exportar")) return HttpResponseRedirect('../') max_equipe = max([e.equipe_set.count() for e in eventos]) - mun_casa = u'Município da Casa Anfitriã'.encode('utf8') - uf_casa = u'UF da Casa Anfitriã'.encode('utf8') - reg_casa = u'Região da Casa Anfitriã'.encode('utf8') + mun_casa = 'Município da Casa Anfitriã'.encode('utf8') + uf_casa = 'UF da Casa Anfitriã'.encode('utf8') + reg_casa = 'Região da Casa Anfitriã'.encode('utf8') head = [f.verbose_name.encode('utf8') for f in Evento._meta.fields] head.extend([mun_casa, uf_casa, reg_casa]) diff --git a/sigi/apps/financeiro/models.py b/sigi/apps/financeiro/models.py index 73b5023..bf73b9c 100644 --- a/sigi/apps/financeiro/models.py +++ b/sigi/apps/financeiro/models.py @@ -9,16 +9,16 @@ class Desembolso(models.Model): projeto = models.ForeignKey( Projeto, on_delete=models.CASCADE, - verbose_name=_(u'Projeto') + verbose_name=_('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) + descricao = models.CharField(_('Descrição da despesa'), max_length=100) + data = models.DateField(_('Data do desembolso')) + valor_reais = models.DecimalField(_('Valor em R$'), max_digits=18, decimal_places=2) + valor_dolar = models.DecimalField(_('Valor em US$'), max_digits=18, decimal_places=2) class Meta: - verbose_name = _(u'Desembolso') - verbose_name_plural = _(u'Desembolsos') + verbose_name = _('Desembolso') + verbose_name_plural = _('Desembolsos') def __unicode__(self): - return u"%s (US$ %s)" % (self.descricao, self.valor_dolar) + return "%s (US$ %s)" % (self.descricao, self.valor_dolar) diff --git a/sigi/apps/home/views.py b/sigi/apps/home/views.py index 7952b44..90f3d3f 100644 --- a/sigi/apps/home/views.py +++ b/sigi/apps/home/views.py @@ -153,10 +153,10 @@ def chart_performance(request): 'type': 'pie', 'options': {'responsive': True}, 'data': [ - {'label': _(u"Utilizam serviços"), + {'label': _("Utilizam serviços"), 'value': casas.exclude(servico=None).count(), 'color': '#91e8e1'}, - {'label': _(u"Não utilizam serviços"), + {'label': _("Não utilizam serviços"), 'value': casas.filter(servico=None).count(), 'color': '#f7a35c'}, ] @@ -174,31 +174,31 @@ def report_sem_convenio(request): if modo == 'H': casas = sc['hospedagem'] - titulo = _(u"Casas sem convenio que utilizam algum serviço de " - u"hospedagem") + titulo = _("Casas sem convenio que utilizam algum serviço de " + "hospedagem") elif modo == 'R': casas = sc['registro'] - titulo = _(u"Casas sem convenio que utilizam somente serviço de " - u"registro") + titulo = _("Casas sem convenio que utilizam somente serviço de " + "registro") else: casas = sc['total'] - titulo = _(u"Casas sem convenio que utilizam algum serviço de registro " - u"e/ou hospedagem") + titulo = _("Casas sem convenio que utilizam algum serviço de registro " + "e/ou hospedagem") if fmt == 'csv': response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename=casas.csv' writer = csv.writer(response) writer.writerow([titulo.encode('utf8')]) - writer.writerow([u'']) - writer.writerow([u'casa', u'uf', u'gerentes', - u'serviços'.encode('utf8')]) + writer.writerow(['']) + writer.writerow(['casa', 'uf', 'gerentes', + 'serviços'.encode('utf8')]) for casa in casas: writer.writerow([ casa.nome.encode('utf8'), casa.municipio.uf.sigla.encode('utf8'), casa.lista_gerentes(fmt='lista').encode('utf8'), - (u', '.join(casa.servico_set.filter( + (', '.join(casa.servico_set.filter( data_desativacao__isnull=True).values_list( 'tipo_servico__nome', flat=True))).encode('utf8'), ]) @@ -273,14 +273,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') + _('Câmaras municipais'), + _('Câmaras municipais não aderidas'), + _('Câmaras municipais aderidas'), + _('Câmaras municipais com convênios assinados'), + _('Câmaras municipais convênios em andamento'), + _('Câmaras municipais equipadas'), + _('Diagnósticos digitados'), + _('Diagnósticos publicados') ) linhas = ( @@ -383,8 +383,8 @@ def busca_informacoes_seit(mes_atual=None): def busca_informacoes_diagnostico(): return [ - {'title': _(u'Diagnósticos digitados'), 'count': Diagnostico.objects.count()}, - {'title': _(u'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/apps/inventario/models.py b/sigi/apps/inventario/models.py index 07da98b..590f47f 100644 --- a/sigi/apps/inventario/models.py +++ b/sigi/apps/inventario/models.py @@ -7,14 +7,14 @@ from django.utils.translation import gettext as _ class Fornecedor(models.Model): nome = models.CharField(max_length=40) nome.alphabetic_filter = True - email = models.EmailField(_(u'e-mail'), blank=True) - pagina_web = models.URLField(_(u'página web'), blank=True) + email = models.EmailField(_('e-mail'), blank=True) + pagina_web = models.URLField(_('página web'), blank=True) telefones = GenericRelation('contatos.Telefone') contatos = GenericRelation('contatos.Contato') class Meta: ordering = ('nome',) - verbose_name_plural = _(u'fornecedores') + verbose_name_plural = _('fornecedores') def __unicode__(self): return self.nome @@ -36,8 +36,8 @@ class TipoEquipamento(models.Model): class Meta: ordering = ('tipo',) - verbose_name = _(u'tipo de equipamento') - verbose_name_plural = _(u'tipos de equipamentos') + verbose_name = _('tipo de equipamento') + verbose_name_plural = _('tipos de equipamentos') def __unicode__(self): return self.tipo @@ -47,14 +47,14 @@ class ModeloEquipamento(models.Model): tipo = models.ForeignKey( TipoEquipamento, on_delete=models.PROTECT, - verbose_name=_(u'tipo de equipamento') + verbose_name=_('tipo de equipamento') ) modelo = models.CharField(max_length=30) class Meta: ordering = ('modelo',) - verbose_name = _(u'modelo de equipamento') - verbose_name_plural = _(u'modelos de equipamentos') + verbose_name = _('modelo de equipamento') + verbose_name_plural = _('modelos de equipamentos') def __unicode__(self): return self.modelo @@ -86,20 +86,20 @@ class Bem(models.Model): equipamento = models.ForeignKey(Equipamento, on_delete=models.CASCADE) fornecedor = models.ForeignKey(Fornecedor, on_delete=models.PROTECT) num_serie = models.CharField( - _(u'número de série'), + _('número de série'), max_length=64, - help_text=_(u'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=_(u'Nome de quem recebeu o equipamento.') + help_text=_('Nome de quem recebeu o equipamento.') ) - observacoes = models.TextField(_(u'observações'), blank=True) + observacoes = models.TextField(_('observações'), blank=True) class Meta: - verbose_name_plural = _(u'bens') + verbose_name_plural = _('bens') def __unicode__(self): return unicode('%s (%s)') % (self.equipamento, self.casa_legislativa) diff --git a/sigi/apps/metas/admin.py b/sigi/apps/metas/admin.py index fc716ed..259af79 100644 --- a/sigi/apps/metas/admin.py +++ b/sigi/apps/metas/admin.py @@ -20,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 = _("UF") get_uf.admin_order_field = 'casa_legislativa__municipio__uf__nome' def lookup_allowed(self, lookup, value): diff --git a/sigi/apps/metas/models.py b/sigi/apps/metas/models.py index 4b192ac..27610b6 100644 --- a/sigi/apps/metas/models.py +++ b/sigi/apps/metas/models.py @@ -11,29 +11,29 @@ 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', _('Soma dos desembolsos')), + ('COUNT_EQUI', _('Quantidade de casas equipadas')), + ('COUNT_ADER', _('Quantidade de casas aderidas')), + ('COUNT_DIAG', _('Quantidade de casas diagnosticadas')), + ('COUNT_PDIR', _('Quantidade de planos diretores')), + ('COUNT_CONV', _('Quantidade de casas conveniadas')), ) projeto = models.ForeignKey( Projeto, on_delete=models.CASCADE, - verbose_name=_(u'Projeto'), - help_text=_(u'Projeto ao qual a meta se refere') + verbose_name=_('Projeto'), + help_text=_('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')) + titulo = models.CharField(_('Título'), max_length=40, help_text=_('Título da meta que aparecerá no dashboard')) + descricao = models.TextField(_('Descrição')) + data_inicio = models.DateField(_('Data inicial'), help_text=_('Início do período de cômputo da meta')) + data_fim = models.DateField(_('Data final'), help_text=_('Prazo final para cumprimento da meta')) + algoritmo = models.CharField(_('Algoritmo de cálculo'), max_length=10, choices=ALGORITMO_CHOICES) + valor_meta = models.FloatField(_('Valor da meta'), help_text=_('Valor que deve ser atingido até o prazo final da meta')) class Meta: - verbose_name = _(u'Meta BID') - verbose_name_plural = _(u'Metas BID') + verbose_name = _('Meta BID') + verbose_name_plural = _('Metas BID') def __unicode__(self): return self.titulo @@ -116,27 +116,27 @@ class Meta(models.Model): class PlanoDiretor(models.Model): STATUS_CHOICE = ( - ('E', _(u'Entregue')), - ('I', _(u'Implantado')), + ('E', _('Entregue')), + ('I', _('Implantado')), ) projeto = models.ForeignKey( Projeto, on_delete=models.CASCADE, - verbose_name=_(u'Projeto') + verbose_name=_('Projeto') ) casa_legislativa = models.ForeignKey( Orgao, on_delete=models.CASCADE, - verbose_name=_(u'Casa Legislativa') + verbose_name=_('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(_('Status'), max_length=1, choices=STATUS_CHOICE, default='E') + data_entrega = models.DateField(_('Data de entrega'), blank=True, null=True) + data_implantacao = models.DateField(_('Data de implantação'), blank=True, null=True) class Meta: - verbose_name = _(u'Plano Diretor') - verbose_name_plural = _(u'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/views.py b/sigi/apps/metas/views.py index 274e6fa..d7a7269 100644 --- a/sigi/apps/metas/views.py +++ b/sigi/apps/metas/views.py @@ -122,18 +122,18 @@ def openmap(request): 'ult_alt_endereco': (casa.ult_alt_endereco.strftime( "%d/%m/%Y").encode('utf8') if casa.ult_alt_endereco else ""), - 'telefones': u", ".join(casa.telefones.values_list('numero', + 'telefones': ", ".join(casa.telefones.values_list('numero', flat=True) ).encode('utf8'), - 'emails': u", ".join([casa.email] + list( + 'emails': ", ".join([casa.email] + list( casa.funcionario_set.values_list('email',flat=True)) ).encode('utf8'), - 'contatos': u", ".join(casa.funcionario_set.values_list( + 'contatos': ", ".join(casa.funcionario_set.values_list( 'nome', flat=True)).encode('utf8'), - 'convenios': u", ".join([c.__unicode__() for c in + 'convenios': ", ".join([c.__unicode__() for c in casa.convenio_set.all()] ).encode('utf8'), - 'servicos': u", ".join([u"{tipo} ({url})".format( + 'servicos': ", ".join(["{tipo} ({url})".format( tipo=s.tipo_servico.nome, url=s.url) for s in casa.servico_set.all()] ).encode('utf8') diff --git a/sigi/apps/ocorrencias/admin.py b/sigi/apps/ocorrencias/admin.py index 7840cc8..c7a093f 100644 --- a/sigi/apps/ocorrencias/admin.py +++ b/sigi/apps/ocorrencias/admin.py @@ -14,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 = _("Comentário anterior"), _("Comentários anteriores") fields = ('usuario', 'data_criacao', 'novo_status', 'encaminhar_setor', 'descricao', ) readonly_fields = ('novo_status', 'encaminhar_setor', 'descricao', 'data_criacao', 'usuario',) @@ -22,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 = _("Comentário novo"), _("Comentários novos") fieldsets = ((None, {'fields': (('novo_status', 'encaminhar_setor',), 'descricao', )}),) def get_queryset(self, queryset): @@ -119,12 +119,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 = _('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 = _('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 2ddcd99..6f567e1 100644 --- a/sigi/apps/ocorrencias/filters.py +++ b/sigi/apps/ocorrencias/filters.py @@ -7,16 +7,16 @@ from sigi.apps.servidores.models import Servidor class OcorrenciaListFilter(admin.SimpleListFilter): - title = _(u'Relacionadas a Mim') + title = _('Relacionadas a Mim') parameter_name = 'minhas' def lookups(self, request, model_admin): if request.user.servidor is None: return None return ( - ('S', _(u'Atribuídos ao meu setor')), - ('M', _(u'Registrados por mim')), - ('G', _(u'Sobre casas que gerencio')), + ('S', _('Atribuídos ao meu setor')), + ('M', _('Registrados por mim')), + ('G', _('Sobre casas que gerencio')), ) def queryset(self, request, queryset): diff --git a/sigi/apps/ocorrencias/models.py b/sigi/apps/ocorrencias/models.py index 499f6ba..e5bb193 100644 --- a/sigi/apps/ocorrencias/models.py +++ b/sigi/apps/ocorrencias/models.py @@ -7,16 +7,16 @@ from django.utils.safestring import mark_safe class Categoria(models.Model): - nome = models.CharField(_(u"Categoria"), max_length=50) - descricao = models.TextField(_(u'descrição'), blank=True, null=True) + nome = models.CharField(_("Categoria"), max_length=50) + descricao = models.TextField(_('descrição'), blank=True, null=True) setor_responsavel = models.ForeignKey( 'servidores.Servico', on_delete=models.PROTECT, - verbose_name=_(u"Setor responsável") + verbose_name=_("Setor responsável") ) class Meta: - verbose_name, verbose_name_plural = _(u'Categoria'), _(u'Categorias') + verbose_name, verbose_name_plural = _('Categoria'), _('Categorias') ordering = ('nome',) def __unicode__(self): @@ -24,10 +24,10 @@ class Categoria(models.Model): class TipoContato(models.Model): - descricao = models.CharField(_(u"Descrição"), max_length=50) + descricao = models.CharField(_("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 = _("Tipo de contato"), _("Tipos de contato") def __unicode__(self): return self.descricao @@ -41,65 +41,65 @@ class Ocorrencia(models.Model): STATUS_DUPLICADO = 5 STATUS_CHOICES = ( - (STATUS_ABERTO , _(u'Aberto')), - (STATUS_REABERTO , _(u'Reaberto')), - (STATUS_RESOLVIDO, _(u'Resolvido')), - (STATUS_FECHADO , _(u'Fechado')), - (STATUS_DUPLICADO, _(u'Duplicado')), + (STATUS_ABERTO , _('Aberto')), + (STATUS_REABERTO , _('Reaberto')), + (STATUS_RESOLVIDO, _('Resolvido')), + (STATUS_FECHADO , _('Fechado')), + (STATUS_DUPLICADO, _('Duplicado')), ) PRIORITY_CHOICES = ( - (1, _(u'Altíssimo')), - (2, _(u'Alto')), - (3, _(u'Normal')), - (4, _(u'Baixo')), - (5, _(u'Baixíssimo')), + (1, _('Altíssimo')), + (2, _('Alto')), + (3, _('Normal')), + (4, _('Baixo')), + (5, _('Baixíssimo')), ) casa_legislativa = models.ForeignKey( 'casas.Orgao', on_delete=models.CASCADE, - verbose_name=_(u'Casa Legislativa') + verbose_name=_('Casa Legislativa') ) - 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) + data_criacao = models.DateField(_('Data de criação'), null=True, blank=True, auto_now_add=True) + data_modificacao = models.DateField(_('Data de modificação'), null=True, blank=True, auto_now=True) categoria = models.ForeignKey( Categoria, on_delete=models.PROTECT, - verbose_name=_(u'Categoria') + verbose_name=_('Categoria') ) tipo_contato = models.ForeignKey( TipoContato, on_delete=models.PROTECT, - verbose_name=_(u"Tipo de contato") + verbose_name=_("Tipo de contato") ) - assunto = models.CharField(_(u'Assunto'), max_length=200) - status = models.IntegerField(_(u'Status'), choices=STATUS_CHOICES, default=1,) - 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,) + assunto = models.CharField(_('Assunto'), max_length=200) + status = models.IntegerField(_('Status'), choices=STATUS_CHOICES, default=1,) + prioridade = models.IntegerField(_('Prioridade'), choices=PRIORITY_CHOICES, default=3, ) + descricao = models.TextField(_('descrição'), blank=True,) + resolucao = models.TextField(_('resolução'), blank=True,) servidor_registro = models.ForeignKey( 'servidores.Servidor', on_delete=models.PROTECT, - verbose_name=_(u"Servidor que registrou a ocorrência") + verbose_name=_("Servidor que registrou a ocorrência") ) setor_responsavel = models.ForeignKey( 'servidores.Servico', on_delete=models.PROTECT, - verbose_name=_(u"Setor responsável") + verbose_name=_("Setor responsável") ) - ticket = models.PositiveIntegerField(_(u'Número do ticket'), blank=True, null=True, help_text=_(u"Número do ticket no osTicket")) + ticket = models.PositiveIntegerField(_('Número do ticket'), blank=True, null=True, help_text=_("Número do ticket no osTicket")) class Meta: - verbose_name, verbose_name_plural = _(u'ocorrência'), _(u'ocorrências') + verbose_name, verbose_name_plural = _('ocorrência'), _('ocorrências') ordering = ['prioridade', 'data_modificacao', 'data_criacao', ] def __unicode__(self): - return u"%(casa_legislativa)s: %(assunto)s" % {'assunto': self.assunto, 'casa_legislativa': self.casa_legislativa} + return "%(casa_legislativa)s: %(assunto)s" % {'assunto': self.assunto, 'casa_legislativa': self.casa_legislativa} def clean(self): if self.ticket is not None and Ocorrencia.objects.exclude(pk=self.pk).filter(ticket=self.ticket).exists(): - raise ValidationError({'ticket': _(u"Já existe ocorrência registrada para este ticket")}) + raise ValidationError({'ticket': _("Já existe ocorrência registrada para este ticket")}) return super(Ocorrencia, self).clean() def get_ticket_url(self): @@ -109,21 +109,21 @@ class Comentario(models.Model): ocorrencia = models.ForeignKey( Ocorrencia, on_delete=models.CASCADE, - verbose_name=_(u'Ocorrência'), + verbose_name=_('Ocorrência'), related_name='comentarios' ) - 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) + data_criacao = models.DateTimeField(_('Data de criação'), null=True, blank=True, auto_now_add=True) + descricao = models.TextField(_('Descrição'), blank=True, null=True) usuario = models.ForeignKey( 'servidores.Servidor', on_delete=models.PROTECT, - verbose_name=_(u'Usuário') + verbose_name=_('Usuário') ) - novo_status = models.IntegerField(_(u'Novo status'), choices=Ocorrencia.STATUS_CHOICES, blank=True, null=True) + novo_status = models.IntegerField(_('Novo status'), choices=Ocorrencia.STATUS_CHOICES, blank=True, null=True) encaminhar_setor = models.ForeignKey( 'servidores.Servico', on_delete=models.PROTECT, - verbose_name=_(u'Encaminhar para setor'), + verbose_name=_('Encaminhar para setor'), blank=True, null=True ) @@ -142,15 +142,15 @@ class Anexo(models.Model): ocorrencia = models.ForeignKey( Ocorrencia, on_delete=models.CASCADE, - verbose_name=_(u'ocorrência') + verbose_name=_('ocorrência') ) - arquivo = models.FileField(_(u'Arquivo anexado'), upload_to='apps/ocorrencia/anexo/arquivo', max_length=500) - 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) + arquivo = models.FileField(_('Arquivo anexado'), upload_to='apps/ocorrencia/anexo/arquivo', max_length=500) + descricao = models.CharField(_('descrição do anexo'), max_length='70') + data_pub = models.DateTimeField(_('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 = _('Anexo'), _('Anexos') def __unicode__(self): - return u"%(arquivo_name)s: %(descricao)s" % {'arquivo_name': self.arquivo.name, 'descricao': self.descricao} + return "%(arquivo_name)s: %(descricao)s" % {'arquivo_name': self.arquivo.name, 'descricao': self.descricao} diff --git a/sigi/apps/ocorrencias/views.py b/sigi/apps/ocorrencias/views.py index 681f4fc..93b910c 100644 --- a/sigi/apps/ocorrencias/views.py +++ b/sigi/apps/ocorrencias/views.py @@ -34,7 +34,7 @@ def painel_ocorrencias(request): if tipo == 'casa': casa = get_object_or_404(Orgao, pk=id) ocorrencias = casa.ocorrencia_set.all() - panel_title = u"{casa}, {uf}".format( + panel_title = "{casa}, {uf}".format( casa=casa.nome, uf=casa.municipio.uf.sigla ) @@ -42,8 +42,8 @@ def painel_ocorrencias(request): servidor = get_object_or_404(Servidor, pk=id) panel_title = servidor.nome_completo - paineis = {'gerente': u"Minhas casas", 'servico': u"Meu setor", - 'timeline': u"Comentados por mim"} + paineis = {'gerente': "Minhas casas", 'servico': "Meu setor", + 'timeline': "Comentados por mim"} if painel is None: if Orgao.objects.filter( @@ -72,7 +72,7 @@ def painel_ocorrencias(request): elif tipo == 'servico': servico = get_object_or_404(Servico, pk=id) ocorrencias = servico.ocorrencia_set.all() - panel_title = _(u"{sigla} - {nome}").format( + panel_title = _("{sigla} - {nome}").format( sigla=servico.sigla, nome=servico.nome) ocorrencias = ocorrencias.filter(status__in=[1, 2]) @@ -103,7 +103,7 @@ def painel_ocorrencias(request): def busca_nominal(request, origin="tudo"): term = request.GET.get('term', None) if term is None: - return JsonResponse([{'label': _(u'Erro na pesquisa por termo'), 'value': 'type=error'}], safe=False) + return JsonResponse([{'label': _('Erro na pesquisa por termo'), 'value': 'type=error'}], safe=False) data = [] @@ -131,10 +131,10 @@ def muda_prioridade(request): prioridade = request.POST.get('prioridade', None) if id_ocorrencia is None or prioridade is None: - return JsonResponse({'result': 'error', 'message': _(u'Erro nos parâmetros')}) + return JsonResponse({'result': 'error', 'message': _('Erro nos parâmetros')}) if not any([int(prioridade) == p[0] for p in Ocorrencia.PRIORITY_CHOICES]): - return JsonResponse({'result': 'error', 'message': _(u'Valor de prioridade não aceito')}) + return JsonResponse({'result': 'error', 'message': _('Valor de prioridade não aceito')}) try: ocorrencia = Ocorrencia.objects.get(pk=id_ocorrencia) @@ -144,14 +144,14 @@ def muda_prioridade(request): ocorrencia.prioridade = prioridade ocorrencia.save() - return JsonResponse({'result': 'success', 'message': _(u'Prioridade alterada')}) + return JsonResponse({'result': 'success', 'message': _('Prioridade alterada')}) @login_required def exclui_anexo(request): anexo_id = request.GET.get('anexo_id', None) if anexo_id is None: - return JsonResponse({'result': 'error', 'message': _(u'Erro nos parâmetros')}) + return JsonResponse({'result': 'error', 'message': _('Erro nos parâmetros')}) try: anexo = Anexo.objects.get(pk=anexo_id) @@ -167,7 +167,7 @@ def exclui_anexo(request): painel = render_to_string('ocorrencias/anexos_snippet.html', {'ocorrencia': ocorrencia}, context_instance=RequestContext(request)) - return JsonResponse({'result': 'success', 'message': _(u'Anexo %s excluído com sucesso' % (anexo_id,)), + return JsonResponse({'result': 'success', 'message': _('Anexo %s excluído com sucesso' % (anexo_id,)), 'link_label': link_label, 'anexos_panel': painel}) @login_required diff --git a/sigi/apps/parlamentares/admin.py b/sigi/apps/parlamentares/admin.py index c2c27f0..886dcd5 100644 --- a/sigi/apps/parlamentares/admin.py +++ b/sigi/apps/parlamentares/admin.py @@ -32,7 +32,7 @@ class PartidoAdmin(BaseModelAdmin): class ParlamentarNomeCompletoFilter(AlphabeticFilter): - title = _(u'Inicial do Nome Completo') + title = _('Inicial do Nome Completo') parameter_name = 'nome_completo' @@ -46,10 +46,10 @@ class ParlamentarAdmin(BaseModelAdmin): (None, { 'fields': ('nome_completo', 'nome_parlamentar', 'sexo'), }), - # (_(u'Endereço'), { + # (_('Endereço'), { # 'fields': ('logradouro', 'bairro', 'municipio', 'cep'), # }), - (_(u'Outras informações'), { + (_('Outras informações'), { 'fields': ('data_nascimento', 'email', 'pagina_web', 'foto'), }), ) @@ -67,12 +67,12 @@ class ParlamentarAdmin(BaseModelAdmin): q2 = len(request.session['carrinho_parlamentar']) quant = q2 - q1 if quant: - self.message_user(request, _(u"%s Parlamentares adicionados no carrinho") % (quant)) + self.message_user(request, _("%s Parlamentares adicionados no carrinho") % (quant)) else: - self.message_user(request, _(u"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 = _("Armazenar parlamentar no carrinho para exportar") class MandatoAdmin(BaseModelAdmin): @@ -102,7 +102,7 @@ class LegislaturaAdmin(BaseModelAdmin): def uf(self, obj): return obj.casa_legislativa.municipio.uf.sigla - uf.short_description = _(u'UF') + uf.short_description = _('UF') uf.admin_order_field = 'casa_legislativa__municipio__uf' def lookup_allowed(self, lookup, value): diff --git a/sigi/apps/parlamentares/models.py b/sigi/apps/parlamentares/models.py index c4a9a8d..f7d5f7f 100644 --- a/sigi/apps/parlamentares/models.py +++ b/sigi/apps/parlamentares/models.py @@ -18,8 +18,8 @@ class Partido(models.Model): class Parlamentar(models.Model): SEXO_CHOICES = ( - ('M', _(u'Masculino')), - ('F', _(u'Feminino')), + ('M', _('Masculino')), + ('F', _('Feminino')), ) nome_completo = models.CharField(max_length=128) nome_parlamentar = models.CharField(max_length=35, blank=True) @@ -36,17 +36,17 @@ class Parlamentar(models.Model): choices=SEXO_CHOICES, ) data_nascimento = models.DateField( - _(u'data de nascimento'), + _('data de nascimento'), blank=True, null=True, ) - email = models.EmailField(_(u'e-mail'), blank=True) - pagina_web = models.URLField(_(u'página web'), + email = models.EmailField(_('e-mail'), blank=True) + pagina_web = models.URLField(_('página web'), blank=True) class Meta: ordering = ('nome_completo',) - verbose_name_plural = _(u'parlamentares') + verbose_name_plural = _('parlamentares') def __unicode__(self): if self.nome_parlamentar: @@ -56,8 +56,8 @@ class Parlamentar(models.Model): class Mandato(models.Model): SUPLENCIA_CHOICES = ( - ('T', _(u'Titular')), - ('S', _(u'Suplente')), + ('T', _('Titular')), + ('S', _('Suplente')), ) parlamentar = models.ForeignKey(Parlamentar, on_delete=models.CASCADE) legislatura = models.ForeignKey( @@ -66,16 +66,16 @@ class Mandato(models.Model): ) partido = models.ForeignKey(Partido, on_delete=models.CASCADE) cargo = models.ForeignKey('parlamentares.Cargo', on_delete=models.PROTECT) - inicio_mandato = models.DateField(_(u'início de mandato')) - fim_mandato = models.DateField(_(u'fim de mandato')) + inicio_mandato = models.DateField(_('início de mandato')) + fim_mandato = models.DateField(_('fim de mandato')) is_afastado = models.BooleanField( - _(u'afastado'), + _('afastado'), default=False, - help_text=_(u'Marque caso parlamentar não esteja ativo.') + help_text=_('Marque caso parlamentar não esteja ativo.') ) # suplencia = models.CharField( -# _(u'suplência'), +# _('suplência'), # max_length=1, # choices=SUPLENCIA_CHOICES, # ) @@ -86,11 +86,11 @@ class Mandato(models.Model): class Legislatura(models.Model): casa_legislativa = models.ForeignKey(Orgao, on_delete=models.CASCADE) - 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(_('número legislatura')) + data_inicio = models.DateField(_('início')) + data_fim = models.DateField(_('fim')) + data_eleicao = models.DateField(_('data da eleição')) + total_parlamentares = models.PositiveIntegerField(_("Total de parlamentares")) casa_legislativa.convenio_uf_filter = True casa_legislativa.convenio_cl_tipo_filter = True @@ -100,7 +100,7 @@ class Legislatura(models.Model): ordering = ['casa_legislativa__municipio__uf__sigla', '-data_inicio'] def __unicode__(self): - return _(u"%(number)sª legislatura da %(parliament)s (%(initial_year)s-%(final_year)s)") % dict( + return _("%(number)sª legislatura da %(parliament)s (%(initial_year)s-%(final_year)s)") % dict( number=self.numero, parliament=self.casa_legislativa.__unicode__(), initial_year=self.data_inicio.year, @@ -111,15 +111,15 @@ class Coligacao(models.Model): nome = models.CharField(max_length=50) legislatura = models.ForeignKey(Legislatura, on_delete=models.CASCADE) numero_votos = models.PositiveIntegerField( - _(u'número de votos'), + _('número de votos'), blank=True, null=True, ) class Meta: ordering = ('legislatura', 'nome') - verbose_name = _(u'coligação') - verbose_name_plural = _(u'coligações') + verbose_name = _('coligação') + verbose_name_plural = _('coligações') def __unicode__(self): return self.nome @@ -129,7 +129,7 @@ class ComposicaoColigacao(models.Model): coligacao = models.ForeignKey( Coligacao, on_delete=models.CASCADE, - verbose_name=_(u'coligação') + verbose_name=_('coligação') ) partido = models.ForeignKey( 'parlamentares.Partido', @@ -137,8 +137,8 @@ class ComposicaoColigacao(models.Model): ) class Meta: - verbose_name = _(u'composição da coligação') - verbose_name_plural = _(u'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) @@ -146,14 +146,14 @@ class ComposicaoColigacao(models.Model): class SessaoLegislativa(models.Model): SESSAO_CHOICES = ( - ('O', _(u'Ordinária')), - ('E', _(u'Extraordinária')), + ('O', _('Ordinária')), + ('E', _('Extraordinária')), ) - numero = models.PositiveSmallIntegerField(_(u'número da sessão'), unique=True) + numero = models.PositiveSmallIntegerField(_('número da sessão'), unique=True) mesa_diretora = models.ForeignKey( 'MesaDiretora', on_delete=models.PROTECT, - verbose_name=_(u'Mesa Diretora') + verbose_name=_('Mesa Diretora') ) legislatura = models.ForeignKey(Legislatura, on_delete=models.CASCADE) tipo = models.CharField( @@ -161,23 +161,23 @@ class SessaoLegislativa(models.Model): choices=SESSAO_CHOICES, default='O' ) - data_inicio = models.DateField(_(u'início')) - data_fim = models.DateField(_(u'fim')) + data_inicio = models.DateField(_('início')) + data_fim = models.DateField(_('fim')) data_inicio_intervalo = models.DateField( - _(u'início de intervalo'), + _('início de intervalo'), blank=True, null=True ) data_fim_intervalo = models.DateField( - _(u'fim de intervalo'), + _('fim de intervalo'), blank=True, null=True ) class Meta: ordering = ('legislatura', 'numero') - verbose_name = _(u'Sessão Legislativa') - verbose_name_plural = _(u'Sessões Legislativas') + verbose_name = _('Sessão Legislativa') + verbose_name_plural = _('Sessões Legislativas') def __unicode__(self): return str(self.numero) @@ -187,19 +187,19 @@ class MesaDiretora(models.Model): casa_legislativa = models.ForeignKey( 'casas.Orgao', on_delete=models.CASCADE, - verbose_name=_(u'Casa Legislativa') + verbose_name=_('Casa Legislativa') ) class Meta: - verbose_name = _(u'Mesa Diretora') - verbose_name_plural = _(u'Mesas Diretoras') + verbose_name = _('Mesa Diretora') + verbose_name_plural = _('Mesas Diretoras') def __unicode__(self): - return _(u'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(_('descrição'), max_length=30) class Meta: ordering = ('descricao',) @@ -219,8 +219,8 @@ class MembroMesaDiretora(models.Model): class Meta: ordering = ('parlamentar',) unique_together = ('cargo', 'mesa_diretora') - verbose_name = _(u'membro de Mesa Diretora') - verbose_name_plural = _(u'membros de Mesa Diretora') + verbose_name = _('membro de Mesa Diretora') + verbose_name_plural = _('membros de Mesa Diretora') def __unicode__(self): return '%s (%s)' % (unicode(self.parlamentar), unicode(self.cargo)) diff --git a/sigi/apps/parlamentares/reports.py b/sigi/apps/parlamentares/reports.py index ec60439..1f0f826 100644 --- a/sigi/apps/parlamentares/reports.py +++ b/sigi/apps/parlamentares/reports.py @@ -85,7 +85,7 @@ class ParlamentaresLabels(Report): my_elements = [ Label( - text=_(u'A Sua Excelência o(a) Senhor(a)'), + text=_('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 +126,32 @@ def logradouro_parlamentar(instance): try: return instance.mandato_set.latest('inicio_mandato').legislatura.casa_legislativa.logradouro except: - return _(u"<>") + return _("<>") def bairro_parlamentar(instance): try: return instance.mandato_set.latest('inicio_mandato').legislatura.casa_legislativa.bairro except: - return _(u"<>") + return _("<>") def municipio_parlamentar(instance): try: return instance.mandato_set.latest('inicio_mandato').legislatura.casa_legislativa.municipio except: - return _(u"<>") + return _("<>") def cep_parlamentar(instance): try: return instance.mandato_set.latest('inicio_mandato').legislatura.casa_legislativa.cep except: - return _(u"<>") + return _("<>") class CasasLegislativasReport(ReportDefault): - title = _(u'Relatório de Casas Legislativas') + title = _('Relatório de Casas Legislativas') height = 80 * cm page_size = landscape(A4) @@ -170,10 +170,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=_("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=_("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 +181,32 @@ class CasasLegislativasReport(ReportDefault): style={'fontName': 'Helvetica-Bold', 'fontSize': 14, 'alignment': TA_CENTER} ), Label( - text=_(u"UF"), + text=_("UF"), left=label_left[0] * cm, top=label_top, ), Label( - text=_(u"Municipio"), + text=_("Municipio"), left=label_left[1] * cm, top=label_top, ), Label( - text=_(u"Presidente"), + text=_("Presidente"), left=label_left[2] * cm, top=label_top, ), Label( - text=_(u"Endereço"), + text=_("Endereço"), left=label_left[3] * cm, top=label_top, ), Label( - text=_(u"Endereço na Internet"), + text=_("Endereço na Internet"), left=label_left[4] * cm, top=label_top, ), Label( - text=_(u"Email"), + text=_("Email"), left=label_left[5] * cm, top=label_top, ), @@ -269,7 +269,7 @@ def label_text(text): class InfoOrgao(ReportDefault): - title = _(u'Casa Legislativa') + title = _('Casa Legislativa') class band_summary(ReportBand): pass @@ -278,7 +278,7 @@ class InfoOrgao(ReportDefault): height = 1 * cm elements = [ - SystemField(expression=_(u'%(now:%d/%m/%Y)s às %(now:%H:%M)s'), top=0.3 * cm), + SystemField(expression=_('%(now:%d/%m/%Y)s às %(now:%H:%M)s'), top=0.3 * cm), ] class band_detail(ReportDefault.band_detail): @@ -316,7 +316,7 @@ class InfoOrgao(ReportDefault): elements = [ Label( - text=label_text(_(u"Tipo")), + text=label_text(_("Tipo")), left=posicao_left[0] * cm, top=posicao_top[0] * cm, ), @@ -327,7 +327,7 @@ class InfoOrgao(ReportDefault): width=6 * cm, ), Label( - text=label_text(_(u"Região")), + text=label_text(_("Região")), left=posicao_left[2] * cm, top=posicao_top[1] * cm, ), @@ -336,11 +336,11 @@ class InfoOrgao(ReportDefault): left=posicao_left[3] * cm, top=posicao_top[1] * cm, get_value=lambda instance: - {'SL': _(u'Sul'), 'SD': _(u'Sudeste'), 'CO': _(u'Centro-Oeste'), 'NE': _(u'Nordeste'), 'NO': _(u'Norte'), } + {'SL': _('Sul'), 'SD': _('Sudeste'), 'CO': _('Centro-Oeste'), 'NE': _('Nordeste'), 'NO': _('Norte'), } [instance.municipio.uf.regiao] ), Label( - text=label_text(_(u"UF")), + text=label_text(_("UF")), left=posicao_left[4] * cm, top=posicao_top[2] * cm, ), @@ -350,7 +350,7 @@ class InfoOrgao(ReportDefault): top=posicao_top[2] * cm, ), Label( - text=label_text(_(u"Município")), + text=label_text(_("Município")), left=posicao_left[6] * cm, top=posicao_top[3] * cm, ), @@ -362,7 +362,7 @@ class InfoOrgao(ReportDefault): ), # Linha 3 Label( - text=label_text(_(u"Endereço")), + text=label_text(_("Endereço")), left=posicao_left[8] * cm, top=posicao_top[4] * cm, ), @@ -373,7 +373,7 @@ class InfoOrgao(ReportDefault): width=20 * cm, ), Label( - text=label_text(_(u"Bairro")), + text=label_text(_("Bairro")), left=posicao_left[10] * cm, top=posicao_top[5] * cm, ), @@ -383,7 +383,7 @@ class InfoOrgao(ReportDefault): top=posicao_top[5] * cm, ), Label( - text=label_text(_(u"CEP")), + text=label_text(_("CEP")), left=posicao_left[12] * cm, top=posicao_top[6] * cm, ), @@ -393,7 +393,7 @@ class InfoOrgao(ReportDefault): top=posicao_top[6] * cm, ), Label( - text=label_text(_(u"CNPJ")), + text=label_text(_("CNPJ")), left=posicao_left[14] * cm, top=posicao_top[7] * cm, ), @@ -403,7 +403,7 @@ class InfoOrgao(ReportDefault): top=posicao_top[7] * cm, ), Label( - text=label_text(_(u"Telefone")), + text=label_text(_("Telefone")), left=posicao_left[16] * cm, top=posicao_top[8] * cm, ), @@ -413,7 +413,7 @@ class InfoOrgao(ReportDefault): top=posicao_top[8] * cm, ), Label( - text=label_text(_(u"Presidente")), + text=label_text(_("Presidente")), left=posicao_left[18] * cm, top=posicao_top[9] * cm, ), @@ -442,14 +442,14 @@ class InfoOrgao(ReportDefault): height=2.5 * cm, elements=[ Label( - text=_(u"Telefone(s)"), + text=_("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=_("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}, ), @@ -460,7 +460,7 @@ class InfoOrgao(ReportDefault): ObjectValue(attribute_name='__unicode__', left=tel_left[0] * cm), ObjectValue(attribute_name='tipo', left=tel_left[1] * cm, get_value=lambda instance: - {'F': _(u'Fixo'), 'M': _(u'Móvel'), 'X': _(u'Fax'), 'I': _(u'Indefinido')}[instance.tipo], + {'F': _('Fixo'), 'M': _('Móvel'), 'X': _('Fax'), 'I': _('Indefinido')}[instance.tipo], ), ObjectValue(attribute_name='nota', left=tel_left[2] * cm), ], @@ -475,14 +475,14 @@ class InfoOrgao(ReportDefault): height=2.5 * cm, elements=[ Label( - text=_(u"Contato(s)"), + text=_("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=_("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}, ), @@ -505,18 +505,18 @@ class InfoOrgao(ReportDefault): height=2.5 * cm, elements=[ Label( - text=_(u"Convênio(s)"), + text=_("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=_("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/relatorios/reports.py b/sigi/apps/relatorios/reports.py index a5d4b7a..217e479 100644 --- a/sigi/apps/relatorios/reports.py +++ b/sigi/apps/relatorios/reports.py @@ -13,8 +13,8 @@ from reportlab.lib.units import cm class ReportDefault(Report): #__metaclass__ = ABCMeta - title = _(u'Relatório') - author = _(u'Interlegis') + title = _('Relatório') + author = _('Interlegis') print_if_empty = True page_size = A4 @@ -35,10 +35,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=_(u"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=_(u"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 +52,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=_('%(now:%d/%m/%Y)s às %(now:%H:%M)s'), top=0.3 * cm), + SystemField(expression=_('Página %(page_number)d de %(page_count)d'), top=0.3 * cm, width=BAND_WIDTH, style={'alignment': TA_RIGHT} ), ] @@ -67,7 +67,7 @@ class ReportDefault(Report): class band_summary(ReportBand): height = 0.8 * cm elements = [ - Label(text=_(u"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 2ae9de5..c39dab6 100644 --- a/sigi/apps/servicos/admin.py +++ b/sigi/apps/servicos/admin.py @@ -53,18 +53,18 @@ class TipoServicoAdmin(BaseModelAdmin): ordering = ['id'] class DataUtimoUsoFilter(admin.SimpleListFilter): - title = _(u"Atualização") + title = _("Atualização") parameter_name = 'atualizacao' def lookups(self, request, model_admin): return ( - ('err', _(u"Erro na verificação")), - ('year', _(u"Sem atualização há um ano ou mais")), - ('semester', _(u"Sem atualização de seis meses a um ano")), - ('quarter', _(u"Sem atualização de três a seis meses")), - ('month', _(u"Sem atualização de um a três meses")), - ('week', _(u"Sem atualização de uma semana a um mês")), - ('updated', _(u"Atualizado na última semana")), + ('err', _("Erro na verificação")), + ('year', _("Sem atualização há um ano ou mais")), + ('semester', _("Sem atualização de seis meses a um ano")), + ('quarter', _("Sem atualização de três a seis meses")), + ('month', _("Sem atualização de um a três meses")), + ('week', _("Sem atualização de uma semana a um mês")), + ('updated', _("Atualizado na última semana")), ) def queryset(self, request, queryset): @@ -94,13 +94,13 @@ class DataUtimoUsoFilter(admin.SimpleListFilter): return queryset class ServicoAtivoFilter(admin.SimpleListFilter): - title = _(u"Serviço ativo") + title = _("Serviço ativo") parameter_name = 'ativo' def lookups(self, request, model_admin): return ( - ('ativo', _(u"Ativo")), - ('desativado', _(u"Desativado")), + ('ativo', _("Ativo")), + ('desativado', _("Desativado")), ) def queryset(self, request, queryset): @@ -120,13 +120,13 @@ class ServicoAdmin(BaseModelAdmin): fieldsets = ((None, { 'fields': ('casa_legislativa', 'data_ativacao',) }), - (_(u'Serviço'), { + (_('Serviço'), { 'fields': ('tipo_servico', ('url', 'hospedagem_interlegis'), ('nome_servidor', 'porta_servico', 'senha_inicial'),) }), - (_(u'Contatos'), { + (_('Contatos'), { 'fields': ('contato_tecnico', 'contato_administrativo',) }), - (_(u'Alterações'), { + (_('Alterações'), { 'fields': ('data_alteracao', 'data_desativacao', 'motivo_desativacao',) })) readonly_fields = ('casa_legislativa', 'data_ativacao', 'data_alteracao') @@ -146,30 +146,30 @@ 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 = _('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 = _(u'UF') + return '%s' % (obj.casa_legislativa.municipio.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 = _(u'Url') + return '%s' % (obj.url, obj.url) + getUrl.short_description = _('Url') getUrl.allow_tags = True def get_link_erro(self, obj): if not obj.erro_atualizacao: - return u"" + return "" url = obj.url if url[-1] != '/': url += '/' if obj.tipo_servico.string_pesquisa: url += obj.tipo_servico.string_pesquisa.splitlines()[0].split(" ")[0] - return u'%s' % (url, obj.erro_atualizacao) + return '%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 = _("Erro na atualização") get_link_erro.admin_order_field = 'erro_atualizacao' def adicionar_servicos(self, request, queryset): @@ -181,19 +181,19 @@ class ServicoAdmin(BaseModelAdmin): q2 = len(request.session['carrinho_servicos']) quant = q2 - q1 if quant: - self.message_user(request, str(q2 - q1) + _(u" Serviços adicionados no carrinho")) + self.message_user(request, str(q2 - q1) + _(" Serviços adicionados no carrinho")) else: - self.message_user(request, _(u"Os Serviços selecionados já foram adicionadas anteriormente")) + self.message_user(request, _("Os Serviços selecionados já foram adicionadas anteriormente")) return HttpResponseRedirect('.') - adicionar_servicos.short_description = _(u"Armazenar serviços no carrinho para exportar") + adicionar_servicos.short_description = _("Armazenar serviços no carrinho para exportar") def calcular_data_uso(self, request, queryset): for servico in queryset: servico.atualiza_data_uso() - self.message_user(request, _(u"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 = _("Atualizar a data do último uso do(s) serviço(s)") def get_actions(self, request): from django.utils.datastructures import SortedDict @@ -217,10 +217,10 @@ class ServicoAdmin(BaseModelAdmin): def response_add(self, request, obj): opts = obj._meta - msg = _(u'The %(name)s "%(obj)s" was added successfully.') % {'name': force_unicode(opts.verbose_name), 'obj': force_unicode(obj)} + msg = _('The %(name)s "%(obj)s" was added successfully.') % {'name': force_unicode(opts.verbose_name), 'obj': force_unicode(obj)} if "_addanother" in request.POST: - self.message_user(request, msg + ' ' + (_(u"You may add another %s below.") % force_unicode(opts.verbose_name))) + self.message_user(request, msg + ' ' + (_("You may add another %s below.") % force_unicode(opts.verbose_name))) return HttpResponseRedirect(request.path + '?id_casa=%s' % (obj.casa_legislativa.id,)) elif "_save" in request.POST: self.message_user(request, msg) @@ -230,10 +230,10 @@ class ServicoAdmin(BaseModelAdmin): def response_change(self, request, obj): opts = obj._meta - msg = _(u'The %(name)s "%(obj)s" was changed successfully.') % {'name': force_unicode(opts.verbose_name), 'obj': force_unicode(obj)} + msg = _('The %(name)s "%(obj)s" was changed successfully.') % {'name': force_unicode(opts.verbose_name), 'obj': force_unicode(obj)} if "_addanother" in request.POST: - self.message_user(request, msg + ' ' + (_(u"You may add another %s below.") % force_unicode(opts.verbose_name))) + self.message_user(request, msg + ' ' + (_("You may add another %s below.") % force_unicode(opts.verbose_name))) return HttpResponseRedirect("../add/?id_casa=%s" % (obj.casa_legislativa.id,)) elif "_save" in request.POST: self.message_user(request, msg) @@ -275,11 +275,11 @@ class ServicoAdmin(BaseModelAdmin): q2 = len(request.session['carrinho_servicos']) quant = q2 - q1 if quant: - self.message_user(request, str(q2 - q1) + _(u" Convênios adicionados no carrinho")) + self.message_user(request, str(q2 - q1) + _(" Convênios adicionados no carrinho")) else: - self.message_user(request, _(u"Os Convênios selecionados já foram adicionadas anteriormente")) + self.message_user(request, _("Os Convênios selecionados já foram adicionadas anteriormente")) return HttpResponseRedirect('.') - adicionar_servicos.short_description = _(u"Armazenar Serviços no carrinho para exportar") + adicionar_servicos.short_description = _("Armazenar Serviços no carrinho para exportar") @@ -316,15 +316,15 @@ class CasaAtendidaAdmin(BaseModelAdmin): def get_servicos(self, obj): result = [] for servico in obj.servico_set.all(): - result.append(u"%s (%s). %s: %s" % ( + result.append("%s (%s). %s: %s" % ( servico.tipo_servico.nome, - _(u'ativo') if servico.data_desativacao is None else _(u'desativado'), - _(u'Contato'), + _('ativo') if servico.data_desativacao is None else _('desativado'), + _('Contato'), servico.contato_administrativo.nome)) return "
  • " + "
  • ".join(result) + "
" get_servicos.allow_tags = True - get_servicos.short_description = _(u"Serviços") + get_servicos.short_description = _("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 f21a35b..7605c41 100644 --- a/sigi/apps/servicos/management/commands/atualiza_uso_servico.py +++ b/sigi/apps/servicos/management/commands/atualiza_uso_servico.py @@ -28,7 +28,7 @@ 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 = _('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']) @@ -36,4 +36,4 @@ class Command(BaseCommand): for obj in queryset: obj.atualiza_data_uso() if ((verbosity == 1) and (obj.data_ultimo_uso is None)) or (verbosity > 1): - self.stdout.write(u"%s \t %s \t %s\n" % (obj.url, obj.data_ultimo_uso, obj.erro_atualizacao)) + self.stdout.write("%s \t %s \t %s\n" % (obj.url, obj.data_ultimo_uso, obj.erro_atualizacao)) diff --git a/sigi/apps/servicos/management/commands/importa_servico.py b/sigi/apps/servicos/management/commands/importa_servico.py index 8b76105..f0de687 100644 --- a/sigi/apps/servicos/management/commands/importa_servico.py +++ b/sigi/apps/servicos/management/commands/importa_servico.py @@ -10,17 +10,17 @@ from sigi.apps.casas.models import Orgao, Funcionario class Command(BaseCommand): args = "nome_do_arquivo.txt" - help = u""" + help = """ Importa dados de serviços de arquivos TXT gerados pela COTIN. """ def handle(self, *args, **options): if len(args) != 1: - raise CommandError(u"Informe UM arquivo TXT a importar") + raise CommandError("Informe UM arquivo TXT a importar") file_name = args[0] - self.stdout.write(u'Verificando estrutura do arquivo...') + self.stdout.write('Verificando estrutura do arquivo...') if not os.path.isfile(file_name): - raise CommandError(u"Arquivo '%s' não encontrado" % file_name) + raise CommandError("Arquivo '%s' não encontrado" % file_name) with open(file_name, 'r') as f: reader = csv.DictReader(f, delimiter=" ") @@ -28,8 +28,8 @@ Importa dados de serviços de arquivos TXT gerados pela COTIN. not 'NAME' in reader.fieldnames or not 'COD_ORGAO' in reader.fieldnames): print reader.fieldnames - raise CommandError(u"Formato inválido do arquivo.") - self.stdout.write(u'Estrutura parece ok.') + raise CommandError("Formato inválido do arquivo.") + self.stdout.write('Estrutura parece ok.') self.stdout.write("Preparando dados...") casas = { to_ascii(c.municipio.nome).replace(' ','').replace('-','').replace("'", '').lower() @@ -79,7 +79,7 @@ Importa dados de serviços de arquivos TXT gerados pela COTIN. if nome_casa.startswith('cm'): nome_casa = nome_casa.replace('cm','') - url = u"https://{subdominio}.{dominio}.{sufixo}".format( + url = "https://{subdominio}.{dominio}.{sufixo}".format( subdominio=subdominios[sigla], dominio=dominio, sufixo=sufixo @@ -152,7 +152,7 @@ Importa dados de serviços de arquivos TXT gerados pela COTIN. try: contato, created = casa.funcionario_set.get_or_create( setor='contato_interlegis', - defaults={'nome': u"<>"} + defaults={'nome': "<>"} ) except Funcionario.MultipleObjectsReturned: contato = casa.funcionario_set.filter( @@ -174,8 +174,8 @@ Importa dados de serviços de arquivos TXT gerados pela COTIN. servico.save() except Servico.MultipleObjectsReturned: self.stdout.write( - u"{template} {name} {cod_orgao} mais de um servico " - u"encontrado ({s})".format( + "{template} {name} {cod_orgao} mais de um servico " + "encontrado ({s})".format( template=template, name=name, cod_orgao=cod_orgao, @@ -190,14 +190,14 @@ Importa dados de serviços de arquivos TXT gerados pela COTIN. data_alteracao__lt=agora ).update( data_desativacao=agora, - motivo_desativacao=(u"[AUTOMÁTICO] Não consta da lista " - u"da COTIN") + motivo_desativacao=("[AUTOMÁTICO] Não consta da lista " + "da COTIN") ) else: self.stdout.write( - self.style.ERROR(u"Os serviços excendentes não podem ser " - u"desativados porque foram encontradas " - u"inconsistências no arquivo de origem") + self.style.ERROR("Os serviços excendentes não podem ser " + "desativados porque foram encontradas " + "inconsistências no arquivo de origem") ) diff --git a/sigi/apps/servicos/models.py b/sigi/apps/servicos/models.py index 0eaf148..9f4e930 100644 --- a/sigi/apps/servicos/models.py +++ b/sigi/apps/servicos/models.py @@ -8,40 +8,40 @@ from django.utils.translation import gettext as _ class TipoServico(models.Model): MODO_CHOICES = ( - ('H', _(u"Hospedagem")), - ('R', _(u"Registro")) + ('H', _("Hospedagem")), + ('R', _("Registro")) ) - email_help = u'''Use:
+ email_help = '''Use:
{url} para incluir a URL do serviço,
{senha} para incluir a senha inicial do serviço''' - string_pesquisa_help = (u"Parâmetros da pesquisa para averiguar a data da " - u"última atualização do serviço. Formato:
" - u"
  • /caminho/da/pesquisa/?parametros " - u"[xml|json] campo.de.data
  • ") - nome = models.CharField(_(u'nome'), max_length=60) - sigla = models.CharField(_(u'sigla'), max_length='12') + string_pesquisa_help = ("Parâmetros da pesquisa para averiguar a data da " + "última atualização do serviço. Formato:
    " + "
    • /caminho/da/pesquisa/?parametros " + "[xml|json] campo.de.data
    • ") + nome = models.CharField(_('nome'), max_length=60) + sigla = models.CharField(_('sigla'), max_length='12') modo = models.CharField( - _(u'modo de prestação do serviço'), + _('modo de prestação do serviço'), max_length=1, choices=MODO_CHOICES ) string_pesquisa = models.TextField( - _(u'string de pesquisa'), + _('string de pesquisa'), blank=True, help_text=string_pesquisa_help ) - 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) + template_email_ativa = models.TextField(_('Template de email de ativação'), help_text=email_help, blank=True) + template_email_altera = models.TextField(_('Template de email de alteração'), help_text=email_help, blank=True) + template_email_desativa = models.TextField(_('Template de email de desativação'), help_text=email_help + _('
      {motivo} para incluir o motivo da desativação do serviço'), blank=True) @property def qtde_casas_atendidas(self): - u"""Quantidade de casas atendidas""" + """Quantidade de casas atendidas""" 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 = _('Tipo de serviço') + verbose_name_plural = _('Tipos de serviço') def __unicode__(self): return self.nome @@ -51,75 +51,75 @@ class Servico(models.Model): casa_legislativa = models.ForeignKey( Orgao, on_delete=models.PROTECT, - verbose_name=_(u'Casa Legislativa') + verbose_name=_('Casa Legislativa') ) tipo_servico = models.ForeignKey( TipoServico, on_delete=models.PROTECT, - verbose_name=_(u'Tipo de serviço') + verbose_name=_('Tipo de serviço') ) contato_tecnico = models.ForeignKey( Funcionario, on_delete=models.PROTECT, - verbose_name=_(u'Contato técnico'), + verbose_name=_('Contato técnico'), related_name='contato_tecnico' ) contato_administrativo = models.ForeignKey( Funcionario, on_delete=models.PROTECT, - verbose_name=_(u'Contato administrativo'), + verbose_name=_('Contato administrativo'), related_name='contato_administrativo' ) - url = models.URLField(_(u'URL do serviço'), blank=True) + url = models.URLField(_('URL do serviço'), blank=True) hospedagem_interlegis = models.BooleanField( - _(u'Hospedagem no Interlegis?'), + _('Hospedagem no Interlegis?'), default=False ) nome_servidor = models.CharField( - _(u'Hospedado em'), + _('Hospedado em'), max_length=60, blank=True, - help_text=_(u'Se hospedado no Interlegis, informe o nome do servidor.' - u'
      Senão, informe o nome do provedor de serviços.') + help_text=_('Se hospedado no Interlegis, informe o nome do servidor.' + '
      Senão, informe o nome do provedor de serviços.') ) porta_servico = models.PositiveSmallIntegerField( - _(u'Porta de serviço (instância)'), + _('Porta de serviço (instância)'), blank=True, null=True ) senha_inicial = models.CharField( - _(u'Senha inicial'), + _('Senha inicial'), max_length=33, blank=True ) - data_ativacao = models.DateField(_(u'Data de ativação'), default=date.today) + data_ativacao = models.DateField(_('Data de ativação'), default=date.today) data_alteracao = models.DateField( - _(u'Data da última alteração'), + _('Data da última alteração'), blank=True, null=True, auto_now=True ) data_desativacao = models.DateField( - _(u'Data de desativação'), + _('Data de desativação'), blank=True, null=True ) motivo_desativacao = models.TextField( - _(u'Motivo da desativação'), + _('Motivo da desativação'), blank=True ) data_ultimo_uso = models.DateField( - _(u'Data da última utilização'), + _('Data da última utilização'), blank=True, null=True, - help_text=_(u'Data em que o serviço foi utilizado pela Casa Legislativa' - u' pela última vez') + help_text=_('Data em que o serviço foi utilizado pela Casa Legislativa' + ' pela última vez') ) erro_atualizacao = models.TextField( - _(u"Erro na atualização"), + _("Erro na atualização"), blank=True, - help_text=_(u"Erro ocorrido na última tentativa de verificar a data " - u"de última atualização do serviço") + help_text=_("Erro ocorrido na última tentativa de verificar a data " + "de última atualização do serviço") ) # casa_legislativa.casa_uf_filter = True @@ -140,8 +140,8 @@ class Servico(models.Model): if len(param_pesquisa) != 3: return { 'data': '', - 'erro':_(u"String de pesquisa mal configurada"), - 'comment':_(u"Corrija a string de pesquisa") + 'erro':_("String de pesquisa mal configurada"), + 'comment':_("Corrija a string de pesquisa") } campos = [int(s) if s.isdigit() else s for s in param_pesquisa[2].split('.')] @@ -154,9 +154,9 @@ class Servico(models.Model): return { 'data': '', 'erro':str(e), - 'comment':_(u"Não foi possível conectar com o servidor. " - u"Pode estar fora do ar ou não ser " - u"um {tipo}".format( + 'comment':_("Não foi possível conectar com o servidor. " + "Pode estar fora do ar ou não ser " + "um {tipo}".format( tipo=self.tipo_servico.nome)) } @@ -164,8 +164,8 @@ class Servico(models.Model): return { 'data': '', 'erro': req.reason, - 'comment':_(u"Não foi possível receber os dados do " - u"servidor. O acesso pode ter sido negado.") + 'comment':_("Não foi possível receber os dados do " + "servidor. O acesso pode ter sido negado.") } try: @@ -176,7 +176,7 @@ class Servico(models.Model): else: return { 'data': '', - 'erro': _(u'String de pesquisa mal configurada'), + 'erro': _('String de pesquisa mal configurada'), 'comment': '' } @@ -185,8 +185,8 @@ class Servico(models.Model): if (len(data)-1) < c: return { 'data': '', - 'erro': _(u'Sem dados para verificação'), - 'comment': _(u'Parece que nunca foi usado') + 'erro': _('Sem dados para verificação'), + 'comment': _('Parece que nunca foi usado') } data = data[c] else: @@ -204,7 +204,7 @@ class Servico(models.Model): return { 'data': '', 'erro': str(e), - 'comment': _(u"Parece que não é um {tipo}".format( + 'comment': _("Parece que não é um {tipo}".format( tipo=self.tipo_servico.nome)) } @@ -216,7 +216,7 @@ class Servico(models.Model): if not url: reset() - self.erro_atualizacao = _(u"Serviço sem URL") + self.erro_atualizacao = _("Serviço sem URL") self.save() return @@ -234,7 +234,7 @@ class Servico(models.Model): # Nenhuma busca deu resultado, guardar log de erro self.data_ultimo_uso = None self.erro_atualizacao = "
      ".join(set( - [u"{erro} ({comment})".format(erro=r['erro'], + ["{erro} ({comment})".format(erro=r['erro'], comment=r['comment']) for r in resultados if r['erro'] != '' and r['comment'] != '' ])) @@ -248,7 +248,7 @@ class Servico(models.Model): return def __unicode__(self): - return "%s (%s)" % (self.tipo_servico.nome, _(u'ativo') if self.data_desativacao is None else _(u'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 @@ -258,11 +258,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 = _('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 = _('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 @@ -270,7 +270,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 = _('INTERLEGIS - Alteração de serviço %s') % (self.tipo_servico.nome,) body = self.tipo_servico.template_email_altera else: # Salvar o Servico @@ -295,18 +295,18 @@ class LogServico(models.Model): servico = models.ForeignKey( Servico, on_delete=models.CASCADE, - verbose_name=_(u'Serviço') + verbose_name=_('Serviço') ) - descricao = models.CharField(_(u'Breve descrição da ação'), max_length=60) - data = models.DateField(_(u'Data da ação'), default=date.today) - log = models.TextField(_(u'Log da açã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 = _(u'Log do serviço') - verbose_name_plural = _(u'Logs do serviço') + verbose_name = _('Log do serviço') + verbose_name_plural = _('Logs do serviço') class CasaAtendidaManager(models.Manager): @@ -321,7 +321,7 @@ class CasaAtendida(Orgao): class Meta: proxy = True - verbose_name_plural = _(u'Casas atendidas') + verbose_name_plural = _('Casas atendidas') objects = CasaAtendidaManager() @@ -330,16 +330,16 @@ class CasaManifesta(models.Model): casa_legislativa = models.OneToOneField(Orgao, on_delete=models.CASCADE) 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(_('Nome do informante'), max_length=100, blank=True) + cargo = models.CharField(_('Cargo do informante'), max_length=100, blank=True) + email = models.EmailField(_('E-mail de contato'), blank=True) class ServicoManifesto(models.Model): casa_manifesta = models.ForeignKey(CasaManifesta, on_delete=models.CASCADE) servico = models.ForeignKey(TipoServico, on_delete=models.CASCADE) url = models.URLField(blank=True) - hospedagem_interlegis = models.BooleanField(_(u'Hospedagem no Interlegis?'), default=False) + hospedagem_interlegis = models.BooleanField(_('Hospedagem no Interlegis?'), default=False) class Meta: unique_together = ('casa_manifesta', 'servico') @@ -352,5 +352,5 @@ class RegistroServico(models.Model): data_registro = models.DateTimeField(auto_now=True) class Meta: - verbose_name_plural = _(u'Registro de serviços') + verbose_name_plural = _('Registro de serviços') diff --git a/sigi/apps/servicos/views.py b/sigi/apps/servicos/views.py index 1696cab..56ef66d 100644 --- a/sigi/apps/servicos/views.py +++ b/sigi/apps/servicos/views.py @@ -90,9 +90,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=_('Possui o serviço de %s') % ts.nome, required=False) + campos['url_%s' % ts.pk] = forms.URLField(label=_('Informe a URL'), required=False) + campos['hospedagem_interlegis_%s' % ts.pk] = forms.BooleanField(label=_('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) @@ -106,21 +106,21 @@ 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((_('Informante'), cmf.cleaned_data['informante'])) + thanks.append((_('Cargo'), cmf.cleaned_data['cargo'])) + thanks.append((_('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 %(url)s %(obs)s') % dict( + thanks.append((ts.nome, _('Possui o serviço acessível em %(url)s %(obs)s') % dict( url=sm.url, - obs=_(u'hospedado no Interlegis') if sm.hospedagem_interlegis else ''))) + obs=_('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, _('Não possui'))) extra_context = {'casa': casa, 'thanks': thanks} else: extra_context = {'casa': casa, 'cmf': cmf} @@ -198,7 +198,7 @@ def adicionar_servicos_carrinho(request, queryset=None, id=None): def excluir_carrinho(request): if 'carrinho_servicos' in request.session: del request.session['carrinho_servicos'] - messages.info(request, u'O carrinho foi esvaziado') + messages.info(request, 'O carrinho foi esvaziado') return HttpResponseRedirect('../../') @login_required @@ -282,31 +282,31 @@ def export_csv(request): if not servicos: return HttpResponseRedirect('../') - atributos = [_(u"Casa Legislativa"), _(u"Contato Interlegis"), _(u"Produto"), - _(u"Data de Ativação"), ] + atributos = [_("Casa Legislativa"), _("Contato Interlegis"), _("Produto"), + _("Data de Ativação"), ] 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 _("Casa Legislativa") in col_titles: + pos = col_titles.index(_("Casa Legislativa")) + 1 + col_titles.insert(pos, _("uf")) pos+=1 - col_titles.insert(pos, _(u"email")) + col_titles.insert(pos, _("email")) pos+=1 - col_titles.insert(pos, _(u"telefone")) + col_titles.insert(pos, _("telefone")) - if _(u"Contato Interlegis") in col_titles: - pos = col_titles.index(_(u"Contato Interlegis")) + 1 - col_titles.insert(pos, _(u"Email do contato")) + if _("Contato Interlegis") in col_titles: + pos = col_titles.index(_("Contato Interlegis")) + 1 + col_titles.insert(pos, _("Email do contato")) csv_writer.writerow([s.encode("utf-8") for s in col_titles]) for servico in servicos: lista = [] for atributo in atributos: - if _(u"Casa Legislativa") == atributo: + if _("Casa Legislativa") == atributo: lista.append(servico.casa_legislativa.nome.encode("utf-8")) lista.append(servico.casa_legislativa.municipio.uf.sigla.encode("utf-8")) lista.append(servico.casa_legislativa.email.encode("utf-8")) @@ -314,16 +314,16 @@ def export_csv(request): lista.append(servico.casa_legislativa.telefone) else: lista.append("") - elif _(u"Contato Interlegis") == atributo: + elif _("Contato Interlegis") == atributo: if servico.casa_legislativa.contato_interlegis is not None: lista.append(servico.casa_legislativa.contato_interlegis) lista.append(servico.casa_legislativa.contato_interlegis.email.encode("utf-8")) else: lista.append("") lista.append("") - elif _(u"Produto") == atributo: + elif _("Produto") == atributo: lista.append(servico.tipo_servico.nome.encode("utf-8")) - elif _(u"Data de Ativação") == atributo: + elif _("Data de Ativação") == atributo: data = '' if servico.data_ativacao: data = servico.data_ativacao.strftime("%d/%m/%Y") diff --git a/sigi/apps/servidores/admin.py b/sigi/apps/servidores/admin.py index 3c92f3d..585906c 100644 --- a/sigi/apps/servidores/admin.py +++ b/sigi/apps/servidores/admin.py @@ -10,15 +10,15 @@ from sigi.apps.utils.base_admin import BaseModelAdmin from sigi.apps.utils.filters import AlphabeticFilter class ServidorFilter(AlphabeticFilter): - title = _(u'Nome do Servidor') + title = _('Nome do Servidor') parameter_name = 'servidor__nome_completo' class ServicoFilter(admin.SimpleListFilter): - title = _(u"Subordinados à") + title = _("Subordinados à") parameter_name = 'subordinado__id__exact' def lookups(self, request, model_admin): - return ([('None', _(u"Nenhum"))] + + return ([('None', _("Nenhum"))] + [(s.id, s.nome) for s in Servico.objects.exclude(servico=None)]) def queryset(self, request, queryset): @@ -47,10 +47,10 @@ class ServidorInline(admin.TabularInline): def imagem_foto(sels, servidor): if servidor.foto: - return u''.format(url=servidor.foto.url) + return ''.format(url=servidor.foto.url) else: - return u"" - imagem_foto.short_description = _(u"foto") + return "" + imagem_foto.short_description = _("foto") imagem_foto.allow_tags = True def is_active(self, servidor): @@ -60,7 +60,7 @@ class ServidorInline(admin.TabularInline): return False is_active.admin_order_field = 'user__is_active' is_active.boolean = True - is_active.short_description = _(u'ativo') + is_active.short_description = _('ativo') @admin.register(Servico) @@ -83,7 +83,7 @@ class ServidorAdmin(BaseModelAdmin): (None, { 'fields': ('user', 'nome_completo', 'foto', 'servico',) }), - (_(u"outros órgãos"), { + (_("outros órgãos"), { 'fields': ('externo', 'orgao_origem', 'qualificacoes'), }), ) @@ -109,12 +109,12 @@ class ServidorAdmin(BaseModelAdmin): return False is_active.admin_order_field = 'user__is_active' is_active.boolean = True - is_active.short_description = _(u'ativo') + is_active.short_description = _('ativo') def imagem_foto(sels, servidor): if servidor.foto: - return u''.format(url=servidor.foto.url) + return ''.format(url=servidor.foto.url) else: - return u"" - imagem_foto.short_description = _(u"foto") + return "" + imagem_foto.short_description = _("foto") imagem_foto.allow_tags = True \ No newline at end of file diff --git a/sigi/apps/servidores/forms.py b/sigi/apps/servidores/forms.py index 0825aae..773b143 100644 --- a/sigi/apps/servidores/forms.py +++ b/sigi/apps/servidores/forms.py @@ -10,7 +10,7 @@ from sigi.apps.servidores.models import Ferias, Licenca, Funcao, Servidor def valida_data_inicial_menor_que_final(data, chave_ini, chave_fim): if data.get(chave_ini) >= data.get(chave_fim): raise forms.ValidationError(_( - u"A data de início deve ser menor que a data final. Verifique novamente")) + "A data de início deve ser menor que a data final. Verifique novamente")) class FeriasForm(forms.ModelForm): @@ -62,5 +62,5 @@ class FuncaoForm(forms.ModelForm): Periodo(funcao.inicio_funcao, funcao.fim_funcao), Periodo(data.get('inicio_funcao'), data.get('fim_funcao'))): raise forms.ValidationError(_( - u"Este período coincide com o de outra função exercida.")) + "Este período coincide com o de outra função exercida.")) return data diff --git a/sigi/apps/servidores/management/commands/mescla_servidor.py b/sigi/apps/servidores/management/commands/mescla_servidor.py index 9f23dfb..7ad62a8 100644 --- a/sigi/apps/servidores/management/commands/mescla_servidor.py +++ b/sigi/apps/servidores/management/commands/mescla_servidor.py @@ -4,12 +4,12 @@ from sigi.apps.servidores.models import Servidor from django.core.management.base import BaseCommand class Command(BaseCommand): - help = u'Transfere os dados do servidor OLD para o servidor NEW.' - args = u'old_id new_id' + help = 'Transfere os dados do servidor OLD para o servidor NEW.' + args = 'old_id new_id' def handle(self, *args, **options): if len(args) != 2: - self.stderr.write(u"Informe old_id e new_id") + self.stderr.write("Informe old_id e new_id") return old_id = args[0] @@ -19,42 +19,42 @@ class Command(BaseCommand): new = Servidor.objects.get(id=new_id) self.stdout.write(self.style.WARNING( - u"Transferir dados de {old_name} para {new_name}".format( + "Transferir dados de {old_name} para {new_name}".format( old_name=old.nome_completo, new_name=new.nome_completo ) )) - self.stdout.write(u"\t* Transferindo a carteira de atendimento...") + self.stdout.write("\t* Transferindo a carteira de atendimento...") for casa in old.casas_que_gerencia.all(): new.casas_que_gerencia.add(casa) old.casas_que_gerencia.remove(casa) - self.stdout.write(u"\t* Transferindo ocorrências registradas...") + self.stdout.write("\t* Transferindo ocorrências registradas...") old.ocorrencia_set.all().update(servidor_registro=new) - self.stdout.write(u"\t* Transferindo comentários de ocorrências...") + self.stdout.write("\t* Transferindo comentários de ocorrências...") old.comentario_set.all().update(usuario=new) - self.stdout.write(u"\t* Transferindo convênios geridos...") + self.stdout.write("\t* Transferindo convênios geridos...") old.convenio_set.all().update(servidor_gestao=new) - self.stdout.write(u"\t* Transferindo convênios acompanhados...") + self.stdout.write("\t* Transferindo convênios acompanhados...") old.convenio_set.all().update(acompanha=new) - self.stdout.write(u"\t* Transferindo participação em eventos...") + self.stdout.write("\t* Transferindo participação em eventos...") old.equipe_evento.all().update(membro=new) - self.stdout.write(u"\t* Transferindo convites para eventos...") + self.stdout.write("\t* Transferindo convites para eventos...") old.convite_set.all().update(servidor=new) - self.stdout.write(u"\t* Transferindo diagnósticos...") + self.stdout.write("\t* Transferindo diagnósticos...") old.diagnostico_set.all().update(responsavel=new) - self.stdout.write(u"\t* Transferindo participação em diagnósticos...") + self.stdout.write("\t* Transferindo participação em diagnósticos...") old.equipe_set.all().update(membro=new) - self.stdout.write(u"\t* Transferindo dados de autenticação...") + self.stdout.write("\t* Transferindo dados de autenticação...") if new.user: old.user.logentry_set.all().update(user=new) @@ -65,4 +65,4 @@ class Command(BaseCommand): old.user = None old.save() - self.stdout.write(u"Concluído!") \ No newline at end of file + self.stdout.write("Concluído!") \ No newline at end of file diff --git a/sigi/apps/servidores/management/commands/migra.py b/sigi/apps/servidores/management/commands/migra.py index 0070b0b..b517659 100644 --- a/sigi/apps/servidores/management/commands/migra.py +++ b/sigi/apps/servidores/management/commands/migra.py @@ -24,7 +24,7 @@ class MigrationError(Exception): class Command(BaseCommand): - help = _(u'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") diff --git a/sigi/apps/servidores/management/commands/sync_ldap.py b/sigi/apps/servidores/management/commands/sync_ldap.py index 3adf186..2b0fef2 100644 --- a/sigi/apps/servidores/management/commands/sync_ldap.py +++ b/sigi/apps/servidores/management/commands/sync_ldap.py @@ -8,7 +8,7 @@ from sigi.settings import * class Command(BaseCommand): - help = u'Sincroniza Usuários e Servidores com o LDAP' + help = 'Sincroniza Usuários e Servidores com o LDAP' def handle(self, *args, **options): self.sync_groups() diff --git a/sigi/apps/servidores/management/commands/test_sync_ldap.py b/sigi/apps/servidores/management/commands/test_sync_ldap.py index d01d64d..87ee765 100644 --- a/sigi/apps/servidores/management/commands/test_sync_ldap.py +++ b/sigi/apps/servidores/management/commands/test_sync_ldap.py @@ -52,37 +52,37 @@ ALEX_LDAP, BRUNO_LDAP, RITA_LDAP = [ # new user from ldap is created ([], [ALEX_LDAP], - [(u'alexlima', u'Alex Lima', u'Alex', u'Lima', u'alexlima@interlegis.leg.br')], - u''' + [('alexlima', 'Alex Lima', 'Alex', 'Lima', 'alexlima@interlegis.leg.br')], + ''' User 'alexlima' created. Users are synchronized. '''), # nothing changes - ([(u'alexlima', u'Alex Lima', u'Alex', u'Lima', u'alexlima@interlegis.leg.br')], + ([('alexlima', 'Alex Lima', 'Alex', 'Lima', 'alexlima@interlegis.leg.br')], [ALEX_LDAP], - [(u'alexlima', u'Alex Lima', u'Alex', u'Lima', u'alexlima@interlegis.leg.br')], - u''' + [('alexlima', 'Alex Lima', 'Alex', 'Lima', 'alexlima@interlegis.leg.br')], + ''' Users are synchronized. '''), # unicode encoding from LDAP data works well - ([('claudia', u'Cláudia de Cássia', u'Cláudia', u'de Cássia', 'claudia@interlegis.leg.br', )], + ([('claudia', 'Cláudia de Cássia', 'Cláudia', 'de Cássia', 'claudia@interlegis.leg.br', )], [RITA_LDAP], - [(u'claudia', u'Cláudia de Cássia', u'Cláudia', u'de Cássia', u'claudia@interlegis.leg.br', )], - u''' + [('claudia', 'Cláudia de Cássia', 'Cláudia', 'de Cássia', 'claudia@interlegis.leg.br', )], + ''' Users are synchronized. '''), # update: full name, first name, last name, email ([('alexlima', '___', '___', '___', '___', ), ('bruno', 'Bruno Almeida Prado', '___', 'Almeida Prado', '___', ), - ('claudia', '___', u'Cláudia', '___', 'claudia@interlegis.leg.br', )], + ('claudia', '___', 'Cláudia', '___', 'claudia@interlegis.leg.br', )], [ALEX_LDAP, BRUNO_LDAP, RITA_LDAP], - [(u'alexlima', u'Alex Lima', u'Alex', u'Lima', u'alexlima@interlegis.leg.br', ), - (u'bruno', u'Bruno Almeida Prado', u'Bruno', u'Almeida Prado', u'bruno@interlegis.leg.br', ), - (u'claudia', u'Cláudia de Cássia', u'Cláudia', u'de Cássia', u'claudia@interlegis.leg.br', )], - u''' + [('alexlima', 'Alex Lima', 'Alex', 'Lima', 'alexlima@interlegis.leg.br', ), + ('bruno', 'Bruno Almeida Prado', 'Bruno', 'Almeida Prado', 'bruno@interlegis.leg.br', ), + ('claudia', 'Cláudia de Cássia', 'Cláudia', 'de Cássia', 'claudia@interlegis.leg.br', )], + ''' User 'alexlima' first name updated. User 'alexlima' last name updated. User 'alexlima' email updated. @@ -106,14 +106,14 @@ Users are synchronized. # user not present in ldap is NOT deleted - ([(u'alexlima', u'Alex Lima', u'Alex', u'Lima', u'alexlima@interlegis.leg.br', ), - (u'bruno', u'Bruno Almeida Prado', u'Bruno', u'Almeida Prado', u'bruno@interlegis.leg.br', ), - (u'claudia', u'Cláudia de Cássia', u'Cláudia', u'de Cássia', u'claudia@interlegis.leg.br', )], + ([('alexlima', 'Alex Lima', 'Alex', 'Lima', 'alexlima@interlegis.leg.br', ), + ('bruno', 'Bruno Almeida Prado', 'Bruno', 'Almeida Prado', 'bruno@interlegis.leg.br', ), + ('claudia', 'Cláudia de Cássia', 'Cláudia', 'de Cássia', 'claudia@interlegis.leg.br', )], [ALEX_LDAP, RITA_LDAP], - [(u'alexlima', u'Alex Lima', u'Alex', u'Lima', u'alexlima@interlegis.leg.br', ), - (u'bruno', u'Bruno Almeida Prado', u'Bruno', u'Almeida Prado', u'bruno@interlegis.leg.br', ), - (u'claudia', u'Cláudia de Cássia', u'Cláudia', u'de Cássia', u'claudia@interlegis.leg.br', )], - u''' + [('alexlima', 'Alex Lima', 'Alex', 'Lima', 'alexlima@interlegis.leg.br', ), + ('bruno', 'Bruno Almeida Prado', 'Bruno', 'Almeida Prado', 'bruno@interlegis.leg.br', ), + ('claudia', 'Cláudia de Cássia', 'Cláudia', 'de Cássia', 'claudia@interlegis.leg.br', )], + ''' Users are synchronized. '''), ]) diff --git a/sigi/apps/servidores/models.py b/sigi/apps/servidores/models.py index 68588a1..9b8fdc3 100644 --- a/sigi/apps/servidores/models.py +++ b/sigi/apps/servidores/models.py @@ -5,14 +5,14 @@ from django.db.models.signals import post_save, pre_save from django.utils.translation import gettext as _ class Servico(models.Model): - nome = models.CharField(_(u'Setor'), max_length=250, null=True) + nome = models.CharField(_('Setor'), max_length=250, null=True) sigla = models.CharField(max_length=10, null=True) subordinado = models.ForeignKey( 'self', on_delete=models.SET_NULL, null=True, blank=True, - verbose_name=_(u"subordinado a") + verbose_name=_("subordinado a") ) responsavel = models.ForeignKey( 'servidores.Servidor', @@ -24,11 +24,11 @@ class Servico(models.Model): class Meta: ordering = ('-subordinado__sigla', 'nome',) - verbose_name = _(u'serviço') - verbose_name_plural = _(u'serviços') + verbose_name = _('serviço') + verbose_name_plural = _('serviços') def __unicode__(self): - return u"{sigla} - {nome}".format(sigla=self.sigla, nome=self.nome) + return "{sigla} - {nome}".format(sigla=self.sigla, nome=self.nome) class Servidor(models.Model): user = models.ForeignKey( @@ -53,12 +53,12 @@ class Servidor(models.Model): blank=True, null=True ) - externo = models.BooleanField(_(u"colaborador externo"), default=False) + externo = models.BooleanField(_("colaborador externo"), default=False) orgao_origem = models.CharField( - _(u"órgão de origem, "), + _("órgão de origem, "), max_length=100, blank=True ) - qualificacoes = models.TextField(_(u"qualificações"), blank=True) + qualificacoes = models.TextField(_("qualificações"), blank=True) class Meta: ordering = ('nome_completo',) diff --git a/sigi/apps/utils/__init__.py b/sigi/apps/utils/__init__.py index af36701..987ce86 100644 --- a/sigi/apps/utils/__init__.py +++ b/sigi/apps/utils/__init__.py @@ -12,7 +12,7 @@ class SearchField(models.TextField): for field_name in self.field_names: val = unicode(to_ascii(getattr(model_instance, field_name))) search_text.append(val) - value = u' '.join(search_text) + value = ' '.join(search_text) setattr(model_instance, self.name, value) return value diff --git a/sigi/apps/utils/admin_widgets.py b/sigi/apps/utils/admin_widgets.py index ba89490..7c9fc47 100644 --- a/sigi/apps/utils/admin_widgets.py +++ b/sigi/apps/utils/admin_widgets.py @@ -11,8 +11,8 @@ class AdminImageWidget(AdminFileWidget): image_url = value.url file_name = str(value) output.append( - u''' %s
      %s''' % - (image_url, image_url, file_name, _(u'Change') + ':')) + (image_url, image_url, file_name, _('Change') + ':')) output.append(super(AdminFileWidget, self).render(name, value, attrs)) - return mark_safe(u''.join(output)) + return mark_safe(''.join(output)) diff --git a/sigi/apps/utils/email.py b/sigi/apps/utils/email.py index f4a80d2..00cabce 100644 --- a/sigi/apps/utils/email.py +++ b/sigi/apps/utils/email.py @@ -16,13 +16,13 @@ def enviar_email(from_email, subject, template, tags): template. """ if from_email is None: - raise ValueError(_(u"Insira o email do remetente.")) + raise ValueError(_("Insira o email do remetente.")) elif subject is None: - raise ValueError(_(u"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(_("Template da mensagem não encontrado")) elif tags is None: - raise ValueError(_(u"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/settings/base.py b/sigi/settings/base.py index 04e25b1..eafa794 100644 --- a/sigi/settings/base.py +++ b/sigi/settings/base.py @@ -25,6 +25,7 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'sigi.apps.servidores', ] MIDDLEWARE = [