Example #1
0
def post_to_reddit_url(context, title, obj_or_url=None):
    request = context['request']
    title = compile_text(context, title)
    url = _build_url(request, obj_or_url)
    context['reddit_url'] = mark_safe(REDDIT_ENDPOINT %
                                      (urlencode(title), urlencode(url)))
    return context
Example #2
0
def send_sms(recipient, text, label=None, script_url=None, fail_silently=True):
    # label is made of 10 first characters of company name without space
    if not (recipient and text):
        return
    config = get_service_instance().config
    if not label:
        label = get_sms_label(config)
    if not script_url:
        script_url = config.sms_api_script_url
    if script_url:
        url = script_url.replace('$label', urlencode(label))\
            .replace('$recipient', recipient)\
            .replace('$text', urlencode(text))
        base_url = url.split('?')[0]
        if fail_silently:
            try:
                requests.get(url)
                logger.debug('SMS submitted to %s through %s' %
                             (recipient, base_url))
            except:
                logger.error('Failed to submit SMS to %s through %s' %
                             (recipient, base_url),
                             exc_info=True)
        else:
            requests.get(url)
            logger.debug('SMS submitted to %s through %s' %
                         (recipient, base_url))
Example #3
0
def post_to_linkedin_url(context, title, obj_or_url=None):
    request = context['request']
    title = compile_text(context, title[:200])  # 200 char limit
    url = _build_url(request, obj_or_url)
    context['linkedin_url'] = mark_safe(LINKEDIN_ENDPOINT %
                                        (urlencode(title), urlencode(url)))
    return context
Example #4
0
 def test_CanResignFromNewsletter(self):
     email = '*****@*****.**'
     addresse = models.NewsletterAddresse.objects.create(email=email)
     email = urlencode(email)
     token = urlencode(addresse.token)
     self.client.post(f'/cancel-newsletter/{email}/{token}/')
     self.assertEqual(0, models.NewsletterAddresse.objects.count())
Example #5
0
def post_to_telegram_url(context, title, obj_or_url):
    request = context['request']
    title = compile_text(context, title)
    url = _build_url(request, obj_or_url)
    context['telegram_url'] = mark_safe(TELEGRAM_ENDPOINT %
                                        (urlencode(title), urlencode(url)))
    return context
def send_email_url(context, subject, text, obj_or_url=None):
    text = compile_text(context, text)
    subject = compile_text(context, subject)
    request = context['request']
    url = _build_url(request, obj_or_url)
    full_text = "%s %s" % (text, url)
    context['mailto_url'] = MAIL_ENDPOINT % (urlencode(subject), urlencode(full_text))
    return context
Example #7
0
def send_email_url(context, subject, text, obj_or_url=None):
    text = compile_text(context, text)
    subject = compile_text(context, subject)
    request = context['request']
    url = _build_url(request, obj_or_url)
    full_text = "%s %s" % (text, url)
    context['mailto_url'] = MAIL_ENDPOINT % (urlencode(subject), urlencode(full_text))
    return context
Example #8
0
def share_url(network, title="", url=""):
    """
    Builds a network url with given variables
    """
    return network.url % {
        "url": urlencode(url),
        "title": urlencode(title),
    }
Example #9
0
        def wrapper(request, *args, **kwargs):
            # if this is already the callback, do not wrap.
            if getattr(request, 'avoid_redirect', False):
                logger.debug('entered calback. View: %s, kwargs: %s' %
                             (view, kwargs))
                return view(request, *args, **kwargs)

            if 'facebook' in request.META['HTTP_USER_AGENT']:
                return view(request, *args, **kwargs)

            session = get_session(request)

            app_dict = get_app_dict(app_name)

            signed_request = session.signed_request

            if not signed_request:
                #logger.debug('No signed_request in current session. Returning View.')
                #return view(request, *args, **kwargs)
                logger.debug(
                    'No signed_request in current session. Redirecting.\n')
                url = u'%s?sk=app_%s&app_data=%s' % (app_dict['REDIRECT-URL'],
                                                     app_dict['ID'],
                                                     urlencode(request.path))
                return render_to_response('facebook/redirecter.html',
                                          {'destination': url},
                                          RequestContext(request))

            logger.debug('signed_request: %s\n' % signed_request)
            # This is handled by the Redirect2AppDataMiddleware

            if 'app_data' in signed_request:
                app_data = signed_request['app_data']
                del request.session['facebook']['signed_request']['app_data']
                request.session.modified = True
                logger.debug('found app_data url: %s' % app_data)
                return HttpResponseRedirect(app_data)

            else:
                #check if the app is inside the specified page.
                try:
                    page = signed_request['page']['id']
                except KeyError:
                    page = 0

                if int(page) not in app_dict['PAGES'] and getattr(
                        settings, 'FB_REDIRECT', True):
                    url = u'%s?sk=app_%s&app_data=%s' % (
                        app_dict['REDIRECT-URL'], app_dict['ID'],
                        urlencode(request.path))
                    logger.debug(
                        'Tab is not in original Page (id: %s, should be: %s. Redirecting to: %s'
                        % (page, app_dict['PAGES'][0], url))
                    return render_to_response('facebook/redirecter.html',
                                              {'destination': url},
                                              RequestContext(request))

            return view(request, *args, **kwargs)
