changeset 0a79e3d9bc2a in modules/country:default
details: https://hg.tryton.org/modules/country?cmd=changeset;node=0a79e3d9bc2a
description:
        Improve documentation

        issue9598
        review312311002
diffstat:

 doc/conf.py    |  61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 doc/design.rst |  53 ++++++++++++++++++++++++++++++++++++++++++++++++++
 doc/index.rst  |  41 +++++++++-----------------------------
 doc/setup.rst  |  39 +++++++++++++++++++++++++++++++++++++
 doc/usage.rst  |  13 ++++++++++++
 setup.py       |   7 ++++-
 6 files changed, 181 insertions(+), 33 deletions(-)

diffs (258 lines):

diff -r bcff300599a0 -r 0a79e3d9bc2a doc/conf.py
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/conf.py       Wed Dec 30 16:28:18 2020 +0000
@@ -0,0 +1,61 @@
+# This file is part of Tryton.  The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
+
+modules_url = 'https://docs.tryton.org/projects/modules-{module}/en/{series}/'
+trytond_url = 'https://docs.tryton.org/projects/server/en/{series}/'
+
+
+def get_info():
+    import configparser
+    import os
+    import subprocess
+    import sys
+
+    module_dir = os.path.dirname(os.path.dirname(__file__))
+
+    config = configparser.ConfigParser()
+    config.read_file(open(os.path.join(module_dir, 'tryton.cfg')))
+    info = dict(config.items('tryton'))
+
+    result = subprocess.run(
+        [sys.executable, 'setup.py', '--name'],
+        stdout=subprocess.PIPE, check=True, cwd=module_dir)
+    info['name'] = result.stdout.decode('utf-8').strip()
+
+    result = subprocess.run(
+        [sys.executable, 'setup.py', '--version'],
+        stdout=subprocess.PIPE, check=True, cwd=module_dir)
+    version = result.stdout.decode('utf-8').strip()
+    if 'dev' in version:
+        info['series'] = 'latest'
+    else:
+        info['series'] = '.'.join(version.split('.', 2)[:2])
+
+    for key in {'depends', 'extras_depend'}:
+        info[key] = info.get(key, '').strip().splitlines()
+    info['modules'] = set(info['depends'] + info['extras_depend'])
+    info['modules'] -= {'ir', 'res'}
+
+    return info
+
+
+info = get_info()
+
+master_doc = 'index'
+project = info['name']
+release = version = info['series']
+default_role = 'ref'
+highlight_language = 'none'
+extensions = [
+    'sphinx.ext.intersphinx',
+    ]
+intersphinx_mapping = {
+    'trytond': (trytond_url.format(series=version), None),
+    }
+intersphinx_mapping.update({
+        m: (modules_url.format(
+                module=m.replace('_', '-'), series=version), None)
+        for m in info['modules']
+        })
+
+del get_info, info, modules_url, trytond_url
diff -r bcff300599a0 -r 0a79e3d9bc2a doc/design.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/design.rst    Wed Dec 30 16:28:18 2020 +0000
@@ -0,0 +1,53 @@
+******
+Design
+******
+
+The *Country Module* introduces the following concepts:
+
+.. _model-country.country:
+
+Country
+=======
+
+This is the top level concept provided by the *Country Module*.
+Each country record in Tryton represents a specific country, political state
+or nation.
+
+The ISO 3166 standard defines the codes and names of countries and is used when
+`Loading and updating countries and subdivisions`.
+
+.. seealso::
+
+   Countries can be found under the main menu entry:
+
+      |Administration --> Countries|__
+
+      .. |Administration --> Countries| replace:: 
:menuselection:`Administration --> Countries`
+      __ https://demo.tryton.org/model/country.country
+
+.. _model-country.subdivision:
+
+Subdivision
+===========
+
+The *Subdivision* of a `Country <model-country.country>` represents a well
+defined area of that country.
+Subdivisions can be any size, ranging from regions, provinces, states, and
+counties down to municipalities, cities and boroughs.
+
+The ISO 3166-2 standard defines codes and names for country subdivisions.
+These are automatically loaded and updated along with the countries.
+
+.. _model-country.zip:
+
+Zip
+===
+
+The *Zip* concept is used to store postal codes, and their relationship to
+`Countries <model-country.country>`, `Subdivisions <model-country.subdivision>`
+and cities.
+Depending on the country they relate to these codes are known locally as
+either postcodes, post codes, :abbr:`PIN (Postal Index Number)` or
+:abbr:`ZIP (Zone Improvement Plan)` codes.
+
+A script is provided for `loading and updating postal codes`.
diff -r bcff300599a0 -r 0a79e3d9bc2a doc/index.rst
--- a/doc/index.rst     Sat Dec 19 17:08:45 2020 +0100
+++ b/doc/index.rst     Wed Dec 30 16:28:18 2020 +0000
@@ -1,36 +1,15 @@
+##############
 Country Module
 ##############
 
