Use a dynamic subclass instead that always deconstructs to a fake
subclass with a __eq__ method that always returns True. This should
trick makemigrations into never creating a new migrations for
changes to the storage class or the arguments.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Wrap storages directly connected to file model fields to avoid
Django triggering a migration change when an attribute of the
storage is changed, like the location.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Add new icons for the apps: Document comments, documents, file metadata,
parsing and OCR.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Use the new icon classes to add custom icons. Improve
the URL schemes of some apps for uniformity.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Update the class to disable displaying the column label by default
and only so when the include_label argument is True.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Update UI code to display a fixed location sidebar. The sidebar is
also of a fixed width instead of being a certain number columns
wide. The action dropdown is also now in a fixed location.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Since tables row height can't be controlled using CSS (they
will always resize to the size of their elements), this commit
adds a table cell container whose size can be controlled from
the view. This way big thumbnail images won't break the appearance
of the table.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
The SourceColumn class has now the ability to render a link's
absolute_url, turn this on for the document parsing error and
OCR error list columns and remove the document_link widget.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Add a new argument to the SourceColumn class to flag a column as
sortable. The SourceColum will generate a request querystring to
be used as the table header archor href. The SingleObjectListView
will capture the querystring and call the order_by on the queryset
to sort it.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Improve the method of slicing the document list to produce
a queryset that can be further sorted.
Add a new date added column to the recently added document list.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Allow passing a widget class to SourceColumn. This makes
using lambdas to render model column unnecesary and are
mostly removed too.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Update the invalid document template to use the new font awesome
defitions.
Increase the size of the default template.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Update the code of some SourceColumn invocations to be model methods
instead of lambda wapped functions.
Move the translated labels to the models too.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Add keyword arguments to all called instances of PermissionNamespace.
Sort name and label arguments.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Merge all document type selection forms into a single smarter form
that can perform permission filtering and allow single or multiple
selections.
This commit also add the document type selection for submit
view to the file metadata app.
This commit also updates the document type selection views
for the OCR, document parsing, and upload wizard to use
the new document type selection form and removes their
respective document type selection forms.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Split the documents/forms.py into sub modules for each logical
unit: types, document, pages, versions.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Now that the automatic OCR, parsing and file metadata processing
are turned off by the test setting file, these overrides in the
tests are not needed anymore.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
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>
Add icons to document version action links. Add icons to
detached and embedded signing action links.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
These features were for Celery 4.2.1, since this version
has a regression, version 4.1.1 is used instead.
The version 4.2.1 features are removed also and implemented
in code.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
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>
Squash together the following migrations:
- Common: 0010 to 0011
- Documents: 0029 to 0037
- Documents: 0042 to 0043
- Tags: 0001 to 0008
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
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>
Split the .model module from the document app into separate
modules by purpose. The new modules containing the documents
app models are: document_models.py, document_page_models.py,
document_type_models.py, and document_version_models.py.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Several tests cause errors on purpose to test behaviors.
This commit mute these tests setting their debug level
to critical or by using a context manager to null their
stdout descriptor.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Update which Document model manager the new version upload task
uses to fetch the document. Changing to the passthrough manager
allows the task to access document stubs which is the expected
behavior as new document with no versions are considered stubs.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
The SearchModel class no longer returns an elapsed time
value. Update the tests and views that expect this removed
variable.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
Add filter(is_stub) to the default Document model manager.
Now only the Passthrough manager can access document stubs.
Remove the explicit filtering of stubs from code that obtains
the queryset from the default document manager.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
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>
Add a setting callback to update the size of the document
cache when the DOCUMENTS_CACHE_MAXIMUM_SIZE setting is
updated.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
With the creation of the new general use file Cache system
the old DocumentPageCachedImage model and manager are no longer
needed. This commit removed the model and the manager, and add
a migration to remove any data in the model before removing it
from the database.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>