def toggle_subscribe(request, ajax=False): """ Subscribe to receive notifications for an object (post, short review, thread). If already subscribed, the action unsubscribes to stop receiving notices. """ if request.POST: if not request.user.is_authenticated(): if ajax: return json_error('LOGIN') else: return HttpResponseRedirect(full_url('LOGIN') + '?next=%s&reason=vote' % request.path) from film20.useractivity.forms import SubscribeForm form = SubscribeForm(request.POST) valid = form.is_valid() if not valid: if ajax: return json_error("Form not valid") # TODO: pass error? else: return __return_to_object_view(request, form) watching_helper = WatchingHelper() watching_helper.alter_watching_subscribed(request.user, form.object) if ajax: return json_success() else: return __return_to_object_view(request, form) # Not a POST - fail! else: if ajax: return json_error("Not a POST request!"); else: return __return_to_object_view(request)
def edit_blog_post(request, permalink=None, post_id=None): user = request.user try: if permalink is not None: # user is trying to edit post from profile post = Post.objects.get(Q(permalink=permalink),Q(user=user), Q(status = Post.PUBLIC_STATUS)|Q(status = Post.DRAFT_STATUS)) else: # user is trying to edit post from planet post = Post.objects.get(Q(id=post_id),Q(user=user), Q(status = Post.PUBLIC_STATUS)|Q(status = Post.DRAFT_STATUS)) except Post.DoesNotExist: raise Http404 next = request.META.get('HTTP_REFERER', None) if request.method == 'POST': form = BlogPostForm(request.user, request.POST, instance=post) if form.is_valid(): blog = form.save(commit=False) if "save" in request.POST: request.user.message_set.create(message=_("Successfully saved post '%s'.") % blog.title) if "unpublish" in request.POST: blog.status = Post.DRAFT_STATUS request.user.message_set.create(message=_("Successfully unpublished post '%s'.") % blog.title) if "publish" in request.POST: blog.status = Post.PUBLIC_STATUS request.user.message_set.create(message=_("Successfully published post '%s'.") % blog.title) blog.save() form.save_m2m() #saving activity here because many-to-many relation blog.save_activity() blog.update_activity() if next is not None: is_preview = re.search("\?"+_("preview"), next) if next is None: next = full_url('EDIT_NOTE') elif is_preview: next = full_url('EDIT_NOTE') #request.user.message_set.create(message=_("Successfully saved post '%s'") % blog.title) return HttpResponseRedirect(next) else: related_movies = post.related_film.select_related() related_people = post.related_person.select_related() related_names = get_related_people_as_comma_separated_string(related_people) related_film = ', '.join(comma_escape(unicode(m)) for m in related_movies) form = BlogPostForm(instance=post, initial={'related_film': related_film, 'related_person':related_names}) return render_to_response(templates['EDIT_NOTE'],{'form':form,'next':next,'post':post}, context_instance=RequestContext(request)) return render_to_response(templates['EDIT_NOTE'],{'form':form,'next':next,'post':post}, context_instance=RequestContext(request))
def add_super_form_note(request, ajax=None): if request.method == 'POST': blog_object = Blog.objects.select_related().get_or_create(user=request.user) form = SuperForm(request.POST) if form.is_valid(): post = Post() post.author = blog_object[0] post.body = form.cleaned_data["body"] txt = " ".join(post.body.split(' '))[:50] if form.cleaned_data["related_film"]: post.title = _('Review') + ": " + form.cleaned_data["related_film"][0].title post.title = post.title[:200] permalink = slughifi(post.title + " " + txt) else: post.title = _('Review') +": " + txt post.title = post.title[:200] permalink = slughifi(post.title[:128]) post.type = Post.TYPE_POST post.status = Post.PUBLIC_STATUS post.save(permalink=permalink) for film in form.cleaned_data["related_film"]:post.related_film.add(film) if ajax=="json": context = { 'success': True, 'data': post.id, } return json_return(context) else: return HttpResponseRedirect(full_url("PLANET")) else: if ajax == "json": context = { 'success': False, 'errors': str(form.errors), } return JSONResponse(context, is_iterable=False) else: return HttpResponseRedirect(full_url("PLANET"))
def show_event(request, permalink, ajax=None): if request.POST: if not request.user.is_authenticated(): if ajax: return json_error('LOGIN') else: return HttpResponseRedirect(full_url('LOGIN') + '?next=%s&reason=vote' % request.path) form = rating_helper.handle_rating(RatingForm(request.POST),request.user) valid = form.is_valid() if ajax: return json_success() if valid else json_error("Hmm serwer nawalil?"); event = get_object_or_404(Event,permalink = permalink) nominated = Nominated.objects.with_rates(event) # randomize lists if event status is open if event.event_status == Event.STATUS_OPEN: previous_type = -1 itemlist = [] new_nominated = [] for item in nominated: current_type = item.oscar_type if current_type == previous_type: pass elif previous_type==-1: pass else: shuffle_and_extend(itemlist, new_nominated) itemlist = [] itemlist.append(item) previous_type=current_type # this shuffles and extends for the last category shuffle_and_extend(itemlist, new_nominated) # finished! nominated = new_nominated ctx = { 'event':event, 'nominated':nominated } return render_to_response('event/event.html', ctx, context_instance=RequestContext(request))