-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #249 from oarepo/krist/be-217-add-links-to-request…
…s-on-main-record Krist/be 217 add links to requests on main record
- Loading branch information
Showing
20 changed files
with
531 additions
and
201 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -94,4 +94,5 @@ vocabulary-postprocessed-schema.json | |
complex-model | ||
.venv* | ||
|
||
.token | ||
.token | ||
thesis/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
85 changes: 85 additions & 0 deletions
85
oarepo_model_builder/datatypes/components/model/record_item.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
import marshmallow as ma | ||
|
||
from oarepo_model_builder.datatypes import DataTypeComponent, ModelDataType | ||
from oarepo_model_builder.utils.python_name import ( | ||
convert_config_to_qualified_name, | ||
package_name, | ||
) | ||
from oarepo_model_builder.validation.utils import ImportSchema | ||
|
||
from .service import ServiceModelComponent | ||
from .utils import set_default | ||
|
||
|
||
class RecordItemClassSchema(ma.Schema): | ||
class Meta: | ||
unknown = ma.RAISE | ||
|
||
generate = ma.fields.Bool(metadata={"doc": "Generate the record item class"}) | ||
class_ = ma.fields.Str( | ||
attribute="class", | ||
data_key="class", | ||
metadata={"doc": "Qualified name of the record item class"}, | ||
) | ||
base_classes = ma.fields.List( | ||
ma.fields.Str(), | ||
attribute="base-classes", | ||
data_key="base-classes", | ||
metadata={"doc": "List of base classes"}, | ||
) | ||
extra_code = ma.fields.Str( | ||
attribute="extra-code", | ||
data_key="extra-code", | ||
metadata={"doc": "Extra code to be put below the record item class"}, | ||
) | ||
components = ma.fields.List( | ||
ma.fields.String(), metadata={"doc": "List of record item components"} | ||
) | ||
module = ma.fields.String(metadata={"doc": "Class module"}) | ||
imports = ma.fields.List( | ||
ma.fields.Nested(ImportSchema), metadata={"doc": "List of python imports"} | ||
) | ||
skip = ma.fields.Boolean() | ||
|
||
|
||
class RecordItemModelComponent(DataTypeComponent): | ||
eligible_datatypes = [ModelDataType] | ||
depends_on = [ServiceModelComponent] | ||
|
||
class ModelSchema(ma.Schema): | ||
record_item = ma.fields.Nested( | ||
RecordItemClassSchema, | ||
attribute="record-item", | ||
data_key="record-item", | ||
metadata={"doc": "Record item class settings"}, | ||
) | ||
|
||
def before_model_prepare(self, datatype, *, context, **kwargs): | ||
record_prefix = datatype.definition["module"]["prefix"] | ||
|
||
service_package = package_name(datatype.definition["service-config"]["module"]) | ||
|
||
record_item_config = set_default(datatype, "record-item", {}) | ||
|
||
record_item_config.setdefault("generate", True) | ||
record_item_module = record_item_config.setdefault( | ||
"module", | ||
f"{service_package}.results", | ||
) | ||
record_item_config.setdefault( | ||
"class", | ||
f"{record_item_module}.{record_prefix}RecordItem", | ||
) | ||
record_item_config.setdefault("extra-code", "") | ||
record_item_config.setdefault( | ||
"base-classes", | ||
[ | ||
"oarepo_runtime.services.results.RecordItem", | ||
], | ||
) | ||
record_item_config.setdefault("components", []) | ||
record_item_config.setdefault( | ||
"imports", | ||
[], | ||
) | ||
convert_config_to_qualified_name(record_item_config) |
87 changes: 87 additions & 0 deletions
87
oarepo_model_builder/datatypes/components/model/record_list.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
import marshmallow as ma | ||
|
||
from oarepo_model_builder.datatypes import DataTypeComponent, ModelDataType | ||
from oarepo_model_builder.utils.python_name import ( | ||
convert_config_to_qualified_name, | ||
package_name, | ||
) | ||
from oarepo_model_builder.validation.utils import ImportSchema | ||
|
||
from .app import AppModelComponent | ||
from .defaults import DefaultsModelComponent | ||
from .service import ServiceModelComponent | ||
from .utils import set_default | ||
|
||
|
||
class RecordListClassSchema(ma.Schema): | ||
class Meta: | ||
unknown = ma.RAISE | ||
|
||
generate = ma.fields.Bool(metadata={"doc": "Generate the record list class"}) | ||
class_ = ma.fields.Str( | ||
attribute="class", | ||
data_key="class", | ||
metadata={"doc": "Qualified name of the record list class"}, | ||
) | ||
base_classes = ma.fields.List( | ||
ma.fields.Str(), | ||
attribute="base-classes", | ||
data_key="base-classes", | ||
metadata={"doc": "List of base classes"}, | ||
) | ||
extra_code = ma.fields.Str( | ||
attribute="extra-code", | ||
data_key="extra-code", | ||
metadata={"doc": "Extra code to be put below the record list class"}, | ||
) | ||
components = ma.fields.List( | ||
ma.fields.String(), metadata={"doc": "List of record list components"} | ||
) | ||
module = ma.fields.String(metadata={"doc": "Class module"}) | ||
imports = ma.fields.List( | ||
ma.fields.Nested(ImportSchema), metadata={"doc": "List of python imports"} | ||
) | ||
skip = ma.fields.Boolean() | ||
|
||
|
||
class RecordListModelComponent(DataTypeComponent): | ||
eligible_datatypes = [ModelDataType] | ||
depends_on = [DefaultsModelComponent, AppModelComponent, ServiceModelComponent] | ||
|
||
class ModelSchema(ma.Schema): | ||
record_list = ma.fields.Nested( | ||
RecordListClassSchema, | ||
attribute="record-list", | ||
data_key="record-list", | ||
metadata={"doc": "Record list class settings"}, | ||
) | ||
|
||
def before_model_prepare(self, datatype, *, context, **kwargs): | ||
record_prefix = datatype.definition["module"]["prefix"] | ||
|
||
service_package = package_name(datatype.definition["service-config"]["module"]) | ||
|
||
record_list_config = set_default(datatype, "record-list", {}) | ||
|
||
record_list_config.setdefault("generate", True) | ||
record_list_module = record_list_config.setdefault( | ||
"module", | ||
f"{service_package}.results", | ||
) | ||
record_list_config.setdefault( | ||
"class", | ||
f"{record_list_module}.{record_prefix}RecordList", | ||
) | ||
record_list_config.setdefault("extra-code", "") | ||
record_list_config.setdefault( | ||
"base-classes", | ||
[ | ||
"oarepo_runtime.services.results.RecordList", | ||
], | ||
) | ||
record_list_config.setdefault("components", []) | ||
record_list_config.setdefault( | ||
"imports", | ||
[], | ||
) | ||
convert_config_to_qualified_name(record_list_config) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
from .invenio_base import InvenioBaseClassPythonBuilder | ||
|
||
|
||
class InvenioRecordItemBuilder(InvenioBaseClassPythonBuilder): | ||
TYPE = "invenio_record_item" | ||
section = "record-item" | ||
template = "record-item" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
from .invenio_base import InvenioBaseClassPythonBuilder | ||
|
||
|
||
class InvenioRecordListBuilder(InvenioBaseClassPythonBuilder): | ||
TYPE = "invenio_record_list" | ||
section = "record-list" | ||
template = "record-list" |
10 changes: 10 additions & 0 deletions
10
oarepo_model_builder/invenio/templates/record_item.py.jinja2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{{ vars.record_item|imports }} | ||
{% for c in vars.record_item.components %} | ||
{{ c|code_imports }} | ||
{% endfor %} | ||
|
||
class {{ vars.record_item|class_header }}: | ||
"""{{ vars.record.class|base_name }} record item.""" | ||
components = [ {% for b in vars.record_item.base_classes %}*{{ b|base_name }}.components{% if not loop.last %}, {% endif %}{% endfor %}{% for c in vars.record_item.components %}, {{ c|extra_code }} {% endfor %}] | ||
|
||
{{ vars.record_item|extra_code }} |
10 changes: 10 additions & 0 deletions
10
oarepo_model_builder/invenio/templates/record_list.py.jinja2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{{ vars.record_list|imports }} | ||
{% for c in vars.record_list.components %} | ||
{{ c|code_imports }} | ||
{% endfor %} | ||
|
||
class {{ vars.record_list|class_header }}: | ||
"""{{ vars.record.class|base_name }} record list.""" | ||
components = [ {% for b in vars.record_list.base_classes %}*{{ b|base_name }}.components{% if not loop.last %}, {% endif %}{% endfor %}{% for c in vars.record_list.components %}, {{ c|extra_code }} {% endfor %}] | ||
|
||
{{ vars.record_list|extra_code }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
[metadata] | ||
name = oarepo-model-builder | ||
version = 4.0.71 | ||
version = 4.0.72 | ||
description = A utility library that generates OARepo required data model files from a JSON specification file | ||
authors = Miroslav Bauer <[email protected]>, Miroslav Simek <[email protected]> | ||
readme = README.md | ||
|
@@ -160,6 +160,8 @@ oarepo_model_builder.builders.record = | |
1050-invenio_version = oarepo_model_builder.invenio.invenio_version:InvenioVersionBuilder | ||
2000-model_saver = oarepo_model_builder.builders.model_saver:ModelSaverBuilder | ||
2010-model_registration = oarepo_model_builder.builders.model_saver:ModelRegistrationBuilder | ||
2020-invenio_record_item = oarepo_model_builder.invenio.invenio_record_item:InvenioRecordItemBuilder | ||
2030-invenio_record_list = oarepo_model_builder.invenio.invenio_record_list:InvenioRecordListBuilder | ||
|
||
#### | ||
#### Extended schema profile | ||
|
Oops, something went wrong.