Skip to content

Commit

Permalink
Extra fields on record for simpler synthetic fields
Browse files Browse the repository at this point in the history
  • Loading branch information
mesemus committed Feb 25, 2024
1 parent 152d77c commit 92ce9c4
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 0 deletions.
6 changes: 6 additions & 0 deletions oarepo_model_builder/datatypes/components/model/record.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@ class Meta:
ma.fields.Nested(ImportSchema), metadata={"doc": "List of python imports"}
)
skip = ma.fields.Boolean()
fields = ma.fields.Dict(
attribute="fields",
data_key="fields",
metadata={"doc": "Extra fields to add to the class"},
)


class RecordModelComponent(DataTypeComponent):
Expand Down Expand Up @@ -65,4 +70,5 @@ def before_model_prepare(self, datatype, *, context, **kwargs):
[],
)
record.setdefault("extra-code", "")
record.setdefault("fields", {})
convert_config_to_qualified_name(record)
8 changes: 8 additions & 0 deletions oarepo_model_builder/invenio/templates/record.py.jinja2
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ from invenio_records_resources.records.systemfields import IndexField
{{ vars.record_dumper.class|imports }}
{{ vars.record|imports }}

{% for extra_field_value in vars.record.fields.values() %}
{{ extra_field_value|code_imports }}
{% endfor %}


class {{ vars.record|class_header }}:
{% if not vars.record_metadata.skip %}
model_cls = {{ vars.record_metadata.class|base_name }}
Expand All @@ -30,5 +35,8 @@ class {{ vars.record|class_header }}:
{% if not vars.record_dumper.skip %}
dumper = {{ vars.record_dumper.class|base_name }}()
{% endif %}
{% for extra_field_name, extra_field_value in vars.record.fields.items() %}
{{ extra_field_name }} = {{ extra_field_value|extra_code }}
{% endfor %}

{{ vars.record|extra_code }}
1 change: 1 addition & 0 deletions tests/test_datatype_prepare.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ def test_prepare_datatype():
],
"imports": [],
"extra-code": "",
"fields": {},
},
"resource": {
"generate": True,
Expand Down
2 changes: 2 additions & 0 deletions tests/test_model_saver.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ def test_model_saver():
],
"imports": [],
"extra-code": "",
"fields": {},
},
"resource": {
"generate": True,
Expand Down Expand Up @@ -485,6 +486,7 @@ def test_model_saver_invenio():
],
"imports": [],
"extra-code": "",
"fields": {},
},
"resource": {
"generate": True,
Expand Down

0 comments on commit 92ce9c4

Please sign in to comment.