Ejemplo n.º 1
0
def view(request, id, slug=None):
    """
    Show a microsite view
    """
    account = request.account
    preferences = request.preferences

    try:
        visualization_revision = VisualizationDBDAO().get(request.user,
                                                          visualization_id=id,
                                                          published=True)

        visualization = visualization_revision['visualization']

        # For datastream sidebar functions (downloads and others)
        datastream = DataStreamDBDAO().get(
            request.user,
            datastream_revision_id=visualization_revision[
                "datastream_revision_id"])

    except VisualizationRevision.DoesNotExist:
        raise VisualizationRevisionDoesNotExist
    else:
        VisualizationHitsDAO(visualization_revision).add(ChannelTypes.WEB)

        visualization_revision_parameters = RequestProcessor(
            request).get_arguments(visualization_revision["parameters"])

        chart_type = json.loads(
            visualization_revision["impl_details"]).get('format').get('type')
        if chart_type == 'mapchart':
            geo_type = json.loads(visualization_revision["impl_details"]).get(
                'chart').get('geoType')
        else:
            geo_type = ''

        visualization_revision_parameters = urllib.urlencode(
            visualization_revision_parameters)

        url_query = urllib.urlencode(
            RequestProcessor(request).get_arguments(
                visualization_revision['parameters']))

        notes = visualization_revision['notes']
        if request.GET.get('embedded', False) == 'true':
            return render_to_response('viewChart/embedded.html', locals())
        else:
            return render_to_response('viewChart/index.html', locals())
Ejemplo n.º 2
0
def embed(request, guid):
    """
    Show an embed microsite view
    """
    account = request.account
    preferences = request.preferences
    msprotocol = 'https' if account.get_preference('account.microsite.https') else 'http'
    base_uri = msprotocol + '://' + preferences['account_domain']

    try:
        visualization_revision = VisualizationDBDAO().get(
            preferences['account_language'], published=True, guid=guid )

        datastream = DataStreamDBDAO().get(
            preferences['account_language'],
            datastream_revision_id=visualization_revision["datastream_revision_id"]
        )
    except:
        return render_to_response('viewChart/embed404.html',{'settings': settings, 'request' : request})

    #VisualizationHitsDAO(visualization_revision.visualization).add(ChannelTypes.WEB)
    VisualizationHitsDAO(visualization_revision).add(ChannelTypes.WEB)

    width = request.REQUEST.get('width', False) # TODO get default value from somewhere
    height = request.REQUEST.get('height', False) # TODO get default value from somewhere

    visualization_revision_parameters = RequestProcessor(request).get_arguments(visualization_revision["parameters"])
    visualization_revision_parameters['pId'] = visualization_revision["datastream_revision_id"]
    
    command = AbstractCommandFactory('microsites').create("invoke", 
            "vz", (visualization_revision_parameters,))
    json, type = command.run()
    visualization_revision_parameters = urllib.urlencode(visualization_revision_parameters)

    return render_to_response('viewChart/embed.html', locals())
Ejemplo n.º 3
0
def embed(request, guid):
    account = request.account
    preferences = request.preferences
    msprotocol = 'https' if account.get_preference(
        'account.microsite.https') else 'http'
    base_uri = msprotocol + '://' + preferences['account_domain']

    try:
        datastream = DataStreamDBDAO().get(preferences['account_language'],
                                           guid=guid,
                                           published=True)
        parameters_query = RequestProcessor(request).get_arguments(
            datastream['parameters'])
    except Http404:
        return render_to_response('viewDataStream/embed404.html', {
            'settings': settings,
            'request': request
        })

    DatastreamHitsDAO(datastream).add(ChannelTypes.WEB)
    end_point = urllib.urlencode(parameters_query)
    header_row = request.REQUEST.get('header_row', False)
    fixed_column = request.REQUEST.get('fixed_column', False)

    return render_to_response('viewDataStream/embed.html', locals())
Ejemplo n.º 4
0
def embed(request, guid):
    """
    Get an embedded datastream
    :param request:
    :param guid:
    :return:
    """
    account = request.account
    preferences = request.preferences
    msprotocol = 'https' if account.get_preference(
        'account.microsite.https') else 'http'
    base_uri = msprotocol + '://' + preferences['account_domain']

    try:
        # parche horrible para usar account_language en vez del language del user
        user = request.user
        user.language = preferences['account_language']

        datastream = DataStreamDBDAO().get(user, guid=guid, published=True)
        parameters_query = RequestProcessor(request).get_arguments(
            datastream['parameters'])
    except DataStreamRevision.DoesNotExist:
        return render_to_response('viewDataStream/embed404.html', {
            'settings': settings,
            'request': request
        })

    DatastreamHitsDAO(datastream).add(ChannelTypes.WEB)
    end_point = urllib.urlencode(parameters_query)
    header_row = request.REQUEST.get('header_row', False)
    fixed_column = request.REQUEST.get('fixed_column', False)

    return render_to_response('viewDataStream/embed.html', locals())
