コード例 #1
0
ファイル: rework_webapp.py プロジェクト: jitterxx/bmtools
    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)
コード例 #2
0
ファイル: rework_webapp.py プロジェクト: jitterxx/bmtools
    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)