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