Example #1
0
def set_comment(request, id, model, app_label, comment):
	try:
		general = GetContent(model, app_label, id)
	except:
		return json.dumps({'fehler': fehlerliste['1']})
	# Wenn comment leer ist
	if not comment:
		return json.dumps({'fehler': fehlerliste['4']})
	# Überprüfung, ob eine Bewertung über ein Kommentar schon verfügt.
	try:
		user_comment = Rating.objects.get(content_type__pk=general.model_type.id, object_id=general.content.id, user=request.user)
		user_comment.kommentar = str(comment)
	except:
		user_comment = Rating(content_object=general.content, kommentar=comment, user=request.user)
	user_comment.save()
	ratings = Rating.objects.filter(content_type__pk=general.model_type.id, object_id=general.content.id, kommentar__isnull=False)
	try:
		user_comment = Rating.objects.get(content_type__pk=general.model_type.id, object_id=general.content.id,  kommentar__isnull=False, user=request.user)
	except:
		pass
	# Daten werden in Variablen gespeichert und an Template übergeben
	return render(request, 'rating/comments_box.html', {
		'ratings': ratings,
		'user_comment': user_comment,
	})
Example #2
0
def set_like(request, id, model, app_label):
	content_type = ContentType.objects.get(app_label=app_label, model=model)
	try:
		content = content_type.get_object_for_this_type(id=id)
	except:
		return json.dumps({'message': "Produkt nicht vorhanden!"})
	model_type = ContentType.objects.get_for_model(content)

	try:
		rating = Rating.objects.get(content_type__pk=model_type.id, object_id=content.id, user=request.user)
		if rating.likes:
			rating.likes = False
		else:
			rating.likes = True
	except:
		rating = Rating(content_object=content, likes=True, user=request.user)
	rating.save()
	return json.dumps({'like': rating.likes})
Example #3
0
def set_rating(request, id, model, app_label, sterne):
	ip_object = ""
	try:
		general = GetContent(model, app_label, id)
	except:
		return json.dumps({'fehler':fehlerliste['1']})
	# Wenn ein SternValue grösser ist.
	if int(sterne) > 5:
		return json.dumps({'fehler': fehlerliste['1']})
	try:
		content = general.content_type.get_object_for_this_type(id=id)
	except:
		return json.dumps({'fehler': fehlerliste['3']})

	# IP ermitteln
	if not request.user.is_authenticated():
		ip = get_ip(request)
		# UserIP Tabelle wird nach angefangene IP Adresse durchgesucht.
		try:
			ip_object = UserIP.objects.get(ip=ip)
		# IP wird neu gespeichert oder überschrieben, damit es keine doppelte Einträge mit gleichen IP-Adresse gibt
		except:
			ip_object = UserIP(ip=ip)
			ip_object.save()

	# Bewertungen speichern
	try:
		# Wenn IP vorhanden ist, wird die Bewertungen-Tabelle nach Einträge mit dieser Adresse durchgesucht.
		if ip_object:
			rating = Rating.objects.get(content_type__pk=general.model_type.id, object_id=general.content.id, ip=ip_object)
		# Sonst die Bewertungen mit dem ID vom eingeloggten User.
		else:
			rating = Rating.objects.get(content_type__pk=general.model_type.id, object_id=general.content.id, user=request.user)
		# Die Sterne werden neu abgespeichert.
		rating.sterne = int(sterne)
	except:
		if ip_object:
			rating = Rating(content_object=content, sterne=sterne, ip=ip_object)
		else:
			rating = Rating(content_object=content, sterne=sterne, user=request.user)
	rating.save()
	menge = Rating.objects.filter(content_type__pk=general.model_type.id, object_id=content.id,
	                              sterne__isnull=False).count()
	return json.dumps({'message': sterne, 'menge': menge})