Exemple #1
0
        "icon_class": "icon-{}".format(layer.item_type),
        "edit_url": treeitem_edit_url(kw["request"], layer),
        "group": "All",
    } for layer in query]


base_schema.add(
    colander.SequenceSchema(
        GeoFormManyToManySchemaNode(
            Layer,
            name="layer",
            includes=["id"],
            widget=ChildWidget(
                input_name="id",
                model=Layer,
                label_field="name",
                icon_class=lambda layer: "icon-{}".format(layer.item_type),
                edit_url=treeitem_edit_url,
            ),
        ),
        name="layers",
        title=_("Layers"),
        candidates=colander.deferred(layers),
        widget=ChildrenWidget(child_input_name="id", orderable=False),
    ))


@view_defaults(match_param="table=restriction_areas")
class RestrictionAreaViews(AbstractViews):
    _list_fields = [
        _list_field("id"),
from c2cgeoform.schema import GeoFormSchemaNode
from c2cgeoform.views.abstract_views import ListField
from deform.widget import FormWidget

from c2cgeoportal_admin.schemas.treegroup import children_schema_node
from c2cgeoportal_admin.schemas.metadata import metadatas_schema_node
from c2cgeoportal_admin.schemas.treeitem import parent_id_node
from c2cgeoportal_admin.views.treeitems import TreeItemViews
from c2cgeoportal_commons.models.main import LayerGroup, TreeGroup

_list_field = partial(ListField, LayerGroup)

base_schema = GeoFormSchemaNode(
    LayerGroup, widget=FormWidget(fields_template='layer_group_fields'))
base_schema.add(children_schema_node())
base_schema.add(metadatas_schema_node.clone())
base_schema.add_unique_validator(LayerGroup.name, LayerGroup.id)
base_schema.add(parent_id_node(TreeGroup))


@view_defaults(match_param='table=layer_groups')
class LayerGroupsViews(TreeItemViews):

    _list_fields = TreeItemViews._list_fields + [
        _list_field('is_expanded'),
        _list_field('is_internal_wms'),
        _list_field('is_base_layer')] + \
        TreeItemViews._extra_list_fields

    _id_field = 'id'
Exemple #3
0
        for user in query
    ]


base_schema.add(
    colander.SequenceSchema(
        GeoFormManyToManySchemaNode(
            User,
            name="layer",
            includes=["id"],
            widget=ChildWidget(
                input_name="id",
                model=User,
                label_field="username",
                icon_class=lambda user: "******",
                edit_url=lambda request, user: request.route_url(
                    "c2cgeoform_item",
                    table="users",
                    id=user.id,
                ),
            ),
        ),
        name="users",
        title=_("Users"),
        candidates=colander.deferred(users),
        widget=ChildrenWidget(child_input_name="id", orderable=False, category="structural"),
    )
)


@view_defaults(match_param="table=roles")
class RoleViews(AbstractViews):
Exemple #4
0
from c2cgeoform.views.abstract_views import ListField
from deform.widget import FormWidget
from pyramid.view import view_config, view_defaults

from c2cgeoportal_admin.schemas.interfaces import interfaces_schema_node
from c2cgeoportal_admin.schemas.metadata import metadatas_schema_node
from c2cgeoportal_admin.schemas.restriction_areas import restrictionareas_schema_node
from c2cgeoportal_admin.schemas.treeitem import parent_id_node
from c2cgeoportal_admin.views.dimension_layers import DimensionLayerViews
from c2cgeoportal_commons.models.main import LayerGroup, LayerVectorTiles

_list_field = partial(ListField, LayerVectorTiles)

base_schema = GeoFormSchemaNode(
    LayerVectorTiles, widget=FormWidget(fields_template="layer_fields"))
base_schema.add(metadatas_schema_node.clone())
base_schema.add(interfaces_schema_node.clone())
base_schema.add(restrictionareas_schema_node.clone())
base_schema.add_unique_validator(LayerVectorTiles.name, LayerVectorTiles.id)
base_schema.add(parent_id_node(LayerGroup))


