Browse Source

Removendo import e export com carrinho

pull/183/head
Sesóstris Vieira 1 month ago
parent
commit
117b0431b8
  1. 14
      sigi/apps/casas/admin.py
  2. 15
      sigi/apps/contatos/admin.py
  3. 12
      sigi/apps/convenios/admin.py
  4. 7
      sigi/apps/espacos/admin.py
  5. 39
      sigi/apps/eventos/admin.py
  6. 15
      sigi/apps/parlamentares/admin.py
  7. 12
      sigi/apps/servicos/admin.py
  8. 1
      sigi/templates/admin/import_export/change_list.html
  9. 9
      sigi/templates/admin/import_export/change_list_export_item.html

14
sigi/apps/casas/admin.py

@ -11,6 +11,8 @@ from django.utils.html import format_html
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
from django_weasyprint.views import WeasyTemplateResponse from django_weasyprint.views import WeasyTemplateResponse
from import_export import resources
from import_export.admin import ExportActionMixin
from import_export.fields import Field from import_export.fields import Field
from sigi.apps.casas.forms import OrgaoForm from sigi.apps.casas.forms import OrgaoForm
from sigi.apps.casas.models import Orgao, Funcionario, TipoOrgao from sigi.apps.casas.models import Orgao, Funcionario, TipoOrgao
@ -30,14 +32,10 @@ from sigi.apps.servicos.models import Servico
from sigi.apps.servicos.filters import ServicoAtivoFilter from sigi.apps.servicos.filters import ServicoAtivoFilter
from sigi.apps.servidores.models import Servidor from sigi.apps.servidores.models import Servidor
from sigi.apps.utils.mixins import AsciifyQParameter from sigi.apps.utils.mixins import AsciifyQParameter
from sigi.apps.utils.mixins import ( from sigi.apps.utils.mixins import ReturnMixin
ReturnMixin,
CartExportReportMixin,
LabeledResourse,
)
class OrgaoExportResourceContato(LabeledResourse): class OrgaoExportResourceContato(resources.ModelResource):
class Meta: class Meta:
model = Orgao model = Orgao
fields = ("nome", "email") fields = ("nome", "email")
@ -55,7 +53,7 @@ class OrgaoExportResourceContato(LabeledResourse):
return super().export(queryset, *args, **kwargs) return super().export(queryset, *args, **kwargs)
class OrgaoExportResourseGeral(LabeledResourse): class OrgaoExportResourseGeral(resources.ModelResource):
presidente = Field(column_name="presidente") presidente = Field(column_name="presidente")
telefone = Field(column_name="telefone") telefone = Field(column_name="telefone")
# servicos_seit = Field(column_name='servicos_seit') # servicos_seit = Field(column_name='servicos_seit')
@ -346,7 +344,7 @@ class FuncionarioAdmin(ReturnMixin, admin.ModelAdmin):
@admin.register(Orgao) @admin.register(Orgao)
class OrgaoAdmin(AsciifyQParameter, CartExportReportMixin, admin.ModelAdmin): class OrgaoAdmin(AsciifyQParameter, ExportActionMixin, admin.ModelAdmin):
form = OrgaoForm form = OrgaoForm
resource_classes = [OrgaoExportResourseGeral, OrgaoExportResourceContato] resource_classes = [OrgaoExportResourseGeral, OrgaoExportResourceContato]
inlines = ( inlines = (

15
sigi/apps/contatos/admin.py

@ -1,6 +1,8 @@
from admin_auto_filters.filters import AutocompleteFilter from admin_auto_filters.filters import AutocompleteFilter
from django.contrib import admin from django.contrib import admin
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
from import_export import resources
from import_export.admin import ExportActionMixin
from sigi.apps.utils.filters import RangeFilter from sigi.apps.utils.filters import RangeFilter
from sigi.apps.contatos.models import ( from sigi.apps.contatos.models import (
UnidadeFederativa, UnidadeFederativa,
@ -12,11 +14,6 @@ from sigi.apps.contatos.models import (
) )
from sigi.apps.parlamentares.models import Senador from sigi.apps.parlamentares.models import Senador
from sigi.apps.utils.mixins import AsciifyQParameter from sigi.apps.utils.mixins import AsciifyQParameter
from sigi.apps.utils.mixins import (
ReturnMixin,
CartExportMixin,
LabeledResourse,
)
class MicrorregiaoFilter(AutocompleteFilter): class MicrorregiaoFilter(AutocompleteFilter):
@ -24,7 +21,7 @@ class MicrorregiaoFilter(AutocompleteFilter):
field_name = "microrregiao" field_name = "microrregiao"
class UnidadeFederativaResource(LabeledResourse): class UnidadeFederativaResource(resources.ModelResource):
class Meta: class Meta:
model = UnidadeFederativa model = UnidadeFederativa
fields = ("codigo_ibge", "nome", "sigla", "regiao", "populacao") fields = ("codigo_ibge", "nome", "sigla", "regiao", "populacao")
@ -35,7 +32,7 @@ class UnidadeFederativaResource(LabeledResourse):
return dict(UnidadeFederativa.REGIAO_CHOICES)[uf.regiao] return dict(UnidadeFederativa.REGIAO_CHOICES)[uf.regiao]
class MunicipioResource(LabeledResourse): class MunicipioResource(resources.ModelResource):
class Meta: class Meta:
model = Municipio model = Municipio
fields = ( fields = (
@ -81,7 +78,7 @@ class SenadorInline(admin.StackedInline):
@admin.register(UnidadeFederativa) @admin.register(UnidadeFederativa)
class UnidadeFederativaAdmin( class UnidadeFederativaAdmin(
AsciifyQParameter, CartExportMixin, admin.ModelAdmin AsciifyQParameter, ExportActionMixin, admin.ModelAdmin
): ):
actions = None actions = None
resource_classes = [UnidadeFederativaResource] resource_classes = [UnidadeFederativaResource]
@ -117,7 +114,7 @@ class MicrorregiaoAdmin(AsciifyQParameter, admin.ModelAdmin):
@admin.register(Municipio) @admin.register(Municipio)
class MunicipioAdmin(AsciifyQParameter, CartExportMixin, admin.ModelAdmin): class MunicipioAdmin(AsciifyQParameter, ExportActionMixin, admin.ModelAdmin):
actions = None actions = None
resource_classes = [MunicipioResource] resource_classes = [MunicipioResource]
list_display = ( list_display = (

12
sigi/apps/convenios/admin.py

@ -4,6 +4,8 @@ from django.utils import timezone
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django_weasyprint.views import WeasyTemplateResponse from django_weasyprint.views import WeasyTemplateResponse
from import_export import resources
from import_export.admin import ExportActionMixin
from tinymce.models import HTMLField from tinymce.models import HTMLField
from tinymce.widgets import AdminTinyMCE from tinymce.widgets import AdminTinyMCE
from sigi.apps.convenios.models import ( from sigi.apps.convenios.models import (
@ -17,15 +19,11 @@ from sigi.apps.convenios.models import (
) )
from sigi.apps.utils.mixins import AsciifyQParameter from sigi.apps.utils.mixins import AsciifyQParameter
from sigi.apps.casas.admin import GerentesInterlegisFilter from sigi.apps.casas.admin import GerentesInterlegisFilter
from sigi.apps.utils.mixins import ( from sigi.apps.utils.mixins import ReturnMixin
ReturnMixin,
CartExportReportMixin,
LabeledResourse,
)
from sigi.apps.utils.filters import DateRangeFilter from sigi.apps.utils.filters import DateRangeFilter
class ConvenioExportResourse(LabeledResourse): class ConvenioExportResourse(resources.ModelResource):
class Meta: class Meta:
model = Convenio model = Convenio
fields = ( fields = (
@ -112,7 +110,7 @@ class ProjetoAdmin(admin.ModelAdmin):
@admin.register(Convenio) @admin.register(Convenio)
class ConvenioAdmin( class ConvenioAdmin(
AsciifyQParameter, ReturnMixin, CartExportReportMixin, admin.ModelAdmin AsciifyQParameter, ReturnMixin, ExportActionMixin, admin.ModelAdmin
): ):
fieldsets = ( fieldsets = (
( (

7
sigi/apps/espacos/admin.py

@ -5,6 +5,8 @@ from django.urls import path, reverse
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.utils.translation import gettext as _, ngettext from django.utils.translation import gettext as _, ngettext
from django.shortcuts import get_object_or_404, redirect from django.shortcuts import get_object_or_404, redirect
from import_export import resources
from import_export.admin import ExportActionMixin
from import_export.fields import Field from import_export.fields import Field
from sigi.apps.espacos.models import ( from sigi.apps.espacos.models import (
Espaco, Espaco,
@ -13,10 +15,9 @@ from sigi.apps.espacos.models import (
RecursoSolicitado, RecursoSolicitado,
) )
from sigi.apps.espacos.forms import ReservaAdminForm from sigi.apps.espacos.forms import ReservaAdminForm
from sigi.apps.utils.mixins import CartExportMixin, LabeledResourse
class ReservaResource(LabeledResourse): class ReservaResource(resources.ModelResource):
recursos_solicitados = Field(column_name="recursos solicitados") recursos_solicitados = Field(column_name="recursos solicitados")
class Meta: class Meta:
@ -67,7 +68,7 @@ class RecursoAdmin(admin.ModelAdmin):
@admin.register(Reserva) @admin.register(Reserva)
class ReservaAdmin(CartExportMixin, admin.ModelAdmin): class ReservaAdmin(ExportActionMixin, admin.ModelAdmin):
form = ReservaAdminForm form = ReservaAdminForm
resource_classes = [ReservaResource] resource_classes = [ReservaResource]
list_display = [ list_display = [

39
sigi/apps/eventos/admin.py

@ -27,6 +27,8 @@ from django.utils.safestring import mark_safe
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
from django_weasyprint.utils import django_url_fetcher from django_weasyprint.utils import django_url_fetcher
from django_weasyprint.views import WeasyTemplateResponse from django_weasyprint.views import WeasyTemplateResponse
from import_export import resources
from import_export.admin import ExportActionMixin
from import_export.fields import Field from import_export.fields import Field
from tinymce.models import HTMLField from tinymce.models import HTMLField
from tinymce.widgets import AdminTinyMCE from tinymce.widgets import AdminTinyMCE
@ -56,13 +58,7 @@ from sigi.apps.eventos.views import (
) )
from sigi.apps.utils import abreviatura from sigi.apps.utils import abreviatura
from sigi.apps.utils.filters import DateRangeFilter from sigi.apps.utils.filters import DateRangeFilter
from sigi.apps.utils.mixins import ( from sigi.apps.utils.mixins import AsciifyQParameter
AsciifyQParameter,
CartExportMixin,
CartExportReportMixin,
LabeledResourse,
ValueLabeledResource,
)
class ActVigenteFilter(admin.SimpleListFilter): class ActVigenteFilter(admin.SimpleListFilter):
@ -113,7 +109,7 @@ class MicrorregiaoFilter(AutocompleteFilter):
rel_model = Municipio rel_model = Municipio
class SolicitacaoResource(LabeledResourse): class SolicitacaoResource(resources.ModelResource):
act_vigente = Field(column_name="ACT vigente") act_vigente = Field(column_name="ACT vigente")
data_termino_act = Field(column_name="término vigência ACT") data_termino_act = Field(column_name="término vigência ACT")
oficinas = Field(column_name="oficinas solicitadas") oficinas = Field(column_name="oficinas solicitadas")
@ -246,7 +242,7 @@ class SolicitacaoResource(LabeledResourse):
return obj.casa.municipio.uf.get_regiao_display() return obj.casa.municipio.uf.get_regiao_display()
class EventoResource(ValueLabeledResource): class EventoResource(resources.ModelResource):
class Meta: class Meta:
model = Evento model = Evento
fields = ( fields = (
@ -397,7 +393,7 @@ class TipoEventoAdmin(admin.ModelAdmin):
@admin.register(Solicitacao) @admin.register(Solicitacao)
class SolicitacaoAdmin(AsciifyQParameter, CartExportMixin, admin.ModelAdmin): class SolicitacaoAdmin(AsciifyQParameter, ExportActionMixin, admin.ModelAdmin):
resource_class = SolicitacaoResource resource_class = SolicitacaoResource
list_display = ( list_display = (
"casa", "casa",
@ -873,7 +869,7 @@ class ModeloDeclaracaoAdmin(admin.ModelAdmin):
@admin.register(Evento) @admin.register(Evento)
class EventoAdmin(AsciifyQParameter, CartExportReportMixin, admin.ModelAdmin): class EventoAdmin(AsciifyQParameter, ExportActionMixin, admin.ModelAdmin):
form = EventoAdminForm form = EventoAdminForm
resource_class = EventoResource resource_class = EventoResource
fieldsets = ( fieldsets = (
@ -1005,6 +1001,7 @@ class EventoAdmin(AsciifyQParameter, CartExportReportMixin, admin.ModelAdmin):
CronogramaInline, CronogramaInline,
) )
save_as = True save_as = True
actions = ["custos_eventos_report", "custos_servidor_report"]
reports = ["custos_eventos_report", "custos_servidor_report"] reports = ["custos_eventos_report", "custos_servidor_report"]
@admin.display(description=_("banner")) @admin.display(description=_("banner"))
@ -1481,19 +1478,14 @@ class EventoAdmin(AsciifyQParameter, CartExportReportMixin, admin.ModelAdmin):
content_type="application/pdf", content_type="application/pdf",
) )
def custos_eventos_report(self, request): @admin.action(description=_("Custos por eventos"))
context = context_custos_eventos(self.get_queryset(request)) def custos_eventos_report(self, request, queryset):
context = context_custos_eventos(queryset)
context["data_inicio"] = ( context["data_inicio"] = (
self.get_queryset(request) queryset.order_by("data_inicio").first().data_inicio
.order_by("data_inicio")
.first()
.data_inicio
) )
context["data_fim"] = ( context["data_fim"] = (
self.get_queryset(request) queryset.order_by("data_termino").last().data_termino
.order_by("data_termino")
.last()
.data_termino
) )
return WeasyTemplateResponse( return WeasyTemplateResponse(
filename=f"custos_eventos-{timezone.localdate()}.pdf", filename=f"custos_eventos-{timezone.localdate()}.pdf",
@ -1503,8 +1495,9 @@ class EventoAdmin(AsciifyQParameter, CartExportReportMixin, admin.ModelAdmin):
content_type="application/pdf", content_type="application/pdf",
) )
custos_eventos_report.title = _("Custos por eventos") custos_eventos_report.djbs_icon = "report"
@admin.action(description=_("Custos por servidor"))
def custos_servidor_report(self, request): def custos_servidor_report(self, request):
context = context_custos_servidor(self.get_queryset(request)) context = context_custos_servidor(self.get_queryset(request))
context["data_inicio"] = ( context["data_inicio"] = (
@ -1529,7 +1522,7 @@ class EventoAdmin(AsciifyQParameter, CartExportReportMixin, admin.ModelAdmin):
content_type="application/pdf", content_type="application/pdf",
) )
custos_servidor_report.title = _("Custos por servidor") custos_servidor_report.djbs_icon = "report"
def create_course(self, request, object_id): def create_course(self, request, object_id):
evento = get_object_or_404(Evento, id=object_id) evento = get_object_or_404(Evento, id=object_id)

15
sigi/apps/parlamentares/admin.py

@ -9,22 +9,17 @@ from django.utils import timezone
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
from import_export import resources from import_export import resources
from import_export.admin import ImportMixin from import_export.admin import ImportMixin, ExportActionMixin
from import_export.formats.base_formats import CSV from import_export.formats.base_formats import CSV
from sigi.apps.contatos.models import UnidadeFederativa from sigi.apps.contatos.models import UnidadeFederativa
from sigi.apps.parlamentares.jobs import import_path, json_path from sigi.apps.parlamentares.jobs import import_path, json_path
from sigi.apps.parlamentares.models import Partido, Parlamentar, Senador from sigi.apps.parlamentares.models import Partido, Parlamentar, Senador
from sigi.apps.parlamentares.forms import ImportForm from sigi.apps.parlamentares.forms import ImportForm
from sigi.apps.utils.filters import AlphabeticFilter from sigi.apps.utils.filters import AlphabeticFilter
from sigi.apps.utils.mixins import ( from sigi.apps.utils.mixins import ReturnMixin
ReturnMixin,
CartImportExportMixin,
CartExportMixin,
LabeledResourse,
)
class ParlamentarResource(LabeledResourse): class ParlamentarResource(resources.ModelResource):
class Meta: class Meta:
model = Parlamentar model = Parlamentar
fields = ( fields = (
@ -142,13 +137,13 @@ class ParlamentarNomeCompletoFilter(AlphabeticFilter):
@admin.register(Partido) @admin.register(Partido)
class PartidoAdmin(CartImportExportMixin, admin.ModelAdmin): class PartidoAdmin(ImportMixin, ExportActionMixin, admin.ModelAdmin):
list_display = ("legenda", "nome", "sigla") list_display = ("legenda", "nome", "sigla")
search_fields = ("legenda", "nome", "sigla") search_fields = ("legenda", "nome", "sigla")
@admin.register(Parlamentar) @admin.register(Parlamentar)
class ParlamentarAdmin(ReturnMixin, CartExportMixin, admin.ModelAdmin): class ParlamentarAdmin(ReturnMixin, ExportActionMixin, admin.ModelAdmin):
resource_class = ParlamentarResource resource_class = ParlamentarResource
import_export_change_list_template = ( import_export_change_list_template = (
"admin/parlamentares/parlamentar/cart/" "admin/parlamentares/parlamentar/cart/"

12
sigi/apps/servicos/admin.py

@ -4,7 +4,9 @@ from django.utils.encoding import force_str
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.http import Http404, HttpResponseRedirect from django.http import Http404, HttpResponseRedirect
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
from import_export import resources
from import_export.fields import Field from import_export.fields import Field
from import_export.admin import ExportActionMixin
from sigi.apps.casas.admin import GerentesInterlegisFilter from sigi.apps.casas.admin import GerentesInterlegisFilter
from sigi.apps.servicos.models import Servico, LogServico, TipoServico from sigi.apps.servicos.models import Servico, LogServico, TipoServico
from sigi.apps.servicos.filters import ( from sigi.apps.servicos.filters import (
@ -16,14 +18,10 @@ from sigi.apps.convenios.filters import (
ExcluirTipoProjetoFilter, ExcluirTipoProjetoFilter,
) )
from sigi.apps.utils.filters import DateRangeFilter from sigi.apps.utils.filters import DateRangeFilter
from sigi.apps.utils.mixins import ( from sigi.apps.utils.mixins import ReturnMixin
ReturnMixin,
CartExportMixin,
ValueLabeledResource,
)
class ServicoExportResourse(ValueLabeledResource): class ServicoExportResourse(resources.ModelResource):
hospedagem_interlegis = Field(column_name="hospedagem no interlegis") hospedagem_interlegis = Field(column_name="hospedagem no interlegis")
class Meta: class Meta:
@ -76,7 +74,7 @@ class TipoServicoAdmin(admin.ModelAdmin):
@admin.register(Servico) @admin.register(Servico)
class ServicoAdmin(ReturnMixin, CartExportMixin, admin.ModelAdmin): class ServicoAdmin(ReturnMixin, ExportActionMixin, admin.ModelAdmin):
actions = [ actions = [
"calcular_data_uso", "calcular_data_uso",
] ]

1
sigi/templates/admin/import_export/change_list.html

@ -0,0 +1 @@
{% extends ie_base_change_list_template|default:"admin/change_list.html" %}

9
sigi/templates/admin/import_export/change_list_export_item.html

@ -0,0 +1,9 @@
{% load i18n djbs_extras %}
{% load admin_urls %}
{% if has_export_permission %}
<a href="{% url opts|admin_urlname:'export' %}{{cl.get_query_string}}" class="export_link nav-link" aria-labelledby="text-tool-export-all" title="{% translate "Export all" %}">
{% icon "export-all" %}
<span id="text-tool-export-all" class="d-lg-none">{% translate "Export all" %}</span>
</a>
{% endif %}
Loading…
Cancel
Save