Giter Site home page Giter Site logo

yalestc / reservations Goto Github PK

View Code? Open in Web Editor NEW
141.0 141.0 58.0 50.1 MB

Manage equipment loans & reservations. Who can borrow what, for how long?

Home Page: yalestc.github.io/reservations

License: MIT License

Ruby 78.35% CSS 3.59% JavaScript 1.96% HTML 16.03% Shell 0.07%

reservations's People

Contributors

aaron-effron avatar adambray avatar ahsan0160 avatar alanliu96 avatar alex-kogan avatar austinczarnecki avatar caseywatts avatar connormcl avatar coollog avatar daniel-leibovic avatar dgoerger avatar djerek avatar dokurnon avatar ebmaher avatar hshyk avatar jamesluo avatar joshk avatar kwabboateng avatar maltyeva avatar mnquintana avatar ncmaas avatar noreaster avatar orenyk avatar rofreg avatar shippy avatar squidgetx avatar typetrochko avatar zeffman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

reservations's Issues

Mass Add Feature

I'd like to be able to add batches of people (i.e. new STs/new BMTs). Ideally, it would be something where I could pull things from our spreadsheets/databases and enter everyone on a separate line with some sort of ability to enter affiliation and phone number as well (every bit of data separated by a "|" or an asterisk, etc.). Should only be able to add one kind of role at a time; when the mass add is taking place, they will all be normal, admins, or checkout person, or banned.

Show Returned Reservations Feature not Working

Hi Adam (and Co.),

The Show Returned Reservations feature is not working the School of Art Equipment Catalog site. We receive a message stating "something went wrong" whenever we try to show returned reservations in the reservations list. Any thoughts?

Best,
Johannes DeYoung

Adding serial # at object creation

I go in to enter a new object name and serial, but then only the name has stuck and the serial # field is empty. I can then edit the object to add the serial.

Setting for default catalog dates

Right now, the start and end default to the current day.

We should allow admins to configure how many days in the future the default end day is.

Cannot delete reservation

When I try to delete a reservation, I am taken to the view page. The URL that the link points to is simply reservations/1, rather than reservations/1/delete, so it's probably just an incorrect URL somewhere.

Add ability to create a new user during reservation creation

When creating reservations, admins (and checkout persons) should have the ability to make the reservation for a new user. At that point, they should be prompted to fill in the necessary details, and a user should be created and the reservation associated with that user

Pluralization of categories

It seems that as long as the word ends in an "s" the term is considered a plural, and when you view the category, the singular is displayed. For example, I created the category "virus" and all the objects show up as "Viru". I'm not sure if this will affect any items we ever check out, but it does happen.

(Side note: The software just pluralizes virus completely wrong. It interprets virus as the plural of viru, but then later offer the option to "display all viri" - the appropriate plural is viruses)

Request: Blackout Dates

It would be nice to have black out dates, for when buildings/programs are closed. E.g. summer Sundays at Bass or MLKJr
Day.

Varying Permissions

permission that can be checked off in the user's profile to note that they can reserve/checkout items that they have received training for, previously. If permission is set to null, then they should not be able to reserve the item and should receive a message with directions on who to contact for training. A link to an email address/contact info page on another website would be helpful.

PS: DMCA wants this as well

Default Values - Dates default badly

A lot of our signouts are having date problems, and I think it has to do with the defaults in the date fields for new reservations.

If you do not remember to adjust the dates and then click Update Dates it can stay on the default, which is usually a reservation from Today to Today. Thus a lot of our students are 'Late' even though the understanding was that the items would be out for a week.

Could it change to be Today to Tomorrow, or Today to Next Week? Or check if it is a one-day and throw a warning?

We've had a lot of confusion.

Why can't we make the reservation for a student?

Casey Watts suggested I put this in the bugs as a "thing we should fix sometime," though it's not a bug exactly. Can we make it so that STs (or coords at least) can make loaner reservations for students without the student there, to facilitate loaner laptop reservation and checkout? It would be so much nicer. :)

Error if you create a Equipment Model without selecting a category

While creating an Equipment Model, I put in all the required fields (name, description, late fee, and replacement fee) except I did not select a Category.

Ran into the following error, which also shows up now every time I click on Equipment Models (so I can no longer create new ones or edit the old ones):


NoMethodError in Equipment_models#index

Showing /home/gloria/code/reservations/app/views/equipment_models/index.html.erb where line #11 raised:

