PEP8 Cleanups, simple sintax errors fixes

This commit is contained in:
Roberto Rosario
2014-06-25 02:53:12 -04:00
parent 0209d13150
commit ac061f2203
33 changed files with 124 additions and 150 deletions

View File

@@ -5,8 +5,7 @@ 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,
register_multi_item_links, register_sidebar_template)
from navigation.api import register_links, register_top_menu
from scheduler.api import register_interval_job
from .events import (HISTORY_DOCUMENT_CHECKED_OUT, HISTORY_DOCUMENT_CHECKED_IN,

View File

@@ -9,9 +9,11 @@ from project_tools.api import register_tool
from .utils import load_backend
from .conf.settings import GRAPHICS_BACKEND
def is_superuser(context):
return context['request'].user.is_staff or context['request'].user.is_superuser
formats_list = {'text': _('file formats'), 'view': 'formats_list', 'famfam': 'pictures', 'icon': 'pictures.png', 'condition': is_superuser, 'children_view_regex': [r'formats_list']}
register_sidebar_template(['formats_list'], 'converter_file_formats_help.html')

View File

@@ -2,7 +2,6 @@ from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from acls.permissions import ACLS_VIEW_ACL, ACLS_EDIT_ACL
from django.utils.translation import ugettext_lazy as _
from acls.permissions import ACLS_VIEW_ACL
acl_list = {'text': _(u'ACLs'), 'view': 'document_acl_list', 'args': 'object.pk', 'famfam': 'lock', 'permissions': [ACLS_VIEW_ACL]}

View File

@@ -25,7 +25,7 @@ def register_history_type(history_type_dict):
except DatabaseError:
# Special case for syncdb
transaction.rollback()
# Runtime
history_types_dict.setdefault(namespace, {})
history_types_dict[namespace][name] = {

View File

@@ -16,7 +16,7 @@ from acls.models import AccessEntry
from .models import History, HistoryType
from .forms import HistoryDetailForm
from .permissions import PERMISSION_HISTORY_VIEW
from .widgets import history_entry_object_link, history_entry_summary
from .widgets import history_entry_object_link
def history_list(request, object_list=None, title=None, extra_context=None):
@@ -76,11 +76,11 @@ def history_for_object(request, app_label, module_name, object_id):
def history_view(request, object_id):
history = get_object_or_404(History, pk=object_id)
try:
Permission.objects.check_permissions(request.user, [PERMISSION_HISTORY_VIEW])
except PermissionDenied:
AccessEntry.objects.check_access(PERMISSION_HISTORY_VIEW, request.user, history.content_object)
AccessEntry.objects.check_access(PERMISSION_HISTORY_VIEW, request.user, history.content_object)
form = HistoryDetailForm(instance=history, extra_fields=[
{'label': _(u'Date'), 'field': lambda x: x.datetime.date()},
@@ -93,13 +93,12 @@ def history_view(request, object_id):
return render_to_response('generic_detail.html', {
'title': _(u'details for: %s') % history.get_processed_summary(),
'form': form,
},
context_instance=RequestContext(request))
}, context_instance=RequestContext(request))
def history_type_list(request, history_type_pk):
history_type = get_object_or_404(HistoryType, pk=history_type_pk)
return history_list(
request,
object_list=History.objects.filter(history_type=history_type),

View File

@@ -3,22 +3,20 @@ from django.utils.safestring import mark_safe
def history_entry_object_link(entry):
return mark_safe(u'<a href="%(url)s">%(label)s</a>' % {
'url': entry.content_object.get_absolute_url() if entry.content_object else u'#',
'label': unicode(entry.content_object) if entry.content_object else u''
}
'url': entry.content_object.get_absolute_url() if entry.content_object else u'#',
'label': unicode(entry.content_object) if entry.content_object else u''}
)
def history_entry_summary(entry):
return mark_safe(u'<a href="%(url)s">%(label)s</a>' % {
'url': entry.get_absolute_url(),
'label': unicode(entry.get_processed_summary())
})
'label': unicode(entry.get_processed_summary())}
)
def history_entry_type_link(entry):
return mark_safe(u'<a href="%(url)s">%(label)s</a>' % {
'url': entry.history_type.get_absolute_url(),
'label': unicode(entry.history_type)
}
'url': entry.history_type.get_absolute_url(),
'label': unicode(entry.history_type)}
)

