Misc cleanups, PEP8, conding conventions, spaces, unused imports, False/True comparisons
This commit is contained in:
@@ -1,17 +1,14 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import imp
|
|
||||||
import sys
|
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.utils.translation import ugettext_lazy as _
|
|
||||||
from django.utils.importlib import import_module
|
from django.utils.importlib import import_module
|
||||||
|
|
||||||
|
from bootstrap.classes import BootstrapModel, Cleanup
|
||||||
|
from navigation.api import register_top_menu
|
||||||
from project_setup.api import register_setup
|
from project_setup.api import register_setup
|
||||||
from project_tools.api import register_tool
|
from project_tools.api import register_tool
|
||||||
from navigation.api import register_top_menu
|
|
||||||
from bootstrap.classes import Cleanup, BootstrapModel
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@@ -33,7 +30,7 @@ class App(object):
|
|||||||
else:
|
else:
|
||||||
if not getattr(registration, 'disabled', False):
|
if not getattr(registration, 'disabled', False):
|
||||||
app = App()
|
app = App()
|
||||||
app.name=app_name
|
app.name = app_name
|
||||||
# If there are not error go ahead with the stored app instance
|
# If there are not error go ahead with the stored app instance
|
||||||
app.label = getattr(registration, 'label', app_name)
|
app.label = getattr(registration, 'label', app_name)
|
||||||
app.description = getattr(registration, 'description', u'')
|
app.description = getattr(registration, 'description', u'')
|
||||||
|
|||||||
@@ -2,23 +2,21 @@ from __future__ import absolute_import
|
|||||||
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
from acls.api import class_permissions
|
||||||
|
from documents.models import Document
|
||||||
|
from history.api import register_history_type
|
||||||
from navigation.api import (register_links, register_top_menu,
|
from navigation.api import (register_links, register_top_menu,
|
||||||
register_multi_item_links, register_sidebar_template)
|
register_multi_item_links, register_sidebar_template)
|
||||||
from scheduler.api import register_interval_job
|
from scheduler.api import register_interval_job
|
||||||
|
|
||||||
from documents.models import Document
|
from .events import (HISTORY_DOCUMENT_CHECKED_OUT, HISTORY_DOCUMENT_CHECKED_IN,
|
||||||
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
HISTORY_DOCUMENT_AUTO_CHECKED_IN, HISTORY_DOCUMENT_FORCEFUL_CHECK_IN)
|
||||||
from acls.api import class_permissions
|
from .links import checkout_list, checkout_document, checkout_info, checkin_document
|
||||||
from history.api import register_history_type
|
from .models import DocumentCheckout
|
||||||
|
|
||||||
from .permissions import (PERMISSION_DOCUMENT_CHECKOUT,
|
from .permissions import (PERMISSION_DOCUMENT_CHECKOUT,
|
||||||
PERMISSION_DOCUMENT_CHECKIN, PERMISSION_DOCUMENT_CHECKIN_OVERRIDE,
|
PERMISSION_DOCUMENT_CHECKIN, PERMISSION_DOCUMENT_CHECKIN_OVERRIDE,
|
||||||
PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE)
|
PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE)
|
||||||
from .links import checkout_list, checkout_document, checkout_info, checkin_document
|
|
||||||
from .models import DocumentCheckout
|
|
||||||
from .tasks import task_check_expired_check_outs
|
from .tasks import task_check_expired_check_outs
|
||||||
from .events import (HISTORY_DOCUMENT_CHECKED_OUT, HISTORY_DOCUMENT_CHECKED_IN,
|
|
||||||
HISTORY_DOCUMENT_AUTO_CHECKED_IN, HISTORY_DOCUMENT_FORCEFUL_CHECK_IN)
|
|
||||||
|
|
||||||
|
|
||||||
def initialize_document_checkout_extra_methods():
|
def initialize_document_checkout_extra_methods():
|
||||||
@@ -39,7 +37,7 @@ class_permissions(Document, [
|
|||||||
PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE
|
PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE
|
||||||
])
|
])
|
||||||
|
|
||||||
CHECK_EXPIRED_CHECK_OUTS_INTERVAL=60 # Lowest check out expiration allowed
|
CHECK_EXPIRED_CHECK_OUTS_INTERVAL = 60 # Lowest check out expiration allowed
|
||||||
register_interval_job('task_check_expired_check_outs', _(u'Check expired check out documents and checks them in.'), task_check_expired_check_outs, seconds=CHECK_EXPIRED_CHECK_OUTS_INTERVAL)
|
register_interval_job('task_check_expired_check_outs', _(u'Check expired check out documents and checks them in.'), task_check_expired_check_outs, seconds=CHECK_EXPIRED_CHECK_OUTS_INTERVAL)
|
||||||
initialize_document_checkout_extra_methods()
|
initialize_document_checkout_extra_methods()
|
||||||
register_history_type(HISTORY_DOCUMENT_CHECKED_OUT)
|
register_history_type(HISTORY_DOCUMENT_CHECKED_OUT)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ class DocumentNotCheckedOut(Exception):
|
|||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class DocumentAlreadyCheckedOut(Exception):
|
class DocumentAlreadyCheckedOut(Exception):
|
||||||
"""
|
"""
|
||||||
Raised when trying to checkout an already checkedout document
|
Raised when trying to checkout an already checkedout document
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.utils.translation import ugettext_lazy as _
|
|
||||||
|
|
||||||
from .models import DocumentCheckout
|
|
||||||
from .exceptions import DocumentAlreadyCheckedOut
|
from .exceptions import DocumentAlreadyCheckedOut
|
||||||
|
from .models import DocumentCheckout
|
||||||
from .widgets import SplitTimeDeltaField
|
from .widgets import SplitTimeDeltaField
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ from __future__ import absolute_import
|
|||||||
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
|
||||||
|
|
||||||
from .permissions import (PERMISSION_DOCUMENT_CHECKOUT, PERMISSION_DOCUMENT_CHECKIN, PERMISSION_DOCUMENT_CHECKIN_OVERRIDE)
|
from .permissions import (PERMISSION_DOCUMENT_CHECKOUT, PERMISSION_DOCUMENT_CHECKIN, PERMISSION_DOCUMENT_CHECKIN_OVERRIDE)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,18 +6,17 @@ import logging
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
from django.core.exceptions import PermissionDenied
|
from django.core.exceptions import PermissionDenied
|
||||||
|
|
||||||
|
from acls.models import AccessEntry
|
||||||
from documents.models import Document
|
from documents.models import Document
|
||||||
from history.api import create_history
|
from history.api import create_history
|
||||||
from permissions.models import Permission
|
from permissions.models import Permission
|
||||||
from acls.models import AccessEntry
|
|
||||||
|
|
||||||
from .exceptions import DocumentNotCheckedOut
|
|
||||||
from .literals import STATE_CHECKED_OUT, STATE_CHECKED_IN
|
|
||||||
from .events import (HISTORY_DOCUMENT_CHECKED_IN, HISTORY_DOCUMENT_AUTO_CHECKED_IN,
|
from .events import (HISTORY_DOCUMENT_CHECKED_IN, HISTORY_DOCUMENT_AUTO_CHECKED_IN,
|
||||||
HISTORY_DOCUMENT_FORCEFUL_CHECK_IN)
|
HISTORY_DOCUMENT_FORCEFUL_CHECK_IN)
|
||||||
|
from .exceptions import DocumentNotCheckedOut
|
||||||
|
from .literals import STATE_CHECKED_OUT, STATE_CHECKED_IN
|
||||||
from .permissions import PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE
|
from .permissions import PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE
|
||||||
|
|
||||||
from history.api import create_history
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
@@ -98,4 +97,3 @@ class DocumentCheckoutManager(models.Manager):
|
|||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,18 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
import logging
|
|
||||||
import datetime
|
import datetime
|
||||||
|
import logging
|
||||||
|
|
||||||
from django.db import models, IntegrityError
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
|
||||||
from django.contrib.contenttypes.models import ContentType
|
|
||||||
from django.contrib.contenttypes import generic
|
from django.contrib.contenttypes import generic
|
||||||
|
from django.contrib.contenttypes.models import ContentType
|
||||||
|
from django.db import models
|
||||||
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from documents.models import Document
|
from documents.models import Document
|
||||||
from history.api import create_history
|
from history.api import create_history
|
||||||
|
|
||||||
from .managers import DocumentCheckoutManager
|
|
||||||
from .exceptions import DocumentAlreadyCheckedOut
|
|
||||||
from .events import HISTORY_DOCUMENT_CHECKED_OUT
|
from .events import HISTORY_DOCUMENT_CHECKED_OUT
|
||||||
|
from .managers import DocumentCheckoutManager
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@@ -31,9 +30,9 @@ class DocumentCheckout(models.Model):
|
|||||||
|
|
||||||
block_new_version = models.BooleanField(default=True, verbose_name=_(u'block new version upload'), help_text=_(u'Do not allow new version of this document to be uploaded.'))
|
block_new_version = models.BooleanField(default=True, verbose_name=_(u'block new version upload'), help_text=_(u'Do not allow new version of this document to be uploaded.'))
|
||||||
|
|
||||||
#block_metadata
|
# block_metadata
|
||||||
#block_editing
|
# block_editing
|
||||||
#block tag add/remove
|
# block tag add/remove
|
||||||
|
|
||||||
objects = DocumentCheckoutManager()
|
objects = DocumentCheckoutManager()
|
||||||
|
|
||||||
|
|||||||
@@ -10,4 +10,3 @@ PERMISSION_DOCUMENT_CHECKOUT = Permission.objects.register(namespace, 'checkout_
|
|||||||
PERMISSION_DOCUMENT_CHECKIN = Permission.objects.register(namespace, 'checkin_document', _(u'Check in documents'))
|
PERMISSION_DOCUMENT_CHECKIN = Permission.objects.register(namespace, 'checkin_document', _(u'Check in documents'))
|
||||||
PERMISSION_DOCUMENT_CHECKIN_OVERRIDE = Permission.objects.register(namespace, 'checkin_document_override', _(u'Forcefully check in documents'))
|
PERMISSION_DOCUMENT_CHECKIN_OVERRIDE = Permission.objects.register(namespace, 'checkin_document_override', _(u'Forcefully check in documents'))
|
||||||
PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE = Permission.objects.register(namespace, 'checkout_restrictions_override', _(u'Allow overriding check out restrictions'))
|
PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE = Permission.objects.register(namespace, 'checkout_restrictions_override', _(u'Allow overriding check out restrictions'))
|
||||||
|
|
||||||
|
|||||||
@@ -1,27 +1,26 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.contrib import messages
|
||||||
|
from django.core.exceptions import PermissionDenied
|
||||||
|
from django.core.urlresolvers import reverse
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
from django.shortcuts import render_to_response, get_object_or_404
|
from django.shortcuts import render_to_response, get_object_or_404
|
||||||
from django.template import RequestContext
|
from django.template import RequestContext
|
||||||
from django.contrib import messages
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from django.core.urlresolvers import reverse
|
|
||||||
from django.core.exceptions import PermissionDenied
|
|
||||||
|
|
||||||
from documents.views import document_list
|
|
||||||
from documents.models import Document
|
from documents.models import Document
|
||||||
|
from documents.views import document_list
|
||||||
|
|
||||||
from permissions.models import Permission
|
|
||||||
from acls.models import AccessEntry
|
from acls.models import AccessEntry
|
||||||
from common.utils import get_object_name
|
from common.utils import get_object_name
|
||||||
from common.utils import encapsulate
|
from common.utils import encapsulate
|
||||||
|
from permissions.models import Permission
|
||||||
|
|
||||||
|
from .exceptions import DocumentAlreadyCheckedOut, DocumentNotCheckedOut
|
||||||
|
from .forms import DocumentCheckoutForm
|
||||||
from .models import DocumentCheckout
|
from .models import DocumentCheckout
|
||||||
from .permissions import (PERMISSION_DOCUMENT_CHECKOUT, PERMISSION_DOCUMENT_CHECKIN,
|
from .permissions import (PERMISSION_DOCUMENT_CHECKOUT, PERMISSION_DOCUMENT_CHECKIN,
|
||||||
PERMISSION_DOCUMENT_CHECKIN_OVERRIDE)
|
PERMISSION_DOCUMENT_CHECKIN_OVERRIDE)
|
||||||
from .forms import DocumentCheckoutForm
|
|
||||||
from .exceptions import DocumentAlreadyCheckedOut, DocumentNotCheckedOut
|
|
||||||
from .literals import STATE_CHECKED_OUT, STATE_CHECKED_IN, STATE_ICONS, STATE_LABELS
|
|
||||||
from .widgets import checkout_widget
|
from .widgets import checkout_widget
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ from __future__ import absolute_import
|
|||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.utils.translation import ugettext_lazy as _
|
|
||||||
from django.utils.safestring import mark_safe
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core import validators
|
from django.core import validators
|
||||||
|
from django.utils.safestring import mark_safe
|
||||||
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from .literals import STATE_CHECKED_OUT, STATE_CHECKED_IN, STATE_ICONS, STATE_LABELS
|
from .literals import STATE_ICONS, STATE_LABELS
|
||||||
|
|
||||||
|
|
||||||
def checkout_widget(document):
|
def checkout_widget(document):
|
||||||
@@ -27,9 +27,9 @@ class SplitDeltaWidget(forms.widgets.MultiWidget):
|
|||||||
"""
|
"""
|
||||||
def __init__(self, attrs=None):
|
def __init__(self, attrs=None):
|
||||||
widgets = (
|
widgets = (
|
||||||
forms.widgets.TextInput(attrs={'maxlength': 3, 'style':'width: 5em;', 'placeholder': _(u'Days')}),
|
forms.widgets.TextInput(attrs={'maxlength': 3, 'style': 'width: 5em;', 'placeholder': _(u'Days')}),
|
||||||
forms.widgets.TextInput(attrs={'maxlength': 4, 'style':'width: 5em;', 'placeholder': _(u'Hours')}),
|
forms.widgets.TextInput(attrs={'maxlength': 4, 'style': 'width: 5em;', 'placeholder': _(u'Hours')}),
|
||||||
forms.widgets.TextInput(attrs={'maxlength': 5, 'style':'width: 5em;', 'placeholder': _(u'Minutes')}),
|
forms.widgets.TextInput(attrs={'maxlength': 5, 'style': 'width: 5em;', 'placeholder': _(u'Minutes')}),
|
||||||
)
|
)
|
||||||
super(SplitDeltaWidget, self).__init__(widgets, attrs)
|
super(SplitDeltaWidget, self).__init__(widgets, attrs)
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
|
from hkp import Key as KeyServerKey
|
||||||
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from navigation.api import register_links
|
from navigation.api import register_links
|
||||||
from project_setup.api import register_setup
|
from project_setup.api import register_setup
|
||||||
from hkp import Key as KeyServerKey
|
|
||||||
|
|
||||||
from .api import Key
|
from .api import Key
|
||||||
from .permissions import (PERMISSION_KEY_VIEW, PERMISSION_KEY_DELETE,
|
from .permissions import (PERMISSION_KEY_VIEW, PERMISSION_KEY_DELETE,
|
||||||
@@ -18,7 +19,7 @@ key_query = {'text': _(u'query keyservers'), 'view': 'key_query', 'famfam': 'zoo
|
|||||||
key_receive = {'text': _(u'import'), 'view': 'key_receive', 'args': 'object.keyid', 'famfam': 'key_add', 'keep_query': True, 'permissions': [PERMISSION_KEY_RECEIVE]}
|
key_receive = {'text': _(u'import'), 'view': 'key_receive', 'args': 'object.keyid', 'famfam': 'key_add', 'keep_query': True, 'permissions': [PERMISSION_KEY_RECEIVE]}
|
||||||
key_setup = {'text': _(u'key management'), 'view': 'key_public_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW], 'children_view_regex': [r'^key_']}
|
key_setup = {'text': _(u'key management'), 'view': 'key_public_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW], 'children_view_regex': [r'^key_']}
|
||||||
|
|
||||||
#register_links(['key_delete', 'key_private_list', 'key_public_list', 'key_query'], [private_keys, public_keys, key_query], menu_name='sidebar')
|
# register_links(['key_delete', 'key_private_list', 'key_public_list', 'key_query'], [private_keys, public_keys, key_query], menu_name='sidebar')
|
||||||
register_links(['key_delete', 'key_public_list', 'key_query'], [public_keys, key_query], menu_name='sidebar')
|
register_links(['key_delete', 'key_public_list', 'key_query'], [public_keys, key_query], menu_name='sidebar')
|
||||||
|
|
||||||
register_links(Key, [key_delete])
|
register_links(Key, [key_delete])
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import tempfile
|
|
||||||
import os
|
import os
|
||||||
|
import tempfile
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from cStringIO import StringIO
|
from cStringIO import StringIO
|
||||||
except ImportError:
|
except ImportError:
|
||||||
from StringIO import StringIO
|
from StringIO import StringIO
|
||||||
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
|
||||||
|
|
||||||
from hkp import KeyServer
|
from hkp import KeyServer
|
||||||
import gnupg
|
import gnupg
|
||||||
|
|
||||||
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from .exceptions import (GPGVerificationError, GPGSigningError,
|
from .exceptions import (GPGVerificationError, GPGSigningError,
|
||||||
GPGDecryptionError, KeyDeleteError, KeyGenerationError,
|
GPGDecryptionError, KeyDeleteError, KeyGenerationError,
|
||||||
KeyFetchingError, KeyDoesNotExist, KeyImportError)
|
KeyFetchingError, KeyDoesNotExist, KeyImportError)
|
||||||
@@ -110,7 +110,7 @@ class Key(object):
|
|||||||
keys = gpg.gpg.list_keys(secret=secret)
|
keys = gpg.gpg.list_keys(secret=secret)
|
||||||
key = next((key for key in keys if key['keyid'] == key_id), None)
|
key = next((key for key in keys if key['keyid'] == key_id), None)
|
||||||
if not key:
|
if not key:
|
||||||
if search_keyservers and secret == False:
|
if search_keyservers and secret is False:
|
||||||
try:
|
try:
|
||||||
gpg.receive_key(key_id)
|
gpg.receive_key(key_id)
|
||||||
return Key(gpg, key_id)
|
return Key(gpg, key_id)
|
||||||
|
|||||||
@@ -2,21 +2,21 @@ from __future__ import absolute_import
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.contrib import messages
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
from django.shortcuts import render_to_response
|
from django.shortcuts import render_to_response
|
||||||
from django.template import RequestContext
|
from django.template import RequestContext
|
||||||
from django.contrib import messages
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from permissions.models import Permission
|
|
||||||
from common.utils import encapsulate
|
from common.utils import encapsulate
|
||||||
|
from permissions.models import Permission
|
||||||
|
|
||||||
from .api import Key
|
from .api import Key
|
||||||
from .runtime import gpg
|
from .exceptions import KeyImportError
|
||||||
from .exceptions import KeyFetchingError, KeyImportError
|
|
||||||
from .forms import KeySearchForm
|
from .forms import KeySearchForm
|
||||||
from .permissions import (PERMISSION_KEY_VIEW, PERMISSION_KEY_DELETE,
|
from .permissions import (PERMISSION_KEY_VIEW, PERMISSION_KEY_DELETE,
|
||||||
PERMISSION_KEYSERVER_QUERY, PERMISSION_KEY_RECEIVE)
|
PERMISSION_KEYSERVER_QUERY, PERMISSION_KEY_RECEIVE)
|
||||||
|
from .runtime import gpg
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ def cascade_eval(eval_dict, document, template_node, parent_index_instance=None)
|
|||||||
else:
|
else:
|
||||||
if result:
|
if result:
|
||||||
index_instance, created = IndexInstanceNode.objects.get_or_create(index_template_node=template_node, value=result, parent=parent_index_instance)
|
index_instance, created = IndexInstanceNode.objects.get_or_create(index_template_node=template_node, value=result, parent=parent_index_instance)
|
||||||
#if created:
|
# if created:
|
||||||
try:
|
try:
|
||||||
fs_create_index_directory(index_instance)
|
fs_create_index_directory(index_instance)
|
||||||
except Exception, exc:
|
except Exception, exc:
|
||||||
|
|||||||
@@ -9,8 +9,7 @@ from .permissions import (PERMISSION_DOCUMENT_INDEXING_VIEW,
|
|||||||
PERMISSION_DOCUMENT_INDEXING_SETUP,
|
PERMISSION_DOCUMENT_INDEXING_SETUP,
|
||||||
PERMISSION_DOCUMENT_INDEXING_CREATE,
|
PERMISSION_DOCUMENT_INDEXING_CREATE,
|
||||||
PERMISSION_DOCUMENT_INDEXING_EDIT,
|
PERMISSION_DOCUMENT_INDEXING_EDIT,
|
||||||
PERMISSION_DOCUMENT_INDEXING_DELETE
|
PERMISSION_DOCUMENT_INDEXING_DELETE)
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def is_not_root_node(context):
|
def is_not_root_node(context):
|
||||||
@@ -38,6 +37,6 @@ index_list = {'text': _(u'index list'), 'view': 'index_list', 'famfam': 'tab', '
|
|||||||
index_parent = {'text': _(u'go up one level'), 'view': 'index_instance_node_view', 'args': 'object.parent.pk', 'famfam': 'arrow_up', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW], 'dont_mark_active': True, 'condition': is_not_instance_root_node}
|
index_parent = {'text': _(u'go up one level'), 'view': 'index_instance_node_view', 'args': 'object.parent.pk', 'famfam': 'arrow_up', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW], 'dont_mark_active': True, 'condition': is_not_instance_root_node}
|
||||||
document_index_list = {'text': _(u'indexes'), 'view': 'document_index_list', 'args': 'object.pk', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW, PERMISSION_DOCUMENT_VIEW]}
|
document_index_list = {'text': _(u'indexes'), 'view': 'document_index_list', 'args': 'object.pk', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW, PERMISSION_DOCUMENT_VIEW]}
|
||||||
|
|
||||||
document_index_main_menu_link={'text': _('indexes'), 'famfam': 'tab', 'view': 'index_list', 'children_view_regex': [r'^index_[i,l]']}
|
document_index_main_menu_link = {'text': _('indexes'), 'famfam': 'tab', 'view': 'index_list', 'children_view_regex': [r'^index_[i,l]']}
|
||||||
|
|
||||||
rebuild_index_instances = {'text': _('rebuild indexes'), 'view': 'rebuild_index_instances', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES], 'description': _(u'Deletes and creates from scratch all the document indexes.')}
|
rebuild_index_instances = {'text': _('rebuild indexes'), 'view': 'rebuild_index_instances', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES], 'description': _(u'Deletes and creates from scratch all the document indexes.')}
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ from __future__ import absolute_import
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from mptt.models import MPTTModel
|
|
||||||
from mptt.fields import TreeForeignKey
|
from mptt.fields import TreeForeignKey
|
||||||
|
from mptt.models import MPTTModel
|
||||||
|
|
||||||
from documents.models import Document, DocumentType
|
from documents.models import Document, DocumentType
|
||||||
|
|
||||||
@@ -68,7 +68,7 @@ class IndexTemplateNode(MPTTModel):
|
|||||||
parent = TreeForeignKey('self', null=True, blank=True, related_name='index_template_node')
|
parent = TreeForeignKey('self', null=True, blank=True, related_name='index_template_node')
|
||||||
index = models.ForeignKey(Index, verbose_name=_(u'index'))
|
index = models.ForeignKey(Index, verbose_name=_(u'index'))
|
||||||
expression = models.CharField(max_length=128, verbose_name=_(u'indexing expression'), help_text=_(u'Enter a python string expression to be evaluated.'))
|
expression = models.CharField(max_length=128, verbose_name=_(u'indexing expression'), help_text=_(u'Enter a python string expression to be evaluated.'))
|
||||||
# % available_indexing_functions_string)
|
# % available_indexing_functions_string)
|
||||||
enabled = models.BooleanField(default=True, verbose_name=_(u'enabled'), help_text=_(u'Causes this node to be visible and updated when document data changes.'))
|
enabled = models.BooleanField(default=True, verbose_name=_(u'enabled'), help_text=_(u'Causes this node to be visible and updated when document data changes.'))
|
||||||
link_documents = models.BooleanField(default=False, verbose_name=_(u'link documents'), help_text=_(u'Check this option to have this node act as a container for documents and not as a parent for further nodes.'))
|
link_documents = models.BooleanField(default=False, verbose_name=_(u'link documents'), help_text=_(u'Check this option to have this node act as a container for documents and not as a parent for further nodes.'))
|
||||||
|
|
||||||
|
|||||||
@@ -1,24 +1,24 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.conf import settings
|
||||||
|
from django.contrib import messages
|
||||||
|
from django.core.exceptions import PermissionDenied
|
||||||
|
from django.core.urlresolvers import reverse
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
from django.shortcuts import render_to_response, get_object_or_404
|
from django.shortcuts import render_to_response, get_object_or_404
|
||||||
from django.template import RequestContext
|
from django.template import RequestContext
|
||||||
from django.contrib import messages
|
|
||||||
from django.core.urlresolvers import reverse
|
|
||||||
from django.core.exceptions import PermissionDenied
|
|
||||||
from django.utils.html import mark_safe
|
from django.utils.html import mark_safe
|
||||||
from django.conf import settings
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from permissions.models import Permission
|
from acls.models import AccessEntry
|
||||||
|
from acls.utils import apply_default_acls
|
||||||
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
||||||
from documents.models import Document
|
from documents.models import Document
|
||||||
from documents.views import document_list
|
from documents.views import document_list
|
||||||
from common.utils import encapsulate, generate_choices_w_labels
|
from common.utils import encapsulate, generate_choices_w_labels
|
||||||
from common.views import assign_remove
|
from common.views import assign_remove
|
||||||
from common.widgets import two_state_template
|
from common.widgets import two_state_template
|
||||||
from acls.utils import apply_default_acls
|
from permissions.models import Permission
|
||||||
from acls.models import AccessEntry
|
|
||||||
|
|
||||||
from .forms import IndexForm, IndexTemplateNodeForm
|
from .forms import IndexForm, IndexTemplateNodeForm
|
||||||
from .models import (Index, IndexTemplateNode, IndexInstanceNode)
|
from .models import (Index, IndexTemplateNode, IndexInstanceNode)
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ def get_breadcrumbs(index_instance, simple=False, single_link=False, include_cou
|
|||||||
# Return the entire breadcrumb path as a single HTML anchor
|
# Return the entire breadcrumb path as a single HTML anchor
|
||||||
simple = True
|
simple = True
|
||||||
|
|
||||||
#result.append(get_instance_link(index_instance.get_root(), simple=simple))
|
# result.append(get_instance_link(index_instance.get_root(), simple=simple))
|
||||||
|
|
||||||
for instance in index_instance.get_ancestors():
|
for instance in index_instance.get_ancestors():
|
||||||
result.append(get_instance_link(instance, simple=simple))
|
result.append(get_instance_link(instance, simple=simple))
|
||||||
|
|||||||
@@ -7,9 +7,8 @@ try:
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
from StringIO import StringIO
|
from StringIO import StringIO
|
||||||
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
# from django.db.models.signals import post_save
|
||||||
#from django.db.models.signals import post_save
|
# from django.dispatch import receiver
|
||||||
#from django.dispatch import receiver
|
|
||||||
|
|
||||||
from acls.api import class_permissions
|
from acls.api import class_permissions
|
||||||
from documents.models import Document, DocumentVersion
|
from documents.models import Document, DocumentVersion
|
||||||
@@ -48,19 +47,19 @@ def document_pre_open_hook(descriptor, instance):
|
|||||||
# Doing this single DB lookup avoids trying to decrypt non signed
|
# Doing this single DB lookup avoids trying to decrypt non signed
|
||||||
# files always, which could result in slow down for big non signed
|
# files always, which could result in slow down for big non signed
|
||||||
# files
|
# files
|
||||||
#descriptor.seek(0)
|
# descriptor.seek(0)
|
||||||
return descriptor
|
return descriptor
|
||||||
|
|
||||||
#try:
|
# try:
|
||||||
# result = gpg.decrypt_file(descriptor, close_descriptor=False)
|
# result = gpg.decrypt_file(descriptor, close_descriptor=False)
|
||||||
# # gpg return a string, turn it into a file like object
|
# # gpg return a string, turn it into a file like object
|
||||||
#except GPGDecryptionError:
|
# except GPGDecryptionError:
|
||||||
# # At least return the original raw content
|
# # At least return the original raw content
|
||||||
# descriptor.seek(0)
|
# descriptor.seek(0)
|
||||||
# return descriptor
|
# return descriptor
|
||||||
#else:
|
# else:
|
||||||
# descriptor.close()
|
# descriptor.close()
|
||||||
# return StringIO(result.data)
|
# return StringIO(result.data)
|
||||||
|
|
||||||
|
|
||||||
def document_post_save_hook(instance):
|
def document_post_save_hook(instance):
|
||||||
@@ -68,12 +67,12 @@ def document_post_save_hook(instance):
|
|||||||
document_signature, created = DocumentVersionSignature.objects.get_or_create(
|
document_signature, created = DocumentVersionSignature.objects.get_or_create(
|
||||||
document_version=instance.latest_version,
|
document_version=instance.latest_version,
|
||||||
)
|
)
|
||||||
#DocumentVersionSignature.objects.update_signed_state(instance.document)
|
# DocumentVersionSignature.objects.update_signed_state(instance.document)
|
||||||
|
|
||||||
#@receiver(post_save, dispatch_uid='check_document_signature_state', sender=DocumentVersion)
|
# @receiver(post_save, dispatch_uid='check_document_signature_state', sender=DocumentVersion)
|
||||||
#def check_document_signature_state(sender, instance, **kwargs):
|
# def check_document_signature_state(sender, instance, **kwargs):
|
||||||
# if kwargs.get('created', False):
|
# if kwargs.get('created', False):
|
||||||
# DocumentVersionSignature.objects.signature_state(instance.document)
|
# DocumentVersionSignature.objects.signature_state(instance.document)
|
||||||
|
|
||||||
|
|
||||||
register_links(Document, [document_verify], menu_name='form_header')
|
register_links(Document, [document_verify], menu_name='form_header')
|
||||||
|
|||||||
@@ -1,9 +1,5 @@
|
|||||||
from django import forms
|
from django import forms
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
#from django.utils.translation import ugettext
|
|
||||||
#from django.core.urlresolvers import reverse
|
|
||||||
#from django.utils.safestring import mark_safe
|
|
||||||
#from django.conf import settings
|
|
||||||
|
|
||||||
|
|
||||||
class DetachedSignatureForm(forms.Form):
|
class DetachedSignatureForm(forms.Form):
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ def has_embedded_signature(context):
|
|||||||
|
|
||||||
|
|
||||||
def doesnt_have_detached_signature(context):
|
def doesnt_have_detached_signature(context):
|
||||||
return DocumentVersionSignature.objects.has_detached_signature(context['object']) == False
|
return DocumentVersionSignature.objects.has_detached_signature(context['object']) is False
|
||||||
|
|
||||||
|
|
||||||
document_signature_delete = {'text': _(u'delete signature'), 'view': 'document_signature_delete', 'args': 'object.pk', 'famfam': 'pencil_delete', 'permissions': [PERMISSION_SIGNATURE_DELETE], 'conditional_disable': doesnt_have_detached_signature}
|
document_signature_delete = {'text': _(u'delete signature'), 'view': 'document_signature_delete', 'args': 'object.pk', 'famfam': 'pencil_delete', 'permissions': [PERMISSION_SIGNATURE_DELETE], 'conditional_disable': doesnt_have_detached_signature}
|
||||||
|
|||||||
@@ -8,9 +8,7 @@ from django.utils.safestring import mark_safe
|
|||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from django.utils.translation import ugettext
|
from django.utils.translation import ugettext
|
||||||
|
|
||||||
from common.conf.settings import DEFAULT_PAPER_SIZE, DEFAULT_PAGE_ORIENTATION
|
|
||||||
from common.forms import DetailForm
|
from common.forms import DetailForm
|
||||||
from common.literals import PAGE_SIZE_CHOICES, PAGE_ORIENTATION_CHOICES
|
|
||||||
from common.widgets import TextAreaDiv
|
from common.widgets import TextAreaDiv
|
||||||
|
|
||||||
from .models import (Document, DocumentType,
|
from .models import (Document, DocumentType,
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class DocumentTestCase(unittest.TestCase):
|
|||||||
self.failUnlessEqual(self.document.page_count, 47)
|
self.failUnlessEqual(self.document.page_count, 47)
|
||||||
|
|
||||||
self.failUnlessEqual(self.document.latest_version.get_formated_version(), '1.0')
|
self.failUnlessEqual(self.document.latest_version.get_formated_version(), '1.0')
|
||||||
#self.failUnlessEqual(self.document.has_detached_signature(), False)
|
# self.failUnlessEqual(self.document.has_detached_signature(), False)
|
||||||
|
|
||||||
file_object = open(os.path.join(settings.PROJECT_ROOT, 'contrib', 'mayan_11_1.pdf.gpg'))
|
file_object = open(os.path.join(settings.PROJECT_ROOT, 'contrib', 'mayan_11_1.pdf.gpg'))
|
||||||
new_version_data = {
|
new_version_data = {
|
||||||
@@ -55,9 +55,9 @@ class DocumentTestCase(unittest.TestCase):
|
|||||||
file_object.close()
|
file_object.close()
|
||||||
|
|
||||||
self.failUnlessEqual(self.document.latest_version.get_formated_version(), '2.0')
|
self.failUnlessEqual(self.document.latest_version.get_formated_version(), '2.0')
|
||||||
#self.failUnlessEqual(self.document.has_detached_signature(), False)
|
# self.failUnlessEqual(self.document.has_detached_signature(), False)
|
||||||
|
|
||||||
#self.failUnlessEqual(self.document.verify_signature().status, SIGNATURE_STATE_VALID)
|
# self.failUnlessEqual(self.document.verify_signature().status, SIGNATURE_STATE_VALID)
|
||||||
|
|
||||||
new_version_data = {
|
new_version_data = {
|
||||||
'comment': 'test comment 2',
|
'comment': 'test comment 2',
|
||||||
|
|||||||
@@ -35,8 +35,7 @@ from permissions.models import Permission
|
|||||||
|
|
||||||
from .events import HISTORY_DOCUMENT_EDITED
|
from .events import HISTORY_DOCUMENT_EDITED
|
||||||
from .conf.settings import (PREVIEW_SIZE, STORAGE_BACKEND, ZOOM_PERCENT_STEP,
|
from .conf.settings import (PREVIEW_SIZE, STORAGE_BACKEND, ZOOM_PERCENT_STEP,
|
||||||
ZOOM_MAX_LEVEL, ZOOM_MIN_LEVEL, ROTATION_STEP, PRINT_SIZE,
|
ZOOM_MAX_LEVEL, ZOOM_MIN_LEVEL, ROTATION_STEP, RECENT_COUNT)
|
||||||
RECENT_COUNT)
|
|
||||||
from .forms import (DocumentForm_edit, DocumentPropertiesForm,
|
from .forms import (DocumentForm_edit, DocumentPropertiesForm,
|
||||||
DocumentPreviewForm, DocumentPageForm,
|
DocumentPreviewForm, DocumentPageForm,
|
||||||
DocumentPageTransformationForm, DocumentContentForm,
|
DocumentPageTransformationForm, DocumentContentForm,
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
|
||||||
|
|
||||||
from acls import ACLS_EDIT_ACL, ACLS_VIEW_ACL
|
from acls import ACLS_EDIT_ACL, ACLS_VIEW_ACL
|
||||||
from acls.api import class_permissions
|
from acls.api import class_permissions
|
||||||
from documents.models import Document
|
from documents.models import Document
|
||||||
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
|
||||||
from navigation.api import register_links, register_sidebar_template
|
from navigation.api import register_links, register_sidebar_template
|
||||||
from project_setup.api import register_setup
|
from project_setup.api import register_setup
|
||||||
|
|
||||||
@@ -15,8 +12,7 @@ from .links import (smart_link_instance_view_link, smart_link_instances_for_docu
|
|||||||
smart_link_condition_edit, smart_link_condition_delete, smart_link_acl_list)
|
smart_link_condition_edit, smart_link_condition_delete, smart_link_acl_list)
|
||||||
from .models import SmartLink, SmartLinkCondition
|
from .models import SmartLink, SmartLinkCondition
|
||||||
from .permissions import (PERMISSION_SMART_LINK_VIEW,
|
from .permissions import (PERMISSION_SMART_LINK_VIEW,
|
||||||
PERMISSION_SMART_LINK_CREATE, PERMISSION_SMART_LINK_DELETE,
|
PERMISSION_SMART_LINK_DELETE, PERMISSION_SMART_LINK_EDIT)
|
||||||
PERMISSION_SMART_LINK_EDIT)
|
|
||||||
|
|
||||||
register_links(Document, [smart_link_instances_for_document], menu_name='form_header')
|
register_links(Document, [smart_link_instances_for_document], menu_name='form_header')
|
||||||
|
|
||||||
|
|||||||
@@ -2,12 +2,11 @@ from __future__ import absolute_import
|
|||||||
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from acls import ACLS_EDIT_ACL, ACLS_VIEW_ACL
|
from acls import ACLS_VIEW_ACL
|
||||||
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
||||||
|
|
||||||
from .permissions import (PERMISSION_SMART_LINK_VIEW,
|
from .permissions import (PERMISSION_SMART_LINK_CREATE,
|
||||||
PERMISSION_SMART_LINK_CREATE, PERMISSION_SMART_LINK_DELETE,
|
PERMISSION_SMART_LINK_DELETE, PERMISSION_SMART_LINK_EDIT)
|
||||||
PERMISSION_SMART_LINK_EDIT)
|
|
||||||
|
|
||||||
smart_link_instance_view_link = {'text': _(u'smart links actions'), 'view': 'smart_link_instance_view', 'famfam': 'page_link', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
smart_link_instance_view_link = {'text': _(u'smart links actions'), 'view': 'smart_link_instance_view', 'famfam': 'page_link', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||||
smart_link_instances_for_document = {'text': _(u'smart links'), 'view': 'smart_link_instances_for_document', 'args': 'object.pk', 'famfam': 'page_link', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
smart_link_instances_for_document = {'text': _(u'smart links'), 'view': 'smart_link_instances_for_document', 'args': 'object.pk', 'famfam': 'page_link', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||||
|
|||||||
@@ -2,29 +2,29 @@ from __future__ import absolute_import
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
|
from django.core.exceptions import PermissionDenied
|
||||||
|
from django.core.urlresolvers import reverse
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
from django.shortcuts import get_object_or_404, render_to_response
|
from django.shortcuts import get_object_or_404, render_to_response
|
||||||
from django.core.urlresolvers import reverse
|
|
||||||
from django.template import RequestContext
|
from django.template import RequestContext
|
||||||
from django.core.exceptions import PermissionDenied
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
from acls.views import acl_list_for
|
||||||
|
from acls.models import AccessEntry
|
||||||
|
from acls.utils import apply_default_acls
|
||||||
from common.utils import encapsulate
|
from common.utils import encapsulate
|
||||||
from common.widgets import two_state_template
|
from common.widgets import two_state_template
|
||||||
from documents.models import Document
|
from documents.models import Document
|
||||||
from documents.views import document_list
|
from documents.views import document_list
|
||||||
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
||||||
from permissions.models import Permission
|
from permissions.models import Permission
|
||||||
from acls.views import acl_list_for
|
|
||||||
from acls.models import AccessEntry
|
|
||||||
from acls.utils import apply_default_acls
|
|
||||||
|
|
||||||
from .models import SmartLink, SmartLinkCondition
|
from . import smart_link_instance_view_link
|
||||||
from .conf.settings import SHOW_EMPTY_SMART_LINKS
|
from .conf.settings import SHOW_EMPTY_SMART_LINKS
|
||||||
from .forms import (SmartLinkInstanceForm, SmartLinkForm,
|
from .forms import (SmartLinkInstanceForm, SmartLinkForm,
|
||||||
SmartLinkConditionForm)
|
SmartLinkConditionForm)
|
||||||
from . import smart_link_instance_view_link
|
from .models import SmartLink, SmartLinkCondition
|
||||||
from .permissions import (PERMISSION_SMART_LINK_VIEW,
|
from .permissions import (PERMISSION_SMART_LINK_VIEW,
|
||||||
PERMISSION_SMART_LINK_CREATE, PERMISSION_SMART_LINK_DELETE,
|
PERMISSION_SMART_LINK_CREATE, PERMISSION_SMART_LINK_DELETE,
|
||||||
PERMISSION_SMART_LINK_EDIT)
|
PERMISSION_SMART_LINK_EDIT)
|
||||||
@@ -33,7 +33,7 @@ logger = logging.getLogger(__name__)
|
|||||||
|
|
||||||
|
|
||||||
def smart_link_action(request):
|
def smart_link_action(request):
|
||||||
#Permission.objects.check_permissions(request.user, [PERMISSION_SMART_LINK_VIEW])
|
# Permission.objects.check_permissions(request.user, [PERMISSION_SMART_LINK_VIEW])
|
||||||
|
|
||||||
action = request.GET.get('action', None)
|
action = request.GET.get('action', None)
|
||||||
|
|
||||||
@@ -76,8 +76,8 @@ def smart_link_instances_for_document(request, document_id):
|
|||||||
messages.warning(request, _(u'Smart link query error: %s' % error))
|
messages.warning(request, _(u'Smart link query error: %s' % error))
|
||||||
|
|
||||||
if not SHOW_EMPTY_SMART_LINKS:
|
if not SHOW_EMPTY_SMART_LINKS:
|
||||||
#If SHOW_EMPTY_SMART_LINKS is False, remove empty groups from
|
# If SHOW_EMPTY_SMART_LINKS is False, remove empty groups from
|
||||||
#dictionary
|
# dictionary
|
||||||
smart_link_instances = dict([(group, data) for group, data in smart_link_instances.items() if data['documents']])
|
smart_link_instances = dict([(group, data) for group, data in smart_link_instances.items() if data['documents']])
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -178,7 +178,7 @@ def smart_link_edit(request, smart_link_pk):
|
|||||||
form = SmartLinkForm(instance=smart_link)
|
form = SmartLinkForm(instance=smart_link)
|
||||||
|
|
||||||
return render_to_response('generic_form.html', {
|
return render_to_response('generic_form.html', {
|
||||||
#'navigation_object_name': 'smart_link',
|
# 'navigation_object_name': 'smart_link',
|
||||||
'object': smart_link,
|
'object': smart_link,
|
||||||
'form': form,
|
'form': form,
|
||||||
'title': _(u'Edit smart link: %s') % smart_link
|
'title': _(u'Edit smart link: %s') % smart_link
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ from django.utils.translation import ugettext_lazy as _
|
|||||||
from acls.api import class_permissions
|
from acls.api import class_permissions
|
||||||
from common.utils import encapsulate
|
from common.utils import encapsulate
|
||||||
from documents.models import Document, DocumentType
|
from documents.models import Document, DocumentType
|
||||||
from documents.permissions import PERMISSION_DOCUMENT_TYPE_EDIT
|
|
||||||
from navigation.api import (register_links, register_multi_item_links,
|
from navigation.api import (register_links, register_multi_item_links,
|
||||||
register_sidebar_template, register_model_list_columns)
|
register_sidebar_template, register_model_list_columns)
|
||||||
from project_setup.api import register_setup
|
from project_setup.api import register_setup
|
||||||
@@ -20,11 +19,7 @@ from .links import (metadata_edit, metadata_view, metadata_multiple_edit,
|
|||||||
from .models import MetadataType, MetadataSet
|
from .models import MetadataType, MetadataSet
|
||||||
from .permissions import (PERMISSION_METADATA_DOCUMENT_EDIT,
|
from .permissions import (PERMISSION_METADATA_DOCUMENT_EDIT,
|
||||||
PERMISSION_METADATA_DOCUMENT_ADD, PERMISSION_METADATA_DOCUMENT_REMOVE,
|
PERMISSION_METADATA_DOCUMENT_ADD, PERMISSION_METADATA_DOCUMENT_REMOVE,
|
||||||
PERMISSION_METADATA_DOCUMENT_VIEW, PERMISSION_METADATA_TYPE_EDIT,
|
PERMISSION_METADATA_DOCUMENT_VIEW)
|
||||||
PERMISSION_METADATA_TYPE_CREATE, PERMISSION_METADATA_TYPE_DELETE,
|
|
||||||
PERMISSION_METADATA_TYPE_VIEW, PERMISSION_METADATA_SET_EDIT,
|
|
||||||
PERMISSION_METADATA_SET_CREATE, PERMISSION_METADATA_SET_DELETE,
|
|
||||||
PERMISSION_METADATA_SET_VIEW)
|
|
||||||
|
|
||||||
register_links(['metadata_add', 'metadata_edit', 'metadata_remove', 'metadata_view'], [metadata_add, metadata_edit, metadata_remove], menu_name='sidebar')
|
register_links(['metadata_add', 'metadata_edit', 'metadata_remove', 'metadata_view'], [metadata_add, metadata_edit, metadata_remove], menu_name='sidebar')
|
||||||
register_links(Document, [metadata_view], menu_name='form_header')
|
register_links(Document, [metadata_view], menu_name='form_header')
|
||||||
@@ -52,7 +47,7 @@ class_permissions(Document, [
|
|||||||
])
|
])
|
||||||
|
|
||||||
register_model_list_columns(Document, [
|
register_model_list_columns(Document, [
|
||||||
{'name':_(u'metadata'), 'attribute':
|
{'name': _(u'metadata'), 'attribute':
|
||||||
encapsulate(lambda x: get_metadata_string(x))
|
encapsulate(lambda x: get_metadata_string(x))
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
|
|||||||
@@ -17,13 +17,13 @@ def decode_metadata_from_url(url_dict):
|
|||||||
'value': {}
|
'value': {}
|
||||||
}
|
}
|
||||||
metadata_list = []
|
metadata_list = []
|
||||||
#Match out of order metadata_type ids with metadata values from request
|
# Match out of order metadata_type ids with metadata values from request
|
||||||
for key, value in url_dict.items():
|
for key, value in url_dict.items():
|
||||||
if 'metadata' in key:
|
if 'metadata' in key:
|
||||||
index, element = key[8:].split('_')
|
index, element = key[8:].split('_')
|
||||||
metadata_dict[element][index] = value
|
metadata_dict[element][index] = value
|
||||||
|
|
||||||
#Convert the nested dictionary into a list of id+values dictionaries
|
# Convert the nested dictionary into a list of id+values dictionaries
|
||||||
for order, identifier in metadata_dict['id'].items():
|
for order, identifier in metadata_dict['id'].items():
|
||||||
if order in metadata_dict['value'].keys():
|
if order in metadata_dict['value'].keys():
|
||||||
metadata_list.append({
|
metadata_list.append({
|
||||||
@@ -74,7 +74,7 @@ def save_metadata(metadata_dict, document, create=False):
|
|||||||
|
|
||||||
# unquote_plus handles utf-8?!?
|
# unquote_plus handles utf-8?!?
|
||||||
# http://stackoverflow.com/questions/4382875/handling-iri-in-django
|
# http://stackoverflow.com/questions/4382875/handling-iri-in-django
|
||||||
#.decode('utf-8')
|
# .decode('utf-8')
|
||||||
if document_metadata:
|
if document_metadata:
|
||||||
document_metadata.value = unquote_plus(metadata_dict['value'])
|
document_metadata.value = unquote_plus(metadata_dict['value'])
|
||||||
document_metadata.save()
|
document_metadata.save()
|
||||||
|
|||||||
@@ -14,20 +14,20 @@ class MetadataForm(forms.Form):
|
|||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(MetadataForm, self).__init__(*args, **kwargs)
|
super(MetadataForm, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
#Set form fields initial values
|
# Set form fields initial values
|
||||||
if 'initial' in kwargs:
|
if 'initial' in kwargs:
|
||||||
self.metadata_type = kwargs['initial'].pop('metadata_type', None)
|
self.metadata_type = kwargs['initial'].pop('metadata_type', None)
|
||||||
#self.document_type = kwargs['initial'].pop('document_type', None)
|
# self.document_type = kwargs['initial'].pop('document_type', None)
|
||||||
|
|
||||||
# FIXME:
|
# FIXME:
|
||||||
#required = self.document_type.documenttypemetadatatype_set.get(metadata_type=self.metadata_type).required
|
# required = self.document_type.documenttypemetadatatype_set.get(metadata_type=self.metadata_type).required
|
||||||
required = False
|
required = False
|
||||||
required_string = u''
|
required_string = u''
|
||||||
if required:
|
if required:
|
||||||
self.fields['value'].required = True
|
self.fields['value'].required = True
|
||||||
required_string = ' (%s)' % _(u'required')
|
required_string = ' (%s)' % _(u'required')
|
||||||
else:
|
else:
|
||||||
#TODO: FIXME: not working correctly
|
# TODO: FIXME: not working correctly
|
||||||
self.fields['value'].required = False
|
self.fields['value'].required = False
|
||||||
|
|
||||||
self.fields['name'].initial = '%s%s' % ((self.metadata_type.title if self.metadata_type.title else self.metadata_type.name), required_string)
|
self.fields['name'].initial = '%s%s' % ((self.metadata_type.title if self.metadata_type.title else self.metadata_type.name), required_string)
|
||||||
@@ -71,7 +71,7 @@ class MetadataRemoveForm(MetadataForm):
|
|||||||
|
|
||||||
class MetadataSelectionForm(forms.Form):
|
class MetadataSelectionForm(forms.Form):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
#document_type = kwargs.pop('document_type', None)
|
# document_type = kwargs.pop('document_type', None)
|
||||||
super(MetadataSelectionForm, self).__init__(*args, **kwargs)
|
super(MetadataSelectionForm, self).__init__(*args, **kwargs)
|
||||||
document_type = getattr(self, 'initial', {}).get('document_type', None)
|
document_type = getattr(self, 'initial', {}).get('document_type', None)
|
||||||
if document_type:
|
if document_type:
|
||||||
@@ -86,7 +86,7 @@ class MetadataSelectionForm(forms.Form):
|
|||||||
queryset=MetadataSet.objects.all(),
|
queryset=MetadataSet.objects.all(),
|
||||||
label=_(u'Metadata sets'),
|
label=_(u'Metadata sets'),
|
||||||
required=False,
|
required=False,
|
||||||
#widget=forms.widgets.SelectMultiple(attrs={'size': 10, 'class': 'choice_form'})
|
# widget=forms.widgets.SelectMultiple(attrs={'size': 10, 'class': 'choice_form'})
|
||||||
widget=ScrollableCheckboxSelectMultiple(attrs={'size': 10, 'class': 'choice_form'})
|
widget=ScrollableCheckboxSelectMultiple(attrs={'size': 10, 'class': 'choice_form'})
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -94,7 +94,7 @@ class MetadataSelectionForm(forms.Form):
|
|||||||
queryset=MetadataType.objects.all(),
|
queryset=MetadataType.objects.all(),
|
||||||
label=_(u'Metadata'),
|
label=_(u'Metadata'),
|
||||||
required=False,
|
required=False,
|
||||||
#widget=forms.widgets.SelectMultiple(attrs={'size': 10, 'class': 'choice_form'})
|
# widget=forms.widgets.SelectMultiple(attrs={'size': 10, 'class': 'choice_form'})
|
||||||
widget=ScrollableCheckboxSelectMultiple(attrs={'size': 10, 'class': 'choice_form'})
|
widget=ScrollableCheckboxSelectMultiple(attrs={'size': 10, 'class': 'choice_form'})
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ class MetadataType(models.Model):
|
|||||||
lookup = models.TextField(blank=True, null=True,
|
lookup = models.TextField(blank=True, null=True,
|
||||||
verbose_name=_(u'lookup'),
|
verbose_name=_(u'lookup'),
|
||||||
help_text=_(u'Enter a string to be evaluated. Example: [user.get_full_name() for user in User.objects.all()].%s') % available_models_string)
|
help_text=_(u'Enter a string to be evaluated. Example: [user.get_full_name() for user in User.objects.all()].%s') % available_models_string)
|
||||||
#TODO: datatype?
|
# TODO: datatype?
|
||||||
|
|
||||||
objects = MetadataTypeManager()
|
objects = MetadataTypeManager()
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@ class MetadataSetItem(models.Model):
|
|||||||
"""
|
"""
|
||||||
metadata_set = models.ForeignKey(MetadataSet, verbose_name=_(u'metadata set'))
|
metadata_set = models.ForeignKey(MetadataSet, verbose_name=_(u'metadata set'))
|
||||||
metadata_type = models.ForeignKey(MetadataType, verbose_name=_(u'metadata type'))
|
metadata_type = models.ForeignKey(MetadataType, verbose_name=_(u'metadata type'))
|
||||||
#required = models.BooleanField(default=True, verbose_name=_(u'required'))
|
# required = models.BooleanField(default=True, verbose_name=_(u'required'))
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return unicode(self.metadata_type)
|
return unicode(self.metadata_type)
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ def metadata_add(request, document_id=None, document_id_list=None):
|
|||||||
form = AddMetadataForm()
|
form = AddMetadataForm()
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
#'form_display_mode_table': True,
|
# 'form_display_mode_table': True,
|
||||||
'form': form,
|
'form': form,
|
||||||
'next': next,
|
'next': next,
|
||||||
}
|
}
|
||||||
@@ -309,7 +309,7 @@ def setup_metadata_type_edit(request, metadatatype_id):
|
|||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
form = MetadataTypeForm(instance=metadata_type, data=request.POST)
|
form = MetadataTypeForm(instance=metadata_type, data=request.POST)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
#folder.title = form.cleaned_data['title']
|
# folder.title = form.cleaned_data['title']
|
||||||
try:
|
try:
|
||||||
form.save()
|
form.save()
|
||||||
messages.success(request, _(u'Metadata type edited successfully'))
|
messages.success(request, _(u'Metadata type edited successfully'))
|
||||||
@@ -510,7 +510,6 @@ def setup_metadata_set_delete(request, metadata_set_id):
|
|||||||
'metadata_set': metadata_set, 'error': e})
|
'metadata_set': metadata_set, 'error': e})
|
||||||
return HttpResponseRedirect(previous)
|
return HttpResponseRedirect(previous)
|
||||||
|
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
'object_name': _(u'metadata set'),
|
'object_name': _(u'metadata set'),
|
||||||
'delete_view': True,
|
'delete_view': True,
|
||||||
|
|||||||
@@ -1,15 +1,16 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
|
||||||
from django.db import transaction, DatabaseError
|
from django.db import transaction, DatabaseError
|
||||||
from navigation.api import register_links
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from common import about_view, license_view
|
from common import about_view, license_view
|
||||||
|
from navigation.api import register_links
|
||||||
|
|
||||||
from .models import RegistrationSingleton
|
from .models import RegistrationSingleton
|
||||||
|
|
||||||
|
|
||||||
def is_not_registered(context):
|
def is_not_registered(context):
|
||||||
return RegistrationSingleton.registration_state() == False
|
return RegistrationSingleton.registration_state() is False
|
||||||
|
|
||||||
|
|
||||||
form_view = {'text': _('Registration'), 'view': 'form_view', 'famfam': 'telephone', 'condition': is_not_registered}
|
form_view = {'text': _('Registration'), 'view': 'form_view', 'famfam': 'telephone', 'condition': is_not_registered}
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
from django.core.urlresolvers import reverse, NoReverseMatch
|
from django.template import Library
|
||||||
from django.template import (TemplateSyntaxError, Library,
|
|
||||||
VariableDoesNotExist, Node, Variable)
|
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
|
||||||
from ..models import RegistrationSingleton
|
from ..models import RegistrationSingleton
|
||||||
|
|||||||
@@ -4,12 +4,11 @@ import atexit
|
|||||||
import logging
|
import logging
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from .runtime import scheduler, lockdown
|
|
||||||
|
|
||||||
from project_tools.api import register_tool
|
from project_tools.api import register_tool
|
||||||
|
|
||||||
from .links import job_list
|
from .links import job_list
|
||||||
from .literals import SHUTDOWN_COMMANDS
|
from .literals import SHUTDOWN_COMMANDS
|
||||||
|
from .runtime import scheduler, lockdown
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
from .runtime import scheduler
|
|
||||||
from .exceptions import AlreadyScheduled
|
from .exceptions import AlreadyScheduled
|
||||||
|
from .runtime import scheduler
|
||||||
|
|
||||||
registered_jobs = {}
|
registered_jobs = {}
|
||||||
|
|
||||||
|
|||||||
@@ -3,13 +3,12 @@ from __future__ import absolute_import
|
|||||||
from django.shortcuts import render_to_response
|
from django.shortcuts import render_to_response
|
||||||
from django.template import RequestContext
|
from django.template import RequestContext
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from django.core.exceptions import PermissionDenied
|
|
||||||
|
|
||||||
from permissions.models import Permission
|
|
||||||
from common.utils import encapsulate
|
from common.utils import encapsulate
|
||||||
|
from permissions.models import Permission
|
||||||
|
|
||||||
from .permissions import PERMISSION_VIEW_JOB_LIST
|
|
||||||
from .api import get_job_list
|
from .api import get_job_list
|
||||||
|
from .permissions import PERMISSION_VIEW_JOB_LIST
|
||||||
|
|
||||||
|
|
||||||
def job_list(request):
|
def job_list(request):
|
||||||
|
|||||||
@@ -2,22 +2,22 @@ from __future__ import absolute_import
|
|||||||
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from navigation.api import (register_links, register_top_menu,
|
from acls.api import class_permissions
|
||||||
register_model_list_columns, register_multi_item_links)
|
|
||||||
from common.utils import encapsulate
|
from common.utils import encapsulate
|
||||||
from documents.models import Document
|
from documents.models import Document
|
||||||
from acls.api import class_permissions
|
from navigation.api import (register_links, register_top_menu,
|
||||||
|
register_model_list_columns, register_multi_item_links)
|
||||||
|
|
||||||
from taggit.models import Tag
|
|
||||||
from taggit.managers import TaggableManager
|
from taggit.managers import TaggableManager
|
||||||
|
from taggit.models import Tag
|
||||||
|
|
||||||
from .links import (tag_list, tag_create, tag_attach,
|
from .links import (tag_list, tag_create, tag_attach,
|
||||||
tag_document_list, tag_delete, tag_edit, tag_tagged_item_list,
|
tag_document_list, tag_delete, tag_edit, tag_tagged_item_list,
|
||||||
tag_multiple_delete, tag_acl_list, tag_multiple_attach,
|
tag_multiple_delete, tag_acl_list, tag_multiple_attach,
|
||||||
single_document_multiple_tag_remove, multiple_documents_selection_tag_remove)
|
single_document_multiple_tag_remove, multiple_documents_selection_tag_remove)
|
||||||
from .widgets import (get_tags_inline_widget_simple, single_tag_widget)
|
|
||||||
from .permissions import (PERMISSION_TAG_ATTACH, PERMISSION_TAG_REMOVE,
|
from .permissions import (PERMISSION_TAG_ATTACH, PERMISSION_TAG_REMOVE,
|
||||||
PERMISSION_TAG_DELETE, PERMISSION_TAG_EDIT, PERMISSION_TAG_VIEW)
|
PERMISSION_TAG_DELETE, PERMISSION_TAG_EDIT, PERMISSION_TAG_VIEW)
|
||||||
|
from .widgets import (get_tags_inline_widget_simple, single_tag_widget)
|
||||||
|
|
||||||
register_model_list_columns(Tag, [
|
register_model_list_columns(Tag, [
|
||||||
{
|
{
|
||||||
@@ -31,7 +31,7 @@ register_model_list_columns(Tag, [
|
|||||||
])
|
])
|
||||||
|
|
||||||
register_model_list_columns(Document, [
|
register_model_list_columns(Document, [
|
||||||
{'name':_(u'tags'), 'attribute':
|
{'name': _(u'tags'), 'attribute':
|
||||||
encapsulate(lambda x: get_tags_inline_widget_simple(x))
|
encapsulate(lambda x: get_tags_inline_widget_simple(x))
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ from __future__ import absolute_import
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.utils.translation import ugettext_lazy as _
|
|
||||||
from django.core.exceptions import PermissionDenied
|
from django.core.exceptions import PermissionDenied
|
||||||
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from taggit.models import Tag
|
from taggit.models import Tag
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,7 @@ from django.utils.translation import ugettext_lazy as _
|
|||||||
from acls.permissions import ACLS_VIEW_ACL
|
from acls.permissions import ACLS_VIEW_ACL
|
||||||
|
|
||||||
from .permissions import (PERMISSION_TAG_CREATE, PERMISSION_TAG_ATTACH,
|
from .permissions import (PERMISSION_TAG_CREATE, PERMISSION_TAG_ATTACH,
|
||||||
PERMISSION_TAG_REMOVE, PERMISSION_TAG_DELETE, PERMISSION_TAG_EDIT,
|
PERMISSION_TAG_REMOVE, PERMISSION_TAG_DELETE, PERMISSION_TAG_EDIT)
|
||||||
PERMISSION_TAG_VIEW)
|
|
||||||
|
|
||||||
tag_list = {'text': _(u'tag list'), 'view': 'tag_list', 'famfam': 'tag_blue'}
|
tag_list = {'text': _(u'tag list'), 'view': 'tag_list', 'famfam': 'tag_blue'}
|
||||||
tag_create = {'text': _(u'create new tag'), 'view': 'tag_create', 'famfam': 'tag_blue_add', 'permissions': [PERMISSION_TAG_CREATE]}
|
tag_create = {'text': _(u'create new tag'), 'view': 'tag_create', 'famfam': 'tag_blue_add', 'permissions': [PERMISSION_TAG_CREATE]}
|
||||||
@@ -14,7 +13,7 @@ tag_create = {'text': _(u'create new tag'), 'view': 'tag_create', 'famfam': 'tag
|
|||||||
tag_attach = {'text': _(u'attach tag'), 'view': 'tag_attach', 'args': 'object.pk', 'famfam': 'tag_blue_add', 'permissions': [PERMISSION_TAG_ATTACH]}
|
tag_attach = {'text': _(u'attach tag'), 'view': 'tag_attach', 'args': 'object.pk', 'famfam': 'tag_blue_add', 'permissions': [PERMISSION_TAG_ATTACH]}
|
||||||
tag_multiple_attach = {'text': _(u'attach tag'), 'view': 'tag_multiple_attach', 'famfam': 'tag_blue_add'}
|
tag_multiple_attach = {'text': _(u'attach tag'), 'view': 'tag_multiple_attach', 'famfam': 'tag_blue_add'}
|
||||||
|
|
||||||
#tag_remove = {'text': _(u'remove tag'), 'view': 'tag_remove', 'args': 'object.pk', 'famfam': 'tag_blue_delete', 'permissions': [PERMISSION_TAG_REMOVE]}
|
# tag_remove = {'text': _(u'remove tag'), 'view': 'tag_remove', 'args': 'object.pk', 'famfam': 'tag_blue_delete', 'permissions': [PERMISSION_TAG_REMOVE]}
|
||||||
multiple_documents_selection_tag_remove = {'text': _(u'remove tag'), 'view': 'multiple_documents_selection_tag_remove', 'famfam': 'tag_blue_delete'}
|
multiple_documents_selection_tag_remove = {'text': _(u'remove tag'), 'view': 'multiple_documents_selection_tag_remove', 'famfam': 'tag_blue_delete'}
|
||||||
single_document_multiple_tag_remove = {'text': _(u'remove tags'), 'view': 'single_document_multiple_tag_remove', 'args': 'document.id', 'famfam': 'tag_blue_delete', 'permissions': [PERMISSION_TAG_REMOVE]}
|
single_document_multiple_tag_remove = {'text': _(u'remove tags'), 'view': 'single_document_multiple_tag_remove', 'args': 'document.id', 'famfam': 'tag_blue_delete', 'permissions': [PERMISSION_TAG_REMOVE]}
|
||||||
|
|
||||||
|
|||||||
@@ -2,22 +2,22 @@ from __future__ import absolute_import
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
from django.contrib import messages
|
||||||
|
from django.core.exceptions import PermissionDenied
|
||||||
|
from django.core.urlresolvers import reverse
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
from django.shortcuts import render_to_response, get_object_or_404
|
from django.shortcuts import render_to_response, get_object_or_404
|
||||||
from django.template import RequestContext
|
from django.template import RequestContext
|
||||||
from django.contrib import messages
|
|
||||||
from django.core.urlresolvers import reverse
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from django.core.exceptions import PermissionDenied
|
|
||||||
|
|
||||||
from permissions import Permission
|
|
||||||
from taggit.models import Tag
|
|
||||||
from documents.models import Document
|
|
||||||
from documents.views import document_list
|
|
||||||
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
|
||||||
from acls.models import AccessEntry
|
from acls.models import AccessEntry
|
||||||
from acls.views import acl_list_for
|
from acls.views import acl_list_for
|
||||||
from acls.utils import apply_default_acls
|
from acls.utils import apply_default_acls
|
||||||
|
from documents.models import Document
|
||||||
|
from documents.views import document_list
|
||||||
|
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
||||||
|
from permissions import Permission
|
||||||
|
from taggit.models import Tag
|
||||||
|
|
||||||
from .forms import TagListForm, TagForm
|
from .forms import TagListForm, TagForm
|
||||||
from .models import TagProperties
|
from .models import TagProperties
|
||||||
|
|||||||
Reference in New Issue
Block a user