actually update the model for the previous migration ><
This commit is contained in:
parent
0eb9048b29
commit
6269f29c51
1 changed files with 20 additions and 2 deletions
|
@ -19,7 +19,7 @@ from c3nav.api.utils import NonEmptyStr
|
||||||
from c3nav.mapdata.api.base import api_etag, api_stats, can_access_geometry
|
from c3nav.mapdata.api.base import api_etag, api_stats, can_access_geometry
|
||||||
from c3nav.mapdata.grid import grid
|
from c3nav.mapdata.grid import grid
|
||||||
from c3nav.mapdata.models import Source, Theme, Area, Space
|
from c3nav.mapdata.models import Source, Theme, Area, Space
|
||||||
from c3nav.mapdata.models.geometry.space import ObstacleGroup, Obstacle
|
from c3nav.mapdata.models.geometry.space import ObstacleGroup, Obstacle, RangingBeacon
|
||||||
from c3nav.mapdata.models.locations import DynamicLocation, LocationRedirect, Position, LocationGroup, LoadGroup
|
from c3nav.mapdata.models.locations import DynamicLocation, LocationRedirect, Position, LocationGroup, LoadGroup
|
||||||
from c3nav.mapdata.quests.base import QuestSchema, get_all_quests_for_request
|
from c3nav.mapdata.quests.base import QuestSchema, get_all_quests_for_request
|
||||||
from c3nav.mapdata.render.theme import ColorManager
|
from c3nav.mapdata.render.theme import ColorManager
|
||||||
|
@ -445,4 +445,22 @@ Room load
|
||||||
def get_load(request):
|
def get_load(request):
|
||||||
# todo: cache
|
# todo: cache
|
||||||
import random
|
import random
|
||||||
return {pk: random.randrange(0, 100)/100 for pk in LoadGroup.objects.values_list("pk", flat=True)}
|
return {pk: random.randrange(0, 100)/100 for pk in LoadGroup.objects.values_list("pk", flat=True)}
|
||||||
|
|
||||||
|
|
||||||
|
class ApLoadSchema(BaseSchema):
|
||||||
|
aps: dict[str, int]
|
||||||
|
|
||||||
|
@map_api_router.post('/load/', summary="update current load data", response={204: None, **auth_responses})
|
||||||
|
def post_load(request, parameters: ApLoadSchema):
|
||||||
|
# TODO: check if user has permission
|
||||||
|
|
||||||
|
names = parameters.aps.keys()
|
||||||
|
|
||||||
|
for beacon in RangingBeacon.objects.filter(ap_name__in=names):
|
||||||
|
beacon.num_clients = parameters.aps[beacon.ap_name]
|
||||||
|
if beacon.num_clients > beacon.max_observed_num_clients:
|
||||||
|
beacon.max_observed_num_clients = beacon.num_clients
|
||||||
|
beacon.save()
|
||||||
|
|
||||||
|
return 204, None
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue