from django.forms import TextInput, Textarea from foro.models import * from django.contrib.admin import SimpleListFilter from django.contrib.admin.widgets import ManyToManyRawIdWidget, ForeignKeyRawIdWidget from django.utils.encoding import smart_unicode from django.utils.html import escape from django.contrib import admin #class (admin.ModelAdmin): #list_display = ('') #list_filter = [''] #search_fields = [''] class ponenciaInline(admin.StackedInline): model = Ponencia extra = 1 class actorInline(admin.StackedInline): model = Actor extra = 1 class ActorAdmin(admin.ModelAdmin): list_display=('problematica', 'nombre') list_filter = ['nombre'] search_fields = ['nombre'] admin.site.register(Actor, ActorAdmin) class efectoInline(admin.StackedInline): model = Efecto extra = 1 class ProblematicaAdmin(admin.ModelAdmin): #list_display = ('ponencia', 'descripcion') list_filter = ['descripcion'] search_fields = ['descripcion'] inlines = [(actorInline),] admin.site.register(Problematica, ProblematicaAdmin) class problematicaInline(admin.TabularInline): model = Problematica extra = 1 verbose_name = 'Problematica' verbose_name_plural = '2.2 Enlistado de Problematicas del tema' formfield_overrides = { models.CharField: {'widget': TextInput(attrs={'size':'175'})}, } class propuestaInline(admin.TabularInline): model = Propuesta extra = 1 verbose_name = 'Propuesta' verbose_name_plural = 'III. Propuestas' formfield_overrides = { models.CharField: {'widget': TextInput(attrs={'size':'175'})}, } class PonenciaAdmin(admin.ModelAdmin): #Seleccione ponencia list_display = ('fecha_ponencia', 'inscripcion_foro') list_filter = ['fecha_ponencia'] #search_fields = [''] #Agregar Ponencia # paneles fieldsets = [ ('Fecha', {'fields': ['fecha_ponencia', 'inscripcion_foro']}), ] admin.site.register(Ponencia, PonenciaAdmin) class sugerenciaInline(admin.StackedInline): model = BuzonSugerencia extra = 1 verbose_name = 'Sugerencia' verbose_name_plural = 'Sugerencias' class PropositoListFilter(SimpleListFilter): # Titulo legible que sera mostrado en el filtro title = ('proposito') # parametro para el filtro a ser usado en la URL parameter_name = 'proposito' def lookups(self, request, model_admin): return BuzonProposito.objects.all().values_list('id', 'descripcion') def queryset(self, request, queryset): try: bp = BuzonProposito.objects.get(pk=self.value()) bs = BuzonSugerencia.objects.filter(proposito=bp) # bs = BuzonSugerencia.objects.filter(proposito__id=self.value()) bc = queryset.filter(id__in=bs.values_list('buzon_ciudadano__id')) except Exception, e: bc = None return bc class SolucionListFilter(SimpleListFilter): title = ('solucion') parameter_name = 'solucion' def lookups(self, request, model_amdin): return BuzonSolucion.objects.all().values_list('id', 'descripcion') def queryset(self, request, queryset): try: bs = BuzonSolucion.objects.get(pk=self.value()) bsugerencia = BuzonSugerencia.objects.filter(solucion=bs) bc = queryset.filter(id__in=bsugerencia.values_list('buzon_ciudadano__id')) except Exception, e: return None return bc class BuzonCiudadanoAdmin(admin.ModelAdmin): list_display = ('edad', 'sexo','escolaridad', 'propuesta','fecha_registro', 'municipio', 'usuario', 'ejes') list_filter = ['fecha_registro', 'edad', 'sexo', 'escolaridad', 'municipio', 'usuario', PropositoListFilter, SolucionListFilter, ] search_fields = ['edad', 'sexo', 'propuesta', 'municipio__descripcion'] filter_horizontal = ('eje',) # paneles inlines = [(sugerenciaInline)] fieldsets = [ ('Buzon ciudadano', {'fields': [('edad', 'sexo'), 'propuesta', ('municipio', 'escolaridad')]}), ] def save_model(self, request, obj, form, change): obj.usuario = request.user obj.save() admin.site.register(BuzonCiudadano, BuzonCiudadanoAdmin) class BuzonSolucionAdmin(admin.ModelAdmin): list_display = ('descripcion',) list_filter = ['descripcion'] search_fields = ['descripcion'] #inlines = [(sugerenciaInline)] admin.site.register(BuzonSolucion, BuzonSolucionAdmin) class BuzonSugerenciaAdmin(admin.ModelAdmin): list_display = ('buzon_ciudadano',) list_filter = ['proposito', 'solucion', 'buzon_ciudadano'] search_fields = ['proposito', 'solucion', 'buzon_ciudadano' ] # paneles fieldsets = [ ('Sugerencias', {'fields': ['proposito', 'solucion']}), ] admin.site.register(BuzonSugerencia, BuzonSugerenciaAdmin) class BuzonPropositoAdmin (admin.ModelAdmin): list_display = ('descripcion',) list_filter = ['descripcion'] search_fields = ['descripcion'] admin.site.register(BuzonProposito, BuzonPropositoAdmin) class CausaAdmin (admin.ModelAdmin): list_display = ('descripcion',) #list_filter = [''] #search_fields = [''] admin.site.register(Causa, CausaAdmin) class CriterioAdmin(admin.ModelAdmin): list_display = ('nombre', 'descripcion') list_filter = ['nombre','descripcion'] search_fields = ['nombre','descripcion'] admin.site.register(Criterio, CriterioAdmin) class causaInline(admin.TabularInline): model = Causa extra = 1 verbose_name = 'Causa' verbose_name_plural = '2.3 Causas' formfield_overrides = { models.CharField: {'widget': TextInput(attrs={'size':'175'})}, } class efectoInline(admin.TabularInline): model = Efecto extra = 1 verbose_name = 'Efecto' verbose_name_plural = '2.3 Efectos' formfield_overrides = { models.CharField: {'widget': TextInput(attrs={'size':'175'})}, } class EfectoAdmin(admin.ModelAdmin): list_display = ('descripcion',) list_filter = ['descripcion'] search_fields = ['descripcion'] #inlines = [(causaInline)] admin.site.register(Efecto, EfectoAdmin) class EvaluacionAdmin(admin.ModelAdmin): list_display = ('mesa_tematica', 'ponencia', 'valoracion', 'criterio', 'fecha_evaluacion') list_filter = ['fecha_evaluacion',] #search_fields = [''] fieldsets = [ ('Evaluacion', {'fields': ['mesa_tematica', 'ponencia', 'criterio', 'valoracion', ]}), ] admin.site.register(Evaluacion, EvaluacionAdmin) class IntegranteAdmin(admin.ModelAdmin): list_display = ('nombre', 'direccion', 'telefono', 'correo_electronico', 'tipo_integrante', 'cargo') list_filter = ['nombre', 'direccion', 'tipo_integrante'] search_fields = ['nombre', 'direccion', 'telefono', 'correo_electronico', 'tipo_integrante', 'cargo'] admin.site.register(Integrante, IntegranteAdmin) class IntegranteInline(admin.StackedInline): model = Integrante extra = 1 class MesaTematicaAdmin (admin.ModelAdmin): list_display = ('nombre','fecha_trabajo', 'sede') list_filter = ['fecha_trabajo', 'sede', 'moderador'] search_fields = ['sitio_mesa', 'moderador'] inlines = [(IntegranteInline)] admin.site.register(MesaTematica, MesaTematicaAdmin) class EstadoAdmin(admin.ModelAdmin): list_display = ('nombre',) list_filter = ['nombre'] search_fields = ['nombre'] admin.site.register(Estado, EstadoAdmin) class MunicipioAdmin(admin.ModelAdmin): list_display = ('id','estado', 'descripcion') list_filter = ['estado', 'descripcion'] search_fields = ['estado', 'descripcion'] admin.site.register(Municipio, MunicipioAdmin) class PropuestaAdmin (admin.ModelAdmin): list_display = ('descripcion',) list_filter = ['descripcion'] search_fields = ['descripcion'] admin.site.register(Propuesta, PropuestaAdmin) class PropuestaMesaAdmin(admin.ModelAdmin): list_display = ('ponencia', 'fecha_propuesta') list_filter = ['fecha_propuesta'] search_fields = ['fecha_propuesta'] admin.site.register(PropuestaMesa, PropuestaMesaAdmin) class ValoracionAdmin(admin.ModelAdmin): list_display = ('calificacion', 'descripcion') list_filter = ['calificacion', 'descripcion'] search_fields = ['calificacion', 'descripcion'] admin.site.register(Valoracion, ValoracionAdmin) class FuenteAdmin(admin.ModelAdmin): list_display = ('descripcion',) list_filter = ['descripcion'] search_fields = ['descripcion'] admin.site.register(Fuente, FuenteAdmin) class InscripcionForoAdmin(admin.ModelAdmin): #'nombre_', 'correo_electronico', 'telefono', 'cargo', 'domicilio', 'colonia', list_display = ('mesa', 'titulo', 'fecha', 'fuente', 'nombre', 'apellidos') list_filter = ['fecha', 'mesa', 'colonia', 'fuente', 'subtitulo'] search_fields = ['nombre', 'apellidos', 'introduccion', 'subtema', 'titulo', 'subtitulo', 'mesa__nombre', 'mesa__foro__nombre', 'colonia', 'fuente__descripcion'] raw_id_fields = ('mesa',) # autocomplete_lookup_fields = {'fk' : ['mesa']} #modifica el tamano de los inputs formfield_overrides = { models.CharField: {'widget': TextInput(attrs={'size':'150'})}, } # paneles fieldsets = [ ('Generales', {'fields': ['mesa','subtitulo', 'fecha']}), ('I. Caratula de Identificacion', {'fields': ['nombre', 'apellidos', 'correo_electronico', 'telefono', 'institucion', 'procedencia','cargo', 'fuente']}), ('II. Parte Introductoria', {'fields': ['introduccion'], }), ] inlines = [(problematicaInline), (causaInline), (efectoInline), (propuestaInline)] #inlines = [(ponenciaInline)] # def formfield_for_dbfield(self, db_field, **kwargs): # if db_field.name in ('groups',): # kwargs.pop('request', None) # kwargs['widget'] = VerboseManyToManyRawIdWidget(db_field.rel) # return db_field.formfield(**kwargs) # return super(InscripcionForoAdmin,self).formfield_for_dbfield(db_field,**kwargs) admin.site.register(InscripcionForo, InscripcionForoAdmin) class plazoAdmin(admin.ModelAdmin): list_display = ('nombre', 'descripcion') fieldsets = [('Plazos',{'fields':['nombre', 'descripcion']})] admin.site.register(Plazo, plazoAdmin) admin.site.register([Dependencias, tipo_integrante, tipo_actores]) from foro.models import reporte class reporteAdmin(admin.ModelAdmin): list_display = ('url', ) admin.site.register(reporte, reporteAdmin) admin.site.register(Escolaridad) ################################################################# class institucionesAdmin(admin.ModelAdmin): pass admin.site.register(Instituciones, institucionesAdmin) class cargoAdmin(admin.ModelAdmin): pass admin.site.register(Cargo, cargoAdmin) class MesaAdmin(admin.ModelAdmin): #change_list_template = 'admin/change_list_filter_sidebar.html' list_display = ('nombre', 'foro') list_filter = ('foro',) search_fields = ['foro__nombre', 'nombre'] admin.site.register(Mesa, MesaAdmin) class EjeAdmin(admin.ModelAdmin): formfield_overrides = { models.CharField: {'widget': TextInput(attrs={'size':'150'})}, } filter_horizontal = ('foros', 'proposito') admin.site.register(Eje, EjeAdmin) admin.site.register(Procedencia) class diccionarioAdmin(admin.ModelAdmin): list_display=('nombre', 'eje') admin.site.register(Diccionario, diccionarioAdmin)