diff --git a/django_code/apps/job_dashboard/__init__.py b/django_code/apps/job_dashboard/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/django_code/apps/job_dashboard/admin.py b/django_code/apps/job_dashboard/admin.py new file mode 100644 index 0000000..8983ba7 --- /dev/null +++ b/django_code/apps/job_dashboard/admin.py @@ -0,0 +1,11 @@ +from django.contrib import admin +from import_export.admin import ImportExportModelAdmin +from .models import JobData + +# Register your models here. + +@admin.register(JobData) +class EpisodeAdmin(ImportExportModelAdmin): + list_display = ('name',) + fields = ['name'] + diff --git a/django_code/apps/job_dashboard/apps.py b/django_code/apps/job_dashboard/apps.py new file mode 100644 index 0000000..95a2328 --- /dev/null +++ b/django_code/apps/job_dashboard/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + +class JobDashboardConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'apps.job_dashboard' + label = 'job' diff --git a/django_code/apps/job_dashboard/migrations/0001_initial.py b/django_code/apps/job_dashboard/migrations/0001_initial.py new file mode 100644 index 0000000..1e3fe84 --- /dev/null +++ b/django_code/apps/job_dashboard/migrations/0001_initial.py @@ -0,0 +1,24 @@ +# Generated by Django 4.2.30 on 2026-06-22 08:59 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='JobData', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=1000)), + ], + options={ + 'db_table': 'job', + }, + ), + ] diff --git a/django_code/apps/job_dashboard/migrations/__init__.py b/django_code/apps/job_dashboard/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/django_code/apps/job_dashboard/models.py b/django_code/apps/job_dashboard/models.py new file mode 100644 index 0000000..8afa23b --- /dev/null +++ b/django_code/apps/job_dashboard/models.py @@ -0,0 +1,8 @@ +from django.db import models + +class JobData(models.Model): + name = models.CharField(max_length=1000) + + class Meta: + db_table = 'job' + diff --git a/django_code/apps/job_dashboard/tests.py b/django_code/apps/job_dashboard/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/django_code/apps/job_dashboard/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/django_code/apps/job_dashboard/views.py b/django_code/apps/job_dashboard/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/django_code/apps/job_dashboard/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/django_code/core/routers.py b/django_code/core/routers.py index 4876caa..f0d36f1 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 == 'job': + return 'job_db' if model._meta.app_label == 'redirect': return 'redirect_db' if model._meta.app_label == 'cloudmanager': @@ -20,6 +22,8 @@ class ProjectDatabaseRouter: """Attempts to write simpsons and cloudmanager models go to their specific dbs.""" if model._meta.app_label == 'simpsons': return 'simpsons_db' + if model._meta.app_label == 'job': + return 'job_db' if model._meta.app_label == 'cloudmanager': return 'cloudmanager_db' if model._meta.app_label == 'redirect': @@ -30,8 +34,8 @@ class ProjectDatabaseRouter: """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','redirect'] or - obj2._meta.app_label in ['simpsons', 'cloudmanager','redirect'] + obj1._meta.app_label in ['simpsons', 'cloudmanager','redirect','job'] or + obj2._meta.app_label in ['simpsons', 'cloudmanager','redirect','job'] ): return obj1._meta.app_label == obj2._meta.app_label return None @@ -40,12 +44,14 @@ class ProjectDatabaseRouter: """Ensure the app's models only show up in the designated database.""" if app_label == 'simpsons': return db == 'simpsons_db' + if app_label == 'job': + return db == 'job_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','redirect_db']: + if db in ['simpsons_db', 'cloudmanager_db','redirect_db','job_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 a9b1b2c..3ce4102 100644 --- a/django_code/core/settings.py +++ b/django_code/core/settings.py @@ -46,6 +46,7 @@ INSTALLED_APPS = [ 'apps.cloudmanager.apps.CloudmanagerConfig', 'apps.random_simpsons.apps.RandomSimpsonsConfig', 'apps.website_redirection.apps.redirectConfig', + 'apps.job_dashboard.apps.JobDashboardConfig', 'import_export', ] @@ -124,6 +125,14 @@ DATABASES = { 'HOST': os.environ.get('DB_HOST'), 'PORT': os.environ.get('DB_PORT'), }, + 'job_db': { + 'ENGINE': 'django.db.backends.postgresql', + 'NAME': 'job', + '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 = []