Integração do Pentaho com o Ckan

De IBICT
Edição feita às 11h03min de 10 de janeiro de 2017 por Lucasrodrigues (disc | contribs)

Ir para: navegação, pesquisa

Esta integração faz parte da interação e modificação de temas no CKAN.

Maiores detalhes podem ser encontrados na pagina: http://docs.ckan.org/en/latest/theming/index.html

Pré-requisitos

É necessário realizar a instalação do Pentaho anteriormente. A integração com o CKAN é feita através de "iframe" em paginas personalizadas no CKAN. Para isso é necessário entender a estrutura de paginas do CKAN. A próxima seção apresenta esta estrutura.

Estrutura de Paginas do CKAN

As paginas da raiz do CKAN estão no diretório "/ckan/lib/default/src/ckan/ckan/templates". As paginas HTML neste diretório ficam visíveis na raiz da URL do CKAN.

Código de Exemplo de uma pagina personalizada no CKAN

A seguir segue um exemplo de uma pagina personalizada com a utilização de um "iframe" para integrar outros sistemas nas paginas e no servidor do CKAN. Neste exemplo utilizamos o Pentaho instalado na mesma máquina (localhost).

Nota 
É recomendado familiarizar-se com templates no modelo Jinja2, maiores detalhes podem ser encontrados em: http://jinja.pocoo.org/docs/2.9/templates/
 {% extends "base.html" %}
 
 {% block subtitle %}{{ _('Pagina Personalizada') }}{% endblock %}
 
 {%- block page -%}
   {% block skip %}
      <div class="hide"><a href="#content">{{ _('Skip to content') }}</a></div>
   {% endblock %}
 
   {#
   Substitua o cabeçalho em uma página por página, estendendo esse bloco. 
   Se estiver fazendo alterações no cabeçalho do site, é preferível substituir o arquivo header.html.
   #}
   {%- block header %}
     {% include "header.html" %}
   {% endblock -%}
 
   {# O bloco de conteúdo permite substituir o conteúdo da página, se necessário #}
   {%- block content %}
     {% block maintag %}<div role="main">{% endblock %}
       <div id="content" class="container" style="width: 1200px;">
         {% block main_content %}
           {% block flash %}
             <div class="flash-messages">
               {% block flash_inner %}
                 {% for message in h.flash.pop_messages() | list %}
                   <div class="alert fade in {{ message.category }}">
                     {{ h.literal(message) }}
                   </div>
                 {% endfor %}
               {% endblock %}
             </div>
           {% endblock %}
 
           {% block toolbar %}
             <div class="toolbar">
               {% block breadcrumb %}
                 {% if self.breadcrumb_content() | trim %}
                   <ol class="breadcrumb">
                     {% snippet 'snippets/home_breadcrumb_item.html' %}
                     {% block breadcrumb_content %}
 	                <li class="active"><a href="/pagina-personalizada">Pagina Personalizada</a></li>
                     {% endblock %}
                   </ol>
                 {% endif %}
               {% endblock %}
             </div>
           {% endblock %}
 
           <div class="row wrapper{% block wrapper_class %}{% endblock %}{% if self.secondary()|trim == '' %} no-nav{% endif %}"> 

             {#
             O bloco pré-primário pode ser usado para adicionar conteúdo antes da renderização 
             das colunas de conteúdo principal da página.
             #}
             {% block pre_primary %}
             {% endblock %}
 
 
             {% block primary %}
   <article class="module">
     <div class="module-content">
 
 <h1>Pagina Personalizada</h1>
 <p>Alguma paragrafo de informação (pode-se utilizar o HTML aqui)</p>
 
 {#
   Exemplo de iframe:
 #}
 
 <iframe src="http://localhost/pentaho/"></iframe>
 
 </article>
             {% endblock %} 
 
             {% block secondary %}{% endblock %}
           </div>
         {% endblock %}
       </div>
     </div>
   {% endblock -%}
   </div>
   {#
   Substitua o rodapé em uma página por página, estendendo esse bloco. 
   Se fizer alterações no cabeçalho do site, é preferível substituir o arquivo footer.html-u.
   #}
   {%- block footer %}
     {% include "footer.html" %}
   {% endblock -%}
 {%- endblock -%} 
 
 {%- block scripts %}
     {% resource 'base/main' %}
     {% resource 'base/ckan' %}
     {% if g.tracking_enabled %}
       {% resource 'base/tracking.js' %}
     {% endif %}
   {{ super() }}
 {% endblock -%}

Assim você será capaz de criar paginas personalizadas utilizando o mesmo tema aplicado no CKAN.