Skip to main content

No project description provided

Project description

OARepo model builder requests

Plugin for oarepo-model-builder to allow specifying requests tied to the base model, based on invenio requests.

Requests are requests for an action concerning an instance of the model (called topic in this context), for example to publish the topic.

The requests are specified as request types (each type has its own class). Each request type has pre-specified actions from the invenio framework. The plugin allows to customize the accept action.

By default, along with changing the request status, the generated accept action fetches the associated record. It's up to the developer to decide what to do with it further.

Requests can be added to the model through "requests" section in the yaml file of the model. There can be any number of them. Options in the yaml:

  • module Module in which the request is stored. The type and action modules are derived from it but can override the default.

  • type Settings for the type class of the request. Used if the user wants to use a custom request type class.

    • module
    • class
    • bases
    • imports
    • generate True by defualt, False is typically used when user provides custom Type class.
    • parent-actions Request type class specifies actions that can be performed by the request. By default the class imports its parent's possible actions, but this behavior can be customized if the parent class has different structure for some reason.
  • actions A list of customized actions by this type of request. Only the accept action is supported for now.

    • module

    • class Analogous to type class for the action. By default it's invenio_requests.customizations.AcceptAction.

    • bases

    • imports

    • generate Analogous to type class for the action.

    • bases Analogous to type class bases for the action.

It also allows specifying the topic record resolver used. The resolver is tied to the topic class therefore it's generated on record level instead of the request. Configurable options:

  • module
  • class
  • bases
  • imports
  • generate
  • custom-proxy-class The resolver can use different proxy record resolution class. This is needed for resolving drafts because they don't have registered PIDs.

Examples

For example, the requests plugin can be used for approving a thesis. The accept action can be used for approval. A simple yaml entry at the root level can be used:

requests:
  approve-thesis: {}

This generates all the basic files. The generated action does the predefined changes in the default invenio base class, specifically changes the request status, and provides a template for modifying the associated thesis record (topic). The template fetches the record and saves changes on it. What to do with the thesis during is up to the developer. They have to replace this code with their own implementation.

## todo - do something with the record
# topic["status"] = "accepted"
##

Alternatively, they can define the accept action class on their own and import it instead of generating.

requests:
  approve-thesis:
    class: thesis.requests.ApproveAction
    generate: False

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oarepo_model_builder_requests-4.1.10.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oarepo_model_builder_requests-4.1.10-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

File details

Details for the file oarepo_model_builder_requests-4.1.10.tar.gz.

File metadata

File hashes

Hashes for oarepo_model_builder_requests-4.1.10.tar.gz
Algorithm Hash digest
SHA256 85eda2f9218b383eb4391d47fb1a04adeafa5d10db2d5b3014d2ceaf9b4a4199
MD5 eefd3d32a55bc674424e9a51994fa199
BLAKE2b-256 5de9f5a04705222d35a66393db8d0432799d38e05e06c574d15258f451d4f9af

See more details on using hashes here.

File details

Details for the file oarepo_model_builder_requests-4.1.10-py3-none-any.whl.

File metadata

File hashes

Hashes for oarepo_model_builder_requests-4.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 11c47e3e106bb4f8f31712bfa81e255a0ff94e3f72bdce82d692c12d6b698305
MD5 4e6e11e9fb8dc80ead90e292f48424e0
BLAKE2b-256 d89268f07e37111feb7e0cab8f0e50146c0d081d2c59636aa878ee572d0256d5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page