@@ -219,7 +219,9 @@ def editquest(request, pk=None):
219219
220220
221221def get_package_helper (quest_qs , request ):
222- return [(ele .is_unlocked_for (request .user ), ele .is_beaten (request .user ), ele .is_within_cooldown_period (request .user ), ele ) for ele in quest_qs ]
222+ #return [(ele.is_unlocked_for(request.user), ele.is_beaten(request.user), ele.is_within_cooldown_period(request.user), ele) for ele in quest_qs]
223+ success = request .user .profile .quest_attempts .filter (success = True ).values_list ('quest' , flat = True ) if request .user .is_authenticated else []
224+ return [(True , ele .pk in success , False , ele ) for ele in quest_qs ]
223225
224226
225227def index (request ):
@@ -319,27 +321,27 @@ def index(request):
319321 point_value = sum (point_history .values_list ('value' , flat = True ))
320322 print (f" phase4 at { round (time .time (),2 )} " )
321323
322- quests_attempts_per_day = (abs (round (QuestAttempt .objects .count () /
323- (QuestAttempt .objects .first ().created_on - timezone .now ()).days , 1 ))
324- if QuestAttempt .objects .count () else 0 )
324+ quests_attempts_per_day = (abs (round (QuestAttempt .objects .cache (). count () /
325+ (QuestAttempt .objects .cache (). first ().created_on - timezone .now ()).days , 1 ))
326+ if QuestAttempt .objects .cache (). count () else 0 )
325327 success_ratio = int (success_count / attempt_count * 100 ) if attempt_count else 0
326328 # community_created
327329 params = {
328330 'profile' : request .user .profile if request .user .is_authenticated else None ,
329331 'quests' : quests ,
330332 'avg_play_count' : round (QuestAttempt .objects .count ()/ (Quest .objects .count () or 1 ), 1 ),
331333 'quests_attempts_total' : QuestAttempt .objects .count (),
332- 'quests_total' : Quest .objects .filter (visible = True ).count (),
334+ 'quests_total' : Quest .objects .cache (). filter (visible = True ).count (),
333335 'quests_attempts_per_day' : quests_attempts_per_day ,
334- 'total_visible_quest_count' : Quest .objects .filter (visible = True ).count (),
335- 'gitcoin_created' : Quest .objects .filter (visible = True ).filter (creator = Profile .objects .filter (handle = 'gitcoinbot' ).first ()).count (),
336- 'community_created' : Quest .objects .filter (visible = True ).exclude (creator = Profile .objects .filter (handle = 'gitcoinbot' ).first ()).count (),
336+ 'total_visible_quest_count' : Quest .objects .cache (). filter (visible = True ).count (),
337+ 'gitcoin_created' : Quest .objects .cache (). filter (visible = True ).filter (creator = Profile .objects .filter (handle = 'gitcoinbot' ).first ()).count (),
338+ 'community_created' : Quest .objects .cache (). filter (visible = True ).exclude (creator = Profile .objects .filter (handle = 'gitcoinbot' ).first ()).count (),
337339 'country_count' : 87 ,
338- 'email_count' : EmailSubscriber .objects .count (),
340+ 'email_count' : EmailSubscriber .objects .cache (). count (),
339341 'attempt_count' : attempt_count ,
340342 'success_count' : success_count ,
341343 'success_ratio' : success_ratio ,
342- 'user_count' : QuestAttempt .objects .distinct ('profile' ).count (),
344+ 'user_count' : QuestAttempt .objects .cache (). distinct ('profile' ).count (),
343345 'leaderboard' : leaderboard ,
344346 'REFER_LINK' : f'https://gitcoin.co/quests/?cb=ref:{ request .user .profile .ref_code } ' if request .user .is_authenticated else None ,
345347 'rewards_schedule' : rewards_schedule ,
0 commit comments