Module: bricks.controller.crud

API Reference

Modules

Module Attributes

__file__ = 'C:\\Documents and Settings\\James\\Desktop\\PythonWeb\\bricks\\bricks\\controller\\crud.pyc'

__name__ = 'bricks.controller.crud'

Classes

class CRUD
def __call__(self, environ, start_response)
[show source]
C:\Documents and Settings\James\Desktop\PythonWeb\bricks\bricks\controller\crud.py

   11: def __call__(self, environ, start_response):
   12:     realFile = os.path.abspath(
   13:         os.path.join(
   14:             environ['bricks.private'],
   15:             'app',
   16:             environ['bricks.app'],
   17:             'model',
   18:             self.modelName.lower()+'.py'))
   19:     if not os.path.exists(realFile):
   20:        raise Exception('No such model file %s'%repr(realFile))
   21: 
   22:     module = environ['bricks.import'](realFile)
   23:     #raise Exception([realFile, module])
   24:     if not hasattr(module,'table'):
   25:         raise Exception('No table object found in the %s'%repr(realFile))
   26:     table = module.table
   27:     tables = model.Database()
   28:     tables.add(table)
   29:     tables.init(environ['database.cursor'])
   30:     self.model = tables[table.name]
   31: 
   32:     if not tables.exist():
   33:         tables.create()
   34:     return bricks.Controller.__call__(self, environ, start_response)

def __init__(self, modelName)
[show source]
C:\Documents and Settings\James\Desktop\PythonWeb\bricks\bricks\controller\crud.py

    5: def __init__(self, modelName):
    6:     self.modelName = modelName

def delete(self, rowid)
[show source]
C:\Documents and Settings\James\Desktop\PythonWeb\bricks\bricks\controller\crud.py

   65: def delete(self, rowid):
   66:     rowid = int(rowid)
   67:     if not self.model.has_key(int(rowid)):
   68:         return self.error(rowid)
   69:     else:
   70:         self.model.delete(rowid)
   71:         self.environ['database.connection'].commit()
   72:         return self.index()

def do_edit(self, rowid)
[show source]
C:\Documents and Settings\James\Desktop\PythonWeb\bricks\bricks\controller\crud.py

  102: def do_edit(self, rowid):
  103:     form = self.model.row(int(rowid)).form()
  104:     form.populate(self.environ['web.cgi'])
  105: 
  106:     if not form.valid():
  107:         return self.edit(int(rowid))
  108:     else:
  109:         if not self.model.has_key(int(rowid)):
  110:             return self.error(rowid)
  111:         else:
  112:             for k, v in form.dict().items():
  113:                 self.model[int(rowid)][k] = v
  114:             self.environ['database.connection'].commit()
  115:             return self.index()

def do_new(self)
[show source]
C:\Documents and Settings\James\Desktop\PythonWeb\bricks\bricks\controller\crud.py

  131: def do_new(self):
  132:     form = self.model.form(action=self.environ['bricks.controller.url']+'/do_new')
  133:     form.populate(self.environ['web.cgi'])
  134: 
  135:     if not form.valid():
  136:         return self.new(form)
  137:     else:
  138:         self.model.insert(**form.dict())
  139:         self.environ['database.connection'].commit()
  140:         return self.index()

def edit(self, rowid)
[show source]
C:\Documents and Settings\James\Desktop\PythonWeb\bricks\bricks\controller\crud.py

   85: def edit(self, rowid):
   86:     if not self.model.has_key(int(rowid)):
   87:         return self.error(rowid)
   88:     else:
   89:         return [
   90:             self.view(
   91:                 file = self.model.name+'/crud_edit.html', 
   92:                 namespace = {
   93:                     'rowid':self.model[int(rowid)],
   94:                     'form':self.model[int(rowid)].form(
   95:                         action=self.environ['bricks.controller.url']+'/do_edit/%s'%rowid
   96:                     ).html(),
   97:                 }
   98:             )
   99:         ]

def error(self, rowid)
[show source]
C:\Documents and Settings\James\Desktop\PythonWeb\bricks\bricks\controller\crud.py

   75: def error(self, rowid):
   76:     return [
   77:         self.view(
   78:             file = self.model.name+'/crud_error.html', 
   79:             namespace = {
   80:                 'rowid':int(rowid),
   81:             }
   82:         )
   83:     ]

def get(self, rowid)
[show source]
C:\Documents and Settings\James\Desktop\PythonWeb\bricks\bricks\controller\crud.py

   49: def get(self, rowid):
   50:     if not self.model.has_key(int(rowid)):
   51:         return self.error(rowid)
   52:     else:
   53:         return [
   54:             self.view(
   55:                 file = self.model.name+'/crud_view.html', 
   56:                 namespace = {
   57:                     'frozen':self.model.row(int(rowid)).form().frozen(),
   58:                     'model':self.model,
   59:                     'rowid':rowid,
   60:                 }
   61:             )
   62:         ]

def index(self)
[show source]
C:\Documents and Settings\James\Desktop\PythonWeb\bricks\bricks\controller\crud.py

   36: def index(self):
   37:     return [
   38:         self.view(
   39:             file = self.model.name.lower()+'/crud_list.html', 
   40:             namespace = {
   41:                 'model':self.model,
   42:                 'str':str,
   43:                 'escape':web.encode,
   44:             }
   45:         )
   46:     ]

def new(self, form=None)
[show source]
C:\Documents and Settings\James\Desktop\PythonWeb\bricks\bricks\controller\crud.py

  118: def new(self, form=None):
  119:     if form == None:
  120:         form = self.model.form(action=self.environ['bricks.controller.url']+'/do_new')
  121:     return [
  122:         self.view(
  123:             file = self.model.name+'/crud_new.html', 
  124:             namespace = {
  125:                 'form':form.html(),
  126:             }
  127:         )
  128:     ]

def setup(self)
[show source]
C:\Documents and Settings\James\Desktop\PythonWeb\bricks\bricks\controller\crud.py

    8: def setup(self):
    9:     self.environ['database.connection'].commit()