@view_defaults(match_param="table=layers_vectortiles")
class LayerVectorTilesViews(DimensionLayerViews):
    _list_fields = (
        DimensionLayerViews._list_fields +
        [_list_field("style"), _list_field("xyz")] +
        DimensionLayerViews._extra_list_fields)
    _id_field = "id"
    _model = LayerVectorTiles
    _base_schema = base_schema
from functools import partial
from pyramid.view import view_defaults
from pyramid.view import view_config
from c2cgeoform.schema import GeoFormSchemaNode
from c2cgeoform.views.abstract_views import ListField
from c2cgeoportal_commons.models.main import LayerGroup
from c2cgeoportal_admin.schemas.treegroup import children_schema_node
from c2cgeoportal_admin.schemas.metadata import metadatas_schema_node
from c2cgeoportal_admin.views.treeitems import TreeItemViews

_list_field = partial(ListField, LayerGroup)


base_schema = GeoFormSchemaNode(LayerGroup)
base_schema.add(children_schema_node())
base_schema.add(metadatas_schema_node.clone())


@view_defaults(match_param='table=layer_groups')
class LayerGroupsViews(TreeItemViews):

    _list_fields = TreeItemViews._list_fields + [
        _list_field('is_expanded'),
        _list_field('is_internal_wms'),
        _list_field('is_base_layer')] + \
        TreeItemViews._extra_list_fields

    _id_field = 'id'
    _model = LayerGroup
    _base_schema = base_schema
Exemple #6
0
from deform.widget import FormWidget
from passwordgenerator import pwgenerator
from pyramid.httpexceptions import HTTPFound
from pyramid.view import view_config, view_defaults
from sqlalchemy.orm import aliased, subqueryload

from c2cgeoportal_admin.schemas.roles import roles_schema_node
from c2cgeoportal_commons.lib.email_ import send_email_config
from c2cgeoportal_commons.models.main import Role
from c2cgeoportal_commons.models.static import User

_list_field = partial(ListField, User)

base_schema = GeoFormSchemaNode(
    User, widget=FormWidget(fields_template="user_fields"))
base_schema.add(roles_schema_node("roles"))
base_schema.add_unique_validator(User.username, User.id)

settings_role = aliased(Role)


