Exemplo n.º 1
0
    def test_send_is_silenced(self):
        recipient = create_user('user', 'email', 'password')
        sender = create_user('sender', 'email', 'password')

        f = Message.inform_recipient
        inform_mock = mock.MagicMock()
        Message.inform_recipient = inform_mock
        Message.create_message(sender, recipient, 'text1')

        inform_mock.assert_called_once()
        inform_mock.reset_mock()

        Message.create_message(sender, recipient, 'text2')
        inform_mock.assert_not_called()

        Message.inform_recipient = f
Exemplo n.º 2
0
    def test_send_is_not_silenced_after_half_an_hour(self):
        recipient = create_user('user', 'email', 'password')
        sender = create_user('sender', 'email', 'password')

        f = Message.inform_recipient
        inform_mock = mock.MagicMock()
        Message.inform_recipient = inform_mock
        sent_time = timezone.now() - datetime.timedelta(minutes=31)
        Message.create_message(sender, recipient, 'text1', sent_time)

        inform_mock.assert_called_once()
        inform_mock.reset_mock()

        Message.create_message(sender, recipient, 'text2')
        inform_mock.assert_called_once()

        Message.inform_recipient = f
Exemplo n.º 3
0
    def test_new_message_email_new_messaging_system(self):
        recipient = create_user('user', 'email', 'password')
        sender = create_user('sender', 'email', 'password')

        m = Message.create_message(sender, recipient, 'text', silent=True)

        nme = NewMessageEmail(m)

        self.assertIn('https://rbe-network.org/messaging/conversation/{}'.format(m.sender.id), nme.body_html())
Exemplo n.º 4
0
def send(request):
    recipient_id = request.POST.get('recipient_id')
    message_text = request.POST.get('message_text')
    error_message = ''

    try:
        if not message_text:
            error_message = 'Empty message cannot be sent!'
        elif len(message_text) > 1200:
            error_message = 'A message cannot be longer than 1200 characters!'
        else:
            recipient = User.objects.get(id=recipient_id)
            Message.create_message(request.user, recipient, message_text)
            return redirect(reverse('conversation', kwargs={'user_id': recipient.id}))
    except User.DoesNotExist as e:
        rbe_logger.warning("Had problems")
        error_message = "User to write to doesn't exists"
    except Exception as e:
        error_message = "Unknown error occurred - please try again later"
        rbe_logger.exception(e)

    return conversation(request, recipient_id, error_message)
Exemplo n.º 5
0
    def form_valid(self, form):
        person = form.cleaned_data['token'].person
        cable = form.cleaned_data['reader'].cable_system
        session, cost = CableSystemSession.objects.toggle_active(person=person,
                                                                 cable=cable)
        if session.person.account.balance < 0:
            Message.create_message(
                body=_("Insufficient funds to pay for use of the system"),
                recipients=list(User.objects.filter(is_staff=True,
                                                    is_active=True)),
                content_object=session.person,
                request=self.request)

        if self.request.is_ajax():
            data = {'person': unicode(session.person),
                    'cable': unicode(cable),
                    'active': session.active}
            return self.render_to_json_response(data)

        return self.render_on_success(person=session.person,
                                      cable=cable,
                                      active=session.active)
Exemplo n.º 6
0
    def test_retrieving_messages_page_works_with_read_message(self, smc):
        recipient = create_user('user', 'email', 'password')
        sender = create_user('sender', 'email', 'password')

        m = Message.create_message(sender, recipient, 'text', silent=True)
        m.status = MessageStatus.READ
        m.save()

        c = Client()
        c.login(username='******', password='******')

        response = c.get(reverse('messages'))

        self.assertEqual(response.status_code, 200)
Exemplo n.º 7
0
    def test_confirming_unread_works(self, smc):
        recipient = create_user('recipient', 'email', 'password')
        sender = create_user('sender', 'email', 'password')

        m = Message.create_message(sender, recipient, 'text', silent=True)
        self.assertEqual(m.status, MessageStatus.UNREAD)

        c = Client()
        c.login(username='******', password='******')

        qd = MultiValueDict({'message_ids[]': [m.id]})
        response = c.post(reverse('messaging_confirm_read'), qd)

        self.assertEqual(response.status_code, 200)

        m.refresh_from_db()
        self.assertEqual(m.status, MessageStatus.READ)