View File

@@ -15,7 +15,7 @@ from project_tools.api import register_tool
from .classes import Property, PropertyNamespace
from .links import link_menu_link, link_namespace_details, link_namespace_list
from .models import Installation
@receiver(post_migrate, dispatch_uid='trigger_first_time')
def trigger_first_time(sender, **kwargs):
@@ -31,7 +31,7 @@ def check_first_run():
details = Installation.objects.get()
except DatabaseError:
# Avoid database errors when the app tables haven't been created yet
transaction.rollback()
transaction.rollback()
else:
if details.is_first_run:
details.submit()
@@ -45,7 +45,7 @@ register_model_list_columns(PropertyNamespace, [
{
'name': _(u'items'),
'attribute': encapsulate(lambda entry: len(entry.get_properties()))
}
}
])
register_model_list_columns(Property, [
@@ -56,7 +56,7 @@ register_model_list_columns(Property, [
{
'name': _(u'value'),
'attribute': 'value'
}
}
])
register_links(PropertyNamespace, [link_namespace_details])

View File

@@ -2,7 +2,6 @@ from __future__ import absolute_import
from collections import namedtuple
import os
import sys
import pbs
@@ -116,7 +115,6 @@ class VirtualEnv(object):
else:
return Dependency(package, version, standard=True)
def get_packages_info(self, requirements_file=None):
if requirements_file:
with open(requirements_file) as file_in:
@@ -126,7 +124,6 @@ class VirtualEnv(object):
for item in pip('freeze').splitlines():
yield self.extract_dependency(item)
def __init__(self):
self.requirements_file_path = os.path.join(settings.BASE_DIR, 'requirements', 'production.txt')
if not PIP:

View File

@@ -3,11 +3,10 @@ from __future__ import absolute_import
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils.translation import ugettext_lazy as _
from django.core.exceptions import PermissionDenied
from permissions.models import Permission
from .classes import Property, PropertyNamespace
from .classes import PropertyNamespace
from .permissions import PERMISSION_INSTALLATION_DETAILS
from .models import Installation

View File

@@ -6,7 +6,7 @@ from documents.models import Document
from navigation.api import register_links, register_sidebar_template
from project_setup.api import register_setup
from .links import (smart_link_instance_view_link, smart_link_instances_for_document,
from .links import (smart_link_instances_for_document,
smart_link_setup, smart_link_list, smart_link_create, smart_link_edit,
smart_link_delete, smart_link_condition_list, smart_link_condition_create,
smart_link_condition_edit, smart_link_condition_delete, smart_link_acl_list)

View File

@@ -20,10 +20,10 @@ from documents.views import document_list
from documents.permissions import PERMISSION_DOCUMENT_VIEW
from permissions.models import Permission
from . import smart_link_instance_view_link
from .conf.settings import SHOW_EMPTY_SMART_LINKS
from .forms import (SmartLinkInstanceForm, SmartLinkForm,
SmartLinkConditionForm)
from .links import smart_link_instance_view_link
from .models import SmartLink, SmartLinkCondition
from .permissions import (PERMISSION_SMART_LINK_VIEW,
PERMISSION_SMART_LINK_CREATE, PERMISSION_SMART_LINK_DELETE,

View File

@@ -20,16 +20,14 @@ from . import models as ocr_models
from .conf.settings import (AUTOMATIC_OCR, QUEUE_PROCESSING_INTERVAL)
from .exceptions import AlreadyQueued
from .links import (submit_document, submit_document_multiple,
re_queue_document, re_queue_multiple_document, queue_document_delete,
queue_document_multiple_delete, document_queue_disable,
document_queue_enable, all_document_ocr_cleanup, queue_document_list,
re_queue_multiple_document, queue_document_multiple_delete,
document_queue_disable, document_queue_enable,
all_document_ocr_cleanup, queue_document_list,
ocr_tool_link, setup_queue_transformation_list,
setup_queue_transformation_create, setup_queue_transformation_edit,
setup_queue_transformation_delete)
from .models import DocumentQueue, QueueTransformation
from .permissions import (PERMISSION_OCR_DOCUMENT,
PERMISSION_OCR_DOCUMENT_DELETE, PERMISSION_OCR_QUEUE_ENABLE_DISABLE,
PERMISSION_OCR_CLEAN_ALL_PAGES)
from .permissions import PERMISSION_OCR_DOCUMENT
from .tasks import task_process_document_queues
logger = logging.getLogger(__name__)
@@ -72,14 +70,6 @@ def document_post_save(sender, instance, **kwargs):
except AlreadyQueued:
pass
# Disabled because it appears Django execute signals using the same
# process of the signal emiter effectively blocking the view until
# the OCR process completes which could take several minutes :/
#@receiver(post_save, dispatch_uid='call_queue', sender=QueueDocument)
#def call_queue(sender, **kwargs):
# if kwargs.get('created', False):
# logger.debug('got call_queue signal: %s' % kwargs)
# task_process_document_queues()
@receiver(post_syncdb, dispatch_uid='create_default_queue', sender=ocr_models)
def create_default_queue_signal_handler(sender, **kwargs):

View File

@@ -1,9 +1,7 @@
from __future__ import absolute_import
import codecs
import os
import subprocess
import tempfile
import sys
from django.utils.importlib import import_module
@@ -15,7 +13,7 @@ from documents.models import DocumentPage
from .backends import ocr_backend
from .conf.settings import UNPAPER_PATH, LANGUAGE
from .exceptions import OCRError, UnpaperError
from .exceptions import UnpaperError
from .literals import (DEFAULT_OCR_FILE_FORMAT, UNPAPER_FILE_FORMAT,
DEFAULT_OCR_FILE_EXTENSION)
from .parsers import parse_document_page
@@ -69,13 +67,13 @@ def do_document_ocr(queue_document):
unpaper_input = convert(document_filepath, file_format=UNPAPER_FILE_FORMAT, transformations=ocr_transformations)
execute_unpaper(input_filepath=unpaper_input, output_filepath=unpaper_output_filepath)
#from PIL import Image, ImageOps
#im = Image.open(document_filepath)
##if im.mode=='RGBA':
## im=im.convert('RGB')
##im = im.convert('L')
#im = ImageOps.grayscale(im)
#im.save(unpaper_output_filepath)
# from PIL import Image, ImageOps
# im = Image.open(document_filepath)
# #if im.mode=='RGBA':
# # im=im.convert('RGB')
# #im = im.convert('L')
# im = ImageOps.grayscale(im)
# im.save(unpaper_output_filepath)
# Convert to TIFF
pre_ocr_filepath = convert(input_filepath=unpaper_output_filepath, file_format=DEFAULT_OCR_FILE_FORMAT)

View File

@@ -1,5 +1,7 @@
from __future__ import absolute_import
import sys
from django.utils.importlib import import_module
from ..conf.settings import BACKEND

View File

@@ -4,14 +4,14 @@ import codecs
import os
import subprocess
import tempfile
import sys
from . import BackendBase
from ..conf.settings import TESSERACT_PATH
from ..exceptions import OCRError
def Tesseract(BackendBase):
def execute(input_filename, language=None):
class Tesseract(BackendBase):
def execute(self, input_filename, language=None):
"""
Execute the command line binary of tesseract
"""
@@ -20,7 +20,7 @@ def Tesseract(BackendBase):
ocr_output = os.extsep.join([filepath, u'txt'])
command = [unicode(TESSERACT_PATH), unicode(input_filename), unicode(filepath)]
if lang is not None:
if language is not None:
command.extend([u'-l', language])
proc = subprocess.Popen(command, close_fds=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
@@ -29,12 +29,12 @@ def Tesseract(BackendBase):
error_text = proc.stderr.read()
cleanup(filepath)
cleanup(ocr_output)
if lang:
if language:
# If tesseract gives an error with a language parameter
# re-run it with no parameter again
return run_tesseract(input_filename, language=None)
return self.execute(input_filename, language=None)
else:
raise TesseractError(error_text)
raise OCRError(error_text)
fd = codecs.open(ocr_output, 'r', 'utf-8')
text = fd.read().strip()
@@ -43,3 +43,14 @@ def Tesseract(BackendBase):
os.unlink(filepath)
return text
# TODO: Reduntant, also in api.py
def cleanup(filename):
"""
Try to remove the given filename, ignoring non-existent files
"""
try:
os.remove(filename)
except OSError:
pass

View File

@@ -10,28 +10,28 @@ def check_word(word):
ALL_ALPHA = re.compile('^[a-z]+$', re.I)
SINGLE_LETTER_WORDS = re.compile('^[ai]$', re.I)
#(L) If a string is longer than 20 characters, it is garbage
# (L) If a string is longer than 20 characters, it is garbage
if len(word) > 20:
return None
#(A) If a string's ratio of alphanumeric characters to total
#characters is less than 50%, the string is garbage
# (A) If a string's ratio of alphanumeric characters to total
# characters is less than 50%, the string is garbage
if len(ALL_ALPHANUM.findall(word)) < len(word) / 2:
return None
#Remove word if all the letters in the word are non alphanumeric
# Remove word if all the letters in the word are non alphanumeric
if len(NON_ALPHANUM.findall(word)) == len(word):
return None
#Removed words with too many consecutie vowels
# Removed words with too many consecutie vowels
if TOO_MANY_VOWELS.findall(word):
return None
#Removed words with too many consecutie consonants
# Removed words with too many consecutie consonants
if TOO_MANY_CONSONANTS.findall(word):
return None
#Only allow specific single letter words
# Only allow specific single letter words
if len(word) == 1 and not SINGLE_LETTER_WORDS.findall(word):
return None

View File

@@ -11,28 +11,28 @@ def check_word(word):
ALL_ALPHA = re.compile('^[ёйцукенгшщзхъфывапролджэячсмитьбю]+$', re.I)
SINGLE_LETTER_WORDS = re.compile('^[уквояси]$', re.I)
#(L) If a string is longer than 25 characters, it is garbage
# (L) If a string is longer than 25 characters, it is garbage
if len(word) > 25:
return None
#(A) If a string's ratio of alphanumeric characters to total
#characters is less than 50%, the string is garbage
# (A) If a string's ratio of alphanumeric characters to total
# characters is less than 50%, the string is garbage
if len(ALL_ALPHANUM.findall(word)) < len(word) / 2:
return None
#Remove word if all the letters in the word are non alphanumeric
# Remove word if all the letters in the word are non alphanumeric
if len(NON_ALPHANUM.findall(word)) == len(word):
return None
#Removed words with too many consecutie vowels
# Removed words with too many consecutie vowels
if TOO_MANY_VOWELS.findall(word):
return None
#Removed words with too many consecutie consonants
# Removed words with too many consecutie consonants
if TOO_MANY_CONSONANTS.findall(word):
return None
#Only allow specific single letter words
# Only allow specific single letter words
if len(word) == 1 and not SINGLE_LETTER_WORDS.findall(word):
return None

View File

@@ -11,28 +11,28 @@ def check_word(word):
ALL_ALPHA = re.compile('^[a-z]+$', re.I)
SINGLE_LETTER_WORDS = re.compile('^[aeoóuy]$', re.I)
#(L) If a string is longer than 20 characters, it is garbage
# (L) If a string is longer than 20 characters, it is garbage
if len(word) > 20:
return None
#(A) If a strings ratio of alphanumeric characters to total
#characters is less than 50%, the string is garbage
# (A) If a strings ratio of alphanumeric characters to total
# characters is less than 50%, the string is garbage
if len(ALL_ALPHANUM.findall(word)) < len(word) / 2:
return None
#Remove word if all the letters in the word are non alphanumeric
# Remove word if all the letters in the word are non alphanumeric
if len(NON_ALPHANUM.findall(word)) == len(word):
return None
#Removed words with too many consecutie vowels
# Removed words with too many consecutie vowels
if TOO_MANY_VOWELS.findall(word):
return None
#Removed words with too many consecutie consonants
# Removed words with too many consecutie consonants
if TOO_MANY_CONSONANTS.findall(word):
return None
#Only allow specific single letter words
# Only allow specific single letter words
if len(word) == 1 and not SINGLE_LETTER_WORDS.findall(word):
return None

View File

@@ -15,10 +15,9 @@ from converter.api import get_available_transformations_choices
from sources.managers import SourceTransformationManager
from .exceptions import ReQueueError
from .literals import (DOCUMENTQUEUE_STATE_STOPPED,
DOCUMENTQUEUE_STATE_CHOICES, QUEUEDOCUMENT_STATE_PENDING,
QUEUEDOCUMENT_STATE_CHOICES, QUEUEDOCUMENT_STATE_PROCESSING,
DOCUMENTQUEUE_STATE_ACTIVE)
from .literals import (DOCUMENTQUEUE_STATE_CHOICES,
QUEUEDOCUMENT_STATE_PENDING, QUEUEDOCUMENT_STATE_CHOICES,
QUEUEDOCUMENT_STATE_PROCESSING, DOCUMENTQUEUE_STATE_ACTIVE)
from .managers import DocumentQueueManager

View File

@@ -10,8 +10,7 @@ from job_processor.api import process_job
from lock_manager import Lock, LockError
from .api import do_document_ocr
from .conf.settings import (NODE_CONCURRENT_EXECUTION, REPLICATION_DELAY,
QUEUE_PROCESSING_INTERVAL)
from .conf.settings import NODE_CONCURRENT_EXECUTION, REPLICATION_DELAY
from .literals import (QUEUEDOCUMENT_STATE_PENDING,
QUEUEDOCUMENT_STATE_PROCESSING, DOCUMENTQUEUE_STATE_ACTIVE,
QUEUEDOCUMENT_STATE_ERROR)

View File

@@ -18,9 +18,8 @@ from permissions.models import Permission
from .api import clean_pages
from .exceptions import AlreadyQueued, ReQueueError
from .forms import QueueTransformationForm, QueueTransformationForm_create
from .literals import (QUEUEDOCUMENT_STATE_PENDING,
QUEUEDOCUMENT_STATE_PROCESSING, DOCUMENTQUEUE_STATE_STOPPED,
DOCUMENTQUEUE_STATE_ACTIVE)
from .literals import (QUEUEDOCUMENT_STATE_PROCESSING,
DOCUMENTQUEUE_STATE_STOPPED, DOCUMENTQUEUE_STATE_ACTIVE)
from .models import DocumentQueue, QueueDocument, QueueTransformation
from .permissions import (PERMISSION_OCR_DOCUMENT,
PERMISSION_OCR_DOCUMENT_DELETE, PERMISSION_OCR_QUEUE_ENABLE_DISABLE,
@@ -144,10 +143,12 @@ def submit_document_to_queue(request, document, post_submit_redirect=None):
try:
document_queue = DocumentQueue.objects.queue_document(document)
messages.success(request, _(u'Document: %(document)s was added to the OCR queue: %(queue)s.') % {
'document': document, 'queue': document_queue.label})
'document': document, 'queue': document_queue.label}
)
except AlreadyQueued:
messages.warning(request, _(u'Document: %(document)s is already queued.') % {
'document': document})
'document': document}
)
except Exception, e:
messages.error(request, e)
@@ -317,7 +318,7 @@ def setup_queue_transformation_list(request, document_queue_id):
{'name': _(u'order'), 'attribute': 'order'},
{'name': _(u'transformation'), 'attribute': encapsulate(lambda x: x.get_transformation_display())},
{'name': _(u'arguments'), 'attribute': 'arguments'}
],
],
'hide_link': True,
'hide_object': True,
}
@@ -355,8 +356,7 @@ def setup_queue_transformation_edit(request, transformation_id):
{'object': 'transformation', 'name': _(u'transformation')}
],
'next': next,
},
context_instance=RequestContext(request))
}, context_instance=RequestContext(request))
def setup_queue_transformation_delete(request, transformation_id):
@@ -389,8 +389,7 @@ def setup_queue_transformation_delete(request, transformation_id):
},
'previous': previous,
'form_icon': u'shape_square_delete.png',
},
context_instance=RequestContext(request))
}, context_instance=RequestContext(request))
def setup_queue_transformation_create(request, document_queue_id):

