設定Tips

Sahana Edenのメモを書いておきます。


データインポート

CSV住所データをインポート

国土交通省国土計画局「位置参照情報(街区レベル、大字・町丁目レベル)ダウンロードサービス」のデータをSahana Edenのロケーションデータとして利用するためのシェルスクリプトをこのページ末に添付しています。

住所を一気に登録するにはCSVで住所データを作成しておいて、web2pyのコマンドラインから登録する。

web2pyのコマンドラインに入るにはweb2pyのルート直下で以下のコマンドを実行する。

$ python web2py.py -N -S eden -M

web2pyコマンドラインに入ってデータをインポートするには以下のコマンドを実行する。address.csvは住所データ。web2pyのルート直下に置いておく。db.commit()を実行しない限りDBにはコミットされない。

gis.import_csv("address.csv")
db.commit()
(終了するときは Ctrl+D)

CSVデータの形式は以下のようヘッダを指定しておく。

ADM0_NAME,ADM1_NAME,ADM2_NAME,LAT,LON
Japan,北海道,札幌市,43.0627818,141.3535986
Japan,北海道,札幌市中央区,43.0550852,141.3412251
Japan,北海道,札幌市北区,43.090267,141.3410508

指定できるヘッダは以下のとおり。ADM0からADM5がロケーションのL0からL5に対応、WKTはエリア、LAT,LONが緯度経度,UUIDはuuidです。UUIDはユニークであれば形式は問いません。

ADM0_NAME,
ADM1_NAME,
ADM2_NAME,
ADM3_NAME,
ADM4_NAME,
ADM5_NAME,
WKT,
LAT,
LON,
UUID,

Google被難所データをインポート

* インポートするときにはライセンスに注意 *

東日本大震災 - 避難所情報: http://shelter-info.appspot.com/maps で公開されているkmlデータをインポートするには、各地域のKMLファイルをダウンロードしておき、ブラウザから以下のようにファイル名を指定してインポートします。

古い情報

以下の情報は振るい情報です。

Googleの被難所データをダウンロード。

KML: http://www.google.com/intl/ja/crisisresponse/japanquake2011_shelter.kmz

zipで圧縮されているので展開する。

$ unzip japanquake2011_shelter.kmz
展開してできたファイル名を指定して以下にアクセス。 ファイルはweb2pyから読めるところに置いておくこと。
(リモートの場合は外から読める場所、サーバーの適当な場所など)
http://127.0.0.1:8000/eden/cr/shelter/create.kml?filename=/home/example/japanquake2011_shelter.kml&xsltmode=extended

fods形式を使ってデータのインポート

fods形式はOpenOffice.org/LibreOfficeで作成できます。

ボランティアスキルを登録する場合。

http://japan.sahanafoundation.org/eden/vol/skill/

  • シート名 = リソース名
  • 最初の行 = アトリビュートやフィールドの名前
  • 以下の行 = アトリビュートやフィールドの値

fodsの書式は以上のような形式にしなければいけないけど、わかりにくい。

そういう場合はdbを見てみる。

ボランティアスキルのdbは、db.vol_skillでヘッダはこのようになってる。

vol_skill.id vol_skill.name vol_skill.category vol_skill.description vol_skill.uuid

これを当てはめてみると

  • シート名 = vol_skill
  • 最初の行 = dbのヘッダの「.」以下の名前(例:nameやcategory)
  • 2行目以下の行 = 設定したい値

で、作成する。

インポートの時はインポートしたいアドレスにファイル名などを渡してやれば良い。

渡す方法は命名規約としてURIのあとに「create.(ファイル形式)?filename=(ファイル名)」をつければよい。

http://japan.sahanafoundation.org/eden/vol/skill/ ならば、

http://japan.sahanafoundation.org/eden/vol/skill/create.fods?filename=/home/example/vol_skill.fods となる。


設定

各機能モジュールを無効化する

