Skip to content

Commit 43342e1

Browse files
committed
Remove more dead code
1 parent 979489d commit 43342e1

File tree

9 files changed

+116
-1713
lines changed

9 files changed

+116
-1713
lines changed

tigaserver_app/management/commands/update_coverage_month_model.py

Lines changed: 86 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,107 @@
1-
from django.core.management.base import BaseCommand, CommandError
1+
from django.core.management.base import BaseCommand
22
from tigaserver_app.models import CoverageAreaMonth, Fix, Report
3-
from tigaserver_app.views import get_latest_reports_qs, lat_function, lat_function_m0, lat_function_y0
43
import pytz
54
from datetime import datetime
65
from django.conf import settings
76
from django.db.models import Q
87

98

9+
def lon_function(this_lon, these_lons, this_lat, fix_list, latest_fix_id, report_list, latest_report_server_upload_time):
10+
n_fixes = len([l for l in these_lons if l == this_lon])
11+
if CoverageAreaMonth.objects.filter(lat=this_lat[0], lon=this_lon[0], year=this_lat[1],month=this_lat[2]).count() > 0:
12+
this_coverage_area = CoverageAreaMonth.objects.get(lat=this_lat[0], lon=this_lon[0], year=this_lat[1],month=this_lat[2])
13+
this_coverage_area.n_fixes += n_fixes
14+
else:
15+
this_coverage_area = CoverageAreaMonth(lat=this_lat[0], lon=this_lon[0], year=this_lat[1],month=this_lat[2], n_fixes=n_fixes)
16+
if fix_list and fix_list.count() > 0:
17+
this_coverage_area.latest_fix_id = fix_list.order_by('id').last().id
18+
else:
19+
this_coverage_area.latest_fix_id = latest_fix_id
20+
if report_list and report_list.count() > 0:
21+
this_coverage_area.latest_report_server_upload_time = report_list.order_by('server_upload_time').last().server_upload_time
22+
else:
23+
this_coverage_area.latest_report_server_upload_time = latest_report_server_upload_time
24+
this_coverage_area.save()
25+
26+
27+
def lon_function_m0(this_lon, these_lons_m0, this_lat, fix_list, latest_fix_id, report_list, latest_report_server_upload_time):
28+
n_fixes = len([l for l in these_lons_m0 if l == this_lon])
29+
if CoverageAreaMonth.objects.filter(lat=this_lat[0], lon=this_lon[0], year=this_lat[1], month=0).count() > 0:
30+
this_coverage_area = CoverageAreaMonth.objects.get(lat=this_lat[0], lon=this_lon[0], year=this_lat[1], month=0)
31+
this_coverage_area.n_fixes += n_fixes
32+
else:
33+
this_coverage_area = CoverageAreaMonth(lat=this_lat[0], lon=this_lon[0], year=this_lat[1], month=0, n_fixes=n_fixes)
34+
if fix_list and fix_list.count() > 0:
35+
this_coverage_area.latest_fix_id = fix_list.order_by('id').last().id
36+
else:
37+
this_coverage_area.latest_fix_id = latest_fix_id
38+
if report_list and report_list.count() > 0:
39+
this_coverage_area.latest_report_server_upload_time = report_list.order_by('server_upload_time').last().server_upload_time
40+
else:
41+
this_coverage_area.latest_report_server_upload_time = latest_report_server_upload_time
42+
this_coverage_area.save()
43+
44+
45+
def lon_function_y0(this_lon, these_lons_y0, this_lat, fix_list, latest_fix_id, report_list, latest_report_server_upload_time):
46+
n_fixes = len([l for l in these_lons_y0 if l == this_lon])
47+
if CoverageAreaMonth.objects.filter(lat=this_lat[0], lon=this_lon[0], month=this_lat[1], year=0).count() > 0:
48+
this_coverage_area = CoverageAreaMonth.objects.get(lat=this_lat[0], lon=this_lon[0], month=this_lat[1], year=0)
49+
this_coverage_area.n_fixes += n_fixes
50+
else:
51+
this_coverage_area = CoverageAreaMonth(lat=this_lat[0], lon=this_lon[0], month=this_lat[1], year=0, n_fixes=n_fixes)
52+
if fix_list and fix_list.count() > 0:
53+
this_coverage_area.latest_fix_id = fix_list.order_by('id').last().id
54+
else:
55+
this_coverage_area.latest_fix_id = latest_fix_id
56+
if report_list and report_list.count() > 0:
57+
this_coverage_area.latest_report_server_upload_time = report_list.order_by('server_upload_time').last().server_upload_time
58+
else:
59+
this_coverage_area.latest_report_server_upload_time = latest_report_server_upload_time
60+
this_coverage_area.save()
61+
62+
63+
def lat_function(this_lat, fix_list, latest_fix_id, report_list, latest_report_server_upload_time):
64+
these_lons = [(f.masked_lon, f.fix_time.year, f.fix_time.month) for f in fix_list if (f.masked_lat == this_lat[0] and f.fix_time.year == this_lat[1] and f.fix_time.month == this_lat[2])] + [(r.masked_lon, r.creation_time.year, r.creation_time.month) for r in report_list if (r.masked_lat is not None and r.masked_lat == this_lat and r.creation_time.year == this_lat[1] and r.creation_time.month == this_lat[2])]
65+
unique_lons = set(these_lons)
66+
[lon_function(this_lon, these_lons, this_lat, fix_list, latest_fix_id, report_list, latest_report_server_upload_time) for this_lon in unique_lons]
67+
68+
69+
def lat_function_m0(this_lat, fix_list, latest_fix_id, report_list, latest_report_server_upload_time):
70+
these_lons_m0 = [(f.masked_lon, f.fix_time.year) for f in fix_list if (f.masked_lat == this_lat[0] and f.fix_time.year == this_lat[1])] + [(r.masked_lon, r.creation_time.year) for r in report_list if (r.masked_lat is not None and r.masked_lat == this_lat and r.creation_time.year == this_lat[1])]
71+
unique_lons_m0 = set(these_lons_m0)
72+
[lon_function_m0(this_lon, these_lons_m0, this_lat, fix_list, latest_fix_id, report_list, latest_report_server_upload_time) for this_lon in unique_lons_m0]
73+
74+
75+
def lat_function_y0(this_lat, fix_list, latest_fix_id, report_list, latest_report_server_upload_time):
76+
these_lons_y0 = [(f.masked_lon, f.fix_time.month) for f in fix_list if (f.masked_lat == this_lat[0] and f.fix_time.month == this_lat[1])] + [(r.masked_lon, r.creation_time.month) for r in report_list if (r.masked_lat is not None and r.masked_lat == this_lat and r.creation_time.month == this_lat[1])]
77+
unique_lons_y0 = set(these_lons_y0)
78+
[lon_function_y0(this_lon, these_lons_y0, this_lat, fix_list, latest_fix_id, report_list, latest_report_server_upload_time) for this_lon in unique_lons_y0]
79+
80+
1081
class Command(BaseCommand):
1182
args = ''
1283
help = 'Updates coverage month model data based on background location and report location data'
1384

