Skip to content

Commit

Permalink
[#105] Handle hooks on DB
Browse files Browse the repository at this point in the history
  • Loading branch information
javrasya committed Nov 17, 2019
1 parent f738610 commit ec3fbe4
Show file tree
Hide file tree
Showing 34 changed files with 606 additions and 759 deletions.
9 changes: 0 additions & 9 deletions river/apps.py
Expand Up @@ -16,9 +16,6 @@ class RiverApp(AppConfig):

def ready(self):

from river.hooking.backends.database import DatabaseHookingBackend
from river.hooking.backends.loader import callback_backend

for field_name in self._get_all_workflow_fields():
try:
workflows = self.get_model('Workflow').objects.filter(field_name=field_name)
Expand All @@ -27,12 +24,6 @@ def ready(self):
except (OperationalError, ProgrammingError):
pass

if isinstance(callback_backend, DatabaseHookingBackend):
try:
self.get_model('Callback').objects.exists()
callback_backend.initialize_callbacks()
except (OperationalError, ProgrammingError):
pass
LOGGER.debug('RiverApp is loaded.')

@classmethod
Expand Down
5 changes: 0 additions & 5 deletions river/config.py
Expand Up @@ -17,11 +17,6 @@ def load(self):
self.USER_CLASS = getattr(settings, self.get_with_prefix('USER_CLASS'), settings.AUTH_USER_MODEL)
self.PERMISSION_CLASS = getattr(settings, self.get_with_prefix('PERMISSION_CLASS'), Permission)
self.GROUP_CLASS = getattr(settings, self.get_with_prefix('GROUP_CLASS'), Group)
self.HOOKING_BACKEND = getattr(settings, self.get_with_prefix('HOOKING_BACKEND'), {'backend': 'river.hooking.backends.database.DatabaseHookingBackend'})

# Generated
self.HOOKING_BACKEND_CLASS = self.HOOKING_BACKEND.get('backend')
self.HOOKING_BACKEND_CONFIG = self.HOOKING_BACKEND.get('config', {})


app_config = RiverConfig()
Expand Down
14 changes: 0 additions & 14 deletions river/core/classworkflowobject.py
Expand Up @@ -4,8 +4,6 @@
from django.db.models.functions import Cast
from django_cte import With

from river.hooking.completed import PostCompletedHooking, PreCompletedHooking
from river.hooking.transition import PostTransitionHooking, PreTransitionHooking
from river.models import State, TransitionApprovalMeta, TransitionApproval, PENDING, Workflow


Expand Down Expand Up @@ -71,18 +69,6 @@ def final_states(self):
final_approvals = TransitionApprovalMeta.objects.filter(workflow=self.workflow, children__isnull=True)
return State.objects.filter(pk__in=final_approvals.values_list("destination_state", flat=True))

def hook_post_transition(self, callback, *args, **kwargs):
PostTransitionHooking.register(callback, None, self.field_name, *args, **kwargs)

def hook_pre_transition(self, callback, *args, **kwargs):
PreTransitionHooking.register(callback, None, self.field_name, *args, **kwargs)

def hook_post_complete(self, callback):
PostCompletedHooking.register(callback, None, self.field_name)

def hook_pre_complete(self, callback):
PreCompletedHooking.register(callback, None, self.field_name)

def _authorized_approvals(self, as_user):
group_q = Q()
for g in as_user.groups.all():
Expand Down
14 changes: 0 additions & 14 deletions river/core/instanceworkflowobject.py
Expand Up @@ -7,8 +7,6 @@
from django.utils import timezone

from river.config import app_config
from river.hooking.completed import PostCompletedHooking, PreCompletedHooking
from river.hooking.transition import PostTransitionHooking, PreTransitionHooking
from river.models import TransitionApproval, PENDING, State, APPROVED, Workflow
from river.signals import ApproveSignal, TransitionSignal, OnCompleteSignal
from river.utils.error_code import ErrorCode
Expand Down Expand Up @@ -141,18 +139,6 @@ def _transition_signal(self, has_transit, approval):
def _on_complete_signal(self):
return OnCompleteSignal(self.workflow_object, self.field_name)

def hook_post_transition(self, callback, *args, **kwargs):
PostTransitionHooking.register(callback, self.workflow_object, self.field_name, *args, **kwargs)

def hook_pre_transition(self, callback, *args, **kwargs):
PreTransitionHooking.register(callback, self.workflow_object, self.field_name, *args, **kwargs)

def hook_post_complete(self, callback):
PostCompletedHooking.register(callback, self.workflow_object, self.field_name)

def hook_pre_complete(self, callback):
PreCompletedHooking.register(callback, self.workflow_object, self.field_name)

@property
def _content_type(self):
return ContentType.objects.get_for_model(self.workflow_object)
Expand Down
1 change: 0 additions & 1 deletion river/hooking/__init__.py

This file was deleted.

1 change: 0 additions & 1 deletion river/hooking/backends/__init__.py

This file was deleted.

31 changes: 0 additions & 31 deletions river/hooking/backends/base.py

This file was deleted.

71 changes: 0 additions & 71 deletions river/hooking/backends/database.py

This file was deleted.

6 changes: 0 additions & 6 deletions river/hooking/backends/loader.py

This file was deleted.

40 changes: 0 additions & 40 deletions river/hooking/backends/memory.py

This file was deleted.

16 changes: 0 additions & 16 deletions river/hooking/completed.py

This file was deleted.

41 changes: 0 additions & 41 deletions river/hooking/hooking.py

This file was deleted.

28 changes: 0 additions & 28 deletions river/hooking/transition.py

This file was deleted.

0 comments on commit ec3fbe4

Please sign in to comment.