PEP8 cleanups.
This commit is contained in:
@@ -61,7 +61,8 @@ class DocumentIndexingApp(MayanAppConfig):
|
||||
)
|
||||
)
|
||||
SourceColumn(
|
||||
source=IndexInstance, label=_('Document types'), attribute='get_document_types_names'
|
||||
source=IndexInstance, label=_('Document types'),
|
||||
attribute='get_document_types_names'
|
||||
)
|
||||
|
||||
SourceColumn(
|
||||
@@ -74,7 +75,9 @@ class DocumentIndexingApp(MayanAppConfig):
|
||||
)
|
||||
SourceColumn(
|
||||
source=IndexTemplateNode, label=_('Has document links?'),
|
||||
func=lambda context: two_state_template(context['object'].link_documents)
|
||||
func=lambda context: two_state_template(
|
||||
context['object'].link_documents
|
||||
)
|
||||
)
|
||||
|
||||
SourceColumn(
|
||||
|
||||
@@ -20,7 +20,8 @@ class IndexInstanceNodeManager(models.Manager):
|
||||
@staticmethod
|
||||
def delete_empty_index_nodes_recursive(instance_node):
|
||||
"""
|
||||
Calls itself recursively deleting empty index instance nodes up to root
|
||||
Calls itself recursively deleting empty index instance nodes up to
|
||||
root
|
||||
"""
|
||||
|
||||
if instance_node.get_children().count() == 0:
|
||||
|
||||
@@ -15,11 +15,38 @@ class Migration(migrations.Migration):
|
||||
migrations.CreateModel(
|
||||
name='Index',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('name', models.CharField(help_text='Internal name used to reference this index.', unique=True, max_length=64, verbose_name='Name')),
|
||||
('title', models.CharField(help_text='The name that will be visible to users.', unique=True, max_length=128, verbose_name='Title')),
|
||||
('enabled', models.BooleanField(default=True, help_text='Causes this index to be visible and updated when document data changes.', verbose_name='Enabled')),
|
||||
('document_types', models.ManyToManyField(to='documents.DocumentType', verbose_name='Document types')),
|
||||
(
|
||||
'id', models.AutoField(
|
||||
verbose_name='ID', serialize=False, auto_created=True,
|
||||
primary_key=True
|
||||
)
|
||||
),
|
||||
(
|
||||
'name', models.CharField(
|
||||
help_text='Internal name used to reference this index.',
|
||||
unique=True, max_length=64, verbose_name='Name'
|
||||
)
|
||||
),
|
||||
(
|
||||
'title', models.CharField(
|
||||
help_text='The name that will be visible to users.',
|
||||
unique=True, max_length=128, verbose_name='Title'
|
||||
)
|
||||
),
|
||||
(
|
||||
'enabled', models.BooleanField(
|
||||
default=True,
|
||||
help_text='Causes this index to be visible and updated when document data changes.',
|
||||
verbose_name='Enabled'
|
||||
)
|
||||
),
|
||||
(
|
||||
'document_types',
|
||||
models.ManyToManyField(
|
||||
to='documents.DocumentType',
|
||||
verbose_name='Document types'
|
||||
)
|
||||
),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Index',
|
||||
@@ -30,13 +57,43 @@ class Migration(migrations.Migration):
|
||||
migrations.CreateModel(
|
||||
name='IndexInstanceNode',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('value', models.CharField(max_length=128, verbose_name='Value', blank=True)),
|
||||
('lft', models.PositiveIntegerField(editable=False, db_index=True)),
|
||||
('rght', models.PositiveIntegerField(editable=False, db_index=True)),
|
||||
('tree_id', models.PositiveIntegerField(editable=False, db_index=True)),
|
||||
('level', models.PositiveIntegerField(editable=False, db_index=True)),
|
||||
('documents', models.ManyToManyField(related_name='node_instances', verbose_name='Documents', to='documents.Document')),
|
||||
(
|
||||
'id', models.AutoField(
|
||||
verbose_name='ID', serialize=False, auto_created=True,
|
||||
primary_key=True
|
||||
)
|
||||
),
|
||||
(
|
||||
'value', models.CharField(
|
||||
max_length=128, verbose_name='Value', blank=True
|
||||
)
|
||||
),
|
||||
(
|
||||
'lft', models.PositiveIntegerField(
|
||||
editable=False, db_index=True
|
||||
)
|
||||
),
|
||||
(
|
||||
'rght', models.PositiveIntegerField(
|
||||
editable=False, db_index=True
|
||||
)
|
||||
),
|
||||
(
|
||||
'tree_id', models.PositiveIntegerField(
|
||||
editable=False, db_index=True
|
||||
)
|
||||
),
|
||||
(
|
||||
'level', models.PositiveIntegerField(
|
||||
editable=False, db_index=True
|
||||
)
|
||||
),
|
||||
(
|
||||
'documents', models.ManyToManyField(
|
||||
related_name='node_instances',
|
||||
verbose_name='Documents', to='documents.Document'
|
||||
)
|
||||
),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Index node instance',
|
||||
@@ -47,16 +104,64 @@ class Migration(migrations.Migration):
|
||||
migrations.CreateModel(
|
||||
name='IndexTemplateNode',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('expression', models.CharField(help_text='Enter a python string expression to be evaluated.', max_length=128, verbose_name='Indexing expression')),
|
||||
('enabled', models.BooleanField(default=True, help_text='Causes this node to be visible and updated when document data changes.', verbose_name='Enabled')),
|
||||
('link_documents', models.BooleanField(default=False, help_text='Check this option to have this node act as a container for documents and not as a parent for further nodes.', verbose_name='Link documents')),
|
||||
('lft', models.PositiveIntegerField(editable=False, db_index=True)),
|
||||
('rght', models.PositiveIntegerField(editable=False, db_index=True)),
|
||||
('tree_id', models.PositiveIntegerField(editable=False, db_index=True)),
|
||||
('level', models.PositiveIntegerField(editable=False, db_index=True)),
|
||||
('index', models.ForeignKey(related_name='node_templates', verbose_name='Index', to='document_indexing.Index')),
|
||||
('parent', mptt.fields.TreeForeignKey(blank=True, to='document_indexing.IndexTemplateNode', null=True)),
|
||||
(
|
||||
'id', models.AutoField(
|
||||
verbose_name='ID', serialize=False, auto_created=True,
|
||||
primary_key=True
|
||||
)
|
||||
),
|
||||
(
|
||||
'expression', models.CharField(
|
||||
help_text='Enter a python string expression to be evaluated.',
|
||||
max_length=128, verbose_name='Indexing expression'
|
||||
)
|
||||
),
|
||||
(
|
||||
'enabled', models.BooleanField(
|
||||
default=True,
|
||||
help_text='Causes this node to be visible and updated when document data changes.',
|
||||
verbose_name='Enabled'
|
||||
)
|
||||
),
|
||||
(
|
||||
'link_documents', models.BooleanField(
|
||||
default=False,
|
||||
help_text='Check this option to have this node act as a container for documents and not as a parent for further nodes.',
|
||||
verbose_name='Link documents'
|
||||
)
|
||||
),
|
||||
(
|
||||
'lft', models.PositiveIntegerField(
|
||||
editable=False, db_index=True
|
||||
)
|
||||
),
|
||||
(
|
||||
'rght', models.PositiveIntegerField(
|
||||
editable=False, db_index=True
|
||||
)
|
||||
),
|
||||
(
|
||||
'tree_id', models.PositiveIntegerField(
|
||||
editable=False, db_index=True
|
||||
)
|
||||
),
|
||||
(
|
||||
'level', models.PositiveIntegerField(
|
||||
editable=False, db_index=True
|
||||
)
|
||||
),
|
||||
(
|
||||
'index', models.ForeignKey(
|
||||
related_name='node_templates', verbose_name='Index',
|
||||
to='document_indexing.Index'
|
||||
)
|
||||
),
|
||||
(
|
||||
'parent', mptt.fields.TreeForeignKey(
|
||||
blank=True, to='document_indexing.IndexTemplateNode',
|
||||
null=True
|
||||
)
|
||||
),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Index node template',
|
||||
@@ -67,13 +172,20 @@ class Migration(migrations.Migration):
|
||||
migrations.AddField(
|
||||
model_name='indexinstancenode',
|
||||
name='index_template_node',
|
||||
field=models.ForeignKey(related_name='node_instance', verbose_name='Index template node', to='document_indexing.IndexTemplateNode'),
|
||||
field=models.ForeignKey(
|
||||
related_name='node_instance',
|
||||
verbose_name='Index template node',
|
||||
to='document_indexing.IndexTemplateNode'
|
||||
),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='indexinstancenode',
|
||||
name='parent',
|
||||
field=mptt.fields.TreeForeignKey(blank=True, to='document_indexing.IndexInstanceNode', null=True),
|
||||
field=mptt.fields.TreeForeignKey(
|
||||
blank=True, to='document_indexing.IndexInstanceNode',
|
||||
null=True
|
||||
),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
||||
|
||||
@@ -14,7 +14,9 @@ class Migration(migrations.Migration):
|
||||
migrations.AlterField(
|
||||
model_name='index',
|
||||
name='label',
|
||||
field=models.CharField(unique=True, max_length=128, verbose_name='Label'),
|
||||
field=models.CharField(
|
||||
unique=True, max_length=128, verbose_name='Label'
|
||||
),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
||||
|
||||
@@ -14,7 +14,11 @@ class Migration(migrations.Migration):
|
||||
migrations.AddField(
|
||||
model_name='index',
|
||||
name='slug',
|
||||
field=models.SlugField(null=True, max_length=128, blank=True, help_text='This values will be used by other apps to reference this index.', unique=True, verbose_name='Slug'),
|
||||
field=models.SlugField(
|
||||
null=True, max_length=128, blank=True,
|
||||
help_text='This values will be used by other apps to reference this index.',
|
||||
unique=True, verbose_name='Slug'
|
||||
),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
||||
|
||||
@@ -14,7 +14,11 @@ class Migration(migrations.Migration):
|
||||
migrations.AlterField(
|
||||
model_name='index',
|
||||
name='slug',
|
||||
field=models.SlugField(default='', max_length=128, help_text='This values will be used by other apps to reference this index.', unique=True, verbose_name='Slug'),
|
||||
field=models.SlugField(
|
||||
default='', max_length=128,
|
||||
help_text='This values will be used by other apps to reference this index.',
|
||||
unique=True, verbose_name='Slug'
|
||||
),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
|
||||
@@ -14,7 +14,10 @@ class Migration(migrations.Migration):
|
||||
migrations.AlterField(
|
||||
model_name='indexinstancenode',
|
||||
name='value',
|
||||
field=models.CharField(db_index=True, max_length=128, verbose_name='Value', blank=True),
|
||||
field=models.CharField(
|
||||
db_index=True, max_length=128, verbose_name='Value',
|
||||
blank=True
|
||||
),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
||||
|
||||
@@ -14,7 +14,10 @@ class Migration(migrations.Migration):
|
||||
migrations.AlterField(
|
||||
model_name='indextemplatenode',
|
||||
name='expression',
|
||||
field=models.CharField(help_text="Enter a template to render. Use Django's default templating language (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)", max_length=128, verbose_name='Indexing expression'),
|
||||
field=models.CharField(
|
||||
help_text="Enter a template to render. Use Django's default templating language (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)",
|
||||
max_length=128, verbose_name='Indexing expression'
|
||||
),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
||||
|
||||
@@ -71,7 +71,9 @@ class Index(models.Model):
|
||||
|
||||
def get_document_types_names(self):
|
||||
return ', '.join(
|
||||
[unicode(document_type) for document_type in self.document_types.all()] or ['None']
|
||||
[
|
||||
unicode(document_type) for document_type in self.document_types.all()
|
||||
] or ['None']
|
||||
)
|
||||
|
||||
class Meta:
|
||||
|
||||
@@ -37,7 +37,8 @@ urlpatterns = patterns(
|
||||
),
|
||||
url(
|
||||
r'^setup/index/(?P<pk>\d+)/document_types/$',
|
||||
SetupIndexDocumentTypesView.as_view(), name='index_setup_document_types'
|
||||
SetupIndexDocumentTypesView.as_view(),
|
||||
name='index_setup_document_types'
|
||||
),
|
||||
url(
|
||||
r'^setup/template/node/(?P<parent_pk>\d+)/create/child/$',
|
||||
@@ -84,8 +85,8 @@ api_urls = patterns(
|
||||
name='index-detail'
|
||||
),
|
||||
url(
|
||||
r'^index/(?P<pk>[0-9]+)/template/$', APIIndexTemplateListView.as_view(),
|
||||
name='index-template-detail'
|
||||
r'^index/(?P<pk>[0-9]+)/template/$',
|
||||
APIIndexTemplateListView.as_view(), name='index-template-detail'
|
||||
),
|
||||
url(r'^indexes/$', APIIndexListView.as_view(), name='index-list'),
|
||||
url(
|
||||
|
||||
@@ -15,7 +15,6 @@ from common.views import (
|
||||
AssignRemoveView, SingleObjectCreateView, SingleObjectDeleteView,
|
||||
SingleObjectEditView, SingleObjectListView
|
||||
)
|
||||
from common.widgets import two_state_template
|
||||
from documents.models import Document, DocumentType
|
||||
from documents.permissions import permission_document_view
|
||||
from documents.views import DocumentListView
|
||||
@@ -33,7 +32,7 @@ from .permissions import (
|
||||
permission_document_indexing_setup, permission_document_indexing_view
|
||||
)
|
||||
from .tasks import task_do_rebuild_all_indexes
|
||||
from .widgets import index_instance_item_link, get_breadcrumbs, node_level
|
||||
from .widgets import get_breadcrumbs
|
||||
|
||||
|
||||
# Setup views
|
||||
|
||||
@@ -21,7 +21,9 @@ def get_instance_link(index_instance_node, text=None, simple=False):
|
||||
|
||||
return template % {
|
||||
'url': index_instance_node.get_absolute_url(),
|
||||
'value': text if text else (index_instance_node if index_instance_node.parent else index_instance_node.index_template_node.index)
|
||||
'value': text if text else (
|
||||
index_instance_node if index_instance_node.parent else index_instance_node.index_template_node.index
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +52,9 @@ def get_breadcrumbs(index_instance_node, simple=False, single_link=False, includ
|
||||
# Return the entire breadcrumb path as a single HTML anchor
|
||||
output.insert(
|
||||
0, get_instance_link(
|
||||
index_instance_node=index_instance_node, text=(' / '.join(result))
|
||||
index_instance_node=index_instance_node, text=(
|
||||
' / '.join(result)
|
||||
)
|
||||
)
|
||||
)
|
||||
return mark_safe(' '.join(output))
|
||||
@@ -68,11 +72,13 @@ def index_instance_item_link(index_instance_item):
|
||||
else:
|
||||
icon_template = ''
|
||||
|
||||
return mark_safe('%(icon_template)s <a href="%(url)s">%(text)s</a>' % {
|
||||
'url': index_instance_item.get_absolute_url(),
|
||||
'icon_template': icon_template,
|
||||
'text': index_instance_item
|
||||
})
|
||||
return mark_safe(
|
||||
'%(icon_template)s <a href="%(url)s">%(text)s</a>' % {
|
||||
'url': index_instance_item.get_absolute_url(),
|
||||
'icon_template': icon_template,
|
||||
'text': index_instance_item
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def node_level(node):
|
||||
@@ -83,8 +89,9 @@ def node_level(node):
|
||||
return mark_safe(
|
||||
''.join(
|
||||
[
|
||||
' ' * (getattr(node, node._mptt_meta.level_attr) - 1),
|
||||
'' if node.is_root_node() else '<i class="fa fa-level-up fa-rotate-90"></i> ',
|
||||
' ' * (
|
||||
getattr(node, node._mptt_meta.level_attr) - 1
|
||||
), '' if node.is_root_node() else '<i class="fa fa-level-up fa-rotate-90"></i> ',
|
||||
ugettext('Root') if node.is_root_node() else unicode(node)
|
||||
]
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user