Initial set of update to convert the sources app to the new registry and icon system
This commit is contained in:
@@ -11,6 +11,11 @@ class IconSet(IconSetBase):
|
||||
available_sizes = ['32x32', '16x16']
|
||||
dictionary = {
|
||||
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',
|
||||
ARROW_TURN_RIGHT: 'arrow_turn_right.png',
|
||||
ARROW_TURN_LEFT: 'arrow_turn_left.png',
|
||||
@@ -49,14 +54,20 @@ class IconSet(IconSetBase):
|
||||
DELETE: 'delete.png',
|
||||
DISK: 'disk.png',
|
||||
DRAW_AIRBRUSH: 'draw_airbrush.png',
|
||||
DRIVE: 'drive.png',
|
||||
DRIVE_NETWORK: 'drive_network.png',
|
||||
DRIVE_USER: 'drive_user.png',
|
||||
DOCUMENT_SIGNATURE: 'document_signature.png',
|
||||
EMAIL: 'email.png',
|
||||
ERROR: 'error.png',
|
||||
FOLDER: 'folder.png',
|
||||
FOLDERS: 'folders.png',
|
||||
FOLDER_ADD: 'folder_add.png',
|
||||
FOLDER_CAMERA: 'folder_camera.png',
|
||||
FOLDER_EDIT: 'folder_edit.png',
|
||||
FOLDER_DELETE: 'folder_delete.png',
|
||||
FOLDER_GO: 'folder_go.png',
|
||||
FOLDER_MAGNIFY: 'folder_magnify.png',
|
||||
FOLDER_PAGE: 'folder_page.png',
|
||||
FOLDER_USER: 'folder_user.png',
|
||||
GROUP: 'group.png',
|
||||
@@ -68,6 +79,8 @@ class IconSet(IconSetBase):
|
||||
GROUP_MEMBERS: ['group.png', 'arrow_refresh.png'],
|
||||
HOURGLASS: 'hourglass.png',
|
||||
HOUSE: 'house.png',
|
||||
IMAGE: 'image.png',
|
||||
IMAGES: 'images.png',
|
||||
INDEX: 'index.png',
|
||||
INFORMATION: 'information.png',
|
||||
KEY: 'key.png',
|
||||
@@ -101,6 +114,7 @@ class IconSet(IconSetBase):
|
||||
NODE_TREE_DELETE: ['node-tree.png', 'delete.png'],
|
||||
PACKAGE: 'package.png',
|
||||
PAGE: 'page.png',
|
||||
PAGE_ADD: 'page_add.png',
|
||||
PAGE_COPY: 'page_copy.png',
|
||||
PAGE_GEAR: 'page_gear.png',
|
||||
PAGE_GO: 'page_go.png',
|
||||
@@ -123,6 +137,7 @@ class IconSet(IconSetBase):
|
||||
PILL: 'pill.png',
|
||||
PLUGIN: 'plugin.png',
|
||||
PRINTER: 'printer.png',
|
||||
PRINTER_EMPTY: 'printer_empty.png',
|
||||
RADIOACTIVITY: 'radioactivity.png',
|
||||
RAINBOW: 'rainbow.png',
|
||||
RESULTSET_FIRST: 'resultset_first.png',
|
||||
@@ -169,6 +184,7 @@ class IconSet(IconSetBase):
|
||||
WIZARD_DELETE: ['wizard.png', 'delete.png'],
|
||||
WIZARD_EDIT: ['wizard.png', 'pencil.png'],
|
||||
WIZARD_LIGHTNING: ['wizard.png', 'lightning.png'],
|
||||
WORLD: 'world.png',
|
||||
WORLD_GO: 'world_go.png',
|
||||
WRENCH: 'wrench.png',
|
||||
XHTML: 'xhtml.png',
|
||||
|
||||
@@ -5,6 +5,10 @@ DEFAULT_ICON_SET = 'fat_cow'
|
||||
ICONSETS_STATIC_DIRECTORY = 'icons'
|
||||
|
||||
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'
|
||||
ARROW_TURN_RIGHT = 'arrow_turn_right'
|
||||
ARROW_TURN_LEFT = 'arrow_turn_left'
|
||||
@@ -43,16 +47,22 @@ DATABASE_LIGHTNING = 'database_lightning'
|
||||
DELETE = 'delete'
|
||||
DISK = 'disk'
|
||||
DRAW_AIRBRUSH = 'draw_airbrush'
|
||||
DRIVE = 'drive'
|
||||
DRIVE_NETWORK = 'drive_network'
|
||||
DRIVE_USER = 'drive_user'
|
||||
DOCUMENT_SIGNATURE = 'document_signature'
|
||||
EMAIL = 'email'
|
||||
ERROR = 'error'
|
||||
FILE_EXTENSION_ERROR = 'file_extension_error'
|
||||
FILE_EXTENSION_UNKNOWN = 'file_extension_unknown'
|
||||
FOLDER = 'folder'
|
||||
FOLDERS = 'folders'
|
||||
FOLDER_ADD = 'folder_add'
|
||||
FOLDER_CAMERA = 'folder_camera'
|
||||
FOLDER_EDIT = 'folder_edit'
|
||||
FOLDER_DELETE = 'folder_delete'
|
||||
FOLDER_GO = 'folder_go'
|
||||
FOLDER_MAGNIFY = 'folder_magnify'
|
||||
FOLDER_PAGE = 'folder_page'
|
||||
FOLDER_USER = 'folder_user'
|
||||
GROUP = 'group'
|
||||
@@ -64,6 +74,8 @@ GROUP_LINK = 'group_link'
|
||||
GROUP_MEMBERS = 'group_members'
|
||||
HOURGLASS = 'hourglass'
|
||||
HOUSE = 'house'
|
||||
IMAGE = 'image'
|
||||
IMAGES = 'images'
|
||||
INDEX = 'index'
|
||||
INFORMATION = 'information'
|
||||
KEY = 'key'
|
||||
@@ -97,6 +109,7 @@ NODE_TREE_EDIT = 'node_tree_edit'
|
||||
NODE_TREE_DELETE = 'node_tree_delete'
|
||||
PACKAGE = 'package'
|
||||
PAGE = 'page'
|
||||
PAGE_ADD = 'page_add'
|
||||
PAGE_COPY = 'page_copy'
|
||||
PAGE_DELETE = 'page_delete'
|
||||
PAGE_EDIT = 'page_edit'
|
||||
@@ -119,6 +132,7 @@ PICTURES = 'pictures'
|
||||
PILL = 'pill'
|
||||
PLUGIN = 'plugin'
|
||||
PRINTER = 'printer'
|
||||
PRINTER_EMPTY = 'printer_empty'
|
||||
RADIOACTIVITY = 'radioactivity'
|
||||
RAINBOW = 'rainbow'
|
||||
RESULTSET_FIRST = 'resultset_first'
|
||||
@@ -165,6 +179,7 @@ WIZARD_ADD = 'wizard_add'
|
||||
WIZARD_DELETE = 'wizard_delete'
|
||||
WIZARD_EDIT = 'wizard_edit'
|
||||
WIZARD_LIGHTNING = 'wizard_lightning'
|
||||
WORLD = 'world'
|
||||
WORLD_GO = 'world_go'
|
||||
WRENCH = 'wrench'
|
||||
XHTML = 'xhtml'
|
||||
|
||||
@@ -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()])
|
||||
|
||||
@@ -8,7 +8,7 @@ from documents.forms import DocumentForm
|
||||
|
||||
from .models import (WebForm, StagingFolder, SourceTransformation,
|
||||
WatchFolder, POP3Email, IMAPEmail, LocalScanner)
|
||||
from .widgets import FamFamRadioSelect
|
||||
from .widgets import IconRadioSelect
|
||||
from .utils import validate_whitelist_blacklist
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ class WebFormForm(DocumentForm):
|
||||
class WebFormSetupForm(forms.ModelForm):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(WebFormSetupForm, self).__init__(*args, **kwargs)
|
||||
self.fields['icon'].widget = FamFamRadioSelect(
|
||||
self.fields['icon'].widget = IconRadioSelect(
|
||||
attrs=self.fields['icon'].widget.attrs,
|
||||
choices=self.fields['icon'].widget.choices,
|
||||
)
|
||||
@@ -86,7 +86,7 @@ class WebFormSetupForm(forms.ModelForm):
|
||||
class StagingFolderSetupForm(forms.ModelForm):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(StagingFolderSetupForm, self).__init__(*args, **kwargs)
|
||||
self.fields['icon'].widget = FamFamRadioSelect(
|
||||
self.fields['icon'].widget = IconRadioSelect(
|
||||
attrs=self.fields['icon'].widget.attrs,
|
||||
choices=self.fields['icon'].widget.choices,
|
||||
)
|
||||
@@ -110,7 +110,7 @@ class LocalScannerSetupForm(forms.ModelForm):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(LocalScannerSetupForm, self).__init__(*args, **kwargs)
|
||||
self.fields['icon'].widget = FamFamRadioSelect(
|
||||
self.fields['icon'].widget = IconRadioSelect(
|
||||
attrs=self.fields['icon'].widget.attrs,
|
||||
choices=self.fields['icon'].widget.choices,
|
||||
)
|
||||
|
||||
26
apps/sources/icons.py
Normal file
26
apps/sources/icons.py
Normal 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)
|
||||
@@ -5,33 +5,49 @@ from django.utils.translation import ugettext_lazy as _
|
||||
from navigation import Link
|
||||
from documents.permissions import (PERMISSION_DOCUMENT_NEW_VERSION,
|
||||
PERMISSION_DOCUMENT_CREATE)
|
||||
|
||||
from .permissions import (PERMISSION_SOURCES_SETUP_VIEW,
|
||||
PERMISSION_SOURCES_SETUP_EDIT, PERMISSION_SOURCES_SETUP_DELETE,
|
||||
PERMISSION_SOURCES_SETUP_CREATE)
|
||||
|
||||
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])
|
||||
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])
|
||||
from .icons import (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, 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'])
|
||||
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])
|
||||
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])
|
||||
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])
|
||||
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_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_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_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_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_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_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_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_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_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])
|
||||
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_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_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_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])
|
||||
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'])
|
||||
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])
|
||||
|
||||
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'])
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
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_SSL_PORT = 995
|
||||
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_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_DISK, _(u'Disk')),
|
||||
(SOURCE_ICON_DATABASE, _(u'Database')),
|
||||
(SOURCE_ICON_DRIVE, _(u'Drive')),
|
||||
(SOURCE_ICON_DRIVE_NETWORK, _(u'Network drive')),
|
||||
(SOURCE_ICON_DRIVE_USER, _(u'User drive')),
|
||||
(SOURCE_ICON_EMAIL, _(u'Envelope')),
|
||||
(SOURCE_ICON_FOLDER, _(u'Folder')),
|
||||
(SOURCE_ICON_IMAGES, _(u'Images')),
|
||||
(SOURCE_ICON_WORLD, _(u'World')),
|
||||
(SOURCE_ICON_PRINTER, _(u'Printer')),
|
||||
(SOURCE_ICON_PRINTER_EMPTY, _(u'Empty printer')),
|
||||
(DISK, _(u'Disk')),
|
||||
(DATABASE, _(u'Database')),
|
||||
(DRIVE, _(u'Drive')),
|
||||
(DRIVE_NETWORK, _(u'Network drive')),
|
||||
(DRIVE_USER, _(u'User drive')),
|
||||
(EMAIL, _(u'Envelope')),
|
||||
(FOLDER, _(u'Folder')),
|
||||
(IMAGES, _(u'Images')),
|
||||
(WORLD, _(u'World')),
|
||||
(PRINTER, _(u'Printer')),
|
||||
(PRINTER_EMPTY, _(u'Empty printer')),
|
||||
)
|
||||
|
||||
SOURCE_CHOICE_WEB_FORM = 'webform'
|
||||
@@ -77,3 +70,6 @@ SOURCE_CHOICES_PLURAL = (
|
||||
)
|
||||
|
||||
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
|
||||
|
||||
@@ -5,7 +5,7 @@ from ast import literal_eval
|
||||
from django.db import models
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
||||
from .conf.settings import LOG_SIZE
|
||||
#from .settings import LOG_SIZE
|
||||
|
||||
|
||||
class SourceTransformationManager(models.Manager):
|
||||
|
||||
@@ -24,7 +24,7 @@ from django.core.exceptions import ValidationError
|
||||
from django.db import transaction
|
||||
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 documents.models import Document, DocumentType
|
||||
from documents.events import history_document_created
|
||||
@@ -34,7 +34,7 @@ from acls.utils import apply_default_acls
|
||||
from .managers import SourceTransformationManager, SourceLogManager
|
||||
from .literals import (SOURCE_CHOICES, SOURCE_CHOICES_PLURAL,
|
||||
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_UNCOMPRESS_CHOICE_Y,
|
||||
POP3_PORT, POP3_SSL_PORT,
|
||||
@@ -42,11 +42,10 @@ from .literals import (SOURCE_CHOICES, SOURCE_CHOICES_PLURAL,
|
||||
IMAP_PORT, IMAP_SSL_PORT,
|
||||
SOURCE_CHOICE_IMAP_EMAIL, DEFAULT_IMAP_INTERVAL,
|
||||
IMAP_DEFAULT_MAILBOX,
|
||||
SOURCE_CHOICE_LOCAL_SCANNER, SOURCE_ICON_IMAGES,
|
||||
SOURCE_CHOICE_LOCAL_SCANNER, IMAGES,
|
||||
DEFAULT_LOCAL_SCANNER_FILE_FORMAT)
|
||||
from .compressed_file import CompressedFile, NotACompressedFile
|
||||
from .conf.settings import POP3_TIMEOUT
|
||||
#from . import sources_scheduler
|
||||
#from .post_init import sources_scheduler
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -268,6 +267,8 @@ class POP3Email(EmailBaseModel):
|
||||
source_type = SOURCE_CHOICE_POP3_EMAIL
|
||||
|
||||
def fetch_mail(self):
|
||||
from .settings import POP3_TIMEOUT
|
||||
|
||||
try:
|
||||
last_check = SourceLog.objects.get_latest_for(self)
|
||||
except SourceLog.DoesNotExist:
|
||||
@@ -391,7 +392,7 @@ class LocalScanner(InteractiveBaseModel):
|
||||
|
||||
is_interactive = True
|
||||
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_description = models.CharField(max_length=255, verbose_name=_(u'scanner description'))
|
||||
@@ -462,7 +463,7 @@ class LocalScanner(InteractiveBaseModel):
|
||||
class StagingFolder(InteractiveBaseModel):
|
||||
is_interactive = True
|
||||
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.'))
|
||||
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):
|
||||
is_interactive = True
|
||||
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.'))
|
||||
#Default path
|
||||
@@ -578,7 +579,8 @@ class SourceTransformation(models.Model):
|
||||
object_id = models.PositiveIntegerField()
|
||||
content_object = generic.GenericForeignKey('content_type', 'object_id')
|
||||
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()])
|
||||
|
||||
objects = models.Manager()
|
||||
|
||||
64
apps/sources/post_init.py
Normal file
64
apps/sources/post_init.py
Normal 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 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')
|
||||
|
||||
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
|
||||
label = _(u'Sources')
|
||||
description = _(u'Provides source from where to add documents.')
|
||||
dependencies = ['app_registry', 'icons', 'navigation', 'documents']
|
||||
icon = icon_source_list
|
||||
setup_links = [setup_sources]
|
||||
|
||||
'''
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='POP3_TIMEOUT',
|
||||
@@ -30,3 +32,4 @@ Setting(
|
||||
global_name='SOURCES_LOG_SIZE',
|
||||
default=DEFAULT_POP3_EMAIL_LOG_COUNT,
|
||||
)
|
||||
'''
|
||||
@@ -9,10 +9,10 @@ from django.core.exceptions import ObjectDoesNotExist
|
||||
from django.utils.translation import ugettext
|
||||
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,
|
||||
get_mimetype)
|
||||
#from mimetype.api import (get_icon_file_path, get_error_icon_file_path,
|
||||
from mimetype.api import get_mimetype
|
||||
from converter.api import convert, cache_cleanup
|
||||
from converter.exceptions import UnknownFileFormat, UnkownConvertError
|
||||
|
||||
@@ -146,6 +146,7 @@ class StagingFile(object):
|
||||
#return convert(self.filepath, size=size, cleanup_files=False, transformations=transformations)
|
||||
except UnknownFileFormat:
|
||||
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:
|
||||
return get_error_icon_file_path()
|
||||
|
||||
@@ -5,7 +5,7 @@ import logging
|
||||
from lock_manager import Lock, LockError
|
||||
|
||||
from .models import POP3Email, IMAPEmail
|
||||
from .conf.settings import POP3_TIMEOUT
|
||||
#from .settings import POP3_TIMEOUT
|
||||
from .literals import IMAP_LOCK_TIMEOUT
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -16,7 +16,7 @@ from django.core.exceptions import PermissionDenied
|
||||
from documents.permissions import (PERMISSION_DOCUMENT_CREATE,
|
||||
PERMISSION_DOCUMENT_NEW_VERSION)
|
||||
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.forms import DocumentTypeSelectForm
|
||||
from metadata.forms import MetadataFormSet, MetadataSelectionForm
|
||||
@@ -27,6 +27,7 @@ from common.widgets import two_state_template
|
||||
import sendfile
|
||||
from acls.models import AccessEntry
|
||||
from navigation import Link
|
||||
from icons import Icon
|
||||
|
||||
from .models import (WebForm, StagingFolder, SourceTransformation,
|
||||
WatchFolder, POP3Email, SourceLog, IMAPEmail, LocalScanner)
|
||||
@@ -61,7 +62,7 @@ def get_tab_link_for_source(source, document=None):
|
||||
view = u'upload_interactive'
|
||||
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):
|
||||
@@ -524,7 +525,7 @@ def setup_source_list(request, source_type):
|
||||
'list_object_variable_name': 'source',
|
||||
'source_type': source_type,
|
||||
'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())},
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,10 @@ from django.conf import settings
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.core.urlresolvers import reverse
|
||||
|
||||
from icons import Icon
|
||||
|
||||
from .icons import icon_cross
|
||||
|
||||
|
||||
class FamFamRadioFieldRenderer(forms.widgets.RadioFieldRenderer):
|
||||
def render(self):
|
||||
@@ -21,8 +25,23 @@ class FamFamRadioFieldRenderer(forms.widgets.RadioFieldRenderer):
|
||||
return mark_safe(u'\n'.join(results))
|
||||
|
||||
|
||||
class FamFamRadioSelect(forms.widgets.RadioSelect):
|
||||
renderer = FamFamRadioFieldRenderer
|
||||
class IconRadioFieldRenderer(forms.widgets.RadioFieldRenderer):
|
||||
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):
|
||||
|
||||
@@ -182,7 +182,7 @@ INSTALLED_APPS = (
|
||||
'main',
|
||||
#'installation',
|
||||
'document_indexing',
|
||||
#'sources',
|
||||
'sources',
|
||||
#'mailer',
|
||||
#'document_acls',
|
||||
'history',
|
||||
|
||||
2
urls.py
2
urls.py
@@ -24,7 +24,7 @@ urlpatterns = patterns('',
|
||||
(r'^document_indexing/', include('document_indexing.urls')),
|
||||
(r'^history/', include('history.urls')),
|
||||
(r'^converter/', include('converter.urls')),
|
||||
#(r'^sources/', include('sources.urls')),
|
||||
(r'^sources/', include('sources.urls')),
|
||||
(r'^acls/', include('acls.urls')),
|
||||
#(r'^document_acls/', include('document_acls.urls')),
|
||||
(r'^api/', include('rest_api.urls')),
|
||||
|
||||
Reference in New Issue
Block a user