cms/templates/admin/cms/page/change_form.html
52: .notfilled{
53: color: #808080 !important;
54: }
django-cms-2.1.3
本家に投げときました。
2011年4月14日木曜日
2011年4月12日火曜日
amazonの出荷が遅い
「amazonの出荷が遅い」そのまんまですがな。
4月5日に入金済みの商品早く出荷してくれんかな。
つまらないプロモーションメール送ってくる暇があったら。
なんで遅れているかといったら、
「現在当サイトでは、震災の影響により、商品の出荷処理に通常よりもお時間をいただいております。」
だそうだ。ほんまか!
挙句の果てに
この商品は配送準備に入っているため、キャンセルや変更はできません。返品についてはこちらをご覧ください。
だそうだ。在庫があるのに配送準備に何年かかるねーん! キャンセルして他所に注文も出来やしない。
追伸:
と書き込んだ直後に「ご注文の発送」メールが来た。監視されているぞ、これは。
さらに追伸:
お預かり店 アマ堺店
だそうだ。堺の倉庫も地震でずいぶん揺れたらしい。ほんまに長いことゆれてますなーあ。一ヶ月も揺れているとは。
さらにさらに追伸:
嫁に言わせると、「堺の倉庫」って、大阪府堺市じゃあなっくて宮城県にあったんじゃない?だとさ。
4月5日に入金済みの商品早く出荷してくれんかな。
つまらないプロモーションメール送ってくる暇があったら。
なんで遅れているかといったら、
「現在当サイトでは、震災の影響により、商品の出荷処理に通常よりもお時間をいただいております。」
だそうだ。ほんまか!
挙句の果てに
この商品は配送準備に入っているため、キャンセルや変更はできません。返品についてはこちらをご覧ください。
だそうだ。在庫があるのに配送準備に何年かかるねーん! キャンセルして他所に注文も出来やしない。
追伸:
と書き込んだ直後に「ご注文の発送」メールが来た。監視されているぞ、これは。
さらに追伸:
お預かり店 アマ堺店
だそうだ。堺の倉庫も地震でずいぶん揺れたらしい。ほんまに長いことゆれてますなーあ。一ヶ月も揺れているとは。
さらにさらに追伸:
嫁に言わせると、「堺の倉庫」って、大阪府堺市じゃあなっくて宮城県にあったんじゃない?だとさ。
2011年4月8日金曜日
python-dateutil
'No module named _thread'と出たら、ここからpython-dateutilを取り込み、インストール。
pipでインストールすると上が出る。
python-dateutil-2.0.tar.gz (Python >= 3.0)
python-dateutil-1.5.tar.gz (Python < 3.0)
pipでインストールすると上が出る。
python-dateutil-2.0.tar.gz (Python >= 3.0)
python-dateutil-1.5.tar.gz (Python < 3.0)
2011年2月18日金曜日
既存の関数に後からデコレート
django-axesでやっていたのでメモ
admin.site.loginに定義したwatch_loginをくっつける。middlewareの初期化でやっちゃう。
admin.site.loginに定義したwatch_loginをくっつける。middlewareの初期化でやっちゃう。
class FailedLoginMiddleware(object):
def __init__(self, *args, **kwargs):
super(FailedLoginMiddleware, self).__init__(*args, **kwargs)
# watch the admin login page
admin.site.login = watch_login(admin.site.login)
# and the regular auth login page
auth_views.login = watch_login(auth_views.login)
Djangoのadminのurlsは
django.admin.site.urls -> django.admin.site.get_urls
urlpatterns = patterns('',
url(r'^$', wrap(self.index), name='index'),
url(r'^logout/$', wrap(self.logout), name='logout'),
url(r'^password_change/$', wrap(self.password_change, cacheable=True), name='password_change'),
url(r'^password_change/done/$', wrap(self.password_change_done, cacheable=True), name='password_change_done'),
url(r'^jsi18n/$', wrap(self.i18n_javascript, cacheable=True), name='jsi18n'),
url(r'^r/(?P<content_type_id>\d+)/(?P<object_id>.+)/$', 'django.views.defaults.shortcut'),
url(r'^(?P<app_label>\w+)/$', wrap(self.app_index), name='app_list')
)
urlpatterns += patterns('',
url(r'^%s/%s/' % (model._meta.app_label, model._meta.module_name), include(model_admin.urls))
)
2011年2月17日木曜日
wxPythonでGUI調査
import wx.lib.inspection
app = wx.App()
frame = wx.Frame(None, -1, u'Frame')
frame.Show(True)
wx.lib.inspection.InspectionTool().Show()
app.MainLoop()
app = wx.App()
frame = wx.Frame(None, -1, u'Frame')
frame.Show(True)
wx.lib.inspection.InspectionTool().Show()
app.MainLoop()
2011年2月16日水曜日
ファイル名一括変更
rename 's/.htm/.html/' *.htm
後方参照も使えるぞ
01hogehoge.mp3 -> 01-01
rename 's/([0-9][0-9]).*\./01-$1\./' -v *.mp3
2011年2月15日火曜日
wxPythonをソースからインストール
本家はこちら。
wxWidgetsのクラスをpythonに晒して、蛇に「窓使い」をさせるもの。
思ってたより簡単だった。のでメモ。
wxWidgetsは既にソースコードからビルドインストールしてあるので割愛。
ソースのtarボールを取ってきて展開。その下の、wxPythonディレクトリのsetup.pyでやっつけられる。
ちゃんとやろうとすれば、wxWidgetsのcurrent stable soruceも付いてくるから野良ビルトすればよい。
1)wxWidgets
cd wxWidgets-XXXXXXXXXX
mkdir gtkbuild
../configure --prefix=$HOME/XXXX/XXXX/wxWidgets --enable-unicode --with-opengl
make
make install
cd ./contrib/src/stc
make
make install
cd -
cd ./contrib/src/gizmos
make
make install
cd -
~/.bash_mine
export PATH=$PATH:$HOME/XXXX/XXXX/wxWidgets/bin/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/XXXX/XXXX/wxWidgets/lib/
2)wxPython
cd ./wxPython
python ./setup.py install
python ./demo/demo.py でテスト
C++でずいぶん使い倒した記憶があるが、ほとんど忘れていた。
wxWidgetsのクラスをpythonに晒して、蛇に「窓使い」をさせるもの。
wxWidgetsは既にソースコードからビルドインストールしてあるので割愛。
ソースのtarボールを取ってきて展開。その下の、wxPythonディレクトリのsetup.pyでやっつけられる。
ちゃんとやろうとすれば、wxWidgetsのcurrent stable soruceも付いてくるから野良ビルトすればよい。
1)wxWidgets
cd wxWidgets-XXXXXXXXXX
mkdir gtkbuild
../configure --prefix=$HOME/XXXX/XXXX/wxWidgets --enable-unicode --with-opengl
make
make install
cd ./contrib/src/stc
make
make install
cd -
cd ./contrib/src/gizmos
make
make install
cd -
~/.bash_mine
export PATH=$PATH:$HOME/XXXX/XXXX/wxWidgets/bin/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/XXXX/XXXX/wxWidgets/lib/
2)wxPython
cd ./wxPython
python ./setup.py install
python ./demo/demo.py でテスト
C++でずいぶん使い倒した記憶があるが、ほとんど忘れていた。
2011年2月8日火曜日
django-axesでlogin lock
djangoでadminやloginに複数回のログイン失敗に対してlockをかけ設定した時間が経過しないとログインできないようにしたいならdjango-axes
ドキュメントとおりにインストールしてdjangoに設定すればOK
ソース読めば分かるけれど、ドキュメントにない設定もある。使うのは、
#失敗した後ロックされる時間
AXES_COOLOFF_TIME = 3 #hour
#ロックされたときに使うテンプレート
AXES_LOCKOUT_TEMPLATE = 'account_locked.html'
あと、
settings.pyで
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
と設定しているから
LOGFILE = os.path.join(settings.DIRNAME, 'axes.log')
を
LOGFILE = os.path.join(settings.PROJECT_ROOT, 'axes.log')
としてプロジェクトディレクトリにlogin履歴がaxes.logに書き込まれる。
AXES_LOCKOUT_TEMPLATEには
'cooloff_time': COOLOFF_TIME,
'failure_limit': FAILURE_LIMIT,
が渡されるので好きにしてよい。
デコレーターなので自前のログイン関数にも
from axes.decorators import watch_login
.......
@watch_login
def login(request):
でOK
本家はここ。 TNX!
ドキュメントとおりにインストールしてdjangoに設定すればOK
ソース読めば分かるけれど、ドキュメントにない設定もある。使うのは、
#失敗した後ロックされる時間
AXES_COOLOFF_TIME = 3 #hour
#ロックされたときに使うテンプレート
AXES_LOCKOUT_TEMPLATE = 'account_locked.html'
あと、
settings.pyで
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
と設定しているから
LOGFILE = os.path.join(settings.DIRNAME, 'axes.log')
を
LOGFILE = os.path.join(settings.PROJECT_ROOT, 'axes.log')
としてプロジェクトディレクトリにlogin履歴がaxes.logに書き込まれる。
AXES_LOCKOUT_TEMPLATEには
'cooloff_time': COOLOFF_TIME,
'failure_limit': FAILURE_LIMIT,
が渡されるので好きにしてよい。
デコレーターなので自前のログイン関数にも
from axes.decorators import watch_login
.......
@watch_login
def login(request):
でOK
本家はここ。 TNX!
2011年1月28日金曜日
2011年1月20日木曜日
sshFSでremote diskをmount
ubuntuだと
sudo apt-get install sshfs
でおわり。
マウント
sshfs [アカウント@]<サーバ>:[ディレクトリ] <マウントポイント>
アンマウント
fusermount -u <マウントポイント>
これで、リモートのファイルをローカル環境でいぢれる。開発用サーバーの出番が減るなあ。
Life with ITさんありがとう!
追記:-o reconnect
ServerAliveInterval 60 @~/.ssh/config
sudo apt-get install sshfs
でおわり。
マウント
sshfs [アカウント@]<サーバ>:[ディレクトリ] <マウントポイント>
アンマウント
fusermount -u <マウントポイント>
これで、リモートのファイルをローカル環境でいぢれる。開発用サーバーの出番が減るなあ。
Life with ITさんありがとう!
追記:-o reconnect
ServerAliveInterval 60 @~/.ssh/config
monkey_patch function
django-cmsのmonkeypatch_reverseから忘れないうちにメモ。
pythonで、関数もオブジェクトだから既存のライブラリを書き換えてしまえ。
main.py
pythonで、関数もオブジェクトだから既存のライブラリを書き換えてしまえ。
main.py
from funcs import funcfuncs/func.py #元の関数
def main():
func.printStr(u'hello')
if __name__ == '__main__':
main()
import monkey #新しい関数でpatch
main()
def printStr(string):monkey_patch.py #新しい関数
print u'original', string
import funcs
def monkey_patch_func():
def new_printStr(string):
print u'monkey', string
print funcs.func.printStr
funcs.func.old_printStr = funcs.func.printStr #元の関数を退避
funcs.func.printStr = new_printStr #新しい関数を接続
print funcs.func.printStr
monkeypatched = False #新しい関数の接続は1回だけ
if not monkeypatched:
monkey_patch_func()
monkeypatched = True
登録:
投稿 (Atom)
