Commit Graph

121 Commits

Author SHA1 Message Date
Roberto Rosario
3a6a250d1b Move dashboard code to its own app
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2018-12-16 00:34:21 -04:00
Roberto Rosario
b83ab1b528 Improve how settings are loaded from config file
Update the way settings are loaded. Instead of loading the
entire config file now settings are loaded from the config
file on demand when the cache misses.

Improve the smart settings classes tests and add another test
for the config file loading.

Add support for variable config file path.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2018-12-15 21:00:51 -04:00
Roberto Rosario
0a7908baca File metadata: Add file metadata app
Add the file metadata app. This app uses binary wrappers called drivers
to extract properties from the file of documents. The default driver
uses the exiftool to extract the EXIF record from JPEG images.
The exiftool can also extra some properties from other files like
PDFs, office files and sound file.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2018-12-14 02:16:38 -04:00
Roberto Rosario
55e9b2263c Celery: Update Celery to version 4.1.1
Upgrade Celery version used from 3.1.26 to 4.1.1. The following
settings have been renamed: CELERY_ALWAYS_EAGER to
CELERY_TASK_ALWAYS_EAGER, BROKER_URL to CELERY_BROKER_URL.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2018-12-08 22:49:15 -04:00
Roberto Rosario
aaea84b386 Caching: Turn the new caching into its own app
Extract the new smart file caching code from the common app
and convert it into its own new app called file_caching.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2018-12-08 01:38:59 -04:00
Roberto Rosario
8039dfa30a Autoadmin: Incorporate the autoadmin app
Incorporate the external django-autoadmin app as a core app
and convert it into a Mayan app. This change adds the new
settings: "COMMON_AUTOADMIN_EMAIL", "AUTOADMIN_PASSWORD", and
"AUTOADMIN_USERNAME".

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2018-12-07 03:09:59 -04:00
Roberto Rosario
4d84b5f28f Common app: Move HOME_VIEW setting
The HOME_VIEW setting is not a Django setting but a setting from the
common app. Move the HOME_VIEW to the COMMON namespace and rename it
to COMMON_HOME_VIEW.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2018-12-06 15:58:19 -04:00
Roberto Rosario
8e69178e07 Project: Switch to full app paths
Instead of inserting the path of the apps into the Python app,
the apps are now referenced by their full import path.

This app name claves with external or native Python libraries.
Example: Mayan statistics app vs. Python new statistics library.

Every app reference is now prepended with 'mayan.apps'.

Existing config.yml files need to be updated manually.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-12-05 02:04:20 -04:00
Roberto Rosario
ba4858e77f Initial settings: Refactor setting bootstrapping
Refactor the initial environment settings and configuration file loading
fixing some issues loading Django settings.

Consolidate all database settings into a new single setting
called "DATABASES". This mirrors Django database setting
structure. This changes makes it possible to use configure
multiple databases and database routers from the environment
variables or configuration file.

Remove usage of django-environ. Only a small set of the
features provided by django-environ were being used.
Variable typecasting is now only YAML. YAML parsing
is implemented in code.

