@@ -25,8 +25,9 @@ class RegistrationError(AlgoliaEngineError):
25
25
class AlgoliaEngine (object ):
26
26
def __init__ (self , app_id = None , api_key = None ):
27
27
'''Initializes Algolia engine.'''
28
+ params = getattr (settings , 'ALGOLIA' , None )
29
+
28
30
if not (app_id and api_key ):
29
- params = getattr (settings , 'ALGOLIA' , None )
30
31
if params :
31
32
app_id = params ['APPLICATION_ID' ]
32
33
api_key = params ['API_KEY' ]
@@ -35,6 +36,9 @@ def __init__(self, app_id=None, api_key=None):
35
36
app_id = settings .ALGOLIA_APPLICATION_ID
36
37
api_key = setting .ALGOLIA_API_KEY
37
38
39
+ if params :
40
+ self .auto_indexing = params .get ('AUTO_INDEXING' , True )
41
+
38
42
self .__registered_models = {}
39
43
self .client = algoliasearch .Client (app_id , api_key )
40
44
self .client .set_extra_header ('User-Agent' ,
@@ -58,10 +62,12 @@ def register(self, model, index_cls=AlgoliaIndex):
58
62
# Perform the registration.
59
63
index_obj = index_cls (model , self .client )
60
64
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 )
65
71
66
72
def unregister (self , model ):
67
73
'''
@@ -75,10 +81,12 @@ def unregister(self, model):
75
81
'{} is not registered with Algolia engine' .format (model ))
76
82
# Perform the unregistration.
77
83
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 )
82
90
83
91
def get_registered_models (self ):
84
92
'''Returns a sequence of models that have been registered with Algolia engine.'''
@@ -104,6 +112,7 @@ def delete_obj_index(self, obj):
104
112
adapter .delete_obj_index (obj )
105
113
106
114
def raw_search (self , model , query = '' , params = {}):
115
+ '''Return the raw JSON.'''
107
116
adapter = self .get_adapter (model )
108
117
return adapater .raw_search (query , params )
109
118
0 commit comments