Exemple #1
0
    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)
Exemple #2
0
 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))
Exemple #3
0
    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)
Exemple #4
0
 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.']})
Exemple #5
0
 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))
Exemple #6
0
 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([""]), [])
Exemple #7
0
 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([""]), [])