Exemple #1
0
def brand_home(request, user=0):
    return account_views.my_custom_404_view(request)
    page_user_prof = UserProfile.objects.get(id=user)
    filter_id = request.GET.get('q', None)

    if request.is_ajax():
        data = product_feed_json(request,
                                 for_user=page_user_prof,
                                 shelf=filter_id,
                                 user_is_brand=True)
        data = json.dumps(data,
                          cls=DjangoJSONEncoder,
                          default=lambda obj: None)
        return HttpResponse(data, content_type="application/json")
    else:
        tpl = 'pages/middle_content_only.html'
        tpl_vars = {
            'selected_tab': 'myshelf',
            'filtered_shelf':
            Shelf.objects.get(id=filter_id) if filter_id else None,
            'feed_type': 'items',
            'page_name': 'myshelf',
            'feed_filter': 'products',
            'page_user_prof': page_user_prof,
            'page_title': SEO_VALUES['shelf_home']['title'],
            'meta_description': SEO_VALUES['shelf_home']['meta_desc']
        }
        return render_to_response(tpl,
                                  tpl_vars,
                                  context_instance=RequestContext(request))
Exemple #2
0
def shelf_home(request, user=0, filter=None):
    '''
    cases:
    - is_ajax = if its an ajax request, we want to render an httpresponse for the response (endless scroll)
    - feed.is_empty() = the user has no items in their feed, render the empty version of their homepage into middle content only
    - feed not empty = normal flow, render their sidebar alongside the feed of their items
    '''
    return account_views.my_custom_404_view(request)
    page_user_prof = UserProfile.objects.get(id=user)
    filter_id = request.GET.get('q', None)
    #feed = WishlistItemsFeed(request, {"shelf": filter_id}, user=page_user_prof).generate_items()

    if request.is_ajax():
        data = []
        product_data = []
        blog_data = []
        instagram_data = []
        feed_filter = request.GET.get('filter', 'blog')
        if feed_filter == 'all' or feed_filter == 'products':
            product_data = product_feed_json(request,
                                             for_user=page_user_prof,
                                             shelf=filter_id)
        if feed_filter == 'all' or feed_filter == 'photos':
            instagram_data = instagram_feed_json(request,
                                                 for_user=page_user_prof)
        if feed_filter == 'all' or feed_filter == 'blog':
            blog_data = blog_feed_json(request, for_user=page_user_prof)

        while blog_data or instagram_data or product_data:
            if blog_data:
                data.append(blog_data.pop())
            if instagram_data:
                data.append(instagram_data.pop())
            if product_data:
                data.append(product_data.pop())
        data.reverse()
        data = json.dumps(data,
                          cls=DjangoJSONEncoder,
                          default=lambda obj: None)
        return HttpResponse(data, content_type="application/json")
    else:
        if not filter:
            filter = 'blog'
        tpl = 'pages/middle_content_only.html'
        tpl_vars = {
            'selected_tab': 'myshelf',
            'filtered_shelf':
            Shelf.objects.get(id=filter_id) if filter_id else None,
            'feed_type': 'items',
            'page_name': 'myshelf',
            'feed_filter': filter,
            'page_user_prof': page_user_prof,
            'page_title': SEO_VALUES['shelf_home']['title'],
            'meta_description': SEO_VALUES['shelf_home']['meta_desc']
        }
        return render_to_response(tpl,
                                  tpl_vars,
                                  context_instance=RequestContext(request))
Exemple #3
0
def summary_page(request):
    brand = request.visitor["brand"]

    if request.is_ajax():
        try:
            search_query = json.loads(request.body)
        except ValueError:
            search_query = {}

        if search_query.get('filter') == feeds_helpers.BLOG_FEED_FILTER_KEY:
            data = feeds_helpers.blog_feed_json_dashboard(request,
                                                          for_brand=brand,
                                                          limit_size=3)

        if search_query.get('filter') == feeds_helpers.PRODUCT_FEED_FILTER_KEY:
            data = feeds_helpers.product_feed_json(request,
                                                   for_brand=brand,
                                                   limit_size=3)

        if search_query.get(
                'filter') == feeds_helpers.INSTAGRAM_FEED_FILTER_KEY:
            data = feeds_helpers.instagram_feed_json(request,
                                                     for_brand=brand,
                                                     limit_size=3)

        if search_query.get(
                'filter') == feeds_helpers.PINTEREST_FEED_FILTER_KEY:
            data = feeds_helpers.pinterest_feed_json(request,
                                                     for_brand=brand,
                                                     limit_size=3)

        if search_query.get('filter') == feeds_helpers.TWITTER_FEED_FILTER_KEY:
            data = feeds_helpers.twitter_feed_json(request,
                                                   for_brand=brand,
                                                   limit_size=3)

        data = json.dumps(data, cls=DjangoJSONEncoder)
        return HttpResponse(data, content_type="application/json")
    else:
        context = {
            "brand": brand,
        }
        return render(request, 'pages/brand_dashboard/summary_page.html',
                      context)
