Example #1
0
 def post(self, request):
     msg = Message(subject='Site feedback',
                   message_text=request.data['body'],
                   owner=User.objects.get(pk=1),
                   sender=request.user.get_username())
     msg.save()
     msg = Message.objects.get(pk=msg.pk)
     return Response({})
Example #2
0
 def post(self, request):
     msg = Message(subject='Site feedback',
                   message_text=request.data['body'],
                   owner=User.objects.get(pk=1),
                   sender=request.user.get_username())
     msg.save()
     msg = Message.objects.get(pk=msg.pk)
     return Response({})
Example #3
0
 def test_defer_message(self):
     """Verify that a message can be rescheduled for the future."""
     msg = Message(rcvd_date=dt.datetime(2014, 6, 14, tzinfo=pytz.utc),
                   owner=User.objects.get(pk=1))
     msg.save()
     # Defer the message and refresh
     new_date = dt.datetime(2014, 6, 15, tzinfo=pytz.utc)
     msg.handler.defer(new_date)
     msg = Message.objects.get(pk=msg.pk)
     self.assertEqual(msg.rcvd_date, new_date)
Example #4
0
def set_deferred_message(sender, instance, **kwargs):
    """
    Checks if the Node is a deferred Node and if so,
    set the deferred_message foreign key.
    """
    if not kwargs['raw']:
        if (getattr(instance.todo_state, 'abbreviation', None) == 'DFRD'
                and not instance.archived):
            # Node is deferred so create new message or update existing message
            message = instance.get_deferred_msg()
            if message is None:
                message = Message()
                message.source_node = instance
            message.subject = instance.title
            message.handler_path = 'plugins.deferred'
            message.owner = instance.owner
            message.rcvd_date = dt.datetime.combine(
                instance.scheduled_date,
                dt.time(0, tzinfo=get_current_timezone()),
            )
            message.save()
        else:
            # If instance is not deferred, then it can't have a deferred_message
            message = instance.get_deferred_msg()
            if message is not None and message.pk is not None:
                instance.deferred_message.delete()
Example #5
0
 def test_defer_message(self):
     """Verify that a message can be rescheduled for the future."""
     msg = Message(
         rcvd_date=dt.datetime(2014, 6, 14, tzinfo=pytz.utc),
         owner=User.objects.get(pk=1))
     msg.save()
     # Defer the message and refresh
     new_date = dt.datetime(2014, 6, 15, tzinfo=pytz.utc)
     msg.handler.defer(new_date)
     msg = Message.objects.get(pk=msg.pk)
     self.assertEqual(
         msg.rcvd_date,
         new_date
     )
Example #6
0
def set_deferred_message(sender, instance, **kwargs):
    """
    Checks if the Node is a deferred Node and if so,
    set the deferred_message foreign key.
    """
    if not kwargs['raw']:
        if (getattr(instance.todo_state, 'abbreviation', None) == 'DFRD' and
            not instance.archived):
            # Node is deferred so create new message or update existing message
            message = instance.get_deferred_msg()
            if message is None:
                message = Message()
                message.source_node = instance
            message.subject = instance.title
            message.handler_path = 'plugins.deferred'
            message.owner = instance.owner
            message.rcvd_date = dt.datetime.combine(
                instance.scheduled_date,
                dt.time(0, tzinfo=get_current_timezone()),
            )
            message.save()
        else:
            # If instance is not deferred, then it can't have a deferred_message
            message = instance.get_deferred_msg()
            if message is not None and message.pk is not None:
                instance.deferred_message.delete()
Example #7
0
 def post(self, request, pk):
     if request.query_params:
         data = request.query_params
     else:
         data = request.data
     action = data.get('action', None)
     if action == 'create_heading':
         message = Message.objects.get(pk=pk)
         # Create a new action based on this message
         message_data = MessageSerializer(message).data
         node = message.handler.create_node()
         # Set some attributes on the newly created Node()
         node.todo_state = TodoState.objects.get(abbreviation='NEXT')
         node.title = data.get('title', node.title)
         node.text = message.message_text
         pid = data.get('parent', None)
         if pid is not None:
             node.parent = Node.objects.get(pk=pid)
         node.save()
         # Close this Node if requested
         if data.get('close', 'false') == 'true':
             message_data['in_inbox'] = False
             node.todo_state = TodoState.objects.get(abbreviation='DONE')
             node.auto_update = True
             node.save()
         else:
             message = Message.objects.filter(pk=pk).first()
             message_data = MessageSerializer(message).data
         heading_serializer = NodeSerializer(node, request=request)
         r = {'status': 'success',
              'heading': heading_serializer.data}
         r['message'] = message_data
     else:
         data = data.dict()
         data['rcvd_date'] = dt.datetime.now(get_current_timezone())
         data['owner'] = request.user
         msg = Message(**data)
         msg.save()
         r = MessageSerializer(msg).data
     return Response(r)
Example #8
0
 def post(self, request, pk):
     if request.query_params:
         data = request.query_params
     else:
         data = request.data
     action = data.get('action', None)
     if action == 'create_heading':
         message = Message.objects.get(pk=pk)
         # Create a new action based on this message
         message_data = MessageSerializer(message).data
         node = message.handler.create_node()
         # Set some attributes on the newly created Node()
         node.todo_state = TodoState.objects.get(abbreviation='NEXT')
         node.title = data.get('title', node.title)
         node.text = message.message_text
         pid = data.get('parent', None)
         if pid is not None:
             node.parent = Node.objects.get(pk=pid)
         node.save()
         # Close this Node if requested
         if data.get('close', 'false') == 'true':
             message_data['in_inbox'] = False
             node.todo_state = TodoState.objects.get(abbreviation='DONE')
             node.auto_update = True
             node.save()
         else:
             message = Message.objects.filter(pk=pk).first()
             message_data = MessageSerializer(message).data
         heading_serializer = NodeSerializer(node, request=request)
         r = {'status': 'success', 'heading': heading_serializer.data}
         r['message'] = message_data
     else:
         data = data.dict()
         data['rcvd_date'] = dt.datetime.now(get_current_timezone())
         data['owner'] = request.user
         msg = Message(**data)
         msg.save()
         r = MessageSerializer(msg).data
     return Response(r)
Example #9
0
 def test_create_node(self):
     message = Message()
     message.owner = User.objects.get(pk=1)
     message.subject = 'ordinary message'
     message.rcvd_date = dt.datetime.now(pytz.utc)
     message.message_text = 'Hi, person. Have a nice day'
     message.save()
     handler = BaseMessageHandler(message)
     node = handler.create_node()
     self.assertEqual(
         Message.objects.filter(pk=message.pk).count(), 1,
         'Message deleted after node created')
     self.assertTrue(isinstance(node, Node),
                     'create_node() returns a Node object')
     self.assertEqual(node.text, message.message_text)
Example #10
0
 def test_create_node(self):
     message = Message()
     message.owner = User.objects.get(pk=1)
     message.subject = 'ordinary message'
     message.rcvd_date = dt.datetime.now(pytz.utc)
     message.message_text = 'Hi, person. Have a nice day'
     message.save()
     handler = BaseMessageHandler(message)
     node = handler.create_node()
     self.assertEqual(
         Message.objects.filter(pk=message.pk).count(),
         1,
         'Message deleted after node created'
     )
     self.assertTrue(
         isinstance(node, Node),
         'create_node() returns a Node object'
     )
     self.assertEqual(
         node.text,
         message.message_text
     )