reasonably working calibreweb thing
This commit is contained in:
		
							
								
								
									
										2
									
								
								CalibreWebCompanion/db_routers/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								CalibreWebCompanion/db_routers/__init__.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
from .routers import DjangoRouter, CalibreRouter
 | 
			
		||||
__name__ = "db_routers"
 | 
			
		||||
							
								
								
									
										76
									
								
								CalibreWebCompanion/db_routers/routers.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								CalibreWebCompanion/db_routers/routers.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,76 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
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 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 None
 | 
			
		||||
 | 
			
		||||
    def allow_relation(self, obj1, obj2, **hints):
 | 
			
		||||
        """
 | 
			
		||||
        Allow relations if a model in the auth or contenttypes apps is
 | 
			
		||||
        involved.
 | 
			
		||||
        """
 | 
			
		||||
        if (
 | 
			
		||||
            obj1._meta.app_label in self.route_app_labels or
 | 
			
		||||
            obj2._meta.app_label in self.route_app_labels
 | 
			
		||||
        ):
 | 
			
		||||
           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
 | 
			
		||||
    #     """
 | 
			
		||||
    #     Attempts to write auth and contenttypes models go to 'calibre'.
 | 
			
		||||
    #     """
 | 
			
		||||
    #     return 'calibre'
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    #     """
 | 
			
		||||
    #     Yes
 | 
			
		||||
    #     """
 | 
			
		||||
    #     return True
 | 
			
		||||
		Reference in New Issue
	
	Block a user