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))
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))
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))
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))