From 42b1b06c1d91f21f9a5800e04d255f9c514a312c Mon Sep 17 00:00:00 2001 From: Alastair Porter Date: Thu, 30 Jan 2025 20:29:34 +0100 Subject: [PATCH] Remove unnecessary user field from geotag --- accounts/tests/test_views.py | 2 +- apiv2/views.py | 3 +-- geotags/migrations/0006_remove_geotag_user.py | 17 +++++++++++++++++ geotags/models.py | 9 ++++----- geotags/tests.py | 4 ++-- sounds/views.py | 2 +- utils/sound_upload.py | 18 ++++++++---------- 7 files changed, 34 insertions(+), 21 deletions(-) create mode 100644 geotags/migrations/0006_remove_geotag_user.py diff --git a/accounts/tests/test_views.py b/accounts/tests/test_views.py index 612d0884a..14ad9b780 100644 --- a/accounts/tests/test_views.py +++ b/accounts/tests/test_views.py @@ -46,7 +46,7 @@ def setUp(self): self.sound.moderation_state = "OK" self.sound.processing_state = "OK" self.sound.similarity_state = "OK" - self.sound.geotag = GeoTag.objects.create(user=user, lat=45.8498, lon=-62.6879, zoom=9) + self.sound.geotag = GeoTag.objects.create(lat=45.8498, lon=-62.6879, zoom=9) self.sound.save() SoundOfTheDay.objects.create(sound=self.sound, date_display=datetime.date.today()) self.download = Download.objects.create(user=self.user, sound=self.sound, license=self.sound.license, diff --git a/apiv2/views.py b/apiv2/views.py index a682061d0..eaeb39b68 100755 --- a/apiv2/views.py +++ b/apiv2/views.py @@ -943,11 +943,10 @@ def post(self, request, *args, **kwargs): if 'geotag' in serializer.data: if serializer.data['geotag']: lat, lon, zoom = serializer.data['geotag'].split(',') - geotag = GeoTag(user=self.user, + geotag = GeoTag.objects.create( lat=float(lat), lon=float(lon), zoom=int(zoom)) - geotag.save() sound.geotag = geotag if 'pack' in serializer.data: if serializer.data['pack']: diff --git a/geotags/migrations/0006_remove_geotag_user.py b/geotags/migrations/0006_remove_geotag_user.py new file mode 100644 index 000000000..d26350fe3 --- /dev/null +++ b/geotags/migrations/0006_remove_geotag_user.py @@ -0,0 +1,17 @@ +# Generated by Django 3.2.23 on 2025-01-30 20:10 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('geotags', '0005_alter_geotag_information'), + ] + + operations = [ + migrations.RemoveField( + model_name='geotag', + name='user', + ), + ] diff --git a/geotags/models.py b/geotags/models.py index a81272bd8..534c2cb01 100644 --- a/geotags/models.py +++ b/geotags/models.py @@ -30,7 +30,6 @@ class GeoTag(models.Model): - user = models.ForeignKey(User, on_delete=models.CASCADE) lat = models.FloatField(db_index=True) lon = models.FloatField(db_index=True) zoom = models.IntegerField() @@ -40,14 +39,14 @@ class GeoTag(models.Model): created = models.DateTimeField(db_index=True, auto_now_add=True) def __str__(self): - return f"{self.user} ({self.lat:f},{self.lon:f})" + return f"({self.lat:f},{self.lon:f})" def get_absolute_url(self): return reverse('geotag', args=[smart_str(self.id)]) def retrieve_location_information(self): """Use the mapbox API to retrieve information about the latitude and longitude of this geotag. - If no iformation has been retrieved from mapbox and a mapbox access token is available, retrieve and + If no information has been retrieved from mapbox and a mapbox access token is available, retrieve and store that information. Then, pre-process that information to save a place name for display purposes. """ if settings.MAPBOX_ACCESS_TOKEN and (self.information is None or self.should_update_information): @@ -67,11 +66,11 @@ def retrieve_location_information(self): # Try with "place" feature self.location_name = [feature for feature in features if 'place' in feature['place_type']][0]['place_name'] except IndexError: - # If "place" feature is not avialable, use "locality" feature + # If "place" feature is not available, use "locality" feature try: self.location_name = [feature for feature in features if 'locality' in feature['place_type']][0]['place_name'] except IndexError: - # If "place" nor "locality" features are avialable, use "region" + # If "place" nor "locality" features are available, use "region" try: self.location_name = [feature for feature in features if 'region' in feature['place_type']][0]['place_name'] except: diff --git a/geotags/tests.py b/geotags/tests.py index c3eaa009b..5bcf1bf75 100644 --- a/geotags/tests.py +++ b/geotags/tests.py @@ -67,7 +67,7 @@ def test_browse_geotags_for_user_deleted_user(self): def test_geotags_infowindow(self): sound = Sound.objects.first() - gt = GeoTag.objects.create(user=sound.user, lat=45.8498, lon=-62.6879, zoom=9) + gt = GeoTag.objects.create(lat=45.8498, lon=-62.6879, zoom=9) sound.geotag = gt sound.save() resp = self.client.get(reverse('geotags-infowindow', kwargs={'sound_id': sound.id})) @@ -82,7 +82,7 @@ def test_browse_geotags_case_insensitive(self): sounds[1].set_tags([tag]) sounds[0].set_tags([tag.upper()]) - gt = GeoTag.objects.create(user=user, lat=45.8498, lon=-62.6879, zoom=9) + gt = GeoTag.objects.create(lat=45.8498, lon=-62.6879, zoom=9) for sound in sounds: sound.geotag = gt sound.save() diff --git a/sounds/views.py b/sounds/views.py index cf5125486..6b656bb10 100644 --- a/sounds/views.py +++ b/sounds/views.py @@ -528,7 +528,7 @@ def update_edited_sound(sound, data): sound.geotag.save() else: sound.geotag = GeoTag.objects.create( - lat=data["lat"], lon=data["lon"], zoom=data["zoom"], user=request.user) + lat=data["lat"], lon=data["lon"], zoom=data["zoom"]) sound_sources = data["sources"] if sound_sources != sound.get_sound_sources_as_set(): diff --git a/utils/sound_upload.py b/utils/sound_upload.py index 63e4b080e..1d3455fd1 100644 --- a/utils/sound_upload.py +++ b/utils/sound_upload.py @@ -226,11 +226,10 @@ def create_sound(user, # Create geotag from lat,lon,zoom text format if sound_fields['geotag']: lat, lon, zoom = sound_fields['geotag'].split(',') - geotag = GeoTag(user=user, - lat=float(lat), - lon=float(lon), - zoom=int(zoom)) - geotag.save() + geotag = GeoTag.objects.create( + lat=float(lat), + lon=float(lon), + zoom=int(zoom)) sound.geotag = geotag else: # Create geotag from lat, lon, zoom separated fields (if available) @@ -238,11 +237,10 @@ def create_sound(user, lon = sound_fields.get('lon', None) zoom = sound_fields.get('zoom', None) if lat is not None and lon is not None and zoom is not None: - geotag = GeoTag(user=user, - lat=float(lat), - lon=float(lon), - zoom=int(zoom)) - geotag.save() + geotag = GeoTag.objects.create( + lat=float(lat), + lon=float(lon), + zoom=int(zoom)) sound.geotag = geotag # 6 set description, tags