|
1 | | -from tigaserver_app.models import Report, TigaUser, TigaProfile, Award |
| 1 | +from tigaserver_app.models import Report, TigaUser, Award |
2 | 2 | from tigaserver_project import settings as conf |
3 | 3 | import pandas as pd |
4 | 4 | import datetime |
@@ -324,106 +324,17 @@ def get_unrelated_awards_score( user_uuid, user_uuids ): |
324 | 324 | # return str(diff.days) + _(" days ago") |
325 | 325 |
|
326 | 326 |
|
327 | | -def compute_user_score_in_xp_v2_fast(user_uuid): |
| 327 | +def compute_user_score_in_xp_v2(user_uuid): |
328 | 328 |
|
329 | 329 | user = TigaUser.objects.get(pk=user_uuid) |
330 | 330 | user_uuids = None |
331 | 331 | if user.profile is not None: |
332 | 332 | user_uuids = TigaUser.objects.filter(profile=user.profile).values('user_UUID') |
333 | 333 |
|
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) |
427 | 338 |
|
428 | 339 | overall_df = pd.DataFrame(list(qs_overall.values_list('score_v2', 'user_UUID')), columns=['score_v2', 'user_UUID']) |
429 | 340 | 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): |
587 | 498 | result['score_detail']['site']['top_perc'] = (float(site_number_below_rank) / float(site_number_total)) * 100.0 |
588 | 499 | result['score_detail']['site']['ranked_users'] = site_number_total |
589 | 500 |
|
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 | | - |
602 | 501 | ''' |
603 | 502 | if bite_number_below_rank == 0 and bite_number_total == 0: |
604 | 503 | result['score_detail']['bite']['top_perc'] = 100.0 |
|
0 commit comments