1485
def handle(self, *args, **options):
1586
updated = False
16-
if CoverageAreaMonth.objects.all().count() > 0:
17-
latest_report_server_upload_time = CoverageAreaMonth.objects.order_by('latest_report_server_upload_time').last().latest_report_server_upload_time
87+
88+
last_coverage = CoverageAreaMonth.objects.all().order_by('latest_report_server_upload_time').last()
89+
if last_coverage:
90+
latest_report_server_upload_time = last_coverage.latest_report_server_upload_time
1891
latest_fix_id = CoverageAreaMonth.objects.order_by('latest_fix_id').last().latest_fix_id
1992
else:
2093
latest_report_server_upload_time = pytz.utc.localize(datetime(1970, 1, 1))
2194
latest_fix_id = 0
22-
if CoverageAreaMonth.objects.all().count() == 0 or latest_report_server_upload_time < Report.objects.order_by('server_upload_time').last().server_upload_time or latest_fix_id < Fix.objects.order_by('id').last().id:
23-
report_list = get_latest_reports_qs(Report.objects.exclude(hide=True).filter(Q(package_name='Tigatrapp', creation_time__gte=settings.IOS_START_TIME) | Q(package_name='ceab.movelab.tigatrapp', package_version__gt=3)).filter(server_upload_time__gt=latest_report_server_upload_time))
95+
96+
last_report = Report.objects.order_by('server_upload_time').last()
97+
last_fix = Fix.objects.order_by('id').last()
98+
if not last_coverage or latest_report_server_upload_time < last_report.server_upload_time or latest_fix_id < last_fix.id:
99+
report_list = Report.objects.exclude(hide=True).filter(
100+
Q(package_name='Tigatrapp', creation_time__gte=settings.IOS_START_TIME)
101+
| Q(package_name='ceab.movelab.tigatrapp', package_version__gt=3)
102+
).filter(server_upload_time__gt=latest_report_server_upload_time)
24103
fix_list = Fix.objects.filter(fix_time__gt=settings.START_TIME, id__gt=latest_fix_id)
104+
25105
full_lat_list = [(f.masked_lat, f.fix_time.year, f.fix_time.month) for f in fix_list] + [(r.masked_lat, r.creation_time.year, r.creation_time.month) for r in report_list if r.masked_lat is not None]
26106
full_lat_list_m0 = [(f.masked_lat, f.fix_time.year) for f in fix_list] + [(r.masked_lat, r.creation_time.year) for r in report_list if r.masked_lat is not None]
27107
full_lat_list_y0 = [(f.masked_lat, f.fix_time.month) for f in fix_list] + [(r.masked_lat, r.creation_time.month) for r in report_list if r.masked_lat is not None]