@view_defaults(match_param="table=users")
class UserViews(AbstractViews):
    _list_fields = [
        _list_field("id"),
        _list_field("username"),
        _list_field("email"),
        _list_field("last_login"),
        _list_field("expire_on"),
        _list_field("deactivated"),
        _list_field(
Exemple #7
0
from zope.sqlalchemy import mark_changed

from c2cgeoportal_admin import _
from c2cgeoportal_admin.schemas.dimensions import dimensions_schema_node
from c2cgeoportal_admin.schemas.interfaces import interfaces_schema_node
from c2cgeoportal_admin.schemas.metadata import metadata_schema_node
from c2cgeoportal_admin.schemas.restriction_areas import restrictionareas_schema_node
from c2cgeoportal_admin.schemas.treeitem import parent_id_node
from c2cgeoportal_admin.views.dimension_layers import DimensionLayerViews
from c2cgeoportal_commons.models.main import LayerGroup, LayerWMS, LayerWMTS, OGCServer, TreeItem

_list_field = partial(ListField, LayerWMTS)

base_schema = GeoFormSchemaNode(
    LayerWMTS, widget=FormWidget(fields_template="layer_fields"))
base_schema.add(dimensions_schema_node(LayerWMTS.dimensions))
base_schema.add(metadata_schema_node(LayerWMTS.metadatas, LayerWMTS))
base_schema.add(interfaces_schema_node(LayerWMTS.interfaces))
base_schema.add(restrictionareas_schema_node(LayerWMTS.restrictionareas))
base_schema.add_unique_validator(LayerWMTS.name, LayerWMTS.id)
base_schema.add(parent_id_node(LayerGroup))  # type: ignore


@view_defaults(match_param="table=layers_wmts")
class LayerWmtsViews(DimensionLayerViews):
    """The WMTS layer administration view."""

    _list_fields = (DimensionLayerViews._list_fields + [
        _list_field("url"),
        _list_field("layer"),
        _list_field("style"),
        "edit_url": treeitem_edit_url(kw["request"], layer),
        "group": "All",
    } for layer in query]


base_schema.add(
    colander.SequenceSchema(
        GeoFormManyToManySchemaNode(
            Layer,
            name="layer",
            includes=["id"],
            widget=ChildWidget(
                input_name="id",
                model=Layer,
                label_field="name",
                icon_class=lambda layer: f"icon-{layer.item_type}",
                edit_url=treeitem_edit_url,
            ),
        ),
        name="layers",
        title=RestrictionArea.layers.info["colanderalchemy"]["title"],
        description=RestrictionArea.layers.info["colanderalchemy"]
        ["description"],
        candidates=colander.deferred(layers),
        widget=ChildrenWidget(child_input_name="id", orderable=False),
    ))


@view_defaults(match_param="table=restriction_areas")
class RestrictionAreaViews(AbstractViews):  # type: ignore
    """The restriction area administration view."""
Exemple #9
0
from c2cgeoform.schema import GeoFormSchemaNode
from c2cgeoform.views.abstract_views import ListField
from deform.widget import FormWidget
from pyramid.view import view_config, view_defaults

from c2cgeoportal_admin.schemas.metadata import metadata_schema_node
from c2cgeoportal_admin.schemas.treegroup import children_schema_node
from c2cgeoportal_admin.schemas.treeitem import parent_id_node
from c2cgeoportal_admin.views.treeitems import TreeItemViews
from c2cgeoportal_commons.models.main import LayerGroup, TreeGroup

_list_field = partial(ListField, LayerGroup)

base_schema = GeoFormSchemaNode(
    LayerGroup, widget=FormWidget(fields_template="layer_group_fields"))
base_schema.add(children_schema_node())
base_schema.add(metadata_schema_node(LayerGroup.metadatas, LayerGroup))
base_schema.add_unique_validator(LayerGroup.name, LayerGroup.id)
base_schema.add(parent_id_node(TreeGroup))  # type: ignore


@view_defaults(match_param="table=layer_groups")
class LayerGroupsViews(TreeItemViews):
    """The layer group administration view."""

    _list_fields = TreeItemViews._list_fields + TreeItemViews._extra_list_fields

    _id_field = "id"
    _model = LayerGroup
    _base_schema = base_schema
Exemple #10
0
    GeoFormSchemaNode,
    GeoFormManyToManySchemaNode,
    manytomany_validator,
)
from c2cgeoform.views.abstract_views import ListField

from c2cgeoportal_commons.models.main import Theme, Interface, Role, Functionality
from c2cgeoportal_admin.schemas.treegroup import children_schema_node
from c2cgeoportal_admin.schemas.metadata import metadatas_schema_node
from c2cgeoportal_admin.views.treeitems import TreeItemViews

_list_field = partial(ListField, Theme)

base_schema = GeoFormSchemaNode(Theme)

base_schema.add(children_schema_node(only_groups=True))

base_schema.add(
    colander.SequenceSchema(
        GeoFormManyToManySchemaNode(Functionality),
        name='functionalities',
        widget=RelationCheckBoxListWidget(
            select([
                Functionality.id,
                concat(Functionality.name, '=', Functionality.value).label('label')
            ]).alias('functionnality_labels'),
            'id',
            'label',
            order_by='label'
        ),
        validator=manytomany_validator
Exemple #11
0
from c2cgeoform.views.abstract_views import AbstractViews, ListField
from deform.widget import FormWidget
from passwordgenerator import pwgenerator
from pyramid.httpexceptions import HTTPFound
from pyramid.view import view_config, view_defaults
from sqlalchemy.orm import aliased, subqueryload

from c2cgeoportal_admin.schemas.roles import roles_schema_node
from c2cgeoportal_commons.lib.email_ import send_email_config
from c2cgeoportal_commons.models.main import Role
from c2cgeoportal_commons.models.static import User

_list_field = partial(ListField, User)

base_schema = GeoFormSchemaNode(User, widget=FormWidget(fields_template="user_fields"))
base_schema.add(roles_schema_node(User.roles))
base_schema.add_unique_validator(User.username, User.id)

settings_role = aliased(Role)


@view_defaults(match_param="table=users")
class UserViews(AbstractViews):  # type: ignore
    """The admin user view."""

    _list_fields = [
        _list_field("id"),
        _list_field("username"),
        _list_field("email"),
        _list_field("last_login"),
        _list_field("expire_on"),
Exemple #12
0
from sqlalchemy.orm import subqueryload
from sqlalchemy.sql.functions import concat

from c2cgeoportal_admin.schemas.functionalities import functionalities_schema_node
from c2cgeoportal_admin.schemas.interfaces import interfaces_schema_node
from c2cgeoportal_admin.schemas.metadata import metadata_schema_node
from c2cgeoportal_admin.schemas.roles import roles_schema_node
from c2cgeoportal_admin.schemas.treegroup import children_schema_node
from c2cgeoportal_admin.views.treeitems import TreeItemViews
from c2cgeoportal_commons.models.main import Functionality, Interface, Role, Theme

_list_field = partial(ListField, Theme)

base_schema = GeoFormSchemaNode(
    Theme, widget=FormWidget(fields_template="theme_fields"))
base_schema.add(children_schema_node(only_groups=True))
base_schema.add(functionalities_schema_node(Theme.functionalities, Theme))
base_schema.add(roles_schema_node(Theme.restricted_roles))
base_schema.add(interfaces_schema_node(Theme.interfaces))
base_schema.add(metadata_schema_node(Theme.metadatas, Theme))
base_schema.add_unique_validator(Theme.name, Theme.id)


@view_defaults(match_param="table=themes")
class ThemeViews(TreeItemViews):
    """The theme administration view."""

    _list_fields = (TreeItemViews._list_fields + [
        _list_field("ordering"),
        _list_field("public"),
        _list_field("icon"),
from c2cgeoform.schema import GeoFormSchemaNode
from c2cgeoform.views.abstract_views import ListField
from deform.widget import FormWidget

from c2cgeoportal_commons.models.main import LayerV1

from c2cgeoportal_admin.schemas.metadata import metadatas_schema_node
from c2cgeoportal_admin.schemas.interfaces import interfaces_schema_node
from c2cgeoportal_admin.schemas.restriction_areas import restrictionareas_schema_node
from c2cgeoportal_admin.views.layers import LayerViews

_list_field = partial(ListField, LayerV1)

base_schema = GeoFormSchemaNode(
    LayerV1, widget=FormWidget(fields_template='layer_v1_fields'))
base_schema.add(interfaces_schema_node.clone())
base_schema.add(restrictionareas_schema_node.clone())
base_schema.add(metadatas_schema_node.clone())
base_schema.add_unique_validator(LayerV1.name, LayerV1.id)


@view_defaults(match_param='table=layers_v1')
class LayerV1Views(LayerViews):
    _list_fields = LayerViews._list_fields + [
        _list_field('layer'),
        _list_field('is_checked'),
        _list_field('icon'),
        _list_field('layer_type'),
        _list_field('url'),
        _list_field('image_type'),
        _list_field('style'),
Exemple #14
0
from sqlalchemy.orm import aliased, subqueryload
from c2cgeoform.schema import GeoFormSchemaNode
from c2cgeoform.views.abstract_views import AbstractViews, ListField
from deform.widget import FormWidget

from c2cgeoportal_commons.models.main import Role
from c2cgeoportal_commons.models.static import User
from c2cgeoportal_commons.lib.email_ import send_email_config
from c2cgeoportal_admin.schemas.roles import roles_schema_node

_list_field = partial(ListField, User)

base_schema = GeoFormSchemaNode(
    User, widget=FormWidget(fields_template='user_fields'))
base_schema.add(roles_schema_node('roles'))
base_schema.add_unique_validator(User.username, User.id)

settings_role = aliased(Role)


@view_defaults(match_param='table=users')
class UserViews(AbstractViews):
    _list_fields = [
        _list_field('id'),
        _list_field('username'),
        _list_field('email'),
        _list_field('last_login'),
        _list_field('expire_on'),
        _list_field('deactivated'),
        _list_field('settings_role',
Exemple #15
0
from pyramid.view import view_config

from c2cgeoform.schema import GeoFormSchemaNode
from c2cgeoform.views.abstract_views import ListField

from c2cgeoportal_commons.models.main import LayerV1

from c2cgeoportal_admin.schemas.metadata import metadatas_schema_node
from c2cgeoportal_admin.views.layers import LayerViews
from c2cgeoportal_admin.views.interfaces import interfaces_schema_node
from c2cgeoportal_admin.views.restrictionareas import restrictionareas_schema_node

_list_field = partial(ListField, LayerV1)

base_schema = GeoFormSchemaNode(LayerV1)
base_schema.add(interfaces_schema_node.clone())
base_schema.add(restrictionareas_schema_node.clone())
base_schema.add(metadatas_schema_node.clone())


@view_defaults(match_param='table=layers_v1')
class LayerV1Views(LayerViews):
    _list_fields = LayerViews._list_fields + [
        _list_field('layer'),
        _list_field('is_checked'),
        _list_field('icon'),
        _list_field('layer_type'),
        _list_field('url'),
        _list_field('image_type'),
        _list_field('style'),
        _list_field('dimensions'),
Exemple #16
0
from sqlalchemy.orm import subqueryload
from sqlalchemy.sql.functions import concat

from c2cgeoportal_admin.schemas.functionalities import functionalities_schema_node
from c2cgeoportal_admin.schemas.interfaces import interfaces_schema_node
from c2cgeoportal_admin.schemas.metadata import metadatas_schema_node
from c2cgeoportal_admin.schemas.roles import roles_schema_node
from c2cgeoportal_admin.schemas.treegroup import children_schema_node
from c2cgeoportal_admin.views.treeitems import TreeItemViews
from c2cgeoportal_commons.models.main import Functionality, Interface, Role, Theme

_list_field = partial(ListField, Theme)

base_schema = GeoFormSchemaNode(
    Theme, widget=FormWidget(fields_template="theme_fields"))
base_schema.add(children_schema_node(only_groups=True))
base_schema.add(functionalities_schema_node.clone())
base_schema.add(roles_schema_node("restricted_roles"))
base_schema.add(interfaces_schema_node.clone())
base_schema.add(metadatas_schema_node.clone())
base_schema.add_unique_validator(Theme.name, Theme.id)


@view_defaults(match_param="table=themes")
class ThemeViews(TreeItemViews):

    _list_fields = (TreeItemViews._list_fields + [
        _list_field("ordering"),
        _list_field("public"),
        _list_field("icon"),
        _list_field(
from pyramid.view import view_config, view_defaults

from c2cgeoportal_admin import _
from c2cgeoportal_admin.schemas.interfaces import interfaces_schema_node
from c2cgeoportal_admin.schemas.metadata import metadata_schema_node
from c2cgeoportal_admin.schemas.restriction_areas import restrictionareas_schema_node
from c2cgeoportal_admin.schemas.treeitem import parent_id_node
from c2cgeoportal_admin.views.dimension_layers import DimensionLayerViews
from c2cgeoportal_commons.lib.literal import Literal
from c2cgeoportal_commons.models.main import LayerGroup, LayerVectorTiles

_list_field = partial(ListField, LayerVectorTiles)

base_schema = GeoFormSchemaNode(
    LayerVectorTiles, widget=FormWidget(fields_template="layer_fields"))
base_schema.add(
    metadata_schema_node(LayerVectorTiles.metadatas, LayerVectorTiles))
base_schema.add(interfaces_schema_node(LayerVectorTiles.interfaces))
base_schema.add(restrictionareas_schema_node(
    LayerVectorTiles.restrictionareas))
base_schema.add_unique_validator(LayerVectorTiles.name, LayerVectorTiles.id)
base_schema.add(parent_id_node(LayerGroup))  # type: ignore


@view_defaults(match_param="table=layers_vectortiles")
class LayerVectorTilesViews(DimensionLayerViews):
    """The vector tiles administration view."""

    _list_fields = (
        DimensionLayerViews._list_fields +
        [_list_field("style"), _list_field("xyz")] +
        DimensionLayerViews._extra_list_fields)