예제 #1
0
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"]} 
예제 #2
0
 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)
예제 #3
0
    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}
예제 #4
0
    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')
예제 #5
0
    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
예제 #6
0
    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}
예제 #7
0
 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}
예제 #8
0
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
예제 #9
0
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)
예제 #10
0
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, }
예제 #11
0
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])
예제 #12
0
파일: forms.py 프로젝트: bbinet/PyGall
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=[
예제 #13
0
# -*- 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()
예제 #14
0
 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')
예제 #15
0
 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')
예제 #16
0
 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')
예제 #17
0
    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,
예제 #18
0
    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,
예제 #19
0
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"]} 
예제 #20
0
파일: forms.py 프로젝트: CDTRH/c2cgeoportal
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)
예제 #21
0
파일: admin_utils.py 프로젝트: twdb/txhis
 """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'))