Initial commit of the new events app

This commit is contained in:
Roberto Rosario
2015-01-10 19:01:57 -04:00
parent 9c0f8feaed
commit bbab21d228
23 changed files with 179 additions and 96 deletions

View File

@@ -8,7 +8,6 @@ from acls.api import class_permissions
from common.classes import ModelAttribute
from common.utils import encapsulate, validate_path
from dynamic_search.classes import SearchModel
from history.api import register_history_type
from history.permissions import PERMISSION_HISTORY_VIEW
from main.api import register_maintenance_links
from navigation.api import (register_links, register_model_list_columns)
@@ -18,8 +17,6 @@ from rest_api.classes import APIEndPoint
from statistics.classes import StatisticNamespace
from documents import settings as document_settings
from .events import (HISTORY_DOCUMENT_CREATED,
HISTORY_DOCUMENT_DELETED, HISTORY_DOCUMENT_EDITED)
from .links import (document_clear_image_cache,
document_clear_transformations, document_content,
document_delete,
@@ -63,11 +60,6 @@ from .settings import THUMBNAIL_SIZE
from .statistics import DocumentStatistics, DocumentUsageStatistics
from .widgets import document_thumbnail
# History setup
register_history_type(HISTORY_DOCUMENT_CREATED)
register_history_type(HISTORY_DOCUMENT_EDITED)
register_history_type(HISTORY_DOCUMENT_DELETED)
# Register document type links
register_links(DocumentType, [document_type_edit, document_type_filename_list, document_type_delete])
register_links([DocumentType, 'documents:document_type_create', 'documents:document_type_list'], [document_type_list, document_type_create], menu_name='secondary_menu')

View File

@@ -1,5 +1,11 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from events.classes import Event
event_document_create = Event(name='documents_document_create', label=_('Document created'))
HISTORY_DOCUMENT_CREATED = {
'namespace': 'documents', 'name': 'document_created',
'label': _(u'Document creation'),
@@ -8,6 +14,8 @@ HISTORY_DOCUMENT_CREATED = {
'expressions': {'fullname': 'user[0]["fields"]["username"] if isinstance(user, list) else user.get_full_name() if user.get_full_name() else user.username'}
}
event_document_edited = Event(name='documents_document_edit', label=_('Document edited'))
HISTORY_DOCUMENT_EDITED = {
'namespace': 'documents', 'name': 'document_edited',
'label': _(u'Document edited'),
@@ -17,11 +25,3 @@ HISTORY_DOCUMENT_EDITED = {
'fullname': 'user[0]["fields"]["username"] if isinstance(user, list) else user.get_full_name() if user.get_full_name() else user.username',
}
}
HISTORY_DOCUMENT_DELETED = {
'namespace': 'documents', 'name': 'document_deleted',
'label': _(u'Document deleted'),
'summary': _(u'Document "%(document)s" deleted by %(fullname)s.'),
'details': _(u'Document "%(document)s" deleted on %(datetime)s by %(fullname)s.'),
'expressions': {'fullname': 'user.get_full_name() if user.get_full_name() else user.username'}
}

View File

@@ -19,6 +19,8 @@ from django.core.exceptions import ValidationError
from django.utils.translation import ugettext
from django.utils.translation import ugettext_lazy as _
from actstream import registry
from acls.utils import apply_default_acls
from common.settings import TEMPORARY_DIRECTORY
from converter.api import (convert, get_page_count,
@@ -26,10 +28,9 @@ from converter.api import (convert, get_page_count,
from converter.exceptions import UnknownFileFormat
from converter.literals import (DEFAULT_ZOOM_LEVEL, DEFAULT_ROTATION,
DEFAULT_PAGE_NUMBER)
from history.api import create_history
from mimetype.api import get_mimetype
from .events import HISTORY_DOCUMENT_CREATED
from .events import event_document_create
from .exceptions import NewDocumentVersionNotAllowed
from .literals import LANGUAGE_CHOICES
from .managers import (DocumentManager, DocumentPageTransformationManager,
@@ -119,9 +120,9 @@ class Document(models.Model):
if user:
self.add_as_recent_document_for_user(user)
create_history(HISTORY_DOCUMENT_CREATED, self, {'user': user})
event_document_create.commit(actor=user, target=self)
else:
create_history(HISTORY_DOCUMENT_CREATED, self)
event_document_create.commit(target=self)
def get_cached_image_name(self, page, version):
document_version = DocumentVersion.objects.get(pk=version)
@@ -582,3 +583,5 @@ class RecentDocument(models.Model):
# Quick hack to break the DocumentPage and DocumentPageTransformation circular dependency
# Can be remove once the transformations are moved to the converter app
DocumentPage.add_to_class('get_transformation_list', lambda document_page: DocumentPageTransformation.objects.get_for_document_page_as_list(document_page))
registry.register(Document)

View File

@@ -23,11 +23,10 @@ from common.widgets import two_state_template
from converter.literals import (DEFAULT_FILE_FORMAT_MIMETYPE, DEFAULT_PAGE_NUMBER,
DEFAULT_ROTATION, DEFAULT_ZOOM_LEVEL)
from filetransfers.api import serve_file
from history.api import create_history
from navigation.utils import resolve_to_name
from permissions.models import Permission
from .events import HISTORY_DOCUMENT_EDITED
from .events import event_document_edited
from .forms import (DocumentContentForm, DocumentDownloadForm, DocumentForm,
DocumentPageForm, DocumentPageForm_edit,
DocumentPageForm_text, DocumentPageTransformationForm,
@@ -238,7 +237,7 @@ def document_edit(request, document_id):
document.label = form.cleaned_data['document_type_available_filenames'].filename
document.save()
create_history(HISTORY_DOCUMENT_EDITED, document, {'user': request.user})
event_document_edited.commit(actor=request.user)
document.add_as_recent_document_for_user(request.user)
messages.success(request, _(u'Document "%s" edited successfully.') % document)
@@ -280,7 +279,7 @@ def document_document_type_edit(request, document_id=None, document_id_list=None
for document in documents:
document.set_document_type(form.cleaned_data['document_type'])
create_history(HISTORY_DOCUMENT_EDITED, document, {'user': request.user})
event_document_edited.commit(actor=request.user)
document.add_as_recent_document_for_user(request.user)
messages.success(request, _(u'Document type changed successfully.'))