Exemplo n.º 1
0
def search(request):
    q = ""
    per_page = 20
    page = 1
    page_results = None
    all_items_count = 0
    paginator = ""
    if "q" in request.GET:
        form = SearchForm(request.GET, request=request)
        if form.is_valid():
            if 'page' in request.GET:
                page = request.GET["page"]
            else:
                page = 1
            pages = paginate(page, per_page)
            q = form.cleaned_data["q"]
            results = SearchQuerySet().models(SellerItem).auto_query(q)
            page_results = results[pages["from"]: pages["to"]]
            url = "/search?q=" + q + "&page="
            all_items_count = len(results)
            paginator = pagination_string(all_items_count,
                                          int(page),
                                          per_page,
                                          url)

    return render_to_response(
        'search/search_home.html',
        context_instance=RequestContext(request,
                                        {"results": page_results,
                                         "q": q,
                                         "paginator": paginator,
                                         "total_results": all_items_count}))
Exemplo n.º 2
0
def fetch_content(query_text, column, text_column, page, sources=None):
    session = g.session
    tsq = build_tsquery(query_text)
    search = None
    if column == db.WebPages.title:
        query = session                                                                                         \
          .query(db.WebPages, func.ts_rank_cd(func.to_tsvector("english", column), func.to_tsquery(tsq))) \
          .filter(                                                                                        \
           func.to_tsvector("english", column).match(tsq, postgresql_regconfig='english')              \
           )                                                                                           \
          .order_by(func.ts_rank_cd(func.to_tsvector("english", column), func.to_tsquery(tsq)).desc())

    elif column == db.WebPages.tsv_content:
        query = session                                                                                         \
          .query(db.WebPages, func.ts_rank_cd(column, func.to_tsquery(tsq)))                              \
          .filter( column.match(tsq) )

        if "'" in query_text or '"' in query_text:
            search = query_text.replace("!", " ").replace("?", " ").replace(
                "'", " ").replace('"', " ").replace(',',
                                                    " ").replace('.',
                                                                 " ").strip()
            while "  " in search:
                search = search.replace("  ", " ")
            search = search.strip()
            search = '%{}%'.format(search.lower())
            query = query.filter(func.lower(text_column).like(search))

        query = query.order_by(
            func.ts_rank_cd(column, func.to_tsquery(tsq)).desc())

        if sources:
            query = query.filter(db.WebPages.netloc.in_(sources))

    else:
        raise ValueError("Wat?")

    print(str(query.statement.compile(dialect=postgresql.dialect())))
    print("param: '%s', '%s', '%s'" % (tsq, sources, search))

    try:
        entries = paginate(query, page, per_page=50)

    except sqlalchemy.exc.ProgrammingError:
        traceback.print_exc()
        print("ProgrammingError - Rolling back!")
        g.session.rollback()
        raise
    except sqlalchemy.exc.InternalError:
        traceback.print_exc()
        print("InternalError - Rolling back!")
        g.session.rollback()
        raise
    except sqlalchemy.exc.OperationalError:
        traceback.print_exc()
        print("InternalError - Rolling back!")
        g.session.rollback()
        raise

    return entries
Exemplo n.º 3
0
def album_photos(request):
    """
    Ajax request handler to display album photos
    """
    page = int(request.GET["page"])
    count = int(request.GET["show"])
    pages = paginate(page, count)
    album_id = request.GET["album_id"]

    album_photos = {}
    album_photos["data"] = []
    if album_id == "frattiest_week":
        total_count = 10
        query_object = AlbumImage.objects.all().order_by(
            'votes', 'album__created_date')[:10]
    else:
        album = Album.objects.get(pk=int(album_id))
        total_count = AlbumImage.objects.filter(album=album).count()
        query_object = AlbumImage.objects.filter(
            album=album).order_by('-id')[pages["from"]:pages["to"]]

    album_photos["data"] = serialize_photos(query_object)
    album_photos["total_count"] = total_count
    album_photos["album_name"] = album.name
    return HttpResponse(simplejson.dumps(album_photos),
                        mimetype="application/json")
