示例#1
0
def create_message(request):
    if request.method == 'POST':
        issue_name = request.POST.get('issue_name', None)
        if 'cur_team' in request.session:
            cur_team = request.session['cur_team']
            team = Team.objects.get(team_name=cur_team)
        if issue_name is not None:
            issue = Issue.objects.filter(issue_name=issue_name, team=team)
            if issue is not None and request.user is not None:
                Message.objects.create(
                    user=request.user,
                    content=request.POST.get('content', ''),
                    issue=issue[0],
                )
                # Adding hash tag in message contents.
                content_list = request.POST.get('content', '')
                content_list = content_list.split(' ')
                for content in content_list:
                    if content.find("#") != -1:
                        splited_content = content.split('#')
                        hash_tag = HashTag.objects.filter(tag_name=splited_content[1])
                        if hash_tag.count() > 0:
                            hash_tag[0].issues.add(issue[0])
                        else:
                            created_hash_tag = HashTag(tag_name=splited_content[1])
                            created_hash_tag.save()
                            created_hash_tag.issues.add(issue[0])

                return HttpResponse("insert_success")
            return HttpResponse("not found issue or user")
        return HttpResponse("not found issue name")
    return HttpResponse("error request method.")
示例#2
0
    def test_hash_tags_can_saved_into_multiple_channels_with_same_name(self):
        # Many to many relationships.
        tag_name = 'soma'
        hash_1 = HashTag()
        hash_1.tag_name = tag_name
        hash_1.save()

        User.objects.create_user('john', '*****@*****.**', 'johnpassword')
        user = User.objects.get(username='******')

        team = Team.objects.create(team_name='test')
        issue_1 = Issue.objects.create(user=user, issue_name='issue_1', team=team)
        issue_2 = Issue.objects.create(user=user, issue_name='issue_2', team=team)

        hash_1.issues.add(issue_1)

        self.assertEqual(
            list(hash_1.issues.all()),
            [issue_1]
        )

        same_hash_tag = HashTag.objects.filter(tag_name=tag_name)
        same_hash_tag[0].issues.add(issue_2)
        self.assertEqual(hash_1, same_hash_tag[0])

        self.assertEqual(
            list(same_hash_tag[0].issues.all()),
            [issue_1, issue_2]
        )

        self.assertEqual(
            list(hash_1.issues.all()),
            [issue_1, issue_2]
        )
示例#3
0
    def test_hash_tags_can_saved_into_multiple_channels(self):
        # Many to many relationships.
        hash_1 = HashTag(tag_name='soma06')
        hash_2 = HashTag(tag_name='team-mario')
        hash_3 = HashTag(tag_name='mac')

        User.objects.create_user('john', '*****@*****.**',
                                 'johnpassword')
        user = User.objects.get(username='******')

        team = Team.objects.create(team_name='test')

        issue_1 = Issue.objects.create(
            user=user, issue_name='issue_1', team=team)
        issue_2 = Issue.objects.create(
            user=user, issue_name='issue_2', team=team)
        issue_3 = Issue.objects.create(
            user=user, issue_name='issue_3', team=team)
        hash_1.save()
        hash_2.save()
        hash_3.save()
        hash_1.issues.add(issue_1)
        hash_1.issues.add(issue_2, issue_3)
        hash_2.issues.add(issue_2)
        hash_3.issues.add(issue_3)

        self.assertEqual(
            list(hash_1.issues.all()), [issue_1, issue_2, issue_3])
        self.assertEqual(list(hash_2.issues.all()), [issue_2])
        self.assertNotEqual(list(hash_2.issues.all()), [issue_3])
        self.assertEqual(list(hash_3.issues.all()), [issue_3])
示例#4
0
def add_hash_tag(request):
    if request.method == 'POST':
        issue_name = request.session.get('issue_name')
        issue = Issue.objects.get(issue_name=issue_name)
        tag_name = request.POST.get('tag_name')
        created_hash_tag = HashTag(tag_name=tag_name)
        created_hash_tag.save()
        created_hash_tag.issues.add(issue)

        return redirect(reverse('issue_detail', kwargs={'issue_name': issue_name}))

    return HttpResponse('Adding Hash Tag is failed')
示例#5
0
    def test_form_validation_for_duplicate_tag_names_in_one_issue(self):
        hash_1 = HashTag(tag_name='soma06')

        User.objects.create_user('john', '*****@*****.**', 'johnpassword')
        user = User.objects.get(username='******')

        team = Team.objects.create(team_name='test')

        issue_1 = Issue.objects.create(user=user, issue_name='issue_1', team=team)
        hash_1.save()

        hash_1.issues.add(issue_1)

        data = {
            'tag_name': 'soma06'
        }
        form = HashTagForm(data)
        self.assertFalse(form.is_valid())
示例#6
0
def add_hash_tag(request):
    if request.method == 'POST':
        issue_name = request.session.get('issue_name')
        if 'cur_team' in request.session:
            cur_team = request.session['cur_team']
            team = Team.objects.get(team_name=cur_team)

        issue = Issue.objects.get(issue_name=issue_name, team=team)
        tag_name = request.POST.get('tag_name')

        hash_tag = HashTag.objects.filter(tag_name=tag_name)
        if hash_tag.count() > 0:
            hash_tag[0].issues.add(issue)
        else:
            created_hash_tag = HashTag(tag_name=tag_name)
            created_hash_tag.save()
            created_hash_tag.issues.add(issue)

        return redirect(reverse('issue_detail', kwargs={'issue_name': issue_name}))

    return HttpResponse('Adding Hash Tag is failed')