Initial commit of the generic history app
This commit is contained in:
@@ -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')
|
||||
|
||||
@@ -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'}]
|
||||
}
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user