From c4fdd13f4946072fcf301f761209cb9286a42705 Mon Sep 17 00:00:00 2001 From: daniel Date: Tue, 17 Feb 2026 09:53:44 +0100 Subject: [PATCH] Add those files --- db.sqlite3 | Bin 249856 -> 262144 bytes tienda/__pycache__/models.cpython-314.pyc | Bin 14322 -> 14436 bytes tienda/__pycache__/views.cpython-314.pyc | Bin 52321 -> 52321 bytes .../0012_image_alt_shippingaddress.py | 43 ++++++++++++++++++ ..._image_alt_shippingaddress.cpython-314.pyc | Bin 0 -> 2819 bytes tienda/models.py | 1 + tienda/templates/tienda/base.html | 4 +- tienda/templates/tienda/cart.html | 2 +- tienda/templates/tienda/home.html | 4 +- tienda/templates/tienda/index.html | 4 +- tienda/templates/tienda/mis_productos.html | 2 +- tienda/templates/tienda/producto.html | 4 +- tienda/templates/tienda/search.html | 2 +- 13 files changed, 55 insertions(+), 11 deletions(-) create mode 100644 tienda/migrations/0012_image_alt_shippingaddress.py create mode 100644 tienda/migrations/__pycache__/0012_image_alt_shippingaddress.cpython-314.pyc diff --git a/db.sqlite3 b/db.sqlite3 index b29fe98b83f6f8f2d9630fe912a9e0f181480f21..df7b118601dea49917ebd0f55cec5b674c37c970 100644 GIT binary patch delta 2741 zcmah~eQX=$8Nb)B&v)_1``Sqp$4QeMW?Ace`K$g)LQ^*lX};|y{6X5)x!RZ5iDM_W zldc`C$p#t>jg@)oAx#J*5R9%_x>=j0b+9tfU_%T1L90paRsos>8mR5G?H?rAdv_%| zGFP*7C;xuW?|0AhzV|%$u04m>*34%cEfI>M4v@=3E44c{2B4h5+ zu&br0*~1R>H`A1DC|pPhnFQ~0xjnJeB0nd@_;ewbPo|cZQkgkEk;n=8yvOD7ce*^C zZa?RCcl!d}o={iF74&=ErAzh47|R}9gFZ!{qwDBRw29wCPnX=T@1f#m*LWRUQv=(9 zk|Y-AbA?nvSVYAd=Sk38e8PDcVzae))#+fH^`u;kt`-?rlLlQSPq>I08??4B%{xlM zrQ7>!0PNMBFER&~S>_uIr~6QMo-D0RcP7wFQ@}TfS5v~toongmGn~Y8hf+Bq9#6eq z%5VvR6Edr>Z)AIVh%q#R6GB=j2$if#q_VkNF~`p&`3%{}9TiK7<8q{;+ZQ5k?*JxS zUdc)5inh)mu{lFXUTQX%5ORw`>8FFoSlDZD6`9B~Yk1UjNrB{z3bf2KhTe4ygS z^zPPz5V*_Idz7G3|IYflZCc<3l`0QewZI8f#g#UXf?d^8A9=bx!ETqg%N+>$f}zsy zvj=BjFM6iPyt~YzP4qH)9z8=!ZbJ1m1OWHS_a6D)E#E_>U;S-j9auzq2HeAd}|*3Olz8=ep!r~e_n1)gBz0&qbnkF8IV@HLRxJT zHQKP2vb8IXy5r52Z*2i{_?#JPpVzLLU(#|K&cc{3QTPp<#71-x<&o7?3Y$-}r5SSv zeQcW5QDfmS@*;@;FscGi{T=X0Lre12bIA+Va5&HBDNR{Ol&E_atV=nMFR zcZ&plW$U=+(`Cfq>lFSEzKuV@@8j!b^JUGSFs+3YV8!>}(R6^1N|v<`uz2f+rm1YY zrMZpEpWoDII5U~CFMnS0$4+E7ap{Yj!2F}L+LyF0xU|~{jT9O;{M``K|54vr^<&n` z%<5jF{|U>`NOt!V&Di?hNyd6K1lEUAnS}7oJHx$W(_$-mAs0&}V%`9MBINeXR+f3i z<@2!i%>OgnxruSkUilGrZm<1LGP~oE;1R|e3W3KA1^xsXV)^T~vtj>-b;zGNd;gJv z@YDb|6+SpRaF=W%9t3{v>`FQ6;6qNO@ao)QZ`@U)3JCqA&7|kGyTi- zvgx>~#`vc3TSlkhLxX4-(SM;Y>F4x~Rqs@Nw<^H?gMF5rWHro1<~U>2{YID6)zNRz zIhxb{S$kT$2fhc_VVCBb<}r;Ad;oq3dZ~}8b7WB4m}rEi?pra5>sDwLZ8q2@Vhc1d z(FqkDus|OZ9ak}r%gmUHxh6BC+f1FrraSZCsvXZ0n4l}|;$kDeQ{)mJv6XZDaoiZh}X`WkL$t1Gk6r?@vN-yZY#Ek zqIP;DGao;FQqJYs4sq4QoNbWIZpFOTAmwr?;B6T=6;RhGMY;AoNL+_wC>mB=r& z5c%O2n%Z;9B)-xD2N8`HD7=BEu^IgiEs%rwLBt$+fTsFLm2Y*yF=k?lra}ZXI^i&L jc#@{t30QE#ekOWkyK$}J+fHdfqbg>rp0wF3W@z{?x*-L_ delta 1539 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 diff --git a/tienda/__pycache__/views.cpython-314.pyc b/tienda/__pycache__/views.cpython-314.pyc index e574ad6dc9ec34b1e5c12314742650438c0be57b..af539770d2ca44601dd7a64877fe8c16b3acc90c 100644 GIT binary patch delta 22 ccmaDjgZbeMW^QdhUM>b8uw$CMkvr@R07=RQ1poj5 delta 22 ccmaDjgZbeMW^QdhUM>b8xVW@)BX`&t08wuTF#rGn diff --git a/tienda/migrations/0012_image_alt_shippingaddress.py b/tienda/migrations/0012_image_alt_shippingaddress.py new file mode 100644 index 0000000..d6e0f4e --- /dev/null +++ b/tienda/migrations/0012_image_alt_shippingaddress.py @@ -0,0 +1,43 @@ +# Generated by Django 6.0.1 on 2026-02-16 11:57 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('tienda', '0011_ordermessage'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AddField( + model_name='image', + name='alt', + field=models.CharField(blank=True, default='', max_length=255, verbose_name='Texto alternativo'), + ), + migrations.CreateModel( + name='ShippingAddress', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('full_name', models.CharField(max_length=200, verbose_name='Nombre completo')), + ('address_line_1', models.CharField(max_length=250, verbose_name='Dirección')), + ('address_line_2', models.CharField(blank=True, max_length=250, verbose_name='Dirección (línea 2)')), + ('city', models.CharField(max_length=100, verbose_name='Ciudad')), + ('postal_code', models.CharField(max_length=20, verbose_name='Código postal')), + ('country', models.CharField(default='España', max_length=100, verbose_name='País')), + ('phone', models.CharField(max_length=20, verbose_name='Teléfono')), + ('is_default', models.BooleanField(default=False, verbose_name='Dirección predeterminada')), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='shipping_addresses', to=settings.AUTH_USER_MODEL)), + ], + options={ + 'verbose_name': 'Dirección de envío', + 'verbose_name_plural': 'Direcciones de envío', + 'ordering': ['-is_default', '-created_at'], + }, + ), + ] diff --git a/tienda/migrations/__pycache__/0012_image_alt_shippingaddress.cpython-314.pyc b/tienda/migrations/__pycache__/0012_image_alt_shippingaddress.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..31f3562eadc41263730e5aa3c50669be9465b37a GIT binary patch literal 2819 zcmaJ@O>7fK6kf0G_1bX~+c*gc!FGOtIDiup0%}!JLVoxufiMXaDmkl-cj7Fpciq|D zK1dwNdNppYL;*GS2@;WvQSnc+q&)H}6E$Jb?kPvfRG@cwAhDHF%gA z+dIpaARZ55v!VIMs!b5Ed694FALK{ed7o=Qf%Ekkf$wk=xITnAJPHC|&%QPPv4>8)`q#x=etK9Eg06qI;0BgOJF(^d22T@kSKD+HnweNkW}_Si25H z#?j$D$nJxXs0Ub&px&nSj~;|wilf9H)+8W%_swevrBGi}ruqSy*ca(V1Lx~i0kIGM z5AIkK?l|C5`|)L?^MfDj=i~e6j_;!z`dEif>|e`hXg6n>FiN9gbP}CHr%?utWY`fe z8g1C2+B?u0qZ5rm51ysLxkkTHzg!UWn0iIUSftG3=pue(Xep2|QK2K(w6u@893Rd&RDh;n;vaIP?P{jgHd%SxIP*kv?rCHJn5Es`by2}WPtYYDeX&({OGQqi=y!}e0d(C5J#~yQPNZEd& zVlg$APJ2mq0&GW;a-N14$JLmN0Bq zK~_acgcLY@PO3ungbJbo=dGJ#ReLBvW@yMPN_Mhc8}H;FY}98$zG+Oa@0E?UHw%NO zG^nZI1!Nl2Fu{s5-PvK*(43^3c8xdrCgBuT*S241^iXq^2t~ytqSBmm2w6|v=4)^52Fz`*(1A`_z0wZOmI#X0ge)(QBL)0$`sd$-44zle1kChHk`lTGc}G0 z4psSBg+Ec^Pdwu*Ll<|3F8<6<*8JW$_vCsl%mfcr_#-9$NVO|bjdoUJhbyuEQmp@3 ze3QJ+S$7|lW6HaLFBqzY9B87%1FrwKXvfpFO4o3yYk14|X3+XduvAj+(yfS5jrMM= zR1%p|BC|DMUC)*iOIAdvM*Ds|R~Z;D4UBK;)~#%L;J@0zH{({;C=ZxcWUU(Q+UTrw zr%T=G&4t&G%H8u;rrmMoX#DtxMKiww!V)dNyV&y{AgOr#A1|6jHetTalG& z^zg>xjUL@tt0c!t$+4{o>*oD(@_`jm>e}&Aa{P6?oSd~H zmzz{ui{<1cD>7C0X}Huqym{xRdoS-*CT4afW-1dmb|!9AChqJ^+_CU_jbXm^TxS2a zUth9+y03Q(({q;vQ}iBN>u!y=)e=lJX{F9pBgd>07pjq-jqI~ItM}7dz}M0CuCD{q z-P#-DzPmQ`py9XH_No`x!s!JWw9UknHi$G<4* B*oy!F literal 0 HcmV?d00001 diff --git a/tienda/models.py b/tienda/models.py index e46bc19..7eddd51 100644 --- a/tienda/models.py +++ b/tienda/models.py @@ -12,6 +12,7 @@ class Category(models.Model): class Image(models.Model): name = models.CharField(max_length=200, default="") image = models.ImageField(upload_to='images/') + alt = models.CharField(max_length=255, default="", blank=True, verbose_name="Texto alternativo") def __str__(self): return self.name diff --git a/tienda/templates/tienda/base.html b/tienda/templates/tienda/base.html index 729283e..e6a162d 100644 --- a/tienda/templates/tienda/base.html +++ b/tienda/templates/tienda/base.html @@ -1,7 +1,7 @@ {% load static %} {% load compress %} - + @@ -102,7 +102,7 @@ {% if user.is_authenticated %} Panel Vendedor - {{ user.first_name|default:user.username }} + {{ user.first_name|default:user.username }} Cerrar Sesión {% else %} Iniciar Sesión diff --git a/tienda/templates/tienda/cart.html b/tienda/templates/tienda/cart.html index 7d36ea1..0938f61 100644 --- a/tienda/templates/tienda/cart.html +++ b/tienda/templates/tienda/cart.html @@ -30,7 +30,7 @@
{% if item.product.primary_image %} - {{ item.product.name }} + {{ item.product.primary_image.alt|default:item.product.name }} {% endif %} {{ item.product.name }}
diff --git a/tienda/templates/tienda/home.html b/tienda/templates/tienda/home.html index 7086467..427250d 100644 --- a/tienda/templates/tienda/home.html +++ b/tienda/templates/tienda/home.html @@ -156,7 +156,7 @@
{% if product.primary_image %} - {{ product.name }} + {{ product.primary_image.alt|default:product.name }} {% else %}
Sin imagen @@ -164,7 +164,7 @@ {% endif %}
-
{{ product.name }}
+

