This commit is contained in:
Roberto Rosario
2011-02-10 16:31:10 -04:00
parent ce12e68c08
commit 50ae43537c
17 changed files with 52 additions and 69 deletions

View File

@@ -34,7 +34,7 @@
{% for field in form.visible_fields %}
<div class="group">
{% if field.errors %}<div class="fieldWithErrors">{% endif %}
<label class="label">{{ field.label_tag }}{% if field.field.required and not read_only %} ({% trans 'required' %}){% endif %}</label>
<label class="label">{{ field.label_tag }}{% if field.field.required and not read_only %} ({% trans "required" %}){% endif %}</label>
{% if field.errors %}<span class="error">{% for error in field.errors %}{{ error }}{% if not forloop.last %} | {% endif %}{% endfor %}</span></div>{% endif %}
{{ field }}
{% if field.help_text %}<span class="description">{{ field.help_text }}</span>{% endif %}

View File

@@ -27,7 +27,7 @@
<input type="hidden" name="{{ step_field }}" value="{{ step0 }}" />
{% endif %}
{% if submit_method != 'GET' and submit_method != 'get' %}
{% if submit_method != "GET" and submit_method != "get" %}
{% csrf_token %}
{% endif %}
@@ -45,7 +45,7 @@
<tr>
{% for field in formset.forms.0.visible_fields %}
<th>
{{ field.label_tag }}{% if field.field.required and not read_only %} ({% trans 'required' %}){% endif %}
{{ field.label_tag }}{% if field.field.required and not read_only %} ({% trans "required" %}){% endif %}
</th>
{#{% if field.help_text %}<span class="description">{{ field.help_text }}</span>{% endif %}#}
{% endfor %}
@@ -67,7 +67,7 @@
{% if not read_only %}
<div class="group navform wat-cf">
<button class="button" type="submit" name="{{ form.prefix }}-submit">
<img src="{{ MEDIA_URL }}web_theme_media/images/icons/tick.png" alt="{% if object %}{% trans 'Save' %}{% else %}{% trans 'Submit' %}{% endif %}" /> {% if object %}{% trans 'Save' %}{% else %}{% trans 'Submit' %}{% endif %}
<img src="{{ MEDIA_URL }}web_theme_media/images/icons/tick.png" alt="{% if object %}{% trans 'Save' %}{% else %}{% trans 'Submit' %}{% endif %}" /> {% if object %}{% trans "Save" %}{% else %}{% trans "Submit" %}{% endif %}
</button>
{% comment %}
<a href="#header" class="button">

View File

@@ -4,7 +4,7 @@
{#{% block secondary_links %}{{ secondary_links|safe }}{% endblock %}#}
{% block content %}
{% include 'generic_list_subtemplate.html' %}
{% include "generic_list_subtemplate.html" %}
{% for subtemplate in subtemplates_dict %}
{% with subtemplate.title as title %}

View File

@@ -30,7 +30,7 @@
{% if not hide_header %}
<tr>
{% if not hide_object %}
<th>{% trans 'Identifier' %}</th>
<th>{% trans "Identifier" %}</th>
{% endif %}
{% for column in object_list.0|get_model_list_columns %}
<th>{{ column.name|capfirst }}</th>
@@ -62,7 +62,7 @@
<td>{{ object|object_property:column.attribute|safe }}</td>
{% endfor %}
{% if not hide_links %}
<td class='last'>
<td class="last">
{% object_navigation_template %}
</td>
{% endif %}

View File

@@ -51,7 +51,7 @@ def return_attrib(obj, attrib, arguments={}):
elif isinstance(obj, types.DictType) or isinstance(obj, types.DictionaryType):
return obj[attrib]
else:
result = reduce(getattr, attrib.split("."), obj)
result = reduce(getattr, attrib.split('.'), obj)
if isinstance(result, types.MethodType):
if arguments:
return result(**arguments)
@@ -61,7 +61,7 @@ def return_attrib(obj, attrib, arguments={}):
return result
except Exception, err:
if settings.DEBUG:
return "Attribute error: %s; %s" % (attrib, err)
return 'Attribute error: %s; %s' % (attrib, err)
else:
pass
@@ -69,7 +69,7 @@ def return_attrib(obj, attrib, arguments={}):
#http://snippets.dzone.com/posts/show/5434
#http://snippets.dzone.com/user/jakob
def pretty_size(size):
suffixes = [("B",2**10), ("K",2**20), ("M",2**30), ("G",2**40), ("T",2**50)]
suffixes = [('B',2**10), ('K',2**20), ('M',2**30), ('G',2**40), ('T',2**50)]
for suf, lim in suffixes:
if size > lim:
continue

View File

@@ -18,27 +18,33 @@ default_available_models = {
# Definition
AVAILABLE_FUNCTIONS = getattr(settings, 'DOCUMENTS_METADATA_AVAILABLE_FUNCTIONS', default_available_functions)
AVAILABLE_MODELS = getattr(settings, 'DOCUMENTS_METADATA_AVAILABLE_MODELS', default_available_models)
# Upload
USE_STAGING_DIRECTORY = getattr(settings, 'DOCUMENTS_USE_STAGING_DIRECTORY', False)
STAGING_DIRECTORY = getattr(settings, 'DOCUMENTS_STAGING_DIRECTORY', u'/tmp/mayan/staging')
DELETE_STAGING_FILE_AFTER_UPLOAD = getattr(settings, 'DOCUMENTS_DELETE_STAGING_FILE_AFTER_UPLOAD', False)
STAGING_FILES_PREVIEW_SIZE = getattr(settings, 'DOCUMENTS_STAGING_FILES_PREVIEW_SIZE', '640x480')
DELETE_LOCAL_ORIGINAL = getattr(settings, 'DOCUMENTS_DELETE_LOCAL_ORIGINAL', False)
# Saving
CHECKSUM_FUNCTION = getattr(settings, 'DOCUMENTS_CHECKSUM_FUNCTION', lambda x: hashlib.sha256(x).hexdigest())
UUID_FUNCTION = getattr(settings, 'DOCUMENTS_UUID_FUNCTION', lambda:unicode(uuid.uuid4()))
# Storage
STORAGE_BACKEND = getattr(settings, 'DOCUMENTS_STORAGE_BACKEND', DocumentStorage)
STORAGE_DIRECTORY_NAME = getattr(settings, 'DOCUMENTS_STORAGE_DIRECTORY_NAME', 'documents')
# Usage
PREVIEW_SIZE = getattr(settings, 'DOCUMENTS_PREVIEW_SIZE', '640x480')
THUMBNAIL_SIZE = getattr(settings, 'DOCUMENTS_THUMBNAIL_SIZE', '50x50')
DISPLAY_SIZE = getattr(settings, 'DOCUMENTS_DISPLAY_SIZE', '1024x768')
# Serving
FILESYSTEM_FILESERVING_ENABLE = getattr(settings, 'DOCUMENTS_FILESYSTEM_FILESERVING_ENABLE', True)
FILESYSTEM_FILESERVING_PATH = getattr(settings, 'DOCUMENTS_FILESYSTEM_FILESERVING_PATH', u'/tmp/mayan/documents')
FILESYSTEM_SLUGIFY_PATHS = getattr(settings, 'DOCUMENTS_SLUGIFY_PATHS', False)
FILESYSTEM_MAX_RENAME_COUNT = getattr(settings, 'DOCUMENTS_FILESYSTEM_MAX_RENAME_COUNT', 200)
#misc
TEMPORARY_DIRECTORY = getattr(settings, 'DOCUMENTS_TEMPORARY_DIRECTORY', u'/tmp')

View File

@@ -21,22 +21,9 @@ from documents.conf.settings import AVAILABLE_MODELS
class ImageWidget(forms.widgets.Widget):
def render(self, name, value, attrs=None):
output = []
#img = lambda x: '<a class="fancybox" href="%s"><img src="%s" /></a>' % (reverse('document_preview', args=[x.id]),
# reverse('document_thumbnail', args=[x.id]))
output.append('<a class="fancybox-noscaling" href="%s"><img width="300" src="%s" /></a>' % (reverse('document_display', args=[value.id]),
reverse('document_preview', args=[value.id])))
output.append('<br /><span class="famfam active famfam-magnifier"></span>%s' % ugettext(u'Click on the image for full size view'))
#file_name = str(value)
#if file_name:
# file_path = '%s%s' % (settings.MEDIA_URL, file_name)
# try: # is image
# Image.open(os.path.join(settings.MEDIA_ROOT, file_name))
# output.append('<a target="_blank" href="%s">%s</a><br />%s <a target="_blank" href="%s">%s</a><br />%s ' % \
# (file_path, thumbnail(file_name), _('Currently:'), file_path, file_name, _('Change:')))
# except IOError: # not image
# output.append('%s <a target="_blank" href="%s">%s</a> <br />%s ' % \
# (_('Currently:'), file_path, file_name, _('Change:')))
#
#output.append(super(ImageWidget, self).render(name, value, attrs))
return mark_safe(u''.join(output))
@@ -61,15 +48,14 @@ class DocumentForm(forms.ModelForm):
model = Document
exclude = ('description',)
class DocumentPreviewForm(forms.Form):
def __init__(self, *args, **kwargs):
self.document = kwargs.pop('document', None)
super(DocumentPreviewForm, self).__init__(*args, **kwargs)
self.fields['preview'].initial = self.document#reverse('document_preview', args=[self.document.id])
self.fields['preview'].initial = self.document
preview = forms.CharField(widget=ImageWidget)
#ImageWidget
class DocumentForm_view(DetailForm):
@@ -118,7 +104,6 @@ class MetadataForm(forms.Form):
if 'initial' in kwargs:
self.metadata_type = kwargs['initial'].pop('metadata_type', None)
self.document_type = kwargs['initial'].pop('document_type', None)
#self.metadata_options = kwargs['initial'].pop('metadata_options', None)
required=self.document_type.documenttypemetadatatype_set.get(metadata_type=self.metadata_type).required
required_string = u''
@@ -178,7 +163,6 @@ class DocumentCreateWizard(BoundFormWizard):
initial.append({
'metadata_type':item.metadata_type,
'document_type':self.document_type,
#'metadata_options':item,
})
self.initial = {1:initial}
if step == 1:

View File

@@ -4,7 +4,8 @@ import hashlib
from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist
from django.core.files.uploadedfile import InMemoryUploadedFile, SimpleUploadedFile
from django.core.files.uploadedfile import InMemoryUploadedFile, \
SimpleUploadedFile
from django.utils.translation import ugettext

View File

@@ -23,6 +23,4 @@ urlpatterns = patterns('documents.views',
url(r'^document/(?P<document_id>\d+)/create/siblings/$', 'document_create_sibling', {'multiple':True}, 'document_create_sibling'),
url(r'^staging_file/(?P<staging_file_id>\w+)/preview/$', 'staging_file_preview', (), 'staging_file_preview'),
)

View File

@@ -93,7 +93,6 @@ def _save_metadata_list(metadata_list, document):
def _save_metadata(metadata_dict, document):
#Use matched metadata now to create document metadata
#for key, value in zip(metadata_dict['id'].values(), metadata_dict['value'].values()):
document_metadata, created = DocumentMetadata.objects.get_or_create(
document=document,
metadata_type=get_object_or_404(MetadataType, pk=metadata_dict['id']),
@@ -348,8 +347,6 @@ def document_edit_metadata(request, document_id):
formset = MetadataFormSet(request.POST)
if formset.is_valid():
_save_metadata_list(formset.cleaned_data, document)
#for item in formset.cleaned_data:
# _save_metadata(item, document)
try:
document.delete_fs_links()
except Exception, e:
@@ -395,16 +392,6 @@ def get_document_image(request, document_id, size=PREVIEW_SIZE):
return serve_file(request, File(file=open('%simages/picture_error.png' % settings.MEDIA_ROOT, 'r')))
else:
return serve_file(request, File(file=open('%simages/1297211435_error.png' % settings.MEDIA_ROOT, 'r')))
#messages.error(request, e)
#return HttpResponse(e)
#def document_thumbnail(request, document_id):
# return get_document_image(request, document_id, THUMBNAIL_SIZE)
#def document_preview(request, document_id):
# return get_document_image(request, document_id, PREVIEW_SIZE)
def document_download(request, document_id):

View File

@@ -1,7 +1,7 @@
{% extends "base.html" %}
{% load i18n %}
{% load project_tags %}
{% block title %} :: {% trans 'About this program' %}{% endblock %}
{% block title %} :: {% trans "About this program" %}{% endblock %}
{% block content %}
<div class="content">

View File

@@ -35,7 +35,7 @@
'easingIn' : 'easeOutBack',
'easingOut' : 'easeInBack',
'type' : 'image',
'autoScale' : true,
'autoScale' : true
});
$("a.fancybox-noscaling").fancybox({
'titleShow' : false,
@@ -44,7 +44,7 @@
'easingIn' : 'easeOutBack',
'easingOut' : 'easeInBack',
'type' : 'image',
'autoScale' : false,
'autoScale' : false
});
});
</script>

