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.")
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] )
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])
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')
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())
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')