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
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))
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
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())
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
def share_url(network, title="", url=""): """ Builds a network url with given variables """ return network.url % { "url": urlencode(url), "title": urlencode(title), }
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)
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
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), }
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')
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)
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)
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 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
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)
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)
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)
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)
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
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
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
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
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)
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)
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
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)
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 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)
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 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
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)))
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 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
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)
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')
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)
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
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)