View File

@@ -29,15 +29,18 @@ def check_settings(request):
{'name':'DOCUMENTS_STORAGE_DIRECTORY_NAME', 'value':documents_settings.STORAGE_DIRECTORY_NAME},
{'name':'DOCUMENTS_PREVIEW_SIZE', 'value':documents_settings.PREVIEW_SIZE},
{'name':'DOCUMENTS_THUMBNAIL_SIZE', 'value':documents_settings.THUMBNAIL_SIZE},
{'name':'DOCUMENTS_DISPLAY_SIZE', 'value':documents_settings.DISPLAY_SIZE},
{'name':'DOCUMENTS_FILESYSTEM_FILESERVING_ENABLE', 'value':documents_settings.FILESYSTEM_FILESERVING_ENABLE},
{'name':'DOCUMENTS_FILESYSTEM_FILESERVING_PATH', 'value':documents_settings.FILESYSTEM_FILESERVING_PATH, 'exists':True},
{'name':'DOCUMENTS_SLUGIFY_PATHS', 'value':documents_settings.FILESYSTEM_SLUGIFY_PATHS},
{'name':'DOCUMENTS_FILESYSTEM_MAX_RENAME_COUNT', 'value':documents_settings.FILESYSTEM_MAX_RENAME_COUNT},
{'name':'DOCUMENTS_TEMPORARY_DIRECTORY', 'value':documents_settings.TEMPORARY_DIRECTORY, 'exists':True},
#Converter
{'name':'CONVERTER_CONVERT_PATH', 'value':converter_settings.CONVERT_PATH, 'exists':True},
{'name':'CONVERTER_OCR_OPTIONS', 'value':converter_settings.OCR_OPTIONS},
#ocr
{'name':'OCR_TESSERACT_PATH', 'value':ocr_settings.TESSERACT_PATH, 'exists':True},
]

