def cpListe(context=None): """ This method unfortunately needs a side effect: The current set of common doc types needs to be reflected in the database. """ class DTRenderer(FieldRenderer): def render_readonly(self, **kwargs): """render html for read only mode""" # print self._value # print self.dts if self._value and self.dts.has_key(self._value): return u"%s (%s)" % (safe_unicode(self.dts[self._value]), safe_unicode(self._value)) else: return self._value obj = context.getContextObj() # print obj if shasattr(obj, "myDocumentTypes", True): # print "ja" dts = obj.myDocumentTypes() DTRenderer.dts = {} for dt in dts: DTRenderer.dts[safe_unicode(dt[0])] = dt[1] # Here me make sure that all current matching document types are in the database. obj.ensureMatchingDocumentTypesInDatabase() else: DTRenderer.dts = {} g = Grid(ChannelPermissions, session=__session__) g.configure(include=[g.id.with_renderer(HiddenFieldRenderer), g.doc_type.label(_(u"Doc. type (short)")).readonly().with_renderer(DTRenderer),g.perm.label(_("Permission")).dropdown(perm_options)]) return {'form': g, 'importRestricted':True, 'sortNames' : ["doc_type", "perm"]}
def list(self, req, model_name): model = self.model.get_model_or_404(model_name) grid = Grid(model, model.query.all()) grid.configure(readonly=True) grid.engine = self._create_fa_template_engine(model_name=model_name, model_type=model) return self.render_response('_admin/list.jinja', model_name=model_name, grid=grid)
def index(self): logs = Grid(SystemLog, self.session.query(SystemLog)\ .order_by(desc(SystemLog.created)).limit(10)) logs.configure(readonly=True) return { 'logs': logs, 'breadcrumbs': self.breadcrumbs}
def user(self): group_definitions = [] for i in meta.Session.query(GroupDefinition).all(): group_definitions.append((i.name, i.id)) u = meta.Session.query(User).all() grid = Grid(User, u) grid.configure(pk=False, options=[grid.groups.dropdown(size=1, options=group_definitions)], exclude=[grid.password, grid.last_login_date, grid.created, grid.last_login_ip, grid.messages_sent, grid.messages_by_user]) c.form_data = literal(grid.render()) return render('/admin/admin_tables.mako')
def gridHTML(self): """ """ g = Grid(DocTypePermission, session=__session__) g.configure(include=[g.doc_type.label(_(u"Document Type")).readonly(),g.perm.label(_("Permission"))]) permissions = self.context.permissions() #permissions = DocTypePermission.query.all() # print len(permissions) g = g.bind(permissions) # print g.render() return g.render() ##/code-section methods1 ##code-section bottom ##/code-section bottom
def tokens(self): breadcrumbs = self.breadcrumbs[:] breadcrumbs.append({'text': 'Manage Tokens'}) grid = Grid(TokenBatch, self.session.query(TokenBatch).all()) grid.configure(readonly=True, exclude=[grid._get_fields()[0]]) grid.append(Field('Export to CSV file', value=lambda item: '<a href="/%s">%s</a>' %\ (item.exportTokens(), str(item)))) grid.append(Field('Number of token', value=lambda item: self.session.query(Token)\ .filter_by(batch=item).count())) grid.append(Field('Number of unused tokens', value=lambda item: self.session\ .query(Token)\ .filter_by(batch=item)\ .filter_by(state='new').count())) return {'breadcrumbs': breadcrumbs, 'grid': grid}
def makeGrid(self, cls): breadcrumbs = self.breadcrumbs[:] breadcrumbs.append({'text': "%ss" % cls.__name__}) grid = Grid(cls, self.session.query(cls).all()) grid.configure(readonly=True, exclude=[grid._get_fields()[0]]) grid.insert(grid._get_fields()[1], Field('%s overview page' % cls.__name__, value=lambda item: '<a href=%s>%s</a>' % (item.getUrl(), str(item)))) return {'grid': grid, 'cls': cls, 'breadcrumbs': breadcrumbs}
def _makeGrid(typ, klass, fields): """ Erzeugt aus einer Feldliste und einer Pythonklasse ein Grid fuer alle Felder. """ # print fields first_field = fields[0] # print first_field g = Grid(klass, session=__session__) g.configure(include=[getattr(g, fname) for fname in fields],readonly=True) g.append(Field('editlink', type=types.String, value=lambda item: "<a href=\"portal_dbadmin/objekt_edit?typ=%s&pk=%s\">Editieren</a>" % (typ, str(item._sa_instance_state.key[1])))) # print getattr(g, first_field) g.insert(getattr(g,first_field), Field('check', type=types.String, value=lambda item: "<input type='checkbox' name='objsel:list' value=\"%s\"/>" % (str(item._sa_instance_state.key[1])))) return g
def show_all_resources(): """ Show all Resources from the pool """ # TODO: move this configuration into a class grid = Grid(Resource, pool.allResourcesGenerator()) grid.configure(options=[grid.location.with_renderer(LineRenderer)]) grid.readonly = True grid.append( Field('', value=lambda item: '<a class="delete" href="/delete/%(id)d">[x]\ </a><a href="/edit/%(id)d">[edit]</a>' % item.__dict__ ).readonly() ) return render_template('show_all_resources.html', grid=grid)
def list(request): model = meta.__dict__.get(request.matchdict["model"]) grid = Grid(model, request.db.query(model).all(), ) grid.configure(readonly=True) return { "q": request.db.query(model).all(), "grid": grid, }
fieldOrder.extend([ User.functionalities.set(renderer=FunctionalityCheckBoxTreeSet), User.email.with_metadata(mandatory='') ]) User.configure(include=fieldOrder) ############################################################################# # GRID defs # # DefaultBasemapGrid, LayerGrid, LayerGroupGrid, MandantGrid, # PrinttemplatesGrid, RestrictionAreaGrid, RoleGrid, TitleGrid, UserGrid # ############################################################################# # LayerGrid LayerGrid = Grid(models.Layer) fieldOrder = [Layer.name, Layer.public, Layer.isVisible, Layer.isChecked, Layer.icon, Layer.legend, Layer.identifierAttributeField] LayerGrid.configure(include=fieldOrder) # LayerGroupGrid LayerGroupGrid = Grid(models.LayerGroup) # ThemeGrid ThemeGrid = Grid(models.Theme) ThemeGrid.configure(exclude=[ThemeGrid.parents])
from formalchemy import Grid, FieldSet, config from pyramid_formalchemy.utils import TemplateEngine from fa.jquery import renderers as fa_renderers from pygall import models from pygall.lib.forms.pygallimage import PyGallImageFieldRenderer config.engine = TemplateEngine() FieldSet.default_renderers.update(fa_renderers.default_renderers) Tag = FieldSet(models.Tag) Tag.configure(exclude=[Tag.photos]) TagGrid = Grid(models.Tag) TagGrid.configure(exclude=[TagGrid.photos]) PhotoView = FieldSet(models.Photo) PhotoView.fspot_id.set(readonly=True) PhotoView.md5sum.set(readonly=True) PhotoView.uri.set(renderer=PyGallImageFieldRenderer) PhotoView.configure() PhotoEdit = FieldSet(models.Photo) PhotoEdit.fspot_id.set(readonly=True) PhotoEdit.md5sum.set(readonly=True) PhotoEdit.uri.set(renderer=PyGallImageFieldRenderer, readonly=True) PhotoEdit.configure() PhotoAdd = FieldSet(models.Photo) PhotoAdd.uri.set(renderer=PyGallImageFieldRenderer) PhotoAdd.configure(exclude=[
# -*- coding: utf-8 -*- from pyramid_formalchemy.utils import TemplateEngine from pyramidapp import models from formalchemy import Grid, FieldSet from formalchemy import fields from formalchemy import config config.engine = TemplateEngine() FieldSet.default_renderers['dropdown'] = fields.SelectFieldRenderer MyModel = FieldSet(models.MyModel) GridMyModel = Grid(models.MyModel) GridMyModelReadOnly = Grid(models.MyModel) GridMyModelReadOnly.configure(readonly=True) FooEdit = FieldSet(models.Foo) FooEdit.configure()
def service_name(self): g = meta.Session.query(ServiceName).all() grid = Grid(Account, g) grid.configure(pk=False) c.form_data = literal(grid.render()) return render('/admin/admin_tables.mako')
def resource(self): g = meta.Session.query(Resource).all() grid = Grid(Resource, g) grid.configure(pk=False) c.form_data = literal(grid.render()) return render('/admin/admin_tables.mako')
def group(self): g = meta.Session.query(GroupDefinition).all() grid = Grid(GroupDefinition, g) grid.configure(pk=False, exclude=[grid.members]) c.form_data = literal(grid.render()) return render('/admin/admin_tables.mako')
field_order.append(User.parent_role) field_order.extend([ User.email.with_metadata(mandatory="") ]) User.configure(include=field_order) ############################################################################# # GRID defs # # DefaultBasemapGrid, LayerGrid, LayerGroupGrid, MandantGrid, # PrinttemplatesGrid, RestrictionAreaGrid, RoleGrid, TitleGrid, UserGrid # ############################################################################# # LayerV1Grid LayerV1Grid = Grid(models.LayerV1) field_order = [ LayerV1.name, LayerV1.public, LayerV1.is_checked, LayerV1.icon, LayerV1.legend, LayerV1.identifier_attribute_field ] LayerV1Grid.configure(include=field_order) # LayerWMTSGrid LayerWMTSGrid = Grid(models.LayerWMTS) field_order = [ LayerWMTS.name, LayerWMTS.public,
field_order.append(User.parent_role) field_order.extend([ User.email.with_metadata(mandatory="") ]) User.configure(include=field_order) ############################################################################# # GRID defs # # DefaultBasemapGrid, LayerGrid, LayerGroupGrid, MandantGrid, # PrinttemplatesGrid, RestrictionAreaGrid, RoleGrid, TitleGrid, UserGrid # ############################################################################# # LayerV1Grid LayerV1Grid = Grid(models.LayerV1) field_order = [ LayerV1.name, LayerV1.public, LayerV1.is_checked, LayerV1.icon, LayerV1.legend, LayerV1.identifier_attribute_field ] LayerV1Grid.configure(include=field_order) # LayerInternalWMSGrid LayerInternalWMSGrid = Grid(models.LayerInternalWMS) field_order = [ LayerInternalWMS.name, LayerInternalWMS.public,
def cListe(context=None): g = Grid(Channel, session=__session__) g.configure(include=[g.title.label(_(u"Title")), g.timestamp.label(_(u"Timestamp"))] ) return {'form': g, 'importRestricted':True, 'sortNames' : ["title", "timestamp"]}
fieldOrder.extend([ User.functionalities.set(renderer=FunctionalityCheckBoxTreeSet), User.email.with_metadata(mandatory='') ]) User.configure(include=fieldOrder) ############################################################################# # GRID defs # # DefaultBasemapGrid, LayerGrid, LayerGroupGrid, MandantGrid, # PrinttemplatesGrid, RestrictionAreaGrid, RoleGrid, TitleGrid, UserGrid # ############################################################################# # LayerGrid LayerGrid = Grid(models.Layer) fieldOrder = [Layer.name, Layer.public, Layer.inDesktopViewer, Layer.inMobileViewer, Layer.isChecked, Layer.icon, Layer.legend, Layer.identifierAttributeField] LayerGrid.configure(include=fieldOrder) # LayerGroupGrid LayerGroupGrid = Grid(models.LayerGroup) # ThemeGrid ThemeGrid = Grid(models.Theme)
"""scan model and forms""" # generate missing forms, grids result_forms = dict() if model.__name__ == "User": try: if kargs['user_flag'] == "add": result_forms['fieldsets'] = UserFieldSet_add() elif kargs['user_flag'] == "edit": result_forms['fieldsets'] = UserFieldSet_edit() except KeyError, e: raise NameError('No proper User flag (add/edit)') else: result_forms['fieldsets'] = FieldSet(model()) if model.__name__ == "Sources": result_forms['fieldsets'].configure(exclude = [result_forms['fieldsets']['availableParameterInfo']]) result_forms['grids'] = Grid(model) exclude_attrs = [result_forms['grids'][i] for i in result_forms['grids']._fields.keys() if 'name' not in i.lower()] result_forms['grids'].configure(exclude=exclude_attrs) # add Edit + Delete link to grids def edit_link(): return lambda item: '<a href="%(url)sedit/%(id)s" title="%(label)s" class="icon edit">%(label)s</a>' % dict( url=model_URL, id=_pk(item), label=get_translator().gettext('edit')) def delete_link(): return lambda item: '''<form action="%(url)sdelete/%(id)s" method="POST"> <input type="submit" class="icon delete" title="%(label)s" value="" /> <input type="hidden" name="_method" value="DELETE" /> </form> ''' % dict( url=model_URL, id=_pk(item), label=get_translator().gettext('delete'))