Beispiel #1
0
 def get_users(self):
     users = DBSession.query(model.User).all()
     return {
         'users': [
             user.to_json() for user in users
         ],
     }
Beispiel #2
0
 def test_tg2app_model(self):
     """ Test creating a new user with the apps model """
     from tg2app.model import User, DBSession
     me = User()
     me.user_name = u'jim'
     me.email_address = u'*****@*****.**'
     DBSession.add(me)
     DBSession.flush()
     assert DBSession.query(User).count() == 1
Beispiel #3
0
 def test_tg2app_model(self):
     """ Test creating a new user with the apps model """
     from tg2app.model import User, DBSession
     me = User()
     me.user_name = u'jim'
     me.email_address = u'*****@*****.**'
     DBSession.add(me)
     DBSession.flush()
     assert DBSession.query(User).count() == 1
Beispiel #4
0
 def by_user_name(cls, username):
     """Return the user object whose user name is ``username``."""
     return DBSession.query(cls).filter_by(user_name=username).first()
Beispiel #5
0
 def by_email_address(cls, email):
     """Return the user object whose email address is ``email``."""
     return DBSession.query(cls).filter_by(email_address=email).first()
Beispiel #6
0
 def test_query_obj(self):
     obj = DBSession.query(self.klass).one()
     for key, value in self.attrs.iteritems():
         assert_equals(getattr(obj, key), value)
Beispiel #7
0
 def test_query_obj(self):
     """Model objects can be queried"""
     obj = DBSession.query(self.klass).one()
     for key, value in self.attrs.iteritems():
         assert_equals(getattr(obj, key), value)
Beispiel #8
0
 def by_user_name(cls, username):
     """Return the user object whose user name is ``username``."""
     return DBSession.query(cls).filter(cls.user_name == username).first()
Beispiel #9
0
 def by_email_address(cls, email):
     """Return the user object whose email address is ``email``."""
     return DBSession.query(cls).filter(cls.email_address == email).first()
Beispiel #10
0
 def test_query_obj(self):
     obj = DBSession.query(self.klass).one()
     for key, value in self.attrs.iteritems():
         assert_equals(getattr(obj, key), value)
Beispiel #11
0
 def test_query_obj(self):
     """Model objects can be queried"""
     obj = DBSession.query(self.klass).one()
     for key, value in self.attrs.iteritems():
         assert_equals(getattr(obj, key), value)
Beispiel #12
0
    def _default(self, *args, **kw):
        """ Serves up the RadialGraph widget """

        assert(len(args) == 1) # how else could it be?
        name = args[0]

        base = DBSession.query(m.FBUser).filter_by(name=name)

        if base.count() == 0 :
            raise LookupError("No such user '%s'" % name)

        if base.count() > 1:
            raise LookupError, "More than one user matches '%s'" % name

        user = base.one()

        # Some color constants for the radial graph
        bg = '#F8F7ED'
        green = '#84CA24'
        blue = '#006295'

        class Tg2AppSQLARadialGraph(SQLARadialGraph):
            id = 'sqlaRadialGraph'
            base_url = '/jit/data/'
            entities = [m.FBUser]
            rootObject = user
            depth = 1

            # Have it occupy the full page
            width = '980'
            height = '980'

            # Have it conform with the site style
            backgroundcolor = bg
            background = { 'CanvasStyles': { 'strokeStyle' : bg } }
            Node = { 'color' : green }
            Edge = { 'color' : blue, 'lineWidth':1.5, }

            # Space things out a little
            levelDistance = 150

            # Override the label style
            onPlaceLabel = JSSymbol(src="""
                (function(domElement, node){
                    domElement.style.display = "none";
                    domElement.innerHTML = node.name;
                    domElement.style.display = "";
                    var left = parseInt(domElement.style.left);
                    domElement.style.width = '120px';
                    domElement.style.height = '';
                    var w = domElement.offsetWidth;
                    domElement.style.left = (left - w /2) + 'px';

                    // This should all be moved to a css file
                    domElement.style.cursor = 'pointer';
                    if ( node._depth <= 1 )
                        domElement.style.color = 'black';
                    else
                        domElement.style.color = 'grey';
                })""")

        return {'widget': Tg2AppSQLARadialGraph}