Previously the initial setting code added all settings
it found into the global symbol table. Now the settings
found are matched to a explicit list of allowed settings.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-11-27 04:06:21 -04:00
Roberto Rosario
8e896a54f9 Middleware: Modernize middleware classes
Make the custom middleware provided by Mayan to use the
MiddlewareMixin provide by Django. This make the middleware
classes behave like classes or callables. This change ensures
compatibility with Django 2.x.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-11-25 00:59:39 -04:00
Roberto Rosario
b3c0b622b8 App: Remove admindocs
Remove admindocs which is not used in production.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-11-24 22:59:16 -04:00
Roberto Rosario
8c98679687 Dependencies: Remove django-suit from apps
Signed-off-by: Roberto Rosario <Roberto.Rosario.Gonzalez@gmail.com>
2018-11-22 04:59:10 -04:00
Roberto Rosario
a99b044555 Code style improvement. Test code consolidation. PEP8 cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-06 02:13:36 -04:00
Roberto Rosario
abcc6539c8 Don't try to update globals if there are no settings.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-27 03:45:05 -04:00
Roberto Rosario
57eb390845 Add support for changing the HOME_VIEW, LOGIN_URL and LOGIN_REDIRECT_URL from the settings view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-26 07:17:03 -04:00
Roberto Rosario
4a61275e80 Change the official config filename to config.yml. Interpret ALLOWED_HOSTS as YAML.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-26 05:10:33 -04:00
Roberto Rosario
90cd142e76 Add support for YAML configuration files. Add support for editing setting options and saving them using the new YAML configuration file support. Add new revertsettings management command. Add new permission to edit setting via the UI.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 03:05:26 -04:00
Roberto Rosario
0d46b0a252 Remove use of django-compressor and cssmin now that the project used
Whitenoise.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-07 23:14:46 -04:00
Roberto Rosario
f0bb633eee Move secret key and media root calculation code to the top of the settings file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-02 21:49:58 -04:00
Roberto Rosario
1ea684737a Move SQLite setup as a fallback default the database manager setup block.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-24 23:34:04 -04:00
Roberto Rosario
7744dac423 Add the whitenoise.storage.CompressedManifestStaticFilesStorage class to allow for permanent cacheable static files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-21 00:37:15 -04:00
Roberto Rosario
5c83cff767 Use django-environ for DEBUG and CELERY_ALWAYS_EAGER. Default CELERY_ALWAYS_EAGER to True.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-29 23:47:27 -04:00
Eric Riggs
3145cb4231 Add django-environ and use it to set ALLOWED_HOSTS.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-26 02:18:32 -04:00
Eric Riggs
455fcef114 Move Docker environment overrides to main base.py module
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-22 04:17:28 -04:00
Roberto Rosario
b165b9a5f2 New environment variables to configure the secret key, database, and celery options. The secret key can also be read from a file. Stricter defaults to increase security.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-13 16:02:16 -04:00
Michael Price
c7fda3447c Unify the way to gather the project's metadata.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:28:52 -04:00
Michael Price
79c1b761d4 Add the path to the defaul open api path. Display models closed by default.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:28:01 -04:00
Eric Riggs
f3f4dcd84a - Make Mayan behave like a Single Page App by using partials.
- Add URI.js, Ajax form.
- Split base.js into mayan_app.js, mayan_image.js, partial_navigation.js.
- Add a HOME_VIEW setting. Use it for the default view to be loaded.
- New template loading order root.html -> base.html -> any template. root.html is only loaded once. Other templates are loaded and merged with base.html via ajax load.
- Fix bug in document page view. Was storing the URL and the querystring as a single url variable.

Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:54:15 -04:00
Michael Price
4378b28777 Update API vies and serializers for the latest Django REST framework version. Replace DRF Swagger with DRF-YASG.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:31:22 -04:00
Roberto Rosario
32feb98874 Rename statistics app to mayan_statistics to avoid library class
with Python3 statistics app.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 02:01:41 -04:00
Roberto Rosario
e9591c92f9 Initial commit of the document parsing app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-23 02:23:14 -04:00
Roberto Rosario
abc34f7942 Switch the order of the DEFAULT_AUTHENTICATION_CLASSES of DRF. GitLab issue #400.
Thanks to @NiceGuyIT for the report and research.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 14:14:24 -04:00
Roberto Rosario
2817ec17be Add support for logging errors during in production mode.
Add COMMON_PRODUCTION_ERROR_LOG_PATH to control path of log file.
Defaults to mayan/error.log.
Add support logging request exceptions.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-13 03:31:34 -04:00
Roberto Rosario
0d8081ad9d Rename the mayan_task_manager app to task_manager.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-30 17:55:47 -04:00
Roberto Rosario
eac89b4d80 Enable the mathfilters app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-30 15:05:03 -04:00
Roberto Rosario
739596e4ee Add task manager app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-21 02:25:28 -04:00
Roberto Rosario
2d3f09266e Disable the Folders app by default.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-20 01:21:52 -04:00
Roberto Rosario
ff703b32a2 Integrate the Cabinets app into the core.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-09 01:59:13 -04:00
Roberto Rosario
0078600e62 Add custom tests runner that replaces the custom "runtests"
management command.
2017-02-17 18:12:48 -04:00
Roberto Rosario
9b3b54eb75 Make DEBUG False by default. 2016-12-22 03:37:07 -04:00
Roberto Rosario
5662b56714 Update project to work with Django 1.10.x 2016-12-22 02:53:06 -04:00
Roberto Rosario
b5c5602301 Expose more module attributes as project variables. 2016-11-16 22:50:40 -04:00
Roberto Rosario
6e3d99670c Complete conversion of download views to CBV views using django-downloadview.
This also removes dependency on the filetransfers library.
2016-10-31 01:00:35 -04:00
Roberto Rosario
f66f815ba6 Remove the installation app 2016-10-26 23:04:59 -04:00
Roberto Rosario
23f40ac4aa PEP8 cleanups. 2016-04-27 20:31:02 -04:00
Roberto Rosario
35cc0ea1d6 Exclude root API and API doc URLs. 2016-03-14 04:15:13 -04:00
Roberto Rosario
daa3ca2430 Initial commit to support messages of the day. GitLab issue #222. 2016-03-13 00:56:31 -04:00
Roberto Rosario
ed2f2480e6 Fix Dutch locale typo, close GitLab issue #256. Add placeholder for 2.1 release notes. 2016-03-10 03:39:50 -04:00
Roberto Rosario
014ba4f4fe Remove strip spaces middleware and use spaceless template tag instead. Closes GitLab issue #255. 2016-03-07 20:02:26 -04:00
Roberto Rosario
8614bc4bfc Remove included login required middleware using django-stronghold instead (http://mikegrouchy.com/django-stronghold/). GitLab Issue #206 2016-02-04 15:33:20 -04:00