Sistemas Clientes modulos permisos finished

This commit is contained in:
fjrodriguez
2023-11-30 10:42:06 -06:00
parent 61cf354a79
commit 607790896b
16 changed files with 523 additions and 77 deletions

View File

@@ -57,99 +57,54 @@ class ActiveTokenSession_Admin(admin.ModelAdmin):
class SuspensionPermisoInline(admin.TabularInline):
model = SuspensionPermiso
extra = 1
def get_formset(self, request, obj=None, **kwargs):
# Utiliza el objeto 'obj' (el módulo actual) para filtrar el queryset
formset = super().get_formset(request, obj, **kwargs)
# def get_formset(self, request, obj=None, **kwargs):
# # Utiliza el objeto 'obj' (el módulo actual) para filtrar el queryset
# formset = super().get_formset(request, obj, **kwargs)
if obj:
print('SDL',obj.modulo.permisos.all())
formset.form.base_fields['permiso'].queryset = obj.modulo.permisos.all()
return formset
# if obj:
# print('SDL',obj.modulo.permisos.all())
# formset.form.base_fields['permiso'].queryset = obj.modulo.permisos.all()
# return formset
class SuspensionModuloInline(admin.TabularInline):
model = SuspensionModulo
class SuspensionModuloAdmin(admin.ModelAdmin):
list_display = ['modulo','suspendido','supension_modPerm_id']
inlines=[SuspensionPermisoInline]
class Suspension_Modulos_Permisos_ClienteAdmin(admin.ModelAdmin):
inlines = [SuspensionModuloInline]
inlines = [SuspensionModuloInline,SuspensionPermisoInline]
def save_model(self, request, obj, form, change):
super().save_model(request, obj, form, change)
for modulo in obj.suspensionmodulo_set.all():
print(modulo, 'permisos',modulo.modulo.permisos.all())
for permiso in modulo.modulo.permisos.all():
print('borrar?',permiso.delete)
permObj,created=SuspensionPermiso.objects.get_or_create(
suspension_modulo=modulo,
supension_modPermP=obj,
suspension_modulo=modulo.modulo,
permiso=permiso,
)
print(permObj,created)
if permiso.delete:
print('borrar')
class SuspensionPermisoInline2(admin.TabularInline):
model = SuspensionPermiso
class SuspensionPemisoAdmin(admin.ModelAdmin):
inlines=[SuspensionPermisoInline2]
admin.site.register(Modulo)
admin.site.register(Permisos_A24)
admin.site.register(Modulo)
admin.site.register(SuspensionModulo,SuspensionModuloAdmin)
admin.site.register(SuspensionPermiso)
admin.site.register(Suspension_Modulos_Permisos_Cliente, Suspension_Modulos_Permisos_ClienteAdmin)
# class Permisos_A24_Admin(admin.ModelAdmin):
# list_display =['nombre']
# search_fields = ['nombre']
# class Modulo_Admin(admin.ModelAdmin):
# list_display=('nombre','sistema_cliente'
# #,'lista_permisos'
# )
# filter_horizontal = ['permisos']
# class SuspensionPermisoInline(admin.TabularInline):
# model = SuspensionPermiso
# extra = 1 # Puedes ajustar esto según tus necesidades
# class SuspensionModuloInline(admin.TabularInline):
# model = SuspensionModulo
# extra = 1 # Ajusta según tus necesidades
# class SuspensionModulo_Admin(admin.ModelAdmin):
# list_display=['modulo','cliente_nombre','dispositivo','custom_suspendido']
# search_fields = ['dispositivo__clienteA24__Nombre', 'dispositivo__clienteA24__RFC']
# def cliente_nombre(self, obj):
# return f'{obj.dispositivo.clienteA24.Nombre}({obj.dispositivo.clienteA24.RFC})' \
# if obj.dispositivo and obj.dispositivo.clienteA24 else "N/A"
# cliente_nombre.short_description = 'Nombre del Cliente(RFC)' # Puedes personalizar el encabezado si lo deseas
# def custom_suspendido(self,obj):
# return "Sí" if obj.suspendido else "No"
# custom_suspendido.short_description = 'Suspendido'
# class ModuloInline(admin.TabularInline):
# model = Modulo
# extra =1
# autocomplete_fields = ['permisos']
# class Sistema_x_ClienteAdmin(admin.ModelAdmin):
# inlines = [ModuloInline]
# search_fields = ['modulos__nombre', 'modulos__permisos__nombre']
# list_filter =('modulo__permisos__nombre',)
# class Device_A24_Admin2(admin.ModelAdmin):
# inlines = [SuspensionPermisoInline, SuspensionModuloInline]
# admin.site.register(SuspensionPermiso)
# admin.site.register(SuspensionModulo,SuspensionModulo_Admin)
# admin.site.register(Permisos_A24,Permisos_A24_Admin)
# admin.site.register(Modulo,Modulo_Admin)
admin.site.register(Sistemas_por_cliente_A24)