def get(self, dataset_id): """ Returns exports of images and annotations in the dataset (only owners) """ dataset = current_user.datasets.filter(id=dataset_id).first() if dataset is None: return {"message": "Invalid dataset ID"}, 400 if not current_user.can_download(dataset): return { "message": "You do not have permission to download the dataset's annotations" }, 403 exports = ExportModel.objects( dataset_id=dataset.id).order_by('-created_at').limit(50) dict_export = [] for export in exports: time_delta = datetime.datetime.utcnow() - export.created_at dict_export.append({ 'id': export.id, 'ago': query_util.td_format(time_delta), 'tags': export.tags }) return dict_export
def delete(self, export_id): """ Returns exports """ export = ExportModel.objects(id=export_id).first() if export is None: return {"message": "Invalid export ID"}, 400 dataset = current_user.datasets.filter(id=export.dataset_id).first() if dataset is None: return {"message": "Invalid dataset ID"}, 400 export.delete() return {'success': True}
def get(self, export_id): """ Returns exports """ export = ExportModel.objects(id=export_id).first() if export is None: return {"message": "Invalid export ID"}, 400 dataset = current_user.datasets.filter(id=export.dataset_id).first() if dataset is None: return {"message": "Invalid dataset ID"}, 400 time_delta = datetime.datetime.utcnow() - export.created_at d = fix_ids(export) d['ago'] = query_util.td_format(time_delta) return d
def get(self, export_id): """ Returns exports """ export = ExportModel.objects(id=export_id).first() if export is None: return {"message": "Invalid export ID"}, 400 dataset = current_user.datasets.filter(id=export.dataset_id).first() if dataset is None: return {"message": "Invalid dataset ID"}, 400 if not current_user.can_download(dataset): return {"message": "You do not have permission to download the dataset's annotations"}, 403 return send_file(export.path, attachment_filename=f"{dataset.name}-{'-'.join(export.tags)}.json", as_attachment=True)