Initial set of update to convert the sources app to the new registry and icon system

This commit is contained in:
Roberto Rosario
2012-09-30 03:01:49 -04:00
parent 3b9a5080b5
commit d41dac13ea
18 changed files with 237 additions and 153 deletions
+16
View File
@@ -11,6 +11,11 @@ class IconSet(IconSetBase):
available_sizes = ['32x32', '16x16'] available_sizes = ['32x32', '16x16']
dictionary = { dictionary = {
ADD: 'add.png', ADD: 'add.png',
APPLICATION_FORM: 'application_form.png',
APPLICATION_FORM_DELETE: 'application_form_delete.png',
APPLICATION_FORM_EDIT: 'application_form_edit.png',
APPLICATION_FORM_ADD: 'application_form_add.png',
APPLICATION_VIEW_ICONS: 'application_view_icons.png',
APPLICATION_VIEW_ICONS: 'application_view_icons.png', APPLICATION_VIEW_ICONS: 'application_view_icons.png',
ARROW_TURN_RIGHT: 'arrow_turn_right.png', ARROW_TURN_RIGHT: 'arrow_turn_right.png',
ARROW_TURN_LEFT: 'arrow_turn_left.png', ARROW_TURN_LEFT: 'arrow_turn_left.png',
@@ -49,14 +54,20 @@ class IconSet(IconSetBase):
DELETE: 'delete.png', DELETE: 'delete.png',
DISK: 'disk.png', DISK: 'disk.png',
DRAW_AIRBRUSH: 'draw_airbrush.png', DRAW_AIRBRUSH: 'draw_airbrush.png',
DRIVE: 'drive.png',
DRIVE_NETWORK: 'drive_network.png',
DRIVE_USER: 'drive_user.png',
DOCUMENT_SIGNATURE: 'document_signature.png', DOCUMENT_SIGNATURE: 'document_signature.png',
EMAIL: 'email.png',
ERROR: 'error.png', ERROR: 'error.png',
FOLDER: 'folder.png', FOLDER: 'folder.png',
FOLDERS: 'folders.png', FOLDERS: 'folders.png',
FOLDER_ADD: 'folder_add.png', FOLDER_ADD: 'folder_add.png',
FOLDER_CAMERA: 'folder_camera.png',
FOLDER_EDIT: 'folder_edit.png', FOLDER_EDIT: 'folder_edit.png',
FOLDER_DELETE: 'folder_delete.png', FOLDER_DELETE: 'folder_delete.png',
FOLDER_GO: 'folder_go.png', FOLDER_GO: 'folder_go.png',
FOLDER_MAGNIFY: 'folder_magnify.png',
FOLDER_PAGE: 'folder_page.png', FOLDER_PAGE: 'folder_page.png',
FOLDER_USER: 'folder_user.png', FOLDER_USER: 'folder_user.png',
GROUP: 'group.png', GROUP: 'group.png',
@@ -68,6 +79,8 @@ class IconSet(IconSetBase):
GROUP_MEMBERS: ['group.png', 'arrow_refresh.png'], GROUP_MEMBERS: ['group.png', 'arrow_refresh.png'],
HOURGLASS: 'hourglass.png', HOURGLASS: 'hourglass.png',
HOUSE: 'house.png', HOUSE: 'house.png',
IMAGE: 'image.png',
IMAGES: 'images.png',
INDEX: 'index.png', INDEX: 'index.png',
INFORMATION: 'information.png', INFORMATION: 'information.png',
KEY: 'key.png', KEY: 'key.png',
@@ -101,6 +114,7 @@ class IconSet(IconSetBase):
NODE_TREE_DELETE: ['node-tree.png', 'delete.png'], NODE_TREE_DELETE: ['node-tree.png', 'delete.png'],
PACKAGE: 'package.png', PACKAGE: 'package.png',
PAGE: 'page.png', PAGE: 'page.png',
PAGE_ADD: 'page_add.png',
PAGE_COPY: 'page_copy.png', PAGE_COPY: 'page_copy.png',
PAGE_GEAR: 'page_gear.png', PAGE_GEAR: 'page_gear.png',
PAGE_GO: 'page_go.png', PAGE_GO: 'page_go.png',
@@ -123,6 +137,7 @@ class IconSet(IconSetBase):
PILL: 'pill.png', PILL: 'pill.png',
PLUGIN: 'plugin.png', PLUGIN: 'plugin.png',
PRINTER: 'printer.png', PRINTER: 'printer.png',
PRINTER_EMPTY: 'printer_empty.png',
RADIOACTIVITY: 'radioactivity.png', RADIOACTIVITY: 'radioactivity.png',
RAINBOW: 'rainbow.png', RAINBOW: 'rainbow.png',
RESULTSET_FIRST: 'resultset_first.png', RESULTSET_FIRST: 'resultset_first.png',
@@ -169,6 +184,7 @@ class IconSet(IconSetBase):
WIZARD_DELETE: ['wizard.png', 'delete.png'], WIZARD_DELETE: ['wizard.png', 'delete.png'],
WIZARD_EDIT: ['wizard.png', 'pencil.png'], WIZARD_EDIT: ['wizard.png', 'pencil.png'],
WIZARD_LIGHTNING: ['wizard.png', 'lightning.png'], WIZARD_LIGHTNING: ['wizard.png', 'lightning.png'],
WORLD: 'world.png',
WORLD_GO: 'world_go.png', WORLD_GO: 'world_go.png',
WRENCH: 'wrench.png', WRENCH: 'wrench.png',
XHTML: 'xhtml.png', XHTML: 'xhtml.png',
+15
View File
@@ -5,6 +5,10 @@ DEFAULT_ICON_SET = 'fat_cow'
ICONSETS_STATIC_DIRECTORY = 'icons' ICONSETS_STATIC_DIRECTORY = 'icons'
ADD = 'add' ADD = 'add'
APPLICATION_FORM = 'application_form'
APPLICATION_FORM_DELETE = 'application_form_delete'
APPLICATION_FORM_EDIT = 'application_form_edit'
APPLICATION_FORM_ADD = 'application_form_add'
APPLICATION_VIEW_ICONS = 'application_view_icons' APPLICATION_VIEW_ICONS = 'application_view_icons'
ARROW_TURN_RIGHT = 'arrow_turn_right' ARROW_TURN_RIGHT = 'arrow_turn_right'
ARROW_TURN_LEFT = 'arrow_turn_left' ARROW_TURN_LEFT = 'arrow_turn_left'
@@ -43,16 +47,22 @@ DATABASE_LIGHTNING = 'database_lightning'
DELETE = 'delete' DELETE = 'delete'
DISK = 'disk' DISK = 'disk'
DRAW_AIRBRUSH = 'draw_airbrush' DRAW_AIRBRUSH = 'draw_airbrush'
DRIVE = 'drive'
DRIVE_NETWORK = 'drive_network'
DRIVE_USER = 'drive_user'
DOCUMENT_SIGNATURE = 'document_signature' DOCUMENT_SIGNATURE = 'document_signature'
EMAIL = 'email'
ERROR = 'error' ERROR = 'error'
FILE_EXTENSION_ERROR = 'file_extension_error' FILE_EXTENSION_ERROR = 'file_extension_error'
FILE_EXTENSION_UNKNOWN = 'file_extension_unknown' FILE_EXTENSION_UNKNOWN = 'file_extension_unknown'
FOLDER = 'folder' FOLDER = 'folder'
FOLDERS = 'folders' FOLDERS = 'folders'
FOLDER_ADD = 'folder_add' FOLDER_ADD = 'folder_add'
FOLDER_CAMERA = 'folder_camera'
FOLDER_EDIT = 'folder_edit' FOLDER_EDIT = 'folder_edit'
FOLDER_DELETE = 'folder_delete' FOLDER_DELETE = 'folder_delete'
FOLDER_GO = 'folder_go' FOLDER_GO = 'folder_go'
FOLDER_MAGNIFY = 'folder_magnify'
FOLDER_PAGE = 'folder_page' FOLDER_PAGE = 'folder_page'
FOLDER_USER = 'folder_user' FOLDER_USER = 'folder_user'
GROUP = 'group' GROUP = 'group'
@@ -64,6 +74,8 @@ GROUP_LINK = 'group_link'
GROUP_MEMBERS = 'group_members' GROUP_MEMBERS = 'group_members'
HOURGLASS = 'hourglass' HOURGLASS = 'hourglass'
HOUSE = 'house' HOUSE = 'house'
IMAGE = 'image'
IMAGES = 'images'
INDEX = 'index' INDEX = 'index'
INFORMATION = 'information' INFORMATION = 'information'
KEY = 'key' KEY = 'key'
@@ -97,6 +109,7 @@ NODE_TREE_EDIT = 'node_tree_edit'
NODE_TREE_DELETE = 'node_tree_delete' NODE_TREE_DELETE = 'node_tree_delete'
PACKAGE = 'package' PACKAGE = 'package'
PAGE = 'page' PAGE = 'page'
PAGE_ADD = 'page_add'
PAGE_COPY = 'page_copy' PAGE_COPY = 'page_copy'
PAGE_DELETE = 'page_delete' PAGE_DELETE = 'page_delete'
PAGE_EDIT = 'page_edit' PAGE_EDIT = 'page_edit'
@@ -119,6 +132,7 @@ PICTURES = 'pictures'
PILL = 'pill' PILL = 'pill'
PLUGIN = 'plugin' PLUGIN = 'plugin'
PRINTER = 'printer' PRINTER = 'printer'
PRINTER_EMPTY = 'printer_empty'
RADIOACTIVITY = 'radioactivity' RADIOACTIVITY = 'radioactivity'
RAINBOW = 'rainbow' RAINBOW = 'rainbow'
RESULTSET_FIRST = 'resultset_first' RESULTSET_FIRST = 'resultset_first'
@@ -165,6 +179,7 @@ WIZARD_ADD = 'wizard_add'
WIZARD_DELETE = 'wizard_delete' WIZARD_DELETE = 'wizard_delete'
WIZARD_EDIT = 'wizard_edit' WIZARD_EDIT = 'wizard_edit'
WIZARD_LIGHTNING = 'wizard_lightning' WIZARD_LIGHTNING = 'wizard_lightning'
WORLD = 'world'
WORLD_GO = 'world_go' WORLD_GO = 'world_go'
WRENCH = 'wrench' WRENCH = 'wrench'
XHTML = 'xhtml' XHTML = 'xhtml'
-75
View File
@@ -1,76 +1 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
#from backups.api import AppBackup, ModelBackup
#from app_registry import register_app, UnableToRegister
from common.utils import encapsulate
from documents.models import Document
from navigation.api import (bind_links, register_model_list_columns,
register_sidebar_template)
from project_setup.api import register_setup
from scheduler.api import LocalScheduler
from .conf.settings import EMAIL_PROCESSING_INTERVAL
from .links import (staging_file_delete, setup_sources,
setup_web_form_list, setup_staging_folder_list, setup_watch_folder_list,
setup_pop3_email_list, setup_imap_email_list, setup_source_edit,
setup_source_delete, setup_source_create, setup_source_log_list,
setup_source_transformation_list, setup_source_transformation_create,
setup_source_transformation_edit, setup_source_transformation_delete,
upload_version, document_create_multiple, setup_local_scanner_list,
setup_local_scanners_refresh)
from .models import (WebForm, StagingFolder, SourceTransformation,
WatchFolder, POP3Email, IMAPEmail, LocalScanner)
from .staging import StagingFile
from .tasks import task_fetch_pop3_emails, task_fetch_imap_emails
from .widgets import staging_file_thumbnail
bind_links([StagingFile], [staging_file_delete])
bind_links([SourceTransformation], [setup_source_transformation_edit, setup_source_transformation_delete])
bind_links([LocalScanner, 'setup_local_scanner_list'], [setup_local_scanners_refresh], menu_name='secondary_menu')
bind_links(['setup_imap_email_list', 'setup_pop3_email_list', 'setup_web_form_list', 'setup_staging_folder_list', 'setup_watch_folder_list', 'setup_source_create', 'setup_local_scanner_list'], [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list, setup_local_scanner_list], menu_name='form_header')
bind_links([WebForm, StagingFolder, POP3Email, IMAPEmail, LocalScanner, 'setup_web_form_list', 'setup_staging_folder_list', 'setup_watch_folder_list', 'setup_source_create', 'setup_pop3_email_list', 'setup_imap_email_list', 'setup_local_scanner_list'], [setup_source_create], menu_name='secondary_menu')
bind_links([WebForm], [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list, setup_local_scanner_list], menu_name='form_header')
bind_links([WebForm], [setup_source_transformation_list, setup_source_edit, setup_source_delete])
bind_links([StagingFolder], [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list, setup_local_scanner_list], menu_name='form_header')
bind_links([StagingFolder], [setup_source_transformation_list, setup_source_edit, setup_source_delete])
bind_links([POP3Email], [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list, setup_local_scanner_list], menu_name='form_header')
bind_links([POP3Email], [setup_source_transformation_list, setup_source_edit, setup_source_delete])
bind_links([POP3Email], [setup_source_log_list])
bind_links([IMAPEmail], [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list, setup_local_scanner_list], menu_name='form_header')
bind_links([IMAPEmail], [setup_source_transformation_list, setup_source_edit, setup_source_delete])
bind_links([IMAPEmail], [setup_source_log_list])
bind_links([WatchFolder], [setup_web_form_list, setup_staging_folder_list, setup_watch_folder_list, setup_imap_email_list, setup_local_scanner_list], menu_name='form_header')
bind_links([WatchFolder], [setup_source_transformation_list, setup_source_edit, setup_source_delete])
bind_links([LocalScanner], [setup_web_form_list, setup_staging_folder_list, setup_watch_folder_list, setup_imap_email_list, setup_local_scanner_list], menu_name='form_header')
bind_links([LocalScanner], [setup_source_transformation_list, setup_source_edit, setup_source_delete])
register_sidebar_template([LocalScanner, 'setup_local_scanner_list'], 'scanner_list.html')
# Document version
bind_links(['document_version_list', 'upload_version', 'document_version_revert', 'document_version_text_compare', 'document_version_show_diff_text'], [upload_version], menu_name='sidebar')
bind_links(['setup_source_transformation_create', 'setup_source_transformation_edit', 'setup_source_transformation_delete', 'setup_source_transformation_list'], [setup_source_transformation_create], menu_name='sidebar')
source_views = ['setup_web_form_list', 'setup_staging_folder_list', 'setup_watch_folder_list', 'setup_source_edit', 'setup_source_delete', 'setup_source_create', 'setup_source_transformation_list', 'setup_source_transformation_edit', 'setup_source_transformation_delete', 'setup_source_transformation_create']
register_model_list_columns(StagingFile, [
{'name':_(u'thumbnail'), 'attribute':
encapsulate(lambda x: staging_file_thumbnail(x))
},
])
register_setup(setup_sources)
sources_scheduler = LocalScheduler('sources', _(u'Document sources'))
sources_scheduler.add_interval_job('task_fetch_pop3_emails', _(u'Connects to the POP3 email sources and fetches the attached documents.'), task_fetch_pop3_emails, seconds=EMAIL_PROCESSING_INTERVAL)
sources_scheduler.add_interval_job('task_fetch_imap_emails', _(u'Connects to the IMAP email sources and fetches the attached documents.'), task_fetch_imap_emails, seconds=EMAIL_PROCESSING_INTERVAL)
sources_scheduler.start()
bind_links(['document_list_recent', 'document_list', 'document_create', 'document_create_multiple', 'upload_interactive', 'staging_file_delete'], [document_create_multiple], menu_name='secondary_menu')
bind_links([Document], [document_create_multiple], menu_name='secondary_menu')
#try:
# app = register_app('sources', _(u'Sources'))
#except UnableToRegister:
# pass
#else:
# AppBackup(app, [ModelBackup()])
View File
+4 -4
View File
@@ -8,7 +8,7 @@ from documents.forms import DocumentForm
from .models import (WebForm, StagingFolder, SourceTransformation, from .models import (WebForm, StagingFolder, SourceTransformation,
WatchFolder, POP3Email, IMAPEmail, LocalScanner) WatchFolder, POP3Email, IMAPEmail, LocalScanner)
from .widgets import FamFamRadioSelect from .widgets import IconRadioSelect
from .utils import validate_whitelist_blacklist from .utils import validate_whitelist_blacklist
@@ -74,7 +74,7 @@ class WebFormForm(DocumentForm):
class WebFormSetupForm(forms.ModelForm): class WebFormSetupForm(forms.ModelForm):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(WebFormSetupForm, self).__init__(*args, **kwargs) super(WebFormSetupForm, self).__init__(*args, **kwargs)
self.fields['icon'].widget = FamFamRadioSelect( self.fields['icon'].widget = IconRadioSelect(
attrs=self.fields['icon'].widget.attrs, attrs=self.fields['icon'].widget.attrs,
choices=self.fields['icon'].widget.choices, choices=self.fields['icon'].widget.choices,
) )
@@ -86,7 +86,7 @@ class WebFormSetupForm(forms.ModelForm):
class StagingFolderSetupForm(forms.ModelForm): class StagingFolderSetupForm(forms.ModelForm):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(StagingFolderSetupForm, self).__init__(*args, **kwargs) super(StagingFolderSetupForm, self).__init__(*args, **kwargs)
self.fields['icon'].widget = FamFamRadioSelect( self.fields['icon'].widget = IconRadioSelect(
attrs=self.fields['icon'].widget.attrs, attrs=self.fields['icon'].widget.attrs,
choices=self.fields['icon'].widget.choices, choices=self.fields['icon'].widget.choices,
) )
@@ -110,7 +110,7 @@ class LocalScannerSetupForm(forms.ModelForm):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(LocalScannerSetupForm, self).__init__(*args, **kwargs) super(LocalScannerSetupForm, self).__init__(*args, **kwargs)
self.fields['icon'].widget = FamFamRadioSelect( self.fields['icon'].widget = IconRadioSelect(
attrs=self.fields['icon'].widget.attrs, attrs=self.fields['icon'].widget.attrs,
choices=self.fields['icon'].widget.choices, choices=self.fields['icon'].widget.choices,
) )
+26
View File
@@ -0,0 +1,26 @@
from __future__ import absolute_import
from icons.literals import (APPLICATION_FORM, APPLICATION_FORM_DELETE, APPLICATION_FORM_EDIT,
APPLICATION_FORM_ADD, BOOK, DELETE, EMAIL, IMAGE, FOLDER_MAGNIFY, FOLDER_CAMERA,
PAGE_ADD, ZOOM, CROSS)
from icons import Icon
icon_staging_file_preview = Icon(ZOOM)
icon_staging_file_delete = Icon(DELETE)
icon_setup_sources = Icon(APPLICATION_FORM)
icon_setup_web_form_list = Icon(APPLICATION_FORM)
icon_setup_staging_folder_list = Icon(FOLDER_CAMERA)
icon_setup_watch_folder_list = Icon(FOLDER_MAGNIFY)
icon_setup_pop3_email_list = Icon(EMAIL)
icon_setup_imap_email_list = Icon(EMAIL)
icon_setup_local_scanner_list = Icon(IMAGE)
icon_setup_local_scanners_refresh = Icon(IMAGE)
icon_setup_source_edit = Icon(APPLICATION_FORM_EDIT)
icon_setup_source_delete = Icon(APPLICATION_FORM_DELETE)
icon_setup_source_create = Icon(APPLICATION_FORM_ADD)
icon_setup_source_log_list = Icon(BOOK)
icon_source_list = Icon(PAGE_ADD)
icon_upload_version = Icon(PAGE_ADD)
icon_document_create_multiple = Icon(PAGE_ADD)
icon_cross = Icon(CROSS)
+38 -22
View File
@@ -5,33 +5,49 @@ from django.utils.translation import ugettext_lazy as _
from navigation import Link from navigation import Link
from documents.permissions import (PERMISSION_DOCUMENT_NEW_VERSION, from documents.permissions import (PERMISSION_DOCUMENT_NEW_VERSION,
PERMISSION_DOCUMENT_CREATE) PERMISSION_DOCUMENT_CREATE)
from .permissions import (PERMISSION_SOURCES_SETUP_VIEW, from .permissions import (PERMISSION_SOURCES_SETUP_VIEW,
PERMISSION_SOURCES_SETUP_EDIT, PERMISSION_SOURCES_SETUP_DELETE, PERMISSION_SOURCES_SETUP_EDIT, PERMISSION_SOURCES_SETUP_DELETE,
PERMISSION_SOURCES_SETUP_CREATE) PERMISSION_SOURCES_SETUP_CREATE)
from .icons import (icon_staging_file_preview, icon_staging_file_delete,
staging_file_preview = Link(text=_(u'preview'), klass='fancybox-noscaling', view='staging_file_preview', args=['source.source_type', 'source.pk', 'object.pk'], sprite='zoom', permissions=[PERMISSION_DOCUMENT_NEW_VERSION, PERMISSION_DOCUMENT_CREATE]) icon_setup_sources, icon_setup_web_form_list, icon_setup_staging_folder_list,
staging_file_delete = Link(text=_(u'delete'), view='staging_file_delete', args=['source.source_type', 'source.pk', 'object.pk'], sprite='delete', keep_query=True, permissions=[PERMISSION_DOCUMENT_NEW_VERSION, PERMISSION_DOCUMENT_CREATE]) icon_setup_watch_folder_list, icon_setup_pop3_email_list,
icon_setup_imap_email_list, icon_setup_local_scanner_list,
icon_setup_local_scanners_refresh, icon_setup_source_edit,
icon_setup_source_delete, icon_setup_source_create,
icon_setup_source_log_list, icon_source_list, icon_upload_version,
icon_document_create_multiple, icon_staging_file_preview,
icon_staging_file_delete, icon_setup_sources, icon_setup_web_form_list,
icon_setup_staging_folder_list, icon_setup_watch_folder_list,
icon_setup_pop3_email_list, icon_setup_imap_email_list,
icon_setup_local_scanner_list, icon_setup_local_scanners_refresh,
icon_setup_source_edit, icon_setup_source_delete, icon_setup_source_create,
icon_setup_source_log_list, icon_source_list, icon_upload_version,
icon_document_create_multiple)
setup_sources = Link(text=_(u'sources'), view='setup_web_form_list', sprite='application_form', icon='application_form.png', permissions=[PERMISSION_SOURCES_SETUP_VIEW], children_view_regex=[r'setup_web_form', r'setup_staging_folder', r'setup_source_', r'setup_pop3', r'setup_imap']) staging_file_preview = Link(text=_(u'preview'), klass='fancybox-noscaling', view='staging_file_preview', args=['source.source_type', 'source.pk', 'object.pk'], icon=icon_staging_file_preview, permissions=[PERMISSION_DOCUMENT_NEW_VERSION, PERMISSION_DOCUMENT_CREATE])
setup_web_form_list = Link(text=_(u'web forms'), view='setup_web_form_list', sprite='application_form', icon='application_form.png', permissions=[PERMISSION_SOURCES_SETUP_VIEW]) staging_file_delete = Link(text=_(u'delete'), view='staging_file_delete', args=['source.source_type', 'source.pk', 'object.pk'], icon=icon_staging_file_delete, keep_query=True, permissions=[PERMISSION_DOCUMENT_NEW_VERSION, PERMISSION_DOCUMENT_CREATE])
setup_staging_folder_list = Link(text=_(u'staging folders'), view='setup_staging_folder_list', sprite='folder_camera', permissions=[PERMISSION_SOURCES_SETUP_VIEW])
setup_watch_folder_list = Link(text=_(u'watch folders'), view='setup_watch_folder_list', sprite='folder_magnify', permissions=[PERMISSION_SOURCES_SETUP_VIEW])
setup_pop3_email_list = Link(text=_(u'POP3 email'), view='setup_pop3_email_list', sprite='email', permissions=[PERMISSION_SOURCES_SETUP_VIEW])
setup_imap_email_list = Link(text=_(u'IMAP email'), view='setup_imap_email_list', sprite='email', permissions=[PERMISSION_SOURCES_SETUP_VIEW])
setup_local_scanner_list = Link(text=_(u'Local scanner'), view='setup_local_scanner_list', sprite='image', permissions=[PERMISSION_SOURCES_SETUP_VIEW])
setup_local_scanners_refresh = Link(text=_(u'Refresh scanner list'), view='scanners_refresh', sprite='images', permissions=[PERMISSION_SOURCES_SETUP_VIEW])
setup_source_edit = Link(text=_(u'edit'), view='setup_source_edit', args=['source.source_type', 'source.pk'], sprite='application_form_edit', permissions=[PERMISSION_SOURCES_SETUP_EDIT]) setup_sources = Link(text=_(u'sources'), view='setup_web_form_list', icon=icon_setup_sources, permissions=[PERMISSION_SOURCES_SETUP_VIEW], children_view_regex=[r'setup_web_form', r'setup_staging_folder', r'setup_source_', r'setup_pop3', r'setup_imap'])
setup_source_delete = Link(text=_(u'delete'), view='setup_source_delete', args=['source.source_type', 'source.pk'], sprite='application_form_delete', permissions=[PERMISSION_SOURCES_SETUP_DELETE]) setup_web_form_list = Link(text=_(u'web forms'), view='setup_web_form_list', icon=icon_setup_web_form_list, permissions=[PERMISSION_SOURCES_SETUP_VIEW])
setup_source_create = Link(text=_(u'add new source'), view='setup_source_create', args='source_type', sprite='application_form_add', permissions=[PERMISSION_SOURCES_SETUP_CREATE]) setup_staging_folder_list = Link(text=_(u'staging folders'), view='setup_staging_folder_list', icon=icon_setup_staging_folder_list, permissions=[PERMISSION_SOURCES_SETUP_VIEW])
setup_source_log_list = Link(text=_(u'logs'), view='setup_source_log_list', args=['source.source_type', 'source.pk'], sprite='book', permissions=[PERMISSION_SOURCES_SETUP_EDIT]) setup_watch_folder_list = Link(text=_(u'watch folders'), view='setup_watch_folder_list', icon=icon_setup_watch_folder_list, permissions=[PERMISSION_SOURCES_SETUP_VIEW])
setup_pop3_email_list = Link(text=_(u'POP3 email'), view='setup_pop3_email_list', icon=icon_setup_pop3_email_list, permissions=[PERMISSION_SOURCES_SETUP_VIEW])
setup_imap_email_list = Link(text=_(u'IMAP email'), view='setup_imap_email_list', icon=icon_setup_imap_email_list, permissions=[PERMISSION_SOURCES_SETUP_VIEW])
setup_local_scanner_list = Link(text=_(u'Local scanner'), view='setup_local_scanner_list', icon=icon_setup_local_scanner_list, permissions=[PERMISSION_SOURCES_SETUP_VIEW])
setup_local_scanners_refresh = Link(text=_(u'Refresh scanner list'), view='scanners_refresh', icon=icon_setup_local_scanners_refresh, permissions=[PERMISSION_SOURCES_SETUP_VIEW])
setup_source_transformation_list = Link(text=_(u'transformations'), view='setup_source_transformation_list', args=['source.source_type', 'source.pk'], sprite='shape_move_front', permissions=[PERMISSION_SOURCES_SETUP_EDIT]) setup_source_edit = Link(text=_(u'edit'), view='setup_source_edit', args=['source.source_type', 'source.pk'], icon=icon_setup_source_edit, permissions=[PERMISSION_SOURCES_SETUP_EDIT])
setup_source_transformation_create = Link(text=_(u'add transformation'), view='setup_source_transformation_create', args=['source.source_type', 'source.pk'], sprite='shape_square_add', permissions=[PERMISSION_SOURCES_SETUP_EDIT]) setup_source_delete = Link(text=_(u'delete'), view='setup_source_delete', args=['source.source_type', 'source.pk'], icon=icon_setup_source_delete, permissions=[PERMISSION_SOURCES_SETUP_DELETE])
setup_source_transformation_edit = Link(text=_(u'edit'), view='setup_source_transformation_edit', args='transformation.pk', sprite='shape_square_edit', permissions=[PERMISSION_SOURCES_SETUP_EDIT]) setup_source_create = Link(text=_(u'add new source'), view='setup_source_create', args='source_type', icon=icon_setup_source_create, permissions=[PERMISSION_SOURCES_SETUP_CREATE])
setup_source_transformation_delete = Link(text=_(u'delete'), view='setup_source_transformation_delete', args='transformation.pk', sprite='shape_square_delete', permissions=[PERMISSION_SOURCES_SETUP_EDIT]) setup_source_log_list = Link(text=_(u'logs'), view='setup_source_log_list', args=['source.source_type', 'source.pk'], icon=icon_setup_source_log_list, permissions=[PERMISSION_SOURCES_SETUP_EDIT])
source_list = Link(text=_(u'Document sources'), view='setup_web_form_list', sprite='page_add', children_url_regex=[r'sources/setup'], permissions=[PERMISSION_SOURCES_SETUP_VIEW]) #setup_source_transformation_list = Link(text=_(u'transformations'), view='setup_source_transformation_list', args=['source.source_type', 'source.pk'], sprite='shape_move_front', permissions=[PERMISSION_SOURCES_SETUP_EDIT])
#setup_source_transformation_create = Link(text=_(u'add transformation'), view='setup_source_transformation_create', args=['source.source_type', 'source.pk'], sprite='shape_square_add', permissions=[PERMISSION_SOURCES_SETUP_EDIT])
#setup_source_transformation_edit = Link(text=_(u'edit'), view='setup_source_transformation_edit', args='transformation.pk', sprite='shape_square_edit', permissions=[PERMISSION_SOURCES_SETUP_EDIT])
#setup_source_transformation_delete = Link(text=_(u'delete'), view='setup_source_transformation_delete', args='transformation.pk', sprite='shape_square_delete', permissions=[PERMISSION_SOURCES_SETUP_EDIT])
upload_version = Link(text=_(u'upload new version'), view='upload_version', args='object.pk', sprite='page_add', permissions=[PERMISSION_DOCUMENT_NEW_VERSION]) source_list = Link(text=_(u'Document sources'), view='setup_web_form_list', icon=icon_source_list, children_url_regex=[r'sources/setup'], permissions=[PERMISSION_SOURCES_SETUP_VIEW])
document_create_multiple = Link(text=_(u'upload new documents'), view='document_create_multiple', sprite='page_add', permissions=[PERMISSION_DOCUMENT_CREATE], children_view_regex=[r'upload_interactive'])
upload_version = Link(text=_(u'upload new version'), view='upload_version', args='object.pk', icon=icon_upload_version, permissions=[PERMISSION_DOCUMENT_NEW_VERSION])
document_create_multiple = Link(text=_(u'upload new documents'), view='document_create_multiple', icon=icon_document_create_multiple, permissions=[PERMISSION_DOCUMENT_CREATE], children_view_regex=[r'upload_interactive'])
+19 -23
View File
@@ -1,5 +1,10 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from icons.literals import (DISK, DATABASE, DRIVE, DRIVE_NETWORK, DRIVE_USER,
EMAIL, FOLDER, WORLD, PRINTER, PRINTER_EMPTY, IMAGES)
POP3_PORT = 110 POP3_PORT = 110
POP3_SSL_PORT = 995 POP3_SSL_PORT = 995
DEFAULT_POP3_INTERVAL = 15 * 60 # 15 minutes in seconds DEFAULT_POP3_INTERVAL = 15 * 60 # 15 minutes in seconds
@@ -25,30 +30,18 @@ SOURCE_INTERACTIVE_UNCOMPRESS_CHOICES = (
(SOURCE_UNCOMPRESS_CHOICE_ASK, _(u'Ask user')) (SOURCE_UNCOMPRESS_CHOICE_ASK, _(u'Ask user'))
) )
SOURCE_ICON_DISK = 'disk'
SOURCE_ICON_DATABASE = 'database'
SOURCE_ICON_DRIVE = 'drive'
SOURCE_ICON_DRIVE_NETWORK = 'drive_network'
SOURCE_ICON_DRIVE_USER = 'drive_user'
SOURCE_ICON_EMAIL = 'email'
SOURCE_ICON_FOLDER = 'folder'
SOURCE_ICON_WORLD = 'world'
SOURCE_ICON_PRINTER = 'printer'
SOURCE_ICON_PRINTER_EMPTY = 'printer_empty'
SOURCE_ICON_IMAGES = 'images'
SOURCE_ICON_CHOICES = ( SOURCE_ICON_CHOICES = (
(SOURCE_ICON_DISK, _(u'Disk')), (DISK, _(u'Disk')),
(SOURCE_ICON_DATABASE, _(u'Database')), (DATABASE, _(u'Database')),
(SOURCE_ICON_DRIVE, _(u'Drive')), (DRIVE, _(u'Drive')),
(SOURCE_ICON_DRIVE_NETWORK, _(u'Network drive')), (DRIVE_NETWORK, _(u'Network drive')),
(SOURCE_ICON_DRIVE_USER, _(u'User drive')), (DRIVE_USER, _(u'User drive')),
(SOURCE_ICON_EMAIL, _(u'Envelope')), (EMAIL, _(u'Envelope')),
(SOURCE_ICON_FOLDER, _(u'Folder')), (FOLDER, _(u'Folder')),
(SOURCE_ICON_IMAGES, _(u'Images')), (IMAGES, _(u'Images')),
(SOURCE_ICON_WORLD, _(u'World')), (WORLD, _(u'World')),
(SOURCE_ICON_PRINTER, _(u'Printer')), (PRINTER, _(u'Printer')),
(SOURCE_ICON_PRINTER_EMPTY, _(u'Empty printer')), (PRINTER_EMPTY, _(u'Empty printer')),
) )
SOURCE_CHOICE_WEB_FORM = 'webform' SOURCE_CHOICE_WEB_FORM = 'webform'
@@ -77,3 +70,6 @@ SOURCE_CHOICES_PLURAL = (
) )
DEFAULT_LOCAL_SCANNER_FILE_FORMAT = 'JPEG' DEFAULT_LOCAL_SCANNER_FILE_FORMAT = 'JPEG'
DEFAULT_POP3_DEFAULT_TIMEOUT = 10 # for POP3 only not POP3_SSL
DEFAULT_EMAIL_PROCESSING_INTERVAL = 60
DEFAULT_POP3_EMAIL_LOG_COUNT = 10 # Max log entries to store
+1 -1
View File
@@ -5,7 +5,7 @@ from ast import literal_eval
from django.db import models from django.db import models
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from .conf.settings import LOG_SIZE #from .settings import LOG_SIZE
class SourceTransformationManager(models.Manager): class SourceTransformationManager(models.Manager):
+11 -9
View File
@@ -24,7 +24,7 @@ from django.core.exceptions import ValidationError
from django.db import transaction from django.db import transaction
from django.core.files import File from django.core.files import File
from converter.api import get_available_transformations_choices #from converter.api import get_available_transformations_choices
from converter.literals import DIMENSION_SEPARATOR from converter.literals import DIMENSION_SEPARATOR
from documents.models import Document, DocumentType from documents.models import Document, DocumentType
from documents.events import history_document_created from documents.events import history_document_created
@@ -34,7 +34,7 @@ from acls.utils import apply_default_acls
from .managers import SourceTransformationManager, SourceLogManager from .managers import SourceTransformationManager, SourceLogManager
from .literals import (SOURCE_CHOICES, SOURCE_CHOICES_PLURAL, from .literals import (SOURCE_CHOICES, SOURCE_CHOICES_PLURAL,
SOURCE_INTERACTIVE_UNCOMPRESS_CHOICES, SOURCE_CHOICE_WEB_FORM, SOURCE_INTERACTIVE_UNCOMPRESS_CHOICES, SOURCE_CHOICE_WEB_FORM,
SOURCE_CHOICE_STAGING, SOURCE_ICON_DISK, SOURCE_ICON_DRIVE, SOURCE_CHOICE_STAGING, DISK, DRIVE,
SOURCE_ICON_CHOICES, SOURCE_CHOICE_WATCH, SOURCE_UNCOMPRESS_CHOICES, SOURCE_ICON_CHOICES, SOURCE_CHOICE_WATCH, SOURCE_UNCOMPRESS_CHOICES,
SOURCE_UNCOMPRESS_CHOICE_Y, SOURCE_UNCOMPRESS_CHOICE_Y,
POP3_PORT, POP3_SSL_PORT, POP3_PORT, POP3_SSL_PORT,
@@ -42,11 +42,10 @@ from .literals import (SOURCE_CHOICES, SOURCE_CHOICES_PLURAL,
IMAP_PORT, IMAP_SSL_PORT, IMAP_PORT, IMAP_SSL_PORT,
SOURCE_CHOICE_IMAP_EMAIL, DEFAULT_IMAP_INTERVAL, SOURCE_CHOICE_IMAP_EMAIL, DEFAULT_IMAP_INTERVAL,
IMAP_DEFAULT_MAILBOX, IMAP_DEFAULT_MAILBOX,
SOURCE_CHOICE_LOCAL_SCANNER, SOURCE_ICON_IMAGES, SOURCE_CHOICE_LOCAL_SCANNER, IMAGES,
DEFAULT_LOCAL_SCANNER_FILE_FORMAT) DEFAULT_LOCAL_SCANNER_FILE_FORMAT)
from .compressed_file import CompressedFile, NotACompressedFile from .compressed_file import CompressedFile, NotACompressedFile
from .conf.settings import POP3_TIMEOUT #from .post_init import sources_scheduler
#from . import sources_scheduler
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -268,6 +267,8 @@ class POP3Email(EmailBaseModel):
source_type = SOURCE_CHOICE_POP3_EMAIL source_type = SOURCE_CHOICE_POP3_EMAIL
def fetch_mail(self): def fetch_mail(self):
from .settings import POP3_TIMEOUT
try: try:
last_check = SourceLog.objects.get_latest_for(self) last_check = SourceLog.objects.get_latest_for(self)
except SourceLog.DoesNotExist: except SourceLog.DoesNotExist:
@@ -391,7 +392,7 @@ class LocalScanner(InteractiveBaseModel):
is_interactive = True is_interactive = True
source_type = SOURCE_CHOICE_LOCAL_SCANNER source_type = SOURCE_CHOICE_LOCAL_SCANNER
default_icon = SOURCE_ICON_IMAGES default_icon = IMAGES
scanner_device = models.CharField(max_length=255, verbose_name=_(u'scanner device')) scanner_device = models.CharField(max_length=255, verbose_name=_(u'scanner device'))
scanner_description = models.CharField(max_length=255, verbose_name=_(u'scanner description')) scanner_description = models.CharField(max_length=255, verbose_name=_(u'scanner description'))
@@ -462,7 +463,7 @@ class LocalScanner(InteractiveBaseModel):
class StagingFolder(InteractiveBaseModel): class StagingFolder(InteractiveBaseModel):
is_interactive = True is_interactive = True
source_type = SOURCE_CHOICE_STAGING source_type = SOURCE_CHOICE_STAGING
default_icon = SOURCE_ICON_DRIVE default_icon = DRIVE
folder_path = models.CharField(max_length=255, verbose_name=_(u'folder path'), help_text=_(u'Server side filesystem path.')) folder_path = models.CharField(max_length=255, verbose_name=_(u'folder path'), help_text=_(u'Server side filesystem path.'))
preview_width = models.IntegerField(verbose_name=_(u'preview width'), help_text=_(u'Width value to be passed to the converter backend.')) preview_width = models.IntegerField(verbose_name=_(u'preview width'), help_text=_(u'Width value to be passed to the converter backend.'))
@@ -502,7 +503,7 @@ class SourceMetadata(models.Model):
class WebForm(InteractiveBaseModel): class WebForm(InteractiveBaseModel):
is_interactive = True is_interactive = True
source_type = SOURCE_CHOICE_WEB_FORM source_type = SOURCE_CHOICE_WEB_FORM
default_icon = SOURCE_ICON_DISK default_icon = DISK
uncompress = models.CharField(max_length=1, choices=SOURCE_INTERACTIVE_UNCOMPRESS_CHOICES, verbose_name=_(u'uncompress'), help_text=_(u'Whether to expand or not compressed archives.')) uncompress = models.CharField(max_length=1, choices=SOURCE_INTERACTIVE_UNCOMPRESS_CHOICES, verbose_name=_(u'uncompress'), help_text=_(u'Whether to expand or not compressed archives.'))
#Default path #Default path
@@ -578,7 +579,8 @@ class SourceTransformation(models.Model):
object_id = models.PositiveIntegerField() object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id') content_object = generic.GenericForeignKey('content_type', 'object_id')
order = models.PositiveIntegerField(default=0, blank=True, null=True, verbose_name=_(u'order'), db_index=True) order = models.PositiveIntegerField(default=0, blank=True, null=True, verbose_name=_(u'order'), db_index=True)
transformation = models.CharField(choices=get_available_transformations_choices(), max_length=128, verbose_name=_(u'transformation')) #transformation = models.CharField(choices=get_available_transformations_choices(), max_length=128, verbose_name=_(u'transformation'))
transformation = models.CharField(max_length=128, verbose_name=_(u'transformation'))
arguments = models.TextField(blank=True, null=True, verbose_name=_(u'arguments'), help_text=_(u'Use dictionaries to indentify arguments, example: %s') % u'{\'degrees\':90}', validators=[ArgumentsValidator()]) arguments = models.TextField(blank=True, null=True, verbose_name=_(u'arguments'), help_text=_(u'Use dictionaries to indentify arguments, example: %s') % u'{\'degrees\':90}', validators=[ArgumentsValidator()])
objects = models.Manager() objects = models.Manager()
+64
View File
@@ -0,0 +1,64 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from common.utils import encapsulate
from documents.models import Document
from navigation.api import (bind_links, register_model_list_columns,
register_sidebar_template)
from scheduler.api import LocalScheduler
#from .settings import EMAIL_PROCESSING_INTERVAL
from .links import (staging_file_delete, setup_sources,
setup_web_form_list, setup_staging_folder_list, setup_watch_folder_list,
setup_pop3_email_list, setup_imap_email_list, setup_source_edit,
setup_source_delete, setup_source_create, setup_source_log_list,
#setup_source_transformation_list, setup_source_transformation_create,
#setup_source_transformation_edit, setup_source_transformation_delete,
upload_version, document_create_multiple, setup_local_scanner_list,
setup_local_scanners_refresh)
from .models import (WebForm, StagingFolder, SourceTransformation,
WatchFolder, POP3Email, IMAPEmail, LocalScanner)
from .staging import StagingFile
from .tasks import task_fetch_pop3_emails, task_fetch_imap_emails
from .widgets import staging_file_thumbnail
bind_links([StagingFile], [staging_file_delete])
#bind_links([SourceTransformation], [setup_source_transformation_edit, setup_source_transformation_delete])
bind_links([LocalScanner, 'setup_local_scanner_list'], [setup_local_scanners_refresh], menu_name='secondary_menu')
bind_links(['setup_imap_email_list', 'setup_pop3_email_list', 'setup_web_form_list', 'setup_staging_folder_list', 'setup_watch_folder_list', 'setup_source_create', 'setup_local_scanner_list'], [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list, setup_local_scanner_list], menu_name='form_header')
bind_links([WebForm, StagingFolder, POP3Email, IMAPEmail, LocalScanner, 'setup_web_form_list', 'setup_staging_folder_list', 'setup_watch_folder_list', 'setup_source_create', 'setup_pop3_email_list', 'setup_imap_email_list', 'setup_local_scanner_list'], [setup_source_create], menu_name='secondary_menu')
bind_links([WebForm], [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list, setup_local_scanner_list], menu_name='form_header')
bind_links([WebForm], [setup_source_edit, setup_source_delete])
bind_links([StagingFolder], [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list, setup_local_scanner_list], menu_name='form_header')
bind_links([StagingFolder], [setup_source_edit, setup_source_delete])
bind_links([POP3Email], [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list, setup_local_scanner_list], menu_name='form_header')
bind_links([POP3Email], [setup_source_edit, setup_source_delete])
bind_links([POP3Email], [setup_source_log_list])
bind_links([IMAPEmail], [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list, setup_local_scanner_list], menu_name='form_header')
bind_links([IMAPEmail], [setup_source_edit, setup_source_delete])
bind_links([IMAPEmail], [setup_source_log_list])
bind_links([WatchFolder], [setup_web_form_list, setup_staging_folder_list, setup_watch_folder_list, setup_imap_email_list, setup_local_scanner_list], menu_name='form_header')
bind_links([WatchFolder], [setup_source_edit, setup_source_delete])
bind_links([LocalScanner], [setup_web_form_list, setup_staging_folder_list, setup_watch_folder_list, setup_imap_email_list, setup_local_scanner_list], menu_name='form_header')
bind_links([LocalScanner], [setup_source_edit, setup_source_delete])
register_sidebar_template([LocalScanner, 'setup_local_scanner_list'], 'scanner_list.html')
# Document version
bind_links(['document_version_list', 'upload_version', 'document_version_revert', 'document_version_text_compare', 'document_version_show_diff_text'], [upload_version], menu_name='sidebar')
#bind_links(['setup_source_transformation_create', 'setup_source_transformation_edit', 'setup_source_transformation_delete', 'setup_source_transformation_list'], [setup_source_transformation_create], menu_name='sidebar')
source_views = ['setup_web_form_list', 'setup_staging_folder_list', 'setup_watch_folder_list', 'setup_source_edit', 'setup_source_delete', 'setup_source_create', 'setup_source_transformation_list', 'setup_source_transformation_edit', 'setup_source_transformation_delete', 'setup_source_transformation_create']
register_model_list_columns(StagingFile, [
{'name':_(u'thumbnail'), 'attribute':
encapsulate(lambda x: staging_file_thumbnail(x))
},
])
#sources_scheduler = LocalScheduler('sources', _(u'Document sources'))
#sources_scheduler.add_interval_job('task_fetch_pop3_emails', _(u'Connects to the POP3 email sources and fetches the attached documents.'), task_fetch_pop3_emails, seconds=EMAIL_PROCESSING_INTERVAL)
#sources_scheduler.add_interval_job('task_fetch_imap_emails', _(u'Connects to the IMAP email sources and fetches the attached documents.'), task_fetch_imap_emails, seconds=EMAIL_PROCESSING_INTERVAL)
#sources_scheduler.start()
bind_links(['document_list_recent', 'document_list', 'document_create', 'document_create_multiple', 'upload_interactive', 'staging_file_delete'], [document_create_multiple], menu_name='secondary_menu')
bind_links([Document], [document_create_multiple], menu_name='secondary_menu')
@@ -1,15 +1,17 @@
"""Configuration options for the sources app""" from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from smart_settings.api import Setting, SettingNamespace from .icons import icon_source_list
from .links import setup_sources
namespace = SettingNamespace('sources', _(u'Sources'), module='sources.conf.settings') label = _(u'Sources')
description = _(u'Provides source from where to add documents.')
POP3_DEFAULT_TIMEOUT = 10 # for POP3 only not POP3_SSL dependencies = ['app_registry', 'icons', 'navigation', 'documents']
DEFAULT_EMAIL_PROCESSING_INTERVAL = 60 icon = icon_source_list
DEFAULT_POP3_EMAIL_LOG_COUNT = 10 # Max log entries to store setup_links = [setup_sources]
'''
Setting( Setting(
namespace=namespace, namespace=namespace,
name='POP3_TIMEOUT', name='POP3_TIMEOUT',
@@ -30,3 +32,4 @@ Setting(
global_name='SOURCES_LOG_SIZE', global_name='SOURCES_LOG_SIZE',
default=DEFAULT_POP3_EMAIL_LOG_COUNT, default=DEFAULT_POP3_EMAIL_LOG_COUNT,
) )
'''
+5 -4
View File
@@ -9,10 +9,10 @@ from django.core.exceptions import ObjectDoesNotExist
from django.utils.translation import ugettext from django.utils.translation import ugettext
from django.utils.encoding import smart_str from django.utils.encoding import smart_str
from documents.conf.settings import THUMBNAIL_SIZE from documents.settings import THUMBNAIL_SIZE
from mimetype.api import (get_icon_file_path, get_error_icon_file_path, #from mimetype.api import (get_icon_file_path, get_error_icon_file_path,
get_mimetype) from mimetype.api import get_mimetype
from converter.api import convert, cache_cleanup from converter.api import convert, cache_cleanup
from converter.exceptions import UnknownFileFormat, UnkownConvertError from converter.exceptions import UnknownFileFormat, UnkownConvertError
@@ -146,6 +146,7 @@ class StagingFile(object):
#return convert(self.filepath, size=size, cleanup_files=False, transformations=transformations) #return convert(self.filepath, size=size, cleanup_files=False, transformations=transformations)
except UnknownFileFormat: except UnknownFileFormat:
mimetype, encoding = get_mimetype(open(self.filepath, 'rb'), self.filepath) mimetype, encoding = get_mimetype(open(self.filepath, 'rb'), self.filepath)
return get_icon_file_path(mimetype) # TODO: Fix
return ''#get_icon_file_path(mimetype)
except UnkownConvertError: except UnkownConvertError:
return get_error_icon_file_path() return get_error_icon_file_path()
+1 -1
View File
@@ -5,7 +5,7 @@ import logging
from lock_manager import Lock, LockError from lock_manager import Lock, LockError
from .models import POP3Email, IMAPEmail from .models import POP3Email, IMAPEmail
from .conf.settings import POP3_TIMEOUT #from .settings import POP3_TIMEOUT
from .literals import IMAP_LOCK_TIMEOUT from .literals import IMAP_LOCK_TIMEOUT
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
+4 -3
View File
@@ -16,7 +16,7 @@ from django.core.exceptions import PermissionDenied
from documents.permissions import (PERMISSION_DOCUMENT_CREATE, from documents.permissions import (PERMISSION_DOCUMENT_CREATE,
PERMISSION_DOCUMENT_NEW_VERSION) PERMISSION_DOCUMENT_NEW_VERSION)
from documents.models import DocumentType, Document from documents.models import DocumentType, Document
from documents.conf.settings import THUMBNAIL_SIZE from documents.settings import THUMBNAIL_SIZE
from documents.exceptions import NewDocumentVersionNotAllowed from documents.exceptions import NewDocumentVersionNotAllowed
from documents.forms import DocumentTypeSelectForm from documents.forms import DocumentTypeSelectForm
from metadata.forms import MetadataFormSet, MetadataSelectionForm from metadata.forms import MetadataFormSet, MetadataSelectionForm
@@ -27,6 +27,7 @@ from common.widgets import two_state_template
import sendfile import sendfile
from acls.models import AccessEntry from acls.models import AccessEntry
from navigation import Link from navigation import Link
from icons import Icon
from .models import (WebForm, StagingFolder, SourceTransformation, from .models import (WebForm, StagingFolder, SourceTransformation,
WatchFolder, POP3Email, SourceLog, IMAPEmail, LocalScanner) WatchFolder, POP3Email, SourceLog, IMAPEmail, LocalScanner)
@@ -61,7 +62,7 @@ def get_tab_link_for_source(source, document=None):
view = u'upload_interactive' view = u'upload_interactive'
args = [u'"%s"' % source.source_type, source.pk] args = [u'"%s"' % source.source_type, source.pk]
return Link(text=source.title, view=view, args=args, sprite=source.icon, keep_query=True, conditional_highlight=return_function(source)) return Link(text=source.title, view=view, args=args, icon=Icon(source.icon), keep_query=True, conditional_highlight=return_function(source))
def get_active_tab_links(document=None): def get_active_tab_links(document=None):
@@ -524,7 +525,7 @@ def setup_source_list(request, source_type):
'list_object_variable_name': 'source', 'list_object_variable_name': 'source',
'source_type': source_type, 'source_type': source_type,
'extra_columns': [ 'extra_columns': [
{'name': _(u'Enabled'), 'attribute': encapsulate(lambda source: two_state_template(source.enabled))}, {'name': _(u'Enabled'), 'attribute': encapsulate(lambda source: two_state_template(source.enabled).display_small())},
], ],
} }
+21 -2
View File
@@ -5,6 +5,10 @@ from django.conf import settings
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from icons import Icon
from .icons import icon_cross
class FamFamRadioFieldRenderer(forms.widgets.RadioFieldRenderer): class FamFamRadioFieldRenderer(forms.widgets.RadioFieldRenderer):
def render(self): def render(self):
@@ -21,8 +25,23 @@ class FamFamRadioFieldRenderer(forms.widgets.RadioFieldRenderer):
return mark_safe(u'\n'.join(results)) return mark_safe(u'\n'.join(results))
class FamFamRadioSelect(forms.widgets.RadioSelect): class IconRadioFieldRenderer(forms.widgets.RadioFieldRenderer):
renderer = FamFamRadioFieldRenderer def render(self):
results = []
results.append(u'<ul>\n')
for w in self:
if w.choice_value:
icon_template = Icon(w.choice_value).display_small()
else:
icon_template = icon_cross.display_small()
results.append(u'<li class="undecorated_list">%s%s</li>' % (icon_template, force_unicode(w)))
results.append(u'\n</ul>')
return mark_safe(u'\n'.join(results))
class IconRadioSelect(forms.widgets.RadioSelect):
renderer = IconRadioFieldRenderer
def staging_file_thumbnail(staging_file): def staging_file_thumbnail(staging_file):
+1 -1
View File
@@ -182,7 +182,7 @@ INSTALLED_APPS = (
'main', 'main',
#'installation', #'installation',
'document_indexing', 'document_indexing',
#'sources', 'sources',
#'mailer', #'mailer',
#'document_acls', #'document_acls',
'history', 'history',
+1 -1
View File
@@ -24,7 +24,7 @@ urlpatterns = patterns('',
(r'^document_indexing/', include('document_indexing.urls')), (r'^document_indexing/', include('document_indexing.urls')),
(r'^history/', include('history.urls')), (r'^history/', include('history.urls')),
(r'^converter/', include('converter.urls')), (r'^converter/', include('converter.urls')),
#(r'^sources/', include('sources.urls')), (r'^sources/', include('sources.urls')),
(r'^acls/', include('acls.urls')), (r'^acls/', include('acls.urls')),
#(r'^document_acls/', include('document_acls.urls')), #(r'^document_acls/', include('document_acls.urls')),
(r'^api/', include('rest_api.urls')), (r'^api/', include('rest_api.urls')),