from c2cgeoportal_commons.models.main import OGCServer 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 AbstractViews from c2cgeoform.views.abstract_views import ListField from deform.widget import FormWidget _list_field = partial(ListField, OGCServer) base_schema = GeoFormSchemaNode( OGCServer, widget=FormWidget(fields_template='ogcserver_fields')) base_schema.add_unique_validator(OGCServer.name, OGCServer.id) @view_defaults(match_param='table=ogc_servers') class OGCServerViews(AbstractViews): _list_fields = [ _list_field('id'), _list_field('name'), _list_field('description'), _list_field('url'), _list_field('url_wfs'), _list_field('type'), _list_field('image_type'), _list_field('auth'), _list_field('wfs_support'), _list_field('is_single_tile') ]
from c2cgeoform.schema import GeoFormManyToManySchemaNode, GeoFormSchemaNode from c2cgeoform.views.abstract_views import AbstractViews, ListField from deform.widget import FormWidget from pyramid.view import view_config, view_defaults from sqlalchemy.orm import subqueryload from c2cgeoportal_admin import _ from c2cgeoportal_admin.schemas.functionalities import functionalities_schema_node from c2cgeoportal_admin.schemas.restriction_areas import restrictionareas_schema_node from c2cgeoportal_admin.widgets import ChildrenWidget, ChildWidget from c2cgeoportal_commons.models.main import Role from c2cgeoportal_commons.models.static import User _list_field = partial(ListField, Role) base_schema = GeoFormSchemaNode(Role, widget=FormWidget(fields_template="role_fields")) base_schema.add_before("extent", functionalities_schema_node.clone()) base_schema.add_before("extent", restrictionareas_schema_node.clone()) base_schema.add_unique_validator(Role.name, Role.id) def users(node, kw): # pylint: disable=unused-argument dbsession = kw["request"].dbsession query = dbsession.query(User).order_by(User.username) return [ { "id": user.id, "label": user.username, "icon_class": "icon-user", "edit_url": kw["request"].route_url( "c2cgeoform_item",
from passwordgenerator import pwgenerator 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'),
LayerWMS, LayerWMTS, OGCServer, LayerGroup, TreeItem from c2cgeoportal_admin import _ from c2cgeoportal_admin.schemas.dimensions import dimensions_schema_node 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.schemas.treeitem import parent_id_node from c2cgeoportal_admin.views.dimension_layers import DimensionLayerViews from geoportailv3_geoportal.models import LuxLayerExternalWMS _list_field = partial(ListField, LuxLayerExternalWMS) base_schema = GeoFormSchemaNode( LuxLayerExternalWMS, widget=FormWidget(fields_template='layer_fields')) base_schema.add(dimensions_schema_node.clone()) 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(LuxLayerExternalWMS.name, LuxLayerExternalWMS.id) base_schema.add(parent_id_node(LayerGroup)) @view_defaults(match_param='table=lux_layer_external_wms') class LuxLayerExternalWMSViews(DimensionLayerViews): _list_fields = DimensionLayerViews._list_fields + [ _list_field('category_id'), _list_field('layer'), _list_field('style'),
from c2cgeoform.views.abstract_views import AbstractViews, ListField from deform.widget import FormWidget from pyramid.view import view_config, view_defaults from sqlalchemy.orm import subqueryload from c2cgeoportal_admin import _ from c2cgeoportal_admin.schemas.roles import roles_schema_node from c2cgeoportal_admin.schemas.treegroup import treeitem_edit_url from c2cgeoportal_admin.widgets import ChildrenWidget, ChildWidget from c2cgeoportal_commons.models.main import Layer, RestrictionArea _list_field = partial(ListField, RestrictionArea) base_schema = GeoFormSchemaNode( RestrictionArea, widget=FormWidget(fields_template="restriction_area_fields")) base_schema.add_before("area", roles_schema_node("roles")) base_schema.add_unique_validator(RestrictionArea.name, RestrictionArea.id) def layers(node, kw): # pylint: disable=unused-argument dbsession = kw["request"].dbsession query = dbsession.query(Layer).order_by(Layer.name) return [{ "id": layer.id, "label": layer.name, "icon_class": "icon-{}".format(layer.item_type), "edit_url": treeitem_edit_url(kw["request"], layer), "group": "All", } for layer in query]
from deform.widget import FormWidget from pyramid.view import view_config, view_defaults 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"),
from pyramid.view import view_config from c2cgeoportal_commons.models.main import RestrictionArea from c2cgeoportal_admin.schemas.map import map_widget from c2cgeoform.schema import GeoFormSchemaNode from c2cgeoportal_admin.schemas.roles import roles_schema_node from c2cgeoform.views.abstract_views import AbstractViews from c2cgeoform.views.abstract_views import ListField from deform.widget import FormWidget _list_field = partial(ListField, RestrictionArea) base_schema = GeoFormSchemaNode( RestrictionArea, widget=FormWidget(fields_template='restriction_area_fields')) base_schema['area'].widget = map_widget base_schema.add_before('area', roles_schema_node('roles')) base_schema.add_unique_validator(RestrictionArea.name, RestrictionArea.id) @view_defaults(match_param='table=restriction_areas') class RestrictionAreaViews(AbstractViews): _list_fields = [ _list_field('id'), _list_field('name'), _list_field('description'), _list_field('readwrite'), _list_field('roles', renderer=lambda restriction_area: ', '.join( r.name for r in restriction_area.roles)),
from pyramid.view import view_config, view_defaults from sqlalchemy import delete, insert, inspect, update 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 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, 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.clone()) 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(LayerWMTS.name, LayerWMTS.id) base_schema.add(parent_id_node(LayerGroup)) @view_defaults(match_param="table=layers_wmts") class LayerWmtsViews(DimensionLayerViews): _list_fields = ( DimensionLayerViews._list_fields + [ _list_field("url"), _list_field("layer"),
from c2cgeoportal_commons.models.main import \ LayerWMS, LayerWMTS, OGCServer, LayerGroup, TreeItem from c2cgeoportal_admin import _ from c2cgeoportal_admin.schemas.dimensions import dimensions_schema_node 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.schemas.treeitem import parent_id_node from c2cgeoportal_admin.views.dimension_layers import DimensionLayerViews from geoportailv3_geoportal.models import LuxLayerInternalWMS _list_field = partial(ListField, LuxLayerInternalWMS) base_schema = GeoFormSchemaNode(LuxLayerInternalWMS, widget=FormWidget(fields_template='layer_fields')) base_schema.add(dimensions_schema_node.clone()) 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(LuxLayerInternalWMS.name, LuxLayerInternalWMS.id) base_schema.add(parent_id_node(LayerGroup)) @view_defaults(match_param='table=lux_layer_internal_wms') class LuxLayerInternalWMSViews(DimensionLayerViews): _list_fields = DimensionLayerViews._list_fields + [ _list_field('url'), _list_field('layers'), _list_field('is_poi'), _list_field('use_auth'),
from c2cgeoform.schema import GeoFormSchemaNode 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"),
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'),
from c2cgeoform.schema import GeoFormSchemaNode from c2cgeoform.views.abstract_views import ListField from deform.widget import FormWidget from c2cgeoportal_commons.models.main import Theme, Interface, Role, Functionality from c2cgeoportal_admin.schemas.treegroup import children_schema_node from c2cgeoportal_admin.schemas.functionalities import functionalities_schema_node from c2cgeoportal_admin.schemas.metadata import metadatas_schema_node from c2cgeoportal_admin.schemas.interfaces import interfaces_schema_node from c2cgeoportal_admin.schemas.roles import roles_schema_node from c2cgeoportal_admin.views.treeitems import TreeItemViews _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'),
def _set_form_widget(form, schema, template): if getattr(schema, 'widget', None) is None: # only change if the user did not provide a custom widget form.widget = FormWidget( readonly_template='readonly/' + template, template=template)
from c2cgeoform.schema import GeoFormSchemaNode from c2cgeoform.views.abstract_views import AbstractViews, ListField from deform.widget import FormWidget from pyramid.view import view_config, view_defaults from sqlalchemy.orm import subqueryload from c2cgeoportal_admin.schemas.functionalities import functionalities_schema_node from c2cgeoportal_admin.schemas.map import map_widget from c2cgeoportal_admin.schemas.restriction_areas import restrictionareas_schema_node from c2cgeoportal_commons.models.main import Role _list_field = partial(ListField, Role) base_schema = GeoFormSchemaNode( Role, widget=FormWidget(fields_template="role_fields")) base_schema["extent"].widget = map_widget base_schema.add_before("extent", functionalities_schema_node.clone()) base_schema.add_before("extent", restrictionareas_schema_node.clone()) base_schema.add_unique_validator(Role.name, Role.id) @view_defaults(match_param="table=roles") class RoleViews(AbstractViews): _list_fields = [ _list_field("id"), _list_field("name"), _list_field("description"), _list_field( "functionalities", renderer=lambda role: ", ".join([
from pyramid.view import view_config from c2cgeoform.schema import GeoFormSchemaNode from c2cgeoform.views.abstract_views import AbstractViews, ListField from sqlalchemy.orm import subqueryload from c2cgeoportal_commons.models.main import Role from c2cgeoportal_admin.schemas.map import map_widget from c2cgeoportal_admin.schemas.functionalities import functionalities_schema_node from c2cgeoportal_admin.schemas.restriction_areas import restrictionareas_schema_node from deform.widget import FormWidget _list_field = partial(ListField, Role) base_schema = GeoFormSchemaNode( Role, widget=FormWidget(fields_template='role_fields')) base_schema['extent'].widget = map_widget base_schema.add_before('extent', functionalities_schema_node.clone()) base_schema.add_before('extent', restrictionareas_schema_node.clone()) base_schema.add_unique_validator(Role.name, Role.id) @view_defaults(match_param='table=roles') class RoleViews(AbstractViews): _list_fields = [ _list_field('id'), _list_field('name'), _list_field('description'), _list_field('functionalities', renderer=lambda role: ', '.join([ '{}={}'.format(f.name, f.value)
from sqlalchemy import delete, insert, inspect, update 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 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, 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.clone()) 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(LayerWMTS.name, LayerWMTS.id) base_schema.add(parent_id_node(LayerGroup)) @view_defaults(match_param="table=layers_wmts") class LayerWmtsViews(DimensionLayerViews): _list_fields = (DimensionLayerViews._list_fields + [ _list_field("url"), _list_field("layer"), _list_field("style"), _list_field("matrix_set"),
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.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"
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.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
class Issue(Base): __tablename__ = "issue" __table_args__ = {"schema": schema} __colanderalchemy_config__ = { "title": _("Issue"), "plural": _("Issues"), "widget": FormWidget(fields_template="issue_fields"), } id = Column( Integer, primary_key=True, info={ # the `colanderalchemy` property allows to set a custom title for the # column or to use a specific widget. "colanderalchemy": {"title": _("Identifier"), "widget": HiddenWidget()} }, ) hash = Column( Text, nullable=False, unique=True, default=lambda: str(uuid4()), info={"colanderalchemy": {"exclude": True}, "c2cgeoform": {"duplicate": False}}, ) request_date = Column( Date, nullable=False, server_default=func.now(), info={"colanderalchemy": {"title": _("Request date")}}, ) geometry = Column( geoalchemy2.Geometry("POINT", 4326, management=True), info={ "colanderalchemy": { "title": _("Position"), "typ": colander_ext.Geometry( "POINT", srid=4326, map_srid=_map_config["srid"] ), "widget": deform_ext.MapWidget( map_options=_map_config, item_css_class="item-geometry" ), } }, ) type_id = Column( Integer, ForeignKey("{}.type.id".format(schema)), nullable=False, info={ "colanderalchemy": { "title": _("Type"), "widget": RelationSelectWidget( Type, "id", "label_en", order_by="label_en", default_value=("", _("- Select -")), ), } }, ) type = relationship(Type, info={"colanderalchemy": {"exclude": True}}) status = Column( Enum(*tuple(STATUSES.keys()), native_enum=False, name="status"), nullable=False, default="new", info={ "colanderalchemy": { "title": _("Status"), "widget": SelectWidget( values=list(STATUSES.items()), readonly=True, item_css_class="item-status", ), } }, ) @property def status_de(self): return self.status_i18n("de") @property def status_en(self): return self.status_i18n("en") @property def status_fr(self): return self.status_i18n("fr") def status_i18n(self, locale): localizer = make_localizer(locale, [resource_filename("getitfixed", "locale")]) return localizer.translate(STATUSES[self.status]) description = Column( Text, nullable=False, info={ "colanderalchemy": { "title": _("Description of the problem"), "widget": TextAreaWidget(rows=3), } }, ) localisation = Column( String(254), info={"colanderalchemy": {"title": _("Localisation")}} ) photos = relationship( Photo, cascade="all, delete-orphan", info={"colanderalchemy": {"title": _("Photos")}}, ) firstname = Column(String(100), info={"colanderalchemy": {"title": _("Firstname")}}) lastname = Column(String(100), info={"colanderalchemy": {"title": _("Lastname")}}) phone = Column( String(20), info={"colanderalchemy": {"title": _("Phone"), "widget": TelWidget()}}, ) email = Column( String(254), nullable=False, info={ "colanderalchemy": { "title": _("Email"), "validator": colander.Email(), "description": _( "This field is required to keep you informed about issue events" ), } }, ) private = Column( Boolean, nullable=False, server_default=text("False"), info={"colanderalchemy": {"title": _("Private"), "exclude": True}}, ) events = relationship( "Event", order_by="desc(Event.date)", backref=backref("issue", info={"colanderalchemy": {"exclude": True}}), info={ "colanderalchemy": { "title": _("Events"), "widget": SequenceWidget(readonly=True, item_css_class="item-events"), } }, ) public_events = relationship( "Event", order_by="desc(Event.date)", primaryjoin="and_(Event.issue_id==Issue.id, Event.private==False)", ) category = association_proxy("type", "category") def icon_url(self, request): return self.type.icon_url(request) if self.type else default_icon_url(request) def full_name(self): return "{} {}".format(self.firstname or "", self.lastname or "").strip()
from c2cgeoform.schema import GeoFormSchemaNode from c2cgeoform.views.abstract_views import AbstractViews, ItemAction, ListField, UserMessage from deform.widget import FormWidget from pyramid.httpexceptions import HTTPNotFound from pyramid.view import view_config, view_defaults from sqlalchemy import inspect from c2cgeoportal_admin import _ from c2cgeoportal_admin.lib.ogcserver_synchronizer import OGCServerSynchronizer from c2cgeoportal_commons.lib.literal import Literal from c2cgeoportal_commons.models.main import OGCServer _list_field = partial(ListField, OGCServer) base_schema = GeoFormSchemaNode( OGCServer, widget=FormWidget(fields_template="ogcserver_fields")) base_schema.add_unique_validator(OGCServer.name, OGCServer.id) @view_defaults(match_param="table=ogc_servers") class OGCServerViews(AbstractViews): # type: ignore """The OGC server administration view.""" _list_fields = [ _list_field("id"), _list_field("name"), _list_field("description"), _list_field("url"), _list_field("url_wfs"), _list_field("type"), _list_field("image_type"),
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("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"),
from pyramid.view import view_config 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
from deform.widget import FormWidget from c2cgeoportal_admin import _ from c2cgeoportal_admin.schemas.dimensions import dimensions_schema_node from c2cgeoportal_commons.models.main import \ LayerWMTS, LayerWMS, LayerGroup, OGCServer, TreeItem 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.schemas.treeitem import parent_id_node from c2cgeoportal_admin.views.dimension_layers import DimensionLayerViews _list_field = partial(ListField, LayerWMTS) base_schema = GeoFormSchemaNode( LayerWMTS, widget=FormWidget(fields_template='layer_fields')) base_schema.add(dimensions_schema_node.clone()) 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(LayerWMTS.name, LayerWMTS.id) base_schema.add(parent_id_node(LayerGroup)) @view_defaults(match_param='table=layers_wmts') class LayerWmtsViews(DimensionLayerViews): _list_fields = DimensionLayerViews._list_fields + [ _list_field('url'), _list_field('layer'), _list_field('style'), _list_field('matrix_set'),
from pyramid.view import view_config, view_defaults 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 = partial(ListField, Functionality) def _translate_available_functionality( available_functionality: Dict[str, Any], request: pyramid.request.Request) -> Dict[str, Any]: result = {} result.update(available_functionality) result["description"] = request.localizer.translate( _(available_functionality.get("description", "").strip())) return result base_schema = GeoFormSchemaNode( Functionality, widget=FormWidget(fields_template="functionality_fields"), functionalities=colander.deferred( lambda node, kw: { f["name"]: _translate_available_functionality(f, kw["request"]) for f in kw["request"].registry.settings["admin_interface"][ "available_functionalities"] }, ), ) @view_defaults(match_param="table=functionalities") class FunctionalityViews(AbstractViews): # type: ignore """The functionality administration view.""" _list_fields = [