diff --git a/vespadb/observations/models.py b/vespadb/observations/models.py index ba97446..898a28e 100644 --- a/vespadb/observations/models.py +++ b/vespadb/observations/models.py @@ -395,6 +395,9 @@ def save(self, *args: Any, **kwargs: Any) -> None: logger.info(f"Save method for observation {self.id if self.id else 'new'}: Setting municipality={self.municipality}, province={self.province}, anb={self.anb}") super().save(*args, **kwargs) + + class Meta: + ordering = ['id'] class Export(models.Model): """Model for tracking observation exports.""" diff --git a/vespadb/observations/views.py b/vespadb/observations/views.py index cd6b595..7216506 100644 --- a/vespadb/observations/views.py +++ b/vespadb/observations/views.py @@ -154,6 +154,8 @@ def get_queryset(self) -> QuerySet: Unauthenticated users see only unreserved observations. """ base_queryset = super().get_queryset() + if not self.request.query_params.get("ordering"): + base_queryset = base_queryset.order_by("id") order_params = self.request.query_params.get("ordering", "") if "municipality_name" in order_params: @@ -404,7 +406,7 @@ def geojson(self, request: Request) -> HttpResponse: if bbox: queryset = queryset.filter(location__within=bbox) - queryset = queryset.annotate(point=Transform("location", 4326)) + queryset = queryset.order_by("id").annotate(point=Transform("location", 4326)) features = [ {