Liberacion
This commit is contained in:
@@ -78,16 +78,16 @@ class Suspension_Modulos_Permisos_ClienteAdmin(admin.ModelAdmin):
|
||||
super().save_model(request, obj, form, change)
|
||||
|
||||
for modulo in obj.suspensionmodulo_set.all():
|
||||
print(modulo, 'permisos',modulo.modulo.permisos.all())
|
||||
#print(modulo, 'permisos',modulo.modulo.permisos.all())
|
||||
for permiso in modulo.modulo.permisos.all():
|
||||
print('borrar?',permiso.delete)
|
||||
#print('borrar?',permiso.delete)
|
||||
|
||||
permObj,created=SuspensionPermiso.objects.get_or_create(
|
||||
supension_modPermP=obj,
|
||||
suspension_modulo=modulo.modulo,
|
||||
permiso=permiso,
|
||||
)
|
||||
print(permObj,created)
|
||||
#print(permObj,created)
|
||||
if permiso.delete:
|
||||
print('borrar')
|
||||
|
||||
|
||||
@@ -2,6 +2,8 @@ from django import forms
|
||||
from django.forms import inlineformset_factory
|
||||
from .models import ClientesA24, Suspension_Modulos_Permisos_Cliente,SuspensionModulo,SuspensionPermiso,Modulo
|
||||
from datetime import datetime
|
||||
from django.utils.html import format_html
|
||||
|
||||
|
||||
class ClienteForm_IMMEX(forms.ModelForm):
|
||||
fecha_baja = forms.DateField(
|
||||
@@ -21,10 +23,16 @@ class ClienteForm_IMMEX(forms.ModelForm):
|
||||
fecha_baja = self.cleaned_data.get("fecha_baja")
|
||||
|
||||
if Activo and fecha_baja:
|
||||
self._errors['fecha_baja'] = self.error_class(["El parametro activo no puede estar seleccionado si hay fecha de baja"])
|
||||
self.errors['fecha_baja'] = self.error_class(["El parametro activo no puede estar seleccionado si hay fecha de baja"])
|
||||
return self.cleaned_data
|
||||
|
||||
|
||||
class SuspensionModulosPermisosClienteForm(forms.ModelForm):
|
||||
button_field = forms.CharField(
|
||||
widget=forms.TextInput(attrs={'id':'add-sistema-cliente','type': 'button', 'value': 'Agregar Sistema-Cliente', "class":"btn btn-info"}),
|
||||
required=False,
|
||||
label=''
|
||||
)
|
||||
class Meta:
|
||||
model = Suspension_Modulos_Permisos_Cliente
|
||||
fields = '__all__'
|
||||
@@ -47,7 +55,7 @@ SuspensionModuloFormSet = inlineformset_factory(
|
||||
SuspensionModulo,
|
||||
form=SuspensionModuloForm,
|
||||
extra=5,
|
||||
can_delete=False,
|
||||
can_delete=True,
|
||||
)
|
||||
|
||||
#se usa "SuspensionModuloFormSet2" en el UpdateView para pasar el Extra igual a cero
|
||||
|
||||
@@ -9,7 +9,7 @@ router.register(r'modulos',views.ModulosListCreateAPIView)
|
||||
router.register(r'permisosA24',views.Permisos_A24_ModelViewSet)
|
||||
|
||||
urlpatterns = [
|
||||
path('', views.Sistemas_xCliente_IMMEX_ListView.as_view(), name='sistemasXcli_IMMEX'),
|
||||
path('lista/', views.Sistemas_xCliente_IMMEX_ListView.as_view(), name='sistemasXcli_IMMEX'),
|
||||
path('create_sistema/',views.Sistemas_xCliente_IMMEX_CreateView.as_view(), name='create_sistemaIMMEX'),
|
||||
path('create_Cliente/', views.ClientesIMMEX_CreateView.as_view(), name='ClientesIMMEX_Create'),
|
||||
path('checkRfcA24/', views.Check_IMMEX_RFC.as_view(), name='checkRfcA24' ),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Imports de Django
|
||||
from django.shortcuts import render
|
||||
from django.http import Http404
|
||||
from django.http import Http404,JsonResponse
|
||||
from django.urls import reverse_lazy, reverse
|
||||
from django.core.mail import send_mail
|
||||
from django.views.generic.edit import CreateView
|
||||
@@ -72,6 +72,29 @@ class Sistemas_xCliente_IMMEX_CreateView(UserPassesTestMixin,LoginRequiredMixin,
|
||||
if not res:
|
||||
messages.error(self.request, 'Lo sentimos. La página que buscas no está disponible o no cuentas con los permisos.')
|
||||
return res
|
||||
|
||||
def form_valid(self, form):
|
||||
response = super().form_valid(form)
|
||||
if self.request.headers.get('X-Requested-With') == 'XMLHttpRequest':
|
||||
|
||||
data = {
|
||||
'id':self.object.id,
|
||||
'nombre':self.object.id_sistema.nombre_sistema,
|
||||
'cliente':self.object.cliente.Nombre,
|
||||
'version':self.object.id_sistema.version
|
||||
}
|
||||
|
||||
return JsonResponse(data,status=status.HTTP_200_OK)
|
||||
|
||||
return response
|
||||
|
||||
def form_invalid(self,form):
|
||||
response = super().form_invalid(form)
|
||||
if self.request.headers.get('X-Requested-With') == 'XMLHttpRequest':
|
||||
errors = form.errors.as_text()
|
||||
return JsonResponse({'errors':f'{errors}'},status=200,content_type='application/json')
|
||||
else:
|
||||
return response
|
||||
|
||||
class ClientesIMMEX_CreateView(CreateView):
|
||||
model = ClientesA24
|
||||
|
||||
@@ -64,8 +64,7 @@ class SuspensionPermisosClienteCreateView(LoginRequiredMixin,UserPassesTestMixin
|
||||
context = self.get_context_data()
|
||||
modulo_formset = context['modulo_formset']
|
||||
permiso_formset = context['permiso_formset']
|
||||
|
||||
|
||||
|
||||
if modulo_formset.is_valid() and permiso_formset.is_valid():
|
||||
self.object = form.save() # Guardamos el objeto principal
|
||||
|
||||
@@ -79,24 +78,7 @@ class SuspensionPermisosClienteCreateView(LoginRequiredMixin,UserPassesTestMixin
|
||||
supension_modPermP=self.object,
|
||||
suspension_modulo=modulo.modulo,
|
||||
permiso=permiso,
|
||||
)
|
||||
|
||||
# permiso_formset.instance= self.object
|
||||
# permiso_formset.save()
|
||||
|
||||
# for permiso in self.object.suspensionpermiso_set.all():
|
||||
# # print(permiso.permiso,'iud',permiso.supension_modPermP.id)
|
||||
# # print(permiso.supension_modPermP,permiso.suspension_modulo)
|
||||
# suspension_modulo = self.object.suspensionmodulo_set.filter(
|
||||
# supension_modPerm_id=self.object,
|
||||
# # suspension_modulo = SuspensionModulo.objects.filter(supension_modPerm_id=self.object,
|
||||
# modulo__permisos__in=[permiso.permiso]
|
||||
# ).first()
|
||||
# #print('suspMod',(suspension_modulo))
|
||||
|
||||
# permiso.suspension_modulo=suspension_modulo.modulo
|
||||
# permiso.save()
|
||||
|
||||
)
|
||||
|
||||
return super().form_valid(form)
|
||||
else:
|
||||
@@ -119,54 +101,62 @@ class SuspensionPermisosCliente_UpdateView(LoginRequiredMixin,UserPassesTestMixi
|
||||
context = super().get_context_data(**kwargs)
|
||||
if self.request.POST:
|
||||
context['modulo_formset'] = SuspensionModuloFormSet(self.request.POST, instance=self.object)
|
||||
context['permiso_formset'] = SuspensionPermisoFormSet(self.request.POST,instance=self.object)
|
||||
|
||||
|
||||
context['permiso_formset'] = SuspensionPermisoFormSet(self.request.POST,instance=self.object)
|
||||
else:
|
||||
context['modulo_formset'] = SuspensionModuloFormSet2(instance=self.object)
|
||||
|
||||
|
||||
context['permiso_formset'] = SuspensionPermisoFormSet(instance=self.object)
|
||||
for form in context['permiso_formset'].forms:
|
||||
form.fields['modulo_extra'].widget = forms.HiddenInput()
|
||||
form.fields['modulo_extra'].queryset = SuspensionModulo.objects.none()
|
||||
form.fields['suspension_modulo'].queryset = Modulo.objects.all()
|
||||
#form.fields['suspension_modulo'].widget = forms.HiddenInput()
|
||||
#form.fields['permiso'].widget.attrs['disabled'] = True
|
||||
|
||||
|
||||
|
||||
for permiso_formset in context['permiso_formset'].forms:
|
||||
permiso_formset.fields['modulo_extra'].widget = forms.HiddenInput()
|
||||
permiso_formset.fields['modulo_extra'].queryset = SuspensionModulo.objects.none()
|
||||
permiso_formset.fields['suspension_modulo'].queryset = Modulo.objects.all()
|
||||
#permiso_formset.fields['suspension_modulo'].widget = forms.HiddenInput()
|
||||
#permiso_formset.fields['permiso'].widget.attrs['disabled'] = True
|
||||
|
||||
|
||||
context['form'].fields['sistema_cliente'].widget = forms.HiddenInput()
|
||||
context['form'].fields['button_field'].widget = forms.HiddenInput()
|
||||
|
||||
return context
|
||||
|
||||
def form_valid(self, form):
|
||||
context = self.get_context_data()
|
||||
modulo_formset = context['modulo_formset']
|
||||
permiso_formset = context['permiso_formset']
|
||||
print('permiupdate',permiso_formset.is_valid())
|
||||
#print('permiupdate',permiso_formset.is_valid())
|
||||
if form.is_valid() and modulo_formset.is_valid() and permiso_formset.is_valid():
|
||||
self.object = form.save()
|
||||
modulo_formset.instance = self.object
|
||||
|
||||
modulo_formset.save()
|
||||
print('MODULOS',self.object.suspensionmodulo_set.all().values())
|
||||
|
||||
modulo_formset.instance = self.object
|
||||
modulo_formset.save()
|
||||
|
||||
#print('MODULOS',(modulo_formset.instance.suspensionmodulo_set.all()))
|
||||
#Guardamos SuspensionModulo
|
||||
permiso_formset.instance= self.object
|
||||
permiso_formset.save()
|
||||
for permiso in self.object.suspensionpermiso_set.all():
|
||||
print('permiso:',permiso.permiso,'iud',permiso.supension_modPermP.id)
|
||||
print('MODULO PERMISO:',permiso.suspension_modulo)
|
||||
suspension_modulo = self.object.suspensionmodulo_set.filter(
|
||||
supension_modPerm_id=self.object,
|
||||
# suspension_modulo = SuspensionModulo.objects.filter(supension_modPerm_id=self.object,
|
||||
modulo__permisos__in=[permiso.permiso]
|
||||
).first()
|
||||
if not suspension_modulo == None:
|
||||
print('suspMod',(suspension_modulo))
|
||||
print()
|
||||
permiso.suspension_modulo=suspension_modulo.modulo
|
||||
permiso.save()
|
||||
else:
|
||||
permiso.delete()
|
||||
|
||||
|
||||
modulos_a_eliminar = [form1.cleaned_data['modulo'] for form1 in modulo_formset.forms \
|
||||
if hasattr(form1, 'cleaned_data') and form1.cleaned_data.get('DELETE')
|
||||
]
|
||||
#print('modulos_a_eliminar',modulos_a_eliminar)
|
||||
modulos_a_mantener = modulo_formset.instance.suspensionmodulo_set.exclude(modulo__in=modulos_a_eliminar)
|
||||
|
||||
#print('modulos_a_mantener',modulos_a_mantener)
|
||||
for modulo in modulos_a_mantener:
|
||||
for permiso in modulo.modulo.permisos.all():
|
||||
permObj,created=SuspensionPermiso.objects.get_or_create(
|
||||
supension_modPermP=self.object,
|
||||
suspension_modulo=modulo.modulo,
|
||||
permiso=permiso,
|
||||
)
|
||||
|
||||
# Eliminamos los permisos asociados a los módulos que se van a eliminar
|
||||
if modulos_a_eliminar:
|
||||
permisos_a_eliminar = SuspensionPermiso.objects.filter(suspension_modulo__in=modulos_a_eliminar)
|
||||
permisos_a_eliminar.delete()
|
||||
|
||||
return super().form_valid(form)
|
||||
else:
|
||||
return self.render_to_response(self.get_context_data(form=form))
|
||||
return self.render_to_response(self.get_context_data(form=form))
|
||||
|
||||
Reference in New Issue
Block a user