From 28567f31ca6c79d68297d912b005debdf131c393 Mon Sep 17 00:00:00 2001 From: Thomas Schwery Date: Sun, 6 Mar 2022 10:49:36 +0100 Subject: [PATCH] feat: Add homepage app --- djangotea/settings.py | 1 + djangotea/urls.py | 1 + homepage/__init__.py | 0 homepage/admin.py | 6 ++++ homepage/apps.py | 6 ++++ homepage/migrations/0001_initial.py | 22 ++++++++++++++ homepage/migrations/__init__.py | 0 homepage/models.py | 9 ++++++ homepage/templates/homepage/base.html | 40 ++++++++++++++++++++++++++ homepage/templates/homepage/index.html | 7 +++++ homepage/tests.py | 3 ++ homepage/urls.py | 8 ++++++ homepage/views.py | 14 +++++++++ 13 files changed, 117 insertions(+) create mode 100644 homepage/__init__.py create mode 100644 homepage/admin.py create mode 100644 homepage/apps.py create mode 100644 homepage/migrations/0001_initial.py create mode 100644 homepage/migrations/__init__.py create mode 100644 homepage/models.py create mode 100644 homepage/templates/homepage/base.html create mode 100644 homepage/templates/homepage/index.html create mode 100644 homepage/tests.py create mode 100644 homepage/urls.py create mode 100644 homepage/views.py diff --git a/djangotea/settings.py b/djangotea/settings.py index 636ba68..242df97 100644 --- a/djangotea/settings.py +++ b/djangotea/settings.py @@ -33,6 +33,7 @@ ALLOWED_HOSTS = [] INSTALLED_APPS = [ 'tea.apps.TeaConfig', 'wine.apps.WineConfig', + 'homepage.apps.HomepageConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', diff --git a/djangotea/urls.py b/djangotea/urls.py index 79cba3b..353d8f9 100644 --- a/djangotea/urls.py +++ b/djangotea/urls.py @@ -18,6 +18,7 @@ from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), + path('', include('homepage.urls')), path('tea/', include('tea.urls')), path('wine/', include('wine.urls')), ] diff --git a/homepage/__init__.py b/homepage/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/homepage/admin.py b/homepage/admin.py new file mode 100644 index 0000000..63557f7 --- /dev/null +++ b/homepage/admin.py @@ -0,0 +1,6 @@ +from django.contrib import admin + + +from .models import Application + +admin.site.register(Application) diff --git a/homepage/apps.py b/homepage/apps.py new file mode 100644 index 0000000..39b7fd9 --- /dev/null +++ b/homepage/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class HomepageConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'homepage' diff --git a/homepage/migrations/0001_initial.py b/homepage/migrations/0001_initial.py new file mode 100644 index 0000000..4459543 --- /dev/null +++ b/homepage/migrations/0001_initial.py @@ -0,0 +1,22 @@ +# Generated by Django 4.0.2 on 2022-03-06 09:12 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Application', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=200)), + ('url', models.CharField(max_length=20)), + ], + ), + ] diff --git a/homepage/migrations/__init__.py b/homepage/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/homepage/models.py b/homepage/models.py new file mode 100644 index 0000000..f1b4f5e --- /dev/null +++ b/homepage/models.py @@ -0,0 +1,9 @@ +from django.db import models + + +class Application(models.Model): + name = models.CharField(max_length=200) + url = models.CharField(max_length=20) + + def __str__(self): + return self.name diff --git a/homepage/templates/homepage/base.html b/homepage/templates/homepage/base.html new file mode 100644 index 0000000..f3f9127 --- /dev/null +++ b/homepage/templates/homepage/base.html @@ -0,0 +1,40 @@ + + + + + + + Django StockPile + + + +
+
+
+
+ {% block content %} + {% endblock %} +
+
+
+ + diff --git a/homepage/templates/homepage/index.html b/homepage/templates/homepage/index.html new file mode 100644 index 0000000..8339c04 --- /dev/null +++ b/homepage/templates/homepage/index.html @@ -0,0 +1,7 @@ +{% extends 'homepage/base.html' %} + +{% block content %} +{% for application in application_list %} +

{{ application.name }}

+{% endfor %} +{% endblock %} diff --git a/homepage/tests.py b/homepage/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/homepage/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/homepage/urls.py b/homepage/urls.py new file mode 100644 index 0000000..09bdc65 --- /dev/null +++ b/homepage/urls.py @@ -0,0 +1,8 @@ +from django.urls import path + +from . import views + +app_name = 'homepage' +urlpatterns = [ + path('', views.IndexView.as_view(), name='index'), +] diff --git a/homepage/views.py b/homepage/views.py new file mode 100644 index 0000000..7726362 --- /dev/null +++ b/homepage/views.py @@ -0,0 +1,14 @@ +from django.db.models import F +from django.http import HttpResponse, HttpResponseRedirect +from django.shortcuts import render, get_object_or_404 +from django.urls import reverse +from django.views import generic + +from .models import Application + +class IndexView(generic.ListView): + model = Application + template_name = 'homepage/index.html' + + def get_queryset(self): + return Application.objects.order_by('name')