Commit graph

1093 commits

Author SHA1 Message Date
Matchu
537a8f0dc7 Remove protected_attributes gem
We cleaned up all the `attr_accessible` calls, hooray! This was blocking us from upgrading to Rails 5, so now we can!
2023-07-29 11:27:23 -07:00
Matchu
d1fbc1b178 Use strong parameters for ClosetHanger 2023-07-29 11:25:25 -07:00
Matchu
a2bd538bb4 Use strong parameters for ClosetList 2023-07-29 11:22:15 -07:00
Matchu
32b1608346 Drop NewsPosts model
We never ended up really using this lol, and it has an attr_accessible I want to be rid of so let's just fully trash it while we're at it!
2023-07-29 11:19:37 -07:00
Matchu
59580ab47b Use strong parameters for User 2023-07-29 11:07:14 -07:00
Matchu
4250e009d7 Use strong parameters for Outfit 2023-07-29 10:52:23 -07:00
Matchu
1ffcb59f4a Auto log in as test user in development mode
I want to test some logged-in stuff, but the whole openneo_id app is a mess to integrate with (and I want to eliminate it down the line anyway), so here's a simple hacky thing that just gets you into a test user for development!
2023-07-29 10:39:07 -07:00
Matchu
39a722600c Use strong parameters for Donation 2023-07-29 10:29:09 -07:00
Matchu
abf08bb7e7 Delete attr_accessible from Campaign
idk what these were even doing here, I never built a UI to edit campaigns?
2023-07-29 10:18:42 -07:00
Matchu
2816ca52dc Fix file reloading in a Vagrant environment
During this upgrade process, `rails server` hasn't been updating its logic when files changed, so every change had to be accompanied by a restart.

This turned out to be because Vagrant's networked filesystem to share between the host and guest systems doesn't support the filesystem update events Rails is listening for. So, we switch to a simpler file watcher that does more work but doesn't depend on the filesystem events!
2023-07-29 10:14:58 -07:00
Matchu
fc84266523 Remove the development_async environment
It's unused, and I'm just double-checking that it's not somehow causing the issues with the rails dev server not reloading classes. (The `threadsafe!` option would do that, but I don't thiiiink this is the env we're running? But I'm wondering if the loader is getting confused by the prefixiness of the name or something. Unlikely!)
2023-07-29 10:05:36 -07:00
Matchu
ca280e55ac Update the cache namespace
This is recommended by the Rails 4.0 upgrade guide:

> The caching method changed between Rails 3.x and 4.0. You should change the cache namespace and roll out with a cold cache.

I noticed too that old cache entries with old character encodings were a real problem, so yeah making sure we're working with a cold cache is smart!!
2023-07-28 15:49:24 -07:00
Matchu
a0de57bed9 Backfill globalize's find_by_name method
This method was removed in globalize 4, which we upgraded to for compatibility with Rails 4! Let's add back in a similar thing for now!
2023-07-28 15:33:46 -07:00
Matchu
24511e5cfe Oops, fix item search crash in wardrobe
Oh right, these aren't the weird item proxy thing anymore, stop calling these methods!
2023-07-28 15:16:06 -07:00
Matchu
4b891b1a91 Improve zones.json performance
Idk I'm working on a mobile hotspot rn and not including the translations was making this slow, hey may as well fix while we're here right? lol
2023-07-28 15:08:54 -07:00
Matchu
ca6a573c0a Add user:owns/wants back to item search
Not so bad, using a condition on `has_many` `through` was a cute trick!!
2023-07-28 15:06:33 -07:00
Matchu
070599e2ca Add fits and not_fits back to item search
Some fun stuff here to figure out how to API this out well, but I'm pretty pleased with where it ended up!
2023-07-28 14:45:10 -07:00
Matchu
4ac1304c74 Improve not_occupied solution
Not being a subquery is better! I realized later that a LEFT JOIN would probably do it even betterer? with like `HAVING count(x) = 0`? but the `left_outer_joins` method doesn't seem to be in Rails 4, and I don't want to do stringy joins, so this is fine for now!
2023-07-28 14:10:13 -07:00
Matchu
ab015db461 Oops, fix not_occupies logic error
Right, previously we were querying "has *at least one asset* that is not in zone X" instead of "has NO assets that are in zone X".

