Documentation updates

This commit is contained in:
Roberto Rosario
2014-07-10 04:19:59 -04:00
parent 3bed82fc16
commit 568fe87074
13 changed files with 143 additions and 365 deletions

View File

@@ -43,7 +43,7 @@ source_suffix = '.rst'
# source_encoding = 'utf-8-sig'
# The master toctree document.
master_doc = 'index'
master_doc = 'contents'
# General information about the project.
project = mayan.__title__
@@ -221,3 +221,9 @@ man_pages = [
('index', 'mayanedms', u'Mayan EDMS Documentation',
[u'Roberto Rosario'], 1)
]
import sphinx_rtd_theme
html_theme = "sphinx_rtd_theme"
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]

19
docs/contents.rst Normal file
View File

@@ -0,0 +1,19 @@
.. _contents:
=================================
Mayan EDMS documentation contents
=================================
.. toctree::
:hidden:
index
.. toctree::
:maxdepth: 3
intro/index
topics/index
credits/index
releases/index
faq/index

View File

@@ -14,63 +14,25 @@ Lead developer
--------------
* Roberto Rosario (roberto.rosario@mayan-edms.com) <https://twitter.com/siloraptor>
Bug fixes
---------
Contributors (in alphabetical order)
------------------------------------
* 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)
* Webfaction (https://www.webfaction.com)
* Kolmar Kafran
* Nate Aune (nate@appsembler.com)
* Mathias Behrle <mbehrle@m9s.biz>
* Rafael Esparra <rafael.esparra1@upr.edu>
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)
* Alexandru Kiss (usurel@gmail.com)
* Nate Aune (nate@appsembler.com)
* Fabio Duran Verdugo (fabiognome@gmail.com)
* Ed Schipul (eschipul@schipul.com)
* Mathias Behrle <mbehrle@m9s.biz>
Patches
-------
* Meurig Freeman (https://github.com/meurig)
* Sergey Glita (s.v.glita@gmail.com)
* Brian E (brian@realize.org)
* Bertrand Bordage (https://github.com/BertrandBordage)
* Brian E (brian@realize.org)
* David Herring (https://github.com/abadger1406)
* Kolmar Kafran
* IHLeanne (https://github.com/IHLeanne)
* Iliya Georgiev (ikgeorgiev@gmail.com)
* Lars Kruse (devel@sumpfralle.de)
* Mathias Behrle <mbehrle@m9s.biz>
* Simone Federici [https://twitter.com/aldaranalton] [https://github.com/simone]
* Rafael Esparra <rafael.esparra1@upr.edu>
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)
* Alexandru Kiss (usurel@gmail.com)
* Stephen Knox
* Meurig Freeman (https://github.com/meurig)
* Nate Aune (nate@appsembler.com)
* Ed Schipul (eschipul@schipul.com)
Security audit
--------------
* Dolev Farhi <dolev@openflare.org>
* Rafael Esparra <rafael.esparra1@upr.edu>
* Sergey Glita (s.v.glita@gmail.com)
* Simone Federici [https://twitter.com/aldaranalton] [https://github.com/simone]
* Webfaction (https://www.webfaction.com)
Translations
------------
@@ -127,18 +89,3 @@ Translations
* Spanish
- Roberto Rosario
Remote access for debugging
---------------------------
* Sergey Glita (s.v.glita@gmail.com)
* David Herring (https://github.com/abadger1406)
* Michael Terretta (terretta@gmail.com)
* Alexandru Kiss (usurel@gmail.com)
Monetary donations
------------------
* David Herring (https://github.com/abadger1406) - $100
* David Herring (https://github.com/abadger1406) - $250
* Michael Terretta (terretta@gmail.com) - $100
* Ed Schipul (eschipul@schipul.com, http://www.schipul.com) - $100

View File

@@ -8,5 +8,4 @@ Here we list everything and everybody that has made his/her/its part in improvin
:maxdepth: 1
contributors
software_used
license

View File

@@ -1,46 +0,0 @@
=============
Software used
=============
* Web App Theme
* Copyright Andrea Franz (http://gravityblast.com)
* git://github.com/pilu/web-app-theme.git
* 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
* Image file 1068504_92921456 "Mayan piramid" (Stock Exchange)
* Andres Ojeda (http://www.sxc.hu/profile/andres_ol)
* http://www.sxc.hu/browse.phtml?f=view&id=1068504
* Image 1297211435_error
* http://kde-look.org/usermanager/search.php?username=InFeRnODeMoN
* Fat cow icon set
* http://www.fatcow.com/free-icons
* favicon
* http://www.iconfinder.com/icondetails/21581/24/draw_pyramid_icon
* Gnome Project
* Image 392336_7079 (stock exchange) "Chichen Itza" (Stock Exchange)
* Joerg Witthoeft "Beamer29" (http://www.sxc.hu/profile/Beamer29)
* http://www.sxc.hu/browse.phtml?f=view&id=392336

View File

@@ -23,7 +23,8 @@ before trying again.
* Solution::
$ manage.py shell
>>> from django.db import connection
>>> from django.db import connection
>>> cursor = connection.cursor()
>>> cursor.execute('SHOW TABLES')
>>> results=[]
@@ -35,14 +36,14 @@ before trying again.
- http://www.djangoshmango.com/?p=99
- http://stackoverflow.com/questions/1073295/django-character-set-with-mysql-weirdness
**Q: Incorrect string value: ``'\xE2\x80\x95rs6...'`` for column ``'content'`` at row 1**
When using ``MySQL`` and doing OCR on languages other than English
* Solution:
- Use utf-8 collation on MySQL server, or at least in table 'documents_documentpage', 'content' field
- Ref: 1- http://groups.google.com/group/django-users/browse_thread/thread/429447086fca6412
- Ref: 2- http://markmail.org/message/bqajx2utvmtriixi
@@ -54,60 +55,29 @@ Document sharing
**Q: File system links not showing when serving content with ``Samba``**
* Solution:
- Disable unix extensions in the [global] section and enable wide links for the file serving share
- Example::
[global]
unix extensions = no
...
[digitalizacion]
path = /var/local/mayan
guest ok = yes
read only = yes
wide links = yes
follow symlinks = yes
- Ref: 1- http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html
Document handling
-----------------
**How to store documents outside of **Mayan EDMS's** path**
* Sub class Django's ``FileSystemStorage`` class:
- Create a file called ``customstorage.py``::
from django.core.files.storage import FileSystemStorage
class CustomStorage(FileSystemStorage):
def __init__(self, *args, **kwargs):
super(CustomStorage, self).__init__(*args, **kwargs)
self.location='/new/path/to/documents/'
self.base_url='document_storage'
- In the ``settings.py`` add::
from customstorage import CustomStorage
DOCUMENTS_STORAGE_BACKEND = CustomStorage
**Q: How to enable the ``GridFS`` storage backend**
* Solution:
- Add the following lines to ``settings.py``::
from storage.backends.gridfsstorage import GridFSStorage
DOCUMENTS_STORAGE_BACKEND = GridFSStorage
- Filesystem metadata indexing will not work with this storage backend as
the files are inside a ``MongoDB`` database and can't be linked (at least for now)
**Q: How do you upload a new version of an existing file?**
* Solution:
@@ -118,38 +88,7 @@ Document handling
view as the ``Upload new document`` but you will be able to specify
version number and comments for the new version being uploaded.
**Q: Site search is slow**
* Add indexes to the following fields:
- ``documents_document`` - description, recommended size: 160
- ``documents_documentpage`` - content, recommended size: 3000
This is a temporary solution as **Mayan EDMS** will soon be moving to a
specialized full text search solution.
Webserver
---------
**Q: How to enable x-sendile support for ``Apache``**
* If using Ubuntu execute the following::
$ sudo apt-get install libapache2-mod-xsendfile
* Add the following line to your ``settings.py`` file::
SENDFILE_BACKEND = 'sendfile.backends.xsendfile'
* On your apache configuration file add::
XSendFile on
XSendFileAllowAbove on
OCR
---
Deployments
-----------
@@ -163,77 +102,25 @@ Deployments
libraries messing other Django projects or Python programs, or another
later Python/Django project dependencies coming into conflict causing
Mayan to stop working for no apparent reason.
**Q: Mayan EDMS installed correctly and works, but static files are not served**
Django's development server doesn't serve static files unless the ``DEBUG``
option is set to ``True``, this mode of operation should only be used for
option is set to ``True``, this mode of operation should only be used for
development or testing. For production deployments the management command::
$ ./manage.py collectstatic
should be used and the resulting ``static`` folder served from a webserver.
For more information, read https://docs.djangoproject.com/en/dev/howto/static-files/
and https://docs.djangoproject.com/en/1.2/howto/static-files/ or
http://mayan-edms-ru.blogspot.com/2011/11/blog-post_09.html
and https://docs.djangoproject.com/en/1.2/howto/static-files/ or
http://mayan-edms-ru.blogspot.com/2011/11/blog-post_09.html
Other
-----
**Q: How to connect Mayan EDMS to an Active Directory tree**
I used these two libraries as they seemed the most maintained from the quick search I did.
* http://www.python-ldap.org/
* http://packages.python.org/django-auth-ldap/
After figuring out the corresponding OU, CN and such (which took quite a while since I'm not well versed in LDAP). For configuration options, Mayan EDMS imports settings_local.py after importing settings.py to allow users to override the defaults without modifying any file tracked by Git, this makes upgrading by using Git's pull command extremely easy. My settings_local.py file is as follows:
::
import ldap
from django_auth_ldap.config import LDAPSearch
# makes sure this works in Active Directory
ldap.set_option(ldap.OPT_REFERRALS, 0)
AUTH_LDAP_SERVER_URI = "ldap://172.16.XX.XX:389"
AUTH_LDAP_BIND_DN = 'cn=Roberto Rosario Gonzalez,ou=Aguadilla,ou=XX,ou=XX,dc=XX,dc=XX,dc=XX'
AUTH_LDAP_BIND_PASSWORD = 'XXXXXXXXXXXXXX'
AUTH_LDAP_USER_SEARCH = LDAPSearch('dc=XX,dc=XX,dc=XX', ldap.SCOPE_SUBTREE, '(SAMAccountName=%(user)s)')
# Populate the Django user from the LDAP directory.
AUTH_LDAP_USER_ATTR_MAP = {
"first_name": "givenName",
"last_name": "sn",
"email": "mail"
}
# This is the default, but I like to be explicit.
AUTH_LDAP_ALWAYS_UPDATE_USER = True
AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend',
'django.contrib.auth.backends.ModelBackend',
)
if your organization policies don't allow anonymous directory queries,
create a dummy account and set the ``AUTH_LDAP_BIND_DN`` and
``AUTH_LDAP_BIND_PASSWORD`` options to match the account.
For a more advanced example check this StackOverflow question:
http://stackoverflow.com/questions/6493985/django-auth-ldap
**Q: Can you change the display order of documents...i.e can they be in alphabetical order?**
A the moment no, but it is something being considered.

View File

@@ -1,4 +1,3 @@
.. _index:
========================
@@ -18,13 +17,20 @@ Mayan EDMS documentation
.. _Open source: http://en.wikipedia.org/wiki/Open_source
.. _checking out and in: http://en.wikipedia.org/wiki/Revision_control
On the Web
=====================
Getting help
============
* Website: http://www.mayan-edms.com
* Source: https://github.com/mayan-edms/mayan-edms/
* Video: http://bit.ly/Mayan-Intro
* Mailing list: http://groups.google.com/group/mayan-edms/
* Try the :doc:`FAQ <faq/index>` -- it's got answers to many common questions.
* Search for information in the `archives of the mayan-edms mailing list`_, or
`post a question`_. If you prefer news servers, use the gateway provided by Gname_.
* Report bugs with **Mayan EDMS** using Github's `ticket tracker`_.
.. _archives of the mayan-edms mailing list: http://groups.google.com/group/mayan-edms/
.. _Gname: http://news.gmane.org/gmane.comp.python.django.mayan-edms
.. _post a question: http://groups.google.com/group/mayan-edms
.. _ticket tracker: https://github.com/mayan-edms/mayan-edms/issues
First steps
===========
@@ -35,7 +41,6 @@ First steps
:doc:`Installation <intro/installation>` |
:doc:`Getting started <intro/getting_started>`
Understanding Mayan EDMS
========================
@@ -51,47 +56,25 @@ Understanding Mayan EDMS
:doc:`Tags <topics/tags>` |
:doc:`OCR <topics/ocr>`
Between versions
================
.. toctree::
:maxdepth: 1
releases/1.0.rst
Release notes
=============
:doc:`Release notes and upgrading instructions <releases/index>`
Customization and fine tunning
==============================
:doc:`Settings <topics/settings>` | :doc:`Customization <topics/customization>`
For developers
==============
:doc:`Development <topics/development>` | :doc:`Documentation <topics/documentation>` | :doc:`Translations <topics/translations>`
Credits
=======
:doc:`Contributors <credits/contributors>` |
:doc:`Software used <credits/software_used>` |
:doc:`Licensing <credits/license>`
Getting help
============
Having trouble? We'd like to help!
* Try the :doc:`FAQ <faq/index>` -- it's got answers to many common questions.
* Search for information in the `archives of the mayan-edms mailing list`_, or
`post a question`_. If you prefer news servers, use the gateway provided by Gname_.
* Report bugs with **Mayan EDMS** using Github's `ticket tracker`_.
.. _archives of the mayan-edms mailing list: http://groups.google.com/group/mayan-edms/
.. _Gname: http://news.gmane.org/gmane.comp.python.django.mayan-edms
.. _post a question: http://groups.google.com/group/mayan-edms
.. _ticket tracker: https://github.com/mayan-edms/mayan-edms/issues

View File

@@ -1,34 +1,13 @@
Getting started
===============
New to Mayan EDMS? Read this material to quickly get up and running.
New to **Mayan EDMS**? Read this material to quickly get up and running.
.. toctree::
:maxdepth: 1
overview
features
requirements
installation
getting_started
.. seealso::
If you're new to Python_, you might want to start by getting an idea of what
the language is like. Mayan EDMS is 100% Python, so if you've got minimal
comfort with Python you'll probably get a lot more out of Mayan EDMS.
If you're new to programming entirely, you might want to start with this
`list of Python resources for non-programmers`_.
If you already know a few other languages and want to get up to speed with
Python quickly, we recommend `Dive Into Python`_ (also available in a
`dead-tree version`_). If that's not quite your style, there are quite
a few other `books about Python`_.
.. _python: http://python.org/
.. _list of Python resources for non-programmers: http://wiki.python.org/moin/BeginnersGuide/NonProgrammers
.. _dive into python: http://diveintopython.net/
.. _dead-tree version: http://www.amazon.com/exec/obidos/ASIN/1590593561/ref=nosim/jacobian20
.. _books about Python: http://wiki.python.org/moin/PythonBooks

View File

@@ -10,12 +10,9 @@ text searching. Users can search for terms in the document's metadata, properti
**Mayan EDMS** is written in Python_ using the Django_ framework, which makes it very agile and fast, specially when compared with existing Java based solutions.
Being based on patent free, `Open source`_ technologies, **Mayan EDMS** provides legal safety to users and organizations, as well as peace of mind as documents and all related information is stored in open source and transparent formats allowing portability and avoiding `vendor lock-in`_.
Being written using Python_, **Mayan EDMS** runs on many POSIX compliant operating systems. Featuring many configuration parameters, **Mayan EDMS** allows to be deployed on many hardware and software configurations such as single server based, clusters, virtualized and cloud based hosting giving adopters the choice of using the infrastructure of their choice.
On hosting providers that support Django_ such as DjangoZoom_, **Mayan EDMS** can be deployed in under 2 minutes with just a few mouse clicks [#]_.
.. [#] "Deploying Mayan EDMS on DjangoZoom.com" @ Youtube (http://bit.ly/mayan-djangozoom)
.. _`vendor lock-in`: https://secure.wikimedia.org/wikipedia/en/wiki/Vendor_lock-in
.. _Python: http://www.python.org/
.. _Django: http://www.djangoproject.com/
.. _OCR: https://secure.wikimedia.org/wikipedia/en/wiki/Optical_character_recognition
.. _`Open source`: https://secure.wikimedia.org/wikipedia/en/wiki/Open_source
.. _DjangoZoom: http://djangozoom.com/

View File

@@ -15,19 +15,15 @@ Execute pip install -r requirements/production.txt to install the python/django
Executables:
* ``tesseract-ocr`` - An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google. Version 3.x or greater required.
* ``unpaper`` - post-processing scanned and photocopied book pages
* ``gpg`` - The GNU Privacy Guard
Optional requirements
=====================
To store documents in a GridFS database
---------------------------------------
Improved OCR
------------
* ``PyMongo`` - the recommended way to work with ``MongoDB`` from Python
* ``GridFS`` - a storage specification for large objects in ``MongoDB``
* ``MongoDB`` - a scalable, open source, document-oriented database
* ``unpaper`` - post-processing scanned and photocopied book pages
Enhanced MIME detection
------------------------
@@ -35,12 +31,20 @@ Enhanced MIME detection
* ``libmagic`` - MIME detection library, if not installed **Mayan EDMS** will fall back to using python's simpler mimetype built in library
* ``python-magic`` - A python wrapper for libmagic
OCR backends
------------
** Mayan EDMS** can make use of different OCR engines via OCR backends. By default it will use the ``Tesseract OCR backend``.
* ``tesseract-ocr`` - An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google. Version 3.x or greater required.
Image conversion backends
-------------------------
**Mayan EDMS** has the ability to switch between different image conversion backends, at the moment these three are supported:
* ``ImageMagick`` - Convert, Edit, Or Compose Bitmap Images.
* ``GraphicMagick`` - Robust collection of tools and libraries to read, write, and manipulate an image.
* Python only - Relies on ``PIL`` to support a limited set of the most common graphics formats.
* Python only - Relies on ``Pillow`` to support a limited set of the most common graphics formats.
By default the python backend is used.

View File

@@ -11,35 +11,86 @@ all the backwards-incompatible changes and deprecated features for
each 'final' release from the one after your current **Mayan EDMS** version,
up to and including the latest version.
Latest version (0.13)
-----------------------
Final releases
==============
Below are release notes through **Mayan EDMS** |version| and its minor releases. Newer
versions of the documentation contain the release notes for any later releases.
.. _development_release_notes:
1.0 release
-----------
.. toctree::
:maxdepth: 1
1.0
0.13 release
------------
.. toctree::
:maxdepth: 1
0.13
0.12 release
------------
.. toctree::
:maxdepth: 1
0.12.2
0.12.1
0.12
Historic changelogs
-------------------
0.11 release
------------
.. toctree::
:maxdepth: 1
0.11.1
0.11
0.10 release
------------
.. toctree::
:maxdepth: 1
0.10.1
0.10
0.9 release
-----------
.. toctree::
:maxdepth: 1
0.9.1
0.9
0.8 release
-----------
.. toctree::
:maxdepth: 1
0.8.3
0.8.2
0.8.1
0.8
0.7 release
-----------
.. toctree::
:maxdepth: 1
0.7.6
0.7.5
0.7.4
0.7.3
0.7
0.5 release
-----------
.. toctree::
:maxdepth: 1
0.5.1
0.5

View File

@@ -42,7 +42,6 @@ Git branch structure
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/

View File

@@ -1,47 +0,0 @@
.. _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