Ejemplo n.º 1
0
def feedback(request):
    """
    Feedback view for the Aristotle Library Apps Project

    :param request: Web request from client
    """
    if request.method != 'POST':
        return Http404
    today = datetime.datetime.utcnow()
    feedback_id = REDIS_DATASTORE.incr(
        "global feedback:{0}:{1}".format(today.year,
                                         today.month))
    feedback_key = "feedback:{0}:{1}:{2}".format(today.year, 
		                                 today.month, 
						 feedback_id)
    REDIS_DATASTORE.hset(feedback_key, "created", today.isoformat())
    REDIS_DATASTORE.hset(feedback_key, "comment", request.POST.get('comment'))
    REDIS_DATASTORE.hset(feedback_key, "context", request.POST.get('context'))
    if request.POST.has_key('sender'):
        REDIS_DATASTORE.hset(feedback_key, "sender", request.POST.get('sender'))
    
    return redirect(REDIS_DATASTORE.hget(feedback_key, "context"))
Ejemplo n.º 2
0
def facet_detail(request, facet_name, facet_item):
    """Displays a specific Facet listing

    Parameters:
    facet_name -- Name of the Facet
    facet_item -- Name of the Facet item
    """
    redis_key = "bf:Facet:{0}:{1}".format(facet_name,facet_item)
    if not REDIS_DATASTORE.exists(redis_key):
        raise Http404
    rlsp_query_key = request.session.get('rlsp-query', None)
    listing_key = "facet-listing:{0}:{1}".format(facet_name,facet_item)
    if rlsp_query_key is not None:
        tmp_facet_result = 'facet-result:{0}'.format(
            REDIS_DATASTORE.incr('global facet-result'))
        REDIS_DATASTORE.sinterstore(tmp_facet_result,
                                    rlsp_query_key,
                                    redis_key)
        REDIS_DATASTORE.expire(tmp_facet_result, 900)
        REDIS_DATASTORE.sort(tmp_facet_result,
                             alpha=True,
                             store=listing_key)
    else:

        REDIS_DATASTORE.sort(redis_key,
                             alpha=True,
                             store=listing_key)
    REDIS_DATASTORE.expire(listing_key,1200)
    offset =  int(request.REQUEST.get('offset',0))
    records = []
    pagination = get_pagination(request.path,
                                listing_key,
                                REDIS_DATASTORE,
                                offset)
    record_slice = REDIS_DATASTORE.lrange(listing_key,
                                          offset,
                                          offset+PAGINATION_SIZE)
    for row in record_slice:
        if row.find("Instance") > -1:
            work_key = REDIS_DATASTORE.hget(row, 'instanceOf')
        entity_name = work_key.split(":")[1]
        if CREATIVE_WORK_CLASSES.count(entity_name) > 0:
            cw_class = getattr(bibframe.models,
                               entity_name)
            if cw_class is None:
                cw_class = getattr(bibframe.models,
                                   entity_name.title())
            work = cw_class(
                redis_datastore=REDIS_DATASTORE,
                redis_key=work_key)
            records.append(work)
    label_key = 'bf:Facet:{0}s'.format(facet_name)
    msg = "Results {0} of {1} for Facet {2}".format(len(record_slice),
                                                    REDIS_DATASTORE.llen(listing_key),
                                                    facet_name)
    if REDIS_DATASTORE.exists(label_key):
        if REDIS_DATASTORE.type(label_key) == 'zset':
            msg = "{0} {1}".format(msg, facet_item)
        else:
            msg = " {0} {1}".format(msg,    
                                    REDIS_DATASTORE.hget(label_key, facet_item))
    else:
        msg = "{0} of {1}".format(msg, facet_item)
    return render(request,
                  'discovery/app.html',
                  {'app': APP,
                   'example':{},
                   'feedback_form':FeedbackForm({'subject':'Discovery Facet Display'}),
                   'feedback_context':request.get_full_path(),
                   'institution': INSTITUTION,
                   'facet_list': None,
                   'message': msg,
                   'pagination':None,
                   'results': records,
                   'search_form': SearchForm(),
                   'search_query': None,
                   'user': None})

                              

    return HttpResponse("In facet detail key={0}\n{1}".format(redis_key,records))
def add_place(institution_redis_key, REDIS_DATASTORE):
    place_base ="{0}:schema:Place".format(institution_redis_key) 
    place_key = "{0}:{1}".format(
            place_base,
            REDIS_DATASTORE.incr('global {0}'.format(place_base)))
    return place_key