Exemplo n.º 4
0
def album_photos(request):
    """
    Ajax request handler to display album photos
    """
    page = int(request.GET["page"])
    count = int(request.GET["show"])
    pages = paginate(page, count)
    album_id = request.GET["album_id"]
    
    album_photos = {}
    album_photos["data"] = []
    if album_id == "frattiest_week":
        total_count = 10
        query_object = AlbumImage.objects.all().order_by(
            'votes', 'album__created_date')[:10]
    else:
        album = Album.objects.get(pk=int(album_id))
        total_count = AlbumImage.objects.filter(album=album).count()
        query_object = AlbumImage.objects.filter(album=album).order_by('-id')[
            pages["from"]:pages["to"]]

    album_photos["data"] = serialize_photos(query_object)
    album_photos["total_count"] = total_count
    album_photos["album_name"] = album.name
    return HttpResponse(simplejson.dumps(album_photos),
                        mimetype="application/json")
Exemplo n.º 5
0
def get_adv_parameters(request, page, campaign):
    per_page = 20
    pages = paginate(page, per_page)
    paginator = ajax_pagination_string(len(campaign.ads),
                                  int(page),per_page,
                                  "App.Ad.get_adv_page")
    advs = Ad.objects(id__in=campaign.ads)[pages["from"]:pages["to"]]
    params = {"advs" : advs, "adv_paginator" : paginator}
    return params
Exemplo n.º 6
0
def fetch_content(query_text, column, text_column, page, sources=None):
	session = g.session
	tsq = build_tsquery(query_text)
	search = None
	if column == db.WebPages.title:
		query = session                                                                                         \
				.query(db.WebPages, func.ts_rank_cd(func.to_tsvector("english", column), func.to_tsquery(tsq))) \
				.filter(                                                                                        \
					func.to_tsvector("english", column).match(tsq, postgresql_regconfig='english')              \
					)                                                                                           \
				.order_by(func.ts_rank_cd(func.to_tsvector("english", column), func.to_tsquery(tsq)).desc())

	elif column == db.WebPages.tsv_content:
		query = session                                                                                         \
				.query(db.WebPages, func.ts_rank_cd(column, func.to_tsquery(tsq)))                              \
				.filter( column.match(tsq) )

		if "'" in query_text or '"' in query_text:
			search = query_text.replace("!", " ").replace("?", " ").replace("'", " ").replace('"', " ").replace(',', " ").replace('.', " ").strip()
			while "  " in search:
				search = search.replace("  ", " ")
			search = search.strip()
			search = '%{}%'.format(search.lower())
			query = query.filter( func.lower(text_column).like(search) )

		query = query.order_by(func.ts_rank_cd(column, func.to_tsquery(tsq)).desc())

		if sources:
			query = query.filter(db.WebPages.netloc.in_(sources))

	else:
		raise ValueError("Wat?")

	print(str(query.statement.compile(dialect=postgresql.dialect())))
	print("param: '%s', '%s', '%s'" % (tsq, sources, search))

	try:
		entries = paginate(query, page, per_page=50)

	except sqlalchemy.exc.ProgrammingError:
		traceback.print_exc()
		print("ProgrammingError - Rolling back!")
		g.session.rollback()
		raise
	except sqlalchemy.exc.InternalError:
		traceback.print_exc()
		print("InternalError - Rolling back!")
		g.session.rollback()
		raise
	except sqlalchemy.exc.OperationalError:
		traceback.print_exc()
		print("InternalError - Rolling back!")
		g.session.rollback()
		raise

	return entries
Exemplo n.º 7
0
def list_post(request, page):
    per_page = 20
    pages = paginate(page, per_page)
    all_posts_count = Post.objects.all().count()
    posts = Post.objects.all()[pages["from"] : pages["to"]]
    url = "/page/list/post/"
    paginator = pagination_string(all_posts_count, int(page), per_page, url)
    return render_to_response("cms/post_list.html",
                              context_instance = RequestContext\
                                  (request,
                                   {"posts" : posts,
                                    "paginator" : paginator,
                                    "extra_path" : settings.BASE_URL_PATH}))
Exemplo n.º 8
0
def news_type_page(request,post_type,page):
    page = int(page)
    per_page = 20
    pages = paginate(page, per_page)
    stream_news = StreamPost().get_news_type(pages, post_type)
    count = StreamPost.objects(post_type=post_type).count()
    paginator = pagination_string(count,
                                  page, per_page,
                                  "/news/type/"+post_type+"/")
    return render_to_response("news/news_home.html",
                              context_instance=RequestContext\
                                  (request,
                                   {"stream_news":stream_news,
                                    "paginator":paginator}))
Exemplo n.º 9
0
def renderFeedsSourceTable(source, page=1):
    feeds = g.session.query(db.RssFeedPost) \
     .filter(db.RssFeedPost.srcname == source)  \
     .order_by(desc(db.RssFeedPost.published))

    if feeds is None:
        flash('No feeds? Something is /probably/ broken!.')
        return redirect(url_for('renderFeedsTable'))

    feed_entries = paginate(feeds, page, app.config['FEED_ITEMS_PER_PAGE'])

    return render_template('rss-pages/feeds.html',
                           subheader="Source = '%s'" % source,
                           sequence_item=feed_entries,
                           page=page)
