Documentation updates

This commit is contained in:
Roberto Rosario
2012-02-01 13:43:24 -04:00
parent 58bea814f1
commit a90896e774
35 changed files with 994 additions and 914 deletions
+67
View File
@@ -0,0 +1,67 @@
.. _contributors:
============
Contributors
============
How to contribute?
------------------
You can help further the development of **Mayan EDMS** by reporting bugs, submitting documentation, patches, with monetary or hardware donations.
Bug fixes
---------
* Aziz M. Bookwala (https://github.com/azizmb)
* IHLeanne (https://github.com/IHLeanne)
* Сергей Глита [Sergey Glita] (s.v.glita@gmail.com)
* Meurig Freeman (https://github.com/meurig)
* David Herring (https://github.com/abadger1406)
Bug reports
-----------
* Aziz M. Bookwala (https://github.com/azizmb)
* tightwork (https://github.com/tightwork)
* Joost Cassee (joost@cassee.net, https://github.com/jcassee)
* Brian Huxley
* dAnjou (https://github.com/dAnjou)
* Сергей Глита [Sergey Glita] (s.v.glita@gmail.com)
* IHLeanne (https://github.com/IHLeanne)
* valterwill (https://github.com/valterwill)
* David Herring (https://github.com/abadger1406)
Patches
-------
* Meurig Freeman (https://github.com/meurig)
* Сергей Глита [Sergey Glita] (s.v.glita@gmail.com)
Suggestions
-----------
* Cezar Jenkins (https://twitter.com/#!/emperorcezar)
* Сергей Глита [Sergey Glita] (s.v.glita@gmail.com)
* Barry Rowlingson (http://geospaced.blogspot.com)
* Gour (https://github.com/gour)
Translations
------------
* Portuguese
- Emerson Soares (http://emersonsoares.com)
- Renata Oliveira (https://twitter.com/#!/rnataoliveira)
* Russian
- Сергей Глита [Sergey Glita] (s.v.glita@gmail.com)
* Italian
- SeeOpen.IT (Numero Verde: 800.910.125, E-mail: sales@seeopen.it)
Remote access for debugging
---------------------------
* Сергей Глита [Sergey Glita] (s.v.glita@gmail.com)
* David Herring (https://github.com/abadger1406)
Monetary donations
------------------
* David Herring (https://github.com/abadger1406)
+81
View File
@@ -0,0 +1,81 @@
.. _development:
Development
===========
**Mayan EDMS** is under active development, and contributions are welcome.
If you have a feature request, suggestion, or bug reports, please open a new
issue on the `GitHub issue tracker`_. To submit patches, please send a pull request on GitHub_. Contributors are credited accordingly on the :ref:`contributors` section.
.. _GitHub: http://github.com/rosarior/mayan/
.. _`GitHub issue tracker`: https://github.com/rosarior/mayan/issues
.. _scm:
--------------
Source Control
--------------
**Mayan EDMS** source is controlled with Git_
The project is publicly accessible, hosted and can be cloned from **GitHub** using::
$ git clone git://github.com/rosarior/mayan.git
Git branch structure
--------------------
**Mayan EDMS** follows the model layout by Vincent Driessen in his `Successful Git Branching Model`_ blog post. Git-flow_ is a great tool for managing the repository in this way.
``develop``
The "next release" branch, likely unstable.
``master``
Current production release (|version|).
``feature/``
Unfinished/ummerged feature.
Each release is tagged and available for download on the Downloads_ section of the **Mayan EDMS** repository on GitHub_
When submitting patches, please place your feature/change in its own branch prior to opening a pull request on GitHub_.
To familiarize yourself with the technical details of the project read the :ref:`internals` section.
.. _Git: http://git-scm.org
.. _`Successful Git Branching Model`: http://nvie.com/posts/a-successful-git-branching-model/
.. _git-flow: http://github.com/nvie/gitflow
.. _Downloads: https://github.com/rosarior/mayan/archives/master
.. _docs:
-----------------
Documentation
-----------------
The documentation is written in `reStructured Text`_ format.
The documentation lives in the ``docs`` directory. In order to build it, you will first need to install Sphinx_. ::
$ pip install sphinx
Then, to build an HTML version of the documentation, simply run the following from the **docs** directory::
$ make html
Your ``docs/_build/html`` directory will then contain an HTML version of the documentation, ready for publication on most web servers.
You can also generate the documentation in format other than HTML.
.. _`reStructured Text`: http://docutils.sourceforge.net/rst.html
.. _Sphinx: http://sphinx.pocoo.org
---------------
Translations
---------------
Translations are now being handled online via the **Transifex** website: https://www.transifex.net/projects/p/mayan-edms/
+423
View File
@@ -0,0 +1,423 @@
========
Settings
========
**Mayan EDMS** has many configuration options that make it very adaptable to
different server configurations.
Documents
---------
.. data:: DOCUMENTS_CHECKSUM_FUNCTION
Default: ``hashlib.sha256(x).hexdigest()``
.. data:: DOCUMENTS_UUID_FUNCTION
Default: ``unicode(uuid.uuid4())``
.. data:: DOCUMENTS_STORAGE_BACKEND
Default: ``FileBasedStorage`` class
.. data:: DOCUMENTS_PREVIEW_SIZE
Default: ``640x480``
.. data:: DOCUMENTS_PRINT_SIZE
Default: ``1400``
.. data:: DOCUMENTS_MULTIPAGE_PREVIEW_SIZE
Default: ``160x120``
.. data:: DOCUMENTS_THUMBNAIL_SIZE
Default: ``50x50``
.. data:: DOCUMENTS_DISPLAY_SIZE
Default: ``1200``
.. data:: DOCUMENTS_RECENT_COUNT
Default: ``40``
Maximum number of recent (created, edited, viewed) documents to
remember per user.
.. data:: DOCUMENTS_ZOOM_PERCENT_STEP
Default: ``50``
Amount in percent zoom in or out a document page per user interaction.
.. data:: DOCUMENTS_ZOOM_MAX_LEVEL
Default: ``200``
Maximum amount in percent (%) to allow user to zoom in a document page interactively.
.. data:: DOCUMENTS_ZOOM_MIN_LEVEL
Default: ``50``
Minimum amount in percent (%) to allow user to zoom out a document page interactively.
.. data:: DOCUMENTS_ROTATION_STEP
Default: ``90``
Amount in degrees to rotate a document page per user interaction.
.. data:: DOCUMENTS_CACHE_PATH
Default: ``image_cache`` (relative to the installation path)
The path where the visual representations of the documents are stored for fast display.
Converter
---------
.. data:: CONVERTER_IM_CONVERT_PATH
Default: ``/usr/bin/convert``
File path to imagemagick's convert program.
.. data:: CONVERTER_IM_IDENTIFY_PATH
Default: ``/usr/bin/identify``
File path to imagemagick's identify program.
.. data:: CONVERTER_GM_PATH
Default: ``/usr/bin/gm``
File path to graphicsmagick's program.
.. data:: CONVERTER_GM_SETTINGS
Default: None
.. data:: CONVERTER_GRAPHICS_BACKEND
Default: ``converter.backends.python``
Graphics conversion backend to use. Options are: ``converter.backends.imagemagick``,
``converter.backends.graphicsmagick`` and ``converter.backends.python``.
Suggested options: ``-limit files 1 -limit memory 1GB -limit map 2GB -density 200``
.. data:: CONVERTER_UNOCONV_PATH
Default: ``/usr/bin/unoconv``
Path to the unoconv program.
.. data:: CONVERTER_UNOCONV_USE_PIPE
Default: ``True``
Use alternate method of connection to LibreOffice using a pipe, it is slower but less prone to segmentation faults.
Linking
-------
.. data:: LINKING_SHOW_EMPTY_SMART_LINKS
Default: ``True``
Show smart links even when they don't return any documents.
Storage
-------
.. data:: STORAGE_GRIDFS_HOST
Default: ``localhost``
.. data:: STORAGE_GRIDFS_PORT
Default: ``27017``
.. data:: STORAGE_GRIDFS_DATABASE_NAME
Default: ``document_storage``
.. data:: STORAGE_FILESTORAGE_LOCATION
Default: ``document_storage``
Document indexing
-----------------
.. data:: DOCUMENT_INDEXING_AVAILABLE_INDEXING_FUNCTIONS
Default: ``proper_name``
.. data:: DOCUMENT_INDEXING_SUFFIX_SEPARATOR
Default: ``_`` (underscore)
.. data:: DOCUMENT_INDEXING_FILESYSTEM_SLUGIFY_PATHS
Default: ``False``
.. data:: DOCUMENT_INDEXING_FILESYSTEM_MAX_SUFFIX_COUNT
Default: ``1000``
.. data:: DOCUMENT_INDEXING_FILESYSTEM_FILESERVING_PATH
Default: ``/tmp/mayan/documents``
.. data:: DOCUMENT_INDEXING_FILESYSTEM_FILESERVING_ENABLE
Default: ``True``
OCR
---
.. data:: OCR_TESSERACT_PATH
Default: ``/bin/tesseract``
File path to the ``tesseract`` executable, used to perform OCR on document
page's images.
.. data:: OCR_TESSERACT_LANGUAGE
Default: ``eng``
Language code passed to the ``tesseract`` executable.
.. data:: OCR_REPLICATION_DELAY
Default: ``0``
Amount of seconds to delay OCR of documents to allow for the node's
storage replication overhead.
.. data:: OCR_NODE_CONCURRENT_EXECUTION
Default: ``1``
Maximum amount of concurrent document OCRs a node can perform.
.. data:: OCR_AUTOMATIC_OCR
Default: ``False``
Automatically queue newly created documents or newly uploaded versions
of existing documents for OCR.
.. data:: OCR_QUEUE_PROCESSING_INTERVAL
Default: ``10``
.. data:: OCR_UNPAPER_PATH
Default: ``/usr/bin/unpaper``
File path to the ``unpaper`` executable, used to clean up images before
doing OCR.
Metadata
--------
.. data:: METADATA_AVAILABLE_FUNCTIONS
Default: ``current_date``
.. data:: METADATA_AVAILABLE_MODELS
Default: ``User``
Common
------
.. data:: COMMON_TEMPORARY_DIRECTORY
Default: ``/tmp``
Temporary directory used site wide to store thumbnails, previews
and temporary files. If none is specified, one will be created
using tempfile.mkdtemp()
.. data:: COMMON_DEFAULT_PAPER_SIZE
Default: ``Letter``
.. data:: COMMON_DEFAULT_PAGE_ORIENTATION
Default: ``Portrait``
.. data:: COMMON_AUTO_CREATE_ADMIN
Default: ``True``
Automatically creates an administrator superuser with the username
specified by COMMON_AUTO_ADMIN_USERNAME and with the default password
specified by COMMON_AUTO_ADMIN_PASSWORD
.. data:: COMMON_AUTO_ADMIN_USERNAME
Default: ``admin``
Username of the automatically created superuser
.. data:: COMMON_AUTO_ADMIN_PASSWORD
Default: ``admin``
Default password of the automatically created superuser
.. data:: COMMON_LOGIN_METHOD
Default: ``username``
Controls the mechanism used to authenticated user. Options are: ``username``, ``email``
If using the ``email`` login method a proper email authentication backend must used
such as AUTHENTICATION_BACKENDS = ('common.auth.email_auth_backend.EmailAuthBackend',)
.. data:: COMMON_ALLOW_ANONYMOUS_ACCESS
Default: ``False``
Allow non authenticated users, access to all views
Search
------
.. data:: SEARCH_LIMIT
Default: ``100``
Maximum amount search hits to fetch and display.
.. data:: SEARCH_RECENT_COUNT
Default: ``5``
Maximum number of search queries to remember per user.
Web theme
---------
.. data:: WEB_THEME_THEME
Default: ``activo``
CSS theme to apply, options are: ``amro``, ``bec``, ``bec-green``, ``blue``, ``default``, ``djime-cerulean``, ``drastic-dark``, ``kathleene``, ``olive``, ``orange``, ``red``, ``reidb-greenish`` and ``warehouse``.
.. data:: WEB_THEME_VERBOSE_LOGIN
Default: ``True``
Display extra information in the login screen.
Main
----
.. data:: MAIN_SIDE_BAR_SEARCH
Default: ``False``
Controls whether the search functionality is provided by a sidebar widget or by a menu entry.
.. data:: MAIN_DISABLE_HOME_VIEW
Default: ``False``
.. data:: MAIN_DISABLE_ICONS
Default: ``False``
User management
---------------
.. data:: ROLES_DEFAULT_ROLES
Default: ``[]``
A list of existing roles that are automatically assigned to newly created users
Signatures
----------
.. data:: SIGNATURES_KEYSERVERS
Default: ``['pool.sks-keyservers.net']``
List of keyservers to be queried for unknown keys.
.. data:: SIGNATURES_GPG_HOME
Default: ``gpg_home``
Home directory used to store keys as well as configuration files.
+116
View File
@@ -0,0 +1,116 @@
=============
Software used
=============
* Python
* Copyright (c) 2001-2010 Python Software Foundation.
* Copyright (c) 2000 BeOpen.com.
* Copyright (c) 1995-2001 Corporation for National Research Initiatives.
* Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.
* Django - A high-level Python Web framework that encourages rapid development and clean, pragmatic design.
* Copyright Django Software Foundation
* http://www.djangoproject.com/
* django-pagination
* Copyright Eric Florenzano (floguy@gmail.com)
* http://django-pagination.googlecode.com/
* Web App Theme
* Copyright Andrea Franz (http://gravityblast.com)
* git://github.com/pilu/web-app-theme.git
* Imagemagick - Convert, Edit, Or Compose Bitmap Images
* Copyright 1999-2011 ImageMagick Studio LLC
* http://www.imagemagick.org/script/index.php
* FAMFAMFAM Silk icons
* Copyright Mark James (http://www.twitter.com/markjames)
* http://www.famfamfam.com/lab/icons/silk/
* 3 state FAMFAMFAM Silk icon sets: discrete images and CSS sprite palette
* Copyright Sky Sanders
* skysanders.net/subtext
* django-extensions - Extensions for Django
* Copyright Bas van Oostveen (v.oostveen@gmail.com)
* http://code.google.com/p/django-command-extensions/
* django-rosetta - A Django application that eases the translation of Django projects
* Copyright Marco Bonetti (mbonetti@gmail.com)
* http://code.google.com/p/django-rosetta/
* Werkzeug - The Swiss Army knife of Python web development
* Copyright Armin Ronacher (armin.ronacher@active-4.com)
* http://werkzeug.pocoo.org/
* BoundFormWizard - A subclass of Django's FormWizard that handled FormSets.
* Matthew Flanagan (http://www.blogger.com/profile/15093905875465763876)
* http://code.google.com/p/wadofstuff/
* django-filetransfers - File upload/download abstraction
* Waldemar Kornewald
* http://www.allbuttonspressed.com/projects/django-filetransfers
* tesseract - An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google.
* http://code.google.com/p/tesseract-ocr/
* Image file 1068504_92921456 "Mayan piramid" (Stock Exchange)
* Andres Ojeda (http://www.sxc.hu/profile/andres_ol)
* Image 1297211435_error
* http://kde-look.org/usermanager/search.php?username=InFeRnODeMoN
* Fat cow icon set
* http://www.fatcow.com/free-icons
* Python-magic - python-magic is a simple wrapper for libmagic
* Adam Hupp <adam at hupp.org>
* https://github.com/ahupp/python-magic
* Fancybox - FancyBox is a tool for displaying images, html content and multi-media in a Mac-style "lightbox" that floats overtop of web page.
* http://fancybox.net
* unpaper - post-processing scanned and photocopied book pages
* Jens Gulden 2005-2007 - unpaper@jensgulden.de.
* http://unpaper.berlios.de/
* favicon
* http://www.iconfinder.com/icondetails/21581/24/draw_pyramid_icon
* Gnome Project
* MongoDB - (from "humongous") is a scalable, high-performance, open source, document-oriented database.
* Copyright 10gen
* http://www.mongodb.org/
* PyMongo - is a Python distribution containing tools for working with MongoDB, and is the recommended way to work with MongoDB from Python.
* Copyright 2009, Michael Dirolf
* http://api.mongodb.org/python/
* GridFS - is a storage specification for large objects in MongoDB
* Copyright 10gen
* http://www.mongodb.org/display/DOCS/GridFS+Specification
* django-sendfile - This is a wrapper around web-server specific methods for sending files to web clients.
* johnsensible (John Montgomery)
* https://github.com/johnsensible/django-sendfile
* jQuery-Jail - Jquery Asynchronous Image Loader (JAIL)
* Sebastiano Armeli-Battana (contact@sebarmeli.com)
* http://www.sebastianoarmelibattana.com/projects/jail
* django-taggit - is a reusable Django application for simple tagging
* Alex Gaynor (alex.gaynor@gmail.com)
* http://pypi.python.org/pypi/django-taggit
* Image 392336_7079 (stock exchange)
* djangorestframework
* South
* python-gnupg
* python-hkp
+47
View File
@@ -0,0 +1,47 @@
.. _internals:
=========
Internals
=========
|architecture|
.. |architecture| image:: _static/mayan_architecture.png
**Mayan EDMS** is not a single program, but a collection of different Django apps, each designed to provide a specific functionality.
* ``common`` - Provide a central place to put code, models or templates that are used by all the other apps.
* ``document_indexing``
* ``history``
* ``main`` - Can be thought as the project app, is small on purpose.
* ``navigation`` - Handles the complex automatic creation of hyper text links.
* ``project_setup``
* ``scheduler``
* ``storage`` - Abstracts the storage of documents.
* ``web_theme`` - Handles the presentation of the HTML and CSS to the user.
* ``converter`` - Abstracts the convertions between file formats, calls the backends of which are wrappers for ImageMagick_, GraphicsMagick_ and python's PIL_ coupled with Ghostscript_.
* ``documents`` - The main app, handles the ``Document`` and ``DocumentPage`` classes.
* ``folders``
* ``job_processor``
* ``metadata``
* ``ocr``
* ``project_tools``
* ``smart_settings``
* ``tags`` - Handles document tagging, it is a wrapper for django-taggit_.
* ``document_comments`` - Handles document comments it's a wrapper for `Django\'s comment framework`_.
* ``dynamic_search``
* ``grouping``
* ``mimetype`` - Handles file MIME type detection using python-magic_ or falling back to Python's mimetype library, also handles the MIME type icon library.
* ``permissions`` - All the other apps register their permissions with this one.
* ``sources`` - Handles the document file sources definitions.
* ``user_management`` - User and group management, it is a wrapper for Django's user creating and authentication system.
.. _`Django\'s comment framework`: https://docs.djangoproject.com/en/dev/ref/contrib/comments/
.. _django-taggit: https://github.com/alex/django-taggit
.. _ImageMagick: http://www.imagemagick.org/script/index.php
.. _GraphicsMagick: http://www.graphicsmagick.org/
.. _PIL: http://www.pythonware.com/products/pil/
.. _Ghostscript: http://pages.cs.wisc.edu/~ghost/
.. _python-magic: https://github.com/ahupp/python-magic
+12
View File
@@ -0,0 +1,12 @@
=========================
What are transformations?
=========================
Transformation are useful to manipulate the preview of the stored documents
in a persistent manner, for example some scanning equipment only produce
landscape PDFs, in this case a default transformation for that document
source would be "rotation: 270 degress", this way whenever a document is
uploaded from that scanner it appears in portrait orientation.
The transformation remains attached to the document, this way the file
is preserved in it's original state (a requirement in legal environments)
but only the representation is transformed to make it look right to the user.