diff --git a/config/__pycache__/settings.cpython-311.pyc b/config/__pycache__/settings.cpython-311.pyc index 96bce55..8b99a48 100644 Binary files a/config/__pycache__/settings.cpython-311.pyc and b/config/__pycache__/settings.cpython-311.pyc differ diff --git a/config/settings.py b/config/settings.py index 291d043..8c658bf 100644 --- a/config/settings.py +++ b/config/settings.py @@ -133,7 +133,7 @@ AUTH_PASSWORD_VALIDATORS = [ # Internationalization # https://docs.djangoproject.com/en/5.2/topics/i18n/ -LANGUAGE_CODE = 'en-us' +LANGUAGE_CODE = 'es' TIME_ZONE = 'UTC' @@ -179,4 +179,4 @@ if EMAIL_USE_SSL: # Default primary key field type # https://docs.djangoproject.com/en/5.2/ref/settings/#default-auto-field -DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' \ No newline at end of file diff --git a/core/__pycache__/context_processors.cpython-311.pyc b/core/__pycache__/context_processors.cpython-311.pyc index 75bf223..22c170a 100644 Binary files a/core/__pycache__/context_processors.cpython-311.pyc and b/core/__pycache__/context_processors.cpython-311.pyc differ diff --git a/core/__pycache__/forms.cpython-311.pyc b/core/__pycache__/forms.cpython-311.pyc index 6cd0a0e..7f75572 100644 Binary files a/core/__pycache__/forms.cpython-311.pyc and b/core/__pycache__/forms.cpython-311.pyc differ diff --git a/core/__pycache__/models.cpython-311.pyc b/core/__pycache__/models.cpython-311.pyc index 64f448d..c63312b 100644 Binary files a/core/__pycache__/models.cpython-311.pyc and b/core/__pycache__/models.cpython-311.pyc differ diff --git a/core/__pycache__/views.cpython-311.pyc b/core/__pycache__/views.cpython-311.pyc index 02d6866..c2654fc 100644 Binary files a/core/__pycache__/views.cpython-311.pyc and b/core/__pycache__/views.cpython-311.pyc differ diff --git a/core/context_processors.py b/core/context_processors.py index 0bf87c3..4d1df27 100644 --- a/core/context_processors.py +++ b/core/context_processors.py @@ -8,6 +8,8 @@ def project_context(request): return { "project_description": os.getenv("PROJECT_DESCRIPTION", ""), "project_image_url": os.getenv("PROJECT_IMAGE_URL", ""), + "whatsapp_number": "+5359177041", + "whatsapp_group_link": "https://chat.whatsapp.com/EXAMPLE", # Reemplazar con el link real # Used for cache-busting static assets "deployment_timestamp": int(time.time()), - } + } \ No newline at end of file diff --git a/core/forms.py b/core/forms.py index f31cdcc..c06b3e6 100644 --- a/core/forms.py +++ b/core/forms.py @@ -6,8 +6,8 @@ class SongRequestForm(forms.ModelForm): model = SongRequest fields = ['listener_name', 'song_title', 'artist_name', 'message'] widgets = { - 'listener_name': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Your Name'}), - 'song_title': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Song Title'}), - 'artist_name': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Artist Name'}), - 'message': forms.Textarea(attrs={'class': 'form-control', 'placeholder': 'Optional message', 'rows': 3}), - } + 'listener_name': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Tu Nombre'}), + 'song_title': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Título de la Canción'}), + 'artist_name': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Nombre del Artista'}), + 'message': forms.Textarea(attrs={'class': 'form-control', 'placeholder': 'Mensaje opcional', 'rows': 3}), + } \ No newline at end of file diff --git a/core/migrations/0002_alter_program_day.py b/core/migrations/0002_alter_program_day.py new file mode 100644 index 0000000..783b9dd --- /dev/null +++ b/core/migrations/0002_alter_program_day.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.7 on 2026-02-03 22:23 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='program', + name='day', + field=models.CharField(choices=[('MON', 'Lunes'), ('TUE', 'Martes'), ('WED', 'Miércoles'), ('THU', 'Jueves'), ('FRI', 'Viernes'), ('SAT', 'Sábado'), ('SUN', 'Domingo')], max_length=3), + ), + ] diff --git a/core/migrations/__pycache__/0002_alter_program_day.cpython-311.pyc b/core/migrations/__pycache__/0002_alter_program_day.cpython-311.pyc new file mode 100644 index 0000000..dd45cfe Binary files /dev/null and b/core/migrations/__pycache__/0002_alter_program_day.cpython-311.pyc differ diff --git a/core/models.py b/core/models.py index a1cb243..abf2e00 100644 --- a/core/models.py +++ b/core/models.py @@ -2,13 +2,13 @@ from django.db import models class Program(models.Model): DAYS_OF_WEEK = [ - ('MON', 'Monday'), - ('TUE', 'Tuesday'), - ('WED', 'Wednesday'), - ('THU', 'Thursday'), - ('FRI', 'Friday'), - ('SAT', 'Saturday'), - ('SUN', 'Sunday'), + ('MON', 'Lunes'), + ('TUE', 'Martes'), + ('WED', 'Miércoles'), + ('THU', 'Jueves'), + ('FRI', 'Viernes'), + ('SAT', 'Sábado'), + ('SUN', 'Domingo'), ] title = models.CharField(max_length=200) description = models.TextField(blank=True) @@ -32,4 +32,4 @@ class SongRequest(models.Model): is_played = models.BooleanField(default=False) def __str__(self): - return f"{self.song_title} by {self.artist_name} - Requested by {self.listener_name}" \ No newline at end of file + return f"{self.song_title} by {self.artist_name} - Requested by {self.listener_name}" diff --git a/core/templates/base.html b/core/templates/base.html index ec98fd9..a0ac179 100644 --- a/core/templates/base.html +++ b/core/templates/base.html @@ -1,5 +1,5 @@ - + @@ -13,6 +13,9 @@ + + + {% load static %} @@ -28,13 +31,13 @@ @@ -47,7 +50,7 @@ {% for message in messages %} {% endfor %} @@ -56,10 +59,18 @@ {% block content %}{% endblock %} + +
+
¡Envía tu mensaje de voz aquí!
+ + + +
+ diff --git a/core/templates/core/index.html b/core/templates/core/index.html index f1758bf..0ebd5ac 100644 --- a/core/templates/core/index.html +++ b/core/templates/core/index.html @@ -7,12 +7,12 @@
- Live On Air -

Your Voice, Your Music,
Your Radio.

-

Broadcasting the best records 24/7. Join our community and shape the playlist.

+ En Vivo +

Tu Voz, Tu Música,
Tu Radio.

+

Transmitiendo los mejores discos las 24 horas, los 7 días de la semana. Únete a nuestra comunidad y crea la lista de reproducción.

@@ -24,26 +24,26 @@
-
-

Radio Schedule

+
+

Horario de la Radio

{% if programs %}
{% for program in programs %}
-
{{ program.title }}
-

with {{ program.dj_name|default:"AutoDJ" }}

+
{{ program.title }}
+

con {{ program.dj_name|default:"AutoDJ" }}

{{ program.start_time|time:"H:i" }} - {{ program.end_time|time:"H:i" }} -
{{ program.get_day_display }}
+
{{ program.get_day_display }}
{% endfor %}
{% else %}
-

No programs scheduled for today. Tune in for our 24/7 mix!

+

No hay programas programados para hoy. ¡Sintoniza nuestra mezcla 24/7!

{% endif %}
@@ -52,46 +52,52 @@
-

Request a Song

+

Pedir una Canción

{% csrf_token %}
- + {{ form.listener_name }}
- + {{ form.song_title }}
- + {{ form.artist_name }}
- + {{ form.message }}
- +
- +
-{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/core/views.py b/core/views.py index d95b31c..02bc8b6 100644 --- a/core/views.py +++ b/core/views.py @@ -13,7 +13,7 @@ def home(request): form = SongRequestForm(request.POST) if form.is_valid(): form.save() - messages.success(request, 'Your song request has been sent! Stay tuned.') + messages.success(request, '¡Tu pedido de canción ha sido enviado! Mantente en sintonía.') return redirect('home') else: form = SongRequestForm() @@ -23,4 +23,4 @@ def home(request): 'form': form, 'current_time': timezone.now(), } - return render(request, 'core/index.html', context) \ No newline at end of file + return render(request, 'core/index.html', context) diff --git a/static/css/custom.css b/static/css/custom.css index 6f59a5e..60207d4 100644 --- a/static/css/custom.css +++ b/static/css/custom.css @@ -6,6 +6,7 @@ --text-main: #FFFFFF; --text-muted: #A0A0A0; --accent-gradient: linear-gradient(45deg, var(--neon-pink), var(--neon-cyan)); + --whatsapp-green: #25D366; } body { @@ -108,4 +109,57 @@ body { border-top: 1px solid rgba(255, 255, 255, 0.05); text-align: center; color: var(--text-muted); -} \ No newline at end of file +} + +/* WhatsApp Widget */ +.whatsapp-widget { + position: fixed; + bottom: 30px; + right: 30px; + z-index: 1000; + display: flex; + flex-direction: column; + align-items: flex-end; +} + +.whatsapp-button { + width: 60px; + height: 60px; + background-color: var(--whatsapp-green); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + color: white; + text-decoration: none; + font-size: 30px; + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); + transition: all 0.3s ease; +} + +.whatsapp-button:hover { + transform: scale(1.1); + color: white; + box-shadow: 0 6px 20px rgba(37, 211, 102, 0.4); +} + +.whatsapp-tooltip { + background: var(--bg-card); + color: white; + padding: 10px 15px; + border-radius: 10px; + margin-bottom: 15px; + font-size: 0.9rem; + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); + border: 1px solid rgba(255, 255, 255, 0.1); + opacity: 0; + transform: translateY(10px); + transition: all 0.3s ease; + pointer-events: none; + white-space: nowrap; +} + +.whatsapp-widget:hover .whatsapp-tooltip { + opacity: 1; + transform: translateY(0); +}