Пример #1
0
def vote_post_save(sender, instance, created, **kwargs):
	if created:
		Feedback.objects.filter(id=instance.feedback_id).update(score=F('score') + get_vt_weight(int(instance.type_id)))

		if int(instance.type_id) == 1:	# Agree
			Feedback.objects.filter(id=instance.feedback_id).update(agrees_count=F('agrees_count') + 1)
		elif int(instance.type_id) == 2:	# Disagree
			Feedback.objects.filter(id=instance.feedback_id).update(disagrees_count=F('disagrees_count') + 1)
Пример #2
0
def vote_post_delete(sender, instance, **kwargs):
	Feedback.objects.filter(id=instance.feedback_id).update(score=F('score') - get_vt_weight(int(instance.type_id)))

	if int(instance.type_id) == 1:	# vote.type_id = 1 is Agree
		Feedback.objects.filter(id=instance.feedback_id).update(agrees_count=F('agrees_count') - 1)
	elif int(instance.type_id) == 2:	# Disagree
		Feedback.objects.filter(id=instance.feedback_id).update(disagrees_count=F('disagrees_count') - 1)

	if instance.type_id == 1:	# 1 = Agree
		try:
			priority = Priority.objects.get(marked_by_id=instance.voted_by_id, feedback_id=instance.feedback_id)
		except Priority.DoesNotExist:
			pass
		else:
			feedback = Feedback.objects.get(pk=priority.feedback_id)
			priorities = Priority.objects.filter(marked_by_id=instance.voted_by_id, feedback__item=feedback.item_id, feedback__is_positive=feedback.is_positive, value__gte=priority.value)
			for priority in priorities:
				priority.delete()