/usr/share/pyshared/tgext/admin/config.py is in python-tgext.admin 0.2.6-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | import inspect
from tw.forms import TextField
from sqlalchemy.orm import class_mapper
from sqlalchemy.orm.exc import UnmappedClassError
from tgext.crud import CrudRestController
try:
import tw.dojo
from sprox.dojo.tablebase import DojoTableBase as TableBase
from sprox.dojo.fillerbase import DojoTableFiller as TableFiller
from sprox.dojo.formbase import DojoAddRecordForm as AddRecordForm, DojoEditableForm as EditableForm
except ImportError:
from sprox.tablebase import TableBase
from sprox.fillerbase import TableFiller
from sprox.formbase import AddRecordForm, EditableForm
from sprox.fillerbase import RecordFiller, AddFormFiller
class CrudRestControllerConfig(object):
allow_only = None
defaultCrudRestController = CrudRestController
def _post_init(self):
if not hasattr(self, 'table_type'):
class Table(TableBase):
__entity__=self.model
self.table_type = Table
if not hasattr(self, 'table_filler_type'):
class MyTableFiller(TableFiller):
__entity__ = self.model
self.table_filler_type = MyTableFiller
if not hasattr(self, 'edit_form_type'):
class EditForm(EditableForm):
__entity__ = self.model
self.edit_form_type = EditForm
if not hasattr(self, 'edit_filler_type'):
class EditFiller(RecordFiller):
__entity__ = self.model
self.edit_filler_type = EditFiller
if not hasattr(self, 'new_form_type'):
class NewForm(AddRecordForm):
__entity__ = self.model
self.new_form_type = NewForm
if not hasattr(self, 'new_filler_type'):
class NewFiller(AddFormFiller):
__entity__ = self.model
self.new_filler_type = NewFiller
def __init__(self, model, translations=None):
super(CrudRestControllerConfig, self).__init__()
self.model = model
self._do_init_with_translations(translations)
self._post_init()
def _do_init_with_translations(self, translations):
pass
class AdminConfig(object):
DefaultControllerConfig = CrudRestControllerConfig
default_index_template = None
allow_only = None
include_left_menu = True
def __init__(self, models, translations=None):
if translations is None:
translations = {}
if inspect.ismodule(models):
models = [getattr(models, model) for model in dir(models) if inspect.isclass(getattr(models, model))]
#purge all non-model objects
try_models = models
models = {}
for model in try_models:
if not inspect.isclass(model):
continue
try:
mapper = class_mapper(model)
models[model.__name__.lower()] = model
except UnmappedClassError:
pass
self.models = models
self.translations = translations
self.index_template = self.default_index_template
def lookup_controller_config(self, model_name):
model_name_lower = model_name.lower()
if hasattr(self, model_name_lower):
return getattr(self, model_name_lower)(self.models[model_name], self.translations)
return self.DefaultControllerConfig(self.models[model_name], self.translations)
|