I don't know a fast way to query for that, this will have to do for now!
2023-07-26 13:18:19 -07:00
Matchu
5c119abcd8 Add restricts filter back to item search 2023-07-26 12:41:37 -07:00
Matchu
db9e3dfb53 Add occupies filter back to item search
Mostly adapting what was already there!
2023-07-26 12:28:25 -07:00
Matchu
da508ab33a Use arel for item translation joins
Just a bit defensive so we aren't setting up the possibility of an ambiguous query someday!
2023-07-26 11:58:05 -07:00
Matchu
d12b21896c Add is:pb back to item search 2023-07-26 11:51:52 -07:00
Matchu
4d722dd5c5 Simplify filter API a bit
Not doing the tricks with `is_positive` anymore, instead just calling different functions altogether at the call site.

Also, instead of classes, I feel like this is a lot more concise to just write as class methods that create certain instances of a trivial `Filter` data class. Without the tricks of `is_positive` in play, the value of classes goes way down imo.
2023-07-26 11:47:00 -07:00
Matchu
2ac806333d Move Item name search logic to model scope 2023-07-26 11:15:35 -07:00
Matchu
c04bab55d0 Improve is:X failure message 2023-07-26 11:06:36 -07:00
Matchu
20bedf8f59 Start building new item search
Just name field right now, more to come! A lot deleted lol
2023-07-22 19:01:40 -07:00
Matchu
7641d2325a Delete .sass-cache
Uhh idk how long that's been there or if it's doing anything or if checking it in even makes sense
2023-07-22 16:34:20 -07:00
Matchu
f997513e87 Update to new scope syntax
Ohh ok, without this change all of our `scope`s were just immediately evaluating the argument and fetching _all_ such matching records immediately, instead of waiting to actually be called. This led to bugs like `pet_type.as_json` returning ALL pet states in the whole db, because the `PetState.emotion_order` scope was being treated as a single predefined query, rather than a query fragment to merge into the current context.

