Giter Club home page Giter Club logo

islandora_workbench's Introduction

Islandora Workbench

A command-line tool that allows creation, updating, and deletion of Islandora content from CSV data. Islandora Workbench is an alternative to using Drupal's built-in Migrate tools for ingesting Islandora content from CSV files. Unlike the Migrate tools, Islandora Workbench can be run anywhere - it does not need to run on the Islandora server. The Migrate tools, however, are much more flexible than Islandora Workbench, and can be extended using plugins in ways that Workbench cannot.

Note that this tool is not related in any way to the Drupal contrib module called Workbench.

Features

  • Allows creation of Islandora nodes and media, updating of nodes, and deletion of nodes and media from CSV files
  • Allows creation of paged/compound content
  • Can run from anywhere - it communicates with Drupal via HTTP interfaces
  • Provides robust data validation functionality
  • Supports a variety of Drupal entity field types (text, integer, term reference, typed relation, geolocation)
  • Can provide a CSV file template based on Drupal content type
  • Can use a Google Sheet or an Excel file instead of a local CSV file as input
  • Allows assignment of Drupal vocabulary terms using term IDs, term names, or term URIs
  • Allows creation of new taxonomy terms from CSV field data
  • Allows the assignment of URL aliases
  • Allows adding alt text to images
  • Cross platform (written in Python, tested on Linux, Mac, and Windows)
  • Well tested
  • Well documented
  • Provides both sensible default configuration values and rich configuation options for power users
  • A companion project under development, Islandora Workbench Desktop, will add a graphical user interface that enables users not familiar or comfortable with the command line to use Workbench.

Documentation

Complete documentation is available.

Current maintainer

Mark Jordan

Contributing

Bug reports, improvements, feature requests, and PRs welcome. Before you open a pull request, please open an issue.

If you open a PR, please check your code with pycodestyle:

pycodestyle --show-source --show-pep8 --ignore=E402,W504 --max-line-length=200 .

Also provide tests where applicable. Tests in Workbench fall into two categories:

  • Unit tests (that do not require Islandora) which are all in tests/unit_tests.py and can be run with python3 tests/unit_tests.py
    • Unit tests on Workbench's Drupal fields handlers (these also does not require Islandora) are in tests/field_tests.py and can be run with python3 tests/field_tests.py
  • Integration tests that require a live Islandora instance running at http://localhost:8000, which are all in tests/islandora_tests.py and can be run with python3 tests/islandora_tests.py
    • The Islandora Playbook is recommended way to deploy the Islandora used in these tests. Note that if an Islandora integration test fails, nodes and taxonomy terms created by the test before it fails may not be removed from Islandora.
    • Some integration and field tests output text that beings with "Error:." This is normal, it's the text that Workbench outputs when it finds something wrong (which is probably what the test is testing). Successful test (whether they test for success or failure) runs will exit with "OK". If you can figure out how to suppress this output, please visit this issue.
  • If you want to run the tests within a specific class in one of these files, include the class name like this: python3 tests/unit_tests.py TestCompareStings

Contributing to documentation

Contributions to Islandora Workbench's documentation are welcome. If you have a suggestion for improving the documentation, please open an issue on this repository's queue and tag your issue "documentation".

License

License: Unlicense

islandora_workbench's People

Contributors

ajstanley avatar manez avatar mjordan avatar ruebot avatar seth-shaw-unlv avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.