Example #10
0
 def google_link(self):
   d = {
     'name': urlencode(self.name),
     'start': date(self.start,"Ymd\THi00"),
     'end': date(self.end,"Ymd\THi00"),
     'description': urlencode(self.description),
     'site_name': settings.SITE_NAME,
     'location': "205 Roberts Street, Houston TX, 77003",
     'url': 'http://txrxlabs.org/', #+urlencode(self.get_absolute_url()),
     }
   return "http://www.google.com/calendar/event?action=TEMPLATE&text=%(name)s&dates=%(start)s/%(end)s&details=%(description)s&location=%(location)s&trp=false&sprop=%(site_name)s&sprop=name:%(url)s"%d
Example #11
0
def share_url(network, title="", url=""):
    """
    Builds a network url with given variables
    """
    if network.isgd_shorten:
	page = urllib.urlopen('http://is.gd/api.php?longurl=%s' % url)    
	url = page.read()
    if network.bitly_shorten and BITLY_LOGIN:
        page = urllib.urlopen('http://api.bit.ly/shorten?version=2.0.1&longUrl=%s&login=%s&apiKey=%s&history=1' % (url, BITLY_LOGIN, BITLY_KEY))	
        response = json.load(page)
        url = results=response["results"][url]["shortUrl"]
    return network.url % {
        "url": urlencode(url),
        "title": urlencode(title),
    }
Example #12
0
def studip_json_data(request):
    """
        Die Inhalte eines StudIP Verzeichnis als JSON zurückgeben,
        um es in Auditorium einbauen zu können.

        Hier absichtlich ohne Authentifizierungszwang
    """
    studip = get_object_or_404(Directory, dirname="StudIP")

    data_for_json = dict()
    for subdir in studip.get_directories():
        ebooks = []

        for ebook in subdir.get_ebooks():
            ebook_info = {
                'name': ebook.name,
                'size': ebook.size,
                'url': "http://" + request.get_host() +
                    urlencode(MEDIA_URL + ebook.get_relative_path()),
            }
            ebooks.append(ebook_info)

        data_for_json[subdir.dirname] = ebooks

    json_serialized = json.dumps(data_for_json, ensure_ascii=False)

    # use JSONP if the parameter callback is supplied
    if request.GET.has_key('callback'):
        json_serialized = "%s(%s)" % (request.GET['callback'], json_serialized)

    return HttpResponse(json_serialized, mimetype='application/json')
Example #13
0
 def get_profile_image_cache_url(self):
     if self.profile_image:
         return '%s%s:%s/api/v1/images/cache/?url=%s' % (
             SERVER_PROTOCOL, SERVER_NAME, SERVER_PORT, urlencode(self.getPublicProfileImageUrl())
             )
     else:
         return None
    def render(self, name, value, attrs=None):

        link = None
        if value and hasattr(value, "url"):
            link = value.url

        checkbox_name = self.clear_checkbox_name(name)
        checkbox_id = self.clear_checkbox_id(checkbox_name)
        context = {
            'initial_text': self.initial_text,
            'input_text': self.input_text,
            'clear_template': '',
            'clear_checkbox_label': self.clear_checkbox_label,
            'required': self.is_required,
            'input': super(ClearableFileInput, self).render(name, value, attrs),
            'value': value,
            'link': link,
            'attrs': attrs,
            'crop_url': self.attrs.get('data-crop-url'),
            'crop_redirect': urlencode(self.attrs.get('post-save-redirect') or ""),
            'clear': CheckboxInput().render(checkbox_name, False, attrs={'id': checkbox_id}),
            'required': self.is_required,
        }

        return render_to_string('cropper/crop_widget.html', context)
