1- from tigaserver_app .models import Report , TigaUser , TigaProfile , Award
1+ from tigaserver_app .models import Report , TigaUser , Award
22from tigaserver_project import settings as conf
33import pandas as pd
44import datetime
@@ -324,106 +324,17 @@ def get_unrelated_awards_score( user_uuid, user_uuids ):
324324# return str(diff.days) + _(" days ago")
325325
326326
327- def compute_user_score_in_xp_v2_fast (user_uuid ):
327+ def compute_user_score_in_xp_v2 (user_uuid ):
328328
329329 user = TigaUser .objects .get (pk = user_uuid )
330330 user_uuids = None
331331 if user .profile is not None :
332332 user_uuids = TigaUser .objects .filter (profile = user .profile ).values ('user_UUID' )
333333
334- result = {}
335- result ['total_score' ] = 0
336- result ['user_uuid' ] = user_uuid
337- result ['score_detail' ] = {}
338-
339- if user_uuids is None :
340- user_reports = Report .objects .filter (user__user_UUID = user_uuid ).order_by ('-creation_time' )
341- else :
342- user_reports = Report .objects .filter (user__user_UUID__in = user_uuids ).order_by ('-creation_time' )
343-
344- adults = user_reports .filter (type = 'adult' )
345- #bites = user_reports.filter(type='bite')
346- sites = user_reports .filter (type = 'site' )
347-
348- adult_last_versions = adults .non_deleted ().all ()
349- #bite_last_versions = bites.non_deleted().all()
350- site_last_versions = sites .non_deleted ().all ()
351-
352- results_adult = {}
353- results_adult ['score' ] = 0
354- results_adult ['score_items' ] = []
355- result ['score_detail' ]['adult' ] = results_adult
356-
357- adult_score = 0
358- for report in adult_last_versions :
359- result = get_adult_report_score (report , result )
360- index = len (result ['score_detail' ]['adult' ]['score_items' ]) - 1
361- result ['score_detail' ]['adult' ]['score' ] += result ['score_detail' ]['adult' ]['score_items' ][index ][
362- 'report_score' ]
363- adult_score += result ['score_detail' ]['adult' ]['score_items' ][index ]['report_score' ]
364- result ['total_score' ] += adult_score
365-
366- '''
367- results_bite = {}
368- results_bite['score'] = 0
369- results_bite['score_items'] = []
370- result['score_detail']['bite'] = results_bite
371-
372- bite_score = 0
373- for report in bite_last_versions:
374- result = get_bite_report_score(report, result)
375- index = len(result['score_detail']['bite']['score_items']) - 1
376- result['score_detail']['bite']['score'] += result['score_detail']['bite']['score_items'][index]['report_score']
377- bite_score += result['score_detail']['bite']['score_items'][index]['report_score']
378- result['total_score'] += bite_score
379- '''
380-
381- results_site = {}
382- results_site ['score' ] = 0
383- results_site ['score_items' ] = []
384- result ['score_detail' ]['site' ] = results_site
385-
386- site_score = 0
387- for report in site_last_versions :
388- result = get_site_report_score (report , result )
389- index = len (result ['score_detail' ]['site' ]['score_items' ]) - 1
390- result ['score_detail' ]['site' ]['score' ] += result ['score_detail' ]['site' ]['score_items' ][index ]['report_score' ]
391- site_score += result ['score_detail' ]['site' ]['score_items' ][index ]['report_score' ]
392- result ['total_score' ] += site_score
393-
394- unrelated_score = get_unrelated_awards_score (user_uuid , user_uuids )
395-
396- result ['total_score' ] += unrelated_score ['score' ]
397-
398- return result
399-
400-
401- def get_uuid_replicas ():
402- profiles = TigaProfile .objects .all ()
403- exclude = []
404- for p in profiles :
405- if p .profile_devices .count () > 1 :
406- i = 0
407- for d in p .profile_devices .all ().order_by ('user_UUID' ):
408- if i > 0 :
409- exclude .append (d .user_UUID )
410- i += 1
411- return exclude
412-
413-
414- def compute_user_score_in_xp_v2 (user_uuid , update = False ):
415-
416- user = TigaUser .objects .get (pk = user_uuid )
417- user_uuids = None
418- if user .profile is not None :
419- user_uuids = TigaUser .objects .filter (profile = user .profile ).values ('user_UUID' )
420-
421- uuid_replicas = get_uuid_replicas ()
422-
423- qs_overall = TigaUser .objects .exclude (score_v2 = 0 ).exclude (user_UUID__in = uuid_replicas )
424- qs_adult = TigaUser .objects .exclude (score_v2_adult = 0 ).exclude (user_UUID__in = uuid_replicas )
425- qs_site = TigaUser .objects .exclude (score_v2_site = 0 ).exclude (user_UUID__in = uuid_replicas )
426- #qs_bite = TigaUser.objects.exclude(score_v2_bite=0).exclude(user_UUID__in=uuid_replicas)
334+ qs_overall = TigaUser .objects .exclude (score_v2 = 0 )
335+ qs_adult = TigaUser .objects .exclude (score_v2_adult = 0 )
336+ qs_site = TigaUser .objects .exclude (score_v2_site = 0 )
337+ #qs_bite = TigaUser.objects.exclude(score_v2_bite=0)
427338
428339 overall_df = pd .DataFrame (list (qs_overall .values_list ('score_v2' , 'user_UUID' )), columns = ['score_v2' , 'user_UUID' ])
429340 adult_df = pd .DataFrame (list (qs_adult .values_list ('score_v2_adult' , 'user_UUID' )), columns = ['score_v2_adult' , 'user_UUID' ])
@@ -587,18 +498,6 @@ def compute_user_score_in_xp_v2(user_uuid, update=False):
587498 result ['score_detail' ]['site' ]['top_perc' ] = (float (site_number_below_rank ) / float (site_number_total )) * 100.0
588499 result ['score_detail' ]['site' ]['ranked_users' ] = site_number_total
589500
590- if update :
591- if user_uuids is not None :
592- all_users_in_profile = TigaUser .objects .filter (user_UUID__in = user_uuids )
593- all_users_in_profile .update (score_v2 = result ['total_score' ])
594- all_users_in_profile .update (score_v2_adult = result ['score_detail' ]['adult' ]['score' ])
595- all_users_in_profile .update (score_v2_site = result ['score_detail' ]['site' ]['score' ])
596- else :
597- user .score_v2 = result ['total_score' ]
598- user .score_v2_adult = result ['score_detail' ]['adult' ]['score' ]
599- user .score_v2_site = result ['score_detail' ]['site' ]['score' ]
600- user .save ()
601-
602501 '''
603502 if bite_number_below_rank == 0 and bite_number_total == 0:
604503 result['score_detail']['bite']['top_perc'] = 100.0
@@ -616,8 +515,7 @@ def get_ranking_data( date_ini=None, date_end=datetime.datetime.today() ):
616515 if date_ini is not None :
617516 qs_reports = qs_reports .filter ( creation_time__gte = date_ini )
618517
619- uuid_replicas = get_uuid_replicas ()
620- qs_overall = TigaUser .objects .exclude (score_v2 = 0 ).exclude (user_UUID__in = uuid_replicas )
518+ qs_overall = TigaUser .objects .exclude (score_v2 = 0 )
621519
622520 overall_df = pd .DataFrame (list (qs_overall .values_list ('score_v2' , 'user_UUID' )), columns = ['score_v2' , 'user_UUID' ])
623521 overall_sorted_df = overall_df .sort_values ('score_v2' , inplace = False )
@@ -642,14 +540,6 @@ def get_ranking_data( date_ini=None, date_end=datetime.datetime.today() ):
642540 return retval
643541
644542
645- def compute_all_user_scores ():
646- all_users = TigaUser .objects .all ()
647- for user in all_users :
648- score = compute_user_score_in_xp_v2 ( user .user_UUID )
649- user .score_v2 = score
650- user .save ()
651-
652-
653543def get_all_user_reports (user_uuid ):
654544 user = TigaUser .objects .get (pk = user_uuid )
655545 user_uuids = None
0 commit comments