This also explains what happened in 724ed83: that's why things before the scope in the query were being ignored.
2023-07-22 14:04:01 -07:00
Matchu
f234513976 Fix SASS @extend of non-existant class
This used to just be ignored, but SASS crashes on it now, reasonable ty!
2023-07-22 13:47:56 -07:00
Matchu
797c0a726e Upgrade sass-rails & compass-rails
Compass wasn't working in Rails 4, there's still some errors in the details but now it's not crashing on that anymore!
2023-07-22 13:41:18 -07:00
Matchu
989d12050b Remove unused JSX pragma in modeling React code
lol again this is hard to test so uhh I hope this didn't break it all!! though tbh I feel like we removed this feature or something anyway? idk it stopped working in some way
2023-07-22 13:35:41 -07:00
Matchu
5d5830c3b1 Fix modeling_i18n_tag crash
Tbh I'm not 100% sure this is a fix, I'm not sure what `haml_concat` was doing here, and the page is still crashing so it's hard to say. But fingers crossed!
2023-07-22 13:34:08 -07:00
Matchu
724ed83833 Fix select bug in Item.all_by_ids_or_children
Idk why, but when the `select` was the first thing in the query, it was getting ignored. I wonder if there's something about the `object_assets` scope that I'm not understanding that's overwriting it? Or the `joins`? But whatever, this works, I'm not worried about it for now!
2023-07-22 13:32:29 -07:00
Matchu
b8c748aa97 Upgrade haml
I was hoping this would fix a character encoding bug, it didn't really? but it doesn't seem to hurt and is probably good to do
2023-07-22 12:58:15 -07:00
Matchu
a705bfc34e Fix caching crashes in localized_cache
The controller was like "oh yeah we have that cached" (from previous renders of the app on Rails 3 I think?), but the view disagreed, bc it was appending a template digest to the cache key. That's a smart feature, but not compatible with how we skip queries in the controller, so disable it for now!
2023-07-22 12:52:53 -07:00
Matchu
3020def570 Update to new set_table_name syntax 2023-07-22 12:36:04 -07:00
Matchu
ced8f3f924 match router syntax -> get/post
I hope I got these right lol!!
2023-07-22 12:29:29 -07:00
Matchu
8ce5fd7c3e Update syntax for set_inheritance_column 2023-07-22 12:23:14 -07:00
Matchu
d61b57967d Install protected_attributes gem
Rails 4 removed `attr_accessible`, and we should move away from it to (I think we'll need to by Rails 5?), but for now we can install this and move on!
2023-07-22 12:20:30 -07:00
Matchu
7d20204940 Remove flex from the app (breaks search!)
We'll need to replace the item search query stuff with direct MySQL queries, but that's not ready yet bc the app still isn't booting, so we're committing this in a known broken state for now!
2023-07-22 12:18:53 -07:00
Matchu
0ee6881918 Remove newrelic gem
I haven't logged into newrelic in a billion years, let's just stop sending them stuff

(This is a precursor to an attempt to delete flex stuff too and replace our elasticsearch stuff with direct mysql queries like Impress 2020 does, but that'll be more work!)
2023-07-22 12:11:18 -07:00
Matchu
ca99459a43 Remove unused Devise initializer settings
I guess the APIs changed here, but these were placeholder settings we weren't actually using anyway (cuz we use the OpenNeo ID integration), so I just commented them out and it seems fine for now!
2023-07-22 11:00:21 -07:00
Matchu
8b6be4d522 Upgrade to Ruby 2.2.4, Rails 4.0.13
NOTE: This doesn't boot yet! There's something changed in the `devise` API that we'll need to fix!

```
/vagrant/config/initializers/devise.rb:46:in `block in <top (required)>': undefined method `encryptor=' for Devise:Module (NoMethodError)
```

But yeah, we navigated the gem upgrades, and also I ran `rake rails:update` and hand-processed the suggestions it had for our config files.
2023-07-21 19:39:32 -07:00
Matchu
7f8f7e624d Remove references to the Stripe gem
Rather than figure out how to upgrade the Stripe gem to be compatible with future Rails, I'd rather just delete the references, since it's currently unused.

I'm not so bold as to go in and fully trash all our donation code; I just want to ensure we're not sending people down broken codepaths, and that if they reach them, the error messages are clear enough.
2023-07-21 18:54:15 -07:00
Matchu
9cb71da77c Upgrade to Rails 3.2.22.5
I'm just giving the app a very quick scan on critical pages, it's possible I'm missing some issues on paths that are harder to test rn like openneo_id auth, but I'll check in on that later I think?
2023-07-21 18:33:04 -07:00
Matchu
2112e74884 Add port forwarding to Vagrantfile
Now, `rails server` should make the dev server available at `localhost:3000` on the host machine too!
2023-07-21 18:19:24 -07:00
Matchu
e7ec7147ea Update gems
Ha, I forgot we're including all the vendored gems in the git repo. Maybe that's worth changing? But fine to leave as-is for now.
2023-07-21 18:07:36 -07:00
Matchu
c5cc9cc295 Add required dev packages to Vagrantfile
These are necessary for installing some of our gems!

Note the tricky bit where we need an older OpenSSL package when building Ruby 1.9.3, but need to uninstall before `libmysqlclient-dev`, which requires a more recent version of `libssl-dev`. I thiiiink this is safe to do, but we'll find out!
2023-07-21 18:07:12 -07:00
Matchu
4da4f40c82 Replace git:// with https:// in Gemfile
None of these are private repos, so there's no reason to use the authenticated git protocol to download the stuff. (I guess this used to work because I had github creds set up on the machine that was running the app, whereas right now it's running in Vagrant, so yeah makes sense that it wasn't an issue before!)
2023-07-21 17:57:37 -07:00