Project

ucb_orgs

0.0
Repository is archived
Low commit activity in last 3 years
A long-lived project that still receives updates
Rails extension that manages UCB org unit data
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
> 5.0

Runtime

~> 3.0
 Project Readme

Important

This repo has been moved to Gitlab. It is now read-only, and may eventually be removed.

UcbOrgs

The ucb_orgs gem is a Rails plugin that provides a model and backing database table for UC Berkeley org units.

Installation

Add this line to your application's Gemfile:

gem 'ucb_orgs'

And then execute:

$ bundle

Or install it yourself as:

$ gem install ucb_orgs

Once you've installed the gem, you'll need to setup the database table and install the org unit data.

To add the migrations to your app, run:

rake ucb_orgs:install

Then run rake db:migrate as usual.

To load the most recent org unit data, run:

rake ucb_orgs:update

Updating

To update your local database with the most recent version of the org chart, run:

rake ucb_orgs:update

This can safely be run as often as needed.

Data Model

Org units are hierarchical, and each OrgUnit record contains the org unit's code, its level in the hierarchy, and the codes of the org units above it.

For example:

Code Name Level Level_2 Level_3 Level_4 Level_5 Level_6
AZRAD Shared Services Research Admin 5 CAMSU VCBAS AZCSS AZRAD

This org unit is at level 5, so the record contains the org units for levels 2, 3, and 4 above.

There is exactly one org unit at level one, UCBKL, which represents the entire campus.

Usage

The org unit model will be available in your code as UcbOrgs::OrgUnit. This is an ordinary ActiveRecord model, so all of the usual methods are available to you.

If you'd like to add or override methods in the model, create org_unit.rb in your models directory and set it up like this:

class OrgUnit < ApplicationRecord
  include UcbOrgs::Concerns::OrgUnit

  # add customized behavior here

end

You can name it anything you like, just make sure you have the include statement shown above.