class BaseForm(BaseRecipe): ext.baseclass() ext.adapts(IApplicationContext, interfaces.IRecipeDescriptive, IRequest) aliasprefix = 'Form' def __call__(self): return self.render_template('form.json.tpl') @property def title(self): return self.descriptive.title @property def items(self): items = list() for name, zfield in getFieldsInOrder(self.descriptive.interface): items.append( getMultiAdapter(( self, zfield, ), interfaces.IFieldBuilder)()) return items @property def name(self): return self.classname(CLASS_NAMESPACE, self.aliasprefix.lower(), self.descriptive.classname)
class ModelBuilderBase(BuilderBase): ext.baseclass() def base(self, overrides): b = dict(name=self.field.getName(), useNull=not self.field.required) b.update(overrides) return b
class BuilderBaseForm(BuilderBase): ext.baseclass() def default(self): return dict(name=self.field.getName(), fieldLabel=translate(self.field.title, context=self.recipe.request), emptyText=self.field.default, allowBlank=not self.field.required )
class LoginPageContext(ext.ApplicationContext): """ Base class to easily create a login page in your application. All you need is inherited in your project. """ ext.baseclass() ext.name('login') title = 'Login Page' application = 'extjs.security.LoginPageApplication' namespace = 'extjs.security' resources = Resource( library, 'application.js', depends=[ext.extjs_resources_skinless, themes['neptune'], style]) credentials_pluggins = ('request_credentials', ) authentication_pluggins = ()
class BaseRecipe(ext.MultiAdapter): ext.baseclass() ext.adapts() def __init__(self, context, descriptive, request): self.context = context self.descriptive = descriptive self.request = request def buildclass(self, name, extclass): return EXT_DEFINE_CLASS % ( name, json.dumps(extclass, indent=' ' * 4), ) def classname(self, namespace, type, name): return '%s.%s.%s' % (namespace, type, name) def render_template(self, tpl_name): tmpl = loader.load(tpl_name, cls=NewTextTemplate) stream = tmpl.generate(view=self) return stream.render()
class BaseStore(BaseRecipe): ext.baseclass() ext.adapts(IApplicationContext, interfaces.IRecipeDescriptive, IRequest) def __init__(self, context, descriptive, request): super(BaseStore, self).__init__(context, descriptive, request) def __call__(self): return self.render_template('store.json.tpl') @property def url(self): return IBaseUrl(self.request).url('data/%s' % self.descriptive.classname) @property def name(self): return self.descriptive.classname @property def cname(self): return self.classname(CLASS_NAMESPACE, 'store', self.descriptive.classname) @property def model(self): return self.classname(CLASS_NAMESPACE, 'model', self.descriptive.classname) @property def buffered(self): return False @property def autoSync(self): return True
class BuilderBase(ext.MultiAdapter): ext.baseclass() def __init__(self, recipe, field): self.recipe = recipe self.field = field