def run(self, *args, **kwargs): instance = self.get_object() serializer = JobRunSerializer(exporter=instance, data=self.request.data, **self.get_serializer_kwargs()) serializer.is_valid(raise_exception=True) cf = CachedFile(web_download=False) cf.date = now() cf.expires = now() + timedelta(hours=24) cf.save() d = serializer.data for k, v in d.items(): if isinstance(v, set): d[k] = list(v) async_result = self.do_export(cf, instance, d) url_kwargs = { 'asyncid': str(async_result.id), 'cfid': str(cf.id), } url_kwargs.update(self.kwargs) return Response( { 'download': reverse('api-v1:exporters-download', kwargs=url_kwargs, request=self.request) }, status=status.HTTP_202_ACCEPTED)
def exporters(self): exporters = [] responses = register_data_exporters.send(self.request.event) for ex in sorted([response(self.request.event, self.request.organizer) for r, response in responses], key=lambda ex: str(ex.verbose_name)): ex._serializer = JobRunSerializer(exporter=ex) exporters.append(ex) return exporters
def exporters(self): exporters = [] events = (self.request.auth or self.request.user).get_events_with_permission('can_view_orders', request=self.request).filter( organizer=self.request.organizer ) responses = register_multievent_data_exporters.send(self.request.organizer) for ex in sorted([response(events, self.request.organizer) for r, response in responses if response], key=lambda ex: str(ex.verbose_name)): ex._serializer = JobRunSerializer(exporter=ex, events=events) exporters.append(ex) return exporters
def exporters(self): exporters = [] if isinstance(self.request.auth, (Device, TeamAPIToken)): perm_holder = self.request.auth else: perm_holder = self.request.user events = perm_holder.get_events_with_permission( 'can_view_orders', request=self.request).filter(organizer=self.request.organizer) responses = register_multievent_data_exporters.send( self.request.organizer) for ex in sorted([ response(events, self.request.organizer) for r, response in responses if response ], key=lambda ex: str(ex.verbose_name)): ex._serializer = JobRunSerializer(exporter=ex, events=events) exporters.append(ex) return exporters