Update apps for new class based history events
This commit is contained in:
@@ -9,7 +9,6 @@ from scheduler.api import register_interval_job
|
||||
from documents.models import Document
|
||||
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
||||
from acls.api import class_permissions
|
||||
from history.api import register_history_type
|
||||
|
||||
from .permissions import (PERMISSION_DOCUMENT_CHECKOUT,
|
||||
PERMISSION_DOCUMENT_CHECKIN, PERMISSION_DOCUMENT_CHECKIN_OVERRIDE,
|
||||
@@ -17,8 +16,6 @@ from .permissions import (PERMISSION_DOCUMENT_CHECKOUT,
|
||||
from .links import checkout_list, checkout_document, checkout_info, checkin_document
|
||||
from .models import DocumentCheckout
|
||||
from .tasks import task_check_expired_check_outs
|
||||
from .events import (HISTORY_DOCUMENT_CHECKED_OUT, HISTORY_DOCUMENT_CHECKED_IN,
|
||||
HISTORY_DOCUMENT_AUTO_CHECKED_IN, HISTORY_DOCUMENT_FORCEFUL_CHECK_IN)
|
||||
|
||||
|
||||
def initialize_document_checkout_extra_methods():
|
||||
@@ -42,7 +39,3 @@ class_permissions(Document, [
|
||||
CHECK_EXPIRED_CHECK_OUTS_INTERVAL=60 # Lowest check out expiration allowed
|
||||
register_interval_job('task_check_expired_check_outs', _(u'Check expired check out documents and checks them in.'), task_check_expired_check_outs, seconds=CHECK_EXPIRED_CHECK_OUTS_INTERVAL)
|
||||
initialize_document_checkout_extra_methods()
|
||||
register_history_type(HISTORY_DOCUMENT_CHECKED_OUT)
|
||||
register_history_type(HISTORY_DOCUMENT_CHECKED_IN)
|
||||
register_history_type(HISTORY_DOCUMENT_AUTO_CHECKED_IN)
|
||||
register_history_type(HISTORY_DOCUMENT_FORCEFUL_CHECK_IN)
|
||||
|
||||
@@ -1,28 +1,24 @@
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
HISTORY_DOCUMENT_CHECKED_OUT = {
|
||||
'namespace': 'checkouts', 'name': 'document_checked_out',
|
||||
'label': _(u'Document checked out'),
|
||||
'summary': _(u'Document "%(document)s" checked out by %(fullname)s.'),
|
||||
'expressions': {'fullname': 'user.get_full_name() if user.get_full_name() else user'}
|
||||
}
|
||||
from history.api import EventNamespace, Event
|
||||
|
||||
HISTORY_DOCUMENT_CHECKED_IN = {
|
||||
'namespace': 'checkouts', 'name': 'document_checked_in',
|
||||
'label': _(u'Document checked in'),
|
||||
'summary': _(u'Document "%(document)s" checked in by %(fullname)s.'),
|
||||
'expressions': {'fullname': 'user.get_full_name() if user.get_full_name() else user'}
|
||||
}
|
||||
namespace = EventNamespace('checkouts', _(u'checkouts'))
|
||||
|
||||
HISTORY_DOCUMENT_AUTO_CHECKED_IN = {
|
||||
'namespace': 'checkouts', 'name': 'document_auto_checked_in',
|
||||
'label': _(u'Document automatically checked in'),
|
||||
'summary': _(u'Document "%(document)s" automatically checked in.'),
|
||||
}
|
||||
history_document_checked_out = Event(namespace=namespace, name='document_checked_out', label=_(u'Document checked out'),
|
||||
summary=_(u'Document "%(document)s" checked out by %(fullname)s.'),
|
||||
expressions={'fullname': 'user.get_full_name() if user.get_full_name() else user'}
|
||||
)
|
||||
|
||||
HISTORY_DOCUMENT_FORCEFUL_CHECK_IN = {
|
||||
'namespace': 'checkouts', 'name': 'document_forefull_check_in',
|
||||
'label': _(u'Document forcefully checked in'),
|
||||
'summary': _(u'Document "%(document)s" forcefully checked in by %(fullname)s.'),
|
||||
'expressions': {'fullname': 'user.get_full_name() if user.get_full_name() else user'}
|
||||
}
|
||||
history_document_checked_in = Event(namespace=namespace, name='document_checked_in', label=_(u'Document checked in'),
|
||||
summary=_(u'Document "%(document)s" checked in by %(fullname)s.'),
|
||||
expressions={'fullname': 'user.get_full_name() if user.get_full_name() else user'}
|
||||
)
|
||||
|
||||
history_document_auto_checked_in = Event(namespace=namespace, name='document_auto_checked_in', label=_(u'Document automatically checked in'),
|
||||
summary=_(u'Document "%(document)s" automatically checked in.'),
|
||||
)
|
||||
|
||||
history_document_forceful_check_in = Event(namespace=namespace, name='document_forefull_check_in', label=_(u'Document forcefully checked in'),
|
||||
summary=_(u'Document "%(document)s" forcefully checked in by %(fullname)s.'),
|
||||
expressions={'fullname': 'user.get_full_name() if user.get_full_name() else user'}
|
||||
)
|
||||
|
||||
@@ -7,17 +7,15 @@ from django.db import models
|
||||
from django.core.exceptions import PermissionDenied
|
||||
|
||||
from documents.models import Document
|
||||
from history.api import create_history
|
||||
from permissions.models import Permission
|
||||
from acls.models import AccessEntry
|
||||
|
||||
from .exceptions import DocumentNotCheckedOut
|
||||
from .literals import STATE_CHECKED_OUT, STATE_CHECKED_IN
|
||||
from .events import (HISTORY_DOCUMENT_CHECKED_IN, HISTORY_DOCUMENT_AUTO_CHECKED_IN,
|
||||
HISTORY_DOCUMENT_FORCEFUL_CHECK_IN)
|
||||
from .events import (history_document_checked_in, history_document_auto_checked_in,
|
||||
history_document_forceful_check_in)
|
||||
from .permissions import PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE
|
||||
|
||||
from history.api import create_history
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -48,11 +46,11 @@ class DocumentCheckoutManager(models.Manager):
|
||||
else:
|
||||
if user:
|
||||
if self.document_checkout_info(document).user_object != user:
|
||||
create_history(HISTORY_DOCUMENT_FORCEFUL_CHECK_IN, source_object=document, data={'user': user, 'document': document})
|
||||
history_document_forceful_check_in.commit(source_object=document, data={'user': user, 'document': document})
|
||||
else:
|
||||
create_history(HISTORY_DOCUMENT_CHECKED_IN, source_object=document, data={'user': user, 'document': document})
|
||||
history_document_checked_in.commit(source_object=document, data={'user': user, 'document': document})
|
||||
else:
|
||||
create_history(HISTORY_DOCUMENT_AUTO_CHECKED_IN, source_object=document, data={'document': document})
|
||||
history_document_auto_checked_in.commit(source_object=document, data={'document': document})
|
||||
|
||||
document_checkout.delete()
|
||||
|
||||
|
||||
@@ -9,11 +9,10 @@ from django.contrib.contenttypes.models import ContentType
|
||||
from django.contrib.contenttypes import generic
|
||||
|
||||
from documents.models import Document
|
||||
from history.api import create_history
|
||||
|
||||
from .managers import DocumentCheckoutManager
|
||||
from .exceptions import DocumentAlreadyCheckedOut
|
||||
from .events import HISTORY_DOCUMENT_CHECKED_OUT
|
||||
from .events import history_document_checked_out
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -44,7 +43,7 @@ class DocumentCheckout(models.Model):
|
||||
if not self.pk:
|
||||
self.checkout_datetime = datetime.datetime.now()
|
||||
result = super(DocumentCheckout, self).save(*args, **kwargs)
|
||||
create_history(HISTORY_DOCUMENT_CHECKED_OUT, source_object=self.document, data={'user': self.user_object, 'document': self.document})
|
||||
history_document_checked_out.commit(source_object=self.document, data={'user': self.user_object, 'document': self.document})
|
||||
return result
|
||||
|
||||
@models.permalink
|
||||
|
||||
@@ -9,7 +9,6 @@ from navigation.api import (register_links, register_top_menu,
|
||||
register_model_list_columns, register_multi_item_links,
|
||||
register_sidebar_template)
|
||||
from main.api import register_diagnostic, register_maintenance_links
|
||||
from history.api import register_history_type
|
||||
from history.permissions import PERMISSION_HISTORY_VIEW
|
||||
from metadata.api import get_metadata_string
|
||||
from project_setup.api import register_setup
|
||||
@@ -26,8 +25,6 @@ from .permissions import (PERMISSION_DOCUMENT_CREATE,
|
||||
PERMISSION_DOCUMENT_TYPE_EDIT, PERMISSION_DOCUMENT_TYPE_DELETE,
|
||||
PERMISSION_DOCUMENT_TYPE_CREATE, PERMISSION_DOCUMENT_TYPE_VIEW,
|
||||
PERMISSION_DOCUMENT_NEW_VERSION)
|
||||
from .events import (HISTORY_DOCUMENT_CREATED,
|
||||
HISTORY_DOCUMENT_EDITED, HISTORY_DOCUMENT_DELETED)
|
||||
from .conf.settings import ZOOM_MAX_LEVEL
|
||||
from .conf.settings import ZOOM_MIN_LEVEL
|
||||
from .conf import settings as document_settings
|
||||
@@ -55,11 +52,6 @@ def is_max_zoom(context):
|
||||
def is_current_version(context):
|
||||
return context['object'].document.latest_version.timestamp == context['object'].timestamp
|
||||
|
||||
# History setup
|
||||
register_history_type(HISTORY_DOCUMENT_CREATED)
|
||||
register_history_type(HISTORY_DOCUMENT_EDITED)
|
||||
register_history_type(HISTORY_DOCUMENT_DELETED)
|
||||
|
||||
document_list = {'text': _(u'all documents'), 'view': 'document_list', 'famfam': 'page'}
|
||||
document_list_recent = {'text': _(u'recent documents'), 'view': 'document_list_recent', 'famfam': 'page'}
|
||||
document_create_multiple = {'text': _(u'upload new documents'), 'view': 'document_create_multiple', 'famfam': 'page_add', 'permissions': [PERMISSION_DOCUMENT_CREATE], 'children_view_regex': [r'upload_interactive']}
|
||||
|
||||
@@ -1,28 +1,26 @@
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
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'}
|
||||
}
|
||||
from history.api import EventNamespace, Event
|
||||
|
||||
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" was edited on %(datetime)s by %(fullname)s. The following changes took place: %(changes)s.'),
|
||||
'expressions': {
|
||||
namespace = EventNamespace('documents', _('documents'))
|
||||
|
||||
history_document_created = Event(namespace=namespace, 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 = Event(namespace=namespace, name='document_edited', label=_(u'Document edited'),
|
||||
summary=_(u'Document "%(content_object)s" edited by %(fullname)s.'),
|
||||
details=_(u'Document "%(content_object)s" was edited on %(datetime)s by %(fullname)s. The following changes took place: %(changes)s.'),
|
||||
expressions={
|
||||
'fullname': 'user.get_full_name() if user.get_full_name() else user.username',
|
||||
'changes': 'u\', \'.join([\'"%s": "%s" -> "%s"\' % (key, value[\'old_value\'], value[\'new_value\']) for key, value in diff.items()])'
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
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'}
|
||||
}
|
||||
history_document_deleted = HISTORY_DOCUMENT_DELETED = Event(namespace=namespace, 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'}
|
||||
)
|
||||
|
||||
@@ -30,7 +30,6 @@ from metadata.forms import MetadataFormSet, MetadataSelectionForm
|
||||
from navigation.utils import resolve_to_name
|
||||
from permissions.models import Permission
|
||||
from document_indexing.api import update_indexes, delete_indexes
|
||||
from history.api import create_history
|
||||
from acls.models import AccessEntry
|
||||
from common.compressed_files import CompressedFile
|
||||
|
||||
@@ -44,8 +43,7 @@ from .permissions import (PERMISSION_DOCUMENT_CREATE,
|
||||
PERMISSION_DOCUMENT_EDIT, PERMISSION_DOCUMENT_VERSION_REVERT,
|
||||
PERMISSION_DOCUMENT_TYPE_EDIT, PERMISSION_DOCUMENT_TYPE_DELETE,
|
||||
PERMISSION_DOCUMENT_TYPE_CREATE, PERMISSION_DOCUMENT_TYPE_VIEW)
|
||||
from .events import (HISTORY_DOCUMENT_CREATED,
|
||||
HISTORY_DOCUMENT_EDITED, HISTORY_DOCUMENT_DELETED)
|
||||
from .events import history_document_edited
|
||||
from .forms import (DocumentTypeSelectForm,
|
||||
DocumentForm_edit, DocumentPropertiesForm,
|
||||
DocumentPreviewForm, DocumentPageForm,
|
||||
@@ -270,7 +268,7 @@ def document_edit(request, document_id):
|
||||
document.filename = form.cleaned_data['document_type_available_filenames'].filename
|
||||
|
||||
document.save()
|
||||
create_history(HISTORY_DOCUMENT_EDITED, document, {'user': request.user, 'diff': return_diff(old_document, document, ['filename', 'description'])})
|
||||
history_document_edited.commit(source_object=document, data={'user': request.user, 'diff': return_diff(old_document, document, ['filename', 'description'])})
|
||||
RecentDocument.objects.add_document_for_user(request.user, document)
|
||||
|
||||
messages.success(request, _(u'Document "%s" edited successfully.') % document)
|
||||
|
||||
@@ -13,9 +13,8 @@ from django.db import transaction
|
||||
from converter.api import get_available_transformations_choices
|
||||
from converter.literals import DIMENSION_SEPARATOR
|
||||
from documents.models import DocumentType, Document
|
||||
from documents.events import HISTORY_DOCUMENT_CREATED
|
||||
from documents.events import history_document_created
|
||||
from document_indexing.api import update_indexes
|
||||
from history.api import create_history
|
||||
from metadata.models import MetadataType
|
||||
from metadata.api import save_metadata_list
|
||||
from scheduler.api import register_interval_job, remove_job
|
||||
@@ -101,9 +100,9 @@ class BaseModel(models.Model):
|
||||
|
||||
if user:
|
||||
document.add_as_recent_document_for_user(user)
|
||||
create_history(HISTORY_DOCUMENT_CREATED, document, {'user': user})
|
||||
history_document_created.commit(source_object=document, data={'user': user})
|
||||
else:
|
||||
create_history(HISTORY_DOCUMENT_CREATED, document)
|
||||
history_document_created.commit(source_object=document)
|
||||
else:
|
||||
if use_file_name:
|
||||
filename = None
|
||||
|
||||
Reference in New Issue
Block a user