Example #15
0
def post_moderation_abstract_handler(sender, instance, status, **kwargs):
    # here I call signal function coming form django-geoads
    ad_post_save_handler(sender, instance, **kwargs)
    #
    #tip: ContentType.objects.get_for_model(instance)
    #tip: here we could get instance.filterset
    if status == 1:
        # send on twitter
        token = oauth.Token(key=settings.TWITTER_ACCESS_TOKEN_KEY,
                            secret=settings.TWITTER_ACCESS_TOKEN_SECRET)
        consumer = oauth.Consumer(settings.TWITTER_CONSUMER_KEY,
                                  settings.TWITTER_CONSUMER_SECRET)
        client = oauth.Client(consumer, token)
        ad = HomeForSaleAd.objects.get(id=instance.moderated_object.changed_object.id)
        habitation_type = ad.get_habitation_type_display()
        price = ad.price
        surface = int(ad.surface)
        rooms = int(ad.nb_of_rooms)
        status = u'#achetersanscom %s - %s€ - %sm² - %s pièces' % (habitation_type,
                                                price, surface, rooms)
        pnt = GEOSGeometry('SRID=%s;%s' % (ad.location.srid, ad.location.wkt))
        latitude = pnt.y
        longitude = pnt.x
        params = 'status=%s&lat=%s&long=%s&display_coordinates=true' % (urlencode(status), latitude, longitude)
        #print params
        if not settings.DEBUG and settings.TWITTER_NOTIFICATION:
            resp, content = client.request(
                'http://api.twitter.com/1/statuses/update.xml?%s' % (params),
                "POST"
            )
 def redirect(self, request):
     # Redirect to declaration_url
     url = '{0}?next={1}'.format(
         self.declaration_url,
         urlencode(request.path_info),
     )
     return HttpResponseRedirect(url)
Example #17
0
def google_map_link(value):

    if value is None:
        return ""

    query = list()
    if isinstance(value, Location):
        if value.address:
            query.append(value.address)

        if value.city:
            query.append(value.city)

    elif isinstance(value, Event):
        if value.location:
            if value.location.address:
                query.append(value.location.address)

            if value.location.city:
                query.append(value.location.city)
        else:
            if value.address:
                query.append(value.address)

            if value.city:
                query.append(value.city)
    else:
        return ""

    query.append("Colombia")

    return 'http://map.google.es/maps?q=%s' % (urlencode(" ".join(query)))
Example #18
0
 def test_non_string_input(self):
     # Filters shouldn't break if passed non-strings
     self.assertEqual(addslashes(123), '123')
     self.assertEqual(linenumbers(123), '1. 123')
     self.assertEqual(lower(123), '123')
     self.assertEqual(make_list(123), ['1', '2', '3'])
     self.assertEqual(slugify(123), '123')
     self.assertEqual(title(123), '123')
     self.assertEqual(truncatewords(123, 2), '123')
     self.assertEqual(upper(123), '123')
     self.assertEqual(urlencode(123), '123')
     self.assertEqual(urlize(123), '123')
     self.assertEqual(urlizetrunc(123, 1), '123')
     self.assertEqual(wordcount(123), 1)
     self.assertEqual(wordwrap(123, 2), '123')
     self.assertEqual(ljust('123', 4), '123 ')
     self.assertEqual(rjust('123', 4), ' 123')
     self.assertEqual(center('123', 5), ' 123 ')
     self.assertEqual(center('123', 6), ' 123  ')
     self.assertEqual(cut(123, '2'), '13')
     self.assertEqual(escape(123), '123')
     self.assertEqual(linebreaks_filter(123), '<p>123</p>')
     self.assertEqual(linebreaksbr(123), '123')
     self.assertEqual(removetags(123, 'a'), '123')
     self.assertEqual(striptags(123), '123')
Example #19
0
 def test_non_string_input(self):
     # Filters shouldn't break if passed non-strings
     self.assertEqual(addslashes(123), '123')
     self.assertEqual(linenumbers(123), '1. 123')
     self.assertEqual(lower(123), '123')
     self.assertEqual(make_list(123), ['1', '2', '3'])
     self.assertEqual(slugify(123), '123')
     self.assertEqual(title(123), '123')
     self.assertEqual(truncatewords(123, 2), '123')
     self.assertEqual(upper(123), '123')
     self.assertEqual(urlencode(123), '123')
     self.assertEqual(urlize(123), '123')
     self.assertEqual(urlizetrunc(123, 1), '123')
     self.assertEqual(wordcount(123), 1)
     self.assertEqual(wordwrap(123, 2), '123')
     self.assertEqual(ljust('123', 4), '123 ')
     self.assertEqual(rjust('123', 4), ' 123')
     self.assertEqual(center('123', 5), ' 123 ')
     self.assertEqual(center('123', 6), ' 123  ')
     self.assertEqual(cut(123, '2'), '13')
     self.assertEqual(escape(123), '123')
     self.assertEqual(linebreaks_filter(123), '<p>123</p>')
     self.assertEqual(linebreaksbr(123), '123')
     self.assertEqual(removetags(123, 'a'), '123')
     self.assertEqual(striptags(123), '123')
def share_to_facebook_url(context, text=None, obj_or_url=None):
    request = context['request']
    url = _build_url(request, obj_or_url)
    context['facebook_url'] = FACEBOOK_ENDPOINT.format(urlencode(url), text)
    context['content_title'] = text
    context['content_url'] = url
    return context