View File

@@ -1,8 +1,8 @@
from __future__ import absolute_import
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.core.exceptions import ObjectDoesNotExist
from django.db.models.signals import post_save
from navigation.api import register_links, register_multi_item_links
from project_setup.api import register_setup

View File

@@ -1,6 +1,6 @@
from __future__ import absolute_import
from .models import Role, PermissionHolder
from .models import Role
def cleanup():

View File

@@ -2,15 +2,9 @@ import logging
from django.db import models
from django.contrib.contenttypes.models import ContentType
from django.db import transaction
from django.core.exceptions import PermissionDenied
from django.shortcuts import get_object_or_404
from django.db.utils import IntegrityError
from django.core.exceptions import ImproperlyConfigured
from common.models import AnonymousUserSingleton
logger = logging.getLogger(__name__)

View File

@@ -2,13 +2,13 @@ from __future__ import absolute_import
import logging
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ugettext
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic
from django.contrib.auth.models import User
from django.contrib.contenttypes import generic
from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import PermissionDenied
from django.db import models
from django.utils.translation import ugettext
from django.utils.translation import ugettext_lazy as _
from common.models import AnonymousUserSingleton
@@ -70,14 +70,13 @@ class PermissionManager(object):
except KeyError:
raise Permission.DoesNotExist
def __init__(self, model):
self.model = model
class Permission(object):
_stored_permissions_cache = {}
DoesNotExist = PermissionDoesNotExists
def __init__(self, namespace, name, label):
@@ -236,7 +235,7 @@ class Role(models.Model):
def remove_member(self, member):
member = AnonymousUserSingleton.objects.passthru_check(member)
member_type=ContentType.objects.get_for_model(member)
member_type = ContentType.objects.get_for_model(member)
role_member = RoleMember.objects.get(role=self, member_type=member_type, member_id=member.pk)
role_member.delete()
@@ -261,7 +260,6 @@ class RoleMember(models.Model):
objects = RoleMemberManager()
class Meta:
#ordering = ('label',)
verbose_name = _(u'role member')
verbose_name_plural = _(u'role members')