View File

@@ -2,7 +2,7 @@
import os
import sys
PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "./"))
PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), './'))
sys.path.append(os.path.join(PROJECT_ROOT, 'modules'))
sys.path.append(os.path.join(PROJECT_ROOT, 'customization_apps'))
@@ -26,7 +26,7 @@ MANAGERS = ADMINS
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': os.path.join(PROJECT_ROOT, "%s.sqlite" % PROJECT_NAME), # Or path to database file if using sqlite3.
'NAME': os.path.join(PROJECT_ROOT, '%s.sqlite' % PROJECT_NAME), # Or path to database file if using sqlite3.
'USER': '', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
@@ -170,6 +170,7 @@ LOGIN_EXEMPT_URLS = (
# Definition
#DOCUMENTS_METADATA_AVAILABLE_FUNCTIONS = {}
#DOCUMENTS_METADATA_AVAILABLE_MODELS = {}
# Upload
#DOCUMENTS_DELETE_LOCAL_ORIGINAL = False
#DOCUMENTS_USE_STAGING_DIRECTORY = False
@@ -180,24 +181,27 @@ LOGIN_EXEMPT_URLS = (
# Saving
#DOCUMENTS_CHECKSUM_FUNCTION = lambda x: hashlib.sha256(x).hexdigest())
#DOCUMENTS_UUID_FUNCTION = lambda:unicode(uuid.uuid4())
# Storage
#DOCUMENTS_STORAGE_DIRECTORY_NAME = 'documents'
#DOCUMENTS_STORAGE_BACKEND = DocumentStorage
# Usage
#DOCUMENTS_PREVIEW_SIZE = '640x480'
#DOCUMENTS_THUMBNAIL_SIZE = '50x50'
#DOCUMENTS_DISPLAY_SIZE = '1024x768'
# Serving
#DOCUMENTS_FILESYSTEM_FILESERVING_ENABLE = True
#DOCUMENTS_FILESYSTEM_FILESERVING_PATH = u'/tmp/mayan/documents'
#DOCUMENTS_FILESYSTEM_SLUGIFY_PATHS = False
#DOCUMENTS_FILESYSTEM_MAX_RENAME_COUNT = 200
# Misc
#DOCUMENTS_TEMPORARY_DIRECTORY = u'/tmp'
#CONVERTER_CONVERT_PATH = u'/usr/bin/convert'
#CONVERTER_OCR_OPTIONS = u'-colorspace Gray -depth 8 -resample 200x200'
#OCR_TESSERACT_PATH = u'/usr/bin/tesseract'
#======== End of configuration options =======
try:
@@ -217,19 +221,19 @@ if DEVELOPMENT:
import rosetta
INSTALLED_APPS += ('rosetta',)
except ImportError:
print "rosetta is not installed"
print 'rosetta is not installed'
try:
import django_extensions
INSTALLED_APPS +=('django_extensions',)
except ImportError:
print "django_extensions is not installed"
print 'django_extensions is not installed'
try:
import debug_toolbar
#INSTALLED_APPS.append('debug_toolbar')
except ImportError:
print "debug_toolbar is not installed"
print 'debug_toolbar is not installed'
TEMPLATE_CONTEXT_PROCESSORS += ('django.core.context_processors.debug',)

View File

@@ -23,5 +23,5 @@ if settings.DEVELOPMENT:
if 'rosetta' in settings.INSTALLED_APPS:
urlpatterns += patterns('',
url(r'^rosetta/', include('rosetta.urls'), name = "rosetta"),
url(r'^rosetta/', include('rosetta.urls'), name='rosetta'),
)

View File

@@ -4,13 +4,13 @@ import site
sys.stdout = sys.stderr
ve_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "lib/python2.6/site-packages"))
ve_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', 'lib/python2.6/site-packages'))
# Add the virtual Python environment site-packages directory to the path
site.addsitedir(ve_path)
# put the Django project on sys.path
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..")))
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')))
sys.path.insert(0, ve_path)
# Avoid ``[Errno 13] Permission denied: '/var/www/.python-eggs'`` messages