Example #21
0
def google_map_link( value):

    if value is None:
        return ""
    
    query = list()
    if isinstance(value, Location):
        if value.address:
            query.append(value.address)

        if value.city:
            query.append(value.city)

    elif isinstance(value, Event):
        if value.location:
            if value.location.address:
                query.append(value.location.address)

            if value.location.city:
                query.append(value.location.city)
        else:
            if value.address:
                query.append(value.address)

            if value.city:
                query.append(value.city)
    else:
        return ""

    query.append("Colombia")

    return 'http://map.google.es/maps?q=%s' % (urlencode(" ".join(query)))
    def get_picture_html(self, size=285):
        if self.picture:
            src = self.picture.url
        else:
            src = 'http://api.adorable.io/avatars/%s/%s' % (size, urlencode(self.name))

        return format_html('<img alt="{name}" src="{src}">', name=self.name, src=src)
Example #23
0
def form_photos(request, username, id_string):
    xform, owner = check_and_set_user_and_form(username, id_string, request)

    if not xform:
        return HttpResponseForbidden(_(u'Not shared.'))

    context = RequestContext(request)
    context.form_view = True
    context.content_user = owner
    context.xform = xform
    image_urls = []

    for instance in xform.surveys.all():
        for attachment in instance.attachments.all():
            # skip if not image e.g video or file
            if not attachment.mimetype.startswith('image'):
                continue

            data = {}

            for i in ['small', 'medium', 'large', 'original']:
                url = reverse(attachment_url, kwargs={'size': i})
                url = '%s?media_file=%s' % (url, urlencode(attachment.media_file.name))
                data[i] = url

            image_urls.append(data)

    context.images = image_urls
    context.profile, created = UserProfile.objects.get_or_create(user=owner)
    return render_to_response('form_photos.html', context_instance=context)
Example #24
0
def signin_start(request, slug=None, template_name="signin.html"):
    """Start of OAuth signin"""
    auth = settings.GITHUB_AUTH
    if 'next' in request.GET:
        auth['callback_url'] += urlencode("?next="+request.GET.get('next'))
    url = '%(auth_url)s?client_id=%(client_id)s&redirect_uri=%(callback_url)s'
    return HttpResponseRedirect(url%auth)
Example #25
0
def form_photos(request, username, id_string):
    xform, owner = check_and_set_user_and_form(username, id_string, request)

    if not xform:
        return HttpResponseForbidden(_(u"Not shared."))

    context = RequestContext(request)
    context.form_view = True
    context.content_user = owner
    context.xform = xform
    image_urls = []

    for attachment in Attachment.objects.filter(mimetype__startswith="image", instance__xform__id=xform.id):
        data = {}

        for i in ["small", "medium", "large", "original"]:
            url = reverse(attachment_url, kwargs={"size": i})
            url = "%s?media_file=%s" % (url, urlencode(attachment.media_file.name))
            data[i] = url

        image_urls.append(data)

    context.images = image_urls
    context.profile, created = UserProfile.objects.get_or_create(user=owner)
    return render_to_response("form_photos.html", context_instance=context)
Example #26
0
def studip_json_data(request):
    """
        Die Inhalte eines StudIP Verzeichnis als JSON zurückgeben,
        um es in Auditorium einbauen zu können.

        Hier absichtlich ohne Authentifizierungszwang
    """
    studip = get_object_or_404(Directory, dirname="StudIP")

    data_for_json = dict()
    for subdir in studip.get_directories():
        ebooks = []

        for ebook in subdir.get_ebooks():
            ebook_info = {
                'name':
                ebook.name,
                'size':
                ebook.size,
                'url':
                "http://" + request.get_host() +
                urlencode(MEDIA_URL + ebook.get_relative_path()),
            }
            ebooks.append(ebook_info)

        data_for_json[subdir.dirname] = ebooks

    json_serialized = json.dumps(data_for_json, ensure_ascii=False)

    # use JSONP if the parameter callback is supplied
    if request.GET.has_key('callback'):
        json_serialized = "%s(%s)" % (request.GET['callback'], json_serialized)

    return HttpResponse(json_serialized, mimetype='application/json')
Example #27
0
def post_to_linkendin_url(context, obj_or_url=None):
    request = context.get('request')
    if request:
        url = _build_url(request, obj_or_url)
        context[
            'linkendin_url'] = 'https://www.linkedin.com/shareArticle?url={}'.format(
                urlencode(url))
    return context
Example #28
0
def gls_link(e, entry):
    if not entry.service.public:
        if entry.author_name:
            return '?class=%s&author=%s' % (entry.service.cls,
                                            urlencode(entry.author_name))
    else:
        return '?class=%s' % entry.service.cls
    return entry.service.link
