From e153be4b585d8fd5341fe44110828b15146fa4cf Mon Sep 17 00:00:00 2001 From: pierre geeraert Date: Sun, 21 Jun 2026 21:21:54 +0100 Subject: [PATCH] write down every time redirect adds something --- README.md | 16 ++++-- ..._author_remove_book_categories_and_more.py | 30 +++++++++++ django_code/apps/website_redirection/apps.py | 52 ++---------------- .../migrations/0001_initial.py | 25 +++++++++ .../migrations/__init__.py | 0 .../apps/website_redirection/models.py | 7 ++- django_code/apps/website_redirection/urls.py | 2 +- django_code/apps/website_redirection/views.py | 54 +++++++++++++++++++ django_code/core/routers.py | 13 +++-- django_code/core/settings.py | 9 ++++ django_code/core/urls.py | 2 +- 11 files changed, 153 insertions(+), 57 deletions(-) create mode 100644 django_code/apps/random_simpsons/migrations/0003_remove_book_author_remove_book_categories_and_more.py create mode 100644 django_code/apps/website_redirection/migrations/0001_initial.py create mode 100644 django_code/apps/website_redirection/migrations/__init__.py diff --git a/README.md b/README.md index a946acd..1f19a14 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,19 @@ ======= # Django_kube -test - - ## Getting started +### Database migration + +``` +python django_code/manage.py makemigrations +python django_code/manage.py makemigrations redirect +python django_code/manage.py makemigrations cloudmanager +python django_code/manage.py makemigrations simpsons + +python django_code/manage.py migrate +python django_code/manage.py migrate --database=cloudmanager_db +python django_code/manage.py migrate --database=simpsons_db +python django_code/manage.py migrate --database=redirect_db +``` To make it easy for you to get started with GitLab, here's a list of recommended next steps. diff --git a/django_code/apps/random_simpsons/migrations/0003_remove_book_author_remove_book_categories_and_more.py b/django_code/apps/random_simpsons/migrations/0003_remove_book_author_remove_book_categories_and_more.py new file mode 100644 index 0000000..a65e65a --- /dev/null +++ b/django_code/apps/random_simpsons/migrations/0003_remove_book_author_remove_book_categories_and_more.py @@ -0,0 +1,30 @@ +# Generated by Django 4.2.29 on 2026-06-21 20:11 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('simpsons', '0002_author_category_book'), + ] + + operations = [ + migrations.RemoveField( + model_name='book', + name='author', + ), + migrations.RemoveField( + model_name='book', + name='categories', + ), + migrations.DeleteModel( + name='Author', + ), + migrations.DeleteModel( + name='Book', + ), + migrations.DeleteModel( + name='Category', + ), + ] diff --git a/django_code/apps/website_redirection/apps.py b/django_code/apps/website_redirection/apps.py index 25d58d5..e11a364 100644 --- a/django_code/apps/website_redirection/apps.py +++ b/django_code/apps/website_redirection/apps.py @@ -2,52 +2,10 @@ import redis from django.http import HttpResponse from django.http import HttpResponseRedirect from django.shortcuts import render - -r = redis.Redis( - host='django-redis-svc', - port=6379, - db=0 # The default Redis database index -) - -def hello(request): - return HttpResponse('

Hello redirect!

