Browse Source

Adiciona signals para atualizar o index

pull/980/head
Eduardo Calil 9 years ago
committed by Edward Ribeiro
parent
commit
a46f17871e
  1. 2
      sapl/base/search_indexes.py
  2. 3
      sapl/materia/apps.py
  3. 29
      sapl/materia/signals.py
  4. 10
      sapl/templates/search/search.html

2
sapl/base/search_indexes.py

@ -36,6 +36,8 @@ class DocumentoAcessorioIndex(indexes.SearchIndex, indexes.Indexable):
arquivo.path).decode( arquivo.path).decode(
'utf-8').replace('\n', ' ') 'utf-8').replace('\n', ' ')
extracted_data = extracted_data.replace('\t', ' ')
t = loader.select_template(( t = loader.select_template((
'search/indexes/' + self.template_name, )) 'search/indexes/' + self.template_name, ))
data['text'] = t.render(Context({'object': obj, data['text'] = t.render(Context({'object': obj,

3
sapl/materia/apps.py

@ -6,3 +6,6 @@ class AppConfig(apps.AppConfig):
name = 'sapl.materia' name = 'sapl.materia'
label = 'materia' label = 'materia'
verbose_name = _('Matéria') verbose_name = _('Matéria')
def ready(self):
from . import signals

29
sapl/materia/signals.py

@ -0,0 +1,29 @@
from django.db.models.signals import post_delete, post_save
from sapl.settings import PROJECT_DIR
from subprocess import PIPE, call
from threading import Thread
from .models import MateriaLegislativa, DocumentoAcessorio
class UpdateIndexCommand(Thread):
def run(self):
call([PROJECT_DIR.child('manage.py'), 'update_index'],
stdout=PIPE)
def save_texto(sender, instance, **kwargs):
update_index = UpdateIndexCommand()
update_index.start()
def delete_texto(sender, instance, **kwargs):
update_index = UpdateIndexCommand()
update_index.start()
post_save.connect(save_texto, sender=MateriaLegislativa)
post_save.connect(save_texto, sender=DocumentoAcessorio)
post_delete.connect(delete_texto, sender=MateriaLegislativa)
post_delete.connect(delete_texto, sender=DocumentoAcessorio)

10
sapl/templates/search/search.html

@ -4,6 +4,7 @@
{% block base_content %} {% block base_content %}
<h1><legend>Pesquisa Textual</legend></h1> <h1><legend>Pesquisa Textual</legend></h1>
</br> </br>
<form method="get" action="."> <form method="get" action=".">
@ -51,13 +52,22 @@
{% if result.object|search_get_model == 'm' %} {% if result.object|search_get_model == 'm' %}
<p> <p>
<strong>Matéria Legislativa: </strong> <a href="{% url 'sapl.materia:materialegislativa_detail' result.object.pk %}">{{ result.object }}</a></br> <strong>Matéria Legislativa: </strong> <a href="{% url 'sapl.materia:materialegislativa_detail' result.object.pk %}">{{ result.object }}</a></br>
{% if result.object.texto_original %}
<strong>Texto Original:</strong> <a href="{{result.object.texto_original.url}}"> Clique aqui </a></br> <strong>Texto Original:</strong> <a href="{{result.object.texto_original.url}}"> Clique aqui </a></br>
{% else %}
<strong>O texto desta matéria foi removido recentemente. Em breve ela sairá desta listagem.</strong></br>
{% endif %}
</p> </p>
{% elif result.object|search_get_model == 'd' %} {% elif result.object|search_get_model == 'd' %}
<p> <p>
<strong> Documento Acessório: </strong><a href="{% url 'sapl.materia:documentoacessorio_detail' result.object.pk %}">{{ result.object }}</a></br> <strong> Documento Acessório: </strong><a href="{% url 'sapl.materia:documentoacessorio_detail' result.object.pk %}">{{ result.object }}</a></br>
{% if result.object.arquivo %}
<strong>Texto Original:</strong> <a href="{{result.object.arquivo.url}}"> Clique aqui </a></br> <strong>Texto Original:</strong> <a href="{{result.object.arquivo.url}}"> Clique aqui </a></br>
{% else %}
<strong>O texto deste documento foi removido recentemente. Em breve ele sairá desta listagem.</strong></br>
{% endif %}
</p> </p>
{% endif %} {% endif %}
</td> </td>

Loading…
Cancel
Save