Coverage for gws-app/gws/base/edit/action.py: 94%
36 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
1"""Edit action."""
3from typing import Optional, cast
5import gws
6import gws.base.action
8from . import api, helper
11@gws.ext.config.action('edit')
12class Config(gws.base.action.Config):
13 """Feature editing in the client."""
14 pass
17@gws.ext.props.action('edit')
18class Props(gws.base.action.Props):
19 pass
22@gws.ext.object.action('edit')
23class Object(gws.base.action.Object):
24 """Edit action.
26 Delegates all work to the ``edit`` helper.
27 """
29 h: helper.Object
30 """The ``edit`` helper."""
32 def configure(self):
33 self.h = cast(helper.Object, self.root.app.helper('edit'))
35 @gws.ext.command.api('editGetModels')
36 def api_get_models(self, req: gws.WebRequester, p: api.GetModelsRequest) -> api.GetModelsResponse:
37 """Return the editable models of a project."""
38 return self.h.get_models_response(req, p, self.h.get_models(req, p))
40 @gws.ext.command.api('editGetFeatures')
41 def api_get_features(self, req: gws.WebRequester, p: api.GetFeaturesRequest) -> api.GetFeaturesResponse:
42 """Return features of editable models."""
43 return self.h.get_features_response(req, p, self.h.get_features(req, p))
45 @gws.ext.command.api('editGetRelatableFeatures')
46 def api_get_relatable_features(self, req: gws.WebRequester, p: api.GetRelatableFeaturesRequest) -> api.GetRelatableFeaturesResponse:
47 """Return features that can be linked in a related field."""
48 return self.h.get_relatable_features_response(req, p, self.h.get_relatable_features(req, p))
50 @gws.ext.command.api('editGetFeature')
51 def api_get_feature(self, req: gws.WebRequester, p: api.GetFeatureRequest) -> api.GetFeatureResponse:
52 """Return a single feature for the edit form."""
53 return self.h.get_feature_response(req, p, self.h.get_feature(req, p))
55 @gws.ext.command.api('editInitFeature')
56 def api_init_feature(self, req: gws.WebRequester, p: api.InitFeatureRequest) -> api.InitFeatureResponse:
57 """Return a new feature with initial values, without saving it."""
58 return self.h.init_feature_response(req, p, self.h.init_feature(req, p))
60 @gws.ext.command.api('editWriteFeature')
61 def api_write_feature(self, req: gws.WebRequester, p: api.WriteFeatureRequest) -> api.WriteFeatureResponse:
62 """Validate and save a new or existing feature."""
63 return self.h.write_feature_response(req, p, self.h.write_feature(req, p))
65 @gws.ext.command.api('editDeleteFeature')
66 def api_delete_feature(self, req: gws.WebRequester, p: api.DeleteFeatureRequest) -> api.DeleteFeatureResponse:
67 """Delete a feature."""
68 return self.h.delete_feature_response(req, p, self.h.delete_feature(req, p))