old_contents: # This file is part of Moksha.
  # Copyright (C) 2008-2009  Red Hat, Inc.
  # 
  # This program is free software: you can redistribute it and/or modify
  # it under the terms of the GNU Affero General Public License as
  # published by the Free Software Foundation, either version 3 of the
  # License, or (at your option) any later version.
  # 
  # This program is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU Affero General Public License for more details.
  # 
  # You should have received a copy of the GNU Affero General Public License
  # along with this program.  If not, see <http://www.gnu.org/licenses/>.
  
  """The application's model objects"""
  
  from zope.sqlalchemy import ZopeTransactionExtension
  from sqlalchemy.orm import scoped_session, sessionmaker
  #from sqlalchemy import MetaData
  from sqlalchemy.ext.declarative import declarative_base
  
  # Global session manager.  DBSession() returns the session object
  # appropriate for the current web request.
  maker = sessionmaker(autoflush=True, autocommit=False,
                       extension=ZopeTransactionExtension())
  DBSession = scoped_session(maker)
  # By default, the data model is defined with SQLAlchemy's declarative
  # extension, but if you need more control, you can switch to the traditional
  # method.
  
  DeclarativeBase = declarative_base()
  
  # Global metadata.
  # The default metadata is the one from the declarative base.
  metadata = DeclarativeBase.metadata
  # If you have multiple databases with overlapping table names, you'll need a
  # metadata for each database. Feel free to rename 'metadata2'.
  #metadata2 = MetaData()
  
  #####
  # Generally you will not want to define your table's mappers, and data objects
  # here in __init__ but will want to create modules them in the model directory
  # and import them at the bottom of this file.
  #
  ######
  
  def init_model(engine):
      """Call me before using any of the tables or classes in the model."""
  
      DBSession.configure(bind=engine)
      # If you are using reflection to introspect your database and create
      # table objects for you, your tables must be defined and mapped inside
      # the init_model function, so that the engine is available if you
      # use the model outside tg2, you need to make sure this is called before
      # you use the model.
  
      #
      # See the following example:
  
      #global t_reflected
  
      #t_reflected = Table("Reflected", metadata,
      #    autoload=True, autoload_with=engine)
  
      #mapper(Reflected, t_reflected)
  
  # Import your model modules here.
  #from auth import User, Group, Permission
  #from model import Entity, Fact, with_characteristic
  
new_contents: # This file is part of Moksha.
  # Copyright (C) 2008-2009  Red Hat, Inc.
  # 
  # This program is free software: you can redistribute it and/or modify
  # it under the terms of the GNU Affero General Public License as
  # published by the Free Software Foundation, either version 3 of the
  # License, or (at your option) any later version.
  # 
  # This program is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU Affero General Public License for more details.
  # 
  # You should have received a copy of the GNU Affero General Public License
  # along with this program.  If not, see <http://www.gnu.org/licenses/>.
  
  """The application's model objects"""
  
  from zope.sqlalchemy import ZopeTransactionExtension
  from sqlalchemy.orm import scoped_session, sessionmaker
  #from sqlalchemy import MetaData
  from sqlalchemy.ext.declarative import declarative_base
  
  # Global session manager.  DBSession() returns the session object
  # appropriate for the current web request.
  maker = sessionmaker(autoflush=True, autocommit=False,
                       extension=ZopeTransactionExtension())
  DBSession = scoped_session(maker)
  # By default, the data model is defined with SQLAlchemy's declarative
  # extension, but if you need more control, you can switch to the traditional
  # method.
  
  DeclarativeBase = declarative_base()
  
  # Global metadata.
  # The default metadata is the one from the declarative base.
  metadata = DeclarativeBase.metadata
  # If you have multiple databases with overlapping table names, you'll need a
  # metadata for each database. Feel free to rename 'metadata2'.
  #metadata2 = MetaData()
  
  #####
  # Generally you will not want to define your table's mappers, and data objects
  # here in __init__ but will want to create modules them in the model directory
  # and import them at the bottom of this file.
  #
  ######
  
  def init_model(engine):
      """Call me before using any of the tables or classes in the model."""
  
      DBSession.configure(bind=engine)
      # If you are using reflection to introspect your database and create
      # table objects for you, your tables must be defined and mapped inside
      # the init_model function, so that the engine is available if you
      # use the model outside tg2, you need to make sure this is called before
      # you use the model.
  
      #
      # See the following example:
  
      #global t_reflected
  
      #t_reflected = Table("Reflected", metadata,
      #    autoload=True, autoload_with=engine)
  
      #mapper(Reflected, t_reflected)
  
  # Import your model modules here.
  from auth import User, Group, Permission
  #from model import Entity, Fact, with_characteristic
  
subject: Add the auth model back in for now, as it causes a bunch of problems w/o it