Merge branch 'master' into development
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
1.0 (2014-07-??)
|
1.0 (2014-08-27)
|
||||||
================
|
================
|
||||||
|
|
||||||
- New home @ https://github.com/mayan-edms/mayan-edms
|
- New home @ https://github.com/mayan-edms/mayan-edms
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ text parsing and OCR capabilities.
|
|||||||
|
|
||||||
`Mailing list (via Google Groups)`_
|
`Mailing list (via Google Groups)`_
|
||||||
|
|
||||||
|
|Animation|
|
||||||
|
|
||||||
License
|
License
|
||||||
-------
|
-------
|
||||||
@@ -34,7 +35,7 @@ To install **Mayan EDMS**, simply do:
|
|||||||
|
|
||||||
$ virtualenv venv
|
$ virtualenv venv
|
||||||
$ source venv/bin/activate
|
$ source venv/bin/activate
|
||||||
$ pip install mayan-edms==1.0.rc3
|
$ pip install mayan-edms
|
||||||
$ mayan-edms.py initialsetup
|
$ mayan-edms.py initialsetup
|
||||||
$ mayan-edms.py runserver
|
$ mayan-edms.py runserver
|
||||||
|
|
||||||
@@ -65,6 +66,7 @@ Contribute
|
|||||||
.. |Coverage Status| image:: http://img.shields.io/coveralls/mayan-edms/mayan-edms/master.svg?style=flat
|
.. |Coverage Status| image:: http://img.shields.io/coveralls/mayan-edms/mayan-edms/master.svg?style=flat
|
||||||
:target: https://coveralls.io/r/mayan-edms/mayan-edms?branch=master
|
:target: https://coveralls.io/r/mayan-edms/mayan-edms?branch=master
|
||||||
.. |Logo| image:: https://github.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png
|
.. |Logo| image:: https://github.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png
|
||||||
|
.. |Animation| image:: https://github.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif
|
||||||
.. |Installs badge| image:: http://img.shields.io/pypi/dm/mayan-edms.svg?style=flat
|
.. |Installs badge| image:: http://img.shields.io/pypi/dm/mayan-edms.svg?style=flat
|
||||||
:target: https://crate.io/packages/mayan-edms/
|
:target: https://crate.io/packages/mayan-edms/
|
||||||
.. |PyPI badge| image:: http://img.shields.io/pypi/v/mayan-edms.svg?style=flat
|
.. |PyPI badge| image:: http://img.shields.io/pypi/v/mayan-edms.svg?style=flat
|
||||||
|
|||||||
BIN
docs/_static/overview.gif
vendored
Normal file
BIN
docs/_static/overview.gif
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
@@ -25,7 +25,7 @@ Initialize a ``virtualenv`` to deploy the project:
|
|||||||
|
|
||||||
$ virtualenv venv
|
$ virtualenv venv
|
||||||
$ source venv/bin/activate
|
$ source venv/bin/activate
|
||||||
$ pip install mayan-edms==1.0.rc3
|
$ pip install mayan-edms
|
||||||
|
|
||||||
By default **Mayan EDMS** will create a single file SQLite_ database, which makes
|
By default **Mayan EDMS** will create a single file SQLite_ database, which makes
|
||||||
it very easy to start using **Mayan EDMS**. Populate the database with the project's schema doing:
|
it very easy to start using **Mayan EDMS**. Populate the database with the project's schema doing:
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Mayan EDMS v1.0 release notes
|
Mayan EDMS v1.0 release notes
|
||||||
=============================
|
=============================
|
||||||
|
|
||||||
*July 2014*
|
*August 26, 2014*
|
||||||
|
|
||||||
Welcome to Mayan EDMS v1.0!
|
Welcome to Mayan EDMS v1.0!
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
__title__ = 'Mayan EDMS'
|
__title__ = 'Mayan EDMS'
|
||||||
__version__ = '1.0 rc3'
|
__version__ = '1.0.0'
|
||||||
__build__ = 0x010000
|
__build__ = 0x010000
|
||||||
__author__ = 'Roberto Rosario'
|
__author__ = 'Roberto Rosario'
|
||||||
__license__ = 'Apache 2.0'
|
__license__ = 'Apache 2.0'
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ TEST_ADMIN_EMAIL = 'admin@admin.com'
|
|||||||
TEST_DOCUMENT_PATH = os.path.join(settings.BASE_DIR, 'contrib', 'sample_documents', 'mayan_11_1.pdf')
|
TEST_DOCUMENT_PATH = os.path.join(settings.BASE_DIR, 'contrib', 'sample_documents', 'mayan_11_1.pdf')
|
||||||
TEST_SIGNED_DOCUMENT_PATH = os.path.join(settings.BASE_DIR, 'contrib', 'sample_documents', 'mayan_11_1.pdf.gpg')
|
TEST_SIGNED_DOCUMENT_PATH = os.path.join(settings.BASE_DIR, 'contrib', 'sample_documents', 'mayan_11_1.pdf.gpg')
|
||||||
TEST_DOCUMENT_DESCRIPTION = 'test description'
|
TEST_DOCUMENT_DESCRIPTION = 'test description'
|
||||||
|
TEST_DOCUMENT_TYPE = 'test_document_type'
|
||||||
|
|
||||||
|
|
||||||
class DocumentTestCase(TestCase):
|
class DocumentTestCase(TestCase):
|
||||||
@@ -278,3 +279,82 @@ class DocumentAPICreateDocumentTestCase(TestCase):
|
|||||||
|
|
||||||
# The document was deleted from the the DB?
|
# The document was deleted from the the DB?
|
||||||
self.assertEqual(Document.objects.count(), 0)
|
self.assertEqual(Document.objects.count(), 0)
|
||||||
|
|
||||||
|
|
||||||
|
class DocumentsViewsFunctionalTestCase(TestCase):
|
||||||
|
"""
|
||||||
|
Functional tests to make sure all the moving parts after creating a
|
||||||
|
document from the frontend are working correctly
|
||||||
|
"""
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
from sources.models import WebForm
|
||||||
|
from sources.literals import SOURCE_CHOICE_WEB_FORM
|
||||||
|
|
||||||
|
self.admin_user = User.objects.create_superuser(username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD)
|
||||||
|
self.client = Client()
|
||||||
|
# Login the admin user
|
||||||
|
logged_in = self.client.login(username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD)
|
||||||
|
self.assertTrue(logged_in)
|
||||||
|
self.assertTrue(self.admin_user.is_authenticated())
|
||||||
|
# Create new webform source
|
||||||
|
response = self.client.post(reverse('setup_source_create', args=[SOURCE_CHOICE_WEB_FORM]), {'title': 'test', 'uncompress': 'n', 'enabled': True})
|
||||||
|
self.assertEqual(WebForm.objects.count(), 1)
|
||||||
|
|
||||||
|
# Upload the test document
|
||||||
|
with open(TEST_DOCUMENT_PATH) as file_descriptor:
|
||||||
|
response = self.client.post(reverse('upload_interactive'), {'file': file_descriptor})
|
||||||
|
self.assertEqual(Document.objects.count(), 1)
|
||||||
|
self.document = Document.objects.first()
|
||||||
|
|
||||||
|
def test_document_view(self):
|
||||||
|
response = self.client.get(reverse('document_list'))
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
self.assertTrue('List of documents (1)' in response.content)
|
||||||
|
|
||||||
|
# test document simple view
|
||||||
|
response = self.client.get(reverse('document_view_simple', args=[self.document.pk]))
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
self.assertTrue('Details for: mayan_11_1.pdf' in response.content)
|
||||||
|
|
||||||
|
# test document advanced view
|
||||||
|
response = self.client.get(reverse('document_view_advanced', args=[self.document.pk]))
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
self.assertTrue('Document properties for: mayan_11_1.pdf' in response.content)
|
||||||
|
|
||||||
|
def test_document_type_views(self):
|
||||||
|
# Check that there are no document types
|
||||||
|
response = self.client.get(reverse('document_type_list'))
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
self.assertTrue('List of document types (0)' in response.content)
|
||||||
|
|
||||||
|
# Create a document type
|
||||||
|
response = self.client.post(reverse('document_type_create'), data={'name': TEST_DOCUMENT_TYPE}, follow=True)
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
self.assertTrue('Document type created successfully' in response.content)
|
||||||
|
|
||||||
|
# Check that there is one document types
|
||||||
|
response = self.client.get(reverse('document_type_list'))
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
self.assertTrue('List of document types (1)' in response.content)
|
||||||
|
|
||||||
|
document_type = DocumentType.objects.first()
|
||||||
|
self.assertEqual(document_type.name, TEST_DOCUMENT_TYPE)
|
||||||
|
|
||||||
|
# Edit the document type
|
||||||
|
response = self.client.post(reverse('document_type_edit', args=[document_type.pk]), data={'name': TEST_DOCUMENT_TYPE + 'partial'}, follow=True)
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
self.assertTrue('Document type edited successfully' in response.content)
|
||||||
|
|
||||||
|
document_type = DocumentType.objects.first()
|
||||||
|
self.assertEqual(document_type.name, TEST_DOCUMENT_TYPE + 'partial')
|
||||||
|
|
||||||
|
# Delete the document type
|
||||||
|
response = self.client.post(reverse('document_type_delete', args=[document_type.pk]), follow=True)
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
self.assertTrue('Document type: {0} deleted successfully'.format(document_type.name) in response.content)
|
||||||
|
|
||||||
|
# Check that there are no document types
|
||||||
|
response = self.client.get(reverse('document_type_list'))
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
self.assertTrue('List of document types (0)' in response.content)
|
||||||
|
|||||||
3
mayan/settings/local.py
Normal file
3
mayan/settings/local.py
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
from __future__ import absolute_import
|
||||||
|
|
||||||
|
from .base import *
|
||||||
@@ -3,4 +3,3 @@ from .local import *
|
|||||||
|
|
||||||
DEBUG = False
|
DEBUG = False
|
||||||
ALLOWED_HOSTS = ['*'] # Update this accordingly; https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts
|
ALLOWED_HOSTS = ['*'] # Update this accordingly; https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts
|
||||||
~
|
|
||||||
|
|||||||
Reference in New Issue
Block a user