WIP: Deployment #3
@@ -23,13 +23,6 @@ with open( BASE_DIR + "/settings.json", "r") as userfile:
 | 
			
		||||
    INTERNAL_IPS = usersettings["INTERNAL_IPS"]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# CALIBRE_DIR = os.path.abspath(
 | 
			
		||||
#     "C:\\Users\\MassiveAtoms\\Documents\\Calibre Library")
 | 
			
		||||
# SECRET_KEY = 'u(8^+rb%rz5hsx4v^^y(ul7g(4n7a8!db@s*9(m5cs*2_ppy8+'
 | 
			
		||||
# ALLOWED_HOSTS = ['127.0.0.1', ]
 | 
			
		||||
# INTERNAL_IPS = ['127.0.0.1', ]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
 | 
			
		||||
 | 
			
		||||
@@ -99,11 +92,13 @@ INSTALLED_APPS = [
 | 
			
		||||
    'django.contrib.messages',
 | 
			
		||||
    'django.contrib.staticfiles',
 | 
			
		||||
    "library",
 | 
			
		||||
    'debug_toolbar', # DEBUG  purposes
 | 
			
		||||
    # "silk",
 | 
			
		||||
    # 'debug_toolbar', # DEBUG  purposes
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
MIDDLEWARE = [
 | 
			
		||||
    'debug_toolbar.middleware.DebugToolbarMiddleware', # DEBUG purposes
 | 
			
		||||
    # 'silk.middleware.SilkyMiddleware', # DEBUG/profiling purposes
 | 
			
		||||
    # 'debug_toolbar.middleware.DebugToolbarMiddleware', # DEBUG purposes
 | 
			
		||||
    'django.middleware.cache.UpdateCacheMiddleware', # cache
 | 
			
		||||
    'django.middleware.security.SecurityMiddleware',
 | 
			
		||||
    'django.contrib.sessions.middleware.SessionMiddleware',
 | 
			
		||||
@@ -138,8 +133,9 @@ TEMPLATES = [
 | 
			
		||||
 | 
			
		||||
WSGI_APPLICATION = 'CalibreWebCompanion.wsgi.application'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Database
 | 
			
		||||
##                                                                    ##
 | 
			
		||||
########################################################################
 | 
			
		||||
##                    DATBASE                                         ##
 | 
			
		||||
# https://docs.djangoproject.com/en/3.0/ref/settings/#databases
 | 
			
		||||
 | 
			
		||||
DATABASES = {
 | 
			
		||||
@@ -154,7 +150,7 @@ DATABASES = {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DATABASE_ROUTERS = ["db_routers.DjangoRouter", "db_routers.CalibreRouter"]
 | 
			
		||||
DATABASE_ROUTERS = [ "db_routers.CalibreRouter", "db_routers.DjangoRouter"]
 | 
			
		||||
 | 
			
		||||
# Password validation
 | 
			
		||||
# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators
 | 
			
		||||
 
 | 
			
		||||
@@ -30,8 +30,9 @@ urlpatterns = [
 | 
			
		||||
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if settings.DEBUG: # DEBUG purposes
 | 
			
		||||
    import debug_toolbar
 | 
			
		||||
    urlpatterns = [
 | 
			
		||||
        path('__debug__/', include(debug_toolbar.urls)),
 | 
			
		||||
    ] + urlpatterns
 | 
			
		||||
# if settings.DEBUG: # DEBUG purposes
 | 
			
		||||
    # urlpatterns+= [path('silk/', include('silk.urls', namespace='silk'))]
 | 
			
		||||
    # import debug_toolbar
 | 
			
		||||
    # urlpatterns = [
 | 
			
		||||
    #     path('__debug__/', include(debug_toolbar.urls)),
 | 
			
		||||
    # ] + urlpatterns
 | 
			
		||||
 
 | 
			
		||||
@@ -5,22 +5,45 @@ class DjangoRouter:
 | 
			
		||||
    A router to control all database operations on models in the
 | 
			
		||||
    auth and contenttypes applications.
 | 
			
		||||
    """
 | 
			
		||||
    route_app_labels = {'auth', 'contenttypes', "sessions", "sites", "admin", "flatpages"}
 | 
			
		||||
    def db_for_read(self, model, **hints):
 | 
			
		||||
        """
 | 
			
		||||
        Attempts to read anything else goes to calibre
 | 
			
		||||
        """
 | 
			
		||||
        return 'default'
 | 
			
		||||
 | 
			
		||||
    def db_for_write(self, model, **hints): 
 | 
			
		||||
        """
 | 
			
		||||
        Attempts to write auth and contenttypes models go to 'calibre'.
 | 
			
		||||
        """
 | 
			
		||||
        return 'default'
 | 
			
		||||
 | 
			
		||||
    def allow_relation(self, obj1, obj2, **hints):
 | 
			
		||||
        """
 | 
			
		||||
        Allow relations.
 | 
			
		||||
        """
 | 
			
		||||
        return True
 | 
			
		||||
 | 
			
		||||
    def allow_migrate(self, db, app_label, model_name=None, **hints): 
 | 
			
		||||
        """
 | 
			
		||||
        Yes
 | 
			
		||||
        """
 | 
			
		||||
        return True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CalibreRouter:
 | 
			
		||||
    """
 | 
			
		||||
    A router to control all database operations on models in the
 | 
			
		||||
    auth and contenttypes applications.
 | 
			
		||||
    """
 | 
			
		||||
    route_app_labels = {"library"}
 | 
			
		||||
 | 
			
		||||
    def db_for_read(self, model, **hints):
 | 
			
		||||
        """
 | 
			
		||||
        Attempts to read auth and contenttypes models go to default.
 | 
			
		||||
        """
 | 
			
		||||
        if model._meta.app_label in self.route_app_labels:
 | 
			
		||||
            return 'default'
 | 
			
		||||
        return None
 | 
			
		||||
 | 
			
		||||
    def db_for_write(self, model, **hints):
 | 
			
		||||
        """
 | 
			
		||||
        Attempts to write auth and contenttypes models go to django.
 | 
			
		||||
        """
 | 
			
		||||
        if model._meta.app_label in self.route_app_labels:
 | 
			
		||||
            return 'default'
 | 
			
		||||
            return 'calibre'
 | 
			
		||||
        return None
 | 
			
		||||
 | 
			
		||||
    def allow_relation(self, obj1, obj2, **hints):
 | 
			
		||||
@@ -35,42 +58,19 @@ class DjangoRouter:
 | 
			
		||||
           return True
 | 
			
		||||
        return None
 | 
			
		||||
 | 
			
		||||
    def allow_migrate(self, db, app_label, model_name=None, **hints):
 | 
			
		||||
        """
 | 
			
		||||
        Make sure the auth and contenttypes apps only appear in the
 | 
			
		||||
        'django' database.
 | 
			
		||||
        """
 | 
			
		||||
        if app_label in self.route_app_labels:
 | 
			
		||||
            return db == 'default'
 | 
			
		||||
        return None
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CalibreRouter:
 | 
			
		||||
    """
 | 
			
		||||
    A router to control all database operations on models in the
 | 
			
		||||
    auth and contenttypes applications.
 | 
			
		||||
    """
 | 
			
		||||
    def db_for_read(self, model, **hints):
 | 
			
		||||
        """
 | 
			
		||||
        Attempts to read anything else goes to calibre
 | 
			
		||||
        """
 | 
			
		||||
        return 'calibre'
 | 
			
		||||
 | 
			
		||||
    # def db_for_write(self, model, **hints): # might be prudent not to allow writes
 | 
			
		||||
    # def allow_migrate(self, db, app_label, model_name=None, **hints):
 | 
			
		||||
    #     """
 | 
			
		||||
    #     Attempts to write auth and contenttypes models go to 'calibre'.
 | 
			
		||||
    #     Make sure the auth and contenttypes apps only appear in the
 | 
			
		||||
    #     'django' database.
 | 
			
		||||
    #     """
 | 
			
		||||
    #     return 'calibre'
 | 
			
		||||
    #     if app_label in self.route_app_labels:
 | 
			
		||||
    #         return db == 'default'
 | 
			
		||||
    #     return None
 | 
			
		||||
 | 
			
		||||
    def allow_relation(self, obj1, obj2, **hints):
 | 
			
		||||
        """
 | 
			
		||||
        Allow relations.
 | 
			
		||||
        """
 | 
			
		||||
        return True
 | 
			
		||||
 | 
			
		||||
    # def allow_migrate(self, db, app_label, model_name=None, **hints): # might be prudent not to allow migrations
 | 
			
		||||
    # def db_for_write(self, model, **hints):
 | 
			
		||||
    #     """
 | 
			
		||||
    #     Yes
 | 
			
		||||
    #     Attempts to write auth and contenttypes models go to django.
 | 
			
		||||
    #     """
 | 
			
		||||
    #     return True
 | 
			
		||||
    #     if model._meta.app_label in self.route_app_labels:
 | 
			
		||||
    #         return 'default'
 | 
			
		||||
    #     return None
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1,5 @@
 | 
			
		||||
django==3.0.8
 | 
			
		||||
django>=3.0.8
 | 
			
		||||
# development
 | 
			
		||||
django-debug-toolbar>=2.2
 | 
			
		||||
django-silk>=4.0
 | 
			
		||||
locust>=1.1
 | 
			
		||||
		Reference in New Issue
	
	Block a user