@@ -130,6 +130,7 @@ def init_preparation(self, q_filters=None, kwargs_filters=None, **kwargs):
130
130
131
131
debit_results , credit_results = self .prepare (q_filters , kwargs_filters , ** kwargs )
132
132
self ._cache = debit_results , credit_results , dep_values
133
+ return self ._cache
133
134
134
135
def prepare (self , q_filters = None , kwargs_filters = None , ** kwargs ):
135
136
"""
@@ -188,7 +189,8 @@ def _prepare_dependencies(self, q_filters=None, extra_filters=None, ):
188
189
for dep_class in self ._require_classes :
189
190
dep = dep_class (self .plus_side_q , self .minus_side_q , self .report_model ,
190
191
date_field = self .date_field , group_by = self .group_by )
191
- values [dep .name ] = {'results' : dep .init_preparation (q_filters , extra_filters ),
192
+ results = dep .init_preparation (q_filters , extra_filters )
193
+ values [dep .name ] = {'results' : results ,
192
194
'instance' : dep }
193
195
return values
194
196
@@ -216,17 +218,19 @@ def get_dependency_value(self, current_obj, name=None):
216
218
:return: a dict containing dependencies names as keys and their calculation as values
217
219
or a specific value if name is specified.
218
220
"""
219
- values = self ._resolve_dependencies (current_obj )
221
+ values = self ._resolve_dependencies (current_obj , name = None )
220
222
if name :
221
223
return values .get (name )
222
224
return values
223
225
224
- def _resolve_dependencies (self , current_obj ):
226
+ def _resolve_dependencies (self , current_obj , name = None ):
225
227
226
228
dep_results = {}
227
229
cached_debit , cached_credit , dependencies_value = self ._cache
228
230
dependencies_value = dependencies_value or {}
229
231
for d in dependencies_value .keys ():
232
+ if name and d != name :
233
+ continue
230
234
d_instance = dependencies_value [d ]['instance' ]
231
235
dep_results [d ] = d_instance .resolve (current_obj )
232
236
return dep_results
@@ -382,7 +386,7 @@ class PercentageToBalance(SlickReportField):
382
386
def final_calculation (self , debit , credit , dep_dict ):
383
387
obj_balance = dep_dict .get ('__balance__' )
384
388
total = debit - credit
385
- return (obj_balance / total ) * 100
389
+ return (obj_balance / total ) * 100
386
390
387
391
388
392
class CreditReportField (SlickReportField ):
0 commit comments