示例#1
0
文件: views.py 项目: aencina/datal
def edit(request, datastream_revision_id=None):
    if request.method == 'GET':
        account_id = request.auth_manager.account_id
        credentials = request.auth_manager
        language = request.auth_manager.language
        categories = CategoryI18n.objects.filter(
            language=language,
            category__account=account_id).values('category__id', 'name')
        status_options = credentials.get_allowed_actions()
        lifecycle = DatastreamLifeCycleManager(
            user=request.user, datastream_revision_id=datastream_revision_id)
        status = lifecycle.datastream_revision.status
        dao = DataStreamDBDAO().get(
            request.user, datastream_revision_id=datastream_revision_id)
        response = DefaultDataViewEdit(
            template='datastream_edit_response.json').render(
                categories, status, status_options,
                lifecycle.datastream_revision, lifecycle.datastreami18n, dao)

        return JSONHttpResponse(response)

    elif request.method == 'POST':
        """update dataset """

        form = EditDataStreamForm(request.POST)

        if not form.is_valid():
            raise LifeCycleException('Invalid form data: %s' %
                                     str(form.errors.as_text()))

        if form.is_valid():
            lifecycle = DatastreamLifeCycleManager(
                user=request.user,
                datastream_revision_id=datastream_revision_id)

            lifecycle.edit(language=request.auth_manager.language,
                           changed_fields=form.changed_data,
                           **form.cleaned_data)

            # Signal
            datastream_changed.send_robust(
                sender='edit_view',
                id=lifecycle.datastream.id,
                rev_id=lifecycle.datastream_revision.id)

            response = dict(
                status='ok',
                datastream_revision_id=lifecycle.datastream_revision.id,
                messages=[ugettext('APP-DATASET-CREATEDSUCCESSFULLY-TEXT')],
            )

            return JSONHttpResponse(json.dumps(response))
示例#2
0
文件: views.py 项目: anukat2015/datal
def edit(request, datastream_revision_id=None):
    if request.method == 'GET':
        account_id = request.auth_manager.account_id
        credentials = request.auth_manager
        language = request.auth_manager.language
        categories = CategoryI18n.objects.filter(
            language=language,
            category__account=account_id
        ).values('category__id', 'name')
        status_options = credentials.get_allowed_actions()
        lifecycle = DatastreamLifeCycleManager(user=request.user, datastream_revision_id=datastream_revision_id)
        status = lifecycle.datastream_revision.status
        response = DefaultDataViewEdit(template='datastream_edit_response.json').render(
            categories, status,
            status_options,
            lifecycle.datastream_revision,
            lifecycle.datastreami18n
        )

        return JSONHttpResponse(response)

    elif request.method == 'POST':
        """update dataset """

        form = EditDataStreamForm(request.POST)

        if not form.is_valid():
            raise LifeCycleException('Invalid form data: %s' % str(form.errors.as_text()))

        if form.is_valid():
            lifecycle = DatastreamLifeCycleManager(user=request.user, datastream_revision_id=datastream_revision_id)

            lifecycle.edit(
                language=request.auth_manager.language,
                changed_fields=form.changed_data,
                **form.cleaned_data
            )

            # Signal
            datastream_changed.send_robust(sender='edit_view', id=lifecycle.datastream.id,
                                           rev_id=lifecycle.datastream_revision.id)

            response = dict(
                status='ok',
                datastream_revision_id=lifecycle.datastream_revision.id,
                messages=[ugettext('APP-DATASET-CREATEDSUCCESSFULLY-TEXT')],
            )

            return JSONHttpResponse(json.dumps(response))
