Skip to content
This repository has been archived by the owner on Jul 24, 2020. It is now read-only.

Add User / Equipment Export #1337

Closed
orenyk opened this issue Oct 28, 2015 · 7 comments
Closed

Add User / Equipment Export #1337

orenyk opened this issue Oct 28, 2015 · 7 comments

Comments

@orenyk
Copy link
Contributor

orenyk commented Oct 28, 2015

Requested by one of our clients, it would be nice if users could export a CSV of their equipment (essentially a "backup" that could be used to restore the equipment and users via the import function). Let's see if we can swing this into v5.5.0.

@orenyk orenyk added this to the 5.5.0 milestone Oct 28, 2015
@esoterik esoterik self-assigned this Oct 31, 2015
@esoterik
Copy link
Collaborator

going to handle this similarly to how we handle importing csvs, but with an export button on the equipment and users index pages instead of a full export view

@esoterik
Copy link
Collaborator

trying to figure out the best way to export equipment data, because that essentially means three CSV files--rubyzip might be a good option?

@esoterik
Copy link
Collaborator

also, a test that I wrote for this is currently failing, and I'm not really sure why (this one)

@orenyk
Copy link
Contributor Author

orenyk commented Nov 1, 2015

We could just have a separate export button for each of the resources - categories, equipment models, and equipment items. This is kinda tied into #899 as well, it would be great if this feature was written in a modular way for each controller so that it's as DRY as possible.

I'll look into the test later when I'm in Linux and can test it out.

@orenyk
Copy link
Contributor Author

orenyk commented Nov 1, 2015

Ok, after looking into this I'm not sure why the RSpec docs say you can pass an array into the include matcher, but [:a, :b, :c].include?([:a, :b]) returns false, even though [:a, :b, :c].include?(:a) and [:a, :b, :c].include?(:b) both return true. According to this SO thread a better way to check this would be:

expect(FactoryGirl.attributes_for(model).keys - csv.first.split(',').map(&:to_sym)).to be_empty

This isn't quite working, there are some differences between the parameters we require for CSV import of users and the attributes in FactoryGirl (e.g. password), so we'll have to tweak these specs to work, but that's at least going to test for what you want. Hope that helps!

esoterik pushed a commit that referenced this issue Nov 3, 2015
Resolves #1337
 - adds the module CsvExport to handle exporting CSV files
 - also supports exporting multiple CSVs at once in a zip file
esoterik pushed a commit that referenced this issue Nov 3, 2015
Resolves #1337
 - adds the module CsvExport to handle exporting CSV files
 - also supports exporting multiple CSVs at once in a zip file
esoterik pushed a commit that referenced this issue Nov 3, 2015
Resolves #1337
 - adds the module CsvExport to handle exporting CSV files
 - also supports exporting multiple CSVs at once in a zip file
@orenyk orenyk modified the milestones: 5.5.0, 6.0.0 Nov 23, 2015
esoterik pushed a commit that referenced this issue Jan 31, 2016
Resolves #1337
 - adds the module CsvExport to handle exporting CSV files
 - also supports exporting multiple CSVs at once in a zip file
esoterik pushed a commit that referenced this issue Jan 31, 2016
Resolves #1337
 - adds the module CsvExport to handle exporting CSV files
 - also supports exporting multiple CSVs at once in a zip file
esoterik pushed a commit that referenced this issue Feb 5, 2016
Resolves #1337
 - adds the module CsvExport to handle exporting CSV files
 - also supports exporting multiple CSVs at once in a zip file
esoterik pushed a commit that referenced this issue Feb 11, 2016
Resolves #1337
 - adds the module CsvExport to handle exporting CSV files
 - also supports exporting multiple CSVs at once in a zip file
esoterik pushed a commit that referenced this issue Feb 11, 2016
Resolves #1337
 - adds the module CsvExport to handle exporting CSV files
 - also supports exporting multiple CSVs at once in a zip file
@orenyk orenyk mentioned this issue Feb 12, 2016
esoterik pushed a commit that referenced this issue Apr 18, 2016
  Include CsvExport in all relevant controllers
@zeffman
Copy link
Contributor

zeffman commented Apr 18, 2016

Minor issue, it might be helpful if there were the export button on the individual category pages (i.e. /categories/n). I could imagine somebody wanting it and can't see it hurting.

@orenyk
Copy link
Contributor Author

orenyk commented Apr 19, 2016

@esoterik can we add this to #1545?

esoterik pushed a commit that referenced this issue Apr 22, 2016
Resolves #1499
  - Include CsvExport in all relevant controllers
  - Add single category export
esoterik pushed a commit that referenced this issue Apr 22, 2016
Resolves #1499
  - Include CsvExport in all relevant controllers
  - Add single category export
esoterik pushed a commit that referenced this issue Apr 28, 2016
Resolves #1499
  - Include CsvExport in all relevant controllers
  - Add single category export
orenyk added a commit that referenced this issue May 3, 2016
zeffman pushed a commit that referenced this issue Sep 18, 2016
Resolves #1360
- Add Calendarable controller concern to generate HTML, JSON, and
  iCalendar representations of all the reservations for a given
  resource