') +from django.apps import AppConfig -def redirect(request): - return render(request, 'website_redirection/redirect_form.html',{}) - -def clearkey_process(request): - key = request.GET.get('key') - r.delete(key) - return 0 - -def redirect_process(request): - key = request.GET.get('key') - value = request.GET.get('value') - key = key.lower() - - r.set(key, value) - - text_generated = "successfully set "+value+" to "+key - return HttpResponse(text_generated, content_type="text/plain") - -def display_key(request,key): - value = r.get(key) - value_extracted = str(value.decode()) - text_generated = key+" is set to "+value_extracted - return HttpResponse(text_generated, content_type="text/plain") - - -def redirect_to_key(request,key): - value = r.get(key) - if value == None: - icon_url = r.get('icon') - if icon_url == None: - icon_url = "https://cdn-icons-png.flaticon.com/512/6402/6402576.png" - print(key+" is not setup, displaying default page") - return render(request, 'website_redirection/blank_page.html', {'title': key,'icon_url':icon_url}) - else: - value_extracted = str(value.decode('utf-8')) - print(key+" is setup to : "+value_extracted) - print(value_extracted) - return HttpResponseRedirect(value_extracted) \ No newline at end of file +class redirectConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'apps.website_redirection' + label = 'redirect' diff --git a/django_code/apps/website_redirection/migrations/0001_initial.py b/django_code/apps/website_redirection/migrations/0001_initial.py new file mode 100644 index 0000000..ff716eb --- /dev/null +++ b/django_code/apps/website_redirection/migrations/0001_initial.py @@ -0,0 +1,25 @@ +# Generated by Django 4.2.29 on 2026-06-21 20:05 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='redirectData', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('url', models.CharField(max_length=1000)), + ('seenDate', models.DateField(blank=True, null=True, verbose_name='Published')), + ], + options={ + 'db_table': 'redirect', + }, + ), + ] diff --git a/django_code/apps/website_redirection/migrations/__init__.py b/django_code/apps/website_redirection/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/django_code/apps/website_redirection/models.py b/django_code/apps/website_redirection/models.py index 71a8362..2762f32 100644 --- a/django_code/apps/website_redirection/models.py +++ b/django_code/apps/website_redirection/models.py @@ -1,3 +1,8 @@ from django.db import models -# Create your models here. +class redirectData(models.Model): + url = models.CharField(max_length=1000) + seenDate = models.DateField('Published', blank=True, null=True) + + class Meta: + db_table = 'redirect' diff --git a/django_code/apps/website_redirection/urls.py b/django_code/apps/website_redirection/urls.py index b04a85e..f44b152 100644 --- a/django_code/apps/website_redirection/urls.py +++ b/django_code/apps/website_redirection/urls.py @@ -16,7 +16,7 @@ Including another URLconf """ from django.contrib import admin from django.urls import path -from apps.website_redirection import apps as website_redirectionapp +from apps.website_redirection import views as website_redirectionapp urlpatterns = [ # path('admin/', admin.site.urls), diff --git a/django_code/apps/website_redirection/views.py b/django_code/apps/website_redirection/views.py index dcf84f6..9df02e6 100644 --- a/django_code/apps/website_redirection/views.py +++ b/django_code/apps/website_redirection/views.py @@ -3,6 +3,60 @@ from django.shortcuts import render # Create your views here. from django.http import HttpResponse from django.shortcuts import render +from .models import redirectData +import redis +import datetime def hello(request): return HttpResponse('

Hello Django!

') + + + +r = redis.Redis( + host='django-redis-svc', + port=6379, + db=0 # The default Redis database index +) + +def hello(request): + return HttpResponse('

Hello redirect!

