Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft: Yet another Implementation of an organization unit tree #383

Conversation

floriangantner
Copy link

@floriangantner floriangantner commented Sep 6, 2023

References

Add references/links to any related issues or PRs. These may include:

Description

Short summary of changes (1-2 sentences).

**In honour to our universities tradition to create special tree's fulfilling our stakeholder requirements (see #119) we provide this draft of our tree. **

Instructions for Reviewers

List of changes in this PR:

  • new Restendpoint(s). The endpoint can be enabled/disabled using the orgunittree.endabled configuration property. The Controller offers endoints to 1. get the root tree nodes and 2. some endpoint to get the tree node by uuid. 3. Some administrative restricted endpoint allow the administrator to recreate the tree.
  • Several Models and Converters for showing the OrgUnitTree
  • Service which creates the tree, calculates the metrics and hold the tree structure in-memory (maybe some poor performance by now)
  • OrgUnitTreeMetrics can be configured for some node by solr-queries and there is the possibility to show aggregated metrics from subordinated nodes.
  • new cris explore section (cris-sections.xml) showing the tree on the cris layout.
  • No Tests provided.

Configuration Settings:

orgunittree.xml -> org.dspace.uniba.orgunittree.OrgunittreeService

Property Type Description
entity String Name of the entityType which are displayed, e.g. OrgUnit. All entities of this type are considered in the tree and fetched from the itemService when constructing the tree.
generalcondition Filter Condition which the node has to fulfill to be part of the tree, e.g. visible by anonymous
rootcondition Filter Condition which the node has to fulfill to be some of the root nodes, e.g. no metadatafield pointing to the upper OrgUnit
verticalrelationfield String Metadatafield which contains the authority information about the parent / upper Orgunit
onlyAnonymous boolean if enabled only anonymous readable results are shown and considered in the metrics
metricsconfiguration List<OrgUnittreeMetricsConfiguration> , List of metrics which are calculated for each node

-> org.dspace.uniba.orgunittree.OrgunittreeMetricsConfiguration

Property Type Description
shortname String unique name of the metrics node. It is may referenced by other OrgunittreeMetrics or in the frontend rendering configuration
query String solrquery containing {0} the uuid of the item, e.g. oairecerif.author.affiliation_authority:{0}. If aggregation is enabled, the name of the subordinated OrgunittreeMetrics has to be specified.
aggregate boolean if enabled this node aggregates values from subordinated nodes and counts them together.

Include guidance for how to test or review your PR. This may include: steps to reproduce a bug, screenshots or description of a new feature, or reasons behind specific changes.

Checklist

This checklist provides a reminder of what we are going to look for when reviewing your PR. You need not complete this checklist prior to creating your PR (draft PRs are always welcome). If you are unsure about an item in the checklist, don't hesitate to ask. We're here to help!

  • My PR is small in size (e.g. less than 1,000 lines of code, not including comments & integration tests). Exceptions may be made if previously agreed upon.
  • My PR passes Checkstyle validation based on the Code Style Guide.
  • My PR includes Javadoc for all new (or modified) public methods and classes. It also includes Javadoc for large or complex private methods.
  • My PR passes all tests and includes new/updated Unit or Integration Tests based on the Code Testing Guide.
  • If my PR includes new libraries/dependencies (in any pom.xml), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.
  • If my PR modifies REST API endpoints, I've opened a separate REST Contract PR related to this change.
  • If my PR includes new configurations, I've provided basic technical documentation in the PR itself.
  • If my PR fixes an issue ticket, I've linked them together.

@floriangantner floriangantner changed the base branch from dspace-cris-7 to main-cris February 20, 2024 15:06
[maven-release-plugin] copy for tag dspace-cris-2023.02.02
@floriangantner
Copy link
Author

Aligned to 2023.02.02 Release

@floriangantner floriangantner changed the base branch from main-cris to dspace-cris-2023_02_x April 15, 2024 10:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

WIP: organization unit tree
1 participant