Browse Source

cria model VinculoDocAdminMateria

pull/3586/head
LeandroJatai 3 years ago
parent
commit
2c1fd371be
  1. 35
      sapl/protocoloadm/migrations/0041_auto_20220804_2239.py
  2. 47
      sapl/protocoloadm/models.py

35
sapl/protocoloadm/migrations/0041_auto_20220804_2239.py

@ -0,0 +1,35 @@
# Generated by Django 2.2.28 on 2022-08-05 01:39
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('materia', '0081_auto_20220321_0934'),
('protocoloadm', '0040_auto_20220321_0934'),
]
operations = [
migrations.CreateModel(
name='VinculoDocAdminMateria',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('data_anexacao', models.DateField(verbose_name='Data Anexação')),
('data_desanexacao', models.DateField(blank=True, null=True, verbose_name='Data Desanexação')),
('documento', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='materialegislativa_vinculada_set', to='protocoloadm.DocumentoAdministrativo', verbose_name='Documento Administrativo')),
('materia', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='documentoadministrativo_vinculado_set', to='materia.MateriaLegislativa', verbose_name='Matéria Legislativa')),
],
options={
'verbose_name': 'Vinculo entre Documento Administrativo e Matéria Legislativa',
'verbose_name_plural': 'Vinculos entre Documento Administrativo e Matéria Legislativa',
'ordering': ('id',),
},
),
migrations.AddField(
model_name='documentoadministrativo',
name='materiasvinculadas',
field=models.ManyToManyField(blank=True, related_name='docadmsvinculados', through='protocoloadm.VinculoDocAdminMateria', to='materia.MateriaLegislativa'),
),
]

47
sapl/protocoloadm/models.py

@ -5,7 +5,8 @@ from model_utils import Choices
import reversion
from sapl.base.models import Autor
from sapl.materia.models import TipoMateriaLegislativa, UnidadeTramitacao
from sapl.materia.models import TipoMateriaLegislativa, UnidadeTramitacao,\
MateriaLegislativa
from sapl.utils import (RANGE_ANOS, YES_NO_CHOICES, texto_upload_path,
get_settings_auth_user_model,
OverwriteStorage)
@ -91,7 +92,8 @@ class Protocolo(models.Model):
blank=True
)
de_proposicao = models.BooleanField(default=False)
# Não foi utilizado auto_now_add=True em timestamp porque ele usa datetime.now que não é timezone aware.
# Não foi utilizado auto_now_add=True em timestamp porque ele usa
# datetime.now que não é timezone aware.
timestamp = models.DateTimeField(
null=True,
blank=True,
@ -160,7 +162,7 @@ class DocumentoAdministrativo(models.Model):
numero = models.PositiveIntegerField(verbose_name=_('Número'))
complemento = models.CharField(max_length=10, blank=True,
verbose_name=_('Complemento'))
verbose_name=_('Complemento'))
ano = models.PositiveSmallIntegerField(verbose_name=_('Ano'),
choices=RANGE_ANOS)
@ -214,6 +216,17 @@ class DocumentoAdministrativo(models.Model):
)
)
materiasvinculadas = models.ManyToManyField(
MateriaLegislativa,
blank=True,
through='VinculoDocAdminMateria',
related_name='docadmsvinculados',
through_fields=(
'documento',
'materia'
)
)
user = models.ForeignKey(
get_settings_auth_user_model(),
verbose_name=_('Usuário'),
@ -436,6 +449,34 @@ class Anexado(models.Model):
}
@reversion.register()
class VinculoDocAdminMateria(models.Model):
documento = models.ForeignKey(
DocumentoAdministrativo, related_name='materialegislativa_vinculada_set',
on_delete=models.CASCADE,
verbose_name=_('Documento Administrativo')
)
materia = models.ForeignKey(
MateriaLegislativa, related_name='documentoadministrativo_vinculado_set',
on_delete=models.CASCADE,
verbose_name=_('Matéria Legislativa')
)
data_anexacao = models.DateField(verbose_name=_('Data Anexação'))
data_desanexacao = models.DateField(
blank=True, null=True, verbose_name=_('Data Desanexação')
)
class Meta:
verbose_name = _(
'Vinculo entre Documento Administrativo e Matéria Legislativa')
verbose_name_plural = _(
'Vinculos entre Documento Administrativo e Matéria Legislativa')
ordering = ('id',)
def __str__(self):
return _(f'Vinculo: {self.documento} - {self.materia}')
@reversion.register()
class AcompanhamentoDocumento(models.Model):
usuario = models.CharField(max_length=50)

Loading…
Cancel
Save