Пример #1
0
def create_hit(request, item, extra_info=None):
    """
    Given a Django ``request`` object, create an entry in the DB for the hit.

    If the ``item`` is a string, then we assume it is a static item and use
    the dictionary above to look up its "primary key".
    """
    ip_address = get_IP_address(request)
    ua_string = request.META.get('HTTP_USER_AGENT', '')
    if extra_info is None:
        extra_info = request.META.get('HTTP_REFERER', None)
    try:
        page_hit = models.PageHit(ip_address=ip_address,
                                  ua_string=ua_string,
                                  item=item._meta.module_name,
                                  item_pk=item.pk,
                                  extra_info=extra_info)
    except AttributeError:
        page_hit = models.PageHit(ip_address=ip_address,
                                  ua_string=ua_string,
                                  item=item,
                                  item_pk=static_items.get(item, 0),
                                  extra_info=extra_info)

    page_hit.save()
Пример #2
0
def page_500_error(request):
    """ Override Django's 500 handler, because we want to log this also.
    """
    ip = get_IP_address(request)
    logger.error('500 from %s for request "%s"' % (ip, request.path))
    t = get_template('500.html')
    html = t.render(RequestContext(request))
    return HttpResponse(html, status=500)
Пример #3
0
def page_500_error(request):
    """ Override Django's 500 handler, because we want to log this also.
    """
    ip = get_IP_address(request)
    logger.error('500 from %s for request "%s"' % (ip, request.path))
    t = get_template('500.html')
    html = t.render(RequestContext(request))
    return HttpResponse(html, status=500)
Пример #4
0
def csrf_failure(request, reason=''):
    """ Provides a better output to the user when they don't have cookies
    enabled on their computer.
    """
    ip = get_IP_address(request)
    logger.info('CSRF failure from %s for request "%s", coming from "%s"' %\
                (ip, request.path, request.META.get('HTTP_REFERER', '??')))
    return render_to_response('pages/please-enable-cookies.html', {},
                              context_instance=RequestContext(request))
Пример #5
0
def csrf_failure(request, reason=''):
    """ Provides a better output to the user when they don't have cookies
    enabled on their computer.
    """
    ip = get_IP_address(request)
    logger.info('CSRF failure from %s for request "%s", coming from "%s"' %\
                (ip, request.path, request.META.get('HTTP_REFERER', '??')))
    return render_to_response('pages/please-enable-cookies.html', {},
                              context_instance=RequestContext(request))
Пример #6
0
def not_implemented_yet(request, issue_number=None):
    """ Track how often users uncover items that haven't been implemented, so
    we can prioritize them
    """
    ip = get_IP_address(request)
    logger.info('Not implemented yet [%s] for request "%s" and issue=%s' %\
                (ip, request.path, str(issue_number)))
    return render_to_response('pages/not-implemented-yet.html',
                              {'issue_number': issue_number},
                              context_instance=RequestContext(request))
Пример #7
0
def not_implemented_yet(request, issue_number=None):
    """ Track how often users uncover items that haven't been implemented, so
    we can prioritize them
    """
    ip = get_IP_address(request)
    logger.info('Not implemented yet [%s] for request "%s" and issue=%s' %\
                (ip, request.path, str(issue_number)))
    return render_to_response('pages/not-implemented-yet.html',
                              {'issue_number': issue_number},
                              context_instance=RequestContext(request))
Пример #8
0
def page_404_error(request, extra_info=''):
    """ Override Django's 404 handler, because we want to log this also.
    """
    ip = get_IP_address(request)
    logger.info('404 from %s for request "%s"; extra info=%s' %\
                                          (ip, request.path, str(extra_info)))
    t = get_template('404.html')
    c = RequestContext(request)
    c.update({'extra_info': extra_info})
    html = t.render(c)
    return HttpResponse(html, status=404)
Пример #9
0
def page_404_error(request, extra_info=''):
    """ Override Django's 404 handler, because we want to log this also.
    """
    ip = get_IP_address(request)
    logger.info('404 from %s for request "%s"; extra info=%s' %\
                                          (ip, request.path, str(extra_info)))
    t = get_template('404.html')
    c = RequestContext(request)
    c.update({'extra_info': extra_info})
    html = t.render(c)
    return HttpResponse(html, status=404)
Пример #10
0
def search(request):
    """
    Calls Haystack, but allows us to first log the search query
    """

    if request.GET['q'].strip() == '':
        return redirect(front_page)

    # Avoid duplicate logging if search request results in more than 1 page
    if 'page' not in request.GET:
        create_hit(request, 'haystack_search', request.GET['q'])
        logger.info('SEARCH [%s]: %s' % (get_IP_address(request),
                                         request.GET['q']))
    return SearchView().__call__(request)
Пример #11
0
def search(request):
    """
    Calls Haystack, but allows us to first log the search query
    """

    if request.GET.get('q', '').strip() == '':
        return redirect(front_page)

    # Avoid duplicate logging if search request results in more than 1 page
    if 'page' not in request.GET:
        create_hit(request, 'haystack_search', request.GET['q'])
        logger.info('SEARCH [%s]: %s' % (get_IP_address(request),
                                         request.GET['q']))
    return SearchView().__call__(request)
Пример #12
0
def create_hit(request, item, extra_info=None):
    """
    Given a Django ``request`` object, create an entry in the DB for the hit.

    If the ``item`` is a string, then we assume it is a static item and use
    the dictionary above to look up its "primary key".
    """
    ip_address = get_IP_address(request)
    ua_string = request.META.get('HTTP_USER_AGENT', '')
    if extra_info is None:
        extra_info = request.META.get('HTTP_REFERER', None)
    try:
        page_hit = models.PageHit(ip_address=ip_address, ua_string=ua_string,
                                 item=item._meta.module_name, item_pk=item.pk,
                                 extra_info=extra_info)
    except AttributeError:
        page_hit = models.PageHit(ip_address=ip_address, ua_string=ua_string,
                                 item=item, item_pk=static_items.get(item, 0),
                                 extra_info=extra_info)

    page_hit.save()