Example #29
0
def answer_url(prop, value):
    if isinstance(prop, Proposition):
        frame, text, slot1, slot2 = prop.nl_parts()
    elif isinstance(prop, YesNoQuestion):
        frame = prop.frame
        slot1 = prop.surface1.text
        slot2 = prop.surface2.text
    text1 = urlencode(slot1)
    text2 = urlencode(slot2)
    lang = frame.language.id
    if value == 'yes':
        return "/%s/add_statement/%s/%s/%s/?context=yes" % (lang, frame.id, text1, text2)
    elif value == 'no':
        return "/%s/submit_statement/?frame_id=%s&text1=%s&text2=%s&vote=-1&activity=commons2_reject" % (lang, frame.id, text1, text2)
    elif value == 'maybe':
        return "/%s/add_statement/%s/%s/%s/?context=maybe" % (lang, frame.id, text1, text2)
    else: raise ValueError
Example #30
0
def gls_link(e, entry):
    if not entry.service.public:
        if entry.author_name:
            return '?class=%s&author=%s' % (entry.service.cls,
                                            urlencode(entry.author_name))
    else:
        return '?class=%s' % entry.service.cls
    return entry.service.link
Example #31
0
def whatsapp_url(context, text, obj_or_url=None):
    text = compile_text(context, text)
    request = context['request']

    url = _build_url(request, obj_or_url)

    message = _compose_zap(text, url)
    context['zap_url'] = WHATSAPP_ENDPOIT % urlencode(message)
    return context
def post_to_twitter_url(context, text, obj_or_url=None):
    text = compile_text(context, text)
    request = context.get('request', MockRequest())

    url = _build_url(request, obj_or_url)

    tweet = _compose_tweet(text, url)
    context['tweet_url'] = TWITTER_ENDPOINT % urlencode(tweet)
    return context
Example #33
0
    def get_picture_html(self, size=285):
        if self.picture:
            src = self.picture.url
        else:
            src = 'http://api.adorable.io/avatars/%s/%s' % (size, urlencode(self.name))

        src = '"' + src + '"'

        return format_html('<div class="organizer__photo" style="background-image: url({src}), radial-gradient(farthest-corner at 1em 1em, rgba(249, 191, 59, .7), rgba(52, 152, 219, .8))"></div>', src=src)
Example #34
0
 def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     if self.request.GET.get('search'):
         context['search_params_str'] = '?%s' % "&".join(
             '{!s}={!s}'.format(k, urlencode(v))
             for k, v in self.request.GET.items()
             if k in ['title', 'url', 'module', 'search'])
         context['parent_str'] = _('Search Results')
     return context
def _get_domain(domain=None):
    """ Create domain string from Django Site object needed by Google API
    """
    if not domain:
        domain = Site.objects.get_current().domain
    if domain.find("http") == -1:
        domain = "http://" + domain + "/"
    siteid = urlencode(domain).replace(".", "%2E").replace("/", "%2F")
    return (domain, siteid)
Example #36
0
def simple_search_shortcut(search_string, sort=None):
    """
    Return a simple search URL from a search string, like "daniel OR country:CZ".
    """
    base_url = reverse("search")
    query_string = "q=%s" % urlencode(search_string)
    if sort:
        query_string = "%s&sort=%s" % (query_string, sort)
    return "%s?%s" % (base_url, query_string)
def tweet_to_twitter_url(context, text, obj_or_url=None):
    text = compile_text(context, text)
    request = context['request']

    # url = _build_url(request, obj_or_url)
    url = obj_or_url
    tweet = _compose_tweet(text, url)
    context['tweet_url'] = TWEET_TO_TWITTER.format(urlencode(tweet))
    return context
Example #38
0
def seed_next_random():
    """
    Generates a redirect view to a random Place object (State, ZipCode, or County)
    and caches it. Picking a random place is expensive on the DB and CPU since there
    are over 40000 objects that it picks from, which strains the DB (since it causes
    an iteration over the objects to select the ID).
    
    See random_place() below, for notes on usage.
    """
    response = None
    while not response:
        try:
            PlaceClass = rand_choice([State,ZipCode,County])
            
            # Cached list of all of the ID numbers for this place type.
            cache_key = "all_ids: %s" % (PlaceClass.__name__)
            all_ids = safe_get_cache(cache_key)
            if not all_ids:
                all_ids = PlaceClass.objects.only('id').order_by().values_list('pk') # [(0,),(1,),...]
                all_ids = map(lambda x: x[0], all_ids) # pull ID out of tuples for a "regular" list
                safe_set_cache(cache_key,all_ids,604800)
            
            rand_id = rand_choice(all_ids)
            
            if PlaceClass.__name__ == "County":
                place = PlaceClass.objects.get(pk=rand_id)
                url = reverse("places:county_detail",args=(place.state.abbr.lower(),urlencode(place.name.lower())),current_app="places")
                call_in_bg(county_detail, (None, place.state.abbr.lower(),urlencode(place.name.lower())))
            elif PlaceClass.__name__ == "State":
                place = PlaceClass.objects.only('slug').get(pk=rand_id)
                url = reverse("places:state_detail",args=(place.slug,),current_app="places")
                call_in_bg(state_detail, (None, place.slug))
            else:
                place = PlaceClass.objects.only('slug').get(pk=rand_id)
                url = reverse("places:zipcode_detail",args=(place.slug,),current_app="places")
                call_in_bg(zipcode_detail, (None, place.slug))
            response = HttpResponseRedirect(url)
        except:
            from traceback import print_exc
            print_exc()
            response = None
    safe_set_cache("random_place",response,604800)
    
    return response