Ejemplo n.º 5
0
def view(request, id, slug):
    """
    Get a datastream
    :param request:
    :param id:
    :param slug:
    :return:
    """
    logger = logging.getLogger(__name__)

    account = request.account

    preferences = request.preferences

    # parche horrible para usar account_language en vez del language del user
    user = request.user
    user.language = preferences['account_language']

    datastream = DataStreamDBDAO().get(user, datastream_id=id, published=True)

    url_query = urllib.urlencode(
        RequestProcessor(request).get_arguments(datastream['parameters']))

    DatastreamHitsDAO(datastream).add(ChannelTypes.WEB)

    notes = datastream['notes']
    if request.GET.get('embedded', False) == 'true':
        return render_to_response('viewDataStream/embedded.html', locals())
    else:
        return render_to_response('viewDataStream/index.html', locals())
Ejemplo n.º 6
0
def preview(request):

    form = forms.PreviewForm(request.GET)

    if form.is_valid():

        preferences = request.preferences
        datastream_revision_id  = request.GET.get('datastream_revision_id', None)

        try:
            datastream = DataStreamDBDAO().get(
                request.user.language,
                datastream_revision_id=datastream_revision_id,
                published=False
            )
        except Exception, e:
            logger.error(e)
            raise Http404
        else:
            query = RequestProcessor(request).get_arguments(datastream["parameters"])
            chart_type = form.cleaned_data.get('type')

            query.update({
                'pId': int(datastream_revision_id),
                'pType': chart_type,
                'pNullValueAction': form.cleaned_data.get('nullValueAction'),
                'pNullValuePreset': form.cleaned_data.get('nullValuePreset'),
                'pData': form.cleaned_data.get('data'),
                'pLabelSelection': form.cleaned_data.get('labels'),
                'pHeaderSelection': form.cleaned_data.get('headers'),
                'pInvertedAxis': form.cleaned_data.get('invertedAxis'),
                'pInvertData': form.cleaned_data.get('invertData')
            })

            page = form.cleaned_data.get('page')
            if page is not None:
                query['pPage'] = page

            limit = form.cleaned_data.get('limit')
            if limit is not None:
                query['pLimit'] = form.cleaned_data.get('limit')

            result, content_type = preview_chart(query)

            return HttpResponse(result, mimetype=content_type)
Ejemplo n.º 7
0
def preview_map(request, datastream_revision_id):

    preferences = request.preferences
    form = forms.PreviewMapForm(request.GET)

    if form.is_valid():
        try:
            datastream = DataStreamDBDAO().get(
                request.user.language,
                datastream_revision_id=datastream_revision_id,
                published=False
            )
        except Exception, e:
            logger.error(e)
            raise Http404
        else:
            query = RequestProcessor(request).get_arguments(datastream["parameters"])

            query.update({
                'pId': int(datastream_revision_id),
                'pType': 'mapchart',
                'pNullValueAction': form.cleaned_data.get('nullValueAction', 'exclude'),
                'pNullValuePreset': form.cleaned_data.get('nullValuePreset', ''),
                'pData': form.cleaned_data.get('data', ''),
                'pLatitudSelection': form.cleaned_data.get('lat', ''),
                'pLongitudSelection': form.cleaned_data.get('lon', ''),
                'pHeaderSelection': '',
                'pTraceSelection': '',
            })

            # Optional
            bounds = form.cleaned_data.get('bounds')
            if bounds is not None:
                query['pBounds'] = bounds

            zoom = form.cleaned_data.get('zoom')
            if zoom is not None:
                query['pZoom'] = zoom

            result, content_type = preview_chart(query)

            return HttpResponse(result, mimetype=content_type)
Ejemplo n.º 8
0
def view(request, id, slug):
    logger = logging.getLogger(__name__)

    account = request.account

    preferences = request.preferences

    datastream = DataStreamDBDAO().get(
        language=preferences['account_language'],
        datastream_id=id,
        published=True)

    url_query = urllib.urlencode(
        RequestProcessor(request).get_arguments(datastream['parameters']))

    DatastreamHitsDAO(datastream).add(ChannelTypes.WEB)

    notes = datastream['notes']

    return render_to_response('viewDataStream/index.html', locals())
Ejemplo n.º 9
0
def view(request, id, slug=None):
    """
    Show a microsite view
    """
    account = request.account

    preferences = request.preferences

    try:
        visualization_revision = VisualizationDBDAO().get(
            preferences['account_language'],
            visualization_id=id,
            published=True
        )

        # verify if this account is the owner of this viz
        visualization = Visualization.objects.get(pk=id)
        if account.id != visualization.user.account.id:
            raise NotAccesVisualization

        #for datastream sidebar functions (downloads and others)
        datastream = DataStreamDBDAO().get(
            preferences['account_language'],
            datastream_revision_id=visualization_revision["datastream_revision_id"]
        )
        
    except VisualizationRevision.DoesNotExist:
        raise VisualizationRevisionDoesNotExist
    else:
        VisualizationHitsDAO(visualization_revision).add(ChannelTypes.WEB)

        visualization_revision_parameters = RequestProcessor(request).get_arguments(visualization_revision["parameters"])

        chart_type = json.loads(visualization_revision["impl_details"]).get('format').get('type')

        visualization_revision_parameters = urllib.urlencode(visualization_revision_parameters)

        notes = visualization_revision['notes']

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