Browse Source

Fix #1186

pull/1190/head
LeandroRoberto 8 years ago
parent
commit
03235f1db1
  1. 31
      sapl/materia/models.py

31
sapl/materia/models.py

@ -1,6 +1,5 @@
from datetime import datetime from datetime import datetime
import reversion
from django.contrib.auth.models import Group from django.contrib.auth.models import Group
from django.contrib.contenttypes.fields import GenericRelation from django.contrib.contenttypes.fields import GenericRelation
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
@ -9,6 +8,7 @@ from django.db import models
from django.utils import formats from django.utils import formats
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from model_utils import Choices from model_utils import Choices
import reversion
from sapl.base.models import Autor from sapl.base.models import Autor
from sapl.comissoes.models import Comissao from sapl.comissoes.models import Comissao
@ -19,9 +19,11 @@ from sapl.utils import (RANGE_ANOS, YES_NO_CHOICES, SaplGenericForeignKey,
SaplGenericRelation, restringe_tipos_de_arquivo_txt, SaplGenericRelation, restringe_tipos_de_arquivo_txt,
texto_upload_path) texto_upload_path)
EM_TRAMITACAO = [(1, 'Sim'), EM_TRAMITACAO = [(1, 'Sim'),
(0, 'Não')] (0, 'Não')]
def grupo_autor(): def grupo_autor():
try: try:
grupo = Group.objects.get(name='Autor') grupo = Group.objects.get(name='Autor')
@ -29,6 +31,7 @@ def grupo_autor():
return None return None
return grupo.id return grupo.id
@reversion.register() @reversion.register()
class TipoProposicao(models.Model): class TipoProposicao(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_('Descrição')) descricao = models.CharField(max_length=50, verbose_name=_('Descrição'))
@ -118,11 +121,14 @@ class Origem(models.Model):
TIPO_APRESENTACAO_CHOICES = Choices(('O', 'oral', _('Oral')), TIPO_APRESENTACAO_CHOICES = Choices(('O', 'oral', _('Oral')),
('E', 'escrita', _('Escrita'))) ('E', 'escrita', _('Escrita')))
def materia_upload_path(instance, filename): def materia_upload_path(instance, filename):
return texto_upload_path(instance, filename, subpath=instance.ano) return texto_upload_path(instance, filename, subpath=instance.ano)
def anexo_upload_path(instance, filename): def anexo_upload_path(instance, filename):
return texto_upload_path(instance, filename, subpath=instance.materia.ano) return texto_upload_path(instance, filename, subpath=instance.materia.ano)
@reversion.register() @reversion.register()
class MateriaLegislativa(models.Model): class MateriaLegislativa(models.Model):
@ -204,6 +210,9 @@ class MateriaLegislativa(models.Model):
texto_articulado = GenericRelation( texto_articulado = GenericRelation(
TextoArticulado, related_query_name='texto_articulado') TextoArticulado, related_query_name='texto_articulado')
proposicao = GenericRelation(
'Proposicao', related_query_name='proposicao')
autores = models.ManyToManyField( autores = models.ManyToManyField(
Autor, Autor,
through='Autoria', through='Autoria',
@ -219,7 +228,6 @@ class MateriaLegislativa(models.Model):
return _('%(tipo)s%(numero)s de %(ano)s') % { return _('%(tipo)s%(numero)s de %(ano)s') % {
'tipo': self.tipo, 'numero': self.numero, 'ano': self.ano} 'tipo': self.tipo, 'numero': self.numero, 'ano': self.ano}
def data_entrada_protocolo(self): def data_entrada_protocolo(self):
''' '''
hack: recuperar a data de entrada do protocolo sem gerar hack: recuperar a data de entrada do protocolo sem gerar
@ -240,6 +248,12 @@ class MateriaLegislativa(models.Model):
if self.texto_original: if self.texto_original:
self.texto_original.delete() self.texto_original.delete()
proposicao = self.proposicao.all()
if proposicao:
for p in proposicao:
p.conteudo_gerado_related = None
p.save()
return models.Model.delete( return models.Model.delete(
self, using=using, keep_parents=keep_parents) self, using=using, keep_parents=keep_parents)
@ -400,6 +414,9 @@ class DocumentoAcessorio(models.Model):
verbose_name=_('Texto Integral'), verbose_name=_('Texto Integral'),
validators=[restringe_tipos_de_arquivo_txt]) validators=[restringe_tipos_de_arquivo_txt])
proposicao = GenericRelation(
'Proposicao', related_query_name='proposicao')
class Meta: class Meta:
verbose_name = _('Documento Acessório') verbose_name = _('Documento Acessório')
verbose_name_plural = _('Documentos Acessórios') verbose_name_plural = _('Documentos Acessórios')
@ -415,6 +432,12 @@ class DocumentoAcessorio(models.Model):
if self.arquivo: if self.arquivo:
self.arquivo.delete() self.arquivo.delete()
proposicao = self.proposicao.all()
if proposicao:
for p in proposicao:
p.conteudo_gerado_related = None
p.save()
return models.Model.delete( return models.Model.delete(
self, using=using, keep_parents=keep_parents) self, using=using, keep_parents=keep_parents)

Loading…
Cancel
Save