From 9da97bb092641fa97e979b59798dac9416ca917e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ses=C3=B3stris=20Vieira?= Date: Tue, 3 Jun 2025 09:09:57 -0300 Subject: [PATCH] Adiciona lista de contatos na tela de Casas. Gertiq #218535 --- requirements/requirements.txt | 2 +- sigi/apps/casas/admin.py | 58 ++++++++++++++++++++++++++++------- 2 files changed, 48 insertions(+), 12 deletions(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index dcc9e5b..f1bf7b5 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -30,5 +30,5 @@ django-localflavor==4.0 django-tinymce==4.1.0 django-weasyprint==2.4.0 djangorestframework==3.16.0 -djbs-theme @ git+https://github.com/interlegis/djbs-theme.git@1.0.0 +djbs-theme @ git+https://github.com/interlegis/djbs-theme.git@1.0.1 django-dashboard @ git+https://github.com/interlegis/django-dashboard.git diff --git a/sigi/apps/casas/admin.py b/sigi/apps/casas/admin.py index 523440f..07f3f2c 100644 --- a/sigi/apps/casas/admin.py +++ b/sigi/apps/casas/admin.py @@ -146,20 +146,15 @@ class ParlamentarInline(admin.TabularInline): class FuncionarioInline(admin.StackedInline): model = Funcionario + djbs_cols = "1" fields = ( - "desativado", + ("desativado", "ult_alteracao"), "setor", "nome", - "nota", - "email", - "sexo", - "cpf", - "identidade", - "redes_sociais", - "cargo", - "funcao", - "ult_alteracao", - "observacoes", + ("cpf", "identidade", "sexo"), + ("nota", "email"), + ("cargo", "funcao"), + ("redes_sociais", "observacoes"), ) readonly_fields = ["ult_alteracao"] extra = 0 @@ -173,6 +168,46 @@ class FuncionarioInline(admin.StackedInline): return qs.exclude(desativado=True) +class ListaFuncionarioInline(admin.TabularInline): + model = Funcionario + fields = ( + "get_setor", + "nome", + "nota", + "get_email_link", + "observacoes", + "ult_alteracao", + ) + readonly_fields = fields + extra = 0 + max_num = 0 + show_change_link = True + can_delete = False + verbose_name_plural = _("Lista de contatos") + ordering = ["setor", "-ult_alteracao"] + djbs_hide_original = True + + def get_queryset(self, request): + qs = super().get_queryset(request) + return qs.exclude(desativado=True) + + @admin.display(description=_("setor")) + def get_setor(self, func): + if func.setor == "contato_interlegis": + return format_html( + "{setor}", + setor=func.get_setor_display(), + ) + return func.get_setor_display() + + @admin.display(description=_("e-mail")) + def get_email_link(self, func): + return format_html( + "{email}", + email=func.email, + ) + + class ConveniosInline(admin.TabularInline): model = Convenio fields = ( @@ -341,6 +376,7 @@ class OrgaoAdmin(AsciifyQParameter, ExportActionMixin, admin.ModelAdmin): inlines = ( TelefonesInline, ParlamentarInline, + ListaFuncionarioInline, FuncionarioInline, ConveniosInline, ServicoInline,