def collectionsOverview(): # get username from session username = session['username'] # get objects PIDs = jobs.getSelPIDs() object_package = {} # get collection objects ''' This can be improved ''' riquery = fedora_handle.risearch.get_subjects(predicate="info:fedora/fedora-system:def/relations-external#hasContentModel", object="info:fedora/CM:Collection") collections = list(riquery) # assemble sizes object_package['coll_size_dict'] = {} for collection in collections: print "Working on",collection results = solr_handle.search(**{ "q":"rels_isMemberOfCollection:"+collection.replace(":","\:"), "stats":"true", "stats.field":"obj_size_i", "rows":0 }) print results.stats if results != None and results.total_results > 0 and results.stats['obj_size_i'] != None: collection_obj_sum = results.stats['obj_size_i']['sum'] object_package['coll_size_dict'][collection] = (collection_obj_sum,utilities.sizeof_fmt(collection_obj_sum),results.total_results) # print object_package['coll_size_dict'] object_package['coll_size_dict'] = json.dumps(object_package['coll_size_dict']) return render_template("collectionsOverview.html", object_package=object_package)
def selObjsOverview(): # get username from session username = session['username'] PIDs = jobs.getSelPIDs() # get objects size dictionary ''' { labels: ["January", "February", "March", "April", "May", "June", "July"], datasets: [ { label: "My First dataset", fillColor: "rgba(220,220,220,0.5)", strokeColor: "rgba(220,220,220,0.8)", highlightFill: "rgba(220,220,220,0.75)", highlightStroke: "rgba(220,220,220,1)", data: [65, 59, 80, 81, 56, 55, 40] }, { label: "My Second dataset", fillColor: "rgba(151,187,205,0.5)", strokeColor: "rgba(151,187,205,0.8)", highlightFill: "rgba(151,187,205,0.75)", highlightStroke: "rgba(151,187,205,1)", data: [28, 48, 40, 19, 86, 27, 90] } ] } ''' # WSUDOR ContentType approach # slow, but rich # tup_list = [] # for each in PIDs: # obj_handle = WSUDOR_ContentTypes.WSUDOR_Object(each) # tup_list.append( ( obj_handle.SolrDoc.asDictionary()['obj_size_i'], each ) ) # print tup_list # Solr based approach # fast, not as rich # results = solr_handle.search(**{ "q":"*:*", "fq":["obj_size_i:*","id:*RENCEN*"], "stats":"true", "stats.field":"obj_size_i", "rows":0 }) # pass the current PIDs to page as list return render_template("selObjsOverview.html",username=username, localConfig=localConfig)
def userPage(): # set username in session username = session['username'] # info to render page userData = {} userData['username'] = username # get selected PIDs to show user userData['selected_objects'] = len(jobs.getSelPIDs()) return render_template("userPage.html",userData=userData)
def fireTask(task_name): username = session['username'] # create job_package job_package = { "username":username, "form_data":request.values, "job_type":"PID_iterate" } # pass along binary uploaded data if included in job task if 'upload' in request.files and request.files['upload'].filename != '': job_package['upload_data'] = request.files['upload'].read() task_inputs_key = username+"_"+task_name+"_"+str(int(time.time())) print "Assigning to Redis-Cached key:",task_inputs_key redisHandles.r_job_handle.set(task_inputs_key,pickle.dumps(job_package)) # get PIDs to confirm PIDs = jobs.getSelPIDs() return render_template("objConfirm.html",task_name=task_name,task_inputs_key=task_inputs_key,PIDs=PIDs,username=username,localConfig=localConfig)