Browse Source

Correcao de bug no search da app ocorrencias

producao
Breno Teixeira 11 years ago
parent
commit
a427a835ef
  1. 35
      sigi/apps/ocorrencias/admin.py
  2. 4
      sigi/apps/ocorrencias/models.py

35
sigi/apps/ocorrencias/admin.py

@ -1,17 +1,15 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.contrib import admin from django.contrib import admin
from django.contrib.admin.views.main import ChangeList from django.contrib.admin.views.main import ChangeList
from eav.admin import BaseEntityAdmin, BaseSchemaAdmin
from sigi.apps.servidores.models import Servidor from sigi.apps.servidores.models import Servidor
from sigi.apps.ocorrencias.models import Ocorrencia, Comentario, Anexo, Categoria, TipoContato from sigi.apps.ocorrencias.models import Ocorrencia, Comentario, Anexo, Categoria, TipoContato
class ComentarioViewInline(admin.TabularInline): class ComentarioViewInline(admin.TabularInline):
model = Comentario model = Comentario
extra = 0 extra = 0
max_num=0 max_num = 0
can_delete = False can_delete = False
verbose_name, verbose_name_plural = u"Comentário anterior", u"Comentários anteriores" verbose_name, verbose_name_plural = u"Comentário anterior", u"Comentários anteriores"
fields = ('usuario', 'data_criacao', 'novo_status', 'encaminhar_setor', 'descricao', ) fields = ('usuario', 'data_criacao', 'novo_status', 'encaminhar_setor', 'descricao', )
@ -23,7 +21,8 @@ class ComentarioInline(admin.StackedInline):
extra = 1 extra = 1
verbose_name, verbose_name_plural = u"Comentário novo", u"Comentários novos" verbose_name, verbose_name_plural = u"Comentário novo", u"Comentários novos"
fieldsets = ((None, {'fields': (('novo_status', 'encaminhar_setor',), 'descricao', )}),) fieldsets = ((None, {'fields': (('novo_status', 'encaminhar_setor',), 'descricao', )}),)
def queryset(self, request):
def queryset(self, queryset):
return self.model.objects.get_query_set() return self.model.objects.get_query_set()
@ -35,12 +34,14 @@ class AnexosInline(admin.TabularInline):
class OcorrenciaChangeList(ChangeList): class OcorrenciaChangeList(ChangeList):
request = None request = None
def __init__(self, request, model, list_display, list_display_links, list_filter, date_hierarchy, search_fields, def __init__(self, request, model, list_display, list_display_links, list_filter, date_hierarchy, search_fields,
list_select_related, list_per_page, list_max_show_all, list_editable, model_admin): list_select_related, list_per_page, list_max_show_all, list_editable, model_admin):
self.request = request self.request = request
super(OcorrenciaChangeList, self).__init__(request, model, list_display, list_display_links, list_filter, super(OcorrenciaChangeList, self).__init__(request, model, list_display, list_display_links, list_filter,
date_hierarchy, search_fields, list_select_related, list_per_page, date_hierarchy, search_fields, list_select_related, list_per_page,
list_max_show_all, list_editable, model_admin) list_max_show_all, list_editable, model_admin)
def get_query_set(self, request): def get_query_set(self, request):
tmp_params = self.params.copy() tmp_params = self.params.copy()
grupo = None grupo = None
@ -51,9 +52,9 @@ class OcorrenciaChangeList(ChangeList):
self.params = tmp_params.copy() self.params = tmp_params.copy()
if grupo: if grupo:
servidor = Servidor.objects.get(user=self.request.user) servidor = Servidor.objects.get(user=self.request.user)
if grupo == 'S': # Apenas do meu setor if grupo == 'S': # Apenas do meu setor
qs = qs.filter(setor_responsavel=servidor.servico) qs = qs.filter(setor_responsavel=servidor.servico)
elif grupo == 'M': # Apenas criados por mim elif grupo == 'M': # Apenas criados por mim
qs = qs.filter(servidor_registro=servidor) qs = qs.filter(servidor_registro=servidor)
return qs return qs
@ -61,17 +62,17 @@ class OcorrenciaChangeList(ChangeList):
class OcorrenciaAdmin(admin.ModelAdmin): class OcorrenciaAdmin(admin.ModelAdmin):
list_display = ('data_criacao', 'casa_legislativa', 'assunto', 'prioridade', 'status', 'data_modificacao', 'setor_responsavel',) list_display = ('data_criacao', 'casa_legislativa', 'assunto', 'prioridade', 'status', 'data_modificacao', 'setor_responsavel',)
list_filter = ('categoria__nome', 'assunto', 'status', 'prioridade', 'setor_responsavel__nome', ) list_filter = ('categoria__nome', 'assunto', 'status', 'prioridade', 'setor_responsavel__nome', )
search_fields = ('casa_legislativa__search_text', 'assunto', 'servidor_registro__nome', ) search_fields = ('casa_legislativa__search_text', 'assunto', 'servidor_registro__nome_completo', )
date_hierarchy = 'data_criacao' date_hierarchy = 'data_criacao'
fields = ('casa_legislativa', 'categoria', 'tipo_contato', 'assunto', 'status', 'prioridade', 'descricao', 'servidor_registro', fields = ('casa_legislativa', 'categoria', 'tipo_contato', 'assunto', 'status', 'prioridade', 'descricao', 'servidor_registro',
'setor_responsavel', 'resolucao', ) 'setor_responsavel', 'resolucao', )
readonly_fields = ('servidor_registro', 'setor_responsavel', ) readonly_fields = ('servidor_registro', 'setor_responsavel', )
inlines = (ComentarioViewInline, ComentarioInline, AnexosInline, ) inlines = (ComentarioViewInline, ComentarioInline, AnexosInline, )
raw_id_fields = ('casa_legislativa', ) raw_id_fields = ('casa_legislativa', )
def get_changelist(self, request, **kwargs): def get_changelist(self, request, **kwargs):
return OcorrenciaChangeList return OcorrenciaChangeList
def get_readonly_fields(self, request, obj=None): def get_readonly_fields(self, request, obj=None):
fields = list(self.readonly_fields) fields = list(self.readonly_fields)
if obj is not None: if obj is not None:
@ -79,22 +80,22 @@ class OcorrenciaAdmin(admin.ModelAdmin):
if obj.status in [3, 4, 5]: #Fechados if obj.status in [3, 4, 5]: #Fechados
fields.append('prioridade') fields.append('prioridade')
return fields return fields
def get_fieldsets(self, request, obj=None): def get_fieldsets(self, request, obj=None):
if obj is None: if obj is None:
self.fields = ('casa_legislativa', 'categoria', 'tipo_contato', 'assunto', 'prioridade', 'descricao', 'resolucao', ) self.fields = ('casa_legislativa', 'categoria', 'tipo_contato', 'assunto', 'prioridade', 'descricao', 'resolucao', )
else: else:
self.fields = ('casa_legislativa', 'categoria', 'tipo_contato', 'assunto', 'status', 'prioridade', 'descricao', self.fields = ('casa_legislativa', 'categoria', 'tipo_contato', 'assunto', 'status', 'prioridade', 'descricao',
'servidor_registro', 'setor_responsavel', 'resolucao', ) 'servidor_registro', 'setor_responsavel', 'resolucao', )
return super(OcorrenciaAdmin, self).get_fieldsets(request, obj) return super(OcorrenciaAdmin, self).get_fieldsets(request, obj)
def save_model(self, request, obj, form, change): def save_model(self, request, obj, form, change):
if not change: if not change:
obj.servidor_registro = Servidor.objects.get(user=request.user) obj.servidor_registro = Servidor.objects.get(user=request.user)
obj.setor_responsavel = obj.categoria.setor_responsavel obj.setor_responsavel = obj.categoria.setor_responsavel
obj.save() obj.save()
def save_formset(self, request, form, formset, change): def save_formset(self, request, form, formset, change):
servidor = Servidor.objects.get(user=request.user) servidor = Servidor.objects.get(user=request.user)
instances = formset.save(commit=False) instances = formset.save(commit=False)
@ -113,4 +114,4 @@ class OcorrenciaAdmin(admin.ModelAdmin):
admin.site.register(Ocorrencia, OcorrenciaAdmin) admin.site.register(Ocorrencia, OcorrenciaAdmin)
admin.site.register(Categoria) admin.site.register(Categoria)
admin.site.register(TipoContato) admin.site.register(TipoContato)

4
sigi/apps/ocorrencias/models.py

@ -1,9 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from django.db import models from django.db import models
from datetime import datetime
from django.db import models
from sigi.apps.utils import SearchField
#from eav.models import BaseChoice, BaseEntity, BaseSchema, BaseAttribute
class Categoria(models.Model): class Categoria(models.Model):

Loading…
Cancel
Save