{{ product.name }}

{% if product.briefdesc %}

{{ product.briefdesc|truncatewords:10 }}

diff --git a/tienda/templates/tienda/index.html b/tienda/templates/tienda/index.html index fd5d4d3..8aecd0e 100644 --- a/tienda/templates/tienda/index.html +++ b/tienda/templates/tienda/index.html @@ -18,9 +18,9 @@ {% if products %} {% for producto in products %}
- {{ producto.name }} + {{ producto.primary_image.alt|default:producto.name }}
-
{{ producto.name }}
+

{{ producto.name }}

Sin IVA: €{{ producto.price|format_price }}

IVA incl: €{{ producto.get_price_with_vat|format_price }}

diff --git a/tienda/templates/tienda/mis_productos.html b/tienda/templates/tienda/mis_productos.html index 9a740e8..ba8bbb5 100644 --- a/tienda/templates/tienda/mis_productos.html +++ b/tienda/templates/tienda/mis_productos.html @@ -39,7 +39,7 @@ {% if producto.primary_image %} - {{ producto.name }} + {{ producto.primary_image.alt|default:producto.name }} {% else %}
Sin diff --git a/tienda/templates/tienda/producto.html b/tienda/templates/tienda/producto.html index 75428a4..47b136c 100644 --- a/tienda/templates/tienda/producto.html +++ b/tienda/templates/tienda/producto.html @@ -7,11 +7,11 @@