-The country module defines the concepts of country and subdivision and
-comes preloaded with the ISO 3166 list of countries and subdivisions
-thanks to the pycountry module.
-
-
-Country
-*******
-
-A country is defined by the full name of the country, a code (the ISO
-country code made of two chars) and the list of subdivisions.
-
-
-Subdivision
-***********
+The *Country Module* provides the basic features needed to handle data
+related to countries, their subdivisions, and their postal codes.
+It also provides some scripts that are used to load standard countries,
+subdivisions, and selected countries' postal codes into Tryton.
 
-A subdivision is defined by a name, a code and a type (e.g, Capital
-City, Province, Emirate, etc)
-
-
-Zip
-***
-
-A zip links a zip code of a country to a city.
+.. toctree::
+   :maxdepth: 2
 
-Scripts
-*******
-
-There are two scripts:
-
-* `trytond_import_countries` to create and update countries and
-  subdivisions from the ISO database.
-
-* `trytond_import_zip` to create zips by country from the geonames database.
+   setup
+   usage
+   design
diff -r bcff300599a0 -r 0a79e3d9bc2a doc/setup.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/setup.rst     Wed Dec 30 16:28:18 2020 +0000
@@ -0,0 +1,39 @@
+*****
+Setup
+*****
+
+When the *Country Module* is activated it does not create any country,
+subdivision or postal code records.
+You do this using the provided scripts.
+
+.. _Loading and updating countries and subdivisions:
+
+Loading and updating countries and subdivisions
+===============================================
+
+The :command:`trytond_import_countries` script loads and updates Tryton with
+the `ISO 3166`_ list of `Countries <model-country.country>` and
+`Subdivisions <model-country.subdivision>`.
+
+You run it with:
+
+.. code-block:: sh
+
+   trytond_import_countries -c trytond.conf -d <database>
+
+.. _ISO 3166: https://en.wikipedia.org/wiki/ISO_3166
+
+.. _Loading and updating postal codes:
+
+Loading and updating postal codes
+=================================
+
+You can use the :command:`trytond_import_zip` script to load and update the
+`Postal Codes <model-country.zip>` in Tryton from the `GeoNames Database`_.
+It is run with:
+
+.. code-block:: bash
+
+   trytond_import_zip -c trytond.conf -d <database> <two_letter_country_code>
+
+.. _GeoNames Database: https://www.geonames.org/
diff -r bcff300599a0 -r 0a79e3d9bc2a doc/usage.rst
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/usage.rst     Wed Dec 30 16:28:18 2020 +0000
@@ -0,0 +1,13 @@
+*****
+Usage
+*****
+
+This module provides a list of `Countries <model-country.country>` and other
+reference data which is normally managed using the
+:doc:`provided scripts <setup>`.
+
+.. tip::
+
+   From a country you can :guilabel:`Open related records` and select
+   :guilabel:`Zip` to find a list of all the `Postal Codes <model-country.zip>`
+   for that country.
diff -r bcff300599a0 -r 0a79e3d9bc2a setup.py
--- a/setup.py  Sat Dec 19 17:08:45 2020 +0100
+++ b/setup.py  Wed Dec 30 16:28:18 2020 +0000
@@ -10,9 +10,12 @@
 
 
 def read(fname):
-    return io.open(
+    content = io.open(
         os.path.join(os.path.dirname(__file__), fname),
         'r', encoding='utf-8').read()
+    content = re.sub(
+        r'(?m)^\.\. toctree::\r?\n((^$|^\s.*$)\r?\n)*', '', content)
+    return content
 
 
 def get_require_version(name):
@@ -80,7 +83,7 @@
     download_url=download_url,
     project_urls={
         "Bug Tracker": 'https://bugs.tryton.org/',
-        "Documentation": 'https://docs.tryton.org/',
+        "Documentation": 'https://docs.tryton.org/projects/modules-country/',
         "Forum": 'https://www.tryton.org/forum',
         "Source Code": 'https://hg.tryton.org/modules/country',
         },

Reply via email to