def change_status(request, visualization_revision_id=None): """ Change visualization status :param request: :param visualization_revision_id: :return: JSON Object """ if visualization_revision_id: lifecycle = VisualizationLifeCycleManager( user=request.user, visualization_revision_id=visualization_revision_id ) action = request.POST.get('action') action = 'accept' if action == 'approve'else action # fix para poder llamar dinamicamente al metodo de lifecycle killemall = True if request.POST.get('killemall', False) == 'true' else False if action not in ['accept', 'reject', 'publish', 'unpublish', 'send_to_review']: raise NoStatusProvidedException() if action == 'unpublish': getattr(lifecycle, action)(killemall) # Signal visualization_unpublished.send_robust(sender='change_status_view', id=lifecycle.visualization.id, rev_id=lifecycle.visualization_revision.id) else: getattr(lifecycle, action)() if action == 'accept': title = ugettext('APP-VISUALIZATION-APPROVED-TITLE'), description = ugettext('APP-VISUALIZATION-APPROVED-TEXT') elif action == 'reject': title = ugettext('APP-VISUALIZATION-REJECTED-TITLE'), description = ugettext('APP-VISUALIZATION-REJECTED-TEXT') elif action == 'publish': title = ugettext('APP-VISUALIZATION-PUBLISHED-TITLE'), description = ugettext('APP-VISUALIZATION-PUBLISHED-TEXT') elif action == 'unpublish': title = ugettext('APP-VISUALIZATION-UNPUBLISH-TITLE'), description = ugettext('APP-VISUALIZATION-UNPUBLISH-TEXT') elif action == 'send_to_review': title = ugettext('APP-VISUALIZATION-SENDTOREVIEW-TITLE'), description = ugettext('APP-VISUALIZATION-SENDTOREVIEW-TEXT') response = dict( status='ok', messages={'title': title, 'description': description } ) # Limpio un poco response['result'] = VisualizationDBDAO().get(request.user.language, visualization_revision_id=visualization_revision_id) account = request.account msprotocol = 'https' if account.get_preference('account.microsite.https') else 'http' response['result']['public_url'] = msprotocol + "://" + request.preferences['account.domain'] + reverse('chart_manager.view', urlconf='microsites.urls', kwargs={'id': response['result']['visualization_id'], 'slug': '-'}) response['result'].pop('parameters') response['result'].pop('tags') response['result'].pop('sources') response['result'].pop('visualization') return JSONHttpResponse(json.dumps(response, cls=DateTimeEncoder))
def change_status(request, visualization_revision_id=None): """ Change visualization status :param request: :param visualization_revision_id: :return: JSON Object """ if visualization_revision_id: lifecycle = VisualizationLifeCycleManager( user=request.user, visualization_revision_id=visualization_revision_id) action = request.POST.get('action') action = 'accept' if action == 'approve' else action # fix para poder llamar dinamicamente al metodo de lifecycle killemall = True if request.POST.get('killemall', False) == 'true' else False if action not in [ 'accept', 'reject', 'publish', 'unpublish', 'send_to_review' ]: raise NoStatusProvidedException() if action == 'unpublish': getattr(lifecycle, action)(killemall) # Signal visualization_unpublished.send_robust( sender='change_status_view', id=lifecycle.visualization.id, rev_id=lifecycle.visualization_revision.id) else: getattr(lifecycle, action)() if action == 'accept': title = ugettext('APP-VISUALIZATION-APPROVED-TITLE'), description = ugettext('APP-VISUALIZATION-APPROVED-TEXT') elif action == 'reject': title = ugettext('APP-VISUALIZATION-REJECTED-TITLE'), description = ugettext('APP-VISUALIZATION-REJECTED-TEXT') elif action == 'publish': title = ugettext('APP-VISUALIZATION-PUBLISHED-TITLE'), description = ugettext('APP-VISUALIZATION-PUBLISHED-TEXT') elif action == 'unpublish': title = ugettext('APP-VISUALIZATION-UNPUBLISH-TITLE'), description = ugettext('APP-VISUALIZATION-UNPUBLISH-TEXT') elif action == 'send_to_review': title = ugettext('APP-VISUALIZATION-SENDTOREVIEW-TITLE'), description = ugettext('APP-VISUALIZATION-SENDTOREVIEW-TEXT') response = dict(status='ok', messages={ 'title': title, 'description': description }) # Limpio un poco response['result'] = VisualizationDBDAO().get( request.user.language, visualization_revision_id=visualization_revision_id) account = request.account msprotocol = 'https' if account.get_preference( 'account.microsite.https') else 'http' response['result'][ 'public_url'] = msprotocol + "://" + request.preferences[ 'account.domain'] + reverse( 'chart_manager.view', urlconf='microsites.urls', kwargs={ 'id': response['result']['visualization_id'], 'slug': '-' }) response['result'].pop('parameters') response['result'].pop('tags') response['result'].pop('sources') response['result'].pop('visualization') return JSONHttpResponse(json.dumps(response, cls=DateTimeEncoder))