') + + +def redirect(request): + return render(request, 'website_redirection/redirect_form.html',{}) + +def clearkey_process(request): + key = request.GET.get('key') + r.delete(key) + return 0 + +def redirect_process(request): + key = request.GET.get('key') + value = request.GET.get('value') + key = key.lower() + + r.set(key, value) + redirectData.create(url=key,seenDate=datetime.datetime.now()) + text_generated = "successfully set "+value+" to "+key + return HttpResponse(text_generated, content_type="text/plain") + +def display_key(request,key): + value = r.get(key) + value_extracted = str(value.decode()) + text_generated = key+" is set to "+value_extracted + return HttpResponse(text_generated, content_type="text/plain") + + +def redirect_to_key(request,key): + value = r.get(key) + if value == None: + icon_url = r.get('icon') + if icon_url == None: + icon_url = "https://cdn-icons-png.flaticon.com/512/6402/6402576.png" + print(key+" is not setup, displaying default page") + return render(request, 'website_redirection/blank_page.html', {'title': key,'icon_url':icon_url}) + else: + value_extracted = str(value.decode('utf-8')) + print(key+" is setup to : "+value_extracted) + print(value_extracted) + return HttpResponseRedirect(value_extracted) \ No newline at end of file diff --git a/django_code/core/routers.py b/django_code/core/routers.py index bc98c23..4876caa 100644 --- a/django_code/core/routers.py +++ b/django_code/core/routers.py @@ -10,6 +10,8 @@ class ProjectDatabaseRouter: """Attempts to read simpsons and cloudmanager models go to their specific dbs.""" if model._meta.app_label == 'simpsons': return 'simpsons_db' + if model._meta.app_label == 'redirect': + return 'redirect_db' if model._meta.app_label == 'cloudmanager': return 'cloudmanager_db' return 'default' @@ -20,14 +22,16 @@ class ProjectDatabaseRouter: return 'simpsons_db' if model._meta.app_label == 'cloudmanager': return 'cloudmanager_db' + if model._meta.app_label == 'redirect': + return 'redirect_db' return 'default' def allow_relation(self, obj1, obj2, **hints): """Allow relations if both models are in the same database.""" # Prevents accidental foreign key relationships across different physical DBs if ( - obj1._meta.app_label in ['simpsons', 'cloudmanager'] or - obj2._meta.app_label in ['simpsons', 'cloudmanager'] + obj1._meta.app_label in ['simpsons', 'cloudmanager','redirect'] or + obj2._meta.app_label in ['simpsons', 'cloudmanager','redirect'] ): return obj1._meta.app_label == obj2._meta.app_label return None @@ -38,9 +42,10 @@ class ProjectDatabaseRouter: return db == 'simpsons_db' if app_label == 'cloudmanager': return db == 'cloudmanager_db' - + if app_label == 'redirect': + return 'redirect_db' # Ensure default Django apps (auth, sessions, etc.) don't migrate into simpsons/cloudmanager - if db in ['simpsons_db', 'cloudmanager_db']: + if db in ['simpsons_db', 'cloudmanager_db','redirect_db']: return False return None \ No newline at end of file diff --git a/django_code/core/settings.py b/django_code/core/settings.py index ca551ca..a9b1b2c 100644 --- a/django_code/core/settings.py +++ b/django_code/core/settings.py @@ -45,6 +45,7 @@ INSTALLED_APPS = [ 'django_hosts', 'apps.cloudmanager.apps.CloudmanagerConfig', 'apps.random_simpsons.apps.RandomSimpsonsConfig', + 'apps.website_redirection.apps.redirectConfig', 'import_export', ] @@ -115,6 +116,14 @@ DATABASES = { 'HOST': os.environ.get('DB_HOST'), 'PORT': os.environ.get('DB_PORT'), }, + 'redirect_db': { + 'ENGINE': 'django.db.backends.postgresql', + 'NAME': 'redirect', + 'USER': os.environ.get('DB_USERNAME'), + 'PASSWORD': os.environ.get('DB_PASSWORD'), + 'HOST': os.environ.get('DB_HOST'), + 'PORT': os.environ.get('DB_PORT'), + }, } DATABASE_ROUTERS = ['core.routers.ProjectDatabaseRouter'] #DATABASE_ROUTERS = [] diff --git a/django_code/core/urls.py b/django_code/core/urls.py index 7a52c57..1efd1b5 100644 --- a/django_code/core/urls.py +++ b/django_code/core/urls.py @@ -25,7 +25,7 @@ from apps.dashboard import views as dashboardview from apps.kubernetes_connection import apps as kubernetes_connection from apps.stash_management import apps as stashapp from apps.stash_management import views as stashview -from apps.website_redirection import apps as website_redirectionapp +from apps.website_redirection import views as website_redirectionapp urlpatterns = [