def _get_sitemap(sitemap, domain):
    """ Try to reverse the sitemap URL, if not it will treat it as a normal URL
    """
    try:
        sitemap = reverse(sitemap)
    except NoReverseMatch:
        pass
    sitemap = domain + sitemap[1:]
    sitemapid = urlencode(sitemap).replace(".", "%2E").replace("/", "%2F")
    return (sitemap, sitemapid)
Example #40
0
 def test_MediaList_with_category_adult_and_anonymous_user(self):
     """
     Anonymous user is redirected to login page when trying to access the MediaList view with an adult Category
     :return:
     """
     origin = reverse('movies:media_list', args=('adult', ))
     response = self.client.get(origin, follow=True, HTTP_USER_AGENT='Mozilla 5.1')
     final = response.redirect_chain[-1]
     signInUrl = 'http://testserver' + reverse('ikwen:sign_in') + '?next_url=' + urlencode(origin)
     self.assertEqual(final[0], signInUrl)
Example #41
0
    def get_picture_html(self, size=285):
        if self.picture:
            src = self.picture.url
        else:
            src = 'http://api.adorable.io/avatars/%s/%s' % (
                size, urlencode(self.name))

        return format_html('<img alt="{name}" src="{src}">',
                           name=self.name,
                           src=src)
Example #42
0
 def test_MediaList_with_category_adult_and_anonymous_user(self):
     """
     Anonymous user is redirected to login page when trying to access the MediaList view with an adult Category
     :return:
     """
     origin = reverse('movies:media_list', args=('adult', ))
     response = self.client.get(origin, follow=True, HTTP_USER_AGENT='Mozilla 5.1')
     final = response.redirect_chain[-1]
     signInUrl = 'http://testserver' + reverse('ikwen:sign_in') + '?next_url=' + urlencode(origin)
     self.assertEqual(final[0], signInUrl)
 def linkrepl(m):
     return '{before}{root}?link={link}&next={next}{after}'.format(
         root=external_link_root,
         next=next,
         before=m.group('before'),
         # unescape the link before encoding it to ensure entities
         # such as '&' don't get double escaped
         link=urlencode(h.unescape(m.group('link')), safe=''),
         after=m.group('after'),
     )
def _get_sitemap(sitemap, domain):
    """ Try to reverse the sitemap URL, if not it will treat it as a normal URL
    """
    try:
        sitemap = reverse(sitemap)
    except NoReverseMatch:
        pass
    sitemap = domain + sitemap[1:]
    sitemapid = urlencode(sitemap).replace(".", "%2E").replace("/", "%2F")
    return (sitemap, sitemapid)
Example #45
0
 def find_by_keyword(self, keyword):
     """ Renvoyer des informations d'URL d'images pour une expression """
     path = 'https://www.googleapis.com/customsearch/v1?key={key}&cx={cx}&q={keyword}' \
            '&searchType=image&imgType=photo&fileType=jpg&rights=cc_sharealike&alt=json'
     parameters = {'kayword': urlencode(keyword), 'key': settings.GOOGLE_API_KEY, 'cx': settings.GOOGLE_API_CX}
     response = get_url_resource(path.format(**parameters))
     data = simplejson.loads(response)  # récupérer les données JSON d'images correspondant à la recherche
     images = data.get('items')
     results = [{'url': image['link'], 'title': image['title'], 'page': image.get('contextLink', '')} for image in images] if images else []
     return results
Example #46
0
def settings_feeds(request):
    next_url = reverse('settings_feeds')
    if request.REQUEST.get('initial'):
        next_url = next_url + defaultfilters.urlencode('?initial=True')
    form = BlogForm(instance=request.profile)
    if request.method == 'POST':
        form = BlogForm(request.POST, instance=request.profile)
        if form.is_valid():
            form.save()
            messages.success(request, 'Your profile has been saved.')
    return settings_render(request, 'settings/feeds.html', locals())
    def test_response_content(self):
        """The middleware should rewrite html url links."""
        path = "test-path"
        self.request.META = {"PATH_INFO": "/another-url/"}
        self.request.path = path
        response = HttpResponse(content=self.content, content_type=self.content_type)
        processed_response = self.middleware.process_response(request=self.request, response=response)

        expected = '<a    href="/external-link/?link={}&next={}"></a>'.format(urlencode(self.link, safe=""), path)
        self.assertEqual(processed_response.content, expected.encode())
        self.assertEqual(processed_response["Content-Length"], str(len(expected)))
