diff --git a/web/caFICteria_aaS/settings.py b/web/caFICteria_aaS/settings.py index bfdcce7..c99e306 100644 --- a/web/caFICteria_aaS/settings.py +++ b/web/caFICteria_aaS/settings.py @@ -35,6 +35,7 @@ ALLOWED_HOSTS = os.getenv('DJANGO_ALLOWED_HOSTS', "").split() INSTALLED_APPS = [ 'main', 'daily_menu', + 'lazaro_quotes', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', diff --git a/web/caFICteria_aaS/urls.py b/web/caFICteria_aaS/urls.py index 7ff7fa4..6325e30 100644 --- a/web/caFICteria_aaS/urls.py +++ b/web/caFICteria_aaS/urls.py @@ -21,5 +21,6 @@ from main import views as main_views urlpatterns = [ path('admin/', admin.site.urls), path('menu/', include("daily_menu.urls")), + path('quotes/', include("lazaro_quotes.urls")), path('', main_views.index, name="index"), ] diff --git a/web/lazaro_quotes/admin.py b/web/lazaro_quotes/admin.py index 8c38f3f..1661c7e 100644 --- a/web/lazaro_quotes/admin.py +++ b/web/lazaro_quotes/admin.py @@ -1,3 +1,7 @@ from django.contrib import admin +from .models import Suggester, Author, Quote, Suggestion -# Register your models here. +admin.site.register(Suggester) +admin.site.register(Author) +admin.site.register(Quote) +admin.site.register(Suggestion) diff --git a/web/lazaro_quotes/forms.py b/web/lazaro_quotes/forms.py new file mode 100644 index 0000000..13b4ee1 --- /dev/null +++ b/web/lazaro_quotes/forms.py @@ -0,0 +1,14 @@ +from django.forms import ModelForm, CharField, EmailField +from .models import Suggestion + + +class SuggestionForm(ModelForm): + class Meta: + model = Suggestion + fields = ["text", "context", "author_name"] + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + self.fields['suggester_name'] = CharField(label='Tu nombre') + self.fields['suggester_email'] = EmailField(label='Tu email') diff --git a/web/lazaro_quotes/migrations/0001_initial.py b/web/lazaro_quotes/migrations/0001_initial.py new file mode 100644 index 0000000..0bc555d --- /dev/null +++ b/web/lazaro_quotes/migrations/0001_initial.py @@ -0,0 +1,50 @@ +# Generated by Django 5.1.3 on 2024-12-02 22:49 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Author', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=254)), + ('slug', models.CharField(max_length=24)), + ], + ), + migrations.CreateModel( + name='Suggester', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=254)), + ('email', models.EmailField(max_length=254, unique=True)), + ], + ), + migrations.CreateModel( + name='Quote', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('text', models.TextField()), + ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='lazaro_quotes.author')), + ('suggester', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='lazaro_quotes.suggester')), + ], + ), + migrations.CreateModel( + name='Suggestion', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('text', models.TextField()), + ('context', models.TextField(blank=True, null=True)), + ('author_name', models.CharField(max_length=254)), + ('suggester', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='lazaro_quotes.suggester')), + ], + ), + ] diff --git a/web/lazaro_quotes/models.py b/web/lazaro_quotes/models.py index 30b36d9..37089b9 100644 --- a/web/lazaro_quotes/models.py +++ b/web/lazaro_quotes/models.py @@ -1,13 +1,39 @@ from django.db import models +class Suggester(models.Model): + name = models.CharField(max_length=254) + email = models.EmailField(max_length=254, unique=True) + + def __str__(self): + return self.email + + +class Author(models.Model): + name = models.CharField(max_length=254) + slug = models.CharField(max_length=24) + + def __str__(self): + return self.name + + class Quote(models.Model): text = models.TextField() - quoted_name = models.CharField(null=True, blank=True, max_length=254) + author = models.ForeignKey( + Author, on_delete=models.CASCADE) suggester = models.ForeignKey( Suggester, on_delete=models.SET_NULL, null=True, blank=True) + def __str__(self): + return self.text -class Suggester(models.model): - name = models.CharField(null=True, blank=True, max_length=254) - email = models.CharField(null=True, blank=True, max_length=254) + +class Suggestion(models.Model): + text = models.TextField() + context = models.TextField(null=True, blank=True) + author_name = models.CharField(max_length=254) + suggester = models.ForeignKey( + Suggester, on_delete=models.CASCADE) + + def __str__(self): + return self.text diff --git a/web/lazaro_quotes/templates/lazaro_quotes/show_quote.html b/web/lazaro_quotes/templates/lazaro_quotes/show_quote.html new file mode 100644 index 0000000..dac0f12 --- /dev/null +++ b/web/lazaro_quotes/templates/lazaro_quotes/show_quote.html @@ -0,0 +1,17 @@ +{% extends 'main/base.html' %} + +{% block content %} +
++"{{ quote.text }}"
+ +