發表文章

目前顯示的是有「CKAN」標籤的文章

Modify CKAN header's layout with custom plugin

圖片
情境描述: 我們希望能夠使用客製化的icon與排版於Header上 使得最終的畫面如下 不過根據CKAN  Helpers.py 的程式碼 只有  build_nav_icon  函式比較接近我們的需求 但他們是使用fontawesome的icon 且排版在超連結的左方,如下 而他們產生這類nav tab的函式 主要是由  _make_menu_item 函式組裝對應的內容 這函式不僅Render排版而已 例如: 根據當前頁面是否與該tab要導到的頁面一致(也就是同頁面) 如果一致,就會讓該超連結 <a> 多了一個Style叫做active,就會反灰 這些原有的功能我們還是要保留 (e.g.,  _link_to , _link_active ) 因此,就不是單單取代掉而已 我們需要客製化一個自己的 Template Helper function 客製化Template Helper Function可以參考官網的 這篇 主要需要增加的程式碼如下 根目錄為  ~/ckan/lib/default/src/ckanext-ytdataservice/ckanext/ytdataservice ./public/chefHeader.css .module-content :last-child { padding-bottom : 0px ; } .mystyle { display : flex; float : right; } .mystyle-ul > li { float : left; list-style : none; text-align : center; padding-left : 1em ; padding-right : 1em ; margin-bottom : 1em ; border-radius : 5px ; } .mystyle-ul > li .hover { background-color : #003647 ; } .mystyle-ul > li .active { background-...

Test Automation of CKAN Customize Extension

圖片
目前,已經自行建立了一個  ckanext-ytdataservice  extension 接著,我們以下兩篇的官方教學與範例程式碼為基底 實做客製化套件 (e.g.,  ytdataservice ) 的自動化測試,結果不含CKAN核心測試 CKAN核心的自動化測試 Extension 的自動化測試 example_iauthfunctions source code 相關檔案列表 以下是要使用到的檔案列表,我們假設所在目錄為  ~/ckan/lib/default/src/ 新增: ./ckanext-ytdataservice/ckanext/ytdataservice/tests/test_ytdataservice.py ./ckanext-ytdataservice/ckanext/ytdataservice/plugin_v4.py ./ckanext-ytdataservice/ckanext/ytdataservice/plugin_v5_custom_config_setting.py ./ckanext-ytdataservice/ckanext/ytdataservice/plugin_v6_parent_auth_functions.py 修改: ./ckan/test-core.ini ./ckan/setup.py 參考: ./ckanext-ytdataservice/ckanext/ytdataservice/plugin.py 特別注意,這個跟假設所在目錄不同   ~/ckan/etc/default/development.ini Installing CKAN from source 前置準備 架設好CKAN 2.7.2的 Development 環境 已經自行創建名為  ytdataservice  的extension,做到  We’re done! ,確認完成 plugin.py Extension的所在目錄為  ~/ckan/lib/default/src/ckanext-ytdataservice ,就不用改路徑 確認在python虛擬環境(Virt...