Esempio n. 1
0
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)
Esempio n. 2
0
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))
Esempio n. 3
0
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"))
Esempio n. 4
0
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))