def get_csv(self, request, queryset=None): filename, url, prepare_new_file, is_member = None, None, True, False parent = self.get_parent() if parent: prepare_new_file = False user = request.QUERY_PARAMS.get('user', None) is_member = self._is_member(parent, user) try: path = request.__dict__.get('_request').path filename = '_'.join(compact(path.split('/'))).replace('.', '_') kwargs = { 'filename': filename, } except Exception: kwargs = {} if filename and prepare_new_file: url = get_csv_from_s3(filename, is_member) if not url: queryset = queryset or self._get_query_set_from_view(is_member) data = self.get_csv_rows(queryset) if hasattr( self, 'get_csv_rows') else queryset.values() url = write_csv_to_s3(data, is_member, **kwargs) return Response({'url': url}, status=200)
def join_values(self, objects): localize_text_keys = ['name', 'locale', 'type'] return ', '.join( map( lambda obj: ' '.join( compact(extract_values(obj[1], localize_text_keys))), objects))
def get_csv(self, request, queryset=None): filename, url, prepare_new_file, is_member = None, None, True, False parent = self.get_parent() if parent: prepare_new_file = False user = request.QUERY_PARAMS.get('user', None) is_member = self._is_member(parent, user) try: path = request.__dict__.get('_request').path filename = '_'.join(compact(path.split('/'))).replace('.', '_') kwargs = { 'filename': filename, } except Exception: kwargs = {} if filename and prepare_new_file: url = get_csv_from_s3(filename, is_member) if not url: queryset = queryset or self._get_query_set_from_view(is_member) data = self.get_csv_rows(queryset) if hasattr(self, 'get_csv_rows') else queryset.values() url = write_csv_to_s3(data, is_member, **kwargs) return Response({'url': url}, status=200)
def _resource_klasses(self): expression_parts_count = len(compact(self.expression.split('/'))) if expression_parts_count == 6: return [Concept, Mapping] elif expression_parts_count == 7: return [ConceptVersion, MappingVersion] else: raise ValidationError({'detail': ['Expression specified is not valid.']})
def join_values(self, objects): localize_text_keys = ['name', 'locale', 'type'] return ', '.join( map(lambda obj: ' '.join(compact(extract_values(obj[1], localize_text_keys))), objects))
def test_compact(self): self.assertListEqual(compact([1, 2, None, 3]), [1, 2, 3]) self.assertListEqual(compact([None, 2, None, 3]), [2, 3]) self.assertListEqual(compact([None]), []) self.assertListEqual(compact([""]), [])