changes for sistemas
This commit is contained in:
@@ -491,3 +491,11 @@ class ClientesCreateView(UserPassesTestMixin,LoginRequiredMixin,CreateView):
|
||||
return JsonResponse(data)
|
||||
else:
|
||||
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
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 4.1.3 on 2023-03-07 16:28
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('Clientes', '0015_alter_timbres_rfcc'),
|
||||
('Sistemas', '0013_alter_bitacoraerrores_options'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterUniqueTogether(
|
||||
name='sistemas_por_cliente',
|
||||
unique_together={('id_sistema', 'cliente')},
|
||||
),
|
||||
]
|
||||
@@ -38,13 +38,11 @@ class sistemas_por_cliente(models.Model):
|
||||
id_sistema= models.ForeignKey(Sistema, related_name='sistema_spc', on_delete=models.CASCADE)
|
||||
cliente = models.ForeignKey(Clientes, related_name='cliente_spc', on_delete=models.CASCADE)
|
||||
num_licencias= models.IntegerField(default=1)
|
||||
|
||||
def __str__(self):
|
||||
|
||||
return f'{self.cliente.Nombre}'
|
||||
class Meta:
|
||||
ordering= ('-cliente','id_sistema')
|
||||
|
||||
unique_together = ('id_sistema', 'cliente')
|
||||
|
||||
class DeviceManager(BaseUserManager):
|
||||
def generate_unique_username(self,client, device_name, ip_address):
|
||||
|
||||
@@ -74,8 +74,8 @@ class UploadZipVersionView(APIView):
|
||||
return redirect('uploadZipViewHTML')
|
||||
version = request.POST.get('version')
|
||||
sistema = request.POST.get('sistema')
|
||||
print('version',version, ' sistema',sistema)
|
||||
except KeyError:
|
||||
except KeyError as ker:
|
||||
BitacoraErrores.objects.create(level=2, message=f'keyError Try: {str(ker)}', traceback=traceback.format_exc(), view='Sistemas.UploadZipVersionView')
|
||||
return Response({'error':'Zip file is required'},status=status.HTTP_400_BAD_REQUEST)
|
||||
try:
|
||||
versionSistema = Sistema.objects.get(id=sistema)
|
||||
@@ -100,18 +100,15 @@ class UploadZipVersionView(APIView):
|
||||
@authentication_classes([TokenAuthentication])
|
||||
@permission_classes([IsAuthenticated])
|
||||
def download_version_FromServer(request):
|
||||
""""""
|
||||
"""dw"""
|
||||
try:
|
||||
sys= request.GET.get('sys')
|
||||
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
if sys:
|
||||
filename=f'{sys}.zip'
|
||||
else:
|
||||
filename = 'CFDI.zip'
|
||||
filepath = f'{BASE_DIR }/downloadSystems/{filename}'
|
||||
|
||||
#path = open(filepath, 'r')
|
||||
with open(filepath, 'rb') as path:
|
||||
mime_type, _ = mimetypes.guess_type(filepath)
|
||||
response = HttpResponse(path.read(),content_type=mime_type)
|
||||
@@ -122,6 +119,7 @@ def download_version_FromServer(request):
|
||||
return HttpResponse(status=204)
|
||||
|
||||
class UsersConnectedList(UserPassesTestMixin,LoginRequiredMixin,ListView):
|
||||
"""CV"""
|
||||
model = User
|
||||
template_name= 'Sistemas/Usuarios/lista.html'
|
||||
|
||||
@@ -153,7 +151,6 @@ class UsersConnectedList(UserPassesTestMixin,LoginRequiredMixin,ListView):
|
||||
return users
|
||||
|
||||
class SistemasXCliente_ListView(UserPassesTestMixin,LoginRequiredMixin, ListView):
|
||||
|
||||
model = sistemas_por_cliente
|
||||
paginate_by = 20
|
||||
template_name = 'Sistemas/Xclientes/lista.html'
|
||||
@@ -184,7 +181,6 @@ class SistemasXCliente_DetailView(UserPassesTestMixin,LoginRequiredMixin, Detail
|
||||
if not res:
|
||||
messages.error(self.request, f'Lo sentimos. La página que buscas no está disponible, no cuentas con los permisos.')
|
||||
return res
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
sistemas_por_cliente = self.object
|
||||
@@ -213,7 +209,9 @@ class Sistema_CreateView(CreateView):
|
||||
'version': self.object.version,
|
||||
}
|
||||
return JsonResponse(data)
|
||||
|
||||
def form_invalid(self, form):
|
||||
errors =form.errors.as_text()
|
||||
return JsonResponse({'errors': f'{errors}'}, status=200)
|
||||
'''
|
||||
========================= API Views
|
||||
'''
|
||||
|
||||
@@ -38,41 +38,32 @@
|
||||
document.addEventListener("DOMContentLoaded", ()=>{
|
||||
if(window.name ==='popupWin')
|
||||
{
|
||||
console.log('popupWin')
|
||||
document.querySelector("#cliente-form").addEventListener('submit',(event)=>{
|
||||
event.preventDefault();
|
||||
let form= event.target;
|
||||
let url = `{% url 'add_cliente' %}`;
|
||||
let data = new FormData(form);
|
||||
|
||||
let xhr = new XMLHttpRequest();
|
||||
|
||||
xhr.open('POST',url);
|
||||
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
|
||||
xhr.onreadystatechange = ()=>{
|
||||
if(xhr.readyState===XMLHttpRequest.DONE){
|
||||
if(xhr.status===200){
|
||||
|
||||
let response = JSON.parse(xhr.responseText);
|
||||
if(response.errors){
|
||||
alert(response.errors)
|
||||
}else{
|
||||
window.opener.postMessage({data:response, windowName:'clientWindow'},window.location.origin);
|
||||
window.close();
|
||||
}
|
||||
}else{
|
||||
console.error('Request error ',xhr.statusText);
|
||||
}
|
||||
}
|
||||
};
|
||||
xhr.send(data);
|
||||
/*
|
||||
fetch(url,{
|
||||
method:'POST',
|
||||
body:data
|
||||
})
|
||||
.then(response=>response.json())
|
||||
.then(response=>{
|
||||
window.opener.postMessage({data:response, windowName:'clientWindow'},window.location.origin);
|
||||
window.close();
|
||||
})
|
||||
.catch(error => console.log(error));
|
||||
*/
|
||||
|
||||
});
|
||||
}else{
|
||||
console.log('not popupWin')
|
||||
|
||||
@@ -6,12 +6,26 @@
|
||||
<form method="post">
|
||||
|
||||
{% csrf_token %}
|
||||
{% if form.non_field_errors %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
{% for error in form.non_field_errors %}
|
||||
<p>{{ error }}</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="">
|
||||
<div class="form-group">
|
||||
<div class="form">
|
||||
{{ form.id_sistema.label }}
|
||||
{{ form.id_sistema }}
|
||||
<button id="add-sistema-btn" type="button" class="btn btn-info">Add Sistema</button>
|
||||
{% if form.id_sistema.errors %}
|
||||
<ul class="errorlist">
|
||||
{% for error in form.id_sistema.errors %}
|
||||
<li>{{ error }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -19,11 +33,25 @@
|
||||
{{ form.cliente.label}}
|
||||
{{ form.cliente }}
|
||||
<button id="add-cliente-btn" type="button" class="btn btn-info">Add Cliente</button>
|
||||
{% if form.cliente.errors %}
|
||||
<ul class="errorlist">
|
||||
{% for error in form.cliente.errors %}
|
||||
<li>{{ error }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ form.num_licencias.label }}
|
||||
{{ form.num_licencias }}
|
||||
{% if form.num_licencias.errors %}
|
||||
<ul class="errorlist">
|
||||
{% for error in form.num_licencias.errors %}
|
||||
<li>{{ error }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<button class="btn btn-success" type="submit">Create</button>
|
||||
@@ -89,22 +117,5 @@
|
||||
});
|
||||
});
|
||||
|
||||
/*
|
||||
$(function() {
|
||||
$('#add-sistema-btn').click(function() {
|
||||
let popupWin = window.open("{% url 'create_sistemas_form' %}", "popupWin", "width=800,height=600");
|
||||
popupWin.focus();
|
||||
});
|
||||
window.addEventListener('message', function(event) {
|
||||
let response = event.data;
|
||||
let id_sistema = response.id;
|
||||
let nombre_sistema = response.nombre_sistema;
|
||||
let version = response.version;
|
||||
let option = '<option value="' + id_sistema + '" selected>' + nombre_sistema + ', version ' + version + '</option>';
|
||||
$('#id_id_sistema').append(option);
|
||||
$('#sistema-modal').modal('hide');
|
||||
});
|
||||
});
|
||||
*/
|
||||
</script>
|
||||
{% endblock scripts %}
|
||||
@@ -24,37 +24,32 @@
|
||||
method: 'POST',
|
||||
body: data
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(response => {
|
||||
if(response.ok){
|
||||
return response.json();
|
||||
}else{
|
||||
|
||||
throw new Error('Network response was not ok');
|
||||
}
|
||||
|
||||
})
|
||||
.then(response => {
|
||||
if(response.errors) {
|
||||
alert(response.errors)
|
||||
id_nombre_sistema.value=''
|
||||
}else{
|
||||
window.opener.postMessage({data: response, windowName: 'sistemaWindow'}, window.location.origin);
|
||||
window.close();
|
||||
}
|
||||
})
|
||||
.catch(error => console.log(error));
|
||||
});
|
||||
});
|
||||
|
||||
/*
|
||||
<!--script src="https://code.jquery.com/jquery-3.6.0.min.js">
|
||||
$(function() {
|
||||
$('#sistema-form').submit(function(event) {
|
||||
event.preventDefault();
|
||||
var form = $(this);
|
||||
var url = form.attr('action');
|
||||
var data = form.serialize();
|
||||
$.ajax({
|
||||
url: url,
|
||||
data: data,
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
success: function(response) {
|
||||
window.opener.postMessage(response, '*');
|
||||
window.close();
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.log(xhr.responseText);
|
||||
.catch(error => {
|
||||
if(error.response){
|
||||
alert('Error System AS_000')
|
||||
}else{
|
||||
alert('Error System AS_001')
|
||||
}
|
||||
});
|
||||
});
|
||||
});*/
|
||||
});
|
||||
</script>
|
||||
{% endblock scripts %}
|
||||
|
||||
Reference in New Issue
Block a user