Sahana Edenの機能はモジュール化され、不要な機能は使わない(見せない)ようにできます。

models/000_config.pydeployment_settings.modules に書いてあるモジュールをコメントアウトすることにより無効にできる。

Documentモジュール(doc)を無効にした場合の例を示す。

# Comment/uncomment modules here to disable/enable them # Modules menu is defined in 01_menu.py deployment_settings.modules = OrderedDict([ ("default", Storage( name_nice = T("Home"), restricted = False, # Use ACLs to control access to this module access = None, # All Users (inc Anonymous) can see this module in the default menu & access the controller module_type = 0 # This item is always 1st in the menu )), (中略) #("doc", Storage( # name_nice = T("Documents and Photos"), # description = T("A library of digital resources, such as photos, documents and reports"), # restricted = False, # module_type = 10, # )), (後略)

権限を設定する

各モジュールの権限を設定するには、 models/000_config.pydeployment_settings.security.policy のコメントを外しレベルを設定し、 deployment_settings.modules にあるモジュールの restricted = True|False を設定することにより、管理画面から権限を設定できるようになる。

参考: http://eden.sahanafoundation.org/wiki/S3AAA#System-widePolicy

# Security Policy (defaults to 1 = Simple) # http://eden.sahanafoundation.org/wiki/S3AAA#System-widePolicy deployment_settings.security.policy = 4 # Function-ACLs

国を固定する

models/000_config.pyの以下の部分をJPにする。

deployment_settings.L10n.countries = ["JP"]


その他

po2web2pyでpoカタログからja.pyを生成する

http://pootle.sahanafoundation.org/pootle/ja/eden/ja.po/translate/ にあるgettextカタログファイルをweb2pyの言語ファイルに変換するには、po2web2pyコマンドを利用する。

Debian/Ubuntuの場合は translate-toolkit パッケージをインストールすればよい。

$ sudo apt-get install translate-toolkit

po2web2pyを利用する前には /etc/python2.6/sitecustomize.py の末尾に以下の設定を追加してからpo2web2pyを実行する。

import.sys
sys.setdefaultenconding('utf-8')

Pythonをバイトコンパイルする

models/000_config.pyはバイトコンパイルしてると反映されないので、変更するとバイトコンパイルしなおす。

cd /home/web2py
python web2py.py -S eden -R applications/eden/static/scripts/tools/compile.py

バイトコンパイル済みファイルを消す

バイトコンパイルをしていると設定を変更しても反映されません。そのときはキャッシュを削除して作り直します。。

ローカル環境ならweb2py管理画面 http://127.0.0.1:8000/admin/default/site から remove compiled ボタンを押す。

リモート環境なら、applicationの下にあるeden/compiledディレクトリをディレクトリごと削除。

JavascriptとCSSを編集する時の注意

Sahana Edenでは、Javascript と CSS を圧縮(改行を削る)したものを作成し使用している。 単にstatic内のフォルダを編集しただけでは実際のビューに反映されない。

  • statics/scripts/tools 内に、圧縮スクリプトと設定ファイルがある。
  • sahana.css.cfg、sahana.js.cfg に記載されているファイルが圧縮対象
  • CSS/JS に変更を加えた後、 python build.sahana.py を実行する

Bazaarでコミット時にVERSIONファイルを更新する

  1. ~/.bazaar/plugins にPythonファイルを作成
  2. 以下内容のフックコードを記述する
from bzrlib import mutabletree from datetime import datetime def start_commit_hook(tree): ver = "%s-%u (%s)" % (tree.branch.nick, int(tree.branch.revno()) + 1, datetime.now().strftime('%Y-%m-%d %H:%M:%S')) with open("%s/VERSION" % tree.basedir, 'w') as f: f.write(ver) mutabletree.MutableTree.hooks.install_named_hook('start_commit', start_commit_hook, 'Start Commit Hook')
ċ
location-convert.tar.bz2
(2k)
Jun NOGATA,
2011/05/28 4:41
Comments