示例#3
0
文件: views.py 项目: Junar/datal
def change_status(request, datastream_revision_id=None):
    """
    Change dataview status
    :param request:
    :param datastream_revision_id:
    :return: JSON Object
    """
    if request.method == 'POST' and datastream_revision_id:
        lifecycle = DatastreamLifeCycleManager(
            user=request.user,
            datastream_revision_id=datastream_revision_id
        )
        action = request.POST.get('action')

        if action == 'approve':
            lifecycle.accept()

            # Signal
            datastream_changed.send_robust(sender='change_status_view', id=lifecycle.datastream.id)

            response = dict(
                status='ok',
                messages={
                    'title': ugettext('APP-DATAVIEW-APPROVED-TITLE'),
                    'description': ugettext('APP-DATAVIEW-APPROVED-TEXT')
                }
            )
        elif action == 'reject':
            lifecycle.reject()

            # Signal
            datastream_changed.send_robust(sender='change_status_view', id=lifecycle.datastream.id)

            response = dict(
                status='ok',
                messages={
                    'title': ugettext('APP-DATAVIEW-REJECTED-TITLE'),
                    'description': ugettext('APP-DATAVIEW-REJECTED-TEXT')
                }
            )
        elif action == 'publish':
            lifecycle.publish()

            # Signal
            datastream_changed.send_robust(sender='change_status_view', id=lifecycle.datastream.id)

            response = dict(
                status='ok',
                messages={
                    'title': ugettext('APP-DATAVIEW-PUBLISHED-TITLE'),
                    'description': ugettext('APP-DATAVIEW-PUBLISHED-TEXT')
                }
            )
        elif action == 'unpublish':
            killemall = True if request.POST.get('killemall', False) == 'true' else False
            lifecycle.unpublish(killemall=killemall)
            if killemall:
                description = ugettext('APP-DATAVIEW-UNPUBLISHALL-TEXT')
            else:
                description = ugettext('APP-DATAVIEW-UNPUBLISH-TEXT')

            # Signal
            datastream_changed.send_robust(sender='change_status_view', id=lifecycle.datastream.id)
            datastream_unpublished.send_robust(sender='change_status_view', id=lifecycle.datastream.id)

            response = dict(
                status='ok',
                messages={
                    'title': ugettext('APP-DATAVIEW-UNPUBLISH-TITLE'),
                    'description': description
                }
            )
        elif action == 'send_to_review':
            lifecycle.send_to_review()

            # Signal
            datastream_changed.send_robust(sender='change_status_view', id=lifecycle.datastream.id)

            response = dict(
                status='ok',
                messages={
                    'title': ugettext('APP-DATAVIEW-SENDTOREVIEW-TITLE'),
                    'description': ugettext('APP-DATAVIEW-SENDTOREVIEW-TEXT')
                }
            )
        else:
            raise NoStatusProvidedException()

        # Limpio un poco
        response['result'] = DataStreamDBDAO().get(request.user.language, datastream_revision_id=datastream_revision_id)
        response['result'].pop('parameters')
        response['result'].pop('tags')
        response['result'].pop('sources')

        return JSONHttpResponse(json.dumps(response, cls=DateTimeEncoder))
示例#4
0
def edit(request, datastream_revision_id=None):
    lifecycle = DatastreamLifeCycleManager(
        user=request.user, datastream_revision_id=datastream_revision_id)
    dao = DataStreamDBDAO().get(request.user,
                                datastream_revision_id=datastream_revision_id)
    auth_manager = request.auth_manager

    if request.method == 'GET':
        is_update = True
        is_update_selection = True
        dataset_revision = Dataset.objects.get(
            id=dao['dataset_id']).last_revision
        datastream_id = None

        if auth_manager.is_level('level_5'):
            meta_data = Account.objects.get(
                pk=auth_manager.account_id).meta_data

        end_point = dataset_revision.end_point
        type = dataset_revision.dataset.type
        impl_type = dataset_revision.impl_type
        impl_details = dataset_revision.impl_details
        bucket_name = request.bucket_name

        categoriesQuery = CategoryI18n.objects\
                            .filter(language=request.auth_manager.language,
                                    category__account=request.auth_manager.account_id)\
                            .values('category__id', 'name')
        categories = [[category['category__id'], category['name']]
                      for category in categoriesQuery]
        preferences = auth_manager.get_account().get_preferences()
        try:
            default_category = int(preferences['account.default.category'])
        except:
            default_category = categories[0][0]
        # Agregar categoria por defecto
        categories = map(lambda x: x + [int(x[0]) == default_category],
                         categories)

        sources = [source for source in dataset_revision.get_sources()]
        tags = [tag for tag in dataset_revision.get_tags()]

        return render_to_response('createDataview/index.html', locals())

    elif request.method == 'POST':
        """update dataset """

        form = EditDataStreamForm(request.POST)

        if not form.is_valid():
            raise DatastreamSaveException(form)

        if form.is_valid():
            lifecycle = DatastreamLifeCycleManager(
                user=request.user,
                datastream_revision_id=datastream_revision_id)

            lifecycle.edit(language=request.auth_manager.language,
                           changed_fields=form.changed_data,
                           **form.cleaned_data)

            # Signal
            datastream_changed.send_robust(
                sender='edit_view',
                id=lifecycle.datastream.id,
                rev_id=lifecycle.datastream_revision.id)

            response = dict(
                status='ok',
                datastream_revision_id=lifecycle.datastream_revision.id,
                messages=[ugettext('APP-DATASET-CREATEDSUCCESSFULLY-TEXT')],
            )

            return JSONHttpResponse(json.dumps(response))