From 2e432ae674f483806365df7535fa2696878b3810 Mon Sep 17 00:00:00 2001 From: fjrodriguez Date: Fri, 20 Jan 2023 10:20:45 -0600 Subject: [PATCH] Save segunda brancha as backup --- Admin/urls.py | 1 + Clientes/models.py | 4 ++- Sistemas/admin.py | 16 ++++++++++- Sistemas/migrations/0001_initial.py | 32 +++++++++++++++++++++ Sistemas/models.py | 19 ++++++++++--- Sistemas/urls.py | 16 +++++++++++ Sistemas/views.py | 30 +++++++++++++++++++- Templates/Sistemas/Xclientes/detail.html | 13 +++++++++ Templates/Sistemas/Xclientes/lista.html | 36 ++++++++++++++++++++++++ Templates/sidebar.html | 5 +++- 10 files changed, 164 insertions(+), 8 deletions(-) create mode 100644 Sistemas/migrations/0001_initial.py create mode 100644 Sistemas/urls.py create mode 100644 Templates/Sistemas/Xclientes/detail.html create mode 100644 Templates/Sistemas/Xclientes/lista.html diff --git a/Admin/urls.py b/Admin/urls.py index 66bda04..49e0e97 100644 --- a/Admin/urls.py +++ b/Admin/urls.py @@ -31,6 +31,7 @@ urlpatterns = [ path('accounts/', include('allauth.urls')), path('DRF_Token/', obtain_auth_token, name='DRF_Token'), path('', include('Clientes.urls')), + path('sistemas/',include('Sistemas.urls')), path('403/', permission_denied_view), diff --git a/Clientes/models.py b/Clientes/models.py index 5e9b535..d54d68b 100644 --- a/Clientes/models.py +++ b/Clientes/models.py @@ -72,5 +72,7 @@ class Clientes(models.Model): return Timbres.objects.filter(rfcc=self.RFC, created_at__year=str(year),created_at__month=str(month)).count() class Meta: ordering = ('-Activo','-conteo_mes','RFC') - + + def __str__(self): + return self.Nombre diff --git a/Sistemas/admin.py b/Sistemas/admin.py index 8c38f3f..733b30e 100644 --- a/Sistemas/admin.py +++ b/Sistemas/admin.py @@ -1,3 +1,17 @@ from django.contrib import admin - +from .models import Sistema, sistemas_por_cliente # Register your models here. + +class Sistema_Admin(admin.ModelAdmin): + def NSistema(self,obj): + return obj.nombre_sistema + list_display = ['NSistema'] + +class SPC(admin.ModelAdmin): + '''Sistemas Por Cliente''' + def Cliente(self,obj): + return obj + list_display = ['id_sistema','Cliente','num_licencias'] + +admin.site.register(Sistema,Sistema_Admin) +admin.site.register(sistemas_por_cliente,SPC) diff --git a/Sistemas/migrations/0001_initial.py b/Sistemas/migrations/0001_initial.py new file mode 100644 index 0000000..4fcfe94 --- /dev/null +++ b/Sistemas/migrations/0001_initial.py @@ -0,0 +1,32 @@ +# Generated by Django 4.1.3 on 2023-01-19 19:43 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('Clientes', '0014_alter_clientes_options'), + ] + + operations = [ + migrations.CreateModel( + name='Sistema', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nombre_sistema', models.CharField(max_length=100, unique=True)), + ], + ), + migrations.CreateModel( + name='sistemas_por_cliente', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('num_licencias', models.IntegerField(default=1)), + ('cliente', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cliente_spc', to='Clientes.clientes')), + ('id_sistema', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sistema_spc', to='Sistemas.sistema')), + ], + ), + ] diff --git a/Sistemas/models.py b/Sistemas/models.py index 8518ee8..7e667df 100644 --- a/Sistemas/models.py +++ b/Sistemas/models.py @@ -1,28 +1,39 @@ from django.db import models from Clientes.models import Clientes -# Create your models here. + + + class Sistema(models.Model): nombre_sistema= models.CharField(max_length=100, blank=False,null=False,unique=True) # class Meta: # abstract=True + def __str__(self): + return self.nombre_sistema 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) - # class Meta: - # abstract = True + def __str__(self): + + return self.cliente.Nombre + class Meta: + ordering= ('-cliente','id_sistema') + class Maquinas_Conectadas(models.Model): + UserName = models.CharField(max_length=255) PC_Name = models.CharField(max_length=255) Is64 = models.BooleanField() OSversion= models.CharField(max_length=255) local_ip = models.CharField(max_length=55) public_ip= models.CharField(max_length=55) - RFC = models.CharField(max_length=13) + + Token = models.CharField(max_length=50) + Cliente = models.CharField(max_length=13) class Meta: abstract =True \ No newline at end of file diff --git a/Sistemas/urls.py b/Sistemas/urls.py new file mode 100644 index 0000000..5a12cc6 --- /dev/null +++ b/Sistemas/urls.py @@ -0,0 +1,16 @@ +from django.urls import path + +from .views import ( + + #CVB + SistemasXCliente_ListView, + SistemasXCliente_DetailView, + + #DRF APIViews + Registrar_PC, +) +urlpatterns = [ + path('',SistemasXCliente_ListView.as_view(),name='lista_sistmas'), + path('detail//',SistemasXCliente_DetailView.as_view(),name='detail_sistemas'), + path('registerPC/',Registrar_PC.as_view(),name='register_PC'), +] \ No newline at end of file diff --git a/Sistemas/views.py b/Sistemas/views.py index 91ea44a..90647ab 100644 --- a/Sistemas/views.py +++ b/Sistemas/views.py @@ -1,3 +1,31 @@ from django.shortcuts import render +from django.views.generic.list import ListView +from django.views.generic.detail import DetailView -# Create your views here. +from rest_framework.views import APIView +from rest_framework.response import Response +from rest_framework.permissions import IsAuthenticated +from rest_framework import status, permissions + +from .models import sistemas_por_cliente + + +class SistemasXCliente_ListView(ListView): + model = sistemas_por_cliente + paginate_by = 5 + template_name = 'Sistemas/Xclientes/lista.html' + +class SistemasXCliente_DetailView(DetailView): + model = sistemas_por_cliente + template_name= 'Sistemas/Xclientes/detail.html' + +#registrar Equipo +class Registrar_PC(APIView): + permissions_classes = (permissions.AllowAny,) + + def post(self,request, format=None): + data = request.data + return Response(data) + + def get(self,request): + pass diff --git a/Templates/Sistemas/Xclientes/detail.html b/Templates/Sistemas/Xclientes/detail.html new file mode 100644 index 0000000..3517dae --- /dev/null +++ b/Templates/Sistemas/Xclientes/detail.html @@ -0,0 +1,13 @@ +{% extends 'base.html' %} + +{% block title %} + {{object}} | Sistemas +{% endblock title %} + + +{% block content %} +

{{object.cliente}}

+ {{object.id_sistema}}
+ {{object.num_licencias}} +{% endblock content %} + diff --git a/Templates/Sistemas/Xclientes/lista.html b/Templates/Sistemas/Xclientes/lista.html new file mode 100644 index 0000000..e03c0a0 --- /dev/null +++ b/Templates/Sistemas/Xclientes/lista.html @@ -0,0 +1,36 @@ +{% extends "base.html" %} + + +{% block title %} + Sistemas Lista +{% endblock title %} + + + +{% block content %} + + + + + + + + + + + + + {% for row in object_list %} + + + + + + + + {% endfor %} + +
#SistemaClienteNo. Licencias
{{row.id}}{{row.id_sistema}}{{row.cliente}}{{row.num_licencias}}Detalles
+ +{% endblock content %} + \ No newline at end of file diff --git a/Templates/sidebar.html b/Templates/sidebar.html index 48105ea..811263f 100644 --- a/Templates/sidebar.html +++ b/Templates/sidebar.html @@ -39,8 +39,11 @@ + {% endcomment %} - + {% if request.user.is_superuser %}