Coverage for gws-app/gws/plugin/model_field/__init__.py: 100%

0 statements  

« prev     ^ index     » next       coverage.py v7.16.2, created at 2026-10-05 13:35 +0200

1"""Model field types. 

2 

3Each subpackage implements one field type for models (``gws.ext.object.modelField``). 

4A field maps one attribute of a feature to a column (or a relationship) in the 

5data source, converts values between the database, Python and the client, and 

6creates a default widget when none is configured. 

7 

8Scalar fields, based on ``gws.base.model.scalar_field``: 

9 

10- ``bool``: boolean values, ``toggle`` widget. 

11- ``date``: dates, transferred as ISO strings, ``date`` widget. 

12- ``datetime``: date and time values, transferred as ISO strings, ``input`` widget. 

13- ``float``: floating-point numbers, ``float`` widget. 

14- ``integer``: integer numbers, ``integer`` widget. 

15- ``text``: strings, with optional keyword search, ``input`` widget. 

16- ``time``: time values, transferred as ISO strings, ``input`` widget. 

17- ``geometry``: geometries, used for spatial searches, ``geometry`` widget. 

18 

19Other fields, based on ``gws.base.model.field``: 

20 

21- ``file``: files stored in a database column, with download and preview URLs. 

22 

23Related fields, based on ``gws.base.model.related_field``, link features of 

24database models: 

25 

26- ``related_feature``: M:1, the value is the parent feature. 

27- ``related_feature_list``: 1:M, the value is the list of child features. 

28- ``related_multi_feature_list``: 1:M with several child models. 

29- ``related_linked_feature_list``: M:N via a link table. 

30 

31Example:: 

32 

33 models+ { 

34 type "postgres" 

35 tableName "edit.poi" 

36 fields+ { name "id" type "integer" isPrimaryKey true } 

37 fields+ { name "name" type "text" textSearch { type "any" } } 

38 fields+ { name "geom" type "geometry" } 

39 fields+ { 

40 name "category" 

41 type "relatedFeature" 

42 fromColumn "category_id" 

43 toModel "model_category" 

44 widget.type "featureSelect" 

45 } 

46 } 

47"""