Source code for src.pre_recebimento.documento_recebimento.admin

from django.contrib import admin
from nested_inline.admin import NestedModelAdmin, NestedStackedInline

from ..forms import ArquivoForm
from .models import (
    ArquivoDoTipoDeDocumento,
    DataDeFabricaoEPrazo,
    DocumentoDeRecebimento,
    TipoDeDocumentoDeRecebimento,
)


[docs] class ArquivoDoTipoDeDocumentoInline(NestedStackedInline): """Inline dos arquivos de um tipo de documento (aninhada ao inline de tipos).""" model = ArquivoDoTipoDeDocumento extra = 0 fk_name = "tipo_de_documento" show_change_link = True
[docs] class TipoDocumentoRecebimentoInline(NestedStackedInline): """Inline dos tipos de documento do recebimento, com os arquivos aninhados.""" model = TipoDeDocumentoDeRecebimento extra = 0 show_change_link = True readonly_fields = ("uuid",) fk_name = "documento_recebimento" inlines = [ ArquivoDoTipoDeDocumentoInline, ]
[docs] class DocumentoDeRecebimentoAdmin(NestedModelAdmin): """Admin do Documento de Recebimento com inlines aninhadas de tipos e arquivos.""" form = ArquivoForm list_display = ("get_cronograma", "get_produto", "numero_laudo", "criado_em") search_fields = ("cronograma__numero", "cronograma__ficha_tecnica__produto__nome") readonly_fields = ("uuid",) inlines = [ TipoDocumentoRecebimentoInline, ]
[docs] def get_produto(self, obj): try: return obj.cronograma.ficha_tecnica.produto.nome except AttributeError: return ""
get_produto.short_description = "Produto"
[docs] def get_cronograma(self, obj): return obj.cronograma.numero
get_cronograma.short_description = "Cronograma"
admin.site.register(DocumentoDeRecebimento, DocumentoDeRecebimentoAdmin) admin.site.register(DataDeFabricaoEPrazo)