From 6eca86eab9e46afc51e862c66b6b25462871ea04 Mon Sep 17 00:00:00 2001 From: Jonas Legion Date: Thu, 10 Jun 2021 14:43:03 +0200 Subject: [PATCH] admin public --- DjangoFiles/Administration/admin_public.py | 32 +++++++++++++++++++ .../{admin.py => admin_tenant.py} | 2 -- DjangoFiles/Customers/admin.py | 9 +----- .../migrations/0002_create_tenant_public.py | 2 +- DjangoFiles/TiBillet/settings.py | 7 ++-- DjangoFiles/TiBillet/urls_public.py | 25 +++++++++++++++ .../TiBillet/{urls.py => urls_tenants.py} | 6 +++- 7 files changed, 67 insertions(+), 16 deletions(-) create mode 100644 DjangoFiles/Administration/admin_public.py rename DjangoFiles/Administration/{admin.py => admin_tenant.py} (52%) create mode 100644 DjangoFiles/TiBillet/urls_public.py rename DjangoFiles/TiBillet/{urls.py => urls_tenants.py} (79%) diff --git a/DjangoFiles/Administration/admin_public.py b/DjangoFiles/Administration/admin_public.py new file mode 100644 index 0000000..2812f8d --- /dev/null +++ b/DjangoFiles/Administration/admin_public.py @@ -0,0 +1,32 @@ +from django.contrib import admin +from django.contrib.admin import AdminSite +from Customers.models import Client, Domain +# Register your models here. + +class PublicAdminSite(AdminSite): + site_header = "TiBillet Public Admin" + site_title = "TiBillet Public Admin" + site_url = '/' + + def has_permission(self, request): + return request.user.is_superuser + + +public_admin_site = PublicAdminSite(name='public_admin') + + +class DomainInline(admin.TabularInline): + model = Domain + +class ClientAdmin(admin.ModelAdmin): + inlines = [DomainInline] + list_display = ( + 'schema_name', + 'name', + 'paid_until', + 'on_trial', + 'created_on', + ) + + +public_admin_site.register(Client, ClientAdmin) diff --git a/DjangoFiles/Administration/admin.py b/DjangoFiles/Administration/admin_tenant.py similarity index 52% rename from DjangoFiles/Administration/admin.py rename to DjangoFiles/Administration/admin_tenant.py index 8c38f3f..694323f 100644 --- a/DjangoFiles/Administration/admin.py +++ b/DjangoFiles/Administration/admin_tenant.py @@ -1,3 +1 @@ from django.contrib import admin - -# Register your models here. diff --git a/DjangoFiles/Customers/admin.py b/DjangoFiles/Customers/admin.py index 60b2a4f..d3c1eff 100644 --- a/DjangoFiles/Customers/admin.py +++ b/DjangoFiles/Customers/admin.py @@ -1,8 +1 @@ -from django.contrib import admin -from django_tenants.admin import TenantAdminMixin - -from Customers.models import Client - -@admin.register(Client) -class ClientAdmin(TenantAdminMixin, admin.ModelAdmin): - list_display = ('name', 'paid_until') \ No newline at end of file +# from django.contrib import admin diff --git a/DjangoFiles/Customers/migrations/0002_create_tenant_public.py b/DjangoFiles/Customers/migrations/0002_create_tenant_public.py index 7b53538..0984c1a 100644 --- a/DjangoFiles/Customers/migrations/0002_create_tenant_public.py +++ b/DjangoFiles/Customers/migrations/0002_create_tenant_public.py @@ -11,7 +11,7 @@ def create_premier_tenant(apps, schema_editor): DNS = os.getenv('DOMAIN') tenant_public = Client.objects.get_or_create(schema_name='public', - name='Tibillet inc.', + name='Tibillet Public', paid_until='2200-12-05', on_trial=False)[0] diff --git a/DjangoFiles/TiBillet/settings.py b/DjangoFiles/TiBillet/settings.py index ae9942e..e16f0b1 100644 --- a/DjangoFiles/TiBillet/settings.py +++ b/DjangoFiles/TiBillet/settings.py @@ -58,8 +58,9 @@ TENANT_APPS = ( INSTALLED_APPS = list(SHARED_APPS) + [app for app in TENANT_APPS if app not in SHARED_APPS] TENANT_MODEL = "Customers.Client" # app.Model TENANT_DOMAIN_MODEL = "Customers.Domain" # app.Model -# ROOT_URLCONF = 'TiBillet.urls_tenants' -# PUBLIC_SCHEMA_URLCONF = 'TiBillet.urls_public' +ROOT_URLCONF = 'TiBillet.urls_tenants' +PUBLIC_SCHEMA_URLCONF = 'TiBillet.urls_public' +SITE_ID = 1 MIDDLEWARE = [ @@ -73,8 +74,6 @@ MIDDLEWARE = [ 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] -ROOT_URLCONF = 'TiBillet.urls' - TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', diff --git a/DjangoFiles/TiBillet/urls_public.py b/DjangoFiles/TiBillet/urls_public.py new file mode 100644 index 0000000..c05eb05 --- /dev/null +++ b/DjangoFiles/TiBillet/urls_public.py @@ -0,0 +1,25 @@ +"""TiBillet URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/2.2/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path +from Administration.admin_public import public_admin_site + + +urlpatterns = [ + path('admin/', public_admin_site.urls, name="public_admin_url"), + + # path('admin/', admin.site.urls, name="public_admin_url"), +] diff --git a/DjangoFiles/TiBillet/urls.py b/DjangoFiles/TiBillet/urls_tenants.py similarity index 79% rename from DjangoFiles/TiBillet/urls.py rename to DjangoFiles/TiBillet/urls_tenants.py index fcbdad3..dd9f2a2 100644 --- a/DjangoFiles/TiBillet/urls.py +++ b/DjangoFiles/TiBillet/urls_tenants.py @@ -15,7 +15,11 @@ Including another URLconf """ from django.contrib import admin from django.urls import path +# from Administration.admin_public import public_admin_site + urlpatterns = [ - path('admin/', admin.site.urls), + path('admin/', admin.site.urls, name="public_admin_url"), + + # path('admin/', admin.site.urls, name="public_admin_url"), ]