Example #48
0
def settings_feeds(request):
    next_url = reverse("settings_feeds")
    if request.REQUEST.get("initial"):
        next_url = next_url + defaultfilters.urlencode("?initial=True")
    form = BlogForm(instance=request.profile)
    if request.method == "POST":
        form = BlogForm(request.POST, instance=request.profile)
        if form.is_valid():
            form.save()
            messages.success(request, "Your profile has been saved.")
    return settings_render(request, "settings/feeds.html", locals())
Example #49
0
def create_hashtag_url(matchobj):
    """
    Receives a matched object with a hashtag in the .group(0) and returns the url from it.

    @param matchobj: MatchObj - given through pattern.sub.

    @return hashtag between <a></a> HTML tags
    """
    hashtag = matchobj.group(0)  # format: #foo
    url = reverse('search') + '?q=' + urlencode(hashtag)
    return '<a class="hashtag" href="%(url)s">%(hashtag)s</a>' % locals()
Example #50
0
def create_hashtag_url(matchobj):
    """
    Receives a matched object with a hashtag in the .group(0) and returns the url from it.

    @param matchobj: MatchObj - given through pattern.sub.

    @return hashtag between <a></a> HTML tags
    """
    hashtag = matchobj.group(0)  # format: #foo
    url = reverse('search') + '?q=' + urlencode(hashtag)
    return '<a class="hashtag" href="%(url)s">%(hashtag)s</a>' % locals()
 def linkrepl(m):
     a = str('''%(before)s%(root)s?link=%(link)s&next=%(next)s%(after)s''' % {
         'root': self.external_link_root,
         'next': next,
         'before': m.group('before'),
         # unescape the link before encoding it to ensure entities
         # such as '&' # don't get double escaped
         'link': urlencode(h.unescape(m.group('link')), safe=''),
         'after': m.group('after'),
         })
     return a
Example #52
0
    def form_valid(self, form):
        venue = self.object = form.save()
        venue_data = {
            'name': venue.name,
            'address': venue.address,
            'encAddress': urlencode(venue.address),
            'lat': venue.location.y,
            'lng': venue.location.x,
            'pk': venue.pk
        }

        return HttpResponse(json.dumps(venue_data), content_type="application/json", status=201)
Example #53
0
 def test_register_with_correct_values_next_url_and_other_get_parameters(
         self):
     """
     Correct parameters save user in default and foundation databases. Prior GET parameters remain
     """
     import ikwen.conf.settings as ikwen_settings
     ikwen_settings.IKWEN_SERVICE_ID = getattr(settings, 'IKWEN_SERVICE_ID')
     service = Service.objects.get(pk=getattr(settings, 'IKWEN_SERVICE_ID'))
     Config.objects.create(service=service,
                           company_name='Project',
                           contact_email='*****@*****.**',
                           signature='')
     contact_url = reverse('ikwen:forgotten_password')
     origin = reverse('ikwen:register') + '?next=' + urlencode(
         contact_url + '?p1=v1&p2=v2')
     response = self.client.post(origin, {
         'username': '******',
         'password': '******',
         'password2': 'secret',
         'phone': '655000001',
         'first_name': 'Sah',
         'last_name': 'Fogaing'
     },
                                 follow=True)
     m1 = Member.objects.using(UMBRELLA).get(
         username='******')
     m2 = Member.objects.get(email='*****@*****.**')
     self.assertEqual(self.client.session['_auth_user_id'],
                      m1.id)  # Test whether user is actually logged in
     self.assertEqual(m1.id, m2.id)
     self.assertEqual(m1.full_name, 'Sah Fogaing')
     final = urlparse(response.redirect_chain[-1][0])
     location = final.path.strip('/').split('/')[-1]
     self.assertEqual(location, 'forgottenPassword')
     params = unquote(final.query).split('&')
     self.assertGreaterEqual(params.index('p1=v1'), 0)
     self.assertGreaterEqual(params.index('p2=v2'), 0)
     response = self.client.post(reverse('ikwen:do_sign_in'), {
         'username': '******',
         'password': '******'
     },
                                 follow=True)
     final = response.redirect_chain[-1]
     location = final[0].strip('?').strip('/').split('/')[-1]
     self.assertEqual(location, 'console')
     perm_list = UserPermissionList.objects.get(user=m2)
     group = Group.objects.get(name=COMMUNITY)
     self.assertIn(group.id, perm_list.group_fk_list)
     self.assertIn(group.id, m1.group_fk_list)
     self.assertIn(group.id, m2.group_fk_list)
     from pymongo import Connection
     cnx = Connection()
     cnx.drop_database('test_registered_member')
