Skip to content

Commit e43f971

Browse files
committed
Option to deactivate auto-indexing
1 parent be6715e commit e43f971

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

src/registration.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ class RegistrationError(AlgoliaEngineError):
2525
class AlgoliaEngine(object):
2626
def __init__(self, app_id=None, api_key=None):
2727
'''Initializes Algolia engine.'''
28+
params = getattr(settings, 'ALGOLIA', None)
29+
2830
if not (app_id and api_key):
29-
params = getattr(settings, 'ALGOLIA', None)
3031
if params:
3132
app_id = params['APPLICATION_ID']
3233
api_key = params['API_KEY']
@@ -35,6 +36,9 @@ def __init__(self, app_id=None, api_key=None):
3536
app_id = settings.ALGOLIA_APPLICATION_ID
3637
api_key = setting.ALGOLIA_API_KEY
3738

39+
if params:
40+
self.auto_indexing = params.get('AUTO_INDEXING', True)
41+
3842
self.__registered_models = {}
3943
self.client = algoliasearch.Client(app_id, api_key)
4044
self.client.set_extra_header('User-Agent',
@@ -58,10 +62,12 @@ def register(self, model, index_cls=AlgoliaIndex):
5862
# Perform the registration.
5963
index_obj = index_cls(model, self.client)
6064
self.__registered_models[model] = index_obj
61-
# Connect to the signalling framework.
62-
post_save.connect(self.__post_save_receiver, model)
63-
pre_delete.connect(self.__pre_delete_receiver, model)
64-
logger.info('REGISTER %s', model)
65+
66+
if self.auto_indexing:
67+
# Connect to the signalling framework.
68+
post_save.connect(self.__post_save_receiver, model)
69+
pre_delete.connect(self.__pre_delete_receiver, model)
70+
logger.info('REGISTER %s', model)
6571

6672
def unregister(self, model):
6773
'''
@@ -75,10 +81,12 @@ def unregister(self, model):
7581
'{} is not registered with Algolia engine'.format(model))
7682
# Perform the unregistration.
7783
del self.__registered_models[model]
78-
# Disconnect fron the signalling framework.
79-
post_save.disconnect(self.__post_save_receiver, model)
80-
pre_delete.disconnect(self.__pre_delete_receiver, model)
81-
logger.info('UNREGISTER %s', model)
84+
85+
if self.auto_indexing:
86+
# Disconnect fron the signalling framework.
87+
post_save.disconnect(self.__post_save_receiver, model)
88+
pre_delete.disconnect(self.__pre_delete_receiver, model)
89+
logger.info('UNREGISTER %s', model)
8290

8391
def get_registered_models(self):
8492
'''Returns a sequence of models that have been registered with Algolia engine.'''
@@ -104,6 +112,7 @@ def delete_obj_index(self, obj):
104112
adapter.delete_obj_index(obj)
105113

106114
def raw_search(self, model, query='', params={}):
115+
'''Return the raw JSON.'''
107116
adapter = self.get_adapter(model)
108117
return adapater.raw_search(query, params)
109118

0 commit comments

Comments
 (0)