From ec44ae2e46d192b729b501b546a1cbe30c722a06 Mon Sep 17 00:00:00 2001 From: adrigongv23 Date: Thu, 19 Feb 2026 11:38:01 +0100 Subject: [PATCH] =?UTF-8?q?App=20gestion=20y=20pruebas=20a=C3=B1adidas=20a?= =?UTF-8?q?=20la=20base=20de=20datos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../__pycache__/models.cpython-314.pyc | Bin 3068 -> 3070 bytes Plataform_Web/documentos/models.py | 2 +- .../__pycache__/settings.cpython-314.pyc | Bin 2788 -> 2806 bytes Plataform_Web/gades_manager/settings.py | 2 + .../gestion/__pycache__/admin.cpython-314.pyc | Bin 0 -> 1143 bytes .../gestion/__pycache__/apps.cpython-314.pyc | Bin 0 -> 468 bytes .../__pycache__/models.cpython-314.pyc | Bin 0 -> 3466 bytes Plataform_Web/gestion/admin.py | 13 +++- .../gestion/migrations/0001_initial.py | 45 +++++++++++++ .../__pycache__/0001_initial.cpython-314.pyc | Bin 0 -> 3912 bytes .../__pycache__/__init__.cpython-314.pyc | Bin 0 -> 177 bytes Plataform_Web/gestion/models.py | 62 +++++++++++++++++- Plataform_Web/pruebas/__init__.py | 0 .../__pycache__/__init__.cpython-314.pyc | Bin 0 -> 166 bytes .../pruebas/__pycache__/admin.cpython-314.pyc | Bin 0 -> 772 bytes .../pruebas/__pycache__/apps.cpython-314.pyc | Bin 0 -> 468 bytes .../__pycache__/models.cpython-314.pyc | Bin 0 -> 2088 bytes Plataform_Web/pruebas/admin.py | 8 +++ Plataform_Web/pruebas/apps.py | 5 ++ .../pruebas/migrations/0001_initial.py | 34 ++++++++++ Plataform_Web/pruebas/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-314.pyc | Bin 0 -> 2180 bytes .../__pycache__/__init__.cpython-314.pyc | Bin 0 -> 177 bytes Plataform_Web/pruebas/models.py | 35 ++++++++++ Plataform_Web/pruebas/tests.py | 3 + Plataform_Web/pruebas/views.py | 3 + 26 files changed, 209 insertions(+), 3 deletions(-) create mode 100644 Plataform_Web/gestion/__pycache__/admin.cpython-314.pyc create mode 100644 Plataform_Web/gestion/__pycache__/apps.cpython-314.pyc create mode 100644 Plataform_Web/gestion/__pycache__/models.cpython-314.pyc create mode 100644 Plataform_Web/gestion/migrations/0001_initial.py create mode 100644 Plataform_Web/gestion/migrations/__pycache__/0001_initial.cpython-314.pyc create mode 100644 Plataform_Web/gestion/migrations/__pycache__/__init__.cpython-314.pyc create mode 100644 Plataform_Web/pruebas/__init__.py create mode 100644 Plataform_Web/pruebas/__pycache__/__init__.cpython-314.pyc create mode 100644 Plataform_Web/pruebas/__pycache__/admin.cpython-314.pyc create mode 100644 Plataform_Web/pruebas/__pycache__/apps.cpython-314.pyc create mode 100644 Plataform_Web/pruebas/__pycache__/models.cpython-314.pyc create mode 100644 Plataform_Web/pruebas/admin.py create mode 100644 Plataform_Web/pruebas/apps.py create mode 100644 Plataform_Web/pruebas/migrations/0001_initial.py create mode 100644 Plataform_Web/pruebas/migrations/__init__.py create mode 100644 Plataform_Web/pruebas/migrations/__pycache__/0001_initial.cpython-314.pyc create mode 100644 Plataform_Web/pruebas/migrations/__pycache__/__init__.cpython-314.pyc create mode 100644 Plataform_Web/pruebas/models.py create mode 100644 Plataform_Web/pruebas/tests.py create mode 100644 Plataform_Web/pruebas/views.py diff --git a/Plataform_Web/documentos/__pycache__/models.cpython-314.pyc b/Plataform_Web/documentos/__pycache__/models.cpython-314.pyc index e77b30c99e5efc1ae90089335d19a13985931590..a7eff1df9aff0701aad4f497a493b07f8800594a 100644 GIT binary patch delta 38 ucmew({!g4&n~#@^fq{Xc=lPUO`Hj5w99*1v`9-;jC7ET3o2PJOFarSIDGT@j delta 36 rcmew-{zsfwn~#@^fq{V`K6px|>_*;t4i5J8)V$Q9#GK93I5L<4v#Sa~ diff --git a/Plataform_Web/documentos/models.py b/Plataform_Web/documentos/models.py index 623a8d1..d228f35 100644 --- a/Plataform_Web/documentos/models.py +++ b/Plataform_Web/documentos/models.py @@ -11,7 +11,7 @@ class Documento(models.Model): ('suspension', 'Suspensión'), ('motor', 'Motor/Powertrain'), ('electronica', 'Electrónica'), - ('general', 'General / Normativa'), + ('normativa', 'General / Normativa'), ('software', 'Software') ) diff --git a/Plataform_Web/gades_manager/__pycache__/settings.cpython-314.pyc b/Plataform_Web/gades_manager/__pycache__/settings.cpython-314.pyc index 26ce28c874a699ec1cb5ef4073292a2dfd38d768..906fe1d975603f6d19e152141e80533cc8c922d2 100644 GIT binary patch delta 74 zcmaDN`c0Hqn~#@^fq{WR`_Z(_;ElYVtc=`~!&&78Z?UJR7MEn^=iOp2C@M`&O59w^ fs=~r(Ie8Xm2s@7uQv=^8naN){U$dAqFfafBDE$@1 delta 56 zcmew+`b3mhn~#@^fq{YHZqSrWqm8_ttc;wK!&&7wcd#n6Fq%(Z!x_TPCB)Rg_eo+h MJJ)L#Qw9bG0GRs?qyPW_ diff --git a/Plataform_Web/gades_manager/settings.py b/Plataform_Web/gades_manager/settings.py index ac5e8e2..0d41347 100644 --- a/Plataform_Web/gades_manager/settings.py +++ b/Plataform_Web/gades_manager/settings.py @@ -35,6 +35,8 @@ INSTALLED_APPS = [ 'users', 'temporadas', 'documentos', + 'gestion', + 'pruebas', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', diff --git a/Plataform_Web/gestion/__pycache__/admin.cpython-314.pyc b/Plataform_Web/gestion/__pycache__/admin.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fcd2106f693415ce94eadcac631d56004a0c394e GIT binary patch literal 1143 zcmdPqjmJS{VkiGkrUhy%lHP{!v|3=9kn3~>xWjGhc0j3tcn3~`J>OrA_0 z%q7eoEF~=R46%#>U~`~4pp+s*EVBtCgd@tJ$PmOV&Je^B%NW1|5kn?Tm?1n92*pss zj?+vQ6f;@H8G_h|G?OEUU710X<0Z%rO~zZSi7C06d74bO*xeG7OG=9pZ}9{qmK5bD zXXYiQT*4B>QoU#}}3+=0IimYn% z@fN2h7A0rIr)8$*q!iy0jgK!bNi4}sj!!HpDauSLElDkok1yh2U|{$R3Y1$8&Q>v@ z#i>QbF^MTfndvd^MrQFLsX3{+sU=03iSZ$B?lA#5i6x0?`9-<$;i*Y6>8ZsfnfZA! z;852qs4QX!`36L=FfcF_3o_ zVh~?yZenImd~$wXNn&zIei0u?0VvcUUXcKCrCG^sfQ;RZ_ia?p=7F%w9N@`AV5h(PESQ!`?ZgCW)re_v|B9qG(BnR;)D1?hZ zCV_p7aK%z(xg_S=uFf(d>W@ccL`~VXEz{SAC4pzx?nNb#`(r5 literal 0 HcmV?d00001 diff --git a/Plataform_Web/gestion/__pycache__/apps.cpython-314.pyc b/Plataform_Web/gestion/__pycache__/apps.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1e5f9a89fa110fd6ced563beeb667c9fb274f5a0 GIT binary patch literal 468 zcmdPqq`(qgBVJf z;#f+UgBVL#f|yEJgP4^WG+A!(x~CSGWaj5V47tUg4&kn3@Y7_w#StH$mzbLxAAgH0 zK0Y@;r8Eb`=82ClEKSUT%J9d>r)3rum*iyTrRL?w$KPTBN!${Rk1sAsEXhocPb?`Z z%1kOPNiB|#FJfn4VE7Dj+%0=&tC-N@)S}{;#FV1U^cZ&|v-ptIoYdUZlA_GS_z*Yu zn1GzblEk$9qTKlK)T9`w%VH7>3X1g#DvLlN2PRk;7#NB{2DdTX;1+3dDdJ;bU;xYb zX)@p9PRUBlOV8H>X)6MSB3K6O5Qsv41_p*(95xW|*%b*gFff3EuULeEf#Cx)BO~Ko V2E{LIjEtfaJijq8GKzwA0RZy&bF2UW literal 0 HcmV?d00001 diff --git a/Plataform_Web/gestion/__pycache__/models.cpython-314.pyc b/Plataform_Web/gestion/__pycache__/models.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2aac323e7726e4483289115f57db4f04a60d3888 GIT binary patch literal 3466 zcmdPqxWjGhc0j3tcnAU2aHlLvDN zGnmcn$>PCU!Ya=o%Am*)#3IfR#2U*OzysBfM42!{I3?_0m2Bb+LF@!nas+WGGiY+Y z1ZmV{yv3HApOTtWtjTzb%el0;BtJK_IJHQV@fK%DYHmS(QDRDBGDsy1vqKr53m6#~ z5*Zp8Vi`&pgBVJf;#f$_$!9x7ghhlS@jA605|V^YfBZ3rg}8Qc@Li5*5-Q;wzbMapfjf#OI{u zrI%#f;weilO3E)zjn7NWO|24k%`GTOElyO>R|qJ|FH22L$uC;TRK&@^z;KH_IU_$a zIkh;XREU9r!Ko; zUVKVwPHIVN5g!8s16b`!#v(xm28Lutq)-CIA~OR6$7c(0J_=(9K$3(pc^HBi!WaUe zX$>X{qInpMn3Wkc8LOBTbQLt2Zn5R%=Oz`U-eOOMgw9IFTP($?IcdcpJJoJEI$Onn z@+seqIbD zW9b!C-eQlBFD@yHkH5tajXgc6fE)t@L$Ng27dM2&rfW~so*+9Td4bAuorO9JGxJi5i>pMPpezM71^ z$(+>WlA`=Pkd>e^$Q8^#ycr~*$#jdkI3?{CbFhn>Cetm!-29UKqWF@c#Ju9%%;L=a zyi!n(^aY73s40ZN#6by)=@v(Eep*R+Vo~ZXj$kNDlj#3QC%l|`WJev2d6H6-3I)W_!*S8-`lW=ej1L4HvY zsLa2`?(7)s?C9cpi?ak)s1`|r>=p&3gT#`|>o#C1WX zOM*%Ztaga)m)|LWqU1tS`4z#61~0I|ikAcw7iexM+g`V^?uvk0gXeb^MpnZQ42-OX zMW74-c0cx-W)6ByqXeyKgi2U~giBas*#bbt1t^;!VT{^_BbF@yRJ0+f0WlRBf|!F? z%t3jbfq|if3#VyvL99r15;tyju`EGs@KT&7mMuUEWDhDr5 ztU+8s+;Elrv257t9z}*&!C1Bc6;zu*ydd@sK7i>?c%4&2rgfW#6V>{NShiYw}Lai2y%eIY6ClvN|3V}7;f+j_t$jRT;Py~ zex}frp zKg2V@KR&=QB*@>{)6diY7Q1V3h@*=?q`WTD2Pp&>(p;{&iJ3W&BA71~#EyqK?iNo; zWDwDP{i59Sp>(_?0Sks-(;z7%l!NsWhu&@Hyq;u26=H3iuKD!z-%K+5=GhQ_BB zmSz^@gNyGXP&1>*5~LCocSTkpmNkg50Yw-nYM}+OJxCBlD1ju7!wX^-7IC%){|`JY z{A>;GA9xT2sPYAypeuaA4emEYrLT*sT@qEhVB&E_)U(0whOp#yVdYE0$}5U4ID}jg z4sGzcAtrNOOzo1G+6JW^`B%jJ8vH-7F^I`r7gfC^s=C5uL&*jAqAQ}s4So-Jg`wrW z(1!2>Syy-i8{9syF^J1v7gN6^roMt}N80}Uo%t6+A}*v?UJe)`PTnAeEsYyrP4Pvw{Mc)fd#;02lT}AmfTa z2^(TMs4Ba~VFRh$?TW$~7#Ki7Tdc>x!0>^Yk&*E(gUnq9<+}{(Us$9V4Lj2Mb2@Xr aFi0^PezB5el$l^Q-DaZAHwIZoh-(4*l2cXy literal 0 HcmV?d00001 diff --git a/Plataform_Web/gestion/admin.py b/Plataform_Web/gestion/admin.py index 8c38f3f..daffb6a 100644 --- a/Plataform_Web/gestion/admin.py +++ b/Plataform_Web/gestion/admin.py @@ -1,3 +1,14 @@ from django.contrib import admin +from .models import Factura, Patrocinador -# Register your models here. +@admin.register(Factura) +class FacturaAdmin(admin.ModelAdmin): + list_display = ('nombre', 'empresa', 'categoria', 'temporada', 'subido_por') + list_filter = ('categoria', 'temporada') + search_fields = ('nombre', 'empresa') + +@admin.register(Patrocinador) +class PatrocinadorAdmin(admin.ModelAdmin): + list_display = ('empresa', 'tipo_empresa', 'tipo_patrocinio', 'estado', 'temporada') + list_filter = ('estado', 'tipo_empresa', 'tipo_patrocinio', 'temporada') + search_fields = ('empresa', 'email_contacto') \ No newline at end of file diff --git a/Plataform_Web/gestion/migrations/0001_initial.py b/Plataform_Web/gestion/migrations/0001_initial.py new file mode 100644 index 0000000..7c34fb8 --- /dev/null +++ b/Plataform_Web/gestion/migrations/0001_initial.py @@ -0,0 +1,45 @@ +# Generated by Django 6.0.2 on 2026-02-19 10:14 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('temporadas', '0001_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Factura', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nombre', models.CharField(max_length=100, verbose_name='Concepto de la factura')), + ('empresa', models.CharField(max_length=100, verbose_name='Empresa / Proveedor')), + ('categoria', models.CharField(choices=[('aerodinamica', 'Aerodinámica'), ('chasis', 'Chasis'), ('business', 'Business & Operations'), ('epowertrain', 'E-Powertrain'), ('electronica', 'Electrónica'), ('sdf', 'SDF'), ('motor_transmision', 'Motor & Transmisión'), ('software', 'Software'), ('general', 'General')], max_length=30)), + ('descripcion', models.TextField(blank=True, null=True, verbose_name='Breve descripción')), + ('archivo', models.FileField(upload_to='facturas/', verbose_name='Foto o PDF de la factura')), + ('subido_por', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='Usuario que la sube')), + ('temporada', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='temporadas.temporada')), + ], + ), + migrations.CreateModel( + name='Patrocinador', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('empresa', models.CharField(max_length=100, verbose_name='Nombre de la Empresa')), + ('email_contacto', models.EmailField(max_length=254, verbose_name='Correo de contacto')), + ('tipo_empresa', models.CharField(max_length=30, verbose_name='Tipo de la Empresa')), + ('tipo_patrocinio', models.CharField(choices=[('economico', 'Económico'), ('piezas/materiales', 'Piezas/Materiales'), ('mixto', 'Mixto (Dinero y Piezas)')], max_length=30)), + ('detalle_piezas', models.TextField(blank=True, help_text='Detallar qué se ofrece si es en especies', null=True)), + ('estado', models.CharField(choices=[('en contacto', 'En contacto'), ('aceptado', 'Aceptado / Activo'), ('denegado', 'Denegado')], default='contacto', max_length=20)), + ('contacto_equipo', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='Miembro al cargo')), + ('temporada', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='temporadas.temporada')), + ], + ), + ] diff --git a/Plataform_Web/gestion/migrations/__pycache__/0001_initial.cpython-314.pyc b/Plataform_Web/gestion/migrations/__pycache__/0001_initial.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1c44640c2da32a247ad6dcbc1cb9d00fcd2b1f55 GIT binary patch literal 3912 zcmdPqd%m^_(0m`j-D zL1N6FEFP>StR8G7Z1N1E42ldvEaD77tg);Cd{F&JlnFD0Q^Fp^sLY_r_7cSP(`3BG zQJh**l9`uYtjTnXD>pN}D6u3nKd<-}TW)?zYEE%7NF59dLm8icv4Gqa%TU4?#8AQ% z$5Fx@#8|=-q#Mf`zyno-L@6@FvIhtt2|$@9j1Yz%Qwe7*Yk&xZhfFFm1Th6M$8rZq zAd5oSiVQ)FL5x8xL99V+<}45~W2PYXSndER2oIT5WQa=%;t1k2XM%_tGX-(sQOS*> zk_VScJ%%7Xf5teuAYLSM`C_>PWFWR6lTi2a2ML%%1eqEu7@&eI24M$?L1<($KnW)aC1uDhcDKajlG38YTTGcLZnu~`T{Ky4 z@g$a(pzc@8MFEKau z7F%9^ZcX;!E-&`nifrlQL8C;|ubOs)R#}OB0JS^A!q9!Tu~R zO-j{dDFPK+w>b0j;!{#{QcF^AF~Rh5mZatuW?*2@ zWV*!y3DmUA)SQ&!TRZ`YB}MtknR$sR`9)PCe&C>nIu{ytxA;#Z!`5kRJ~VcA=2W0Q(QsWCU zQ>zk-OEno77+k*` z%1_D6OU%toPAuhRU|?{B2pnDr647M3#g?3rSe#jWi_IBKYck#9NGdJP%u6jUt`c>E zvJ})5{0mZxAPo#nrd!;p1^MNvMI}XvnR!(_uDStm9#}FbHMyiHKM!Ojs8Qhx<{#b+ z63}G2#ax_{c8fXK#Z8mxmSApvNq$j$Nl{{6ac*WYC{2SJ6TTo(1vP~bm^dg^Gu`4S z&QB{TPb^Bk#Ssi;f$~RsYF=tlV$LmgcL+n1S(E7&XKHeOUVd(7a(*eOx#pUjpLcjO zh^xs|B?yU6{oKS7aE?wbt`ZCYN3p&yTu77Y7He*1MM-{@xG#uO&~VAjOD)P*s8oQc z)dbm7#hsd`0E?;%%2Lo*a7-@AEXxN;r=;ekri0Uh3zVfP zd5a?+T&Tpy-{Ojo&&^LM%}I@qzr_`6ElNz6rT9BHTlA4!XSp;gk+~Ri(4e^K%4R#HR_w{#i^|{3Z zSCN@oe2d!|T=4mVT98Gc#_TN~r_6N6(vo~PP;R`%>70>R1Z9S#R+K=QZkai$5GI#f zeo<;>dY*S`P#>RL?9PtC&W`h8yrH{In*z4sITC-uHkS|!{IWA;|Eq| z5w-@O4?GN(bhnq_sB`U+_%4BAs+WAo+%%)C{-lGCG%JbapUb@QS}8lW;*G@rIzxjI`@=dY9z% zJ~1#@c(Z6A31afZ(%FZaeE^ly2-e5z@fwbe92Q#m`gT^o4}7D{|!*1S&oVa*FVMVddfE`XGfAO7eI^2_-xduE-=_5J-GW28LQjN01T~C$JJ{CZy>4#K2%0 z1QL#6N&`{FOr;>DGG!o+U^x@iM$=0wraMedn4PygX?fi{`l5IAb?=mm-YM6;b1!=5 zUMQ;i&cIO2=nV>65cPq9A&MynWRNP@je>ckg{?3bC~SE-xjx9s2(h(z6@faR;3TZc zaZ3`C3H4Hv^dS90Jy=dG@&Q#(+)(-C{Jb`mJOrVq#!m_zaS~<>zb_ z6Iz^FR2-9-Qk0n<<8EXYACj7rnwwful$jVG;^rO`kds)Fn3i9Z8y}vU6qBA>T#}ie z7n7TrUX%!8701NKXXa&=#K-FuRNmsS$<0qG%}KQ@Vr5`p06Cx-#Q4O_$jDg4%)r0^ E0G1Ifng9R* literal 0 HcmV?d00001 diff --git a/Plataform_Web/gestion/models.py b/Plataform_Web/gestion/models.py index 71a8362..4226dee 100644 --- a/Plataform_Web/gestion/models.py +++ b/Plataform_Web/gestion/models.py @@ -1,3 +1,63 @@ from django.db import models +from users.models import CustomUser +from temporadas.models import Temporada -# Create your models here. +class Factura(models.Model): + CATEGORIAS = ( + ('aerodinamica', 'Aerodinámica'), + ('chasis', 'Chasis'), + ('business', 'Business & Operations'), + ('epowertrain', 'E-Powertrain'), + ('electronica', 'Electrónica'), + ('sdf', 'SDF'), + ('motor_transmision', 'Motor & Transmisión'), + ('software', 'Software'), + ('general', 'General'), + ) + + nombre = models.CharField(max_length=100, verbose_name="Concepto de la factura") + empresa = models.CharField(max_length=100, verbose_name="Empresa / Proveedor") + categoria = models.CharField(max_length=30, choices=CATEGORIAS) + descripcion = models.TextField(blank=True, null=True, verbose_name="Breve descripción") + + # Puede ser foto (jpg/png) o pdf + archivo = models.FileField(upload_to='facturas/', verbose_name="Foto o PDF de la factura") + + # Relaciones + subido_por = models.ForeignKey(CustomUser, on_delete=models.SET_NULL, null=True, verbose_name="Usuario que la sube") + temporada = models.ForeignKey(Temporada, on_delete=models.CASCADE) + + def __str__(self): + return f"{self.nombre} - {self.empresa}" + + +class Patrocinador(models.Model): + + TIPO_PATROCINIO = ( + ('economico', 'Económico'), + ('piezas/materiales', 'Piezas/Materiales'), + ('mixto', 'Mixto (Dinero y Piezas)'), + ) + + ESTADOS = ( + ('en contacto', 'En contacto'), + ('aceptado', 'Aceptado / Activo'), + ('denegado', 'Denegado'), + ) + + empresa = models.CharField(max_length=100, verbose_name="Nombre de la Empresa") + email_contacto = models.EmailField(verbose_name="Correo de contacto") + tipo_empresa = models.CharField(max_length=30, verbose_name="Tipo de la Empresa") + tipo_patrocinio = models.CharField(max_length=30, choices=TIPO_PATROCINIO) + + # Solo se rellena si el patrocinio es de piezas + detalle_piezas = models.TextField(blank=True, null=True, help_text="Detallar qué se ofrece si es en especies") + + estado = models.CharField(max_length=20, choices=ESTADOS, default='contacto') + + # Relaciones + contacto_equipo = models.ForeignKey(CustomUser, on_delete=models.SET_NULL, null=True, verbose_name="Miembro al cargo") + temporada = models.ForeignKey(Temporada, on_delete=models.CASCADE) + + def __str__(self): + return self.empresa \ No newline at end of file diff --git a/Plataform_Web/pruebas/__init__.py b/Plataform_Web/pruebas/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Plataform_Web/pruebas/__pycache__/__init__.cpython-314.pyc b/Plataform_Web/pruebas/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..93977f17df30f2dbbf29eac67cad4a524d4a0298 GIT binary patch literal 166 zcmdPqASbaTF)hC+H$FTyDW;&PG&L!) vI3_+mGcU6wK3=b&@)n0pZhlH>PO4oID+2=q$kt*I;}bI@BV!RW0|Ns9wGSwF literal 0 HcmV?d00001 diff --git a/Plataform_Web/pruebas/__pycache__/admin.cpython-314.pyc b/Plataform_Web/pruebas/__pycache__/admin.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fd6e07bd99124473e29380e771b621cb3772eeb8 GIT binary patch literal 772 zcmdPqm?10^2*pss7R0K| zpvm?U#MflJ#hRFso0+G{c#AtEwYbDRH7~U&F((-$3Byo}7(Oe3of^wf!WhI*!W73+ z!W_h0!V<(%!WzU{!WP6>!XCr~GWwPPl2MKz<5x2HX|mp8%gfJADoVY@la`vCkr9h?{|dp@@fpfkBhG2oxN* zxKmP#lZ!G7k~8!3ZgCZ*7MJFfB&OsSYjWJ;h>y=p%uS7tzr__FpPQdjnge3<#K#ww zCgwn8_~YZ#GK-2!ax(K$^YY{4Z}H@07MH}QWEL0XBv#(y2J_M~b4pT+Zt)hUCKe@U z#HVGZ=A;zg5{-{9E=erOOpZ@1DJjZKDlJJZj*l;5XJBCX3<|JY4$f9Fp~b01#W9H~ zMVaX_?nY+uA*ng3xv3>ZnThcsZtgJwIf*5SY57ID@!_dSF$G1XsY!_-<++)8dIgn5 zpripNSQr=>iUk=M7}^*f2!}NI+z`@f@V+5p-Qrs$4hj*FLO)IRTYM>5iFxVyddc~D zASV@pV*D0cZhlH?PH_>)kXsx@sp*-;An$Pbf`q}50=5I}a)@yf3=9mnIBXzcW>+N3 zz`y{C`eI`S28IvJjEszT85Hg^$Uk6YYnN-1o4|dUQRWL1Go#If((B^t7sb^-GcYsS Pd}d}~lKlh{1{(?h1klQ$ literal 0 HcmV?d00001 diff --git a/Plataform_Web/pruebas/__pycache__/apps.cpython-314.pyc b/Plataform_Web/pruebas/__pycache__/apps.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..85ee72a96573ca66d2fcff67ea1966b2684b9153 GIT binary patch literal 468 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 G1_l7_^er0z literal 0 HcmV?d00001 diff --git a/Plataform_Web/pruebas/models.py b/Plataform_Web/pruebas/models.py new file mode 100644 index 0000000..d0ce314 --- /dev/null +++ b/Plataform_Web/pruebas/models.py @@ -0,0 +1,35 @@ +from django.db import models +from temporadas.models import Temporada + +class TestGeneral(models.Model): + CATEGORIAS_TEST = ( + ('aerodinamica', 'Aerodinámica'), + ('chasis', 'Chasis'), + ('business', 'Business & Operations'), + ('epowertrain', 'E-Powertrain'), + ('electronica', 'Electrónica'), + ('sdf', 'SDF'), + ('motor_transmision', 'Motor & Transmisión'), + ('general', 'General'), + ) + + nombre = models.CharField(max_length=150, verbose_name="Nombre del Test") + descripcion = models.TextField(verbose_name="Objetivo / Descripción del test") + + fecha_inicio = models.DateField() + fecha_fin = models.DateField() + + categoria = models.CharField(max_length=30, choices=CATEGORIAS_TEST, default='general') + + resultados = models.TextField(blank=True, null=True, verbose_name="Conclusiones y Resultados") + + # Relación + temporada = models.ForeignKey(Temporada, on_delete=models.CASCADE) + + class Meta: + verbose_name = "Test General" + verbose_name_plural = "Tests Generales" + ordering = ['-fecha_inicio'] + + def __str__(self): + return f"{self.nombre} ({self.fecha_inicio})" \ No newline at end of file diff --git a/Plataform_Web/pruebas/tests.py b/Plataform_Web/pruebas/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/Plataform_Web/pruebas/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/Plataform_Web/pruebas/views.py b/Plataform_Web/pruebas/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/Plataform_Web/pruebas/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.