Пример #1
0
def bury(request, story_id, bury_type = 2):
	"""
	Buries a story for the currently logged in user.
	Takes bury type as its second argument.
	The following bury types are currently implemented:
	1 - just bury, hide and show folded further on;
	"""	
	bury_type = int(bury_type)
	if request.user.is_authenticated():
		try:
			s = Story.objects.get(id = story_id)
		except ObjectDoesNotExist:
			return HttpResponse("ERROR: Story was not found!", mimetype = 'text/plain')
		bury_types = (2,)
		if not bury_type in bury_types:
			bury_type = 2
		#raise err
		if not s:
			HttpResponse("ERROR: Story was not found!", mimetype = 'text/plain')
		if DuggedStory.objects.all().filter(story = s, user = request.user).count() == 0:
			ds = DuggedStory(user = request.user, story = s, digg = bury_type)
			ds.save()
			p, created = Profile.objects.get_or_create(user = s.user)
			p.bury_total += 1
			p.save()
			return HttpResponse("OK", mimetype = 'text/plain')
		else:
			return HttpResponse("ERROR: You have already buried this story!", mimetype = 'text/plain')
		return HttpResponse("OK", mimetype = 'text/plain')
	else:
		return HttpResponse("ERROR: You must be logged in to vote!", mimetype = 'text/plain')
Пример #2
0
def submit(request):
	"""Submit new post view"""
	topic_list = Topic.objects.get_tree()
	selected_topic = ''
	if request.method == 'POST':
		form = StoryForm(request.POST)
		if form.is_valid():
			s = Story(title = form.cleaned_data['title'], text = form.cleaned_data['text'], user = request.user, topic = form.cleaned_data['topic'], url = form.cleaned_data['url'])
			s.slug = slugify(form.cleaned_data['title'])
			s.save()
			ds = DuggedStory(user = request.user, story = s)
			ds.save()
			urlredirect = reverse('stories_slug', args=[s.topic.urlname, s.slug])
			return redirect_to(request, urlredirect)
		else:
			if form.data['topic']:
				try:
					selected_topic = int(form.data['topic'])
				except:
					pass
	else:
		form = StoryForm()
	return render_to_response('stories/submit.html', {'form': form, 'user': request.user, 'topic_list': topic_list, 'selected_topic': selected_topic})
Пример #3
0
def digg(request, story_id):
	"""
	Increases diggs count for a story and returns a simple string for AJAX usage
	"""
	if request.user.is_authenticated():
		try:
			s = Story.objects.get(id = story_id)
		except ObjectDoesNotExist:
			return HttpResponse("ERROR: Story was not found!", mimetype = 'text/plain')
		if DuggedStory.objects.all().filter(story = s, user = request.user).count() == 0:
			s.diggs += 1
			s.save()
			ds = DuggedStory(user = request.user, story = s)
			ds.save()
			p, created = Profile.objects.get_or_create(user = s.user)
			p.diggs_total += 1
			p.save()
			return HttpResponse(str(s.diggs), mimetype = 'text/plain')
		else:
			return HttpResponse("ERROR: You have already dugg this story!", mimetype = 'text/plain')
		#return render_to_response('stories/index2.html', context_instance = c)
		return HttpResponse(str(s.diggs), mimetype = 'text/plain')
	else:
		return HttpResponse("ERROR: Login first!", mimetype = 'text/plain')