Example #54
0
    def get_picture_html(self, size=285):
        if self.picture:
            src = self.picture.url
        else:
            src = 'http://api.adorable.io/avatars/%s/%s' % (
                size, urlencode(self.name))

        src = '"' + src + '"'

        return format_html(
            '<div class="organizer__photo" style="background-image: url({src}), radial-gradient(farthest-corner at 1em 1em, rgba(249, 191, 59, .7), rgba(52, 152, 219, .8))"></div>',
            src=src)
Example #55
0
    def get_abs_url(self, facet):
        """
        Calculates the absolute URL for each item in a particular filter
        <ul> tag. It then returns this as a string to be rendered in the
        template.

        """
        facet_slab, facet_count = facet
        url_atoms = {'location': '', 'title': '', 'facet': '', 'featured': '',
                     'moc': '', 'company': ''}

        if self.widget_type in ('country', 'city', 'state'):
            facet_type = 'location'
        else:
            facet_type = self.widget_type

        url_atoms[facet_type] = urlencode(facet_url(facet_slab))

        # For custom facets where the "show with or without results" option
        # is checked, we don't want to build out a path relative to the
        # user's current location; the user should just be taken to the page
        # for the custom facet. For example, if a user browses to
        # /north-carolina/usa/jobs then clicks on "CAReer Talent" custom facet
        # for DTNA, and that custom facet has zero results, we don't want the
        # user to go to /north-carolina/usa/jobs/career-talent/new-jobs, but
        # /career-talent/new-jobs.
        #
        # So if the count of jobs is zero, don't execute the process that
        # builds URL path relative to current location :) Clear as mud.
        # Don't worry, we'll take this out once we have proper static pages
        # implemented.
        if facet_count:
            url_atoms = self._build_path_dict(facet_type, url_atoms)

        # Create a list of intermediate 2-tuples, with the url_atoms
        # value and the ordering data from self.slug_order.
        url_orders = [(url_atoms[key], self.slug_order[key])
                      for key in url_atoms]

        # Sort them based on that ordering data.
        results = sorted(url_orders, key=lambda result: result[1])

        # Join all values from this sorted list to create
        # the canonical URL.
        url = '/%s/' % '/'.join([i[0] for i in
                                ifilter(lambda r: r[0], results)])

        if hasattr(self.request, 'META'):
            url = ("%s?%s" % (url, self.query_string)
                   if self.query_string else url)

        return url
Example #56
0
        def wrapper(request, *args, **kwargs):
            # if this is already the callback, do not wrap.
            if getattr(request, "avoid_redirect", False):
                logger.debug("entered calback. View: %s, kwargs: %s" % (view, kwargs))
                return view(request, *args, **kwargs)

            if "facebook" in request.META["HTTP_USER_AGENT"]:
                return view(request, *args, **kwargs)

            session = get_session(request)

            app_dict = get_app_dict(app_name)

            signed_request = session.signed_request

            if not signed_request:
                # logger.debug('No signed_request in current session. Returning View.')
                # return view(request, *args, **kwargs)
                logger.debug("No signed_request in current session. Redirecting.\n")
                url = u"%s?sk=app_%s&app_data=%s" % (app_dict["REDIRECT-URL"], app_dict["ID"], urlencode(request.path))
                return render_to_response("facebook/redirecter.html", {"destination": url}, RequestContext(request))

            logger.debug("signed_request: %s\n" % signed_request)
            # This is handled by the Redirect2AppDataMiddleware

            if "app_data" in signed_request:
                app_data = signed_request["app_data"]
                del request.session["facebook"]["signed_request"]["app_data"]
                request.session.modified = True
                logger.debug("found app_data url: %s" % app_data)
                return HttpResponseRedirect(app_data)

            else:
                # check if the app is inside the specified page.
                try:
                    page = signed_request["page"]["id"]
                except KeyError:
                    page = 0

                if int(page) not in app_dict["PAGES"] and getattr(settings, "FB_REDIRECT", True):
                    url = u"%s?sk=app_%s&app_data=%s" % (
                        app_dict["REDIRECT-URL"],
                        app_dict["ID"],
                        urlencode(request.path),
                    )
                    logger.debug(
                        "Tab is not in original Page (id: %s, should be: %s. Redirecting to: %s"
                        % (page, app_dict["PAGES"][0], url)
                    )
                    return render_to_response("facebook/redirecter.html", {"destination": url}, RequestContext(request))

            return view(request, *args, **kwargs)