Clean up (unused imports, PEP8, etc)

This commit is contained in:
Roberto Rosario
2012-06-08 16:43:54 -04:00
parent c24a3f935e
commit 58f027db60
34 changed files with 121 additions and 161 deletions

View File

@@ -31,8 +31,8 @@ bind_links(['current_user_details', 'current_user_edit', 'password_change_view']
register_top_menu('about', link=Link(text=_(u'about'), view='about_view', sprite='information'), position=-1)
@receiver(post_syncdb, dispatch_uid='create_superuser', sender=auth_models)
def create_superuser(sender, **kwargs):
@receiver(post_syncdb, dispatch_uid='create_superuser_processor', sender=auth_models)
def create_superuser_processor(sender, **kwargs):
"""
From https://github.com/lambdalisue/django-qwert/blob/master/qwert/autoscript/__init__.py
From http://stackoverflow.com/questions/1466827/ --

View File

@@ -1,8 +1,6 @@
from __future__ import absolute_import
import logging
import sys
import types
from django.contrib.contenttypes.models import ContentType
from django.db.models.base import ModelBase

View File

@@ -67,4 +67,3 @@ Setting(
default=False,
description=_(u'Allow non authenticated users, access to all views'),
)

View File

@@ -236,8 +236,8 @@ def password_change_view(request):
"""
Password change wrapper for better control
"""
context={'title': _(u'Current user password change')}
context = {'title': _(u'Current user password change')}
return password_change(
request,
extra_context=context,

View File

@@ -1,5 +1,4 @@
from django.shortcuts import get_object_or_404
from django.utils.translation import ugettext_lazy as _
from documents.models import Document
from acls.views import acl_list_for

View File

@@ -97,7 +97,7 @@ def comment_add(request, document_id):
comment.site = Site.objects.get_current()
comment.save()
document.mark_indexable()
messages.success(request, _(u'Comment added successfully.'))
return HttpResponseRedirect(next)
else:

View File

@@ -25,6 +25,7 @@ from .permissions import (PERMISSION_DOCUMENT_INDEXING_VIEW,
)
from .api import update_indexes, delete_indexes
def is_root_node(context):
return context['node'].parent is None
@@ -34,7 +35,7 @@ def is_not_instance_root_node(context):
logger = logging.getLogger(__name__)
index_setup = Link(text=_(u'indexes'), view='index_setup_list', icon='tab.png', permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP])#, children_view_regex=[r'^index_setup', r'^template_node'])
index_setup = Link(text=_(u'indexes'), view='index_setup_list', icon='tab.png', permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP]) # children_view_regex=[r'^index_setup', r'^template_node'])
index_setup_list = Link(text=_(u'index list'), view='index_setup_list', sprite='tab', permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP])
index_setup_create = Link(text=_(u'create index'), view='index_setup_create', sprite='tab_add', permissions=[PERMISSION_DOCUMENT_INDEXING_CREATE])
index_setup_edit = Link(text=_(u'edit'), view='index_setup_edit', args='index.pk', sprite='tab_edit', permissions=[PERMISSION_DOCUMENT_INDEXING_EDIT])
@@ -48,7 +49,7 @@ template_node_delete = Link(text=_(u'delete'), view='template_node_delete', args
index_list = Link(text=_(u'index list'), view='index_list', sprite='tab', permissions=[PERMISSION_DOCUMENT_INDEXING_VIEW])
index_parent = Link(text=_(u'go up one level'), view='index_instance_node_view', args='object.parent.pk', sprite='arrow_up', permissions=[PERMISSION_DOCUMENT_INDEXING_VIEW], dont_mark_active=True, condition=is_not_instance_root_node)
document_index_list = Link(text= _(u'indexes'), view='document_index_list', args='object.pk', sprite='folder_page', permissions=[PERMISSION_DOCUMENT_INDEXING_VIEW, PERMISSION_DOCUMENT_VIEW])
document_index_list = Link(text=_(u'indexes'), view='document_index_list', args='object.pk', sprite='folder_page', permissions=[PERMISSION_DOCUMENT_INDEXING_VIEW, PERMISSION_DOCUMENT_VIEW])
rebuild_index_instances = Link(text=_('rebuild indexes'), view='rebuild_index_instances', sprite='folder_page', permissions=[PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES], description=_(u'Deletes and creates from scratch all the document indexes.'))
@@ -86,6 +87,6 @@ def update_indexes_handler(sender, instance, **kwargs):
logger.debug('received post save signal - document metadata')
logger.debug('instance: %s' % instance)
update_indexes(instance.document)
pre_save.connect(delete_indexes_handler, dispatch_uid='delete_indexes_handler_on_update')
pre_delete.connect(delete_indexes_handler, dispatch_uid='delete_indexes_handler_on_delete')

View File

@@ -1,7 +1,6 @@
from __future__ import absolute_import
from django import forms
from django.utils.translation import ugettext_lazy as _
from .models import Index, IndexTemplateNode

View File

@@ -1,13 +1,12 @@
# encoding: utf-8
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding model 'Index'
db.create_table('document_indexing_index', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
@@ -52,7 +51,6 @@ class Migration(SchemaMigration):
))
db.send_create_signal('document_indexing', ['DocumentRenameCount'])
def backwards(self, orm):
# Deleting model 'Index'
@@ -67,7 +65,6 @@ class Migration(SchemaMigration):
# Deleting model 'DocumentRenameCount'
db.delete_table('document_indexing_documentrenamecount')
models = {
'auth.group': {
'Meta': {'object_name': 'Group'},

View File

@@ -56,7 +56,7 @@ class IndexTemplateNode(MPTTModel):
class Meta:
verbose_name = _(u'index template node')
verbose_name_plural = _(u'indexes template nodes')
class IndexInstanceNode(MPTTModel):
parent = TreeForeignKey('self', null=True, blank=True, related_name='index_instance_node')

View File

@@ -6,7 +6,7 @@ from django.utils.translation import ugettext_lazy as _
from common.utils import validate_path, encapsulate
from navigation.api import (bind_links, register_top_menu,
register_model_list_columns, register_multi_item_links,
register_model_list_columns,
register_sidebar_template, Link)
from main.api import register_diagnostic, register_maintenance_links
from history.api import register_history_type
@@ -17,32 +17,26 @@ from acls.api import class_permissions
from .models import (Document, DocumentPage,
DocumentPageTransformation, DocumentType, DocumentTypeFilename,
DocumentVersion)
from .permissions import (PERMISSION_DOCUMENT_CREATE,
PERMISSION_DOCUMENT_PROPERTIES_EDIT, PERMISSION_DOCUMENT_VIEW,
PERMISSION_DOCUMENT_DELETE, PERMISSION_DOCUMENT_DOWNLOAD,
PERMISSION_DOCUMENT_TRANSFORM, PERMISSION_DOCUMENT_TOOLS,
from .permissions import (PERMISSION_DOCUMENT_PROPERTIES_EDIT,
PERMISSION_DOCUMENT_VIEW, PERMISSION_DOCUMENT_DELETE,
PERMISSION_DOCUMENT_DOWNLOAD, PERMISSION_DOCUMENT_TRANSFORM,
PERMISSION_DOCUMENT_EDIT, PERMISSION_DOCUMENT_VERSION_REVERT,
PERMISSION_DOCUMENT_TYPE_EDIT, PERMISSION_DOCUMENT_TYPE_DELETE,
PERMISSION_DOCUMENT_TYPE_CREATE, PERMISSION_DOCUMENT_TYPE_VIEW,
PERMISSION_DOCUMENT_NEW_VERSION)
from .literals import (HISTORY_DOCUMENT_CREATED,
HISTORY_DOCUMENT_EDITED, HISTORY_DOCUMENT_DELETED)
from .conf.settings import ZOOM_MAX_LEVEL
from .conf.settings import ZOOM_MIN_LEVEL
from .conf import settings as document_settings
from .widgets import document_thumbnail
from .links import (document_list, document_list_recent, document_create_multiple,
document_create_siblings, document_view_simple, document_view_advanced,
document_delete, document_multiple_delete, document_edit, document_preview,
document_download, document_multiple_download, document_version_download,
document_delete, document_edit, document_download, document_version_download,
document_find_duplicates, document_find_all_duplicates,
document_update_page_count, document_clear_transformations,
document_multiple_clear_transformations, document_print, document_history_view,
document_print, document_history_view,
document_missing_list)
from .links import (document_type_list, document_type_setup, document_type_document_list,
document_type_edit, document_type_delete, document_type_create, document_type_filename_list,
document_type_filename_create, document_type_filename_edit, document_type_filename_delete)
from .links import document_version_list, document_version_revert
from .links import document_version_list, document_version_revert
from .links import (document_page_transformation_list, document_page_transformation_create,
document_page_transformation_edit, document_page_transformation_delete,
document_page_view, document_page_text, document_page_edit, document_page_navigation_next,

View File

@@ -10,6 +10,7 @@ from django.conf import settings
from storage.backends.filebasedstorage import FileBasedStorage
from smart_settings.api import Setting, SettingNamespace
def default_checksum(x):
"""hashlib.sha256(x).hexdigest()"""
return hashlib.sha256(x).hexdigest()

View File

@@ -166,7 +166,7 @@ class DocumentForm(forms.ModelForm):
initial=False,
required=False,
)
# Instance's document_type overrides the passed document_type
if hasattr(instance, 'document_type'):
document_type = instance.document_type
@@ -308,15 +308,13 @@ class DocumentTypeFilenameForm_create(forms.ModelForm):
model = DocumentTypeFilename
fields = ('filename',)
class DocumentDownloadForm(forms.Form):
compressed = forms.BooleanField(label=_(u'Compress'), required=False, help_text=_(u'Download the document in the original format or in a compressed manner. This option is selectable only when downloading one document, for multiple documents, the bundle will always be downloads as a compressed file.'))
def __init__(self, *args, **kwargs):
self.document_versions = kwargs.pop('document_versions', None)
super(DocumentDownloadForm, self).__init__(*args, **kwargs)
if len(self.document_versions) > 1:
self.fields['compressed'].initial = True
self.fields['compressed'].widget.attrs.update({'disabled': True})
self.fields['compressed'].widget.attrs.update({'disabled': True})

View File

@@ -2,9 +2,7 @@ from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from navigation.api import (bind_links, register_top_menu,
register_model_list_columns, register_multi_item_links,
register_sidebar_template, Link)
from navigation.api import Link
from history.permissions import PERMISSION_HISTORY_VIEW
from .permissions import (PERMISSION_DOCUMENT_CREATE,
@@ -13,12 +11,12 @@ from .permissions import (PERMISSION_DOCUMENT_CREATE,
PERMISSION_DOCUMENT_TRANSFORM, PERMISSION_DOCUMENT_TOOLS,
PERMISSION_DOCUMENT_EDIT, PERMISSION_DOCUMENT_VERSION_REVERT,
PERMISSION_DOCUMENT_TYPE_EDIT, PERMISSION_DOCUMENT_TYPE_DELETE,
PERMISSION_DOCUMENT_TYPE_CREATE, PERMISSION_DOCUMENT_TYPE_VIEW,
PERMISSION_DOCUMENT_NEW_VERSION)
PERMISSION_DOCUMENT_TYPE_CREATE, PERMISSION_DOCUMENT_TYPE_VIEW)
from .conf.settings import ZOOM_MAX_LEVEL, ZOOM_MIN_LEVEL
# Document page links expressions
# Document page links expressions
def is_first_page(context):
return context['page'].page_number <= 1
@@ -101,4 +99,4 @@ document_type_filename_edit = Link(text=_(u'edit'), view='document_type_filename
document_type_filename_delete = Link(text=_(u'delete'), view='document_type_filename_delete', args='filename.id', sprite='database_delete', permissions=[PERMISSION_DOCUMENT_TYPE_EDIT])
# TODO: remove this
document_type_views=['setup_document_type_metadata', 'document_type_list', 'document_type_document_list', 'document_type_edit', 'document_type_delete', 'document_type_create', 'document_type_filename_list', 'document_type_filename_create', 'document_type_filename_edit', 'document_type_filename_delete']
document_type_views = ['setup_document_type_metadata', 'document_type_list', 'document_type_document_list', 'document_type_edit', 'document_type_delete', 'document_type_create', 'document_type_filename_list', 'document_type_filename_create', 'document_type_filename_edit', 'document_type_filename_delete']

View File

@@ -280,7 +280,7 @@ class Document(models.Model):
@property
def content(self):
return self.latest_version.content
def get_content(self, *args, **kwargs):
return self.latest_version.get_content(*args, **kwargs)
@@ -294,7 +294,6 @@ class Document(models.Model):
def extension_split(self):
filename, extension = os.path.splitext(self.filename)
return filename, extension[1:]
class DocumentVersion(models.Model):
@@ -537,7 +536,7 @@ class DocumentVersion(models.Model):
return self.file.storage.size(self.file.path)
else:
return None
def rename(self, new_name):
name, extension = os.path.splitext(self.filename)
self.filename = u''.join([new_name, extension])

View File

@@ -2,6 +2,7 @@ import os
from common.conf.settings import TEMPORARY_DIRECTORY
def document_save_to_temp_dir(document, filename, buffer_size=1024 * 1024):
temporary_path = os.path.join(TEMPORARY_DIRECTORY, filename)
return document.save_to_file(temporary_path, buffer_size)

View File

@@ -262,7 +262,7 @@ def document_edit(request, document_id):
document.filename = new_filename
document.description = form.cleaned_data['description']
document.save()
create_history(HISTORY_DOCUMENT_EDITED, document, {'user': request.user, 'diff': return_diff(old_document, document, ['filename', 'description'])})
RecentDocument.objects.add_document_for_user(request.user, document)
@@ -385,8 +385,8 @@ def document_download(request, document_id=None, document_id_list=None, document
raise
else:
messages.error(request, e)
return HttpResponseRedirect(request.META['HTTP_REFERER'])
return HttpResponseRedirect(request.META['HTTP_REFERER'])
else:
form = DocumentDownloadForm(document_versions=document_versions)

View File

@@ -1,16 +1,15 @@
# encoding: utf-8
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
depends_on = (
('documents', '0001_initial'),
)
def forwards(self, orm):
# Adding model 'Folder'
db.create_table('folders_folder', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
@@ -31,9 +30,7 @@ class Migration(SchemaMigration):
))
db.send_create_signal('folders', ['FolderDocument'])
def backwards(self, orm):
# Removing unique constraint on 'Folder', fields ['title', 'user']
db.delete_unique('folders_folder', ['title', 'user_id'])
@@ -43,7 +40,6 @@ class Migration(SchemaMigration):
# Deleting model 'FolderDocument'
db.delete_table('folders_folderdocument')
models = {
'auth.group': {
'Meta': {'object_name': 'Group'},

View File

@@ -5,19 +5,14 @@ from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Changing field 'Folder.title'
db.alter_column('folders_folder', 'title', self.gf('django.db.models.fields.CharField')(max_length=128))
def backwards(self, orm):
# Changing field 'Folder.title'
db.alter_column('folders_folder', 'title', self.gf('django.db.models.fields.CharField')(max_length=32))
models = {
'auth.group': {
'Meta': {'object_name': 'Group'},

View File

@@ -3,7 +3,7 @@ from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from django.conf import settings
from navigation.api import bind_links, Link, register_top_menu
from navigation.api import Link, register_top_menu
from project_setup.api import register_setup
from project_tools.api import register_tool
@@ -12,7 +12,7 @@ from .utils import register_multi_items_links
__author__ = 'Roberto Rosario'
__copyright__ = 'Copyright 2011 Roberto Rosario'
__credits__ = ['Roberto Rosario',]
__credits__ = ['Roberto Rosario', ]
__license__ = 'GPL'
__maintainer__ = 'Roberto Rosario'
__email__ = 'roberto.rosario.gonzalez@gmail.com'
@@ -65,5 +65,5 @@ register_tool(diagnostics)
if 'sentry' in settings.INSTALLED_APPS:
register_tool(sentry)
register_multi_items_links()

View File

@@ -1,23 +1,21 @@
from navigation.api import (register_top_menu, register_sidebar_template,
bind_links, Link, register_multi_item_links)
from navigation.api import register_multi_item_links
from documents.links import document_multiple_clear_transformations, document_multiple_delete, document_multiple_download
from metadata import metadata_multiple_add, metadata_multiple_edit, metadata_multiple_remove
from ocr import submit_document_multiple
def register_multi_items_links():
view = [
# folders
'folder_view',
# search
'search', 'results',
# document_indexing
'index_instance_node_view',
# documents
'document_find_duplicates', 'document_type_document_list', 'document_group_view', 'document_list', 'document_list_recent',
]

View File

@@ -40,32 +40,32 @@ mimetype_icons = {
'application/x-wav': 'file_extension_wav.png',
'application/vnd.oasis.opendocument.text': 'ODF_textdocument_32x32.png',
'image/jpeg' : 'file_extension_jpeg.png',
'image/png' : 'file_extension_png.png',
'image/x-png' : 'file_extension_png.png',
'image/tiff' : 'file_extension_tif.png',
'image/x-tiff' : 'file_extension_tif.png',
'image/bmp' : 'file_extension_bmp.png',
'image/gif' : 'file_extension_gif.png',
'image/vnd.dwg' : 'file_extension_dwg.png',
'image/x-dwg' : 'file_extension_dwg.png',
'image/jpeg': 'file_extension_jpeg.png',
'image/png': 'file_extension_png.png',
'image/x-png': 'file_extension_png.png',
'image/tiff': 'file_extension_tif.png',
'image/x-tiff': 'file_extension_tif.png',
'image/bmp': 'file_extension_bmp.png',
'image/gif': 'file_extension_gif.png',
'image/vnd.dwg': 'file_extension_dwg.png',
'image/x-dwg': 'file_extension_dwg.png',
'audio/mpeg' : 'file_extension_mp3.png',
'audio/mid' : 'file_extension_mid.png',
'audio/x-wav' : 'file_extension_wav.png',
'audio/vnd.wav' : 'file_extension_wav.png',
'audio/x-pn-realaudio' : 'file_extension_ram.png',
'audio/mp4' : 'file_extension_mp4.png',
'audio/x-ms-wma' : 'file_extension_wma.png',
'audio/mpeg': 'file_extension_mp3.png',
'audio/mid': 'file_extension_mid.png',
'audio/x-wav': 'file_extension_wav.png',
'audio/vnd.wav': 'file_extension_wav.png',
'audio/x-pn-realaudio': 'file_extension_ram.png',
'audio/mp4': 'file_extension_mp4.png',
'audio/x-ms-wma': 'file_extension_wma.png',
'video/avi' : 'file_extension_avi.png',
'video/mpeg' : 'file_extension_mpeg.png',
'video/quicktime' : 'file_extension_mov.png',
'video/x-ms-asf' : 'file_extension_asf.png',
'video/x-ms-wmv' : 'file_extension_wmv.png',
'video/avi': 'file_extension_avi.png',
'video/mpeg': 'file_extension_mpeg.png',
'video/quicktime': 'file_extension_mov.png',
'video/x-ms-asf': 'file_extension_asf.png',
'video/x-ms-wmv': 'file_extension_wmv.png',
'text/html' : 'file_extension_html.png',
'text/plain' : 'file_extension_txt.png',
'text/html': 'file_extension_html.png',
'text/plain': 'file_extension_txt.png',
}

View File

@@ -10,7 +10,6 @@ from django.core.urlresolvers import reverse
from django.template import (TemplateSyntaxError, Library,
Node, Variable, VariableDoesNotExist)
from django.utils.translation import ugettext as _
from django.utils.encoding import smart_str, force_unicode, smart_unicode
from ..api import (link_binding, multi_object_navigation,
sidebar_templates, get_context_navigation_links)
@@ -211,6 +210,7 @@ def resolve_template_variable(context, name):
'''
class GetNavigationLinks(Node):
def __init__(self, menu_name=None, links_dict=link_binding, var_name='object_navigation_links'):
self.menu_name = menu_name
@@ -247,7 +247,7 @@ def object_navigation_template(context):
object_variable_name = 'object'
finally:
logger.debug('object_variable_name: %s' % object_variable_name)
try:
object_reference = Variable(object_variable_name).resolve(context)
except VariableDoesNotExist:

View File

@@ -29,25 +29,25 @@ from . import models as ocr_models
logger = logging.getLogger(__name__)
#Links
submit_document = Link(text=_('submit to OCR queue'),view='submit_document',args='object.id',sprite='hourglass_add',permissions=[PERMISSION_OCR_DOCUMENT])
submit_document_multiple = Link(text=_('submit to OCR queue'),view='submit_document_multiple',sprite='hourglass_add',permissions=[PERMISSION_OCR_DOCUMENT])
re_queue_document = Link(text=_('re-queue'),view='re_queue_document',args='object.id',sprite='hourglass_add',permissions=[PERMISSION_OCR_DOCUMENT])
re_queue_multiple_document = Link(text=_('re-queue'),view='re_queue_multiple_document',sprite='hourglass_add',permissions=[PERMISSION_OCR_DOCUMENT])
queue_document_delete = Link(text=_(u'delete'),view='queue_document_delete',args='object.id',sprite='hourglass_delete',permissions=[PERMISSION_OCR_DOCUMENT_DELETE])
queue_document_multiple_delete = Link(text=_(u'delete'),view='queue_document_multiple_delete',sprite='hourglass_delete',permissions=[PERMISSION_OCR_DOCUMENT_DELETE])
submit_document = Link(text=_('submit to OCR queue'), view='submit_document', args='object.id', sprite='hourglass_add', permissions=[PERMISSION_OCR_DOCUMENT])
submit_document_multiple = Link(text=_('submit to OCR queue'), view='submit_document_multiple', sprite='hourglass_add', permissions=[PERMISSION_OCR_DOCUMENT])
re_queue_document = Link(text=_('re-queue'), view='re_queue_document', args='object.id', sprite='hourglass_add', permissions=[PERMISSION_OCR_DOCUMENT])
re_queue_multiple_document = Link(text=_('re-queue'), view='re_queue_multiple_document', sprite='hourglass_add', permissions=[PERMISSION_OCR_DOCUMENT])
queue_document_delete = Link(text=_(u'delete'), view='queue_document_delete', args='object.id', sprite='hourglass_delete', permissions=[PERMISSION_OCR_DOCUMENT_DELETE])
queue_document_multiple_delete = Link(text=_(u'delete'), view='queue_document_multiple_delete', sprite='hourglass_delete', permissions=[PERMISSION_OCR_DOCUMENT_DELETE])
document_queue_disable = Link(text=_(u'stop queue'),view='document_queue_disable',args='queue.id',sprite='control_stop_blue',permissions=[PERMISSION_OCR_QUEUE_ENABLE_DISABLE])
document_queue_enable = Link(text=_(u'activate queue'),view='document_queue_enable',args='queue.id',sprite='control_play_blue',permissions=[PERMISSION_OCR_QUEUE_ENABLE_DISABLE])
document_queue_disable = Link(text=_(u'stop queue'), view='document_queue_disable', args='queue.id', sprite='control_stop_blue', permissions=[PERMISSION_OCR_QUEUE_ENABLE_DISABLE])
document_queue_enable = Link(text=_(u'activate queue'), view='document_queue_enable', args='queue.id', sprite='control_play_blue', permissions=[PERMISSION_OCR_QUEUE_ENABLE_DISABLE])
all_document_ocr_cleanup = Link(text=_(u'clean up pages content'),view='all_document_ocr_cleanup',sprite='text_strikethrough',permissions=[PERMISSION_OCR_CLEAN_ALL_PAGES],description=_(u'Runs a language filter to remove common OCR mistakes from document pages content.'))
all_document_ocr_cleanup = Link(text=_(u'clean up pages content'), view='all_document_ocr_cleanup', sprite='text_strikethrough', permissions=[PERMISSION_OCR_CLEAN_ALL_PAGES], description=_(u'Runs a language filter to remove common OCR mistakes from document pages content.'))
queue_document_list = Link(text=_(u'queue document list'),view='queue_document_list',sprite='hourglass',permissions=[PERMISSION_OCR_DOCUMENT])
ocr_tool_link = Link(text=_(u'OCR'),view='queue_document_list',sprite='hourglass',icon='text.png',permissions=[PERMISSION_OCR_DOCUMENT],children_view_regex=[r'queue_', r'document_queue'])
queue_document_list = Link(text=_(u'queue document list'), view='queue_document_list', sprite='hourglass', permissions=[PERMISSION_OCR_DOCUMENT])
ocr_tool_link = Link(text=_(u'OCR'), view='queue_document_list', sprite='hourglass', icon='text.png', permissions=[PERMISSION_OCR_DOCUMENT], children_view_regex=[r'queue_', r'document_queue'])
setup_queue_transformation_list = Link(text=_(u'transformations'),view='setup_queue_transformation_list',args='queue.pk',sprite='shape_move_front')
setup_queue_transformation_create = Link(text=_(u'add transformation'),view='setup_queue_transformation_create',args='queue.pk',sprite='shape_square_add')
setup_queue_transformation_edit = Link(text=_(u'edit'),view='setup_queue_transformation_edit',args='transformation.pk',sprite='shape_square_edit')
setup_queue_transformation_delete = Link(text=_(u'delete'),view='setup_queue_transformation_delete',args='transformation.pk',sprite='shape_square_delete')
setup_queue_transformation_list = Link(text=_(u'transformations'), view='setup_queue_transformation_list', args='queue.pk', sprite='shape_move_front')
setup_queue_transformation_create = Link(text=_(u'add transformation'), view='setup_queue_transformation_create', args='queue.pk', sprite='shape_square_add')
setup_queue_transformation_edit = Link(text=_(u'edit'), view='setup_queue_transformation_edit', args='transformation.pk', sprite='shape_square_edit')
setup_queue_transformation_delete = Link(text=_(u'delete'), view='setup_queue_transformation_delete', args='transformation.pk', sprite='shape_square_delete')
bind_links([Document], [submit_document])
bind_links([DocumentQueue], [document_queue_disable, document_queue_enable, setup_queue_transformation_list])
@@ -93,6 +93,7 @@ def document_post_save(sender, instance, **kwargs):
# logger.debug('got call_queue signal: %s' % kwargs)
# task_process_document_queues()
@receiver(post_syncdb, dispatch_uid='create_default_queue', sender=ocr_models)
def create_default_queue_signal_handler(sender, **kwargs):
create_default_queue()

View File

@@ -2,7 +2,6 @@
from django.utils.translation import ugettext_lazy as _
<<<<<<< HEAD
from smart_settings.api import Setting, SettingNamespace
namespace = SettingNamespace('ocr', _(u'OCR'), module='ocr.conf.settings')

View File

@@ -52,7 +52,7 @@ def parse_document_page(document_page, descriptor=None, mimetype=None):
# If parser was successfull there is no need to try
# others in the list for this mimetype
return
raise ParserError('Parser list exhausted')
except KeyError:
raise ParserUnknownFile
@@ -113,7 +113,7 @@ class OfficeParser(Parser):
except OfficeConversionError, msg:
logger.error(msg)
raise ParserError
class PopplerParser(Parser):
"""
@@ -123,11 +123,11 @@ class PopplerParser(Parser):
self.pdftotext_path = PDFTOTEXT_PATH if PDFTOTEXT_PATH else u'/usr/bin/pdftotext'
if not os.path.exists(self.pdftotext_path):
raise ParserError('cannot find pdftotext executable')
logger.debug('self.pdftotext_path: %s' % self.pdftotext_path)
def parse(self, document_page, descriptor=None):
logger.debug('parsing PDF with PopplerParser')
pagenum = str(document_page.page_number)
logger.debug('self.pdftotext_path: %s' % self.pdftotext_path)
def parse(self, document_page, descriptor=None):
logger.debug('parsing PDF with PopplerParser')
pagenum = str(document_page.page_number)
if descriptor:
destination_descriptor, temp_filepath = tempfile.mkstemp(dir=TEMPORARY_DIRECTORY)
@@ -135,23 +135,23 @@ class PopplerParser(Parser):
document_file = temp_filepath
else:
document_file = document_save_to_temp_dir(document_page.document, document_page.document.checksum)
logger.debug('document_file: %s', document_file)
logger.debug('parsing PDF page %s' % pagenum)
logger.debug('parsing PDF page %s' % pagenum)
command = []
command.append(self.pdftotext_path)
command.append('-f')
command.append(pagenum)
command.append('-l')
command.append(pagenum)
command.append(document_file)
command.append('-')
command = []
command.append(self.pdftotext_path)
command.append('-f')
command.append(pagenum)
command.append('-l')
command.append(pagenum)
command.append(document_file)
command.append('-')
proc = subprocess.Popen(command, close_fds=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
return_code = proc.wait()
if return_code != 0:
proc = subprocess.Popen(command, close_fds=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
return_code = proc.wait()
if return_code != 0:
logger.error(proc.stderr.readline())
raise ParserError
@@ -160,9 +160,9 @@ class PopplerParser(Parser):
logger.debug('Parser didn\'t any output')
raise ParserError('No output')
document_page.content = output
document_page.page_label = _(u'Text extracted from PDF')
document_page.save()
document_page.content = output
document_page.page_label = _(u'Text extracted from PDF')
document_page.save()
register_parser(mimetypes=[u'application/pdf'], parsers=[PopplerParser, SlateParser])

View File

@@ -14,8 +14,7 @@ from .literals import (QUEUEDOCUMENT_STATE_PENDING,
QUEUEDOCUMENT_STATE_PROCESSING, DOCUMENTQUEUE_STATE_ACTIVE,
QUEUEDOCUMENT_STATE_ERROR)
from .models import QueueDocument, DocumentQueue
from .conf.settings import (NODE_CONCURRENT_EXECUTION, REPLICATION_DELAY,
QUEUE_PROCESSING_INTERVAL)
from .conf.settings import NODE_CONCURRENT_EXECUTION, REPLICATION_DELAY
LOCK_EXPIRE = 60 * 10 # Lock expires in 10 minutes
# TODO: Tie LOCK_EXPIRATION with hard task timeout

View File

@@ -19,9 +19,8 @@ from .permissions import (PERMISSION_OCR_DOCUMENT,
PERMISSION_OCR_DOCUMENT_DELETE, PERMISSION_OCR_QUEUE_ENABLE_DISABLE,
PERMISSION_OCR_CLEAN_ALL_PAGES, PERMISSION_OCR_QUEUE_EDIT)
from .models import DocumentQueue, QueueDocument, QueueTransformation
from .literals import (QUEUEDOCUMENT_STATE_PENDING,
QUEUEDOCUMENT_STATE_PROCESSING, DOCUMENTQUEUE_STATE_STOPPED,
DOCUMENTQUEUE_STATE_ACTIVE)
from .literals import (QUEUEDOCUMENT_STATE_PROCESSING,
DOCUMENTQUEUE_STATE_ACTIVE, DOCUMENTQUEUE_STATE_STOPPED)
from .exceptions import AlreadyQueued, ReQueueError
from .api import clean_pages
from .forms import QueueTransformationForm, QueueTransformationForm_create

View File

@@ -1,6 +1,6 @@
from __future__ import absolute_import
from django.shortcuts import render_to_response, get_object_or_404
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils.translation import ugettext_lazy as _

View File

@@ -1,6 +1,6 @@
from __future__ import absolute_import
from django.shortcuts import render_to_response, get_object_or_404
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils.translation import ugettext_lazy as _

View File

@@ -18,10 +18,9 @@ def register_interval_job(name, title, func, weeks=0, days=0, hours=0, minutes=0
start_date=start_date, args=args, kwargs=kwargs, **options)
registered_jobs[name] = {'title': title, 'job': job}
def remove_job(name):
if name in registered_jobs:
scheduler.unschedule_job(registered_jobs[name]['job'])
registered_jobs.pop(name)

View File

@@ -3,8 +3,6 @@ from __future__ import absolute_import
from django.conf import settings as django_settings
from django.utils.importlib import import_module
from django.utils.translation import ugettext_lazy as _
settings = {}
settings_list = []
namespace_list = []
@@ -23,10 +21,10 @@ class SettingNamespace(object):
def __unicode__(self):
return unicode(self.label)
def settings(self):
return [setting for setting in settings_list if setting.namespace == self]
class Setting(object):
def __init__(self, namespace, name, global_name, default, description=u'', hidden=False, exists=False):
@@ -37,7 +35,7 @@ class Setting(object):
self.description = description
self.hidden = hidden
self.exists = exists
# Get the global value
value = getattr(django_settings, global_name, default)

View File

@@ -8,13 +8,13 @@ from django.utils.safestring import mark_safe
from common.utils import return_type, encapsulate
from common.widgets import exists_with_famfam
from .api import settings, settings_list, namespace_list
from .api import settings_list
def setting_list(request):
context = {
'title': _(u'settings'),
'object_list': [setting for setting in settings_list if setting.hidden==False],
'object_list': [setting for setting in settings_list if setting.hidden == False],
'hide_link': True,
'hide_object': True,
'extra_columns': [
@@ -26,14 +26,6 @@ def setting_list(request):
)))
},
],
#'temporary_navigation_links': {
# 'sidebar': {
# 'links': links,
# 'upload_interactive': {
# 'links': links
# }
# }
#},
}
return render_to_response('generic_list.html', context,

View File

@@ -142,7 +142,7 @@ def tag_delete(request, tag_id=None, tag_id_list=None):
for tag in tags:
try:
for document in Document.objects.filter(tags__in=[tag]):
document.mark_indexable()
document.mark_indexable()
tag.delete()
messages.success(request, _(u'Tag "%s" deleted successfully.') % tag)
except Exception, e:
@@ -191,7 +191,7 @@ def tag_edit(request, tag_id):
tag.name = form.cleaned_data['name']
tag.save()
for document in Document.objects.filter(tags__in=[tag]):
document.mark_indexable()
document.mark_indexable()
tag_properties = tag.tagproperties_set.get()
tag_properties.color = form.cleaned_data['color']
tag_properties.save()