summaryrefslogtreecommitdiff
blob: bac2a3031d651953192b7cd2d89eef2048662524 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Copyright 1998-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

class TBCRouter(object):
	def db_for_read(self, model, **hints):
		"Point all operations on tbc models to 'tbc'"
		if model._meta.app_label == 'tbc_www':
			return 'tbc'
		return 'default'

	def db_for_write(self, model, **hints):
		"Point all operations on tbc models to 'tbc'"
		if model._meta.app_label == 'tbc_www':
			return 'tbc'
		return 'default'

	def allow_relation(self, obj1, obj2, **hints):
		"Allow any relation if a both models in tbc app"
		if obj1._meta.app_label == 'tbc_www' and obj2._meta.app_label == 'tbc_www':
			return True
		# Allow if neither is tbc app
		elif 'tbc_www' not in [obj1._meta.app_label, obj2._meta.app_label]:
			return True
		return False

	def allow_migrate(self, db, app_label, model_name=None, **hints):
		if db == 'tbc' or app_label == "tbc_www":
			return False # we're not using syncdb on our legacy database
		else: # but all other models/databases are fine
			return True