Exemplo n.º 1
0
def view_subscribe(request):

    # login is required here
    # if not ( request.user and request.user.is_authenticated() ):
    #    return HttpResponseRedirect()

    if request.user.subscription_set.count() >= Subscription._MAX_SUBSCRIPTIONS_PER_USER:
        Message(
            user=request.user,
            message=ugettext("You've reached maximum number of subscriptions. Delete some and try again."),
        ).put()
    elif request.method == "GET":
        search_form = AdvancedEventFilterForm(request.GET)

        if search_form.is_valid():

            country = Country.get_by_key_name(search_form.cleaned_data["country"])
            region = Region.get_by_key_name(search_form.cleaned_data["region"])
            free = search_form.cleaned_data["forfree"]

            if search_form.cleaned_data["forwho"] == "custom":
                event_types = 0
                for t in search_form.cleaned_data["typelist"]:
                    event_types += 1 << int(t)
            elif search_form.cleaned_data["forwho"] == "everyone":
                event_types = Event.OPEN_EVENTS_MASK
            else:
                # assert(search_form.cleaned_data['forwho'] == 'members')
                event_types = Event.MEMBERS_EVENTS_MASK

            s = Subscription(user=request.user, country=country, region=region, event_types=event_types, free=free)
            s.put()

            Message(user=request.user, message=ugettext("Subscription created")).put()

            return HttpResponseRedirect(
                reverse("events.views.view_event_list", kwargs={"subscription_id": s.key().id()})
            )

    return HttpResponseRedirect(reverse("events.views.view_event_list"))