- Add calendarable routing concern and clean up config/routes.rb
- Add Reservation#end_date to find the last day for a reservation,
  status-dependent (with model specs)
- Add the associated controller specs as a shared example as well
  as feature specs for equipment models
- Add calendars for categories, equipment models, equipment items,
  and users
- Fix routing issue with jQuery-UI-Bootstrap assets

Add updated schema for Rails 4.2

Resolves #1517
- schema now has field limits, see issue for details

Clarify availability error messages

Closes #1242
   - change app/models/cart_validations.rb to tell
     maximum number of available items, pluralizing properly

Fix UI issues

Closes #1492
  - Change big-numbers mixin so font does not overflow table
  - Adjust equipment_model show table columns to align better
  - Add table_woo to CSS formatting to center rows vertically

Resolve issues with contact form

Resolves #1524
- add AppConfig.contact_email to correctly default to admin e-mail when
  no contact e-mail is set
- add validations for AppConfig.contact_link_location to ensure it is a
  valid e-mail if it's not blank
- update seed and application setup script to assign valid e-mails to
  contact_link_location by default, as well as update factories
- add specs

Add optional archival deactivation of equipment

Resolves #1384
- add autodeactivate_on_archive parameter to AppConfig
- move equipment item deactivation to a model method
- tweak ReservationsController#archive method to implement
  auto-deactivation
- add feature specs for reservation archiving
- add model specs for EquipmentItem#deactivate
- add controller specs for ReservationsController#archive with
  auto-deactivation
- FeatureHelpers#app_setup now deletes any pre-existing AppConfigs

Prevents duplicate items in search results

Resolves #933
- Flattens search results array before applying uniq
- Wrote test to check for duplicate results

Fix / replace availability calendar

Resolves #1498
- add FullCalendar-based availability calendar
- move availability calculations to private controller method
- add controller specs for availability
- remove legacy calendar code

Fix whenever / Capistrano integration

Resolves #1373
- use built-in whenever tasks

Fix view alignment of dates in reservation show

closes #1532
- minor edit in reservations show.html to remove wrapper around h4 headings
- p tag used to cause alignment problem

Remove Rails dependency from whenever.rb

Resolves #1542
- whoops

Fix rubocop error

Introduced in #1542, whoops again!

Request text is now shown after invalid cart edit

Resolves #1544
- moves request text assignment code to ReservationsHelper
- manually include ReservationsHelper in CatalogController

Update CHANGELOG for v6.0.0

Resolves #1362
- include changes in the v5.5.x releases

Update Travis status image in README

This was previously reflecting the status of the build from the most recently
pushed commit / PR, which is often red. To accurately reflect the health of the
project the status image will now only refer to builds from `master`.

Change default Heroku e-mail addon to Sendgrid

Resolves #1515
- update `devise_cas_authenticatable` to v1.7.1 to resolve logger issue

Clean up #1337
Resolves #1499
  - Include CsvExport in all relevant controllers
  - Add single category export

Overhaul availability

Resolves #1501
  - Availability methods all work as expected
  - Adds counter cache on equipment models for current overdue reservations
  - Reservation factory trait :past allows for creation of past
    reservations without skipping validations
  - New reservation model methods for counting reservations, attribute
    checking, and checking for overlapping

Seed script no longer generates reservations with impossible dates

Resolves #1229 and #1263
 - Seed script uses TimeHelpers to save reservations in the past,
   allowing validations to be run on them

Fix ElementNotFound feature test intermittent failure

Resolves #1514
  - Only create a second equipment model and item when necessary in
    feature specs
  - Replace nearly all AppConfig creations in tests with a mocked
    AppConfig
  - Get rid of most before(:all) callbacks
  - Minor refactor of a reservations controller spec

Update dependencies (May 2016)

Resolves #1553
- Highlights:
  - Update Ruby to 2.2.5
  - Update Devise to v4.1
  - Update Capybara to v2.7
- Email validators are now more permissive due to Devise update
- Capybara matchers no longer return hidden inputs by default
- Several new rubocop cops were implemented and dealt with

Update CHANGELOG for v6.1.0

Resolves #1548

Fix intermittent asset failure in specs

Resolves #1528
  - Mock relative root in application helper specs

Configure Hound CI

Resolves #1577

Add option for requests to block equipment availability

Resolves #1521

Refactor EquipmentModel Model spec

Resolves #1600

Add ESlint to Travis; only style check the diff

Resolves #1581
  - Adds 'rake check_style'
  - Fixes rubocop's TargetRubyVersion
  - Removes HoundCI config

Refactor EquipmentModels controller spec

Resolves #1587
 - Adds Mocker classes
 - Adds shared controller examples for successful and failed requests

Refactor periodic rake tasks to ActiveJobs

Resolves #1275
  - Add buttons to manually run periodic tasks
  - Moves all periodic tasks from rake to ActiveJob
  - Heavy refactoring of former rake tasks and their specs

Update ruby version in readme

Updated ruby version in readme (literally changed one character)

Refactor Reservation Model spec

Resolves #1554

Refactor EquipmentItems Controller spec

Resolves #1588

Refactor Reservations Controller Spec

Resolves #1586
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants