Esempio n. 1
0
    def post_to_class(self, request):
        """
        发送一条班级信息(群发)

        ``POST`` `messages/create_to_class/ <http://192.168.1.222:8080/v1/messages/create_to_class>`_

        :param class_id:
            接收班级的班级 id

        :param content:
            发送内容
        """
        class_id = request.POST.get("class_id")
        params = request.POST.dict()
        params['body'] = params.pop('content')
 
        group = None
        try:
            group = Group.objects.get(pk=class_id)
        except Group.DoesNotExist:
            return rc.NOT_HERE
        if group and params['body']:
            c = MessageToClass(group=group, user=request.user, content=params['body'])
            c.save()
            
        students = Student.objects.filter(group__pk=class_id)
        recipients = [s.user for s in students]
        params['to'] = ",".join([r.username for r in recipients])
        
        form = ComposeForm(params)
        if form.is_valid():
            return form.save(request.user)
        return rc.BAD_REQUEST
Esempio n. 2
0
    def post(self, request):
        """
        发送一条信息

        ``POST`` `messages/create/ <http://192.168.1.222:8080/v1/messages/create>`_

        :param uid:
            接受者的用户 id

        :param content:
            发送内容
        """
        params = request.POST.dict()
        user_id = params.pop("uid")
        try:
            recipient = User.objects.get(pk=user_id)
        except User.DoesNotExist:
            return rc.NOT_HERE

        params['body'] = params.pop('content')
        params['to'] = recipient.username
        form = ComposeForm(params)
        if form.is_valid():
            return form.save(request.user)

        return rc.BAD_REQUEST
Esempio n. 3
0
def leave_message(request, username):
	if request.is_ajax():
		user = get_object_or_404(User, username__iexact = username)
		form = ComposeForm(request.POST)
		if form.is_valid():
			msg = form.save(sender = request.user)
			if msg:
				return render_to_response('umessages/message.html', {'message': msg})
		else:
			return HttpResponse('Failed')
	else:
		raise Http404
Esempio n. 4
0
    def test_invalid_data(self):
        """
        Test the save method of :class:`ComposeForm`

        We don't need to make the ``to`` field sweat because we have done that
        in the ``fields`` test.

        """
        invalid_data_dicts = [
            # No body
            {"data": {"to": "john", "body": ""}, "error": ("body", [u"This field is required."])}
        ]

        for invalid_dict in invalid_data_dicts:
            form = ComposeForm(data=invalid_dict["data"])
            self.failIf(form.is_valid())
            self.assertEqual(form.errors[invalid_dict["error"][0]], invalid_dict["error"][1])
Esempio n. 5
0
    def test_save_msg(self):
        """ Test valid data """
        valid_data = {'to': 'john, jane', 'body': 'Body'}

        form = ComposeForm(data=valid_data)

        self.failUnless(form.is_valid())

        # Save the form.
        sender = get_user_model().objects.get(username='******')
        msg = form.save(sender)

        # Check if the values are set correctly
        self.failUnlessEqual(msg.body, valid_data['body'])
        self.failUnlessEqual(msg.sender, sender)
        self.failUnless(msg.sent_at)

        # Check recipients
        self.failUnlessEqual(msg.recipients.all()[0].username, 'jane')
        self.failUnlessEqual(msg.recipients.all()[1].username, 'john')
Esempio n. 6
0
    def test_invalid_data(self):
        """
        Test the save method of :class:`ComposeForm`

        We don't need to make the ``to`` field sweat because we have done that
        in the ``fields`` test.

        """
        invalid_data_dicts = [
            # No body
            {'data': {'to': 'john',
                      'body': ''},
             'error': ('body', ['This field is required.'])},
        ]

        for invalid_dict in invalid_data_dicts:
            form = ComposeForm(data=invalid_dict['data'])
            self.failIf(form.is_valid())
            self.assertEqual(form.errors[invalid_dict['error'][0]],
                             invalid_dict['error'][1])
