Esempio n. 1
0
 def _check(request, *args, **kw):
     if request.user.is_authenticated() and not 'ajax' in request.GET:
         profile = request.user.get_profile()
         url = abs_reverse('edit_location') + '?' + urlencode({'next':make_absolute_url(request.path_info)})
         if not profile.has_location():
             messages.add_message(request, messages.WARNING, _("Your location is not set. Change it <a href='%s'>here</a>.") % url)
         elif profile.location_changed(request.geo):
             messages.add_message(request, messages.INFO, _("Your location may be inaccurate. Check <a href='%s'>settings</a>.") % url)
     return view(request, *args, **kw) 
Esempio n. 2
0
 def canvas( self, request, user_id=None, oauth_token=None, **kwargs ):
     parent = super( FBAppEvent, self ).canvas( request, user_id, oauth_token, **kwargs )
     participant = self.get_participant()
     if participant.state >= ContestParticipation.STATE_QUIZ:
         self.api = graph.API( oauth_token )
         ret = self.process_requests( request, user_id )
         if ret:
             return ret
         return http.HttpResponseRedirect( abs_reverse( event_viral, args=[self.object.slug]) )
     return parent
Esempio n. 3
0
def fb_begin(request, redirect_uri = None):
    params = dict(
      client_id = settings.FACEBOOK_CONNECT_KEY,
      redirect_uri=redirect_uri or abs_reverse(fb_auth_cb),
      state=request.META.get('QUERY_STRING', ''),
      scope=settings.FACEBOOK_PERMS,
    )
    if request.is_mobile:
        params['display'] = 'touch'
    return HttpResponseRedirect('https://graph.facebook.com/oauth/authorize?' + urlencode(params))
Esempio n. 4
0
def fb_begin(request, redirect_uri=None):
    params = dict(
        client_id=settings.FACEBOOK_CONNECT_KEY,
        redirect_uri=redirect_uri or abs_reverse(fb_auth_cb),
        state=request.META.get('QUERY_STRING', ''),
        scope=settings.FACEBOOK_PERMS,
    )
    if request.is_mobile:
        params['display'] = 'touch'
    return HttpResponseRedirect('https://graph.facebook.com/oauth/authorize?' +
                                urlencode(params))
Esempio n. 5
0
def assign_facebook(request):
    if request.GET.get('error'):
        err = dict(error=request.GET.get('error'))
        return HttpResponseRedirect(
            reverse('associations') + '?' + urlencode(err))
    cookie = get_facebook_cookie(request)
    if cookie:
        uid = cookie['user_id']
        access_token = get_access_token(cookie['code'],
                                        settings.FACEBOOK_CONNECT_KEY,
                                        settings.FACEBOOK_CONNECT_SECRET)
        user_details = API().get("/%s" % uid)
        logger.info(user_details)
    elif 'code' in request.GET:
        query_string = request.GET.get('state', '')
        access_token = get_access_token(
            request.GET.get('code'), settings.FACEBOOK_CONNECT_KEY,
            settings.FACEBOOK_CONNECT_SECRET,
            settings.FULL_DOMAIN + reverse(assign_facebook))
        user_details = facebook_user_details(access_token)
        uid = user_details['uid']
    else:
        return fb_begin(request, redirect_uri=abs_reverse(assign_facebook))

    try:
        assoc = FBAssociation.objects.get(user=request.user)
        err = dict(error=_("%s already has fb association") % request.user)
        return HttpResponseRedirect(
            reverse('associations') + '?' + urlencode(err))
    except FBAssociation.DoesNotExist:
        pass

    try:
        assoc = FBAssociation.objects.get(fb_uid=uid)
        msg = _(
            "This %(service)s service account is already associated with user %(user)s"
        ) % dict(service='facebook', user=assoc.user)
        err = dict(error=msg.encode('utf-8'))
        return HttpResponseRedirect(
            reverse('associations') + '?' + urlencode(err))
    except FBAssociation.DoesNotExist:
        pass
    assoc = FBAssociation.objects.create(
        user=request.user,
        fb_uid=uid,
        fb_user=FBUser.create_or_update(user_details),
        is_new=False,
        access_token=access_token,
        is_from_facebook=False)
    return HttpResponseRedirect(reverse('associations') + '?associated')
