Commit Graph
57 Commits
Author SHA1 Message Date
Roberto Rosario bd12d587ee Refactor document indexing app
Convert half the widget to HTML widgets.

Rename links and views to use the nomeclature _template_
and _instance_ to differenciate between index instances
and index templates.

Update URL parameters to use the "_id" form.

Add more tests.

Add model permission inheritance to the IndexTemplateNode,
and IndexInstanceNode models.

Remove the level and document count display from the
instance node. Display instead the total items.

Use a FilteredSelectionForm subclass to display the list
of index templates to rebuild.

Add missing icons.

Add keyword arguments to links.

Modernize tests to use the document test mixin.

Update the permission requirements for the index template
document type selection screen. The document type view
permission is now required in addition to the index
template edit permission.

Use ExternalObjectMixin to reduce the code in all views.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-02-05 05:47:10 -04:00
Roberto Rosario ef5e0c2d86 Remove last usage of .filter_by_access()
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-01-29 04:18:02 -04:00
Roberto Rosario c6aab93f98 Initial audit of the document index app
Add keyword arguments to calls. Sort methods and parameters.

Signed-off-by: Roberto Rosario <Roberto.Rosario.Gonzalez@gmail.com>
2019-01-02 22:53:52 -04:00
Roberto Rosario 46cd7353dc Multiple apps: Sort imports and minor style fixes
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2018-12-06 16:38:24 -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 6a7cd09bc1 Use Jinja2 as the template engine
Use Jinja2 to render the templates of the indexing,
workflows, smart links, user mailer and metadata apps.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-11-25 02:13:26 -04:00
Roberto Rosario b04b205fb6 Add docstrings for almost all models
Also adds docstring to some managers and model methods.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-11-24 22:56:35 -04:00
Roberto Rosario b8c5e2380e document_indexing: Make sure locks are release on exceptions. Remove document from nodes and delete empty nodes only at the start of the indexing process. When the indexing starts at the template node, make sure it starts with the root node.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-14 00:15:28 -04:00
Roberto Rosario efdc35aaec Fix sporadic index instance node tree id warning.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-12 21:35:17 -04:00
Roberto Rosario c6d3ffa28b Update Django template reference URL from Django 1.7 to Django 1.11. Add migratons to update model definitions.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 19:55:30 -04:00
Roberto Rosario f42e1a96b2 Add natural key support to the Index model.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-03 18:51:17 -04:00
Michael Price 53239385ae Add the "to=" keyword argument to all ForeignKey, ManayToMany and OneToOne Fields.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:49:04 -04:00
Michael Price 28aa0b913c Reorganize and sort models and managers according to Mayan's best practices.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:21:37 -04:00
Roberto Rosario 68d8ce56c8 Update the index information colums to show the
total number of documents and nodes contained in a level.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 20:29:59 -04:00
Roberto Rosario f09321f6ab Fix deprecation warnings for Django 1.11 and Django 2.0.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-21 00:25:18 -04:00
Roberto Rosario eff548d2e8 Sort indexes by label.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-13 21:34:43 -04:00
Roberto Rosario 6c6ca38374 Replace all instances of unicode only handling to use force_text.
Replace all __unicode__ methods to __str__ and the
@python_2_unicode_compatible decorator.
Replace all instance of smart_str, smart_unicode, force_uncode
with force_text.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-05 15:03:24 -04:00
Roberto Rosario e1a0ffd25c Make sure the indexing lock is released,
even when an error occurs.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-01 14:49:52 -04:00
Roberto Rosario c79b21e875 Stop indexing when a node template doesn't return a value.
GitLab issue #391. Thanks to @jacekkow for the find and diagnostics.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-21 14:39:08 -04:00
Roberto Rosario a7d6ab15f8 Fix index rebuilding for multi value first levels. GitLab issue #391.
Thanks to @jacekkow for the report and diagnosis.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-20 03:28:25 -04:00
Roberto Rosario 5798cabd7c Add support to update the document indexes from workflow state changes.
Add a new workflow field called internal_name for easier workflow
reference in document index templates.
Generalize the PropertyHelper class.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-06 20:07:15 -04:00
Roberto Rosario 88151df2bc Rewrite the document indexer to allow single index rebuilds,
less locks and improve performance.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-28 15:22:13 -04:00
Roberto Rosario ce563bfb6a Update the index node template expression field from a 128 char field
to a text field.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-24 00:59:59 -04:00
Roberto Rosario 7a0c2224bb Add model docstrings.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-25 14:21:30 -04:00
Roberto Rosario 621c988809 Simplify filter_by_access boilerplate code 2016-11-02 03:48:16 -04:00
Roberto Rosario 7cde1fe78f Add ACLs to document indexes. Convert all document indexing views to CBV. Remove the document index setup permission. Add view tests to the document indexing app. Use MPTT methods and stop relying on undocumented API. 2016-03-19 02:51:45 -04:00
Roberto Rosario 1a20d93e4c Add new split move index navigation. 2016-03-15 04:11:44 -04:00
Roberto Rosario 68f3c6eee7 PEP8 cleanups. 2015-08-19 14:50:44 -04:00
Roberto Rosario 683e54fea1 Replace unused lists with tuples. 2015-08-19 13:57:38 -04:00
Roberto Rosario 60bc327756 Improve SourceColumn workflow by allowing explicit functions as columns. Remove usage of encapsulate. Move instances of 'extra_columns' to SourceColumn. 2015-08-16 14:26:41 -04:00
Roberto Rosario f1f1c85cbf Remove the last usage of 'eval'. gh-issue #151. gl-issue #118 2015-08-11 23:35:19 -04:00
Roberto Rosario 8072db07dd Index the value field of index nodes. 2015-07-29 13:32:42 -04:00
Roberto Rosario e4fa3c4960 Add slugs to indexes to be able to reference them from the mirroring app. 2015-07-28 21:54:40 -04:00
Roberto Rosario 3b728328ad PEP8 cleanups, E501. 2015-07-23 04:05:29 -04:00
Roberto Rosario e635a3520f Move index management code to the managers.py module. 2015-07-08 18:56:07 -04:00
Roberto Rosario ab2d4537dc Remove name field. Rename title field to label. 2015-07-07 21:04:00 -04:00
Roberto Rosario 80e855e7b4 Return '#' for invalid indexes (unitialized, indexes with not node instances). 2015-07-02 01:50:19 -04:00
Roberto Rosario e9ea2dc35a Modernize usage of the AssignRemove CBV 2015-06-30 17:19:56 -04:00
Roberto Rosario 8e62c21bb1 Add missing return statement 2015-04-06 01:53:37 -04:00
Roberto Rosario 4d2891b361 Remove use of the permalink decorator 2015-04-06 01:36:22 -04:00
Roberto Rosario 26d64c45f5 Add the @python_2_unicode_compatible to all models. Closes issue #67 2015-04-01 02:40:19 -04:00
Roberto Rosario 60e13fe704 Improve indexing admin interface 2015-03-06 20:31:53 -04:00
Roberto Rosario d59ea3ede2 Add from __future__ import unicode_literals, issue #37 2015-01-19 04:06:40 -04:00
Roberto Rosario 5cdc95e99f Explicit document type needes to trigger indexing of documents, previously indexes with no document type associated would update for all document types 2015-01-07 03:39:11 -04:00
Roberto Rosario ddfba9684d Remove final filesystem mirroring code, add TODO reminders 2015-01-03 12:17:02 -04:00
Roberto Rosario 018284eec1 Add locking and arbitration to indexing updates, remove filesystem index mirroring issue #56 2015-01-02 21:52:33 -04:00
Roberto Rosario 6fb768a6f8 Issue #128, Add Indexes API endpoints 2014-12-16 01:37:49 -04:00
Roberto Rosario 84493b7a72 PEP8 Cleanups 2014-11-11 14:58:37 -04:00
Roberto Rosario f52123cd7a Cleanups, unused import, unused arguments removal 2014-11-02 23:21:14 -04:00
Roberto Rosario 46b14eb22f Start using names that make more sense 2014-10-16 00:39:26 -04:00