adiciona o modelo de Diario Oficial e Tipo de Diario Oficial

This commit is contained in:
root
2025-03-07 16:01:08 +01:00
parent 3f5ac79051
commit 6471ee6152
2 changed files with 114 additions and 0 deletions

View File

@ -0,0 +1,75 @@
# Generated by Django 5.0.12 on 2025-03-07 14:58
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("diarios", "0002_pdfdocument_page_content"),
]
operations = [
migrations.CreateModel(
name="TipoDiarioOficial",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("nome", models.CharField(max_length=100, unique=True)),
],
options={
"verbose_name_plural": "Tipos de Diários Oficiais",
},
),
migrations.CreateModel(
name="DiarioOficial",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("data", models.DateField()),
(
"arquivo",
models.FileField(
blank=True, null=True, upload_to="diarios_oficiais/"
),
),
("numero", models.CharField(max_length=20, unique=True)),
("link", models.URLField(blank=True, null=True, unique=True)),
("finalizado", models.BooleanField(default=False)),
(
"tipo",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="diarios",
to="diarios.tipodiariooficial",
),
),
],
options={
"verbose_name_plural": "Diários Oficiais",
},
),
migrations.AddConstraint(
model_name="diariooficial",
constraint=models.UniqueConstraint(
fields=("numero",), name="unique_numero"
),
),
]

View File

@ -32,3 +32,42 @@ class PDFDocument(models.Model):
self.page_content = json.dumps(pages_data)
super().save(*args, **kwargs)
class TipoDiarioOficial(models.Model):
nome = models.CharField(max_length=100, unique=True)
def __str__(self):
return self.nome
class Meta:
verbose_name_plural = "Tipos de Diários Oficiais"
class DiarioOficial(models.Model):
data = models.DateField()
arquivo = models.FileField(upload_to="diarios_oficiais/", blank=True, null=True)
tipo = models.ForeignKey(
TipoDiarioOficial,
blank=True,
null=True,
on_delete=models.CASCADE,
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)
@property
def data_formatada(self):
return format_date(self.data, format="long", locale="pt_BR")
@property
def is_online(self):
return True if self.link else False
def __str__(self):
return f"Diário {self.tipo.nome}{self.numero}, {self.data_formatada}"
class Meta:
constraints = [models.UniqueConstraint(fields=["numero"], name="unique_numero")]
verbose_name_plural = "Diários Oficiais"