Releases: rubyforgood/human-essentials
Onebase to rule them all!
✍️ Description
Alright friends... this is a very exciting release! This release includes the foundations necessary to merge the two applications Diaperbase & Partnerbase together. We've wanted this for some time to simplify development greatly.
Note - this is only adds the foundations and isn't fully released to production yet (using a feature flag). Work still needs to be done to transition partners to using this.
Here are some reasons why we are merging the two applications together:
- Managing an API between partner & diaper has been difficult. As a result, features that have been in demand but require changes in both applications do not get completed.
- New volunteers often encounter issues trying to get their development setup which requires two applications to run.
- The overhead of running two separate applications is too high and makes using hosting services like Heroku too costly.
- It is too difficult to manage two separate repositories. We've found that Diaperbase gets prioritized over partnerbase.
How does this work?
The Partnerbase application is being transplanted into the Diaperbase application. This transplanted version uses Rails 6's multiple DB feature to connect with the existing partnerbase database.
What is next?
- We'll need to move over more functionality from partnerbase into diaperbase whilst replacing API calls into service objects that communicate between databases. Issues will be created!
- Migrate the files/documents stored in the partnerbase's VM into a storage service like Azure Blob.
- Recruit partner testers to utilize the new partnerbase application hosted hosted within diaperbase.
- Once it is all done, redirect all old partnerbase traffic to the new application.
✨ What's New?
- You can now access partner data directly via active records in diaperbase. For example, the code below access the
partner
table in the Partnerbase database. We can likely use to avoid having to make a GET request.
2.7.2 :006 > Partners::Partner.last
Partners::Partner Load (1.3ms) SELECT "partners".* FROM "partners" ORDER BY "partners"."id" DESC LIMIT $1 [["LIMIT", 1]]
=> #<Partners::Partner id: 6, diaper_bank_id: 1, executive_director_name: nil, program_contact_name: nil, pick_up_name: nil, application_data: nil, diaper_partner_id: 5, partner_status: "pending", name: nil, distributor_type: nil, agency_type: nil, agency_mission: nil, address1: nil, address2: nil, city: nil, state: nil, zip_code: nil, website: nil, facebook: nil, twitter: nil, founded: nil, form_990: nil, program_name: nil, program_description: nil, program_age: nil, case_management: nil, evidence_based: nil, evidence_based_description: nil, program_client_improvement: nil, diaper_use: nil, other_diaper_use: nil, currently_provide_diapers: nil, turn_away_child_care: nil, program_address1: nil, program_address2: nil, program_city: nil, program_state: nil, program_zip_code: nil, max_serve: nil, incorporate_plan: nil, responsible_staff_position: nil, storage_space: nil, describe_storage_space: nil, trusted_pickup: nil, income_requirement_desc: nil, serve_income_circumstances: nil, income_verification: nil, internal_db: nil, maac: nil, population_black: nil, population_white: nil, population_hispanic: nil, population_asian: nil, population_american_indian: nil, population_island: nil, population_multi_racial: nil, population_other: nil, zips_served: nil, at_fpl_or_below: nil, above_1_2_times_fpl: nil, greater_2_times_fpl: nil, poverty_unknown: nil, ages_served: nil, executive_director_phone: nil, executive_director_email: nil, program_contact_phone: nil, program_contact_mobile: nil, program_contact_email: nil, pick_up_method: nil, pick_up_phone: nil, pick_up_email: nil, distribution_times: nil, new_client_times: nil, more_docs_required: nil, sources_of_funding: nil, sources_of_diapers: nil, diaper_budget: nil, diaper_funding_source: nil, created_at: "2020-03-15 18:46:26", updated_at: "2020-03-15 18:46:26", other_agency_type: nil, status_in_diaper_base: nil>
- You can login as a partnerbase user (see README for login credentials) and make a request. Only available when
Flipper.enabled?(:onebase) == true
🐞 Bug Fixes
N/A
💖 Other Changes
- I've updated Partnerbase to utilize a Azure Postgres instance instead of relying on the VM's postgres
Bug Fixes & Goodies
✍️ Description
We've released a few new extra goodies and some fixes to some bugs!
✨ What's New?
-
Added the total value & quantity to distribution information pages. So that you can get a quick glimpse at the total value + quantity of a package
🐞 Bug Fixes
-
Prevent the issue were destroying a StorageLocation cause a 500 error when viewing the inventory page. This was due to an extraneous InventoryItem that had no StorageLocation
-
Improved clarity of the invitation email we send out to new diaper base organizations. We noticed "Invitation Instructions" from [email protected] was getting lost. Now it says "Your Diaper App Account Approval"
-
Properly show the tabs on the Item Types page. (Thanks Rachel for bringing this up!)
💖 Other Changes
N/A
New Goodies!
✍️ Description
Hey there! We've got another great update for diaperbase that adds some neat new features 😍.
✨ What's New?
- Add filtered by partner option for requests. Now you can filter the list of requests from partners by partner.
- Added the ability to define the Square Footage & Warehouse type of Storage Locations.
🐞 Bug Fixes
- Prevent raising an error in development if an asset isn't precompiled. This causes development to be halted and depend on possibly unimportant assets to be loaded.
💖 Other Changes
- Add warning to the sandbox staging page so that users don't accidentally treat the testing site as production.
Bugfixes & Fullstory
✍️ Description
Some bug fixes and a few monitoring tools to help figure out how users are using diaperbase app
✨ What's New?
- Added fullstory to see how users are using the application
🐞 Bug Fixes
- Prevent failing in the NotifyPartnerJOb
- Prevent failing of spec periodically
- Prevent 500 error caused by trying to fetch on nil
💖 Other Changes
N/A
Bug Squashing
You get kits! And you get gets!
✍️ Description
I'am excited to announce with this 3.0.0 release... users will be able to create Kits!
✨ What's New?
- New Kit Feature See demo here
🐞 Bug Fixes
N/A
💖 Other Changes
N/A
Hotfix request page wasn't loading for some
✍️ Description
Hotfix hotfix!
✨ What's New?
N/A
🐞 Bug Fixes
- Fixed issue where the request page wasn't loading for some users. This was caused because a
item_id
did not match any knownItem
. We added a temporary solution to file them under "Unknown Item", until we figure out a better solution.
💖 Other Changes
N/A
Power Overwhelming -- Lots of new goodies!
✍️ Description
We've got some great news! We worked with an external company that donated their team for a week to help us build out new features. Please review the list of "Whats's New?" to get an overview of what new things there are.
Notably — we have started working on the Kit feature (also known as Bundles or Packs by some). We really hope to get that released soon.
✨ What's New?
-
Enable longer feedback messages. We heard from our users that they would like to be able to add more than 200 characters per feedback.
-
Updated Itemized Distributions on the dashboard to order by the most distributed item and how much is on hand currently. It also highlights the "Total On Hand" if the current total hand is below the minimum quantity specified.
-
Distributions now filterable by status.
- Requests are now exportable.
- Added feature in requests page to calculate and show the total number of items requested within the date specified.
-
Partners will receive emails when their distribution content has been changed. They can see what had changed. Here is a sample:
-
You can now record notes & quotas (request limit) for your Partners. See the "Edit" & "Show" page for a Partner to access this feature. Note the quote or request limit is purely informational and will not block requests that go over the quota.
-
You are now able to upload documents and associate them with your Partners. Access this accessing your partner record and choose to edit them. You should see an option to upload documents.
-
Show the number of items requested in a request and if it is over the quota (request limit) in the requests page.
-
New Landing Page we've revamped the styling significantly. Note — We are transitioning to a new name for the application "Human Essentials" so it might seem a little unusual
-
Added the "Forecasting" feature! You can now graphically visualize forecasts for distributions, donations, and purchases!
🐞 Bug Fixes
- Fix the card title for the Donations page. It had the incorrectly said "Distribution Filters"
💖 Other Changes
- We've integrated brakeman to ensure we aren't accidentally introducing security vulnerabilities.
Hotfix! Partners weren't getting some emails!
✍️ Description
We had some bugsnag reports come up due to a change we've made.
https://app.bugsnag.com/ruby-for-good/diaperbase/errors/5f68c9124490bd0019a5cc03?event_id=5f68c912005df938c2500000&i=sk&m=fx
https://app.bugsnag.com/ruby-for-good/diaperbase/errors/5f68c07c02f57f001713928c?event_id=5f68c3d7005dfa2247330000&i=sk&m=fx
It seemed to be related to
#1835
✨ What's New?
N/A
🐞 Bug Fixes
- Reverted #1835 to stop bugs mentioned above. Will come back to figure out how to fix the issues.
💖 Other Changes
N/A
Onboarding 2.0, Item Visiblity, distinguish distribution as pick-up or delivery, and bug fixes!
✍️ Description
This release contains half of the work (other half is in the previous release; 2.3.0) from Ruby For Good Fall 2020! Many issues that we aimed to address were addressed and are included in this release. Here are some of the highlighted changes
✨ What's New?
- We've implemented a new method for processing requests for new accounts for the diaperbase application. New prospective users can now request an account through our application. This request will than be used by our internal team to process the request in a expedited and speedy fashion.
- Diaperbase users can now specify the mode of delivering the distribution they've created! That is, they can distinguish which distributions should be picked-up or delivered directly to them.
- Diaperbase users can now specify if they want specified inventory items to be visible and requestable by their partners.
- Creating a distribution that causes the on-hand total of an inventory item to drop below the specified minimum will cause an banner to appear notifying the user that they may need to add more inventory.
🐞 Bug Fixes
- The extra line that appears when an error occurs in distribution creation has been removed.
- Prevent distributions from failing because email sending fails synchronously. Instead, queue the email send job and allow the distribution to get created. The email will get sent out eventually by sidekiq's retrying.
💖 Other Changes
- Added
letter_opener
to more easily test emails locally.