Fix Bug #165: Send emails on creation in bulk
parent
43cb4851bf
commit
56b9540b79
|
@ -16,7 +16,9 @@ class NotificationSenderMixin(object):
|
|||
|
||||
def post_save(self, obj, created=False):
|
||||
super().post_save(obj, created)
|
||||
self._post_save_notification_sender(obj, created)
|
||||
|
||||
def _post_save_notification_sender(self, obj, created=False):
|
||||
users = obj.get_watchers_to_notify(self.request.user)
|
||||
comment = self.request.DATA.get("comment", None)
|
||||
context = {'changer': self.request.user, "comment": comment, 'object': obj}
|
||||
|
|
|
@ -120,9 +120,11 @@ class TaskViewSet(NotificationSenderMixin, ModelCrudViewSet):
|
|||
|
||||
tasks = []
|
||||
for item in items:
|
||||
tasks.append(models.Task.objects.create(subject=item, project=project,
|
||||
obj = models.Task.objects.create(subject=item, project=project,
|
||||
user_story=us, owner=request.user,
|
||||
status=project.default_task_status))
|
||||
tasks_serialized = self.serializer_class(tasks, many=True)
|
||||
status=project.default_task_status)
|
||||
tasks.append(obj)
|
||||
self._post_save_notification_sender(obj, True)
|
||||
|
||||
tasks_serialized = self.serializer_class(tasks, many=True)
|
||||
return Response(data=tasks_serialized.data)
|
||||
|
|
|
@ -86,7 +86,8 @@ class UserStoryViewSet(NotificationSenderMixin, ModelCrudViewSet):
|
|||
raise exc.PermissionDenied(_("You don't have permisions to create user stories."))
|
||||
|
||||
service = services.UserStoriesService()
|
||||
service.bulk_insert(project, request.user, bulk_stories)
|
||||
service.bulk_insert(project, request.user, bulk_stories,
|
||||
callback_on_success=self._post_save_notification_sender)
|
||||
|
||||
return Response(data=None, status=status.HTTP_204_NO_CONTENT)
|
||||
|
||||
|
|
|
@ -4,17 +4,20 @@ from django.db import transaction
|
|||
from django.db import connection
|
||||
|
||||
from . import models
|
||||
import reversion
|
||||
|
||||
|
||||
class UserStoriesService(object):
|
||||
@transaction.atomic
|
||||
def bulk_insert(self, project, user, data):
|
||||
def bulk_insert(self, project, user, data, callback_on_success=None):
|
||||
items = filter(lambda s: len(s) > 0,
|
||||
map(lambda s: s.strip(), data.split("\n")))
|
||||
|
||||
for item in items:
|
||||
models.UserStory.objects.create(subject=item, project=project, owner=user,
|
||||
obj = models.UserStory.objects.create(subject=item, project=project, owner=user,
|
||||
status=project.default_us_status)
|
||||
if callback_on_success:
|
||||
callback_on_success(obj, True)
|
||||
|
||||
@transaction.atomic
|
||||
def bulk_update_order(self, project, user, data):
|
||||
|
|
Loading…
Reference in New Issue