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')
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})
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')