From c5a0b790e4e6bdc494f3f27843215688e502d619 Mon Sep 17 00:00:00 2001 From: Gael Pasgrimaud Date: Sun, 19 Jun 2011 12:53:45 +0200 Subject: [PATCH] docs --- pyramid_formalchemy/actions.py | 66 ++++++++++++++++-- .../fr/LC_MESSAGES/pyramid_formalchemy.mo | Bin 766 -> 770 bytes .../fr/LC_MESSAGES/pyramid_formalchemy.po | 32 ++++----- .../locale/pyramid_formalchemy.pot | 32 ++++----- pyramid_formalchemy/views.py | 1 + 5 files changed, 95 insertions(+), 36 deletions(-) diff --git a/pyramid_formalchemy/actions.py b/pyramid_formalchemy/actions.py index ade111a..b939519 100644 --- a/pyramid_formalchemy/actions.py +++ b/pyramid_formalchemy/actions.py @@ -6,7 +6,52 @@ from pyramid_formalchemy.i18n import get_localizer from pyramid_formalchemy.i18n import _ import functools +__doc__ = """ +pyramid_formalchemy provide a way to use some ``actions`` in your template. +Action are basically links or input button. + +By default there is only one category ``buttons`` which are the forms buttons +but you can add some categories like this:: + + >>> from pyramid_formalchemy.views import ModelView + >>> class MyView(ModelView) + ... # keep default action categorie and add the custom_actions categorie + ... actions_categories = ('buttons', 'custom_actions') + ... # update the default actions for all models + ... defaults_actions = actions_categories.defaults_actions.copy() + ... defaults_actions.update(edit_custom_actions=myactions) + +Where ``myactions`` is an :class:`~pyramid_formalchemy.actions.Actions` instance + +You can also customize the actions per Model:: + + >>> class MyArticle(Base): + ... edit_buttons = Actions() + +The available actions are: + +- listing + +- new + +- edit + +But you can add your own:: + + >>> from pyramid_formalchemy.views import ModelView + >>> from pyramid_formalchemy import actions + >>> class MyView(ModelView) + ... actions.action() + ... def extra(self): + ... # do stuff + ... return self.render(**kw) + +Then pyramid_formalchemy will try to load some ``extra_buttons`` actions. +""" + def action(name=None): + """A decorator use to add some actions to the request. + """ def wrapper(func): action = name or func.__name__ @functools.wraps(func) @@ -26,7 +71,8 @@ def action(name=None): class Action(object): - """A model action is used to add some action in model views:: + """A model action is used to add some action in model views. The content + and alt parameters should be a ``TranslationString``:: >>> from webob import Request >>> request = Request.blank('/') @@ -93,7 +139,7 @@ class Link(Action): class ListItem(Action): """ - An action rendered as a link:: + An action rendered as a link contained by a list item:: >>> from webob import Request >>> request = Request.blank('/') @@ -114,6 +160,9 @@ class Input(Action): >>> request = Request.blank('/') >>> action = Input('myaction', ... value=_('Click here')) + + Rendering:: + >>> action.render(request) u'' @@ -139,6 +188,8 @@ class UIButton(Action): Click here + You can use javascript:: + >>> action = UIButton('myaction', icon='ui-icon-trash', ... content=_("Click here"), attrs={'onclick':'$(#link).click();'}) >>> print action.render(request) @@ -164,12 +215,15 @@ class UIButton(Action): self.attrs['href'] = repr('#') class Actions(list): - """ + """A action list:: + >>> actions = Actions('pyramid_formalchemy.actions.delete', ... Link('link1', content=_('A link'), attrs={'href':'request.application_url'})) >>> actions [, ] + You must use a request to render them:: + >>> from webob import Request >>> request = Request.blank('/') >>> print actions.render(request) #doctest: +ELLIPSIS +NORMALIZE_WHITESPACE @@ -189,10 +243,14 @@ class Actions(list): return u'\n'.join([a.render(request, **kwargs) for a in self]) class Languages(Actions): - """ + """Languages actions:: + >>> langs = Languages('fr', 'en') >>> langs [, ] + + It take care about the active language:: + >>> from webob import Request >>> request = Request.blank('/') >>> request.cookies['_LOCALE_'] = 'fr' diff --git a/pyramid_formalchemy/locale/fr/LC_MESSAGES/pyramid_formalchemy.mo b/pyramid_formalchemy/locale/fr/LC_MESSAGES/pyramid_formalchemy.mo index e30251f4e52c7358bb045e7e81ef68dc171a4a44..6dcd2de7278d89534bc472c41ca477c5d4e381e2 100644 GIT binary patch delta 191 zcmeyz+Qc@&rJkLEf#E6;vjOp4AQlATCqT>s#NU8e1c-kFaXTXeg8&eN)XiXGU;ycx z52QJP^l~5#65j|F-vJdr0Hj5M;-{eU4}i23kpCP=GdLwCXEQiYJS@cLnwOrFS)9S( vR+O5ToH6l=?qpuZ=`5C3rly-$F!C}AIs)YrGmC-piFt>Y16h-|Fj)cs&6y<~ delta 188 zcmZo-`^P%LrCyMMf#E6;vjFjPAQl1QH$cn=#Egs(aSkBe4#d1b3=*Hp#K6D~q~`!> zP9VJmNQ1=J0clYny%owo4Wy-j{7XO@r0y+L{5z0la7s+hW^kT(SZLxC9qyFWoYaz3 shSZeIlF9sxGgyqRjLbH#X5?j@e2U3JFu1g!peQppwTQtLr~pU-0AeN~vH$=8 diff --git a/pyramid_formalchemy/locale/fr/LC_MESSAGES/pyramid_formalchemy.po b/pyramid_formalchemy/locale/fr/LC_MESSAGES/pyramid_formalchemy.po index 987aa6d..e831c89 100644 --- a/pyramid_formalchemy/locale/fr/LC_MESSAGES/pyramid_formalchemy.po +++ b/pyramid_formalchemy/locale/fr/LC_MESSAGES/pyramid_formalchemy.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: pyramid_formalchemy 0.3\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2011-06-18 12:02+0200\n" -"PO-Revision-Date: 2011-06-18 13:18+0200\n" +"PO-Revision-Date: 2011-06-18 19:54+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: fr \n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" @@ -18,39 +18,39 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.5\n" -#: pyramid_formalchemy/actions.py:190 +#: pyramid_formalchemy/actions.py:206 +msgid "French" +msgstr "Français" + +#: pyramid_formalchemy/actions.py:207 +msgid "English" +msgstr "Anglais" + +#: pyramid_formalchemy/actions.py:224 msgid "New ${model_name}" msgstr "Nouveau ${model_name}" -#: pyramid_formalchemy/actions.py:198 +#: pyramid_formalchemy/actions.py:232 msgid "Save" msgstr "Sauver" -#: pyramid_formalchemy/actions.py:205 +#: pyramid_formalchemy/actions.py:239 msgid "Save and add another" msgstr "Sauver et ajouter un autre" -#: pyramid_formalchemy/actions.py:214 +#: pyramid_formalchemy/actions.py:248 msgid "Edit" msgstr "Editer" -#: pyramid_formalchemy/actions.py:221 +#: pyramid_formalchemy/actions.py:255 msgid "Back" msgstr "Retour" -#: pyramid_formalchemy/actions.py:229 +#: pyramid_formalchemy/actions.py:263 msgid "Delete" msgstr "Supprimer" -#: pyramid_formalchemy/actions.py:240 +#: pyramid_formalchemy/actions.py:274 msgid "Cancel" msgstr "Annuler" -#: pyramid_formalchemy/views.py:245 -msgid "edit" -msgstr "Editer" - -#: pyramid_formalchemy/views.py:252 -msgid "delete" -msgstr "Supprimer" - diff --git a/pyramid_formalchemy/locale/pyramid_formalchemy.pot b/pyramid_formalchemy/locale/pyramid_formalchemy.pot index 1278b5c..726b3a2 100644 --- a/pyramid_formalchemy/locale/pyramid_formalchemy.pot +++ b/pyramid_formalchemy/locale/pyramid_formalchemy.pot @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: pyramid_formalchemy 0.3\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-06-18 13:16+0200\n" +"POT-Creation-Date: 2011-06-18 19:54+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,39 +18,39 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.5\n" -#: pyramid_formalchemy/actions.py:190 +#: pyramid_formalchemy/actions.py:206 +msgid "French" +msgstr "" + +#: pyramid_formalchemy/actions.py:207 +msgid "English" +msgstr "" + +#: pyramid_formalchemy/actions.py:224 msgid "New ${model_name}" msgstr "" -#: pyramid_formalchemy/actions.py:198 +#: pyramid_formalchemy/actions.py:232 msgid "Save" msgstr "" -#: pyramid_formalchemy/actions.py:205 +#: pyramid_formalchemy/actions.py:239 msgid "Save and add another" msgstr "" -#: pyramid_formalchemy/actions.py:214 +#: pyramid_formalchemy/actions.py:248 msgid "Edit" msgstr "" -#: pyramid_formalchemy/actions.py:221 +#: pyramid_formalchemy/actions.py:255 msgid "Back" msgstr "" -#: pyramid_formalchemy/actions.py:229 +#: pyramid_formalchemy/actions.py:263 msgid "Delete" msgstr "" -#: pyramid_formalchemy/actions.py:240 +#: pyramid_formalchemy/actions.py:274 msgid "Cancel" msgstr "" -#: pyramid_formalchemy/views.py:245 -msgid "edit" -msgstr "" - -#: pyramid_formalchemy/views.py:252 -msgid "delete" -msgstr "" - diff --git a/pyramid_formalchemy/views.py b/pyramid_formalchemy/views.py index 2a1b652..f297fff 100644 --- a/pyramid_formalchemy/views.py +++ b/pyramid_formalchemy/views.py @@ -39,6 +39,7 @@ class Session(object): """commit transaction""" def set_language(request): + """Set the _LOCALE_ cookie used by ``pyramid``""" resp = exc.HTTPFound(location=request.referer or request.application_url) resp.set_cookie('_LOCALE_', request.GET.get('_LOCALE_', 'en')) return resp