Example #1
0
    def execute(self):
        task = Task()
        task.project = self.payload.get('project')
        task.title = self.payload.get('title')
        task_type = self.payload.get('task_type')
        task.task_type = task_type
        task.label = self.payload.get('label')
        task.priority = self.payload.get('priority')
        task.branch = Task.generate_branch()
        assignee = self.payload.get('assignee')
        if assignee:
            task.assignee = assignee
        if task_type == TaskChoices.SUB_TASK:
            task.parent = self.payload.get('parent')  # it must be instance

        task.deadline = self.payload.get('deadline')
        task.descriptions = self.payload.get('descriptions')
        created_by = self.payload.get('created_by')
        task.created_by = created_by
        task.save()
        if assignee != created_by:
            # send email & notifications to user if he not assignee task to himself

            title = f'{created_by.username} assigned an task to you.'
            payload = {
                'title': title,
                'recipient': assignee.id,
                'subject': ASSIGNEE_TASK,
                'related_data': task.id
            }
            NotificationTask.task_push_notification.delay(payload)
        return task
Example #2
0
 def test_task_is_dirty_foreign_key(self):
     user = self.create_user()
     task = Task(description='foobar', user=user)
     self.assertTrue(task._is_dirty())
     task.save()
     self.assertFalse(task._is_dirty())
     task.priority = Priority.objects.get(weight=1)
     self.assertItemsEqual(task._get_dirty_fields().keys(), ['priority'])
     self.assertTrue(task._is_dirty())
Example #3
0
 def test_task_is_dirty_foreign_key(self):
     user = self.create_user()
     task = Task(description='foobar', user=user)
     self.assertTrue(task._is_dirty())
     task.save()
     self.assertFalse(task._is_dirty())
     task.priority = Priority.objects.get(weight=1)
     self.assertItemsEqual(task._get_dirty_fields().keys(), ['priority'])
     self.assertTrue(task._is_dirty())