Пример #1
0
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': []}
Пример #2
0
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}
Пример #3
0
    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)
Пример #4
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"У вас нет прав редактировать набор данных"
    }
Пример #5
0
def get_user_datasets(request):
    """
    Получить список наборов данных доступных для данного пользователя
    """
    user_datasets = get_datasets(request.user, settings.PERMISSION_VIEW_NAME)
    return serializers.serialize("json", user_datasets)