Exemple #4
0
def mentioning_products(request):
    brand = request.visitor["brand"]
    base_brand = request.visitor["base_brand"]
    if not base_brand or not base_brand.is_subscribed or not base_brand.stripe_plan in STRIPE_ANALYTICS_PLANS:
        return redirect("/")

    rq_debug = request.GET.get('debug') != None
    if request.is_ajax() or rq_debug:
        try:
            search_query = json.loads(request.body)
        except ValueError:
            search_query = {}
        brand_domain = search_query.get("keyword", brand.domain_name)
        if rq_debug:
            brand_domain = "zappos.com"
        possible_brands = list(
            models.Brands.objects.filter(domain_name=brand_domain,
                                         blacklisted=False).only(
                                             'id', 'products_count').values(
                                                 'id', 'products_count'))
        if possible_brands:
            possible_brands.sort(key=lambda x: -x["products_count"])
            for_brand = models.Brands.objects.get(id=possible_brands[0]["id"])
        else:
            for_brand = brand
        print for_brand
        data = feeds_helpers.product_feed_json(request,
                                               for_brand=for_brand,
                                               prepare_pagination=False)
        data = json.dumps(data, cls=DjangoJSONEncoder)
        # f = open('/home/walrus/Desktop/feed.json', 'wb')
        # f.write(data)
        # f.close()
        if rq_debug:
            return HttpResponse("<body>%s</body>" % data)
        else:
            return HttpResponse(data, content_type="application/json")
    else:
        return render(request, 'pages/brand_dashboard/bm_products.html', {
            'selected_tab': 'dashboard',
            'sub_page': 'mentions_products',
        })
def brand_items(request, brand_url, brand_id):
    try:
        brands_qs = Brands.objects
        brand = brands_qs.get(id=brand_id, domain_name=brand_url)
    except:
        raise Http404()
    if request.is_ajax():
        data = feeds_helpers.product_feed_json(
            request, for_influencer=brand.pseudoinfluencer)
        data = json.dumps(data, cls=DjangoJSONEncoder)
        return HttpResponse(data, content_type="application/json")
    else:
        return render(
            request, 'pages/brand_profile/brand_items.html', {
                'influencer': brand.pseudoinfluencer,
                'brand': brand,
                'page': 'items',
                'selected_tab': 'brand_profile',
                'hide_nav': True,
                'search_page': True,
            })
Exemple #6
0
def blogger_items(request, influencer_id):
    brand = request.visitor["brand"]
    base_brand = request.visitor["base_brand"]
    assoc_inf = account_helpers.get_associated_influencer(request.user)
    try:
        influencer = Influencer.objects
        influencer = influencer.prefetch_related('platform_set')
        influencer = influencer.get(id=influencer_id)
    except:
        raise Http404()
    if brand:
        mongo_utils.track_query("brand-clicked-blogger-products",
                                {'blog_url': influencer.blog_url},
                                {"user_id": request.visitor["auth_user"].id})

        account_helpers.intercom_track_event(request,
                                             "brand-clicked-blogger-products",
                                             {'blog_url': influencer.blog_url})
    elif assoc_inf:
        account_helpers.intercom_track_event(request, "blogger-view-products",
                                             {'blog_url': influencer.blog_url})
    if request.is_ajax() or request.GET.get('debug'):
        data = feeds_helpers.product_feed_json(request,
                                               for_influencer=influencer)
        data = json.dumps(data, cls=DjangoJSONEncoder)
        if request.GET.get('debug'):
            return HttpResponse("<body></body>")
        return HttpResponse(data, content_type="application/json")
    else:
        influencer = serializers.annotate_influencer(influencer,
                                                     request=request)
        return render(
            request, 'pages/bloggers/blogger_items.html', {
                'influencer': influencer,
                'page': 'items',
                'selected_tab': 'search_bloggers',
                'search_page': True,
            })