Exemplo n.º 10
0
def renderFeedsSourceTable(source, page=1):
	feeds = g.session.query(db.FeedItems) \
		.filter(db.FeedItems.srcname == source)  \
		.order_by(desc(db.FeedItems.published))

	if feeds is None:
		flash(gettext('No feeds? Something is /probably/ broken!.'))
		return redirect(url_for('renderFeedsTable'))

	feed_entries = paginate(feeds, page, app.config['FEED_ITEMS_PER_PAGE'])

	return render_template('rss-pages/feeds.html',
						   subheader = "Source = '%s'" % source,
						   sequence_item   = feed_entries,
						   page            = page
						   )
Exemplo n.º 11
0
def fetch_content(query_text, column, page, sources=None):
	session = db.get_session()
	tsq = build_tsquery(query_text)

	if column == db.WebPages.title:
		query = session                                                                                         \
				.query(db.WebPages, func.ts_rank_cd(func.to_tsvector("english", column), func.to_tsquery(tsq))) \
				.filter(                                                                                        \
					func.to_tsvector("english", column).match(tsq, postgresql_regconfig='english')              \
					)                                                                                           \
				.order_by(func.ts_rank_cd(func.to_tsvector("english", column), func.to_tsquery(tsq)).desc())

	elif column == db.WebPages.tsv_content:
		query = session                                                                                         \
				.query(db.WebPages, func.ts_rank_cd(column, func.to_tsquery(tsq)))                              \
				.filter( column.match(tsq) )                                                                    \
				.order_by(func.ts_rank_cd(column, func.to_tsquery(tsq)).desc())

		if sources:
			query = query.filter(db.WebPages.netloc.in_(sources))

	else:
		raise ValueError("Wat?")

	# print(str(query.statement.compile(dialect=postgresql.dialect())))
	# print("param: '%s'" % tsq)

	try:
		entries = paginate(query, page, per_page=50)

	except sqlalchemy.exc.ProgrammingError:
		traceback.print_exc()
		print("ProgrammingError - Rolling back!")
		db.get_session().rollback()
		raise
	except sqlalchemy.exc.InternalError:
		traceback.print_exc()
		print("InternalError - Rolling back!")
		db.get_session().rollback()
		raise
	except sqlalchemy.exc.OperationalError:
		traceback.print_exc()
		print("InternalError - Rolling back!")
		db.get_session().rollback()
		raise

	return entries
Exemplo n.º 12
0
def renderFeedsTagTable(tag, page=1):
    query = g.session.query(db.RssFeedPost)
    # query = query.join(db.Tags)
    query = query.filter(db.RssFeedPost.tags.contains(tag))
    query = query.order_by(desc(db.RssFeedPost.published))

    feeds = query

    if feeds is None:
        flash('No feeds? Something is /probably/ broken!.')
        return redirect(url_for('renderFeedsTable'))

    feed_entries = paginate(feeds, page, app.config['FEED_ITEMS_PER_PAGE'])

    return render_template('rss-pages/feeds.html',
                           subheader="Tag = '%s'" % tag,
                           sequence_item=feed_entries,
                           page=page)
Exemplo n.º 13
0
def renderFeedsTable(page=1):

    feeds = g.session.query(db.RssFeedPost)       \
     .order_by(desc(db.RssFeedPost.published))

    feeds = feeds.options(joinedload('tag_rel'))
    feeds = feeds.options(joinedload('author_rel'))

    if feeds is None:
        flash('No feeds? Something is /probably/ broken!.')
        return redirect(url_for('renderFeedsTable'))

    feed_entries = paginate(feeds, page, app.config['FEED_ITEMS_PER_PAGE'])

    return render_template('rss-pages/feeds.html',
                           subheader="",
                           sequence_item=feed_entries,
                           page=page)
Exemplo n.º 14
0
def renderFeedsTagTable(tag, page=1):
	query = g.session.query(db.FeedItems)
	# query = query.join(db.Tags)
	query = query.filter(db.FeedItems.tags.contains(tag))
	query = query.order_by(desc(db.FeedItems.published))

	feeds = query

	if feeds is None:
		flash(gettext('No feeds? Something is /probably/ broken!.'))
		return redirect(url_for('renderFeedsTable'))

	feed_entries = paginate(feeds, page, app.config['FEED_ITEMS_PER_PAGE'])

	return render_template('rss-pages/feeds.html',
						   subheader = "Tag = '%s'" % tag,
						   sequence_item   = feed_entries,
						   page            = page
						   )
