diff --git a/mayan/apps/cabinets/events.py b/mayan/apps/cabinets/events.py index 63ed2fb8fd..f9cf338e02 100644 --- a/mayan/apps/cabinets/events.py +++ b/mayan/apps/cabinets/events.py @@ -2,13 +2,15 @@ from __future__ import absolute_import, unicode_literals from django.utils.translation import ugettext_lazy as _ -from events.classes import Event +from events.classes import EventTypeNamespace -event_cabinets_add_document = Event( - name='cabinets_add_document', - label=_('Document added to cabinet') +namespace = EventTypeNamespace(name='cabinets', label=_('Cabinets')) + +event_cabinets_add_document = namespace.add_event_type( + label=_('Document added to cabinet'), + name='add_document' ) -event_cabinets_remove_document = Event( - name='cabinets_remove_document', - label=_('Document removed from cabinet') +event_cabinets_remove_document = namespace.add_event_type( + label=_('Document removed from cabinet'), + name='remove_document' ) diff --git a/mayan/apps/document_parsing/events.py b/mayan/apps/document_parsing/events.py index 875527e911..0d8fb45475 100644 --- a/mayan/apps/document_parsing/events.py +++ b/mayan/apps/document_parsing/events.py @@ -2,13 +2,17 @@ from __future__ import absolute_import, unicode_literals from django.utils.translation import ugettext_lazy as _ -from events.classes import Event +from events import EventTypeNamespace -event_parsing_document_version_submit = Event( - name='parsing_document_version_submit', - label=_('Document version submitted for parsing') +namespace = EventTypeNamespace( + name='parsing', label=_('Document parsing') ) -event_parsing_document_version_finish = Event( - name='parsing_document_version_finish', - label=_('Document version parsing finished') + +event_parsing_document_version_submit = namespace.add_event_type( + label=_('Document version submitted for parsing'), + name='document_version_submit' +) +event_parsing_document_version_finish = namespace.add_event_type( + label=_('Document version parsing finished'), + name='document_version_finish' ) diff --git a/mayan/apps/document_states/handlers.py b/mayan/apps/document_states/handlers.py index a32b04947b..de62559796 100644 --- a/mayan/apps/document_states/handlers.py +++ b/mayan/apps/document_states/handlers.py @@ -4,7 +4,7 @@ from django.apps import apps from django.utils.translation import ugettext_lazy as _ from document_indexing.tasks import task_index_document -from events.classes import Event +from events.classes import EventType def handler_index_document(sender, **kwargs): @@ -42,8 +42,9 @@ def handler_trigger_transition(sender, **kwargs): transition = list(set(trigger_transitions) & set(workflow_instance.get_transition_choices()))[0] workflow_instance.do_transition( - comment=_('Event trigger: %s') % Event.get(name=action.verb).label, - transition=transition + comment=_('Event trigger: %s') % EventType.get( + name=action.verb + ).label, transition=transition ) diff --git a/mayan/apps/document_states/migrations/0005_auto_20170803_0638.py b/mayan/apps/document_states/migrations/0005_auto_20170803_0638.py index 22bf7c813f..786709ebd7 100644 --- a/mayan/apps/document_states/migrations/0005_auto_20170803_0638.py +++ b/mayan/apps/document_states/migrations/0005_auto_20170803_0638.py @@ -9,7 +9,7 @@ import django.db.models.deletion class Migration(migrations.Migration): dependencies = [ - ('events', '0001_initial'), + ('events', '0005_auto_20170731_0452'), ('document_states', '0004_workflow_internal_name'), ] @@ -17,8 +17,19 @@ class Migration(migrations.Migration): migrations.CreateModel( name='WorkflowTransitionTriggerEvent', fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('stored_event_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='trigger_events', to='events.EventType', verbose_name='Event type')), + ( + 'id', models.AutoField( + auto_created=True, primary_key=True, serialize=False, + verbose_name='ID' + ) + ), + ( + 'stored_event_type', models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name='trigger_events', + to='events.StoredEventType', verbose_name='Event type' + ) + ), ], options={ 'verbose_name': 'Workflow transition trigger event', @@ -28,16 +39,28 @@ class Migration(migrations.Migration): migrations.AddField( model_name='workflowtransition', name='trigger_time_period', - field=models.PositiveIntegerField(blank=True, help_text='Amount of time after which this transition will trigger on its own.', null=True, verbose_name='Trigger time period'), + field=models.PositiveIntegerField( + blank=True, help_text='Amount of time after which this ' + 'transition will trigger on its own.', null=True, + verbose_name='Trigger time period' + ), ), migrations.AddField( model_name='workflowtransition', name='trigger_time_unit', - field=models.CharField(blank=True, choices=[('days', 'Days'), ('hours', 'Hours'), ('minutes', 'Minutes')], max_length=8, null=True, verbose_name='Trigger time unit'), + field=models.CharField( + blank=True, choices=[ + ('days', 'Days'), ('hours', 'Hours'), + ('minutes', 'Minutes') + ], max_length=8, null=True, verbose_name='Trigger time unit'), ), migrations.AddField( model_name='workflowtransitiontriggerevent', name='transition', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='document_states.WorkflowTransition', verbose_name='Transition'), + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to='document_states.WorkflowTransition', + verbose_name='Transition' + ), ), ] diff --git a/mayan/apps/document_states/migrations/0007_auto_20170803_0728.py b/mayan/apps/document_states/migrations/0007_auto_20170803_0728.py index 81bdbd2c54..8db6b7974b 100644 --- a/mayan/apps/document_states/migrations/0007_auto_20170803_0728.py +++ b/mayan/apps/document_states/migrations/0007_auto_20170803_0728.py @@ -17,16 +17,28 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='workflowinstancelogentry', name='user', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='User'), + field=models.ForeignKey( + blank=True, null=True, + on_delete=django.db.models.deletion.CASCADE, + to=settings.AUTH_USER_MODEL, verbose_name='User' + ), ), migrations.AlterField( model_name='workflowtransitiontriggerevent', name='event_type', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.EventType', verbose_name='Event type'), + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to='events.StoredEventType', verbose_name='Event type' + ), ), migrations.AlterField( model_name='workflowtransitiontriggerevent', name='transition', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='trigger_events', to='document_states.WorkflowTransition', verbose_name='Transition'), + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name='trigger_events', + to='document_states.WorkflowTransition', + verbose_name='Transition' + ), ), ] diff --git a/mayan/apps/document_states/models.py b/mayan/apps/document_states/models.py index 3fd09ec999..7b2a1eb53c 100644 --- a/mayan/apps/document_states/models.py +++ b/mayan/apps/document_states/models.py @@ -17,7 +17,7 @@ from django.utils.translation import ugettext_lazy as _ from acls.models import AccessControlList from common.validators import validate_internal_name from documents.models import Document, DocumentType -from events.models import EventType +from events.models import StoredEventType from permissions import Permission from .error_logs import error_log_state_actions @@ -306,7 +306,8 @@ class WorkflowTransitionTriggerEvent(models.Model): related_name='trigger_events', verbose_name=_('Transition') ) event_type = models.ForeignKey( - EventType, on_delete=models.CASCADE, verbose_name=_('Event type') + StoredEventType, on_delete=models.CASCADE, + verbose_name=_('Event type') ) class Meta: diff --git a/mayan/apps/document_states/views.py b/mayan/apps/document_states/views.py index ccf5e8d25c..7fafe1422f 100644 --- a/mayan/apps/document_states/views.py +++ b/mayan/apps/document_states/views.py @@ -17,8 +17,8 @@ from common.views import ( ) from documents.models import Document from documents.views import DocumentListView -from events.classes import Event -from events.models import EventType +from events.classes import EventType +from events.models import StoredEventType from .classes import WorkflowAction from .forms import ( @@ -675,7 +675,7 @@ class WorkflowStateListView(SingleObjectListView): class SetupWorkflowTransitionTriggerEventListView(FormView): form_class = WorkflowTransitionTriggerEventRelationshipFormSet - submodel = EventType + submodel = StoredEventType def dispatch(self, *args, **kwargs): messages.warning( @@ -689,7 +689,7 @@ class SetupWorkflowTransitionTriggerEventListView(FormView): user=self.request.user, obj=self.get_object().workflow ) - Event.refresh() + EventType.refresh() return super( SetupWorkflowTransitionTriggerEventListView, self ).dispatch(*args, **kwargs) @@ -735,8 +735,10 @@ class SetupWorkflowTransitionTriggerEventListView(FormView): initial = [] # Return the queryset by name from the sorted list of the class - event_type_ids = [event_type.name for event_type in Event.all()] - event_type_queryset = EventType.objects.filter(name__in=event_type_ids) + event_type_ids = [event_type.name for event_type in EventType.all()] + event_type_queryset = StoredEventType.objects.filter( + name__in=event_type_ids + ) for event_type in event_type_queryset: initial.append({ diff --git a/mayan/apps/events/classes.py b/mayan/apps/events/classes.py index 9336e76c8e..f6e6a049bb 100644 --- a/mayan/apps/events/classes.py +++ b/mayan/apps/events/classes.py @@ -20,7 +20,7 @@ class EventTypeNamespace(object): @classmethod def all(cls): - return Event.sort(event_type_list=cls._registry.values()) + return sorted(cls._registry.values()) @classmethod def get(cls, name): diff --git a/mayan/apps/ocr/events.py b/mayan/apps/ocr/events.py index ac330df821..7a41144446 100644 --- a/mayan/apps/ocr/events.py +++ b/mayan/apps/ocr/events.py @@ -2,13 +2,15 @@ from __future__ import absolute_import, unicode_literals from django.utils.translation import ugettext_lazy as _ -from events.classes import Event +from events.classes import EventTypeNamespace -event_ocr_document_version_submit = Event( - name='ocr_document_version_submit', - label=_('Document version submitted for OCR') +namespace = EventTypeNamespace(name='ocr', label=_('OCR')) + +event_ocr_document_version_submit = namespace.add_event_type( + label=_('Document version submitted for OCR'), + name='document_version_submit' ) -event_ocr_document_version_finish = Event( - name='ocr_document_version_finish', - label=_('Document version OCR finished') +event_ocr_document_version_finish = namespace.add_event_type( + label=_('Document version OCR finished'), + name='document_version_finish' ) diff --git a/mayan/apps/ocr/urls.py b/mayan/apps/ocr/urls.py index b075f76ba5..40b46976ea 100644 --- a/mayan/apps/ocr/urls.py +++ b/mayan/apps/ocr/urls.py @@ -56,7 +56,7 @@ api_urls = [ name='document-version-ocr-submit-view' ), url( - r'^documents/(?P\d+)/versions/(?P\d+)/pages/(?P\d+)/ocr/$', APIDocumentPageContentView.as_view(), + r'^documents/(?P\d+)/versions/(?P\d+)/pages/(?P\d+)/ocr/$', APIDocumentPageOCRContentView.as_view(), name='document-page-content-view' ), diff --git a/mayan/apps/tags/events.py b/mayan/apps/tags/events.py index e5063aee2c..9b17e30975 100644 --- a/mayan/apps/tags/events.py +++ b/mayan/apps/tags/events.py @@ -2,13 +2,15 @@ from __future__ import absolute_import, unicode_literals from django.utils.translation import ugettext_lazy as _ -from events.classes import Event +from events.classes import EventTypeNamespace -event_tag_attach = Event( - name='tag_attach', - label=_('Tag attached to document') +namespace = EventTypeNamespace(name='tag', label=_('Tags')) + +event_tag_attach = namespace.add_event_type( + label=_('Tag attached to document'), + name='attach' ) -event_tag_remove = Event( - name='tag_remove', - label=_('Tag removed from document') +event_tag_remove = namespace.add_event_type( + label=_('Tag removed from document'), + name='remove' )