def get_dataset_data(request, dataset_id, start_date, end_date, company_objects, bookmarks): """ Получить данные набора данных @param dataset_id: идентификатор набора данных """ try: user_datasets = get_datasets(request.user, settings.PERMISSION_VIEW_NAME) date_range = (datetime.strptime(start_date, settings.DATE_FORMAT).date(), datetime.strptime(end_date, settings.DATE_FORMAT).date()) boilers = get_boilers(request.user, company_objects, bookmarks) if len(boilers) > 0: for dataset in user_datasets: if dataset.id == dataset_id: data = get_data(dataset, request.user, date_range, boilers) return {'data': data} except Exception as ex: traceback.print_exc(file=sys.stdout) _logger.error( u"[dataset.getData] - Ошибка при получении набора данных: " + unicode(ex)) return {'data': [], 'message': ""} return {'data': []}
def get_dataset_fields_meta(request, dataset_id): """ Получить метаданные колонок для набора данных. Метаданные содержат наименования колонок и пометки о том, можно ли их редактировать. @param dataset_id: идентификатор набора данных """ user_datasets = get_datasets(request.user, settings.PERMISSION_VIEW_NAME) for dataset in user_datasets: if dataset.id == dataset_id: meta = get_fields(dataset, request.user) return {'meta': meta} return {'meta': None}
def test_available_datasets_for_user(self): """ """ # отчет новый dataset = Dataset.objects.create(creator=self.test_admin, name=u"Название отчета", description=u"Описание отчета") grant_permission(dataset, Role.objects.get(name=settings.ROLE_VIEWER_NAME), settings.PERMISSION_VIEW_NAME) datasets = get_datasets(self.test_viewer) self.assertEqual(datasets[0].name, u"Название отчета") self.assertEqual(len(datasets), 1) self.assertEqual(len(datasets[0].fields.all()), 0)
def can_edit_dataset(request, dataset_id): """ Может ли пользователь редактировать набор данных. @param dataset_id: идентификатор набора данных """ try: admin_role = Role.objects.get(name=settings.ROLE_ADMIN_NAME) if has_role(request.user, admin_role): #logging.getLogger(__name__).info(u"Пользователь является администратором, может редактировать набор данных!") return {'canEdit': True} for dataset in get_datasets(request.user, settings.PERMISSION_EDIT_NAME): if dataset.id == dataset_id: return {'canEdit': True} except Exception as ex: traceback.print_exc(file=sys.stdout) return {'canEdit': False, 'message': unicode(ex)} return { 'canEdit': False, 'message': u"У вас нет прав редактировать набор данных" }
def get_user_datasets(request): """ Получить список наборов данных доступных для данного пользователя """ user_datasets = get_datasets(request.user, settings.PERMISSION_VIEW_NAME) return serializers.serialize("json", user_datasets)