View File

@@ -2,7 +2,6 @@ from __future__ import absolute_import
from .cleanup import cleanup
bootstrap_models = [
{
'name': 'role',

View File

@@ -1,32 +1,31 @@
from __future__ import absolute_import
import operator
import itertools
import operator
from django.utils.translation import ugettext_lazy as _
from django.contrib import messages
from django.contrib.auth.models import User, Group
from django.contrib.contenttypes.models import ContentType
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect, Http404
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.contrib import messages
from common.backport.generic.list_detail import object_list
from django.core.urlresolvers import reverse
from common.backport.generic.create_update import create_object, delete_object, update_object
from django.contrib.contenttypes.models import ContentType
from django.contrib.auth.models import User, Group
from django.utils.simplejson import loads
from django.utils.translation import ugettext_lazy as _
from common.views import assign_remove
from common.utils import generate_choices_w_labels, encapsulate, get_object_name
from common.widgets import two_state_template
from common.models import AnonymousUserSingleton
from acls.classes import EncapsulatedObject
from common.backport.generic.list_detail import object_list
from common.backport.generic.create_update import create_object, delete_object, update_object
from common.models import AnonymousUserSingleton
from common.views import assign_remove
from common.utils import encapsulate, get_object_name
from common.widgets import two_state_template
from .models import Role, Permission, PermissionHolder, RoleMember
from .forms import RoleForm, RoleForm_view
from .models import Role, Permission
from .permissions import (PERMISSION_ROLE_VIEW, PERMISSION_ROLE_EDIT,
PERMISSION_ROLE_CREATE, PERMISSION_ROLE_DELETE,
PERMISSION_PERMISSION_GRANT, PERMISSION_PERMISSION_REVOKE)
from .widgets import role_permission_link
def role_list(request):
@@ -49,7 +48,6 @@ def role_permissions(request, role_id):
role = get_object_or_404(Role, pk=role_id)
form = RoleForm_view(instance=role)
role_permissions_list = Permission.objects.get_for_holder(role)
subtemplates_list = [
{
'name': u'generic_list_subtemplate.html',
@@ -60,7 +58,7 @@ def role_permissions(request, role_id):
{'name': _(u'namespace'), 'attribute': encapsulate(lambda x: x.namespace)},
{'name': _(u'name'), 'attribute': encapsulate(lambda x: x.label)},
{
'name':_(u'has permission'),
'name': _(u'has permission'),
'attribute': encapsulate(lambda x: two_state_template(x.requester_has_this(role))),
},
],
@@ -90,7 +88,8 @@ def role_edit(request, role_id):
return update_object(request, template_name='generic_form.html',
form_class=RoleForm, object_id=role_id, extra_context={
'object_name': _(u'role')})
'object_name': _(u'role')}
)
def role_create(request):
@@ -129,7 +128,7 @@ def permission_grant(request):
items = []
for item_properties in items_property_list:
#permission = get_object_or_404(Permission, pk=item_properties['permission_id'])
# permission = get_object_or_404(Permission, pk=item_properties['permission_id'])
try:
permission = Permission.objects.get({'pk': item_properties['permission_id']})
except Permission.DoesNotExist:
@@ -192,7 +191,7 @@ def permission_revoke(request):
items = []
for item_properties in items_property_list:
#permission = get_object_or_404(Permission, pk=item_properties['permission_id'])
# permission = get_object_or_404(Permission, pk=item_properties['permission_id'])
try:
permission = Permission.objects.get({'pk': item_properties['permission_id']})
except Permission.DoesNotExist:
@@ -280,7 +279,7 @@ def get_role_members(role, separate=False):
def get_non_role_members(role):
#non members = all users - members - staff - super users
# non members = all users - members - staff - super users
member_users, member_groups, member_anonymous = get_role_members(role, separate=True)
staff_users = User.objects.filter(is_staff=True)
@@ -300,7 +299,7 @@ def get_non_role_members(role):
if anonymous:
non_members.append((_(u'Special'), _as_choice_list(list(anonymous))))
#non_holder_list.append((_(u'Special'), _as_choice_list([AnonymousUserSingleton.objects.get()])))
# non_holder_list.append((_(u'Special'), _as_choice_list([AnonymousUserSingleton.objects.get()])))
return non_members
@@ -321,9 +320,9 @@ def role_members(request, role_id):
return assign_remove(
request,
#left_list=lambda: generate_choices_w_labels(get_non_role_members(role)),
# left_list=lambda: generate_choices_w_labels(get_non_role_members(role)),
left_list=lambda: get_non_role_members(role),
#right_list=lambda: generate_choices_w_labels(get_role_members(role)),
# right_list=lambda: generate_choices_w_labels(get_role_members(role)),
right_list=lambda: get_role_members(role),
add_method=lambda x: add_role_member(role, x),
remove_method=lambda x: remove_role_member(role, x),

View File

@@ -1,7 +1,7 @@
from django.utils.translation import ugettext
from django.utils.safestring import mark_safe
from django.contrib.contenttypes.models import ContentType
from django.core.urlresolvers import reverse
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext
def role_permission_link(requester, permission, permission_list):

View File

@@ -1,7 +1,5 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from navigation.api import register_top_menu
from .links import link_setup

View File

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

View File

@@ -2,8 +2,7 @@ from django.core.urlresolvers import reverse
from rest_framework import serializers
from converter.exceptions import UnknownFileFormat, UnkownConvertError
from documents.models import Document, DocumentType
from documents.models import Document
class DocumentResourceSimple(serializers.HyperlinkedModelSerializer):

View File

@@ -2,16 +2,12 @@
import logging
from django.core.urlresolvers import reverse
from django.shortcuts import get_object_or_404
from django.utils.translation import ugettext_lazy as _
from converter.exceptions import UnknownFileFormat, UnkownConvertError
from documents.models import Document, DocumentVersion, DocumentPage
from rest_framework import generics
from rest_framework import permissions
from rest_framework import serializers
from rest_framework.response import Response
from rest_framework.reverse import reverse