MCPcopy
hub / github.com/WebODM/WebODM / list

Method list

app/api/tasks.py:227–259  ·  view source on GitHub ↗
(self, request, project_pk=None)

Source from the content-addressed store, hash-verified

225 })
226
227 def list(self, request, project_pk=None):
228 get_and_check_project(request, project_pk, defer=True)
229 query = Q(project=project_pk)
230
231 status = request.query_params.get('status')
232 if status is not None:
233 try:
234 query &= Q(status=int(status))
235 except ValueError:
236 raise exceptions.ValidationError("Invalid status parameter")
237
238 available_assets = request.query_params.get('available_assets')
239 if available_assets is not None:
240 assets = [a.strip() for a in available_assets.split(",") if a.strip() != ""]
241 for a in assets:
242 query &= Q(available_assets__contains="{" + a + "}")
243
244 bbox = request.query_params.get('bbox')
245 if bbox is not None:
246 try:
247 xmin, ymin, xmax, ymax = [float(v) for v in bbox.split(",")]
248 except:
249 raise exceptions.ValidationError("Invalid bbox parameter")
250
251 geom = Polygon.from_bbox((xmin, ymin, xmax, ymax))
252 query &= Q(orthophoto_extent__intersects=geom) | \
253 Q(dsm_extent__intersects=geom) | \
254 Q(dtm_extent__intersects=geom)
255
256 tasks = self.queryset.filter(query)
257 tasks = filters.OrderingFilter().filter_queryset(self.request, tasks, self)
258 serializer = TaskSerializer(tasks, many=True)
259 return Response(serializer.data)
260
261 def retrieve(self, request, pk=None, project_pk=None):
262 try:

Callers

nothing calls this directly

Calls 4

get_and_check_projectFunction · 0.85
TaskSerializerClass · 0.85
QFunction · 0.50
getMethod · 0.45

Tested by

no test coverage detected