Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_profile_comments_order(self):
"""
comments ordered by date
"""
comment_a = utils.create_comment(user=self.user2, topic=self.topic)
comment_b = utils.create_comment(user=self.user2, topic=self.topic)
comment_c = utils.create_comment(user=self.user2, topic=self.topic)
Comment.objects.filter(pk=comment_a.pk).update(date=timezone.now() - datetime.timedelta(days=10))
Comment.objects.filter(pk=comment_c.pk).update(date=timezone.now() - datetime.timedelta(days=5))
utils.login(self)
response = self.client.get(reverse(
"spirit:user:detail",
kwargs={'pk': self.user2.pk, 'slug': self.user2.st.slug}))
self.assertEqual(list(response.context['comments']), [comment_b, comment_c, comment_a])
def test_topic_update_create_moderation_action(self):
"""
POST, topic moved to category
"""
utils.login(self)
self.user.st.is_moderator = True
self.user.save()
category = utils.create_category()
topic = utils.create_topic(category=category, user=self.user)
category2 = utils.create_category()
form_data = {'title': 'foobar', 'category': category2.pk}
self.client.post(reverse('spirit:topic:update', kwargs={'pk': topic.pk, }),
form_data)
self.assertEqual(len(Comment.objects.filter(user=self.user, topic_id=topic.pk, action=MOVED)), 1)
def test_like_create_comment_increase_likes_count(self):
"""
Should increase the comment's likes_count
"""
utils.login(self)
form_data = {}
response = self.client.post(reverse('spirit:comment:like:create', kwargs={'comment_id': self.comment.pk, }),
form_data)
self.assertEqual(response.status_code, 302)
self.assertEqual(Comment.objects.get(pk=self.comment.pk).likes_count, 1)
def test_topic_update_create_moderation_action(self):
"""
POST, topic moved to category
"""
utils.login(self)
self.user.st.is_moderator = True
self.user.save()
category = utils.create_category()
topic = utils.create_topic(category=category, user=self.user)
category2 = utils.create_category()
form_data = {'title': 'foobar', 'category': category2.pk}
self.client.post(reverse('spirit:topic:update', kwargs={'pk': topic.pk, }),
form_data)
self.assertEqual(len(Comment.objects.filter(user=self.user, topic_id=topic.pk, action=MOVED)), 1)
def test_comment_create_moderation_action(self):
"""
Create comment that tells what moderation action was made
"""
Comment.create_moderation_action(user=self.user, topic=self.topic, action=1)
self.assertEqual(Comment.objects.filter(user=self.user, topic=self.topic, action=1).count(), 1)
def __init__(self, topic, *args, **kwargs):
super(CommentMoveForm, self).__init__(*args, **kwargs)
self.fields['comments'] = forms.ModelMultipleChoiceField(
queryset=Comment.objects.filter(topic=topic),
widget=forms.CheckboxSelectMultiple
)
def dashboard(request):
# Strongly inaccurate counters below...
context = {
'version': spirit.__version__,
'category_count': Category.objects.all().count() - 1, # - private
'topics_count': Topic.objects.all().count(),
'comments_count': Comment.objects.all().count(),
'users_count': User.objects.all().count(),
'flags_count': CommentFlag.objects.filter(is_closed=False).count(),
'likes_count': CommentLike.objects.all().count()
}
return render(request, 'spirit/admin/dashboard.html', context)
def create(request, comment_id):
comment = get_object_or_404(Comment.objects.exclude(user=request.user), pk=comment_id)
if request.method == 'POST':
form = LikeForm(user=request.user, comment=comment, data=request.POST)
if form.is_valid():
like = form.save()
like.comment.increase_likes_count()
if request.is_ajax():
return json_response({'url_delete': like.get_delete_url(), })
return redirect(request.POST.get('next', comment.get_absolute_url()))
else:
form = LikeForm()
context = {
def detail(request, topic_id, slug):
topic_private = get_object_or_404(TopicPrivate.objects.select_related('topic'),
topic_id=topic_id,
user=request.user)
topic = topic_private.topic
if topic.slug != slug:
return HttpResponsePermanentRedirect(topic.get_absolute_url())
topic_viewed(request=request, topic=topic)
comments = (
Comment.objects
.for_topic(topic=topic)
.with_likes(user=request.user)
.with_polls(user=request.user)
.order_by('date'))
comments = paginate(
comments,
per_page=config.comments_per_page,
page_number=request.GET.get('page', 1)
)
context = {
'topic': topic,
'topic_private': topic_private,
'comments': comments,
}
def update(request, pk):
comment = Comment.objects.for_update_or_404(pk, request.user)
if request.method == 'POST':
form = CommentForm(data=request.POST, instance=comment)
if form.is_valid():
pre_comment_update(comment=Comment.objects.get(pk=comment.pk))
comment = form.save()
post_comment_update(comment=comment)
return redirect(request.POST.get('next', comment.get_absolute_url()))
else:
form = CommentForm(instance=comment)
context = {'form': form}
return render(request, 'spirit/comment/update.html', context)