positionsControl

This commit is contained in:
Laura Klünder 2024-12-29 18:54:46 +01:00
parent 1cbada095e
commit 25e8ed6464
4 changed files with 86 additions and 16 deletions

View file

@ -275,6 +275,18 @@ def location_by_slug_geometry(request, location_slug: NonEmptyStr):
)
@map_api_router.get('/positions/my/', summary="all moving position coordinates",
description="get current coordinates of all moving positions owned be the current users",
response={200: list[AnyPositionStatusSchema], **API404.dict(), **auth_responses})
@api_stats('get_positions')
def get_my_positions(request):
# no caching for obvious reasons!
return [
position.serialize_position(request=request)
for position in Position.objects.filter(owner=request.user)
]
@map_api_router.get('/positions/{position_id}/', summary="moving position coordinates",
description="get current coordinates of a moving position / dynamic location",
response={200: AnyPositionStatusSchema, **API404.dict(), **auth_responses})
@ -295,18 +307,6 @@ def get_position_by_id(request, position_id: AnyPositionID):
return location.serialize_position(request=request)
@map_api_router.get('/positions/my/', summary="all moving position coordinates",
description="get current coordinates of all moving positions owned be the current users",
response={200: list[AnyPositionStatusSchema], **API404.dict(), **auth_responses})
@api_stats('get_position')
def get_my_positions(request, position_id: AnyPositionID):
# no caching for obvious reasons!
return [
position.serialize_position(request=request)
for position in Position.objects.filter(owner=request.user)
]
class UpdatePositionSchema(BaseSchema):
coordinates_id: Union[
Annotated[CustomLocationID, APIField(title="set coordinates")],

View file

@ -635,9 +635,12 @@ class Position(CustomLocationProxyMixin, models.Model):
return {
'id': 'm:%s' % self.secret,
'slug': 'm:%s' % self.secret,
'effective_slug': 'm:%s' % self.secret,
'available': False,
'icon': 'my_location',
'effective_icon': 'my_location',
'title': self.name,
'short_name': self.short_name,
'subtitle': _('currently unavailable'),
}
# todo: is this good?
@ -647,8 +650,10 @@ class Position(CustomLocationProxyMixin, models.Model):
'available': True,
'id': 'm:%s' % self.secret,
'slug': 'm:%s' % self.secret,
'effective_slug': 'm:%s' % self.secret,
'icon': 'my_location',
'title': self.name,
'short_name': self.short_name,
'subtitle': '%s, %s, %s' % (
_('Position'),
result['title'],