Esempio n. 6
0
 def _check(request, *args, **kw):
     if request.user.is_authenticated() and not 'ajax' in request.GET:
         profile = request.user.get_profile()
         url = abs_reverse('edit_location') + '?' + urlencode(
             {'next': make_absolute_url(request.path_info)})
         if not profile.has_location():
             messages.add_message(
                 request, messages.WARNING,
                 _("Your location is not set. Change it <a href='%s'>here</a>."
                   ) % url)
         elif profile.location_changed(request.geo):
             messages.add_message(
                 request, messages.INFO,
                 _("Your location may be inaccurate. Check <a href='%s'>settings</a>."
                   ) % url)
     return view(request, *args, **kw)
Esempio n. 7
0
    def _sync_with_fb(cls, id):
        assoc = cls.objects.select_related().get(id=id)
        assoc.sync_with_fb()

        if assoc.fb_user_id:
            from film20.notification.models import send
            from film20.core.urlresolvers import reverse as abs_reverse

            friends = User.objs.active().facebook_friends(assoc.fb_user_id)
            send(friends, "friends_joined", {
                'user': assoc.user,
                'fb_user': assoc.fb_user,
                'network': 'Facebook',
                'profile_url': abs_reverse('show_profile', args=[assoc.user.username]),
            })
            for friend in friends:
                assoc.user.followers.follow(friend)
Esempio n. 8
0
def tvchannel(request, id):
    channel = get_object_or_404(Channel, pk=id)
    if channel.type == Channel.TYPE_CINEMA:
        return HttpResponseRedirect(abs_reverse(theater, args=[id]))
    assert channel.type == Channel.TYPE_TV_CHANNEL
    channels = [channel]

    date = get_date(request)
    past = 'past' in request.GET
    films = get_films(date, channels, request.user, past=past, without_unmatched=True)
    ctx = dict(
        channel=channel,
        date=date,
        days=get_available_showtime_dates(request),
        films=films,
    )
    return render(request, "showtimes/single_channel.html", ctx)
Esempio n. 9
0
def assign_facebook(request):
    if request.GET.get('error'):
        err = dict(error=request.GET.get('error'))
        return HttpResponseRedirect(reverse('associations') + '?' + urlencode(err))
    cookie = get_facebook_cookie(request)
    if cookie:
        uid = cookie['user_id']
        access_token = get_access_token(cookie['code'], settings.FACEBOOK_CONNECT_KEY, settings.FACEBOOK_CONNECT_SECRET)
        user_details = API().get("/%s" % uid)
        logger.info(user_details)
    elif 'code' in request.GET:
        query_string = request.GET.get('state', '')
        access_token = get_access_token(
                request.GET.get('code'),
                settings.FACEBOOK_CONNECT_KEY,
                settings.FACEBOOK_CONNECT_SECRET,
                settings.FULL_DOMAIN + reverse(assign_facebook))
        user_details = facebook_user_details(access_token)
        uid = user_details['uid']
    else:
        return fb_begin(request, redirect_uri=abs_reverse(assign_facebook))
        
    try:
        assoc = FBAssociation.objects.get(user=request.user)
        err = dict(error=_("%s already has fb association") % request.user)
        return HttpResponseRedirect(reverse('associations') + '?' + urlencode(err))
    except FBAssociation.DoesNotExist:
        pass

    try:
        assoc = FBAssociation.objects.get(fb_uid=uid)
        msg=_("This %(service)s service account is already associated with user %(user)s") % dict(service='facebook', user=assoc.user)
        err = dict(error=msg.encode('utf-8'))
        return HttpResponseRedirect(reverse('associations') + '?' + urlencode(err))
    except FBAssociation.DoesNotExist:
        pass
    assoc = FBAssociation.objects.create(
        user=request.user, 
        fb_uid=uid, 
        fb_user=FBUser.create_or_update(user_details),
        is_new=False, 
        access_token=access_token,
        is_from_facebook=False
    )
    return HttpResponseRedirect(reverse('associations') + '?associated')
