From b73a4d50d07b6a11530d68d2152466e97589d52b Mon Sep 17 00:00:00 2001 From: fjrodriguez Date: Thu, 9 Feb 2023 11:35:27 -0600 Subject: [PATCH] updates Bitacore --- Sistemas/admin.py | 7 +-- .../migrations/0012_bitacoraerrores_view.py | 18 ++++++++ Sistemas/models.py | 1 + Sistemas/views.py | 43 +++++++++++-------- 4 files changed, 48 insertions(+), 21 deletions(-) create mode 100644 Sistemas/migrations/0012_bitacoraerrores_view.py diff --git a/Sistemas/admin.py b/Sistemas/admin.py index e7eb3f0..eb27182 100644 --- a/Sistemas/admin.py +++ b/Sistemas/admin.py @@ -1,9 +1,10 @@ from django.contrib import admin -from .models import Sistema, sistemas_por_cliente, Device,DeviceHistory +from .models import Sistema, sistemas_por_cliente, Device,DeviceHistory, BitacoraErrores # Register your models here. - +class BitacoraErroresAdmin(admin.ModelAdmin): + list_display = ['level', 'message'] class Sistema_Admin(admin.ModelAdmin): def NSistema(self,obj): return obj.nombre_sistema @@ -21,7 +22,7 @@ class DeviceHistoryAdmin(admin.ModelAdmin): class DeviceAdmin(admin.ModelAdmin): list_display = ['client', 'device_name', 'ip_address', 'sistema', 'macAddress'] - +admin.site.register(BitacoraErrores,BitacoraErroresAdmin) admin.site.register(Sistema,Sistema_Admin) admin.site.register(sistemas_por_cliente,SPC) admin.site.register(Device,DeviceAdmin) diff --git a/Sistemas/migrations/0012_bitacoraerrores_view.py b/Sistemas/migrations/0012_bitacoraerrores_view.py new file mode 100644 index 0000000..f5e531c --- /dev/null +++ b/Sistemas/migrations/0012_bitacoraerrores_view.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1.3 on 2023-02-09 16:32 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Sistemas', '0011_bitacoraerrores'), + ] + + operations = [ + migrations.AddField( + model_name='bitacoraerrores', + name='view', + field=models.CharField(blank=True, max_length=150, null=True), + ), + ] diff --git a/Sistemas/models.py b/Sistemas/models.py index 723cc5e..b64f610 100644 --- a/Sistemas/models.py +++ b/Sistemas/models.py @@ -20,6 +20,7 @@ class BitacoraErrores(models.Model): message = models.TextField() timestamp = models.DateTimeField(auto_now_add=True) traceback = models.TextField(null=True,blank=True) + view = models.CharField(max_length=150,null=True,blank=True) def __str__(self): return f"{self.get_level_display()}: {self.message}" diff --git a/Sistemas/views.py b/Sistemas/views.py index e999ef9..e171bd9 100644 --- a/Sistemas/views.py +++ b/Sistemas/views.py @@ -13,7 +13,7 @@ from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin from .models import sistemas_por_cliente, DeviceHistory,Device from .serializers import DeviceSerializer from .permissions import HasAuthorizationHeader -from .models import Sistema +from .models import Sistema, BitacoraErrores from django.utils import timezone import re @@ -26,22 +26,25 @@ from django.contrib.sessions.models import Session from django.http.response import HttpResponse import os import mimetypes - +import traceback def download_version_FromServer(request): - BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - print('BASE_DIR',BASE_DIR) - 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) - print(mime_type) - response = HttpResponse(path.read(),content_type=mime_type) - response['Content-Disposition']= f'attachment; filename={filename}' + try: + BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + print('BASE_DIR',BASE_DIR) + 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) + response['Content-Disposition']= f'attachment; filename={filename}' + + return response + except Exception as ex: - return response#redirect('index') + BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback.format_exc(), view='Sistemas.download_version_FromServer') + return HttpResponse(status=204) def get_logged_in_users(): sessions = Session.objects.filter(expire_date__gte=timezone.now()) @@ -108,9 +111,10 @@ class RegisterDeviceView(APIView): if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_200_OK) - else: + else: return Response({'Error':f'{serializer.errors}','isError':True}, status=status.HTTP_200_OK) except Exception as ex: + BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback.format_exc(), view='Sistemas.RegisterDeviceView') return Response( {'Error':f'{ex}','isError':True} , status=status.HTTP_200_OK) @@ -133,10 +137,12 @@ class AuthenticateDeviceView(APIView): if device_data.serializer.is_valid: return Response(device_data.serializer.data, status=status.HTTP_200_OK) else: + BitacoraErrores.objects.create(level=3, message=str(device_data.serializer.errors), traceback=traceback.format_exc(), view='Sistemas.AuthenticateDeviceView') return Response( {'Error':f'{device_data.serializer.errors}','isError':True} , status=status.HTTP_200_OK) except Exception as ex: + BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback.format_exc(), view='Sistemas.AuthenticateDeviceView') return Response( {'Error':f'{ex}','isError':True} , status=status.HTTP_200_OK) @@ -163,9 +169,9 @@ class CheckVersionView(APIView): try: ver = Sistema.objects.get(nombre_sistema="CFDI") server_version = [int(x) for x in ver.version.split(".")] - except Exception as e: - - return Response({'success':True, 'actualizar':False}) + except Exception as ex: + BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback.format_exc(), view='Sistemas.CheckVersionView') + return Response({'Error':f'{ex}','isError':True}) print('server_version', server_version) @@ -181,4 +187,5 @@ class CheckVersionView(APIView): print('equal') return Response({'success':True, 'actualizar':result}) except Exception as ex: + BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback.format_exc(), view='Sistemas.CheckVersionView') return Response({'Error':f'{ex}','isError':True})