Exemplo n.º 15
0
def search_album(request):
    page = 1
    count = 20
    q = ""
    if "page" in request.GET:
        page = int(request.GET["page"])

    if "show" in request.GET:
        count = int(request.GET["show"])

    if "q" in request.GET:
        q = request.GET["q"]
    pages = paginate(page, count)
    query_object = Album.objects.filter(name__icontains=q)[pages["from"]:pages["to"]]
    albums = {}
    albums["data"] = serialize_album(query_object)
    

    albums["total_count"] = Album.objects.count()
    return HttpResponse(simplejson.dumps(albums), mimetype="application/json")
Exemplo n.º 16
0
def search_album(request):
    page = 1
    count = 20
    q = ""
    if "page" in request.GET:
        page = int(request.GET["page"])

    if "show" in request.GET:
        count = int(request.GET["show"])

    if "q" in request.GET:
        q = request.GET["q"]
    pages = paginate(page, count)
    query_object = Album.objects.filter(
        name__icontains=q)[pages["from"]:pages["to"]]
    albums = {}
    albums["data"] = serialize_album(query_object)

    albums["total_count"] = Album.objects.count()
    return HttpResponse(simplejson.dumps(albums), mimetype="application/json")
Exemplo n.º 17
0
def item_list_page(request, page):
    response = reply_object()
    list_items = {}
    try:
        per_page = 20
        pages = paginate(page, per_page)
        all_items_count = Item.objects.all().count()
        items = Item.objects.all()[pages["from"] : pages["to"]]
        url = "#/item/list/"
        paginator = pagination_string(all_items_count, int(page), per_page, url)
        page = render_to_string("item_list.html",
                                {"item_list" : items,
                                 "paginator" : paginator})
        response["code"] = settings.APP_CODE["PAGE LOADED"]
        response["page"] = page
    except:
        response["code"] = settings.APP_CODE["SYSTEM ERROR"]
        response["page"] = "An error has occured while loading this page"

    return HttpResponse(simplejson.dumps(response))
Exemplo n.º 18
0
def list_post(request, page):
    response = reply_object()
    try:
        page = int(page)
        per_page = 20
        pages = paginate(page, per_page)
        model_object = StreamPost
        stream_posts = get_mongo_objects_list(request, model_object, pages)
        paginator = pagination_string(len(stream_posts),
                                      page, per_page,
                                      "#/news/list/post")
        page = render_to_string("news/stream_post_list.html",
                                {"stream_posts":stream_posts,
                                 "paginator" : paginator,
                                 "object_type" : "stream_post"})
        response["code"] = settings.APP_CODE["PAGE LOADED"]
        response["page"] = page
    except:
        response["code"] = settings.APP_CODE["SYSTEM ERROR"]

    return HttpResponse(simplejson.dumps(response))
Exemplo n.º 19
0
def renderFeedsTable(page=1):

	feeds = g.session.query(db.FeedItems)       \
		.order_by(desc(db.FeedItems.published))


	feeds = feeds.options(joinedload('tag_rel'))
	feeds = feeds.options(joinedload('author_rel'))



	if feeds is None:
		flash(gettext('No feeds? Something is /probably/ broken!.'))
		return redirect(url_for('renderFeedsTable'))

	feed_entries = paginate(feeds, page, app.config['FEED_ITEMS_PER_PAGE'])

	return render_template('rss-pages/feeds.html',
						   subheader = "",
						   sequence_item   = feed_entries,
						   page            = page
						   )
Exemplo n.º 20
0
def list_campaigns(request, page):
    response = reply_object()
    try:
        per_page = 20
        pages = paginate(page, per_page)
        camp_obj = Campaign()
        paginator = pagination_string(camp_obj.count(request.user.id), int(page),
                                      per_page,
                                      "#/list/adv/")
        campaigns = camp_obj.my_campaigns(request.user.id,
                                          pages["from"],
                                          pages["to"])
        page = render_to_string("campaigns.html",
                                {"campaigns" : campaigns,
                                 "paginator" : paginator})
        response["code"] = settings.APP_CODE["PAGE LOADED"]
        response["page"] = page

    except:
        response["code"] = settings.APP_CODE["SYSTEM ERROR"]

    return HttpResponse(simplejson.dumps(response))