From 285d32e29098aaaa392a61ca145b09e99549b1ba Mon Sep 17 00:00:00 2001 From: DTILegBG Date: Fri, 12 May 2017 14:53:25 -0300 Subject: [PATCH] separa por ano materias normas documentos_acessorios --- sapl/materia/models.py | 19 ++++++++++++------- sapl/norma/models.py | 5 ++++- sapl/utils.py | 6 +++--- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/sapl/materia/models.py b/sapl/materia/models.py index b5390f3b4..d5447095e 100644 --- a/sapl/materia/models.py +++ b/sapl/materia/models.py @@ -22,7 +22,6 @@ from sapl.utils import (RANGE_ANOS, YES_NO_CHOICES, SaplGenericForeignKey, EM_TRAMITACAO = [(1, 'Sim'), (0, 'Não')] - def grupo_autor(): try: grupo = Group.objects.get(name='Autor') @@ -30,7 +29,6 @@ def grupo_autor(): return None return grupo.id - @reversion.register() class TipoProposicao(models.Model): descricao = models.CharField(max_length=50, verbose_name=_('Descrição')) @@ -120,10 +118,15 @@ class Origem(models.Model): TIPO_APRESENTACAO_CHOICES = Choices(('O', 'oral', _('Oral')), ('E', 'escrita', _('Escrita'))) +def materia_upload_path(instance, filename): + return texto_upload_path(instance, filename, subpath=instance.ano) +def anexo_upload_path(instance, filename): + return texto_upload_path(instance, filename, subpath=instance.materia.ano) + @reversion.register() class MateriaLegislativa(models.Model): - + tipo = models.ForeignKey(TipoMateriaLegislativa, on_delete=models.PROTECT, verbose_name=_('Tipo')) @@ -194,7 +197,7 @@ class MateriaLegislativa(models.Model): texto_original = models.FileField( blank=True, null=True, - upload_to=texto_upload_path, + upload_to=materia_upload_path, verbose_name=_('Texto Original'), validators=[restringe_tipos_de_arquivo_txt]) @@ -215,6 +218,7 @@ class MateriaLegislativa(models.Model): def __str__(self): return _('%(tipo)s nº %(numero)s de %(ano)s') % { 'tipo': self.tipo, 'numero': self.numero, 'ano': self.ano} + def data_entrada_protocolo(self): ''' @@ -231,7 +235,7 @@ class MateriaLegislativa(models.Model): pass return '' - + def delete(self, using=None, keep_parents=False): if self.texto_original: self.texto_original.delete() @@ -255,6 +259,7 @@ class MateriaLegislativa(models.Model): force_update=force_update, using=using, update_fields=update_fields) + @reversion.register() @@ -392,7 +397,7 @@ class DocumentoAcessorio(models.Model): arquivo = models.FileField( blank=True, null=True, - upload_to=texto_upload_path, + upload_to=anexo_upload_path, verbose_name=_('Texto Integral'), validators=[restringe_tipos_de_arquivo_txt]) @@ -625,7 +630,7 @@ class Proposicao(models.Model): ('I', 'Incorporada')), verbose_name=_('Status Proposição')) texto_original = models.FileField( - upload_to=texto_upload_path, + upload_to=materia_upload_path, blank=True, null=True, verbose_name=_('Texto Original'), diff --git a/sapl/norma/models.py b/sapl/norma/models.py index 0d0b8ce6b..db552c9a9 100644 --- a/sapl/norma/models.py +++ b/sapl/norma/models.py @@ -59,6 +59,8 @@ class TipoNormaJuridica(models.Model): def __str__(self): return self.descricao +def norma_upload_path(instance, filename): + return texto_upload_path(instance, filename, subpath=instance.ano) @reversion.register() class NormaJuridica(models.Model): @@ -67,10 +69,11 @@ class NormaJuridica(models.Model): ('F', 'federal', _('Federal')), ('M', 'municipal', _('Municipal')), ) + texto_integral = models.FileField( blank=True, null=True, - upload_to=texto_upload_path, + upload_to=norma_upload_path, verbose_name=_('Texto Integral'), validators=[restringe_tipos_de_arquivo_txt]) tipo = models.ForeignKey( diff --git a/sapl/utils.py b/sapl/utils.py index 81ebea6cc..7429a7e4c 100644 --- a/sapl/utils.py +++ b/sapl/utils.py @@ -605,8 +605,8 @@ def texto_upload_path(instance, filename, subpath=''): seguida para armazenar o arquivo. """ - if subpath and '/' not in subpath: - subpath = subpath + '/' +# if subpath and '/' not in subpath: +# subpath = subpath + '/' """ TODO: Verifique possibilidade de otimização do código de normalização do filename... @@ -624,7 +624,7 @@ def texto_upload_path(instance, filename, subpath=''): if isinstance(instance, (DocumentoAdministrativo, Proposicao)): prefix = 'private' - path = './sapl/%(prefix)s/%(model_name)s/%(pk)s/%(subpath)s%(filename)s' %\ + path = './sapl/%(prefix)s/%(model_name)s/%(subpath)s/%(pk)s/%(filename)s' %\ { 'prefix': prefix, 'model_name': instance._meta.model_name,