Exemplo n.º 8
0
def compose(request, recipient_user_id):
    rc = RequestContext(request)

    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        form = ComposeForm(request.POST)
        rc['form'] = form

        # check whether it's valid:
        if form.is_valid():
            try:
                subject = form.cleaned_data['subject']
                body = form.cleaned_data['body']
                user_id = form.cleaned_data['recipient_id']
                recipient = User.objects.get(id=int(user_id))

                m = Message.create_message(request.user, recipient, subject,
                                           body)
                return HttpResponseRedirect(
                    reverse('message', kwargs={'message_id': m.id}))
            except User.DoesNotExist:
                form.add_error(None, "Recipient doesn't exists")
            except Exception:
                form.add_error(None, "Server error. Could not send message!")

        rc['form'] = form
    else:

        try:
            user = User.objects.get(id=int(recipient_user_id))
            form = ComposeForm(initial={
                'recipient_id': recipient_user_id,
                'recipient_name': user.username
            })
            rc['form'] = form
        except User.DoesNotExist:
            pass

    return render(request, 'messaging/compose.html', rc)
    def handle(self, *args, **options):
        AdminMail(GoogleSession()).send('[RBE Network] Newsletter', 'Some message <br> <b>Blaaa</b>', None)

        # Add some messages
        all_profiles = User.objects.all()

        num_messages = 500
        subjects = [u"Hey", u"whats up?", u"Something", u"Another"]
        bodies = [u"Soem body", u"Another body", u"1 2 3 4", u"Giraffen sind cool"]

        for idx in range(num_messages):
            u1, u2 = random.sample(all_profiles, 2)

            m = Message.create_message(u1, u2, random.choice(subjects), random.choice(bodies), silent=True)

            if random.random() > 0.9:
                m.status = MessageStatus.READ

            if random.random() > 0.9:
                m.status = MessageStatus.DELETED

            m.save()
Exemplo n.º 10
0
    def handle(self, *args, **options):
        all_profiles = User.objects.all()

        subjects = ["Hey", "whats up?", "Something", "Another"]
        bodies = ["Soem body", "Another body", "1 2 3 4", "Giraffen sind cool"]

        for idx in range(all_profiles.count()):

            u1, u2 = random.sample(all_profiles, 2)

            m = Message.create_message(u1,
                                       u2,
                                       random.choice(subjects),
                                       random.choice(bodies),
                                       silent=True)

            if random.random() > 0.9:
                m.status = MessageStatus.READ

            if random.random() > 0.9:
                m.status = MessageStatus.DELETED

            m.save()
    def handle(self, *args, **options):
        User.objects.all().delete()

        usernames = list(itertools.product(['Anne', 'Robert', 'Marie', 'Tove', 'Jens', 'Ines'], ['Larson', 'Nilson', 'Weier', 'Wa', 'Halakkai', 'Czetec']))
        usernames = ["{}.{}".format(e[0], e[1]) for e in usernames]
        usernames.append('sheepy')

        skill_sample_list = ['running', 'flying', 'diving', 'programming', 'dancing', 'cutting video', 'jumping', 'sking', 'eating', 'washing', 'brooming', 'walking']
        sample_languages = dict(LANGUAGES).keys()

        for name in usernames:
            # Create the user
            user = create_user(name, '{}@heleska.de'.format(name), 'aqwsderf')

            # Add a location in some cases
            if random.random() > 0.2:
                long = str(random.randint(-900, 900) / 10.0)
                lang = str(random.randint(-1800, 1800) / 10.0)

                l = Location(user=user, longitude=long, latitude=lang, position_updated=datetime.datetime.today())
                l.save()

            # Add some skills
            num_skills = random.randint(0, len(skill_sample_list))
            for value in random.sample(skill_sample_list, num_skills):
                slug, created = SlugPhrase.objects.get_or_create(value=value)
                UserSkill(user=user, slug=slug, level=random.randint(1, 5)).save()

            # Add some languages
            num_languages = random.randint(0, len(sample_languages))
            for value in random.sample(sample_languages, num_languages):
                LanguageSpoken(user=user, language=value).save()

        # Make my user superuser to access admin and so on
        u = User.objects.get(username='******')
        u.is_superuser = True
        u.is_staff = True
        u.status = True
        u.save()

        # Add some messages
        all_profiles = User.objects.all()

        num_messages = 50
        bodies = ["Soem body", "Another body", "1 2 3 4", "Giraffen sind cool"]

        for idx in range(num_messages):
            u1, u2 = random.sample(all_profiles, 2)

            m = Message.create_message(u1, u2, random.choice(bodies), silent=True)
            m.sent_time = datetime.datetime.now() - datetime.timedelta(days=random.randint(0, 30),
                                                                       minutes=random.randint(0, 60))
            m.save()

            if random.random() > 0.9:
                m.status = MessageStatus.READ

            if random.random() > 0.9:
                m.status = MessageStatus.DELETED

            m.save()

        organization_names = [
            ('The Auravana Project(TAP)', 'http://www.auravana.com', ['community', 'systems', 'scientific',
                                                                        'critical', 'no_money', 'open_source']),
            ('Buckminster Fuller Institute', 'http://www.bfi.org', ['systems', 'scientific'])
        ]

        for element in organization_names:
            ozt = [OrganizationTag.objects.get_or_create(value=e)[0] for e in element[2]]

            org = create_organization(name=element[0], website_url=element[1])
            org.enabled = True
            for e in ozt:
                org.tags.add(e)

            org.save()

        self.stdout.write(self.style.SUCCESS('Successfully create a bunch of users!'))