tigaserver_app/migrations/0088_auto_20251125_1328.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,10 @@ class Migration(migrations.Migration):
3131
migrations.DeleteModel(
3232
name='MissionTrigger',
3333
),
34+
migrations.DeleteModel(
35+
name='Configuration',
36+
),
37+
migrations.DeleteModel(
38+
name='CoverageArea',
39+
),
3440
]

tigaserver_app/models.py

Lines changed: 1 addition & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from django.contrib.gis.measure import Distance as DistanceMeasure
2727
from django.core.validators import RegexValidator
2828
from django.db import transaction
29-
from django.db.models import Count, Q
29+
from django.db.models import Q
3030
from django.db.models.signals import post_save
3131
from django.dispatch import receiver
3232
from django.forms.models import model_to_dict
@@ -1122,10 +1122,6 @@ def country_label(self) -> str:
11221122
else:
11231123
return "Unassigned"
11241124

1125-
@property
1126-
def formatted_date(self) -> str:
1127-
return self.version_time.strftime("%d-%m-%Y %H:%M")
1128-
11291125
@property
11301126
def deleted(self) -> bool:
11311127
return self.deleted_at is not None
@@ -1247,16 +1243,6 @@ def response_html(self) -> str:
12471243
)
12481244
return result
12491245

1250-
@property
1251-
def response_string(self) -> str:
1252-
these_responses = self.responses.all().order_by("question")
1253-
result = ""
1254-
for this_response in these_responses:
1255-
result = (
1256-
result + "{" + this_response.question + " " + this_response.answer + "}"
1257-
)
1258-
return result
1259-
12601246
@property
12611247
def tigaprob(self) -> float:
12621248
response_score = 0
@@ -1353,17 +1339,6 @@ def movelab_annotation(self) -> Optional[dict]:
13531339
result = {"edited_user_notes": self.get_final_public_note()}
13541340
if self.get_final_photo_html():
13551341
result["photo_html"] = self.get_final_photo_html().popup_image()
1356-
if hasattr(self.get_final_photo_html(), "crowdcraftingtask"):
1357-
result[
1358-
"crowdcrafting_score_cat"
1359-
] = (
1360-
self.get_final_photo_html().crowdcraftingtask.tiger_validation_score_cat
1361-
)
1362-
result[
1363-
"crowdcrafting_n_response"
1364-
] = (
1365-
self.get_final_photo_html().crowdcraftingtask.crowdcrafting_n_responses
1366-
)
13671342
if self.type == self.TYPE_ADULT:
13681343
result["tiger_certainty_category"] = self.get_final_expert_score()
13691344
result[
@@ -1994,42 +1969,6 @@ def get_photo_html_for_report_validation_completed(self):
19941969
result += '<div id="' + str(photo.id) + '" style="border: ' + border_style + ';margin:1px;">' + photo.medium_image_for_validation_(show_prediction=True) + '</div><div>' + get_icon_for_blood_genre(photo.blood_genre) + '</div><br>'
19951970
return result
19961971

1997-
def get_crowdcrafting_score(self):
1998-
if self.type not in (self.TYPE_SITE, self.TYPE_ADULT):
1999-
return None
2000-
these_photos = self.photos.visible().annotate(n_responses=Count('crowdcraftingtask__responses')).filter(n_responses__gte=30)
2001-
if these_photos.count() == 0:
2002-
return None
2003-
if self.type == self.TYPE_SITE:
2004-
scores = map(lambda x: x.crowdcraftingtask.site_validation_score, these_photos.iterator())
2005-
else:
2006-
scores = map(lambda x: x.crowdcraftingtask.tiger_validation_score, these_photos.iterator())
2007-
if scores is None or len(scores) == 0:
2008-
return None
2009-
else:
2010-
return max(scores)
2011-
2012-
def get_is_crowd_validated(self):
2013-
if self.get_crowdcrafting_score():
2014-
return self.get_crowdcrafting_score() > settings.CROWD_VALIDATION_CUTOFF
2015-
else:
2016-
return False
2017-
2018-
def get_is_crowd_contravalidated(self):
2019-
if self.get_crowdcrafting_score():
2020-
return self.get_crowdcrafting_score() <= settings.CROWD_VALIDATION_CUTOFF
2021-
else:
2022-
return False
2023-
2024-
def get_validated_photo_html(self):
2025-
result = ''
2026-
if self.type not in (self.TYPE_SITE, self.TYPE_ADULT):
2027-
return result
2028-
these_photos = self.photos.visible().annotate(n_responses=Count('crowdcraftingtask__responses')).filter(n_responses__gte=30)
2029-
for photo in these_photos:
2030-
result += '<br>' + photo.small_image_() + '<br>'
2031-
return result
2032-
20331972
def get_mean_expert_adult_score_aegypti(self):
20341973
sum_scores = 0
20351974
mean_score = -3
@@ -2183,26 +2122,6 @@ def get_mean_expert_adult_classification_data(self):
21832122

21842123
return status
21852124

2186-
def get_score_for_category_or_complex(self, category):
2187-
superexpert_annotations = ExpertReportAnnotation.objects.filter(report=self, user__groups__name='superexpert',validation_complete=True, revise=True, category=category)
2188-
expert_annotations = ExpertReportAnnotation.objects.filter(report=self, user__groups__name='expert',validation_complete=True, category=category)
2189-
mean_score = -1
2190-
if superexpert_annotations.count() > 0:
2191-
cumulative_score = 0
2192-
for ano in superexpert_annotations:
2193-
cumulative_score += ano.validation_value
2194-
mean_score = cumulative_score/float(superexpert_annotations.count())
2195-
else:
2196-
cumulative_score = 0
2197-
for ano in expert_annotations:
2198-
cumulative_score += ano.validation_value
2199-
mean_score = cumulative_score / float(expert_annotations.count())
2200-
if mean_score > 1.5:
2201-
return 2
2202-
else:
2203-
return 1
2204-
#return mean_score
2205-
22062125
def get_html_color_for_label(self) -> str:
22072126
identification_task = getattr(self, "identification_task", None)
22082127

@@ -2538,16 +2457,6 @@ def get_who_has(self):
25382457

25392458
return ", ".join(result)
25402459

2541-
def get_expert_has_been_assigned_long_validation(self):
2542-
for ano in self.expert_report_annotations.all().select_related('user'):
2543-
if not ano.user.userstat.is_superexpert():
2544-
if ano.simplified_annotation == False:
2545-
return True
2546-
return False
2547-
2548-
def get_who_has_count(self):
2549-
return self.expert_report_annotations.all().count()
2550-
25512460
def get_expert_recipients(self):
25522461
result = []
25532462
for ano in self.expert_report_annotations.all().select_related('user'):
@@ -2840,15 +2749,6 @@ def __call__(self,instance,filename):
28402749

28412750
make_image_uuid = MakeImageUUID('tigapics')
28422751

2843-
'''
2844-
def make_image_uuid(path):
2845-
def wrapper(instance, filename):
2846-
extension = filename.split('.')[-1]
2847-
filename = "%s.%s" % (uuid.uuid4(), extension)
2848-
return os.path.join(path, filename)
2849-
return wrapper
2850-
'''
2851-
28522752
class Photo(models.Model):
28532753
"""
28542754
Photo uploaded by user.
@@ -3073,32 +2973,6 @@ class Meta:
30732973
verbose_name_plural = "fixes"
30742974

30752975

3076-
class Configuration(models.Model):
3077-
id = models.AutoField(primary_key=True, help_text='Auto-incremented primary key record ID.')
3078-
samples_per_day = models.IntegerField(help_text="Number of randomly-timed location samples to take per day.")
3079-
creation_time = models.DateTimeField(help_text='Date and time when this configuration was created by MoveLab. '
3080-
'Automatically generated when record is saved.',
3081-
auto_now_add=True)
3082-
3083-
def __unicode__(self):
3084-
return str(self.samples_per_day)
3085-
3086-
3087-
class CoverageArea(models.Model):
3088-
lat = models.FloatField()
3089-
lon = models.FloatField()
3090-
n_fixes = models.PositiveIntegerField()
3091-
last_modified = models.DateTimeField(auto_now=True)
3092-
latest_report_server_upload_time = models.DateTimeField()
3093-
latest_fix_id = models.PositiveIntegerField()
3094-
3095-
def __unicode__(self):
3096-
return str(self.id)
3097-
3098-
class Meta:
3099-
unique_together = ("lat", "lon")
3100-
3101-
31022976
class CoverageAreaMonth(models.Model):
31032977
lat = models.FloatField()
31042978
lon = models.FloatField()
@@ -3192,7 +3066,6 @@ class Notification(models.Model):
31923066
public = models.BooleanField(default=False, help_text='Whether the notification is shown in the public map or not')
31933067
# The field 'acknowledged' is kept for backwards compatibility with the map notifications. It only has meaningful content on MAP NOTIFICATIONS
31943068
acknowledged = models.BooleanField(default=False, help_text='This is set to True through the public API, when the user signals that the message has been received')
3195-
# map_notification = models.BooleanField(default=False, help_text='Flag field to help discriminate notifications which have been issued from the map')
31963069

31973070
objects = NotificationManager()
31983071

0 commit comments

Comments
 (0)