Esempio n. 10
0
def tvchannel(request, id):
    channel = get_object_or_404(Channel, pk=id)
    if channel.type == Channel.TYPE_CINEMA:
        return HttpResponseRedirect(abs_reverse(theater, args=[id]))
    assert channel.type == Channel.TYPE_TV_CHANNEL
    channels = [channel]

    date = get_date(request)
    past = 'past' in request.GET
    films = get_films(date,
                      channels,
                      request.user,
                      past=past,
                      without_unmatched=True)
    ctx = dict(
        channel=channel,
        date=date,
        days=get_available_showtime_dates(request),
        films=films,
    )
    return render(request, "showtimes/single_channel.html", ctx)
Esempio n. 11
0
    def _sync_with_fb(cls, id):
        assoc = cls.objects.select_related().get(id=id)
        assoc.sync_with_fb()

        if assoc.fb_user_id:
            from film20.notification.models import send
            from film20.core.urlresolvers import reverse as abs_reverse

            friends = User.objs.active().facebook_friends(assoc.fb_user_id)
            send(
                friends, "friends_joined", {
                    'user':
                    assoc.user,
                    'fb_user':
                    assoc.fb_user,
                    'network':
                    'Facebook',
                    'profile_url':
                    abs_reverse('show_profile', args=[assoc.user.username]),
                })
            for friend in friends:
                assoc.user.followers.follow(friend)
Esempio n. 12
0
 def get_absolute_url(self):
     return abs_reverse('show_festival', args=(self.permalink, ))
Esempio n. 13
0
 def get_absolute_url(self):
     return abs_reverse('show_festival', args=(self.permalink,))
Esempio n. 14
0
 def get_absolute_url(self):
     return abs_reverse('showtimes_screening', args=[self.id])
Esempio n. 15
0
 def get_absolute_url( self ):
     return abs_reverse( fbapp )
Esempio n. 16
0
 def film_absolute_url(self):
     film_view = self.is_tv_series and 'show_series' or 'show_film'
     return abs_reverse(film_view, args=[self.film_permalink])
Esempio n. 17
0
 def get_absolute_url( self ):
     return abs_reverse( event, args=[self.get_object().slug ] )
Esempio n. 18
0
 def on_end_questions( self ):
     super( EventQuiz, self ).on_end_questions()
     return http.HttpResponseRedirect( abs_reverse( event_viral, args=[self.get_contest().slug]) )
Esempio n. 19
0
 def get_absolute_url(self):
     return abs_reverse('showtimes_screening', args=[self.id])
Esempio n. 20
0
                try:
                    self.api.delete('/%s_%s' % (id, user_id))
                except HTTPError, e:
                    pass

                if req and str(req['to']['id']) == str(user_id):
                    request_name = req.get('data')
                    if request_name == 'ticket_contest':
                        request.session['invite_request'] = req
                    elif request_name == 'invite':
                        signup = True

        if signup:
            return http.HttpResponse("""
            <script>top.location.href="%s"</script>
            """ % abs_reverse('fb_begin'))

fbapp = never_cache(FBApp.as_view())

class ResultsView(DetailView):
    model = Contest
    template_name = 'fbapp/results.html'

    def get_object(self):
        if not 'pk' in self.kwargs:
            obj = Contest.objects.filter(state=Contest.STATE_CLOSED)
            obj = obj and obj[0]
            if not obj:
                raise http.Http404
            return obj
        return super(ResultsView, self).get_object()