adiciona o modelo de Diario Oficial e Tipo de Diario Oficial
This commit is contained in:
@ -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"
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -32,3 +32,42 @@ class PDFDocument(models.Model):
|
|||||||
self.page_content = json.dumps(pages_data)
|
self.page_content = json.dumps(pages_data)
|
||||||
|
|
||||||
super().save(*args, **kwargs)
|
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} nº {self.numero}, {self.data_formatada}"
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
constraints = [models.UniqueConstraint(fields=["numero"], name="unique_numero")]
|
||||||
|
verbose_name_plural = "Diários Oficiais"
|
||||||
|
|||||||
Reference in New Issue
Block a user