Initial commit of the generic history app

This commit is contained in:
Roberto Rosario
2011-05-26 05:07:26 -04:00
parent ecdc72f16c
commit 6c3aa1f37b
15 changed files with 369 additions and 5 deletions

View File

@@ -7,6 +7,7 @@ from navigation.api import register_links, register_menu, \
from main.api import register_diagnostic, register_tool
from permissions.api import register_permission, set_namespace_title
from tags.widgets import get_tags_inline_widget_simple
from history.api import register_history_type
from documents.models import Document, DocumentPage, DocumentPageTransformation
from documents.staging import StagingFile
@@ -17,7 +18,10 @@ from documents.literals import PERMISSION_DOCUMENT_CREATE, \
PERMISSION_DOCUMENT_DELETE, PERMISSION_DOCUMENT_DOWNLOAD, \
PERMISSION_DOCUMENT_TRANSFORM, PERMISSION_DOCUMENT_TOOLS, \
PERMISSION_DOCUMENT_EDIT
from documents.literals import HISTORY_DOCUMENT_CREATED, \
HISTORY_DOCUMENT_EDITED
# Permission setup
set_namespace_title('documents', _(u'documents'))
register_permission(PERMISSION_DOCUMENT_CREATE)
register_permission(PERMISSION_DOCUMENT_PROPERTIES_EDIT)
@@ -28,6 +32,10 @@ register_permission(PERMISSION_DOCUMENT_DOWNLOAD)
register_permission(PERMISSION_DOCUMENT_TRANSFORM)
register_permission(PERMISSION_DOCUMENT_TOOLS)
# History setup
register_history_type(HISTORY_DOCUMENT_CREATED)
register_history_type(HISTORY_DOCUMENT_EDITED)
document_list = {'text': _(u'documents list'), 'view': 'document_list', 'famfam': 'page', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
document_list_recent = {'text': _(u'recent documents list'), 'view': 'document_list_recent', 'famfam': 'page', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
document_create = {'text': _(u'upload a new document'), 'view': 'document_create', 'famfam': 'page_add', 'permissions': [PERMISSION_DOCUMENT_CREATE]}
@@ -97,7 +105,6 @@ register_links(['document_page_view'], [document_page_rotate_left, document_page
# Upload sources
register_links(['upload_document_from_local', 'upload_document_from_staging', 'upload_document_from_user_staging'], [upload_document_from_local, upload_document_from_staging, upload_document_from_user_staging], menu_name='form_header')
register_links(DocumentPageTransformation, [document_page_transformation_edit, document_page_transformation_delete])
register_links(DocumentPageTransformation, [document_page_transformation_page_edit, document_page_transformation_page_view], menu_name='sidebar')
register_links('document_page_transformation_list', [document_page_transformation_create], menu_name='sidebar')

View File

@@ -17,3 +17,19 @@ PERMISSION_DOCUMENT_TOOLS = {'namespace': 'documents', 'name': 'document_tools',
UPLOAD_SOURCE_LOCAL = u'local'
UPLOAD_SOURCE_STAGING = u'staging'
UPLOAD_SOURCE_USER_STAGING = u'user_staging'
HISTORY_DOCUMENT_CREATED = {
'namespace': 'documents', 'name': 'document_created',
'label': _(u'Document creation'),
'summary': _(u'Document: %(content_object)s created by %(fullname)s.'),
'details': _(u'Document: %(content_object)s created on %(datetime)s by %(fullname)s.'),
'expressions': [{'fullname': 'user.get_full_name() if user.get_full_name() else user.username'}]
}
HISTORY_DOCUMENT_EDITED = {
'namespace': 'documents', 'name': 'document_edited',
'label': _(u'Document edited'),
'summary': _(u'Document: %(content_object)s edited by %(fullname)s.'),
'details': _(u'Document: %(content_object)s edited on %(datetime)s by %(fullname)s.'),
'expressions': [{'fullname': 'user.get_full_name() if user.get_full_name() else user.username'}]
}

View File

@@ -63,7 +63,7 @@ class Document(models.Model):
description = models.TextField(blank=True, null=True, verbose_name=_(u'description'), db_index=True)
tags = TaggableManager()
comments = generic.GenericRelation(
Comment,
content_type_field='content_type',

View File

@@ -35,6 +35,7 @@ from permissions.api import check_permissions
from tags.utils import get_tags_subtemplate
from document_indexing.utils import get_document_indexing_subtemplate
from document_indexing.api import update_indexes, delete_indexes
from history.api import create_history
from documents.conf.settings import DELETE_STAGING_FILE_AFTER_UPLOAD
from documents.conf.settings import USE_STAGING_DIRECTORY
@@ -57,6 +58,8 @@ from documents.literals import PERMISSION_DOCUMENT_CREATE, \
PERMISSION_DOCUMENT_DELETE, PERMISSION_DOCUMENT_DOWNLOAD, \
PERMISSION_DOCUMENT_TRANSFORM, \
PERMISSION_DOCUMENT_EDIT
from documents.literals import HISTORY_DOCUMENT_CREATED, \
HISTORY_DOCUMENT_EDITED
from documents.forms import DocumentTypeSelectForm, \
DocumentForm, DocumentForm_edit, DocumentPropertiesForm, \
@@ -132,6 +135,8 @@ def _handle_save_document(request, document, form=None):
for warning in warnings:
messages.warning(request, warning)
create_history(HISTORY_DOCUMENT_CREATED, document, {'user': request.user})
def _handle_zip_file(request, uploaded_file, document_type=None):
filename = getattr(uploaded_file, 'filename', getattr(uploaded_file, 'name', ''))
@@ -273,7 +278,7 @@ def document_view_simple(request, document_id):
# Triggers a 404 error on documents uploaded via local upload
# TODO: investigate
document = get_object_or_404(Document, pk=document_id)
RecentDocument.objects.add_document_for_user(request.user, document)
subtemplates_list = []
@@ -491,8 +496,6 @@ def document_edit(request, document_id):
document = get_object_or_404(Document, pk=document_id)
RecentDocument.objects.add_document_for_user(request.user, document)
if request.method == 'POST':
form = DocumentForm_edit(request.POST, initial={'document_type': document.document_type})
if form.is_valid():
@@ -510,6 +513,9 @@ def document_edit(request, document_id):
document.save()
create_history(HISTORY_DOCUMENT_EDITED, document, {'user': request.user})
RecentDocument.objects.add_document_for_user(request.user, document)
messages.success(request, _(u'Document %s edited successfully.') % document)
warnings = update_indexes(document)