mirror of https://github.com/interlegis/sapl.git
76 changed files with 1399 additions and 448 deletions
@ -0,0 +1,22 @@ |
|||||
|
================================ |
||||
|
Instruções para instalar o Solr |
||||
|
================================ |
||||
|
|
||||
|
Solr é a ferramenta utilizada pelo SAPL 3.1 para indexar documentos para que possa ser feita |
||||
|
a Pesquisa Textual. |
||||
|
|
||||
|
|
||||
|
Dentro do diretório principal siga os seguintes passos:: |
||||
|
|
||||
|
curl -LO https://archive.apache.org/dist/lucene/solr/4.10.2/solr-4.10.2.tgz |
||||
|
tar xvzf solr-4.10.2.tgz |
||||
|
cd solr-4.10.2 |
||||
|
cd example |
||||
|
java -jar start.jar |
||||
|
./manage.py build_solr_schema --filename solr-4.10.2/example/solr/collection1/conf/schema.xml |
||||
|
|
||||
|
|
||||
|
Após isso, deve-se parar o servidor do Solr e restartar com ``java -jar start.jar`` |
||||
|
|
||||
|
|
||||
|
**OBS: Toda vez que o código da pesquisa textual for modificado, os comandos de build_solr_schema e start.jar devem ser rodados, nessa mesma ordem.** |
||||
@ -0,0 +1,20 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.12 on 2017-05-19 11:06 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('base', '0002_auto_20170331_1900'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='autor', |
||||
|
name='nome', |
||||
|
field=models.CharField(blank=True, max_length=60, verbose_name='Nome do Autor'), |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,32 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.7 on 2017-05-22 10:51 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
import sapl.materia.models |
||||
|
import sapl.utils |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('materia', '0004_auto_20170504_1751'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='documentoacessorio', |
||||
|
name='arquivo', |
||||
|
field=models.FileField(blank=True, null=True, upload_to=sapl.materia.models.anexo_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Integral'), |
||||
|
), |
||||
|
migrations.AlterField( |
||||
|
model_name='materialegislativa', |
||||
|
name='texto_original', |
||||
|
field=models.FileField(blank=True, null=True, upload_to=sapl.materia.models.materia_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Original'), |
||||
|
), |
||||
|
migrations.AlterField( |
||||
|
model_name='proposicao', |
||||
|
name='texto_original', |
||||
|
field=models.FileField(blank=True, null=True, upload_to=sapl.materia.models.materia_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Original'), |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,32 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.12 on 2017-05-22 19:04 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
import sapl.materia.models |
||||
|
import sapl.utils |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('materia', '0004_auto_20170504_1751'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='documentoacessorio', |
||||
|
name='arquivo', |
||||
|
field=models.FileField(blank=True, null=True, upload_to=sapl.materia.models.anexo_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Integral'), |
||||
|
), |
||||
|
migrations.AlterField( |
||||
|
model_name='materialegislativa', |
||||
|
name='texto_original', |
||||
|
field=models.FileField(blank=True, null=True, upload_to=sapl.materia.models.materia_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Original'), |
||||
|
), |
||||
|
migrations.AlterField( |
||||
|
model_name='proposicao', |
||||
|
name='texto_original', |
||||
|
field=models.FileField(blank=True, null=True, upload_to=sapl.materia.models.materia_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Original'), |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,16 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.7 on 2017-05-23 18:20 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('materia', '0005_auto_20170522_1051'), |
||||
|
('materia', '0005_auto_20170522_1904'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
] |
||||
@ -0,0 +1,19 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.11 on 2017-05-10 15:49 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('norma', '0002_auto_20170403_1505'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterModelOptions( |
||||
|
name='assuntonorma', |
||||
|
options={'verbose_name': 'Assunto de Norma Jurídica', 'verbose_name_plural': 'Assuntos de Normas Jurídicas'}, |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,22 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.7 on 2017-05-22 10:51 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
import sapl.norma.models |
||||
|
import sapl.utils |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('norma', '0003_auto_20170510_1549'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='normajuridica', |
||||
|
name='texto_integral', |
||||
|
field=models.FileField(blank=True, null=True, upload_to=sapl.norma.models.norma_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Integral'), |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,27 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.12 on 2017-05-22 11:15 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
import sapl.norma.models |
||||
|
import sapl.utils |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('norma', '0003_auto_20170510_1549'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='normajuridica', |
||||
|
name='texto_integral', |
||||
|
field=models.FileField(blank=True, null=True, upload_to=sapl.norma.models.norma_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Integral'), |
||||
|
), |
||||
|
migrations.AlterField( |
||||
|
model_name='normajuridica', |
||||
|
name='timestamp', |
||||
|
field=models.DateTimeField(null=True), |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,16 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.7 on 2017-05-23 18:20 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('norma', '0004_auto_20170522_1115'), |
||||
|
('norma', '0004_auto_20170522_1051'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
] |
||||
@ -0,0 +1,20 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.11 on 2017-05-10 15:49 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('sessao', '0001_initial'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AddField( |
||||
|
model_name='sessaoplenaria', |
||||
|
name='interativa', |
||||
|
field=models.NullBooleanField(choices=[(True, 'Sim'), (False, 'Não')], verbose_name='Sessão interativa'), |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,35 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.7 on 2017-05-22 10:51 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('sessao', '0002_sessaoplenaria_interativa'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.CreateModel( |
||||
|
name='ResumoOrdenacao', |
||||
|
fields=[ |
||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||
|
('primeiro', models.CharField(max_length=30)), |
||||
|
('segundo', models.CharField(max_length=30)), |
||||
|
('terceiro', models.CharField(max_length=30)), |
||||
|
('quarto', models.CharField(max_length=30)), |
||||
|
('quinto', models.CharField(max_length=30)), |
||||
|
('sexto', models.CharField(max_length=30)), |
||||
|
('setimo', models.CharField(max_length=30)), |
||||
|
('oitavo', models.CharField(max_length=30)), |
||||
|
('nono', models.CharField(max_length=30)), |
||||
|
('decimo', models.CharField(max_length=30)), |
||||
|
], |
||||
|
options={ |
||||
|
'verbose_name': 'Ordenação do Resumo de uma Sessão', |
||||
|
'verbose_name_plural': 'Ordenação do Resumo de uma Sessão', |
||||
|
}, |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,17 @@ |
|||||
|
from rest_framework import serializers |
||||
|
|
||||
|
from .models import SessaoPlenaria |
||||
|
|
||||
|
class SessaoPlenariaSerializer(serializers.Serializer): |
||||
|
class Meta: |
||||
|
model = SessaoPlenaria |
||||
|
fields = ('tipo', |
||||
|
'sessao_legislativa', |
||||
|
'legislatura', |
||||
|
'data_inicio', |
||||
|
'hora_inicio', |
||||
|
'hora_fim', |
||||
|
'url_video', |
||||
|
'iniciada', |
||||
|
'finalizada' |
||||
|
) |
||||
@ -0,0 +1,8 @@ |
|||||
|
<fieldset> |
||||
|
<legend>Conteúdo Multimídia</legend> |
||||
|
<div class="row"> |
||||
|
<div class="col-md-6">{{multimidia_audio}}</div> |
||||
|
<div class="col-md-6">{{multimidia_video}}</div> |
||||
|
</div> |
||||
|
</fieldset> |
||||
|
<br /><br /><br /> |
||||
@ -0,0 +1,17 @@ |
|||||
|
<fieldset> |
||||
|
<legend>Expedientes</legend> |
||||
|
<table class="table"> |
||||
|
<thead class="thead-default"> |
||||
|
{% for e in expedientes %} |
||||
|
<tr> |
||||
|
<td> |
||||
|
<b>{{e.tipo}}: </b> <br /><br /> |
||||
|
<div contenteditable="false" style="border:0.5px solid #BAB4B1; border-radius: 10px; background-color: rgba(225, 225, 225, .8);"> |
||||
|
<p>{{e.conteudo|safe}}</p> |
||||
|
</div> |
||||
|
</td> |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</thead> |
||||
|
</table> |
||||
|
</fieldset> |
||||
@ -0,0 +1,8 @@ |
|||||
|
<fieldset> |
||||
|
<legend>Identificação Básica</legend> |
||||
|
<div class="row"> |
||||
|
{% for b in basica %} |
||||
|
<div class="col-md-4">{{b}}</div> |
||||
|
{% endfor %} |
||||
|
</div> |
||||
|
</fieldset> |
||||
@ -0,0 +1,8 @@ |
|||||
|
<fieldset> |
||||
|
<legend>Lista de Presença na Sessão</legend> |
||||
|
<div class="row"> |
||||
|
{% for p in presenca_sessao %} |
||||
|
<div class="col-md-12">{{p.nome_parlamentar}} / {{ p.filiacao_atual }}</div> |
||||
|
{% endfor %} |
||||
|
</div> |
||||
|
</fieldset> |
||||
@ -0,0 +1,8 @@ |
|||||
|
<fieldset> |
||||
|
<legend>Lista de Presença na Ordem do Dia</legend> |
||||
|
<div class="row"> |
||||
|
{% for p in presenca_ordem %} |
||||
|
<div class="col-md-12">{{p.nome_parlamentar}} / {{ p.filiacao_atual }}</div> |
||||
|
{% endfor %} |
||||
|
</div> |
||||
|
</fieldset> |
||||
@ -0,0 +1,25 @@ |
|||||
|
<fieldset> |
||||
|
<legend>Matérias do Expediente</legend> |
||||
|
<table class="table table-striped table-hover"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th>Matéria</th> |
||||
|
<th>Ementa</th> |
||||
|
<th>Resultado da Votação</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
{% for m in materia_expediente %} |
||||
|
<tr> |
||||
|
<td> |
||||
|
{{m.numero}} - {{m.titulo}} |
||||
|
<br /> |
||||
|
<b>Autor{{ m.autor|length|pluralize:"es" }}</b>: {{ m.autor|join:', ' }} |
||||
|
</td> |
||||
|
<td>{{m.ementa|safe}}</td> |
||||
|
<td><b>{{m.resultado}}</b><br/>{{m.resultado_observacao}}</td> |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</tbody> |
||||
|
</table> |
||||
|
</fieldset> |
||||
@ -0,0 +1,25 @@ |
|||||
|
<fieldset> |
||||
|
<legend>Matérias da Ordem do Dia</legend> |
||||
|
<table class="table table-striped table-hover"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th>Matéria</th> |
||||
|
<th>Ementa</th> |
||||
|
<th>Resultado da Votação</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
{% for m in materias_ordem %} |
||||
|
<tr> |
||||
|
<td> |
||||
|
{{m.numero}} - {{m.titulo}} |
||||
|
<br /> |
||||
|
<b>Autor{{ m.autor|length|pluralize:"es" }}</b>: {{ m.autor|join:', ' }} |
||||
|
</td> |
||||
|
<td>{{m.ementa|safe}}</td> |
||||
|
<td><b>{{m.resultado}}</b><br/>{{m.resultado_observacao}}</td> |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</tbody> |
||||
|
</table> |
||||
|
</fieldset> |
||||
@ -0,0 +1,10 @@ |
|||||
|
<fieldset> |
||||
|
<legend>Mesa Diretora</legend> |
||||
|
<div class="row"> |
||||
|
{% for m in mesa %} |
||||
|
<div class="col-md-12"><b>{{m.cargo}}: |
||||
|
</b>{{m.parlamentar.nome_parlamentar}} / {{ m.parlamentar.filiacao_atual }} |
||||
|
</div> |
||||
|
{% endfor %} |
||||
|
</div> |
||||
|
</fieldset> |
||||
@ -0,0 +1,14 @@ |
|||||
|
<fieldset> |
||||
|
<legend>Oradores do Expediente</legend> |
||||
|
<div class="row"> |
||||
|
<div class="col-md-6">Parlamentar</div> |
||||
|
<div class="col-md-6">Discurso</div> |
||||
|
</div> |
||||
|
<div class="row"> |
||||
|
{% for o in oradores %} |
||||
|
<div class="col-md-6"><b>{{o.numero_ordem}}</b> - {{o.parlamentar}}</div> |
||||
|
<div class="col-md-6">{{o.url_discurso}}</div> |
||||
|
</br> |
||||
|
{% endfor %} |
||||
|
</div> |
||||
|
</fieldset> |
||||
@ -0,0 +1,14 @@ |
|||||
|
<fieldset> |
||||
|
<legend>Oradores das Explicações Pessoais</legend> |
||||
|
<div class="row"> |
||||
|
<div class="col-md-6">Parlamentar</div> |
||||
|
<div class="col-md-6">Discurso</div> |
||||
|
</div> |
||||
|
<div class="row"> |
||||
|
{% for o in oradores_explicacoes %} |
||||
|
<div class="col-md-6"><b>{{o.numero_ordem}}</b> - {{o.parlamentar.nome_parlamentar}} / {{ o.parlamentar.filiacao_atual }}</div> |
||||
|
<div class="col-md-6">{{o.url_discurso}}</div> |
||||
|
</br> |
||||
|
{% endfor %} |
||||
|
</div> |
||||
|
</fieldset> |
||||
@ -0,0 +1,13 @@ |
|||||
|
{% extends "crud/form.html" %} |
||||
|
{% load i18n %} |
||||
|
{% load crispy_forms_tags %} |
||||
|
|
||||
|
{% block title %} |
||||
|
<h1 class="page-header">Ordenação do Resumo</h1> |
||||
|
{% endblock %} |
||||
|
|
||||
|
{% block base_content %} |
||||
|
|
||||
|
{% crispy form %} |
||||
|
|
||||
|
{% endblock %} |
||||
Loading…
Reference in new issue