def all(self): #import pdb; pdb.set_trace(); viewer = JeevesLib.get_viewer() if isinstance(viewer, FNull): # If we don't know who the viewer is, create facets. elements = JeevesLib.JList2([]) env = JeevesLib.jeevesState.pathenv.getEnv() for val, cond in self.get_jiter(): popcount = 0 for vname, (vlabel, vval) in cond.iteritems(): if vname not in env: # vlabel = acquire_label_by_name( # self.model._meta.app_label, vname, obj=val) JeevesLib.jeevesState.pathenv.push(vlabel, vval) popcount += 1 elif env[vname] != vval: break else: elements.append(val) for _ in xrange(popcount): JeevesLib.jeevesState.pathenv.pop() else: # Otherwise concretize early. elements = [] env = JeevesLib.jeevesState.pathenv.getEnv() solverstate = JeevesLib.get_solverstate() for val, cond in self.get_jiter(): # Get a list of (object, condition list). for vname, (vlabel, vval) in cond.iteritems(): # Loop through the list of conditions to see what they # should actually be assigned to. if vname in env: # If we have already assumed the current variable, # then add the element if the assumption matches # the condition. if env[vname] == vval: elements.append(val) else: # If the current label matches with our policy # assumptions, then we add it to the list of results. label = solverstate.assignLabel(vlabel, env) env[vlabel] = label if label == vval: elements.append(val) return elements
def all(self): t = JeevesLib.JList2([]) env = JeevesLib.jeevesState.pathenv.getEnv() for val, cond in self.get_jiter(): popcount = 0 for vname, vval in cond.iteritems(): if vname not in env: v = acquire_label_by_name(self.model._meta.app_label, vname) JeevesLib.jeevesState.pathenv.push(v, vval) popcount += 1 elif env[vname] != vval: break else: t.append(val) for _ in xrange(popcount): JeevesLib.jeevesState.pathenv.pop() return t
def papers_view(request): user = UserProfile.objects.get(username=request.user.username) papers = Paper.objects.all() paper_data = JeevesLib.JList2() for paper in papers: paper_versions = PaperVersion.objects.filter( paper=paper).order_by('-time').all() latest_version_title = paper_versions[ 0].title if paper_versions.__len__() > 0 else None paper_data.append({'paper': paper, 'latest': latest_version_title}) return ("papers.html", { 'papers': papers, 'which_page': "home", 'paper_data': paper_data, 'name': user.name })
def all(self): viewer = JeevesLib.get_viewer() if isinstance(viewer, FNull): # If we don't know who the viewer is, create facets. elements = JeevesLib.JList2([]) env = JeevesLib.jeevesState.pathenv.getEnv() for val, cond in self.get_jiter(): popcount = 0 for vname, vval in cond.iteritems(): if vname not in env: vlabel = acquire_label_by_name( self.model._meta.app_label, vname, obj=val) JeevesLib.jeevesState.pathenv.push(vlabel, vval) popcount += 1 elif env[vname] != vval: break else: elements.append(val) for _ in xrange(popcount): JeevesLib.jeevesState.pathenv.pop() return elements else: # Otherwise concretize early. elements = [] env = JeevesLib.jeevesState.pathenv.getEnv() solverstate = JeevesLib.get_solverstate() for val, cond in self.get_jiter(): for vname, vval in cond.iteritems(): if vname in env: # If we have already assumed the current variable, # then add the element if the assumption matches # the condition. if env[vname] == vval: elements.append(val) else: vlabel = acquire_label_by_name( self.model._meta.app_label, vname, obj=val) label = solverstate.assignLabel(vlabel, env) if label == vval: elements.append(val) return elements
def papers_view(request): user = UserProfile.objects.get(username=request.user.username) JeevesLib.set_viewer(user) # TODO: Figure out why we can't loop over this if we don't concretize it... papers = Paper.objects.all() paper_data = JeevesLib.JList2() name = user.name for paper in papers: paper_versions = PaperVersion.objects.filter( paper=paper).order_by('-time').all() latest_version_title = paper_versions[ 0].title if paper_versions.__len__() > 0 else None paper_data.append({'paper': paper, 'latest': latest_version_title}) return ("papers.html", { 'papers': papers, 'which_page': "home", 'paper_data': paper_data, 'name': name })