diff --git a/materia/migrations/0004_materialegislativa_texto_original.py b/materia/migrations/0004_materialegislativa_texto_original.py new file mode 100644 index 000000000..163ae0ff2 --- /dev/null +++ b/materia/migrations/0004_materialegislativa_texto_original.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +import materia.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('materia', '0003_auto_20150729_1717'), + ] + + operations = [ + migrations.AddField( + model_name='materialegislativa', + name='texto_original', + field=models.FileField(null=True, blank=True, verbose_name='Texto original (PDF)', upload_to=materia.models.texto_upload_path), + ), + ] diff --git a/materia/models.py b/materia/models.py index 0fba3a6eb..a63c6e060 100644 --- a/materia/models.py +++ b/materia/models.py @@ -45,6 +45,14 @@ class Origem(models.Model): return self.nome +def get_materia_media_path(instance, subpath, filename): + return './materia/%s/%s/%s' % (instance.numero, subpath, filename) + + +def texto_upload_path(instance, filename): + return get_materia_media_path(instance, 'materia', filename) + + class MateriaLegislativa(models.Model): TIPO_APRESENTACAO_CHOICES, ORAL, ESCRITA = make_choices( 'O', _('Oral'), @@ -108,6 +116,11 @@ class MateriaLegislativa(models.Model): through_fields=( 'materia_principal', 'materia_anexada')) + texto_original = models.FileField( + blank=True, + null=True, + upload_to=texto_upload_path, + verbose_name=_('Texto original (PDF)')) class Meta: verbose_name = _('Matéria Legislativa') diff --git a/materia/urls.py b/materia/urls.py index 23350e944..b8a0aaf31 100644 --- a/materia/urls.py +++ b/materia/urls.py @@ -1,10 +1,11 @@ from django.conf.urls import include, url -from materia.views import (autor_crud, orgao_crud, origem_crud, - regime_tramitacao_crud, status_tramitacao_crud, - tipo_autor_crud, tipo_documento_crud, - tipo_fim_relatoria_crud, tipo_materia_crud, - tipo_proposicao_crud, unidade_tramitacao_crud) +from materia.views import (autor_crud, materia_legislativa_crud, orgao_crud, + origem_crud, regime_tramitacao_crud, + status_tramitacao_crud, tipo_autor_crud, + tipo_documento_crud, tipo_fim_relatoria_crud, + tipo_materia_crud, tipo_proposicao_crud, + unidade_tramitacao_crud) urlpatterns = [ url(r'^sistema/proposicoes/tipo/', include(tipo_proposicao_crud.urls)), @@ -25,4 +26,5 @@ urlpatterns = [ url(r'^sistema/materia/status-tramitacao/', include(status_tramitacao_crud.urls)), url(r'^sistema/materia/orgao/', include(orgao_crud.urls)), + url(r'^materia/', include(materia_legislativa_crud.urls)), ] diff --git a/materia/views.py b/materia/views.py index d931cc22c..0072362a3 100644 --- a/materia/views.py +++ b/materia/views.py @@ -49,19 +49,16 @@ materia_legislativa_crud = build_crud( [_('Identificação Básica'), [('tipo', 4), ('numero', 4), ('ano', 4)], [('data_apresentacao', 4), - ('num_protocolo_spdo_FIXME', 4), + ('numero_protocolo', 4), ('tipo_apresentacao', 4)], - [('nom_arquivo_FIXME', 6), ('modelo_FIXME', 6)]], - - [_('Proposição Eletrônica')], + [('texto_original', 12)]], [_('Outras Informações'), [('apelido', 4), ('dias_prazo', 4), ('polemica', 4)], [('objeto', 4), ('regime_tramitacao', 4), ('em_tramitacao', 4)], - [('data_fim_prazo', 3), - ('data_publicacao', 3), - ('complementar', 3), - ('txt_cep_FIXME', 3)]], + [('data_fim_prazo', 4), + ('data_publicacao', 4), + ('complementar', 4)]], [_('Origem Externa'), [('tipo_origem_externa', 4),