Esempio n. 7
0
    def test_save_msg(self):
        """ Test valid data """
        valid_data = {"to": "john, jane", "body": "Body"}

        form = ComposeForm(data=valid_data)

        self.assertTrue(form.is_valid())

        # Save the form.
        sender = get_user_model().objects.get(username="******")
        msg = form.save(sender)

        # Check if the values are set correctly
        self.assertEqual(msg.body, valid_data["body"])
        self.assertEqual(msg.sender, sender)
        self.assertTrue(msg.sent_at)

        # Check recipients
        self.assertEqual(msg.recipients.all()[0].username, "jane")
        self.assertEqual(msg.recipients.all()[1].username, "john")
Esempio n. 8
0
    def test_invalid_data(self):
        """
        Test the save method of :class:`ComposeForm`

        We don't need to make the ``to`` field sweat because we have done that
        in the ``fields`` test.

        """
        invalid_data_dicts = [
            # No body
            {'data': {'to': 'john',
                      'body': ''},
             'error': ('body', [u'This field is required.'])},
        ]

        for invalid_dict in invalid_data_dicts:
            form = ComposeForm(data=invalid_dict['data'])
            self.failIf(form.is_valid())
            self.assertEqual(form.errors[invalid_dict['error'][0]],
                             invalid_dict['error'][1])
Esempio n. 9
0
    def test_save_msg(self):
        """ Test valid data """
        valid_data = {"to": "john, jane", "body": "Body"}

        form = ComposeForm(data=valid_data)

        self.failUnless(form.is_valid())

        # Save the form.
        sender = User.objects.get(username="******")
        msg = form.save(sender)

        # Check if the values are set correctly
        self.failUnlessEqual(msg.body, valid_data["body"])
        self.failUnlessEqual(msg.sender, sender)
        self.failUnless(msg.sent_at)

        # Check recipients
        self.failUnlessEqual(msg.recipients.all()[0].username, "jane")
        self.failUnlessEqual(msg.recipients.all()[1].username, "john")
Esempio n. 10
0
    def test_save_msg(self):
        """ Test valid data """
        valid_data = {'to': 'john, jane',
                      'body': 'Body'}

        form = ComposeForm(data=valid_data)

        self.failUnless(form.is_valid())

        # Save the form.
        sender = get_user_model().objects.get(username='******')
        msg = form.save(sender)

        # Check if the values are set correctly
        self.failUnlessEqual(msg.body, valid_data['body'])
        self.failUnlessEqual(msg.sender, sender)
        self.failUnless(msg.sent_at)

        # Check recipients
        self.failUnlessEqual(msg.recipients.all()[0].username, 'jane')
        self.failUnlessEqual(msg.recipients.all()[1].username, 'john')
Esempio n. 11
0
    def test_invalid_data(self):
        """
        Test the save method of :class:`ComposeForm`

        We don't need to make the ``to`` field sweat because we have done that
        in the ``fields`` test.

        """
        invalid_data_dicts = [
            # No body
            {
                "data": {
                    "to": "john",
                    "body": ""
                },
                "error": ("body", ["This field is required."]),
            }
        ]

        for invalid_dict in invalid_data_dicts:
            form = ComposeForm(data=invalid_dict["data"])
            self.assertFalse(form.is_valid())
            self.assertEqual(form.errors[invalid_dict["error"][0]],
                             invalid_dict["error"][1])
Esempio n. 12
0
    def test_child_msg(self):
        """ Test a child message """
        valid_data_parent = {'to': 'john',
                             'body': 'Body'}

        form = ComposeForm(data=valid_data_parent)
        self.failUnless(form.is_valid())

        sender = User.objects.get(username='******')
        parent_msg = form.save(sender)

        # Send a new one
        valid_data = {'to': 'jane',
                      'body': 'Body'}

        form = ComposeForm(data=valid_data)
        self.failUnless(form.is_valid())

        sender = User.objects.get(username='******')
        msg = form.save(sender, parent_msg=parent_msg)

        self.failUnlessEqual(msg.parent_msg, parent_msg)
        self.failUnless(parent_msg.replied_at)