def index(self, category_uuid): tmpl = lookup.get_template("ktree_show_category.html") session_context = cherrypy.session.get('session_context') session_context['back_ref'] = '/ktree' session_context['menu'] = 'ktree_category' if session_context['menu'] == 'ktree_category': #session_context['back_ref'] = '/ktree/' + str(category_uuid) session_context['menu'] = 'ktree_category' if session_context['menu'] == 'ktree_settings': session_context['back_ref'] = '/settings?menu=ktree' session_context['menu'] = 'ktree_settings' cherrypy.session['session_context'] = session_context # print category_uuid session = rwObjects.Session() leaf = rwObjects.get_by_uuid(category_uuid)[0] # Получаем все связанные объекты для этого пользователя neighbors = G.neighbors(session_context['uuid']) neighbors.append(session_context['uuid']) # Получаем все объекты связанные с этим узлом НЗ try: response = session.query(rwObjects.Reference). \ filter(rwObjects.or_(rwObjects.Reference.source_uuid == leaf.uuid, \ rwObjects.Reference.target_uuid == leaf.uuid)). \ order_by(rwObjects.desc(rwObjects.Reference.timestamp)).all() except Exception as e: raise e else: pass nodes = list() for line in response: source = rwObjects.get_by_uuid(line.source_uuid)[0] target = rwObjects.get_by_uuid(line.target_uuid)[0] if line.link == 0 and source.uuid == category_uuid: nodes.append(target) elif line.link == 0 and target.uuid == category_uuid: nodes.append(source) # Получаем результаты автоклассификации для объектов в этом узле НЗ auto_cats = dict() for node in nodes: auto_cats[node.uuid] = rwObjects.get_classification_results(session, node.uuid) # print "Автоклассификация : %s" % auto_cats[node.uuid] return tmpl.render(obj=leaf, session=session, name=leaf.name, nodes=nodes, session_context=session_context, auto_cats=auto_cats, cats_name=rwObjects.get_ktree_custom(session), neighbors=neighbors)
def index(self, view_type=None, date=None): print "Тип отображения: %s" % view_type print "Дата %s" % date v = ["", "", ""] if view_type == "links": link = 0 v[2] = "active" elif view_type == "create": link = 1 v[1] = "active" else: link = 1 v[0] = "active" print v tmpl = lookup.get_template("timeline.html") session_context = cherrypy.session.get('session_context') session_context['back_ref'] = '/timeline' session_context['menu'] = 'timeline' cherrypy.session['session_context'] = session_context session = rwObjects.Session() try: events = session.query(rwObjects.Reference).filter(rwObjects.Reference.link == link). \ order_by(rwObjects.desc(rwObjects.Reference.timestamp)).all() obj_keys = events[0].get_attrs() fields = events[0].get_fields() except IndexError: obj_keys = rwObjects.rw_parent().get_attrs() fields = rwObjects.rw_parent().get_fields() except Exception as e: return ShowError(str(e)) actors = {} neighbors = G.neighbors(session_context['uuid']) for event in events: event.read(session) # print "Source UUID : %s" % event.source_uuid # print "Target UUID : %s" % event.target_uuid try: obj = rwObjects.get_by_uuid(event.source_uuid)[0] except Exception as e: print e[0] print e[1] return ShowError(str(e)) else: if event.source_uuid not in actors.keys(): actors[event.source_uuid] = obj print "Actor: %s" % actors[event.source_uuid].SHORT_VIEW_FIELDS try: obj = rwObjects.get_by_uuid(event.target_uuid)[0] except Exception as e: print e[0] print e[1] return ShowError(str(e)) else: if event.target_uuid not in actors.keys(): actors[event.target_uuid] = obj print "Actor: %s" % actors[event.target_uuid].SHORT_VIEW_FIELDS # print "events[0].get_fields() : %s" % fields # print "obj_keys : %s " % obj_keys print "All actors: %s" % actors.keys() print "Соседи: %s" % neighbors return tmpl.render(obj=events, keys=obj_keys, session_context=session_context, all_f=fields[0], view_f=fields[1], actors=actors, view_type=v, neighbors=neighbors)