undefined method `name' for nil:NilClass

Extracted source (around line #11):

8: <% for equipment_model in @equipment_models %>
9:
10: <%= link_to equipment_model.name, equipment_model %>
11: <%= ("" + (link_to equipment_model.category.name.singularize, equipment_model.category) + "").html_safe unless @category %>
12: <% if current_user.is_admin? %>
13: <%= link_to "Edit", edit_equipment_model_path(equipment_model) %>
14: <%= link_to "Destroy", equipment_model, :confirm => 'Are you sure?', :method => :delete %>

Information to display

Data that should be captured and displayed (at least on the admin level):
What kit color/# someone checked out
who made the reservation (BMT, erin/adam/ITG/CLC, student)
Timestamps for: when reservation was made, when it was checked out/in.

Error Reporting - Date out of range

When I try to update dates on a reservation and I choose illegal dates (like February 30th) it gives the

"We're sorry, but something went wrong.
We've been notified about this issue and we'll take a look at it shortly."

error, instead of something more helpful. Any chance we can fix that?

If it could say something like "Invalid date range" instead of just the generic error message, THAT would be immensely helpful.

User information page

Patrons of Reservations can see everything that they've reserved/checked out, have reserved but not checked out, have currently, have made future reservations for, and checkouts that have been returned late. An option to enter in how much they've owed/paid in late fees would be handy as well. I'm assuming that the late fees and their statuses would have to be something that's entered manually, but I'm OK with doing that, since I'll be sending reports to be billed every two weeks, anyways.

Dynamic Form deprecation warning.

Displayed across pages that use Dynamic Form. Fortunately, running the exact command line indicated by the deprecation message fixes this

Extend Reservations

We often have students that realize they need equipment for one or two more days.

Right now it seems that the proper response is to check the items in, create a new reservation, then check the items back out.

Would it be possible to add an extension feature? We could default to one day, allow up to one week, to make a reservation due later if there are no conflicts.

Dynamic Form deprecation warning.

Displayed across pages that use Dynamic Form. Fortunately, running the exact command line indicated by the deprecation message fixes this

Cannot logout

Trying to logout yields:

NameError in ApplicationController#logout
uninitialized constant CASClient::Frameworks

Non-CAS authentication

2014-09-28

For now, we're going to implement Devise authentication with the devise_cas_authenticatable gem for CAS. We will also try to write up example migrations and instructions for alternative Devise authentication schemes.

To Do:

  • Add devise gemlater
  • Add devise_cas_authenticatable gem
  • Set up devise authentication before_filters instead of old RubyCAS filters
  • Write migration to change login column name to username (delete current migration)
  • Replace all uses of login for ActiveRecord lookups with username
  • Remove custom current_user method in lieu of built-in Devise method

2014-10-12

Most / all of the above was completed today and almost all of the current test suite is passing. My thoughts are outlined in the comment below; I'll try to turn them into a proper to-do list soon.

2014-10-13

All tests now pass. I tried getting database_authenticatable working and it was messy, but I think providing example code at least for that case is important. If I'm strugging to get this working, so will future clients. I'd like to see if we can do the following:

  • remove all CAS workflow dependencies make sure both authentication methods work
    • redirect hackery
    • user new hackery
    • any other hackery :-P
  • get database_authenticatable working, using our current user resource
    • add required parameters to strong params (commented out by default)
    • make sure edit and update work
    • set up proper Devise configuration in devise.rb, with options for both username or email login
    • set up required database migrations (with .example file extension so they don't run by default)
    • COMMENT ALL THE THINGS
  • write tests for authentication (I'm not sure where these go... maybe just in the controller specs, one context per controller?)
  • think about implementing other devise modules
    • recoverable
    • trackable
  • clean up devise.rb with only required / related options and comment where necessary
  • document the procedure for enabling database_authenticatable either in the README or wiki or both
  • look into making database_authenticatable the default and switching to CAS using the deploy script / variable (related to #683)

2014-10-19

  • look into implementing email LDAP lookup for database authenticatable

2014-10-25

  • manually test :recoverable
    • look at generated devise views to figure out how to set up the UI elements
  • write integration tests for sign up (using password authentication)
  • write integration tests for resetting password (obviously using password authentication)
  • go through devise.rb again and take out settings that shouldn't be changed :-)
  • document the process for enabling CAS authentication in the README
  • document our authentication workflow in the wiki
  • look into using LDAP lookup via e-mail for password authentication

Metrics/stats viewable in application

How many people helped per day/month/year/etc.
How many people a specific person helped.
How much was each item used?
How many times did a particular user check out items?
frequency of problems reported on a per item basis

Hide 'missed' reservations from list

If a reservation's end date has passed, and it hasn't been picked up, it should be hidden and only shown with the 'returned' reservations list, or on a separate list.

If we do the former, we should rename the 'returned reservations' list to reflect this.

Terms of Agreement

We will be requiring everyone to sign a Terms of Agreement at the start of Fall 2011. The simplest way to implement this would be to have it pop up when someone creates an account, and they have to click through the agreements.
It would also need to retroactively pop up on all OLD accounts, so that everyone has digitally signed the agreement.
There would also need to be a way to easily update the ToA from within the application, so that if/when we make changes to it, everyone has to sign it again.
Example: iTunes. Everytime they update iTunes, you have to agree to the new EULA. It only bothers you once, until they make changes on their end again.

Text field during checkin/out, emails contents

I'd like a comments/notes text field added, so that things that are wrong/weird/suspicious can be noted during check-in or check-out, the BMT can note it in the reservation and we'll have a record of it. I'd also like those comments emailed to me/a mailman list.

Smart Date Fields

Students have asked for a "smart" drop down that does not include invalid dates (i.e. if Month of Feb is selected, you cannot select 30 from the date dropdown). Not sure if it's worth the programming work.

Add validation for nickname

Currently, if you put in anything in nickname, it will use that instead of the first name.
This includes if you set nickname to " " (or any sort of whitespace) or punctuation or anything. Might want to add some validation to make sure the name is not just whitespace, at least.

Users page displays incorrectly for Administrators

The option to "edit" and "destroy" which are currently appended to the right-hand side of the table make the table extend to be on top of the "cart" infobox for administrators when viewing the Users page.

Float the Reservations box

Reservations box to float in the middle of the page (still on the far right) as people scroll up and down through the inventory. The idea is that the patrons should be able to see what is in their cart at all times, instead of scrolling to the bottom every time they need to check what's actually in their cart.

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.