Changeset 8cf8085 in sicp


Ignore:
Timestamp:
May 19, 2015, 1:34:51 PM (9 years ago)
Author:
Ing. Roldan D. Vargas G <rvargas@…>
Branches:
master
Children:
385e7d3
Parents:
c4b04e5
Message:

Modificacion a la clase UserAdmin? en la que se le agregaron acciones para activar y/o desactivar usuarios por lotes, y se agregan las columnas institucion y cargo del modelo UserProfile?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • apps/usuario/admin.py

    r5ec3ba1 r8cf8085  
    2020
    2121from django.contrib import admin
    22 from apps.usuario.models import Institucion, Cargo
     22from django.contrib.auth.admin import UserAdmin
     23from django.contrib.auth.models import User
     24from django.utils.translation import ugettext_lazy as _
     25from apps.usuario.models import Institucion, Cargo, UserProfile
     26
    2327
    2428class InstitucionAdmin(admin.ModelAdmin):
     29    """!
     30    Clase que gestiona los datos de las instituciones en el panel administrativo
     31
     32    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     33    @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL) Nodo Mérida - Venezuela
     34    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     35    @date 04-05-2015
     36    @version 3.0.0
     37    """
    2538    list_display = ('nombre', 'descripcion')
    2639    list_filter = ('nombre',)
     
    2942
    3043class CargoAdmin(admin.ModelAdmin):
     44    """!
     45    Clase que gestiona los datos de los cargos en el panel administrativo del sistema
     46
     47    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     48    @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL) Nodo Mérida - Venezuela
     49    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     50    @date 04-05-2015
     51    @version 3.0.0
     52    """
    3153    list_display = ('nombre',)
    3254    list_filter = ('nombre',)
     
    3456    search_fields = ('nombre',)
    3557
     58
     59def activar_usuario(modeladmin, request, queryset):
     60    """!
     61    Función que asigna la acción a ejecutar cuando se selecciona la opción de activar usuarios seleccionados
     62
     63    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     64    @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL) Nodo Mérida - Venezuela
     65    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     66    @date 19-05-2015
     67    @param[in] modeladmin Objeto que contiene el modelo de administración
     68    @param[in] request Objeto que contiene la petición
     69    @param[in] queryset Objeto que contiene los datos del queryset
     70    """
     71    queryset.update(is_active=True)
     72
     73## Asigna el texto a mostrar en la lista de selección sobre acciones a ejecutar en el listado de usuarios
     74activar_usuario.short_description = _(u"Activar usuarios seleccionados")
     75
     76def desactivar_usuario(modeladmin, request, queryset):
     77    """!
     78    Función que asigna la acción a ejecutar cuando se selecciona la opción de desactivar usuarios seleccionados
     79
     80    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     81    @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL) Nodo Mérida - Venezuela
     82    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     83    @date 19-05-2015
     84    @param[in] modeladmin Objeto que contiene el modelo de administración
     85    @param[in] request Objeto que contiene la petición
     86    @param[in] queryset Objeto que contiene los datos del queryset
     87    """
     88    queryset.update(is_active=False)
     89
     90## Asigna el texto a mostrar en la lista de selección sobre acciones a ejecutar en el listado de usuarios
     91desactivar_usuario.short_description = _(u"Desactivar usuarios seleccionados")
     92
     93class UserAdmin(UserAdmin):
     94    """!
     95    Clase que gestiona los datos de los usuarios en el panel administrativo del sistema
     96
     97    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     98    @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL) Nodo Mérida - Venezuela
     99    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     100    @date 19-05-2015
     101    @version 3.0.0
     102    """
     103    list_display = (
     104        'username', 'email', 'first_name', 'last_name', 'is_active', 'date_joined', 'is_staff', 'institucion', 'cargo'
     105    )
     106    list_display_links = ('username',)
     107    ordering = (
     108        'username', 'first_name', 'last_name', 'is_active', 'date_joined', 'profile__institucion', 'profile__cargo'
     109    )
     110    search_fields = (
     111        'username', 'first_name', 'last_name', 'is_active', 'date_joined', 'profile__institucion', 'profile__cargo'
     112    )
     113    """fieldsets = (
     114        (None, {'fields': ()}),
     115        (_(u"Informacion institucional"), {'fields': ('profile__institucion', 'profile__cargo')})
     116    )"""
     117    actions = [activar_usuario, desactivar_usuario]
     118
     119    def institucion(self, obj):
     120        """!
     121        Función que agrega la columna institución del modelo UserProfile
     122
     123        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     124        @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL) Nodo Mérida - Venezuela
     125        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     126        @date 19-05-2015
     127        @param[in] obj Objeto que contiene los datos del modelo
     128        @return Devuelve el nombre de la institución a mostrar, si no existe, devuelve un valor vacío
     129        """
     130        try:
     131            return obj.profile.institucion
     132        except:
     133            return ""
     134
     135    def cargo(self, obj):
     136        """!
     137        Función que agrega la columna cargo del modelo UserProfile
     138
     139        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     140        @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL) Nodo Mérida - Venezuela
     141        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     142        @date 19-05-2015
     143        @param[in] obj Objeto que contiene los datos del modelo
     144        @return Devuelve el nombre del cargo a mostrar, si no existe, devuelve un valor vacío
     145        """
     146        try:
     147            return obj.profile.cargo
     148        except:
     149            return ""
     150
     151    ## Asigna el texto a mostrar en el título de la columna Institución
     152    institucion.short_description = _(u"Institución")
     153
     154    ## Asigna el texto a mostrar en el título de la columna Cargo
     155    cargo.short_description = _(u"Cargo")
     156
     157## Anula el registro del modelo User en el panel administrativo del sistema
     158admin.site.unregister(User)
     159
     160## Registra el modelo User en el panel administrativo del sistema
     161admin.site.register(User, UserAdmin)
     162
    36163## Registra el módelo Institución en el panel administrativo del sistema
    37164admin.site.register(Institucion, InstitucionAdmin)
Note: See TracChangeset for help on using the changeset viewer.