--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/source/appextend.rst Tue May 15 18:31:37 2018 +0200
@@ -0,0 +1,115 @@
+.. _appextend:
+
+How to create a new Portlet ?
+-----------------------------
+
+**Portlets** are pluggable user interface software components that are managed and displayed in a web portal,
+for example an enterprise portal or a web CMS. A portlet can aggregate (integrate) and personalize content from
+different sources within a web page. A portlet responds to requests from a web client with and generates dynamic content.
+(*reference:* `Wiki portlet`_)
+
+.. _`wiki portlet`: https://en.wikipedia.org/wiki/Portlet
+
+
+**Pyams Portal** provides predefined portlets that to compose and organize the structure of a website.
+
+1. Define a Portlet setting
+'''''''''''''''''''''''''''
+
+Portlet setting interface are defined in ``interfaces.py``, you can use IPortletSettings or extend the interface
+by adding an additional properties for example:
+
+.. code-block:: python
+
+ from zope.schema import Text
+
+ class INewPortletSettings(IPortletSettings):
+
+ comment = Text(title=_("Comment"),
+ required=True,
+ default=True)
+
+PortletSetting component does what IPortletSettings describes. This is usually referred to as the implementation
+of IPortletSettings.
+
+.. code-block:: python
+
+ @implementer(IPortletSettings)
+ class ImagePortletSettings(PortletSettings):
+ """Image portlet settings"""
+
+ _image = FileProperty(IImagePortletSettings['image'])
+
+ @property
+ def image(self):
+ return self._image
+
+ @image.setter
+ def image(self, value):
+ self._image = value
+ if (value is not None) and (value is not DELETED_FILE):
+ alsoProvides(self._image, IResponsiveImage)
+
+
+
+2. Create Portlet
+'''''''''''''''''
+
+The Porltet component is a utility, it implement the IPortlet interface and it registered by the portlet_config adapter
+
+To register a new portlet you must specify the settings_class associated
+
+.. code-block:: python
+
+ @portlet_config(permission=VIEW_PERMISSION)
+ class ImagePortlet(Portlet):
+ """Image portlet"""
+
+ name = IMAGE_PORTLET_NAME
+ label = _("Image")
+
+ toolbar_image = None
+ toolbar_css_class = 'fa fa-fw fa-2x fa-picture-o'
+
+ settings_class = ImagePortletSettings
+
+
+
+4. Create HTML template
+'''''''''''''''''''''''
+
+
+.. code-block:: genshi
+
+ <span>${view.settings.comment}</span>
+
+
+
+5. Renderer
+'''''''''''
+
+.. code-block:: python
+
+ @adapter_config(context=(IPortalContext, IPyAMSLayer, Interface, IImagePortletSettings), provides=IPortletRenderer)
+ @template_config(template='image.pt', layer=IPyAMSLayer)
+ class ImagePortletRenderer(PortletRenderer):
+ """Image portlet renderer"""
+
+ label = _("Responsive image renderer")
+
+
+
+6. Zmi integration module
+'''''''''''''''''''''''''
+
+.. code-block:: python
+
+ @pagelet_config(name='properties.html', context=IImagePortletSettings, request_type=IPyAMSLayer,
+ permission=VIEW_SYSTEM_PERMISSION)
+ class ImagePortletSettingsEditor(PortletSettingsEditor):
+ """Image portlet settings editor"""
+
+ settings = IImagePortletSettings
+
+
+
--- a/src/source/conf.py Wed May 09 17:33:41 2018 +0200
+++ b/src/source/conf.py Tue May 15 18:31:37 2018 +0200
@@ -107,7 +107,7 @@
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
-language = None
+language = 'en'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
@@ -117,10 +117,12 @@
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
+# The default language to highlight source code in.
+highlight_language = 'python3'
+
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = False
-
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
@@ -241,5 +243,6 @@
def setup(app):
+
app.add_stylesheet('css/custom.css')
--- a/src/source/developerguide.rst Wed May 09 17:33:41 2018 +0200
+++ b/src/source/developerguide.rst Tue May 15 18:31:37 2018 +0200
@@ -11,4 +11,8 @@
:maxdepth: 2
zca
- extend
+ package_layout
+ appextend
+ zmi_integration
+ traverser
+ tales
--- a/src/source/extend.rst Wed May 09 17:33:41 2018 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-.. _extending:
-
-Extending PyAMS
-===============
-
-.. toctree::
- :maxdepth: 2
-
- package_layout
- appextend
- zmi_integration
- traverser
- tales
-
-
--- a/src/source/plugins.rst Wed May 09 17:33:41 2018 +0200
+++ b/src/source/plugins.rst Tue May 15 18:31:37 2018 +0200
@@ -13,7 +13,7 @@
Visit https://www.elastic.co/ to learn how to install Elasticsearch Server, and how install `ingest-attachment` plug-in
-.. tips:: Documentation for installing ElasticSearch 5.4
+.. tip:: Documentation for installing ElasticSearch 5.4
- https://www.elastic.co/guide/en/elasticsearch/reference/5.4/gs-installation.html
- https://www.elastic.co/guide/en/elasticsearch/plugins/5.4/ingest-attachment.html
@@ -79,7 +79,7 @@
3. Create or update index:
''''''''''''''''''''''''''
-You have to index PyAMS objects into ES database. From a shell:
+You have to Update ElasticSearch indexes with all database contents with ``pymas_es_index``. From a shell:
.. code-block:: bash
@@ -93,7 +93,7 @@
===============================
-With the package *PyAMS_nltk* PyAMS can use the NLTK features
+PyAMS enjoy the NLTK features through the *PyAMS_calalog*
.. seealso::
@@ -101,12 +101,12 @@
+Initializing NLTK (Natural Language Toolkit)
+--------------------------------------------
-Initializing NLTK
------------------
-
-Some NLTK (Natural Language Toolkit) tokenizers and stopwords utilities are used to index fulltext contents elements.
-This package requires downloading and configuration of several elements which are done as follow:
+Some NLTK Collections like **tokenizers** and **stopwords** utilities are used to index fulltext contents
+elements. You can enhanced NTKL indexation according to your own needs. This package requires downloading and
+configuration of several elements which are done as follow:
*1. Run the Python shell with PyAMS environment:*
@@ -118,12 +118,24 @@
*2. In the Python shell:*
-.. code-block:: python
+.. code-block:: pycon
>>> import nltk
>>> nltk.download()
-.. code-block:: python
+
+*3. Configuration installation directory:*
+
+.. tip::
+
+ On Debian GNU/Linux, you can choose any directory between '*~/nltk_data*' (where '~' is the homedir of user running
+ Pyramid application), '*/usr/share/nltk_data*', '*/usr/local/share/nltk_data*', '*/usr/lib/nltk_data*' and
+ '*/usr/local/lib/nltk_data*'
+
+ Please check if you have permission to write to this directory
+
+
+.. code-block:: shell
NLTK Downloader
---------------------------------------------------------------------------
@@ -138,33 +150,44 @@
Local Machine:
- Data directory: /home/tflorac/nltk_data
- ---------------------------------------------------------------------------
- s) Show Config u) Set Server URL d) Set Data Dir m) Main Menu
- ---------------------------------------------------------------------------
+
Config> d
New directory> /usr/local/lib/nltk_data
+
+*4. Return to the main menu:*
+
+.. code-block:: shell
+
+ ---------------------------------------------------------------------------
+ s) Show Config u) Set Server URL d) Set Data Dir m) Main Menu
+ ---------------------------------------------------------------------------
+ Config> m
+
+
+*5. Download utilities:*
+
+ punkt
+ Punkt Tokenizer Models
+ stopwords
+ Stopwords Corpus
+
+
+.. code-block:: shell
+
+ ---------------------------------------------------------------------------
+ d) Download l) List u) Update c) Config h) Help q) Quit
+ ---------------------------------------------------------------------------
+ Downloader> d
+ Download which package (l=list; x=cancel)?
+ Identifier> punkt
+ Downloading package punkt to /usr/local/lib/nltk_data...
+ Downloader> d
+ Download which package (l=list; x=cancel)?
+ Identifier> stopwords
+ Downloading package stopwords to /usr/local/lib/nltk_data...
+
+
.. tip::
- On Debian GNU/Linux, you can choose any directory between '*~/nltk_data*' (where '~' is the homedir of user running
- Pyramid application), '*/usr/share/nltk_data*', '*/usr/local/share/nltk_data*', '*/usr/lib/nltk_data*' and
- '*/usr/local/lib/nltk_data*'
-
-
-.. code-block:: pycon
-
- Config> m
- ---------------------------------------------------------------------------
- d) Download l) List u) Update c) Config h) Help q) Quit
- ---------------------------------------------------------------------------
- Downloader> d
-
- Download which package (l=list; x=cancel)?
- Identifier> punkt
- Downloading package punkt to /usr/local/lib/nltk_data...
-
- Downloader> d
-
- Download which package (l=list; x=cancel)?
- Identifier> stopwords
- Downloading package stopwords to /usr/local/lib/nltk_data...
+ The full list of NTLK Collection are displayable with the ``l) list`` option