2012/11/19

Plone Theme Upgrade

記錄 Plone 3 昇級到 Plone 4 的經驗,特別是處理舊式 Theme 的情況。先到 ZMI portal_view_customization, portal_skins/custom 如果有客製化的程式碼,或是有相依的 portlet 設定值,都要先移除,再到 Plone Setup 設定 Theme 為 Plone Default,再到 Add-ons 把舊的模組取消安裝。

備份 Data.fs 以防意外,把這個 Plone 3 的 Data.fs 搬到 Plone 4 的新系統 var/filestorage 目錄裡,啟動系統後,到 ZMI 執行 portal_migration。到 portal_skins 的 Properties 把舊模組的 Skin 設定值刪除。

如果不幸遇到 PicklingError: Can't pickle <class 'Products.OldPkg.browser.interfaces.IThemeSpecific'>: import of module Products.OldPkg.browser.interfaces failed,只好試試 wildcard.fixpersistentutilities

2012/11/17

plone.app.jquery Upgrade

Plone 4.2.2 預設的 plone.app.jquery 版本是 1.4.4,想要單獨昇級 jQuery 版本的話,可以在 versions.cfg 直接指定 plone.app.jquery = 1.7.1.1,再執行 buildout:

$ bin/buildout -c develop.cfg
Getting distribution for 'zc.recipe.testrunner==1.2.1'.
zip_safe flag not set; analyzing archive contents...
Got zc.recipe.testrunner 1.2.1.
Uninstalling zopeskel.
Uninstalling zopepy.
Uninstalling instance.
Installing _mr.developer.
Generated script '/home/marr/plone422/zinstance/bin/develop'.
Installing instance.
Getting distribution for 'plone.app.jquery==1.7.1.1'.
Got plone.app.jquery 1.7.1.1.
Generated script '/home/marr/plone422/zinstance/bin/instance'.
Installing zopepy.
Generated interpreter '/home/marr/plone422/zinstance/bin/zopepy'.
Installing zopeskel.
Generated script '/home/marr/plone422/zinstance/bin/zopeskel'.
Generated script '/home/marr/plone422/zinstance/bin/paster'.
Installing omelette.
Updating backup.
Updating chown.
chown: Running echo Dummy references to force this to execute after referenced parts
echo /home/marr/plone422/zinstance/var/backups
chmod 600 .installed.cfg
find /home/marr/plone422/zinstance/var -type d -exec chmod 700 {} \;
chmod 744 /home/marr/plone422/zinstance/bin/*
Dummy references to force this to execute after referenced parts
/home/marr/plone422/zinstance/var/backups
Installing test.
Generated script '/home/marr/plone422/zinstance/bin/test'.
Updating repozo.
Updating unifiedinstaller.
*************** PICKED VERSIONS ****************
[versions]

*************** /PICKED VERSIONS ***************

直接或間接用到 jQuery 的模組至少有:Products.CMFPlone, collective.z3cform.datetimewidget, plone.app.jquerytools, plone.app.controlpanel, plonetheme.sunburst, archetypes.querywidget。

PloneTheme Bootstrap

Responsive Design 已成顯學,也有人把 Bootstrap 和 Plone 整合,範例成果像是 diazotheme.bootstrapplonetheme.bootstrap

plonetheme.bootstrap Screenshot

由於 Diazo 技術已經成熟,視覺設計成果可以壓成 zip 檔,上傳給 Plone 直接套用。專門展示 Plone Theme 的 plonethemes.org 網站,同時也收集這些 zip 檔,方便設計師和工程師進行整合工作。

2012/11/14

Sahana Internship Program

Sahana Software Foundation 在 2012 十二月到 2013 三月,推出線上實習計畫讓全球學生參與,在教練的指導下,實習生將學習完成數個軟體開發任務,整個實習期間,平均每週花上四小時,順利結業的話,會頒與實習證明和美金 500 元。

實習名額有三位:包括兩名軟體開發實習生,一名媒體行銷實習生。原則上要開發的是 Sahana Eden 系統軟體,它是以 Python 語言及 Web2Py 框架寫成,學習過程將認識這些細節。

有興趣報名的學生,請將履歷及下列問題的資訊,一併寄到 internship@sahanafoundation.org:

  • 申請實習的理由是?
  • 自認有哪些經歷可能有助於實習工作?
  • 實習期間有何承諾與規劃?
  • 想申請軟體開發實習的話,請附上 GitHub 個人網址。
  • 想申請媒體行銷實習的話,請附上個人文件連結,或是 blog 和參與社群的資訊。

當然,事先了解更多關於 Sahana 人道救援系統的資訊,肯定對申請實習會有幫助。

2012/11/05

Plone True Gallery

collective.plonetruegallery 是 Plone 展示圖檔的優秀模組,在 2.1 版本之後支援 Products.Collage,頁面的展示效果就更加豐富。

Flickr 和 Picasa 相簿的整合,是另一個很棒的功能,新版仍然保有這項特色,但程式碼將被獨立出來,要到 collective.ptg.flickrcollective.ptg.picasa 尋找安裝。