PEP8 cleanups
This commit is contained in:
@@ -4,8 +4,8 @@ from django.contrib import admin
|
||||
|
||||
from mptt.admin import MPTTModelAdmin
|
||||
|
||||
from .models import (Index, IndexTemplateNode, IndexInstanceNode,
|
||||
DocumentRenameCount)
|
||||
from .models import (DocumentRenameCount, Index, IndexInstanceNode,
|
||||
IndexTemplateNode)
|
||||
|
||||
|
||||
class IndexTemplateNodeAdmin(MPTTModelAdmin):
|
||||
@@ -17,7 +17,7 @@ class IndexInstanceNodeAdmin(MPTTModelAdmin):
|
||||
list_display = ('value',)
|
||||
|
||||
|
||||
admin.site.register(DocumentRenameCount)
|
||||
admin.site.register(Index)
|
||||
admin.site.register(IndexTemplateNode, IndexTemplateNodeAdmin)
|
||||
admin.site.register(IndexInstanceNode, IndexInstanceNodeAdmin)
|
||||
admin.site.register(DocumentRenameCount)
|
||||
|
||||
@@ -4,22 +4,22 @@ from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
||||
|
||||
from .permissions import (PERMISSION_DOCUMENT_INDEXING_VIEW,
|
||||
PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES,
|
||||
PERMISSION_DOCUMENT_INDEXING_SETUP,
|
||||
PERMISSION_DOCUMENT_INDEXING_CREATE,
|
||||
PERMISSION_DOCUMENT_INDEXING_EDIT,
|
||||
PERMISSION_DOCUMENT_INDEXING_DELETE)
|
||||
|
||||
|
||||
def is_not_root_node(context):
|
||||
return not context['node'].is_root_node()
|
||||
from .permissions import (PERMISSION_DOCUMENT_INDEXING_CREATE,
|
||||
PERMISSION_DOCUMENT_INDEXING_EDIT,
|
||||
PERMISSION_DOCUMENT_INDEXING_DELETE,
|
||||
PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES,
|
||||
PERMISSION_DOCUMENT_INDEXING_SETUP,
|
||||
PERMISSION_DOCUMENT_INDEXING_VIEW)
|
||||
|
||||
|
||||
def is_not_instance_root_node(context):
|
||||
return not context['object'].is_root_node()
|
||||
|
||||
|
||||
def is_not_root_node(context):
|
||||
return not context['node'].is_root_node()
|
||||
|
||||
|
||||
index_setup = {'text': _(u'Indexes'), 'view': 'indexing:index_setup_list', 'icon': 'tab.png', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP], 'children_view_regex': [r'^index_setup', r'^template_node']}
|
||||
index_setup_list = {'text': _(u'Index list'), 'view': 'indexing:index_setup_list', 'famfam': 'tab', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP]}
|
||||
index_setup_create = {'text': _(u'Create index'), 'view': 'indexing:index_setup_create', 'famfam': 'tab_add', 'permissions': [PERMISSION_DOCUMENT_INDEXING_CREATE]}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from document_indexing.api import get_breadcrumbs
|
||||
from .api import get_breadcrumbs
|
||||
|
||||
|
||||
def get_document_indexing_subtemplate(document):
|
||||
@@ -14,10 +16,10 @@ def get_document_indexing_subtemplate(document):
|
||||
object_list.append(get_breadcrumbs(index_instance, single_link=True, include_count=True))
|
||||
|
||||
return {
|
||||
'name': 'main/generic_list_subtemplate.html',
|
||||
'context': {
|
||||
'title': _(u'document indexes'),
|
||||
'object_list': object_list,
|
||||
'hide_link': True
|
||||
}
|
||||
'name': 'main/generic_list_subtemplate.html',
|
||||
'context': {
|
||||
'title': _(u'document indexes'),
|
||||
'object_list': object_list,
|
||||
'hide_link': True
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ from django.contrib import messages
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.shortcuts import render_to_response, get_object_or_404
|
||||
from django.shortcuts import get_object_or_404, render_to_response
|
||||
from django.template import RequestContext
|
||||
from django.utils.html import mark_safe
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
@@ -15,19 +15,19 @@ from acls.utils import apply_default_acls
|
||||
from common.utils import encapsulate, generate_choices_w_labels
|
||||
from common.views import assign_remove
|
||||
from common.widgets import two_state_template
|
||||
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
||||
from documents.models import Document
|
||||
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
||||
from documents.views import document_list
|
||||
from permissions.models import Permission
|
||||
|
||||
from .forms import IndexForm, IndexTemplateNodeForm
|
||||
from .models import Index, IndexTemplateNode, IndexInstanceNode
|
||||
from .permissions import (PERMISSION_DOCUMENT_INDEXING_VIEW,
|
||||
from .models import Index, IndexInstanceNode, IndexTemplateNode
|
||||
from .permissions import (PERMISSION_DOCUMENT_INDEXING_CREATE,
|
||||
PERMISSION_DOCUMENT_INDEXING_DELETE,
|
||||
PERMISSION_DOCUMENT_INDEXING_EDIT,
|
||||
PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES,
|
||||
PERMISSION_DOCUMENT_INDEXING_SETUP,
|
||||
PERMISSION_DOCUMENT_INDEXING_CREATE,
|
||||
PERMISSION_DOCUMENT_INDEXING_EDIT,
|
||||
PERMISSION_DOCUMENT_INDEXING_DELETE)
|
||||
PERMISSION_DOCUMENT_INDEXING_VIEW)
|
||||
from .tools import do_rebuild_all_indexes
|
||||
from .widgets import index_instance_item_link, get_breadcrumbs, node_level
|
||||
|
||||
@@ -57,7 +57,7 @@ def index_setup_list(request):
|
||||
context['object_list'] = queryset
|
||||
|
||||
return render_to_response('main/generic_list.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def index_setup_create(request):
|
||||
@@ -140,7 +140,7 @@ def index_setup_delete(request, index_pk):
|
||||
}
|
||||
|
||||
return render_to_response('main/generic_confirm.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def index_setup_view(request, index_pk):
|
||||
@@ -169,7 +169,7 @@ def index_setup_view(request, index_pk):
|
||||
}
|
||||
|
||||
return render_to_response('main/generic_list.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def index_setup_document_types(request, index_pk):
|
||||
@@ -293,7 +293,7 @@ def template_node_delete(request, node_pk):
|
||||
}
|
||||
|
||||
return render_to_response('main/generic_confirm.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
# User views
|
||||
@@ -320,7 +320,7 @@ def index_list(request):
|
||||
context['object_list'] = queryset
|
||||
|
||||
return render_to_response('main/generic_list.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def index_instance_node_view(request, index_instance_node_pk):
|
||||
|
||||
@@ -11,7 +11,7 @@ from history.api import register_history_type
|
||||
from history.permissions import PERMISSION_HISTORY_VIEW
|
||||
from main.api import register_diagnostic, register_maintenance_links
|
||||
from navigation.api import (register_links, register_model_list_columns,
|
||||
register_multi_item_links,register_top_menu)
|
||||
register_multi_item_links, register_top_menu)
|
||||
from project_setup.api import register_setup
|
||||
from rest_api.classes import APIEndPoint
|
||||
from statistics.classes import StatisticNamespace
|
||||
@@ -70,7 +70,6 @@ register_history_type(HISTORY_DOCUMENT_DELETED)
|
||||
# Register document type links
|
||||
register_links(DocumentType, [document_type_edit, document_type_delete, document_type_filename_list])
|
||||
register_links(DocumentTypeFilename, [document_type_filename_edit, document_type_filename_delete])
|
||||
|
||||
register_links(['documents:setup_document_type_metadata', 'documents:document_type_filename_delete', 'documents:document_type_create', 'documents:document_type_filename_create', 'documents:document_type_filename_edit', 'documents:document_type_filename_list', 'documents:document_type_list', 'documents:document_type_edit', 'documents:document_type_delete'], [document_type_list, document_type_create], menu_name='secondary_menu')
|
||||
register_links([DocumentTypeFilename, 'documents:document_type_filename_list', 'documents:document_type_filename_create'], [document_type_filename_create], menu_name='sidebar')
|
||||
|
||||
@@ -80,9 +79,7 @@ register_multi_item_links(['documents:document_find_duplicates', 'folders:folder
|
||||
|
||||
# Document Version links
|
||||
register_links(DocumentVersion, [document_version_revert, document_version_download])
|
||||
|
||||
secondary_menu_links = [document_list_recent, document_list]
|
||||
|
||||
register_links(['documents:document_list_recent', 'documents:document_list', 'sources:document_create', 'sources:document_create_multiple', 'sources:upload_interactive', 'sources:staging_file_delete'], secondary_menu_links, menu_name='secondary_menu')
|
||||
register_links(Document, secondary_menu_links, menu_name='secondary_menu')
|
||||
|
||||
@@ -99,16 +96,13 @@ register_links(DocumentPage, [
|
||||
], menu_name='related')
|
||||
|
||||
register_links(['documents:document_page_view'], [document_page_rotate_left, document_page_rotate_right, document_page_zoom_in, document_page_zoom_out, document_page_view_reset], menu_name='form_header')
|
||||
|
||||
register_links(DocumentPageTransformation, [document_page_transformation_edit, document_page_transformation_delete])
|
||||
register_links('documents:document_page_transformation_list', [document_page_transformation_create], menu_name='sidebar')
|
||||
register_links('documents:document_page_transformation_create', [document_page_transformation_create], menu_name='sidebar')
|
||||
register_links(['documents:document_page_transformation_edit', 'documents:document_page_transformation_delete'], [document_page_transformation_create], menu_name='sidebar')
|
||||
|
||||
register_diagnostic('documents', _(u'Documents'), document_missing_list)
|
||||
|
||||
register_maintenance_links([document_find_all_duplicates, document_update_page_count, document_clear_image_cache], namespace='documents', title=_(u'documents'))
|
||||
|
||||
register_model_list_columns(Document, [
|
||||
{
|
||||
'name': _(u'Thumbnail'), 'attribute':
|
||||
@@ -137,17 +131,15 @@ if (not validate_path(document_settings.CACHE_PATH)) or (not document_settings.C
|
||||
|
||||
register_setup(document_type_setup)
|
||||
|
||||
class_permissions(Document, [
|
||||
PERMISSION_DOCUMENT_PROPERTIES_EDIT,
|
||||
PERMISSION_DOCUMENT_EDIT,
|
||||
PERMISSION_DOCUMENT_VIEW,
|
||||
PERMISSION_DOCUMENT_DELETE,
|
||||
PERMISSION_DOCUMENT_DOWNLOAD,
|
||||
PERMISSION_DOCUMENT_TRANSFORM,
|
||||
PERMISSION_DOCUMENT_NEW_VERSION,
|
||||
PERMISSION_DOCUMENT_VERSION_REVERT,
|
||||
PERMISSION_HISTORY_VIEW
|
||||
])
|
||||
class_permissions(Document, [PERMISSION_DOCUMENT_DELETE,
|
||||
PERMISSION_DOCUMENT_DOWNLOAD,
|
||||
PERMISSION_DOCUMENT_EDIT,
|
||||
PERMISSION_DOCUMENT_NEW_VERSION,
|
||||
PERMISSION_DOCUMENT_PROPERTIES_EDIT,
|
||||
PERMISSION_DOCUMENT_TRANSFORM,
|
||||
PERMISSION_DOCUMENT_VERSION_REVERT,
|
||||
PERMISSION_DOCUMENT_VIEW,
|
||||
PERMISSION_HISTORY_VIEW])
|
||||
|
||||
document_search = SearchModel('documents', 'Document')
|
||||
document_search.add_model_field('document_type__name', label=_(u'Document type'))
|
||||
|
||||
@@ -2,10 +2,9 @@ from __future__ import absolute_import
|
||||
|
||||
from django.contrib import admin
|
||||
|
||||
from .models import (DocumentType, Document,
|
||||
DocumentTypeFilename, DocumentPage,
|
||||
DocumentPageTransformation, RecentDocument,
|
||||
DocumentVersion)
|
||||
from .models import (Document, DocumentPage, DocumentPageTransformation,
|
||||
DocumentType, DocumentTypeFilename, DocumentVersion,
|
||||
RecentDocument)
|
||||
|
||||
|
||||
class DocumentPageInline(admin.StackedInline):
|
||||
@@ -54,8 +53,8 @@ class RecentDocumentAdmin(admin.ModelAdmin):
|
||||
date_hierarchy = 'datetime_accessed'
|
||||
|
||||
|
||||
admin.site.register(DocumentType, DocumentTypeAdmin)
|
||||
admin.site.register(Document, DocumentAdmin)
|
||||
admin.site.register(DocumentPageTransformation,
|
||||
DocumentPageTransformationAdmin)
|
||||
DocumentPageTransformationAdmin)
|
||||
admin.site.register(DocumentType, DocumentTypeAdmin)
|
||||
admin.site.register(RecentDocument, RecentDocumentAdmin)
|
||||
|
||||
@@ -152,9 +152,6 @@ class APIDocumentImageView(generics.GenericAPIView):
|
||||
|
||||
version = int(request.GET.get('version', document.latest_version.pk))
|
||||
|
||||
if request.GET.get('as_base64', False):
|
||||
base64_version = True
|
||||
|
||||
if zoom < ZOOM_MIN_LEVEL:
|
||||
zoom = ZOOM_MIN_LEVEL
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
# encoding: utf-8
|
||||
import os
|
||||
from south.db import db
|
||||
from south.v2 import DataMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ class DocumentUsageStatistics(Statistic):
|
||||
try:
|
||||
total_storage_documents, storage_used_space = storage_count()
|
||||
results.append(_(u'Documents in storage: %d') %
|
||||
total_storage_documents)
|
||||
total_storage_documents)
|
||||
results.append(_(u'Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d bytes') % {
|
||||
'base_2': pretty_size(storage_used_space),
|
||||
'base_10': pretty_size_10(storage_used_space),
|
||||
|
||||
@@ -93,7 +93,7 @@ def document_list(request, object_list=None, title=None, extra_context=None):
|
||||
context.update(extra_context)
|
||||
|
||||
return render_to_response('main/generic_list.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_view(request, document_id, advanced=False):
|
||||
@@ -218,7 +218,7 @@ def document_delete(request, document_id=None, document_id_list=None):
|
||||
context['title'] = _(u'Are you sure you wish to delete the documents: %s?') % ', '.join([unicode(d) for d in documents])
|
||||
|
||||
return render_to_response('main/generic_confirm.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_multiple_delete(request):
|
||||
@@ -533,7 +533,7 @@ def document_clear_transformations(request, document_id=None, document_id_list=N
|
||||
context['title'] = _(u'Are you sure you wish to clear all the page transformations for documents: %s?') % ', '.join([unicode(d) for d in documents])
|
||||
|
||||
return render_to_response('main/generic_confirm.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_multiple_clear_transformations(request):
|
||||
@@ -817,7 +817,6 @@ def document_print(request, document_id):
|
||||
new_url.append(urlquote(hard_copy_arguments))
|
||||
|
||||
new_window_url = u'?'.join(new_url)
|
||||
new_window_url_name = u'document_hard_copy'
|
||||
else:
|
||||
form = PrintForm()
|
||||
|
||||
@@ -882,7 +881,7 @@ def document_type_list(request):
|
||||
}
|
||||
|
||||
return render_to_response('main/generic_list.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_type_edit(request, document_type_id):
|
||||
@@ -910,8 +909,7 @@ def document_type_edit(request, document_type_id):
|
||||
'navigation_object_name': 'document_type',
|
||||
'document_type': document_type,
|
||||
'next': next
|
||||
},
|
||||
context_instance=RequestContext(request))
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_type_delete(request, document_type_id):
|
||||
@@ -947,7 +945,7 @@ def document_type_delete(request, document_type_id):
|
||||
}
|
||||
|
||||
return render_to_response('main/generic_confirm.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_type_create(request):
|
||||
@@ -969,8 +967,7 @@ def document_type_create(request):
|
||||
return render_to_response('main/generic_form.html', {
|
||||
'title': _(u'Create document type'),
|
||||
'form': form,
|
||||
},
|
||||
context_instance=RequestContext(request))
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_type_filename_list(request, document_type_id):
|
||||
@@ -994,7 +991,7 @@ def document_type_filename_list(request, document_type_id):
|
||||
}
|
||||
|
||||
return render_to_response('main/generic_list.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_type_filename_edit(request, document_type_filename_id):
|
||||
@@ -1029,8 +1026,7 @@ def document_type_filename_edit(request, document_type_filename_id):
|
||||
{'object': 'document_type', 'name': _(u'Document type')},
|
||||
{'object': 'filename', 'name': _(u'Document type filename')}
|
||||
],
|
||||
},
|
||||
context_instance=RequestContext(request))
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_type_filename_delete(request, document_type_filename_id):
|
||||
@@ -1070,7 +1066,7 @@ def document_type_filename_delete(request, document_type_filename_id):
|
||||
}
|
||||
|
||||
return render_to_response('main/generic_confirm.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_type_filename_create(request, document_type_id):
|
||||
@@ -1103,8 +1099,7 @@ def document_type_filename_create(request, document_type_id):
|
||||
'navigation_object_list': [
|
||||
{'object': 'document_type', 'name': _(u'Document type')},
|
||||
],
|
||||
},
|
||||
context_instance=RequestContext(request))
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_clear_image_cache(request):
|
||||
@@ -1173,7 +1168,7 @@ def document_version_list(request, document_pk):
|
||||
}
|
||||
|
||||
return render_to_response('main/generic_list.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_version_revert(request, document_version_pk):
|
||||
|
||||
@@ -66,7 +66,7 @@ def results(request, extra_context=None):
|
||||
[{'name': _(u'Type'), 'attribute': lambda x: x._meta.verbose_name[0].upper() + x._meta.verbose_name[1:]}]})
|
||||
|
||||
return render_to_response('search_results.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def search(request, advanced=False):
|
||||
@@ -81,8 +81,7 @@ def search(request, advanced=False):
|
||||
'search_results_limit': LIMIT,
|
||||
'submit_label': _(u'Search'),
|
||||
'submit_icon_famfam': 'zoom',
|
||||
},
|
||||
context_instance=RequestContext(request)
|
||||
}, context_instance=RequestContext(request)
|
||||
)
|
||||
else:
|
||||
if request.GET.get('source') != 'sidebar':
|
||||
|
||||
@@ -5,6 +5,7 @@ from django.shortcuts import get_object_or_404
|
||||
|
||||
from rest_framework import generics
|
||||
|
||||
from acls.models import AccessEntry
|
||||
from documents.models import Document
|
||||
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
||||
from permissions.models import Permission
|
||||
@@ -12,9 +13,8 @@ from rest_api.filters import MayanObjectPermissionsFilter
|
||||
from rest_api.permissions import MayanPermission
|
||||
|
||||
from .models import Folder
|
||||
from .permissions import (PERMISSION_FOLDER_CREATE,
|
||||
PERMISSION_FOLDER_DELETE, PERMISSION_FOLDER_EDIT,
|
||||
PERMISSION_FOLDER_VIEW)
|
||||
from .permissions import (PERMISSION_FOLDER_CREATE, PERMISSION_FOLDER_DELETE,
|
||||
PERMISSION_FOLDER_EDIT, PERMISSION_FOLDER_VIEW)
|
||||
from .serializers import FolderSerializer
|
||||
|
||||
|
||||
@@ -71,6 +71,7 @@ class APIFolderDocumentListView(generics.ListAPIView):
|
||||
queryset = folder.documents.all()
|
||||
return queryset
|
||||
|
||||
|
||||
class APIDocumentFolderListView(generics.ListAPIView):
|
||||
"""
|
||||
Returns a list of all the folders to which a document belongs.
|
||||
|
||||
@@ -5,10 +5,10 @@ from django.utils.translation import ugettext_lazy as _
|
||||
from acls.permissions import ACLS_VIEW_ACL
|
||||
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
||||
|
||||
from .permissions import (PERMISSION_FOLDER_CREATE,
|
||||
PERMISSION_FOLDER_EDIT, PERMISSION_FOLDER_DELETE,
|
||||
PERMISSION_FOLDER_REMOVE_DOCUMENT, PERMISSION_FOLDER_VIEW,
|
||||
PERMISSION_FOLDER_ADD_DOCUMENT)
|
||||
from .permissions import (PERMISSION_FOLDER_ADD_DOCUMENT,
|
||||
PERMISSION_FOLDER_CREATE, PERMISSION_FOLDER_DELETE,
|
||||
PERMISSION_FOLDER_EDIT, PERMISSION_FOLDER_VIEW,
|
||||
PERMISSION_FOLDER_REMOVE_DOCUMENT)
|
||||
|
||||
folder_list = {'text': _(u'Folder list'), 'view': 'folders:folder_list', 'famfam': 'folder_user'}
|
||||
folder_create = {'text': _('Create folder'), 'view': 'folders:folder_create', 'famfam': 'folder_add', 'permissions': [PERMISSION_FOLDER_CREATE]}
|
||||
|
||||
@@ -6,14 +6,13 @@ from django.contrib import messages
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.shortcuts import render_to_response, get_object_or_404
|
||||
from django.shortcuts import get_object_or_404, render_to_response
|
||||
from django.template import RequestContext
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from acls.models import AccessEntry
|
||||
from acls.utils import apply_default_acls
|
||||
from acls.views import acl_list_for
|
||||
from common.utils import encapsulate
|
||||
from common.views import SingleObjectListView
|
||||
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
||||
from documents.models import Document
|
||||
@@ -22,16 +21,16 @@ from permissions.models import Permission
|
||||
|
||||
from .forms import FolderForm, FolderListForm
|
||||
from .models import Folder
|
||||
from .permissions import (PERMISSION_FOLDER_CREATE,
|
||||
PERMISSION_FOLDER_EDIT, PERMISSION_FOLDER_DELETE,
|
||||
PERMISSION_FOLDER_REMOVE_DOCUMENT, PERMISSION_FOLDER_VIEW,
|
||||
PERMISSION_FOLDER_ADD_DOCUMENT)
|
||||
from .permissions import (PERMISSION_FOLDER_ADD_DOCUMENT,
|
||||
PERMISSION_FOLDER_CREATE, PERMISSION_FOLDER_DELETE,
|
||||
PERMISSION_FOLDER_EDIT, PERMISSION_FOLDER_VIEW,
|
||||
PERMISSION_FOLDER_REMOVE_DOCUMENT)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class FolderListView(SingleObjectListView):
|
||||
model = Folder
|
||||
model = Folder
|
||||
object_permission = PERMISSION_FOLDER_VIEW
|
||||
|
||||
def get_extra_context(self):
|
||||
@@ -61,8 +60,7 @@ def folder_create(request):
|
||||
return render_to_response('main/generic_form.html', {
|
||||
'title': _(u'Create folder'),
|
||||
'form': form,
|
||||
},
|
||||
context_instance=RequestContext(request))
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def folder_edit(request, folder_id):
|
||||
@@ -91,8 +89,7 @@ def folder_edit(request, folder_id):
|
||||
'form': form,
|
||||
'object': folder,
|
||||
'object_name': _(u'Folder'),
|
||||
},
|
||||
context_instance=RequestContext(request))
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def folder_delete(request, folder_id):
|
||||
@@ -129,7 +126,7 @@ def folder_delete(request, folder_id):
|
||||
}
|
||||
|
||||
return render_to_response('main/generic_confirm.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
class FolderDetailView(DocumentListView):
|
||||
@@ -205,7 +202,7 @@ def folder_add_document(request, document_id=None, document_id_list=None):
|
||||
context['title'] = _(u'Add documents: %s to folder.') % ', '.join([unicode(d) for d in documents])
|
||||
|
||||
return render_to_response('main/generic_form.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_folder_list(request, document_id):
|
||||
@@ -233,7 +230,7 @@ def document_folder_list(request, document_id):
|
||||
context['object_list'] = queryset
|
||||
|
||||
return render_to_response('main/generic_list.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def folder_document_remove(request, folder_id, document_id=None, document_id_list=None):
|
||||
@@ -287,7 +284,7 @@ def folder_document_remove(request, folder_id, document_id=None, document_id_lis
|
||||
'documents': ', '.join([unicode(d) for d in folder_documents]), 'folder': folder}
|
||||
|
||||
return render_to_response('main/generic_confirm.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def folder_document_multiple_remove(request, folder_id):
|
||||
|
||||
@@ -2,7 +2,6 @@ from __future__ import absolute_import
|
||||
|
||||
from collections import namedtuple
|
||||
from json import dumps
|
||||
import os
|
||||
|
||||
import sh
|
||||
|
||||
@@ -12,8 +11,6 @@ try:
|
||||
except sh.CommandNotFound:
|
||||
PIP = False
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
|
||||
class PIPNotFound(Exception):
|
||||
pass
|
||||
|
||||
@@ -29,11 +29,11 @@ from solo.models import SingletonModel
|
||||
from common.utils import pretty_size
|
||||
from mayan import __version__ as mayan_version
|
||||
from lock_manager import Lock, LockError
|
||||
from ocr.settings import TESSERACT_PATH, UNPAPER_PATH, PDFTOTEXT_PATH
|
||||
from ocr.settings import PDFTOTEXT_PATH, TESSERACT_PATH, UNPAPER_PATH
|
||||
|
||||
from .classes import Property, PropertyNamespace, VirtualEnv, PIPNotFound
|
||||
from .literals import (FORM_SUBMIT_URL, FORM_KEY, FORM_RECEIVER_FIELD,
|
||||
TIMEOUT, FABFILE_MARKER)
|
||||
from .classes import PIPNotFound, Property, PropertyNamespace, VirtualEnv
|
||||
from .literals import (FABFILE_MARKER, FORM_KEY, FORM_RECEIVER_FIELD,
|
||||
FORM_SUBMIT_URL, TIMEOUT)
|
||||
|
||||
|
||||
class Installation(SingletonModel):
|
||||
|
||||
@@ -3,7 +3,6 @@ from __future__ import absolute_import
|
||||
from django.contrib import messages
|
||||
from django.contrib.sites.models import Site
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.core.mail import EmailMultiAlternatives
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.shortcuts import get_object_or_404, render_to_response
|
||||
@@ -88,4 +87,4 @@ def send_document_link(request, document_id=None, document_id_list=None, as_atta
|
||||
context['title'] = _('Email links for documents: %s') % ', '.join([unicode(d) for d in documents])
|
||||
|
||||
return render_to_response('main/generic_form.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
@@ -1,16 +1,10 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.conf import settings as django_settings
|
||||
|
||||
from navigation.api import register_top_menu
|
||||
from project_setup.api import register_setup
|
||||
from project_tools.api import register_tool
|
||||
|
||||
from .links import admin_site, diagnostics, maintenance_menu
|
||||
|
||||
if 'django.contrib.admin' in django_settings.INSTALLED_APPS:
|
||||
register_setup(admin_site)
|
||||
|
||||
register_setup(admin_site)
|
||||
register_tool(diagnostics)
|
||||
register_tool(maintenance_menu)
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
import re
|
||||
|
||||
from django.conf import settings
|
||||
from django.template import Library, Node, TemplateSyntaxError
|
||||
from django.template import Library, Node
|
||||
from django.utils.safestring import mark_safe
|
||||
|
||||
register = Library()
|
||||
|
||||
@@ -2,8 +2,12 @@ from __future__ import absolute_import
|
||||
|
||||
from django.contrib import admin
|
||||
|
||||
from .models import (MetadataType, MetadataSet, MetadataSetItem,
|
||||
DocumentMetadata, DocumentTypeDefaults)
|
||||
from .models import (DocumentMetadata, DocumentTypeDefaults, MetadataSet,
|
||||
MetadataSetItem, MetadataType)
|
||||
|
||||
|
||||
class DocumentTypeDefaultsAdmin(admin.ModelAdmin):
|
||||
filter_horizontal = ('default_metadata_sets', 'default_metadata')
|
||||
|
||||
|
||||
class MetadataTypeAdmin(admin.ModelAdmin):
|
||||
@@ -28,10 +32,6 @@ class MetadataSetAdmin(admin.ModelAdmin):
|
||||
inlines = [MetadataSetItemInline]
|
||||
|
||||
|
||||
class DocumentTypeDefaultsAdmin(admin.ModelAdmin):
|
||||
filter_horizontal = ('default_metadata_sets', 'default_metadata')
|
||||
|
||||
|
||||
admin.site.register(MetadataType, MetadataTypeAdmin)
|
||||
admin.site.register(MetadataSet, MetadataSetAdmin)
|
||||
admin.site.register(DocumentTypeDefaults, DocumentTypeDefaultsAdmin)
|
||||
admin.site.register(MetadataSet, MetadataSetAdmin)
|
||||
admin.site.register(MetadataType, MetadataTypeAdmin)
|
||||
|
||||
@@ -16,12 +16,11 @@ class MetadataForm(forms.Form):
|
||||
value = self.cleaned_data['value']
|
||||
metadata_id = self.cleaned_data['id']
|
||||
metadata_type = MetadataType.objects.get(pk=metadata_id)
|
||||
if ( metadata_type.lookup
|
||||
and AVAILABLE_VALIDATORS.has_key(metadata_type.lookup) ):
|
||||
val_func=AVAILABLE_VALIDATORS[metadata_type.lookup]
|
||||
new_value = val_func(value)
|
||||
if new_value:
|
||||
value = new_value
|
||||
if metadata_type.lookup and metadata_type.lookup in AVAILABLE_VALIDATORS:
|
||||
val_func = AVAILABLE_VALIDATORS[metadata_type.lookup]
|
||||
new_value = val_func(value)
|
||||
if new_value:
|
||||
value = new_value
|
||||
return value
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
@@ -45,9 +44,7 @@ class MetadataForm(forms.Form):
|
||||
self.fields['name'].initial = '%s%s' % ((self.metadata_type.title if self.metadata_type.title else self.metadata_type.name), required_string)
|
||||
self.fields['id'].initial = self.metadata_type.pk
|
||||
|
||||
|
||||
if ( self.metadata_type.lookup
|
||||
and not AVAILABLE_VALIDATORS.has_key(self.metadata_type.lookup)):
|
||||
if self.metadata_type.lookup and self.metadata_type.lookup not in AVAILABLE_VALIDATORS:
|
||||
try:
|
||||
choices = eval(self.metadata_type.lookup, AVAILABLE_MODELS)
|
||||
self.fields['value'] = forms.ChoiceField(label=self.fields['value'].label)
|
||||
@@ -66,16 +63,12 @@ class MetadataForm(forms.Form):
|
||||
except Exception as exception:
|
||||
self.fields['value'].initial = exception
|
||||
|
||||
|
||||
id = forms.CharField(label=_(u'id'), widget=forms.HiddenInput)
|
||||
|
||||
name = forms.CharField(label=_(u'Name'),
|
||||
required=False, widget=forms.TextInput(attrs={'readonly': 'readonly'}))
|
||||
name = forms.CharField(label=_(u'Name'), required=False, widget=forms.TextInput(attrs={'readonly': 'readonly'}))
|
||||
value = forms.CharField(label=_(u'Value'), required=False)
|
||||
update = forms.BooleanField(initial=True, label=_(u'Update'), required=False)
|
||||
|
||||
|
||||
|
||||
MetadataFormSet = formset_factory(MetadataForm, extra=0)
|
||||
|
||||
|
||||
|
||||
@@ -4,13 +4,19 @@ from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from documents.permissions import PERMISSION_DOCUMENT_TYPE_EDIT
|
||||
|
||||
from .permissions import (PERMISSION_METADATA_DOCUMENT_EDIT,
|
||||
PERMISSION_METADATA_DOCUMENT_ADD, PERMISSION_METADATA_DOCUMENT_REMOVE,
|
||||
PERMISSION_METADATA_DOCUMENT_VIEW, PERMISSION_METADATA_TYPE_EDIT,
|
||||
PERMISSION_METADATA_TYPE_CREATE, PERMISSION_METADATA_TYPE_DELETE,
|
||||
PERMISSION_METADATA_TYPE_VIEW, PERMISSION_METADATA_SET_EDIT,
|
||||
PERMISSION_METADATA_SET_CREATE, PERMISSION_METADATA_SET_DELETE,
|
||||
PERMISSION_METADATA_SET_VIEW)
|
||||
from .permissions import (PERMISSION_METADATA_DOCUMENT_ADD,
|
||||
PERMISSION_METADATA_DOCUMENT_EDIT,
|
||||
PERMISSION_METADATA_DOCUMENT_REMOVE,
|
||||
PERMISSION_METADATA_DOCUMENT_VIEW,
|
||||
PERMISSION_METADATA_SET_CREATE,
|
||||
PERMISSION_METADATA_SET_DELETE,
|
||||
PERMISSION_METADATA_SET_EDIT,
|
||||
PERMISSION_METADATA_SET_VIEW,
|
||||
PERMISSION_METADATA_TYPE_CREATE,
|
||||
PERMISSION_METADATA_TYPE_DELETE,
|
||||
PERMISSION_METADATA_TYPE_EDIT,
|
||||
PERMISSION_METADATA_TYPE_VIEW)
|
||||
|
||||
|
||||
metadata_edit = {'text': _(u'Edit metadata'), 'view': 'metadata:metadata_edit', 'args': 'object.pk', 'famfam': 'xhtml_go', 'permissions': [PERMISSION_METADATA_DOCUMENT_EDIT]}
|
||||
metadata_view = {'text': _(u'Metadata'), 'view': 'metadata:metadata_view', 'args': 'object.pk', 'famfam': 'xhtml_go', 'permissions': [PERMISSION_METADATA_DOCUMENT_VIEW], 'children_view_regex': ['metadata']}
|
||||
@@ -20,10 +26,7 @@ metadata_multiple_add = {'text': _(u'Add metadata'), 'view': 'metadata:metadata_
|
||||
metadata_remove = {'text': _(u'Remove metadata'), 'view': 'metadata:metadata_remove', 'args': 'object.pk', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_DOCUMENT_REMOVE]}
|
||||
metadata_multiple_remove = {'text': _(u'Remove metadata'), 'view': 'metadata:metadata_multiple_remove', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_DOCUMENT_REMOVE]}
|
||||
|
||||
setup_metadata_type_list = {'text': _(u'Metadata types'), 'view': 'metadata:setup_metadata_type_list', 'famfam': 'xhtml_go', 'icon': 'xhtml.png', 'permissions': [PERMISSION_METADATA_TYPE_VIEW]}
|
||||
setup_metadata_type_edit = {'text': _(u'Edit'), 'view': 'metadata:setup_metadata_type_edit', 'args': 'object.pk', 'famfam': 'xhtml', 'permissions': [PERMISSION_METADATA_TYPE_EDIT]}
|
||||
setup_metadata_type_delete = {'text': _(u'Delete'), 'view': 'metadata:setup_metadata_type_delete', 'args': 'object.pk', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_TYPE_DELETE]}
|
||||
setup_metadata_type_create = {'text': _(u'Create new'), 'view': 'metadata:setup_metadata_type_create', 'famfam': 'xhtml_add', 'permissions': [PERMISSION_METADATA_TYPE_CREATE]}
|
||||
setup_document_type_metadata = {'text': _(u'Default metadata'), 'view': 'metadata:setup_document_type_metadata', 'args': 'document_type.pk', 'famfam': 'xhtml', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]}
|
||||
|
||||
setup_metadata_set_list = {'text': _(u'Metadata sets'), 'view': 'metadata:setup_metadata_set_list', 'famfam': 'table', 'icon': 'table.png', 'permissions': [PERMISSION_METADATA_SET_VIEW]}
|
||||
setup_metadata_set_edit = {'text': _(u'Edit'), 'view': 'metadata:setup_metadata_set_edit', 'args': 'object.pk', 'famfam': 'table_edit', 'permissions': [PERMISSION_METADATA_SET_EDIT]}
|
||||
@@ -31,4 +34,7 @@ setup_metadata_set_members = {'text': _(u'Members'), 'view': 'metadata:setup_met
|
||||
setup_metadata_set_delete = {'text': _(u'Delete'), 'view': 'metadata:setup_metadata_set_delete', 'args': 'object.pk', 'famfam': 'table_delete', 'permissions': [PERMISSION_METADATA_SET_DELETE]}
|
||||
setup_metadata_set_create = {'text': _(u'Create new'), 'view': 'metadata:setup_metadata_set_create', 'famfam': 'table_add', 'permissions': [PERMISSION_METADATA_SET_CREATE]}
|
||||
|
||||
setup_document_type_metadata = {'text': _(u'Default metadata'), 'view': 'metadata:setup_document_type_metadata', 'args': 'document_type.pk', 'famfam': 'xhtml', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]}
|
||||
setup_metadata_type_list = {'text': _(u'Metadata types'), 'view': 'metadata:setup_metadata_type_list', 'famfam': 'xhtml_go', 'icon': 'xhtml.png', 'permissions': [PERMISSION_METADATA_TYPE_VIEW]}
|
||||
setup_metadata_type_edit = {'text': _(u'Edit'), 'view': 'metadata:setup_metadata_type_edit', 'args': 'object.pk', 'famfam': 'xhtml', 'permissions': [PERMISSION_METADATA_TYPE_EDIT]}
|
||||
setup_metadata_type_delete = {'text': _(u'Delete'), 'view': 'metadata:setup_metadata_type_delete', 'args': 'object.pk', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_TYPE_DELETE]}
|
||||
setup_metadata_type_create = {'text': _(u'Create new'), 'view': 'metadata:setup_metadata_type_create', 'famfam': 'xhtml_add', 'permissions': [PERMISSION_METADATA_TYPE_CREATE]}
|
||||
|
||||
@@ -15,13 +15,13 @@ class MetadataType(models.Model):
|
||||
name = models.CharField(unique=True, max_length=48, verbose_name=_(u'Name'), help_text=_(u'Do not use python reserved words, or spaces.'))
|
||||
title = models.CharField(max_length=48, verbose_name=_(u'Title'), blank=True, null=True)
|
||||
default = models.CharField(max_length=128, blank=True, null=True,
|
||||
verbose_name=_(u'Default'),
|
||||
help_text=_(u'Enter a string to be evaluated.'))
|
||||
verbose_name=_(u'Default'),
|
||||
help_text=_(u'Enter a string to be evaluated.'))
|
||||
# TODO: Add enable_lookup boolean to allow users to switch the lookup on and
|
||||
# off without losing the lookup expression
|
||||
lookup = models.TextField(blank=True, null=True,
|
||||
verbose_name=_(u'Lookup'),
|
||||
help_text=_(u'Enter a string to be evaluated that returns an iterable.'))
|
||||
verbose_name=_(u'Lookup'),
|
||||
help_text=_(u'Enter a string to be evaluated that returns an iterable.'))
|
||||
# TODO: Add datatype choice: Date, Time, String, Number
|
||||
# TODO: Find a different way to let users know what models and functions are
|
||||
# available now that we removed these from the help_text
|
||||
|
||||
@@ -113,7 +113,7 @@ def metadata_edit(request, document_id=None, document_id_list=None):
|
||||
context['title'] = _(u'Edit metadata for documents: %s') % ', '.join([unicode(d) for d in documents])
|
||||
|
||||
return render_to_response('main/generic_form.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def metadata_multiple_edit(request):
|
||||
@@ -180,7 +180,7 @@ def metadata_add(request, document_id=None, document_id_list=None):
|
||||
context['title'] = _(u'Add metadata type to documents: %s') % ', '.join([unicode(d) for d in documents])
|
||||
|
||||
return render_to_response('main/generic_form.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def metadata_multiple_add(request):
|
||||
@@ -261,7 +261,7 @@ def metadata_remove(request, document_id=None, document_id_list=None):
|
||||
context['title'] = _(u'Remove metadata types from documents: %s') % ', '.join([unicode(d) for d in documents])
|
||||
|
||||
return render_to_response('main/generic_form.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def metadata_multiple_remove(request):
|
||||
@@ -302,7 +302,7 @@ def setup_metadata_type_list(request):
|
||||
}
|
||||
|
||||
return render_to_response('main/generic_list.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def setup_metadata_type_edit(request, metadatatype_id):
|
||||
@@ -380,7 +380,7 @@ def setup_metadata_type_delete(request, metadatatype_id):
|
||||
}
|
||||
|
||||
return render_to_response('main/generic_confirm.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def setup_metadata_set_list(request):
|
||||
@@ -399,7 +399,7 @@ def setup_metadata_set_list(request):
|
||||
}
|
||||
|
||||
return render_to_response('main/generic_list.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def setup_metadata_set_edit(request, metadata_set_id):
|
||||
@@ -520,7 +520,7 @@ def setup_metadata_set_delete(request, metadata_set_id):
|
||||
}
|
||||
|
||||
return render_to_response('main/generic_confirm.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def _as_choice_list(items):
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
import inspect
|
||||
import logging
|
||||
import re
|
||||
import urllib
|
||||
import urlparse
|
||||
import inspect
|
||||
|
||||
from django.core.urlresolvers import NoReverseMatch, resolve, reverse
|
||||
from django.template import VariableDoesNotExist, Variable
|
||||
from django.template import (VariableDoesNotExist, Variable)
|
||||
from django.utils.encoding import smart_str, smart_unicode
|
||||
from django.utils.http import urlquote, urlencode
|
||||
from django.utils.http import urlencode, urlquote
|
||||
from django.utils.text import unescape_string_literal
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
@@ -44,10 +43,10 @@ class Link(object):
|
||||
raise Exception('The bind_links source argument must be a list, even for single element sources.')
|
||||
|
||||
def __init__(self, text, view, klass=None, args=None, icon=None,
|
||||
permissions=None, condition=None, conditional_disable=None,
|
||||
description=None, dont_mark_active=False, children_view_regex=None,
|
||||
keep_query=False, children_classes=None, children_views=None,
|
||||
conditional_highlight=None):
|
||||
permissions=None, condition=None, conditional_disable=None,
|
||||
description=None, dont_mark_active=False, children_view_regex=None,
|
||||
keep_query=False, children_classes=None, children_views=None,
|
||||
conditional_highlight=None):
|
||||
|
||||
self.text = text
|
||||
self.view = view
|
||||
|
||||
@@ -2,7 +2,6 @@ from __future__ import absolute_import
|
||||
|
||||
import logging
|
||||
|
||||
from django.db import DatabaseError
|
||||
from django.db.models.signals import post_save
|
||||
from django.dispatch import receiver
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
@@ -15,26 +15,26 @@ class LanguageBackend(BackendBase):
|
||||
TOO_MANY_CONSONANTS = re.compile('[bcdfghjklmnpqrstvwxyz]{4}', re.I)
|
||||
# SINGLE_LETTER_WORDS = re.compile('^$', re.I)
|
||||
|
||||
#(L) If a string is longer than 40 characters, it is considered as garbage
|
||||
# (L) If a string is longer than 40 characters, it is considered as garbage
|
||||
# http://www.duden.de/sprachwissen/sprachratgeber/die-laengsten-woerter-im-dudenkorpus
|
||||
# http://www.duden.de/sprachwissen/sprachratgeber/durchschnittliche-laenge-eines-deutschen-wortes
|
||||
if len(word) > 40:
|
||||
return None
|
||||
|
||||
#(A) If a string's ratio of alphanumeric characters to total
|
||||
#characters is less than 50%, the string is garbage
|
||||
# (A) If a string's ratio of alphanumeric characters to total
|
||||
# characters is less than 50%, the string is garbage
|
||||
if len(ALL_ALPHANUM.findall(word)) < len(word) / 2:
|
||||
return None
|
||||
|
||||
#Remove word if all the letters in the word are non alphanumeric
|
||||
# Remove word if all the letters in the word are non alphanumeric
|
||||
if len(NON_ALPHANUM.findall(word)) == len(word):
|
||||
return None
|
||||
|
||||
#Removed words with too many consecutie vowels
|
||||
# Removed words with too many consecutie vowels
|
||||
if TOO_MANY_VOWELS.findall(word):
|
||||
return None
|
||||
|
||||
#Removed words with too many consecutie consonants
|
||||
# Removed words with too many consecutie consonants
|
||||
if TOO_MANY_CONSONANTS.findall(word):
|
||||
return None
|
||||
|
||||
|
||||
@@ -15,28 +15,28 @@ class LanguageBackend(BackendBase):
|
||||
TOO_MANY_CONSONANTS = re.compile('[bcdfghjklmnñpqrstvwxyz]{5}', re.I)
|
||||
SINGLE_LETTER_WORDS = re.compile('^[aeoóuy]$', re.I)
|
||||
|
||||
#(L) If a string is longer than 20 characters, it is garbage
|
||||
# (L) If a string is longer than 20 characters, it is garbage
|
||||
if len(word) > 20:
|
||||
return None
|
||||
|
||||
#(A) If a string’s ratio of alphanumeric characters to total
|
||||
#characters is less than 50%, the string is garbage
|
||||
# (A) If a string’s ratio of alphanumeric characters to total
|
||||
# characters is less than 50%, the string is garbage
|
||||
if len(ALL_ALPHANUM.findall(word)) < len(word) / 2:
|
||||
return None
|
||||
|
||||
#Remove word if all the letters in the word are non alphanumeric
|
||||
# Remove word if all the letters in the word are non alphanumeric
|
||||
if len(NON_ALPHANUM.findall(word)) == len(word):
|
||||
return None
|
||||
|
||||
#Removed words with too many consecutie vowels
|
||||
# Removed words with too many consecutie vowels
|
||||
if TOO_MANY_VOWELS.findall(word):
|
||||
return None
|
||||
|
||||
#Removed words with too many consecutie consonants
|
||||
# Removed words with too many consecutie consonants
|
||||
if TOO_MANY_CONSONANTS.findall(word):
|
||||
return None
|
||||
|
||||
#Only allow specific single letter words
|
||||
# Only allow specific single letter words
|
||||
if len(word) == 1 and not SINGLE_LETTER_WORDS.findall(word):
|
||||
return None
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
DEFAULT_OCR_FILE_FORMAT = u'tiff'
|
||||
DEFAULT_OCR_FILE_EXTENSION = u'tif'
|
||||
UNPAPER_FILE_FORMAT = u'ppm'
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from south.utils import datetime_utils as datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
@@ -30,7 +29,6 @@ class Migration(SchemaMigration):
|
||||
))
|
||||
db.send_create_signal(u'ocr', ['QueueDocument'])
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting model 'DocumentQueue'
|
||||
db.delete_table(u'ocr_documentqueue')
|
||||
@@ -38,7 +36,6 @@ class Migration(SchemaMigration):
|
||||
# Deleting model 'QueueDocument'
|
||||
db.delete_table(u'ocr_queuedocument')
|
||||
|
||||
|
||||
models = {
|
||||
u'documents.document': {
|
||||
'Meta': {'ordering': "['-date_added']", 'object_name': 'Document'},
|
||||
@@ -73,4 +70,4 @@ class Migration(SchemaMigration):
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['ocr']
|
||||
complete_apps = ['ocr']
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from south.utils import datetime_utils as datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
@@ -17,7 +16,6 @@ class Migration(SchemaMigration):
|
||||
# Deleting field 'QueueDocument.state'
|
||||
db.delete_column(u'ocr_queuedocument', 'state')
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Adding field 'DocumentQueue.state'
|
||||
db.add_column(u'ocr_documentqueue', 'state',
|
||||
@@ -34,7 +32,6 @@ class Migration(SchemaMigration):
|
||||
self.gf('django.db.models.fields.CharField')(default='p', max_length=4),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
models = {
|
||||
u'documents.document': {
|
||||
'Meta': {'ordering': "['-date_added']", 'object_name': 'Document'},
|
||||
@@ -66,4 +63,4 @@ class Migration(SchemaMigration):
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['ocr']
|
||||
complete_apps = ['ocr']
|
||||
|
||||
@@ -36,6 +36,7 @@ class QueueDocument(models.Model):
|
||||
verbose_name_plural = _(u'Queue documents')
|
||||
|
||||
def requeue(self):
|
||||
# TODO: Fix properly using Celery tasks
|
||||
if self.state == QUEUEDOCUMENT_STATE_PROCESSING:
|
||||
raise ReQueueError
|
||||
else:
|
||||
|
||||
@@ -7,8 +7,6 @@ import sys
|
||||
import traceback
|
||||
|
||||
from django.conf import settings
|
||||
from django.db.models import Q
|
||||
from django.utils.timezone import now
|
||||
|
||||
from documents.models import Document
|
||||
from lock_manager import Lock, LockError
|
||||
|
||||
@@ -46,7 +46,7 @@ def queue_document_list(request, queue_name='default'):
|
||||
}
|
||||
|
||||
return render_to_response('main/generic_list.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def queue_document_delete(request, queue_document_id=None, queue_document_id_list=None):
|
||||
@@ -89,7 +89,7 @@ def queue_document_delete(request, queue_document_id=None, queue_document_id_lis
|
||||
context['title'] = _(u'Are you sure you wish to delete queue documents: %s?') % ', '.join([unicode(d) for d in queue_documents])
|
||||
|
||||
return render_to_response('main/generic_confirm.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def queue_document_multiple_delete(request):
|
||||
@@ -112,7 +112,7 @@ def submit_document(request, document_id):
|
||||
AccessEntry.objects.check_access(PERMISSION_OCR_DOCUMENT, request.user, document)
|
||||
|
||||
return submit_document_to_queue(request, document=document,
|
||||
post_submit_redirect=request.META.get('HTTP_REFERER', '/'))
|
||||
post_submit_redirect=request.META.get('HTTP_REFERER', '/'))
|
||||
|
||||
|
||||
def submit_document_to_queue(request, document, post_submit_redirect=None):
|
||||
@@ -176,7 +176,7 @@ def re_queue_document(request, queue_document_id=None, queue_document_id_list=No
|
||||
context['title'] = _(u'Are you sure you wish to re-queue documents: %s?') % ', '.join([unicode(d) for d in queue_documents])
|
||||
|
||||
return render_to_response('main/generic_confirm.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def re_queue_multiple_document(request):
|
||||
|
||||
@@ -7,6 +7,7 @@ import operator
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.models import Group, User
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.core.urlresolvers import reverse_lazy
|
||||
from django.conf import settings
|
||||
from django.http import Http404, HttpResponseRedirect
|
||||
|
||||
Reference in New Issue
Block a user