modifica a view de pesquisa, o modelo de diario oficial e o documento do diario oficial

This commit is contained in:
root
2025-03-07 16:32:10 +01:00
parent 6471ee6152
commit 8d1f6feeaf
4 changed files with 203 additions and 204 deletions

View File

@ -1,6 +1,7 @@
from django.db import models
import PyPDF2
import json
from django.core.serializers.json import DjangoJSONEncoder
class PDFDocument(models.Model):
@ -50,13 +51,30 @@ class DiarioOficial(models.Model):
TipoDiarioOficial,
blank=True,
null=True,
on_delete=models.CASCADE,
on_delete=models.SET_NULL,
related_name="diarios",
)
numero = models.CharField(max_length=20, unique=True)
link = models.URLField(blank=True, null=True, unique=True)
finalizado = models.BooleanField(default=False)
page_content = models.JSONField(encoder=DjangoJSONEncoder, blank=True, null=True)
def save(self, *args, **kwargs):
if self.file:
pdf = PyPDF2.PdfReader(self.file)
pages_data = []
for i, pagina in enumerate(pdf.pages):
page_text = pagina.extract_text()
pages_data.append(
{
"number": i + 1,
"content": page_text,
}
)
self.page_content = json.dumps(pages_data)
super().save(*args, **kwargs)
@property
def data_formatada(self):
return format_date(self.data, format="long", locale="pt_BR")
@ -71,3 +89,4 @@ class DiarioOficial(models.Model):
class Meta:
constraints = [models.UniqueConstraint(fields=["numero"], name="unique_numero")]
verbose_name_plural = "Diários Oficiais"