Package: python-turbogears
Version: 1.0.1-1
Severity: normal
Hello,
I do tg-admin quickstart, tell it to use 'identity' and get a model with
these classes:
$ grep ^class model.py
class Visit(SQLObject):
class VisitIdentity(SQLObject):
class Group(SQLObject):
class User(SQLObject):
class Permission(SQLObject):
so far so good, but after customizing them a bit[1], I noticed weird
behaviours in the toolbox. It turns out that the toolbox has a
different, very personal idea of those tables:
$ grep ^class turbogears/identity/soprovider.py
class TG_VisitIdentity(SQLObject):
class TG_Group(InheritableSQLObject):
class TG_User(InheritableSQLObject):
class TG_Permission(InheritableSQLObject):
This causes all sorts of funny misbehaviours when using the toolbox and
the application: tables created by the toolbox won't work with the
application (they'd miss the extra custom fields), but the toolbox won't
be able to edit the user tables created by the application (trying to
add a user gives me An error occurred: global name 'identity' is
not defined).
Plus, there's no obvious way to recreate the database tables as
tg-admin sql create will create broken user tables. Here's a
work-around script for that:
#!/usr/bin/python
from os.path import *
import sys, inspect
import pkg_resources
pkg_resources.require(TurboGears)
import turbogears
# first look on the command line for a desired config file,
# if it's not on the command line, then
# look for setup.py in this directory. If it's not there, this script is
# probably installed
if len(sys.argv) 1:
turbogears.update_config(configfile=sys.argv[1],
modulename=pec.config)
elif exists(join(dirname(__file__), setup.py)):
turbogears.update_config(configfile=dev.cfg,
modulename=pec.config)
else:
turbogears.update_config(configfile=prod.cfg,
modulename=pec.config)
import MYNAMESPACE.model as pm
import sqlobject
from sqlobject.inheritance import InheritableSQLObject
for item in pm.__dict__.values():
if inspect.isclass(item) and issubclass(item, sqlobject.SQLObject) \
and item != sqlobject.SQLObject and item != InheritableSQLObject:
print Recreating, item
item.createTable(ifNotExists=True)
Ciao,
Enrico
[1]
I'm supposed to be able to do it. It even says it in the User class
comment:
class User(SQLObject):
Reasonably basic User definition. Probably would want additional attributes.
-- System Information:
Debian Release: 4.0
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.20.1enrico
Locale: LANG=it_IT.UTF-8, LC_CTYPE=it_IT.UTF-8 (charmap=UTF-8)
Versions of packages python-turbogears depends on:
ii python2.4.4-2An interactive high-level object-o
ii python-celementtree 1.0.5-8Light-weight toolkit for XML proce
ii python-cheetah2.0~rc7-1 text-based template engine and Pyt
ii python-cherrypy 2.2.1-3Python web development framework
ii python-configobj 4.3.2-2a simple but powerful config file
ii python-dispatch 0.5adev-5 Rule-based Dispatching and Generic
ii python-elementtree1.2.6-10 Light-weight toolkit for XML proce
ii python-formencode 0.7-1 validation and form generation pyt
ii python-kid0.9.5-1simple Pythonic template language
ii python-nose 0.9.0-2test discovery and running for Pyt
ii python-paste 1.0.1-1Tools for using a Web Server Gatew
ii python-pastedeploy1.0-1 Load, configure, and compose WSGI
ii python-pastescript1.0-1 serving web applications, creating
ii python-setuptools 0.6c5-2Python Distutils Enhancements
ii python-simplejson 1.7-1 Simple, fast, extensible JSON enco
ii python-sqlalchemy 0.3.1-2SQL toolkit and Object Relational
ii python-sqlobject 0.8.1-1python module for SQLObject
ii python-support0.5.6 automated rebuilding support for p
ii python-turbojson 0.9.5-1TurboGears template plugin that su
ii python-turbokid 0.9.9-1TurboGears template plugin that su
Versions of packages python-turbogears recommends:
ii python-pysqlite2 2.3.2-2python interface to SQLite 3
-- no debconf information
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]