Compare commits

...

117 Commits

Author SHA1 Message Date
dependabot[bot]
20f74524de Merge pull request #3935 from Growstuff/dependabot/bundler/sidekiq-7.3.6 2024-11-26 22:24:42 +00:00
dependabot[bot]
87822d441d Bump sidekiq from 7.3.5 to 7.3.6
Bumps [sidekiq](https://github.com/sidekiq/sidekiq) from 7.3.5 to 7.3.6.
- [Changelog](https://github.com/sidekiq/sidekiq/blob/main/Changes.md)
- [Commits](https://github.com/sidekiq/sidekiq/compare/v7.3.5...v7.3.6)

---
updated-dependencies:
- dependency-name: sidekiq
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-26 22:06:41 +00:00
dependabot[bot]
cfe90a2e34 Merge pull request #3932 from Growstuff/dependabot/bundler/rswag-specs-2.16.0 2024-11-26 22:04:34 +00:00
dependabot[bot]
f633bd2245 Bump rswag-specs from 2.15.0 to 2.16.0
Bumps [rswag-specs](https://github.com/rswag/rswag) from 2.15.0 to 2.16.0.
- [Release notes](https://github.com/rswag/rswag/releases)
- [Changelog](https://github.com/rswag/rswag/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rswag/rswag/compare/2.15.0...2.16.0)

---
updated-dependencies:
- dependency-name: rswag-specs
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-26 21:46:19 +00:00
dependabot[bot]
37464e0b2f Merge pull request #3931 from Growstuff/dependabot/bundler/rswag-ui-2.16.0 2024-11-26 21:44:32 +00:00
dependabot[bot]
0768c4ef5e Bump rswag-ui from 2.15.0 to 2.16.0
Bumps [rswag-ui](https://github.com/rswag/rswag) from 2.15.0 to 2.16.0.
- [Release notes](https://github.com/rswag/rswag/releases)
- [Changelog](https://github.com/rswag/rswag/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rswag/rswag/compare/2.15.0...2.16.0)

---
updated-dependencies:
- dependency-name: rswag-ui
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-26 21:26:04 +00:00
dependabot[bot]
7ba091df64 Merge pull request #3915 from Growstuff/dependabot/bundler/factory_bot_rails-6.4.4 2024-11-26 21:24:37 +00:00
dependabot[bot]
32442a9dc3 Bump factory_bot_rails from 6.4.3 to 6.4.4
Bumps [factory_bot_rails](https://github.com/thoughtbot/factory_bot_rails) from 6.4.3 to 6.4.4.
- [Release notes](https://github.com/thoughtbot/factory_bot_rails/releases)
- [Changelog](https://github.com/thoughtbot/factory_bot_rails/blob/main/NEWS.md)
- [Commits](https://github.com/thoughtbot/factory_bot_rails/compare/v6.4.3...v6.4.4)

---
updated-dependencies:
- dependency-name: factory_bot_rails
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-26 21:06:30 +00:00
Daniel O'Connor
caae45ed7c Merge pull request #3937 from Growstuff/dependabot/bundler/selenium-webdriver-4.27.0
Bump selenium-webdriver from 4.26.0 to 4.27.0
2024-11-27 07:35:05 +10:30
dependabot[bot]
202c9af859 Bump selenium-webdriver from 4.26.0 to 4.27.0
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.26.0 to 4.27.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.26.0...selenium-4.27.0)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-26 07:29:54 +00:00
dependabot[bot]
77db35f6a3 Merge pull request #3925 from Growstuff/dependabot/bundler/rspec-rails-7.1.0 2024-11-26 07:28:34 +00:00
dependabot[bot]
0001368bab Bump rspec-rails from 7.0.1 to 7.1.0
Bumps [rspec-rails](https://github.com/rspec/rspec-rails) from 7.0.1 to 7.1.0.
- [Changelog](https://github.com/rspec/rspec-rails/blob/main/Changelog.md)
- [Commits](https://github.com/rspec/rspec-rails/compare/v7.0.1...v7.1.0)

---
updated-dependencies:
- dependency-name: rspec-rails
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-26 07:10:12 +00:00
dependabot[bot]
b513e62543 Merge pull request #3936 from Growstuff/dependabot/bundler/puma-6.5.0 2024-11-26 07:08:50 +00:00
dependabot[bot]
d0cd4a152a Bump puma from 6.4.3 to 6.5.0
Bumps [puma](https://github.com/puma/puma) from 6.4.3 to 6.5.0.
- [Release notes](https://github.com/puma/puma/releases)
- [Changelog](https://github.com/puma/puma/blob/master/History.md)
- [Commits](https://github.com/puma/puma/compare/v6.4.3...v6.5.0)

---
updated-dependencies:
- dependency-name: puma
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-25 07:33:26 +00:00
dependabot[bot]
67a1b03f55 Merge pull request #3933 from Growstuff/dependabot/bundler/faraday-2.12.1 2024-11-21 07:58:34 +00:00
dependabot[bot]
e830538716 Bump faraday from 2.12.0 to 2.12.1
Bumps [faraday](https://github.com/lostisland/faraday) from 2.12.0 to 2.12.1.
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lostisland/faraday/compare/v2.12.0...v2.12.1)

---
updated-dependencies:
- dependency-name: faraday
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-21 07:39:55 +00:00
dependabot[bot]
a5e3e5a516 Merge pull request #3929 from Growstuff/dependabot/bundler/msgpack-1.7.5 2024-11-21 07:38:32 +00:00
dependabot[bot]
eb19c24194 Bump msgpack from 1.7.3 to 1.7.5
Bumps [msgpack](https://github.com/msgpack/msgpack-ruby) from 1.7.3 to 1.7.5.
- [Changelog](https://github.com/msgpack/msgpack-ruby/blob/master/ChangeLog)
- [Commits](https://github.com/msgpack/msgpack-ruby/compare/v1.7.3...v1.7.5)

---
updated-dependencies:
- dependency-name: msgpack
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-21 07:19:15 +00:00
dependabot[bot]
c98b314a26 Merge pull request #3934 from Growstuff/dependabot/bundler/pry-0.15.0 2024-11-21 07:17:56 +00:00
dependabot[bot]
185e1908c7 Bump pry from 0.14.2 to 0.15.0
Bumps [pry](https://github.com/pry/pry) from 0.14.2 to 0.15.0.
- [Release notes](https://github.com/pry/pry/releases)
- [Changelog](https://github.com/pry/pry/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pry/pry/compare/v0.14.2...v0.15.0)

---
updated-dependencies:
- dependency-name: pry
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 07:49:23 +00:00
dependabot[bot]
9e767572c8 Merge pull request #3918 from Growstuff/dependabot/bundler/chartkick-5.1.2 2024-11-11 09:24:27 +00:00
dependabot[bot]
a88c3f717c Bump chartkick from 5.1.1 to 5.1.2
Bumps [chartkick](https://github.com/ankane/chartkick) from 5.1.1 to 5.1.2.
- [Changelog](https://github.com/ankane/chartkick/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ankane/chartkick/compare/v5.1.1...v5.1.2)

---
updated-dependencies:
- dependency-name: chartkick
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 08:36:18 +00:00
dependabot[bot]
7d7c71e36a Merge pull request #3927 from Growstuff/dependabot/bundler/bullet-8.0.0 2024-11-11 08:35:01 +00:00
dependabot[bot]
7267f1ab09 Bump bullet from 7.2.0 to 8.0.0
Bumps [bullet](https://github.com/flyerhzm/bullet) from 7.2.0 to 8.0.0.
- [Changelog](https://github.com/flyerhzm/bullet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyerhzm/bullet/compare/7.2.0...8.0.0)

---
updated-dependencies:
- dependency-name: bullet
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 07:44:58 +00:00
dependabot[bot]
f26b6eb39a Merge pull request #3928 from Growstuff/dependabot/bundler/axe-core-capybara-4.10.2 2024-11-11 07:43:28 +00:00
dependabot[bot]
6213751928 Bump axe-core-capybara from 4.10.1 to 4.10.2
Bumps [axe-core-capybara](https://github.com/dequelabs/axe-core-gems) from 4.10.1 to 4.10.2.
- [Release notes](https://github.com/dequelabs/axe-core-gems/releases)
- [Changelog](https://github.com/dequelabs/axe-core-gems/blob/v4.10.2/CHANGELOG.md)
- [Commits](https://github.com/dequelabs/axe-core-gems/compare/v4.10.1...v4.10.2)

---
updated-dependencies:
- dependency-name: axe-core-capybara
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 07:15:58 +00:00
dependabot[bot]
40b8e8f3cf Merge pull request #3922 from Growstuff/dependabot/bundler/oj-3.16.7 2024-11-08 10:39:18 +00:00
dependabot[bot]
a5fc95fce1 Bump oj from 3.16.6 to 3.16.7
Bumps [oj](https://github.com/ohler55/oj) from 3.16.6 to 3.16.7.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.16.6...v3.16.7)

---
updated-dependencies:
- dependency-name: oj
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-08 10:14:15 +00:00
dependabot[bot]
59b140b792 Merge pull request #3924 from Growstuff/dependabot/bundler/discard-1.4.0 2024-11-08 10:12:59 +00:00
dependabot[bot]
d35d5179c7 Bump discard from 1.3.0 to 1.4.0
Bumps [discard](https://github.com/jhawthorn/discard) from 1.3.0 to 1.4.0.
- [Changelog](https://github.com/jhawthorn/discard/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jhawthorn/discard/compare/v1.3.0...v1.4.0)

---
updated-dependencies:
- dependency-name: discard
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-07 10:30:09 +00:00
dependabot[bot]
2ea0354e4f Merge pull request #3923 from Growstuff/dependabot/bundler/sidekiq-7.3.5 2024-11-07 09:31:58 +00:00
dependabot[bot]
7fcc28a5f3 Bump sidekiq from 7.3.4 to 7.3.5
Bumps [sidekiq](https://github.com/sidekiq/sidekiq) from 7.3.4 to 7.3.5.
- [Changelog](https://github.com/sidekiq/sidekiq/blob/main/Changes.md)
- [Commits](https://github.com/sidekiq/sidekiq/commits/v7.3.5)

---
updated-dependencies:
- dependency-name: sidekiq
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-05 07:52:42 +00:00
dependabot[bot]
0e848198b4 Merge pull request #3914 from Growstuff/dependabot/bundler/loofah-2.23.1 2024-11-03 00:25:00 +00:00
dependabot[bot]
9c343b2f84 Bump loofah from 2.23.0 to 2.23.1
Bumps [loofah](https://github.com/flavorjones/loofah) from 2.23.0 to 2.23.1.
- [Release notes](https://github.com/flavorjones/loofah/releases)
- [Changelog](https://github.com/flavorjones/loofah/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flavorjones/loofah/compare/v2.23.0...v2.23.1)

---
updated-dependencies:
- dependency-name: loofah
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-01 08:12:40 +00:00
dependabot[bot]
630e9bcaf8 Merge pull request #3921 from Growstuff/dependabot/bundler/rubocop-1.68.0 2024-11-01 08:11:31 +00:00
dependabot[bot]
fd77b22c11 Bump rubocop from 1.67.0 to 1.68.0
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.67.0 to 1.68.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.67.0...v1.68.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-01 07:36:05 +00:00
dependabot[bot]
4220e6ed04 Merge pull request #3919 from Growstuff/dependabot/bundler/selenium-webdriver-4.26.0 2024-10-31 11:39:49 +00:00
dependabot[bot]
82a8cdaaba Bump selenium-webdriver from 4.25.0 to 4.26.0
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.25.0 to 4.26.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.25.0...selenium-4.26.0)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-31 07:07:40 +00:00
dependabot[bot]
8720024544 Merge pull request #3916 from Growstuff/dependabot/bundler/rubocop-rspec-3.2.0 2024-10-28 10:31:49 +00:00
dependabot[bot]
f7737ae7b6 Bump rubocop-rspec from 3.1.0 to 3.2.0
Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.1.0...v3.2.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-28 10:14:31 +00:00
dependabot[bot]
701ba7223f Merge pull request #3913 from Growstuff/dependabot/bundler/rubocop-rails-2.27.0 2024-10-28 10:13:25 +00:00
dependabot[bot]
f4616dea47 Bump rubocop-rails from 2.26.2 to 2.27.0
Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.26.2 to 2.27.0.
- [Release notes](https://github.com/rubocop/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.26.2...v2.27.0)

---
updated-dependencies:
- dependency-name: rubocop-rails
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-28 07:37:10 +00:00
dependabot[bot]
55536b5050 Merge pull request #3904 from Growstuff/dependabot/bundler/chartkick-5.1.1 2024-10-27 22:01:28 +00:00
dependabot[bot]
4decb5d510 Bump chartkick from 5.1.0 to 5.1.1
Bumps [chartkick](https://github.com/ankane/chartkick) from 5.1.0 to 5.1.1.
- [Changelog](https://github.com/ankane/chartkick/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ankane/chartkick/compare/v5.1.0...v5.1.1)

---
updated-dependencies:
- dependency-name: chartkick
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-27 21:43:15 +00:00
dependabot[bot]
d58a1c4483 Merge pull request #3908 from Growstuff/dependabot/bundler/sidekiq-7.3.4 2024-10-27 21:42:13 +00:00
dependabot[bot]
e134ac8763 Bump sidekiq from 7.3.2 to 7.3.4
Bumps [sidekiq](https://github.com/sidekiq/sidekiq) from 7.3.2 to 7.3.4.
- [Changelog](https://github.com/sidekiq/sidekiq/blob/main/Changes.md)
- [Commits](https://github.com/sidekiq/sidekiq/commits)

---
updated-dependencies:
- dependency-name: sidekiq
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 09:54:49 +00:00
dependabot[bot]
1525d4246d Merge pull request #3907 from Growstuff/dependabot/bundler/faker-3.5.1 2024-10-25 09:53:47 +00:00
dependabot[bot]
d706719db6 Bump faker from 3.4.2 to 3.5.1
Bumps [faker](https://github.com/faker-ruby/faker) from 3.4.2 to 3.5.1.
- [Release notes](https://github.com/faker-ruby/faker/releases)
- [Changelog](https://github.com/faker-ruby/faker/blob/main/CHANGELOG.md)
- [Commits](https://github.com/faker-ruby/faker/compare/v3.4.2...v3.5.1)

---
updated-dependencies:
- dependency-name: faker
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 09:35:06 +00:00
dependabot[bot]
e91c02792d Merge pull request #3910 from Growstuff/dependabot/bundler/database_cleaner-2.1.0 2024-10-25 09:34:04 +00:00
dependabot[bot]
c3b728f7f3 Bump database_cleaner from 2.0.2 to 2.1.0
Bumps [database_cleaner](https://github.com/DatabaseCleaner/database_cleaner) from 2.0.2 to 2.1.0.
- [Changelog](https://github.com/DatabaseCleaner/database_cleaner/blob/main/History.rdoc)
- [Commits](https://github.com/DatabaseCleaner/database_cleaner/compare/v2.0.2...v2.1.0)

---
updated-dependencies:
- dependency-name: database_cleaner
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 09:15:57 +00:00
dependabot[bot]
e2e8103795 Merge pull request #3911 from Growstuff/dependabot/bundler/loofah-2.23.0 2024-10-25 09:14:51 +00:00
dependabot[bot]
7527eb190a Bump loofah from 2.22.0 to 2.23.0
Bumps [loofah](https://github.com/flavorjones/loofah) from 2.22.0 to 2.23.0.
- [Release notes](https://github.com/flavorjones/loofah/releases)
- [Changelog](https://github.com/flavorjones/loofah/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flavorjones/loofah/compare/v2.22.0...v2.23.0)

---
updated-dependencies:
- dependency-name: loofah
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 08:56:57 +00:00
dependabot[bot]
a79c71a5b7 Merge pull request #3912 from Growstuff/dependabot/bundler/pg-1.5.9 2024-10-25 08:55:50 +00:00
dependabot[bot]
75da5d24b9 Bump pg from 1.5.8 to 1.5.9
Bumps [pg](https://github.com/ged/ruby-pg) from 1.5.8 to 1.5.9.
- [Changelog](https://github.com/ged/ruby-pg/blob/master/History.md)
- [Commits](https://github.com/ged/ruby-pg/compare/v1.5.8...v1.5.9)

---
updated-dependencies:
- dependency-name: pg
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 07:37:06 +00:00
dependabot[bot]
2ec97581ad Merge pull request #3903 from Growstuff/dependabot/bundler/rubocop-1.67.0 2024-10-18 11:57:57 +00:00
dependabot[bot]
c6260ff426 Bump rubocop from 1.66.1 to 1.67.0
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.66.1 to 1.67.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.66.1...v1.67.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-18 11:39:16 +00:00
dependabot[bot]
8e7d157ff9 Merge pull request #3905 from Growstuff/dependabot/bundler/axe-core-capybara-4.10.1 2024-10-18 11:38:11 +00:00
dependabot[bot]
a0c66406cc Bump axe-core-capybara from 4.10.0 to 4.10.1
Bumps [axe-core-capybara](https://github.com/dequelabs/axe-core-gems) from 4.10.0 to 4.10.1.
- [Release notes](https://github.com/dequelabs/axe-core-gems/releases)
- [Changelog](https://github.com/dequelabs/axe-core-gems/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/dequelabs/axe-core-gems/compare/v4.10.0...v4.10.1)

---
updated-dependencies:
- dependency-name: axe-core-capybara
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-18 11:20:20 +00:00
dependabot[bot]
b9fc7f71d2 Merge pull request #3902 from Growstuff/dependabot/bundler/rails-7.2.1.1 2024-10-18 11:18:55 +00:00
dependabot[bot]
168874dfcb Bump rails from 7.2.1 to 7.2.1.1
Bumps [rails](https://github.com/rails/rails) from 7.2.1 to 7.2.1.1.
- [Release notes](https://github.com/rails/rails/releases)
- [Commits](https://github.com/rails/rails/compare/v7.2.1...v7.2.1.1)

---
updated-dependencies:
- dependency-name: rails
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-16 07:59:26 +00:00
Daniel O'Connor
c111d6e373 Merge pull request #3898 from Growstuff/CloCkWeRX-patch-2
Update _form.html.haml to make seeds tradeable-to required
2024-10-14 00:41:12 +10:30
Daniel O'Connor
8224fe2aea Update _form.html.haml 2024-10-14 00:14:26 +10:30
Daniel O'Connor
58780ec199 Swap harvest to html5 date field (#3894)
* Update gardens to have a non 0 area

* Spec no longer possible through frontend

* Fix spec

* Swap harvest to html5 date field

* Fix spec
2024-10-14 00:09:30 +10:30
Daniel O'Connor
196ca1ba49 Merge pull request #3896 from Growstuff/CloCkWeRX-patch-2
Update _form.html.haml
2024-10-13 23:53:28 +10:30
Daniel O'Connor
443be95915 Merge pull request #3895 from Growstuff/CloCkWeRX-patch-5
Swap to HTML5 date field
2024-10-13 23:49:50 +10:30
Daniel O'Connor
9167c334f9 Merge pull request #3890 from Growstuff/CloCkWeRX-patch-3
Swap activities to datepicker
2024-10-13 23:36:12 +10:30
Daniel O'Connor
66f3a712ea Update _form.html.haml 2024-10-13 23:32:19 +10:30
Daniel O'Connor
26691419dc Merge pull request #3893 from Growstuff/CloCkWeRX-patch-2
Update _form.html.haml to mark required
2024-10-13 23:29:58 +10:30
Daniel O'Connor
8459bc2fdf Swap to HTML5 date field 2024-10-13 23:29:17 +10:30
Daniel O'Connor
2fe3c8fc73 Merge pull request #3892 from Growstuff/CloCkWeRX-patch-5
Update _form.html.haml to require a min of 1 seed
2024-10-13 23:22:13 +10:30
Daniel O'Connor
2b72e8f2da Merge pull request #3891 from Growstuff/CloCkWeRX-patch-4
Update _form.html.haml to require a min of 1 when planting
2024-10-13 23:21:11 +10:30
Daniel O'Connor
a2faf945a2 Update _form.html.haml to mark required 2024-10-13 23:08:16 +10:30
Daniel O'Connor
d1871106fa Merge pull request #3889 from Growstuff/CloCkWeRX-patch-2
Update _form.html.haml to mark dropdowns required
2024-10-13 23:04:21 +10:30
Daniel O'Connor
9a1b62fe52 Update _form.html.haml 2024-10-13 23:02:36 +10:30
Daniel O'Connor
d61222d4cc Update _form.html.haml 2024-10-13 23:01:10 +10:30
Daniel O'Connor
f8e1d75e83 Swap activities to datepicker 2024-10-13 22:57:26 +10:30
Daniel O'Connor
925bb582d3 Update gardens to have a non 0 area (#3885)
* Update gardens to have a non 0 area

* Spec no longer possible through frontend

* Fix spec
2024-10-13 22:53:51 +10:30
Daniel O'Connor
7acef18bc5 Merge pull request #3888 from Growstuff/required-help
Remove required text UI element
2024-10-13 22:47:21 +10:30
Daniel O'Connor
44857c3de7 Update _form.html.haml 2024-10-13 22:43:51 +10:30
Daniel O'Connor
825b0347af Merge pull request #3887 from Growstuff/CloCkWeRX-patch-2
Update _form.html.haml
2024-10-13 22:38:14 +10:30
Daniel O'Connor
001f370283 Merge branch 'dev' into required-help 2024-10-13 22:28:33 +10:30
Daniel O'Connor
a7a5b6ef17 Remove required text UI element 2024-10-13 11:56:56 +00:00
Daniel O'Connor
b3ecfcabf4 Merge pull request #3886 from Growstuff/CloCkWeRX-patch-5
Update seeds to have a min day range
2024-10-13 22:21:13 +10:30
Daniel O'Connor
c05ea9e651 Update _form.html.haml 2024-10-13 22:15:52 +10:30
Daniel O'Connor
d2cf94103a Merge pull request #3884 from Growstuff/CloCkWeRX-patch-3
Update auto_suggest_helper.rb to support required
2024-10-13 22:11:23 +10:30
Daniel O'Connor
867c3dc097 Merge pull request #3883 from Growstuff/CloCkWeRX-patch-2
Update _plantings.scss
2024-10-13 22:10:44 +10:30
Daniel O'Connor
6f5a241970 Update _form.html.haml 2024-10-13 21:56:01 +10:30
Daniel O'Connor
73e73e6c14 Update _form.html.haml 2024-10-13 21:54:49 +10:30
Daniel O'Connor
a8cd6ad10e Update auto_suggest_helper.rb to support required 2024-10-13 21:51:04 +10:30
Daniel O'Connor
1132198931 Update _plantings.scss 2024-10-13 21:48:13 +10:30
Daniel O'Connor
2484bd39ed Render where a planting is in card view (#3882)
* Render where a planting is in card view

* Update app/assets/stylesheets/_plantings.scss
2024-10-13 14:25:46 +10:30
Daniel O'Connor
92dee732a1 Merge pull request #3880 from Growstuff/CloCkWeRX-patch-2
Default a new activity as being done today
2024-10-13 13:16:55 +10:30
dependabot[bot]
53949fcf34 Merge pull request #3879 from Growstuff/dependabot/bundler/active_median-0.5.0 2024-10-13 02:33:20 +00:00
Daniel O'Connor
681f3780ad Default a new activity as being done today 2024-10-13 12:41:59 +10:30
dependabot[bot]
15537139e4 Bump active_median from 0.4.1 to 0.5.0
Bumps [active_median](https://github.com/ankane/active_median) from 0.4.1 to 0.5.0.
- [Changelog](https://github.com/ankane/active_median/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ankane/active_median/compare/v0.4.1...v0.5.0)

---
updated-dependencies:
- dependency-name: active_median
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-13 02:11:25 +00:00
dependabot[bot]
d1ee8c816d Merge pull request #3878 from Growstuff/dependabot/bundler/terser-1.2.4 2024-10-13 02:10:31 +00:00
dependabot[bot]
413b5969d6 Bump terser from 1.2.3 to 1.2.4
Bumps [terser](https://github.com/ahorek/terser-ruby) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/ahorek/terser-ruby/releases)
- [Changelog](https://github.com/ahorek/terser-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ahorek/terser-ruby/compare/1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: terser
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-08 07:45:51 +00:00
dependabot[bot]
0335a9fb56 Merge pull request #3875 from Growstuff/dependabot/bundler/rswag-api-2.15.0 2024-10-07 11:33:56 +00:00
dependabot[bot]
3d9d89726e Bump rswag-api from 2.14.0 to 2.15.0
Bumps [rswag-api](https://github.com/rswag/rswag) from 2.14.0 to 2.15.0.
- [Release notes](https://github.com/rswag/rswag/releases)
- [Changelog](https://github.com/rswag/rswag/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rswag/rswag/compare/2.14.0...2.15.0)

---
updated-dependencies:
- dependency-name: rswag-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 11:15:07 +00:00
dependabot[bot]
934074844e Merge pull request #3874 from Growstuff/dependabot/bundler/rswag-ui-2.15.0 2024-10-07 11:13:53 +00:00
dependabot[bot]
e6069168b9 Bump rswag-ui from 2.14.0 to 2.15.0
Bumps [rswag-ui](https://github.com/rswag/rswag) from 2.14.0 to 2.15.0.
- [Release notes](https://github.com/rswag/rswag/releases)
- [Changelog](https://github.com/rswag/rswag/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rswag/rswag/compare/2.14.0...2.15.0)

---
updated-dependencies:
- dependency-name: rswag-ui
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 10:55:47 +00:00
dependabot[bot]
292ca47f20 Merge pull request #3876 from Growstuff/dependabot/bundler/msgpack-1.7.3 2024-10-07 10:54:42 +00:00
dependabot[bot]
28fe846645 Bump msgpack from 1.7.2 to 1.7.3
Bumps [msgpack](https://github.com/msgpack/msgpack-ruby) from 1.7.2 to 1.7.3.
- [Changelog](https://github.com/msgpack/msgpack-ruby/blob/master/ChangeLog)
- [Commits](https://github.com/msgpack/msgpack-ruby/compare/v1.7.2...v1.7.3)

---
updated-dependencies:
- dependency-name: msgpack
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 10:36:51 +00:00
dependabot[bot]
e08f64b216 Merge pull request #3877 from Growstuff/dependabot/bundler/rswag-specs-2.15.0 2024-10-07 10:35:47 +00:00
dependabot[bot]
ac22af4718 Bump rswag-specs from 2.14.0 to 2.15.0
Bumps [rswag-specs](https://github.com/rswag/rswag) from 2.14.0 to 2.15.0.
- [Release notes](https://github.com/rswag/rswag/releases)
- [Changelog](https://github.com/rswag/rswag/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rswag/rswag/compare/2.14.0...2.15.0)

---
updated-dependencies:
- dependency-name: rswag-specs
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 07:11:41 +00:00
dependabot[bot]
fb992ef13c Merge pull request #3872 from Growstuff/dependabot/bundler/rubocop-rspec-3.1.0 2024-10-03 11:01:53 +00:00
dependabot[bot]
2c8d0c2d2f Bump rubocop-rspec from 3.0.5 to 3.1.0
Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 3.0.5 to 3.1.0.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.0.5...v3.1.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-03 09:54:01 +00:00
dependabot[bot]
14148aef55 Merge pull request #3873 from Growstuff/dependabot/bundler/rspec-activemodel-mocks-1.2.1 2024-10-03 09:52:59 +00:00
dependabot[bot]
0bfa4e4c85 Bump rspec-activemodel-mocks from 1.2.0 to 1.2.1
Bumps [rspec-activemodel-mocks](https://github.com/rspec/rspec-activemodel-mocks) from 1.2.0 to 1.2.1.
- [Changelog](https://github.com/rspec/rspec-activemodel-mocks/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rspec/rspec-activemodel-mocks/compare/v1.2.0...v1.2.1)

---
updated-dependencies:
- dependency-name: rspec-activemodel-mocks
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-03 07:12:36 +00:00
Daniel O'Connor
b62c6909b9 Merge branch 'mainline' into dev 2024-09-30 08:41:20 +09:30
Daniel O'Connor
1c97ba1495 Garden collaboration (small part of community gardens) (#3862)
* Add collaboration model

* Permissions and garden show

* List by owner, or where I am a collaborator

* Add index

* Add permissions

* Typo

* Typo

* Add route

* Update schema

* Update schema

* Add CRUD

* Add CRUD

* Add CRUD

* Factory

* Add validations

* Rubocop

* Rubocop

* Rubocop

* Unique index

* Fix

* Make CI more fine grained for faster feedback

* Swap order

* Fix path, fail-fast

* Fix spec

* Remove 'significant drop in coverage' as not everything runs in one giant run

* Fix tests?
2024-09-29 18:28:52 +09:30
Daniel O'Connor
c063a33e8b Garden show and edit: encourage descriptions, add more calls to action (#3846)
* Better edit links

* Prompt for more detail

* Better action links

* Better action links

* Update show.html.haml

* Apply suggestions from code review

* Apply suggestions from code review
2024-09-29 18:28:42 +09:30
Daniel O'Connor
69876813c2 Merge pull request #3845 from Growstuff/only-show-active
Avoid showing plantings which are finished
2024-09-29 17:43:32 +09:30
dependabot[bot]
46b33605aa Merge pull request #3865 from Growstuff/dependabot/bundler/haml_lint-0.59.0 2024-09-29 07:27:25 +00:00
Daniel O'Connor
6507c33729 Merge pull request #3833 from Growstuff/dev
August 2024 release
2024-09-29 16:41:56 +09:30
dependabot[bot]
5b9a59e2cd Bump haml_lint from 0.58.0 to 0.59.0
Bumps [haml_lint](https://github.com/sds/haml-lint) from 0.58.0 to 0.59.0.
- [Release notes](https://github.com/sds/haml-lint/releases)
- [Changelog](https://github.com/sds/haml-lint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sds/haml-lint/compare/v0.58.0...v0.59.0)

---
updated-dependencies:
- dependency-name: haml_lint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-29 07:08:40 +00:00
Daniel O'Connor
79ef7347ad Avoid showing plantings which are finished 2024-09-08 02:26:11 +00:00
40 changed files with 493 additions and 270 deletions

View File

@@ -106,15 +106,37 @@ jobs:
- name: Prepare database for testing
run: bundle exec rails db:prepare
- name: Run rspec (lib)
run: bundle exec rspec spec/lib/ -fd --fail-fast
- name: Run rspec (services)
run: bundle exec rspec spec/services/ -fd --fail-fast
- name: Run rspec (models)
run: bundle exec rspec spec/models/ -fd --fail-fast
- name: Run rspec (controllers)
run: bundle exec rspec spec/controllers/ -fd --fail-fast
- name: Run rspec (views)
run: bundle exec rspec spec/views/ -fd --fail-fast
- name: Run rspec (routing)
run: bundle exec rspec spec/routing/ -fd --fail-fast
- name: Run rspec (request)
run: bundle exec rspec spec/requests/ -fd --fail-fast
- name: precompile assets
run: bundle exec rails assets:precompile
- name: index into elastic search
run: bundle exec rails search:reindex
- name: Run rspec (report results to Percy.io and CodeClimate)
run: bundle exec rspec spec -fd
run: bundle exec rspec spec/features/ -fd --fail-fast
- name: Report to code climate
run: |

View File

@@ -158,7 +158,7 @@ Metrics/BlockLength:
# Offense count: 7
# Configuration parameters: CountComments, CountAsOne.
Metrics/ClassLength:
Max: 183
Max: 188
# Offense count: 6
# Configuration parameters: AllowedMethods, AllowedPatterns.

View File

@@ -33,29 +33,29 @@ GEM
GEM
remote: https://rubygems.org/
specs:
actioncable (7.2.1)
actionpack (= 7.2.1)
activesupport (= 7.2.1)
actioncable (7.2.1.1)
actionpack (= 7.2.1.1)
activesupport (= 7.2.1.1)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
zeitwerk (~> 2.6)
actionmailbox (7.2.1)
actionpack (= 7.2.1)
activejob (= 7.2.1)
activerecord (= 7.2.1)
activestorage (= 7.2.1)
activesupport (= 7.2.1)
actionmailbox (7.2.1.1)
actionpack (= 7.2.1.1)
activejob (= 7.2.1.1)
activerecord (= 7.2.1.1)
activestorage (= 7.2.1.1)
activesupport (= 7.2.1.1)
mail (>= 2.8.0)
actionmailer (7.2.1)
actionpack (= 7.2.1)
actionview (= 7.2.1)
activejob (= 7.2.1)
activesupport (= 7.2.1)
actionmailer (7.2.1.1)
actionpack (= 7.2.1.1)
actionview (= 7.2.1.1)
activejob (= 7.2.1.1)
activesupport (= 7.2.1.1)
mail (>= 2.8.0)
rails-dom-testing (~> 2.2)
actionpack (7.2.1)
actionview (= 7.2.1)
activesupport (= 7.2.1)
actionpack (7.2.1.1)
actionview (= 7.2.1.1)
activesupport (= 7.2.1.1)
nokogiri (>= 1.8.5)
racc
rack (>= 2.2.4, < 3.2)
@@ -64,15 +64,15 @@ GEM
rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6)
useragent (~> 0.16)
actiontext (7.2.1)
actionpack (= 7.2.1)
activerecord (= 7.2.1)
activestorage (= 7.2.1)
activesupport (= 7.2.1)
actiontext (7.2.1.1)
actionpack (= 7.2.1.1)
activerecord (= 7.2.1.1)
activestorage (= 7.2.1.1)
activesupport (= 7.2.1.1)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
actionview (7.2.1)
activesupport (= 7.2.1)
actionview (7.2.1.1)
activesupport (= 7.2.1.1)
builder (~> 3.1)
erubi (~> 1.11)
rails-dom-testing (~> 2.2)
@@ -80,29 +80,29 @@ GEM
active_link_to (1.0.5)
actionpack
addressable
active_median (0.4.1)
activesupport (>= 6.1)
active_median (0.5.0)
activesupport (>= 7)
active_record_union (1.3.0)
activerecord (>= 4.0)
active_utils (3.4.1)
activesupport (>= 4.2)
i18n
activejob (7.2.1)
activesupport (= 7.2.1)
activejob (7.2.1.1)
activesupport (= 7.2.1.1)
globalid (>= 0.3.6)
activemodel (7.2.1)
activesupport (= 7.2.1)
activerecord (7.2.1)
activemodel (= 7.2.1)
activesupport (= 7.2.1)
activemodel (7.2.1.1)
activesupport (= 7.2.1.1)
activerecord (7.2.1.1)
activemodel (= 7.2.1.1)
activesupport (= 7.2.1.1)
timeout (>= 0.4.0)
activestorage (7.2.1)
actionpack (= 7.2.1)
activejob (= 7.2.1)
activerecord (= 7.2.1)
activesupport (= 7.2.1)
activestorage (7.2.1.1)
actionpack (= 7.2.1.1)
activejob (= 7.2.1.1)
activerecord (= 7.2.1.1)
activesupport (= 7.2.1.1)
marcel (~> 1.0)
activesupport (7.2.1)
activesupport (7.2.1.1)
base64
bigdecimal
concurrent-ruby (~> 1.0, >= 1.3.1)
@@ -118,15 +118,17 @@ GEM
ast (2.4.2)
autoprefixer-rails (10.4.16.0)
execjs (~> 2)
axe-core-api (4.10.0)
axe-core-api (4.10.2)
dumb_delegator
ostruct
virtus
axe-core-capybara (4.10.0)
axe-core-api (= 4.10.0)
axe-core-capybara (4.10.2)
axe-core-api (= 4.10.2)
dumb_delegator
axe-core-rspec (4.10.0)
axe-core-api (= 4.10.0)
axe-core-rspec (4.10.2)
axe-core-api (= 4.10.2)
dumb_delegator
ostruct
virtus
axiom-types (0.1.1)
descendants_tracker (~> 0.0.4)
@@ -152,7 +154,7 @@ GEM
actionpack (>= 6.1)
activemodel (>= 6.1)
builder (3.3.0)
bullet (7.2.0)
bullet (8.0.0)
activesupport (>= 3.0.0)
uniform_notifier (~> 1.11)
byebug (11.1.3)
@@ -179,7 +181,7 @@ GEM
image_processing (~> 1.1)
marcel (~> 1.0.0)
ssrf_filter (~> 1.0)
chartkick (5.1.0)
chartkick (5.1.2)
childprocess (5.0.0)
codeclimate-test-reporter (1.0.9)
simplecov (<= 0.13)
@@ -202,7 +204,7 @@ GEM
csv_shaper (1.3.2)
activesupport (>= 3.0.0)
dalli (3.2.8)
database_cleaner (2.0.2)
database_cleaner (2.1.0)
database_cleaner-active_record (>= 2, < 3)
database_cleaner-active_record (2.2.0)
activerecord (>= 5.a)
@@ -218,8 +220,8 @@ GEM
responders
warden (~> 1.2.3)
diff-lcs (1.5.1)
discard (1.3.0)
activerecord (>= 4.2, < 8)
discard (1.4.0)
activerecord (>= 4.2, < 9.0)
docile (1.1.5)
dotenv (3.1.4)
dotenv-rails (3.1.4)
@@ -244,19 +246,19 @@ GEM
erubis (2.7.0)
excon (0.110.0)
execjs (2.9.1)
factory_bot (6.4.6)
factory_bot (6.5.0)
activesupport (>= 5.0.0)
factory_bot_rails (6.4.3)
factory_bot (~> 6.4)
factory_bot_rails (6.4.4)
factory_bot (~> 6.5)
railties (>= 5.0.0)
faker (3.4.2)
faker (3.5.1)
i18n (>= 1.8.11, < 2)
faraday (2.12.0)
faraday-net_http (>= 2.0, < 3.4)
faraday (2.12.1)
faraday-net_http (>= 2.0, < 3.5)
json
logger
faraday-net_http (3.3.0)
net-http
faraday-net_http (3.4.0)
net-http (>= 0.5.0)
ffi (1.16.3)
flickraw (0.9.10)
font-awesome-sass (5.15.1)
@@ -290,7 +292,7 @@ GEM
activesupport (>= 5.1)
haml (>= 4.0.6)
railties (>= 5.1)
haml_lint (0.58.0)
haml_lint (0.59.0)
haml (>= 5.0)
parallel (~> 1.10)
rainbow
@@ -329,16 +331,16 @@ GEM
mini_magick (>= 4.9.5, < 5)
ruby-vips (>= 2.0.17, < 3)
io-console (0.7.2)
irb (1.14.0)
irb (1.14.1)
rdoc (>= 4.0.0)
reline (>= 0.4.2)
jquery-rails (4.6.0)
rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
json (2.7.2)
json-schema (4.3.1)
addressable (>= 2.8)
json (2.8.2)
json-schema (5.1.0)
addressable (~> 2.8)
jsonapi-resources (0.10.7)
activerecord (>= 4.1)
concurrent-ruby
@@ -360,7 +362,7 @@ GEM
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
logger (1.6.1)
loofah (2.22.0)
loofah (2.23.1)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
mail (2.8.1)
@@ -379,22 +381,22 @@ GEM
railties (>= 3.2)
matrix (0.4.2)
memcachier (0.0.2)
method_source (1.0.0)
method_source (1.1.0)
mimemagic (0.4.3)
nokogiri (~> 1)
rake
mini_magick (4.12.0)
mini_mime (1.1.5)
mini_portile2 (2.8.7)
minitest (5.25.1)
mini_portile2 (2.8.8)
minitest (5.25.2)
moneta (1.0.0)
msgpack (1.7.2)
msgpack (1.7.5)
multi_json (1.15.0)
multi_xml (0.7.1)
bigdecimal (~> 3.1)
net-http (0.4.1)
net-http (0.5.0)
uri
net-imap (0.4.14)
net-imap (0.4.17)
date
net-protocol
net-pop (0.1.2)
@@ -403,14 +405,14 @@ GEM
timeout
net-smtp (0.5.0)
net-protocol
nio4r (2.7.3)
nio4r (2.7.4)
nokogiri (1.16.7)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
nokogiri (1.16.7-x86_64-linux)
racc (~> 1.4)
oauth (0.5.6)
oj (3.16.6)
oj (3.16.7)
bigdecimal (>= 3.0)
ostruct (>= 0.2)
omniauth (1.9.2)
@@ -426,30 +428,30 @@ GEM
omniauth-oauth (~> 1.1)
rack
orm_adapter (0.5.0)
ostruct (0.6.0)
ostruct (0.6.1)
parallel (1.26.3)
parser (3.3.5.0)
parser (3.3.5.1)
ast (~> 2.4.1)
racc
percy-capybara (5.0.0)
capybara (>= 3)
pg (1.5.8)
pg (1.5.9)
platform-api (3.7.0)
heroics (~> 0.1.1)
moneta (~> 1.0.0)
rate_throttle_client (~> 0.1.0)
popper_js (2.11.8)
pry (0.14.2)
pry (0.15.0)
coderay (~> 1.1)
method_source (~> 1.0)
psych (5.1.2)
psych (5.2.0)
stringio
public_suffix (6.0.1)
puma (6.4.3)
puma (6.5.0)
nio4r (~> 2.0)
query_diet (0.7.2)
racc (1.8.1)
rack (2.2.9)
rack (2.2.10)
rack-cors (2.0.2)
rack (>= 2.0.0)
rack-protection (3.2.0)
@@ -459,23 +461,23 @@ GEM
rack (< 3)
rack-test (2.1.0)
rack (>= 1.3)
rackup (1.0.0)
rackup (1.0.1)
rack (< 3)
webrick
rails (7.2.1)
actioncable (= 7.2.1)
actionmailbox (= 7.2.1)
actionmailer (= 7.2.1)
actionpack (= 7.2.1)
actiontext (= 7.2.1)
actionview (= 7.2.1)
activejob (= 7.2.1)
activemodel (= 7.2.1)
activerecord (= 7.2.1)
activestorage (= 7.2.1)
activesupport (= 7.2.1)
rails (7.2.1.1)
actioncable (= 7.2.1.1)
actionmailbox (= 7.2.1.1)
actionmailer (= 7.2.1.1)
actionpack (= 7.2.1.1)
actiontext (= 7.2.1.1)
actionview (= 7.2.1.1)
activejob (= 7.2.1.1)
activemodel (= 7.2.1.1)
activerecord (= 7.2.1.1)
activestorage (= 7.2.1.1)
activesupport (= 7.2.1.1)
bundler (>= 1.15.0)
railties (= 7.2.1)
railties (= 7.2.1.1)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1)
@@ -495,9 +497,9 @@ GEM
rails_stdout_logging
rails_serve_static_assets (0.0.5)
rails_stdout_logging (0.0.5)
railties (7.2.1)
actionpack (= 7.2.1)
activesupport (= 7.2.1)
railties (7.2.1.1)
actionpack (= 7.2.1.1)
activesupport (= 7.2.1.1)
irb (~> 1.13)
rackup (>= 1.0.0)
rake (>= 12.2)
@@ -510,36 +512,36 @@ GEM
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
rdoc (6.7.0)
rdoc (6.8.1)
psych (>= 4.0.0)
recaptcha (5.17.0)
redis-client (0.22.2)
connection_pool
regexp_parser (2.9.2)
reline (0.5.10)
reline (0.5.11)
io-console (~> 0.5)
responders (3.1.1)
actionpack (>= 5.2)
railties (>= 5.2)
rexml (3.3.7)
rexml (3.3.9)
rouge (4.1.2)
rspec (3.13.0)
rspec-core (~> 3.13.0)
rspec-expectations (~> 3.13.0)
rspec-mocks (~> 3.13.0)
rspec-activemodel-mocks (1.2.0)
rspec-activemodel-mocks (1.2.1)
activemodel (>= 3.0)
activesupport (>= 3.0)
rspec-mocks (>= 2.99, < 4.0)
rspec-core (3.13.1)
rspec-core (3.13.2)
rspec-support (~> 3.13.0)
rspec-expectations (3.13.2)
rspec-expectations (3.13.3)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-mocks (3.13.1)
rspec-mocks (3.13.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-rails (7.0.1)
rspec-rails (7.1.0)
actionpack (>= 7.0)
activesupport (>= 7.0)
railties (>= 7.0)
@@ -551,18 +553,18 @@ GEM
rspectre (0.1.0)
parser (>= 3.2.2.1)
rspec (~> 3.9)
rswag-api (2.14.0)
rswag-api (2.15.0)
activesupport (>= 5.2, < 8.0)
railties (>= 5.2, < 8.0)
rswag-specs (2.14.0)
activesupport (>= 5.2, < 8.0)
json-schema (>= 2.2, < 5.0)
railties (>= 5.2, < 8.0)
rswag-specs (2.16.0)
activesupport (>= 5.2, < 8.1)
json-schema (>= 2.2, < 6.0)
railties (>= 5.2, < 8.1)
rspec-core (>= 2.14)
rswag-ui (2.14.0)
actionpack (>= 5.2, < 8.0)
railties (>= 5.2, < 8.0)
rubocop (1.66.1)
rswag-ui (2.16.0)
actionpack (>= 5.2, < 8.1)
railties (>= 5.2, < 8.1)
rubocop (1.68.0)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
@@ -572,20 +574,20 @@ GEM
rubocop-ast (>= 1.32.2, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.32.3)
rubocop-ast (1.33.0)
parser (>= 3.3.1.0)
rubocop-capybara (2.21.0)
rubocop (~> 1.41)
rubocop-factory_bot (2.26.1)
rubocop (~> 1.61)
rubocop-rails (2.26.2)
rubocop-rails (2.27.0)
activesupport (>= 4.2.0)
rack (>= 1.1)
rubocop (>= 1.52.0, < 2.0)
rubocop-ast (>= 1.31.1, < 2.0)
rubocop-rake (0.6.0)
rubocop (~> 1.0)
rubocop-rspec (3.0.5)
rubocop-rspec (3.2.0)
rubocop (~> 1.61)
rubocop-rspec_rails (2.30.0)
rubocop (~> 1.61)
@@ -613,15 +615,14 @@ GEM
searchkick (5.3.1)
activemodel (>= 6.1)
hashie
securerandom (0.3.1)
selenium-webdriver (4.25.0)
securerandom (0.3.2)
selenium-webdriver (4.27.0)
base64 (~> 0.2)
logger (~> 1.4)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
sidekiq (7.3.2)
concurrent-ruby (< 2)
sidekiq (7.3.6)
connection_pool (>= 2.3.0)
logger
rack (>= 2.2.4)
@@ -640,18 +641,18 @@ GEM
activesupport (>= 5.2)
sprockets (>= 3.0.0)
ssrf_filter (1.1.2)
stringio (3.1.1)
stringio (3.1.2)
sysexits (1.2.0)
temple (0.10.3)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
terser (1.2.3)
terser (1.2.4)
execjs (>= 0.3.0, < 3)
thor (1.3.2)
thread_safe (0.3.6)
tilt (2.4.0)
timecop (0.9.10)
timeout (0.4.1)
timeout (0.4.2)
trollop (1.16.2)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
@@ -660,7 +661,7 @@ GEM
kgio (~> 2.6)
raindrops (~> 0.7)
uniform_notifier (1.16.0)
uri (0.13.1)
uri (1.0.2)
useragent (0.16.10)
validate_url (1.0.15)
activemodel (>= 3.0.0)
@@ -677,7 +678,7 @@ GEM
nokogiri (>= 1.2.0)
rack (>= 1.0)
rack-test (>= 0.5.3)
webrick (1.8.2)
webrick (1.9.0)
websocket (1.2.11)
websocket-driver (0.7.6)
websocket-extensions (>= 0.1.0)
@@ -689,7 +690,7 @@ GEM
webrick
xpath (3.2.0)
nokogiri (~> 1.8)
zeitwerk (2.6.18)
zeitwerk (2.7.1)
PLATFORMS
ruby

View File

@@ -47,4 +47,13 @@
margin-left: auto;
}
}
.card-footer {
max-height: 2em;
-webkit-line-clamp: 1;
overflow: hidden;
text-overflow: ellipsis;
margin-bottom: 0.5em;
padding-top: 0;
}
}

View File

@@ -29,7 +29,8 @@ class ActivitiesController < DataController
def new
@activity = Activity.new(
owner: current_member
owner: current_member,
due_date: Date.today
)
if params[:garden_id]
@activity.garden = Garden.find_by(

View File

@@ -0,0 +1,87 @@
# frozen_string_literal: true
class GardenCollaboratorsController < ApplicationController
before_action :authenticate_member!, except: %i(index show)
before_action :load_garden
load_and_authorize_resource id_param: :slug
respond_to :html
responders :flash
def index
@garden_collaborators = @garden.garden_collaborators.paginate(page: params[:page])
respond_with(@garden_collaborators)
end
def show
@garden_collaborator = GardenCollaborator.find(params[:garden_collaborator_id])
respond_with(@garden_collaborator)
end
def new
@garden_collaborator = GardenCollaborator.new(garden: @garden)
authorize! :create, @garden_collaborator
respond_with(@garden_collaborator)
end
def edit
@garden_collaborator = GardenCollaborator.find(params[:id])
authorize! :update, @garden_collaborator
respond_with(@garden_collaborator)
end
def create
@garden_collaborator = GardenCollaborator.new(garden: @garden)
authorize! :create, @garden_collaborator
@member = Member.find_by(slug: params[:garden_collaborator][:member_slug])
@garden_collaborator.member = @member
if @garden_collaborator.save
redirect_to garden_garden_collaborators_path(@garden)
else
respond_with(@garden_collaborator)
end
end
def update
@garden_collaborator = GardenCollaborator.find(params[:id])
authorize! :update, @garden_collaborator
@member = Member.find_by(slug: params[:garden_collaborator][:member_slug])
@garden_collaborator.member = @member
@garden_collaborator.save
respond_with(@garden_collaborator)
end
def destroy
@garden_collaborator = GardenCollaborator.find(params[:id])
authorize! :destroy, @garden_collaborator
if @garden_collaborator.destroy
redirect_to garden_garden_collaborators_path(@garden)
else
respond_with(@garden_collaborator)
end
end
private
def load_garden
@garden = Garden.find_by(slug: params[:garden_slug])
end
def garden_collaborator_params
params.require(:garden_collaborator).permit(
:member_slug
)
end
end

View File

@@ -8,7 +8,10 @@ class GardensController < DataController
@gardens = @gardens.includes(:owner)
@gardens = @gardens.active unless @show_all
@gardens = @gardens.where(owner: @owner) if @owner.present?
if @owner.present?
@gardens = @gardens.left_joins(:garden_collaborators)
@gardens = @gardens.where(owner: @owner).or(@gardens.where(garden_collaborators: { member: @owner }))
end
@gardens = @gardens.where.not(members: { confirmed_at: nil })
.order(:name).paginate(page: params[:page])
respond_with(@gardens)

View File

@@ -28,12 +28,6 @@ module ApplicationHelper
"#{klass.name.downcase.pluralize}/#{identifier}-#{count}-#{max_updated_at}"
end
def required_field_help_text
asterisk = tag.span('*', class: ['red'])
text = tag.em('denotes a required field')
tag.div(asterisk + ' '.html_safe + text, class: ['margin-bottom'])
end
# A helper to replace the complex template compilation mess
# of HAML, Tilt, and dynamic compilation with interpolated ruby.
def markdownify(text)

View File

@@ -13,7 +13,7 @@ module AutoSuggestHelper
resource = resource.class.name.downcase
source_path = Rails.application.routes.url_helpers.send("search_#{source}s_path", format: :json)
%(
<input id="#{source}" class="auto-suggest #{options[:class]}"
<input id="#{source}" class="auto-suggest #{options[:class]}" #{options[:required] ? 'required="required"' : ''}
type="text" value="#{default}" data-source-url="#{source_path}",
placeholder="e.g. lettuce">
<noscript class="text-warning">

View File

@@ -108,16 +108,38 @@ class Ability
can :create, Planting
can :update, Planting, garden: { owner_id: member.id }, crop: { approval_status: 'approved' }
can :destroy, Planting, garden: { owner_id: member.id }, crop: { approval_status: 'approved' }
can :update, Planting do |planting|
planting.garden.garden_collaborators.where(member_id: member.id).any?
end
can :destroy, Planting do |planting|
planting.garden.garden_collaborators.where(member_id: member.id).any?
end
can :create, GardenCollaborator, garden: { owner_id: member.id }
can :update, GardenCollaborator, garden: { owner_id: member.id }
can :destroy, GardenCollaborator, garden: { owner_id: member.id }
can :create, Activity
can :update, Activity, owner_id: member.id
can :destroy, Activity, owner_id: member.id
can :update, Activity do |activity|
activity.garden&.garden_collaborators&.where(member_id: member.id)&.any?
end
can :destroy, Activity do |activity|
activity.garden&.garden_collaborators&.where(member_id: member.id)&.any?
end
can :create, Harvest
can :update, Harvest, owner_id: member.id
can :destroy, Harvest, owner_id: member.id
can :update, Harvest, owner_id: member.id, planting: { owner_id: member.id }
can :destroy, Harvest, owner_id: member.id, planting: { owner_id: member.id }
can :update, Harvest do |harvest|
harvest.planting&.garden&.garden_collaborators&.where(member_id: member.id)&.any?
end
can :destroy, Harvest do |harvest|
harvest.planting&.garden&.garden_collaborators&.where(member_id: member.id)&.any?
end
can :create, Photo
can :update, Photo, owner_id: member.id

View File

@@ -30,6 +30,7 @@ module SearchPlantings
quantity:,
sunniness:,
garden_id:,
garden_slug: garden&.garden_slug,
garden_name: garden&.name,
description:,

View File

@@ -10,6 +10,7 @@ class Garden < ApplicationRecord
has_many :plantings, dependent: :destroy
has_many :crops, through: :plantings
has_many :activities, dependent: :destroy
has_many :garden_collaborators, dependent: :destroy
belongs_to :garden_type, optional: true

View File

@@ -0,0 +1,24 @@
# frozen_string_literal: true
class GardenCollaborator < ApplicationRecord
belongs_to :member
belongs_to :garden
validates :member_id, uniqueness: { scope: :garden }
validate :not_garden_owner
def not_garden_owner
return unless member
return unless garden
errors.add(:member_id, "cannot be the garden owner") if garden.owner == member
end
def member_slug
@member&.slug
end
def member_slug=(_slug)
member_slug
end
end

View File

@@ -153,7 +153,10 @@ class Harvest < ApplicationRecord
def owner_must_match_planting
return if planting.blank? # only check if we are linked to a planting
errors.add(:owner, "of harvest must be the same as planting") unless owner == planting.owner
return if owner == planting.owner || planting.garden.garden_collaborators.where(member_id: owner).any?
errors.add(:owner,
"of harvest must be the same as planting, or a collaborator on that garden")
end
def harvest_must_be_after_planting

View File

@@ -61,6 +61,7 @@ class Planting < ApplicationRecord
to: :crop, prefix: true
delegate :login_name, :slug, :location, to: :owner, prefix: true
delegate :slug, to: :planting, prefix: true
delegate :slug, :name, to: :garden, prefix: true
delegate :annual?, :perennial?, :svg_icon, to: :crop
delegate :location, :longitude, :latitude, to: :garden
@@ -127,6 +128,9 @@ class Planting < ApplicationRecord
end
def owner_must_match_garden_owner
errors.add(:owner, "must be the same as garden") unless owner == garden.owner
return if owner == garden.owner || garden.garden_collaborators.where(member_id: owner).any?
errors.add(:owner,
"must be the same as garden, or a collaborator on that garden")
end
end

View File

@@ -6,7 +6,6 @@
%strong=yield :title
= bootstrap_form_for(@activity) do |f|
.card-body
= required_field_help_text
- if @activity.errors.any?
#error_explanation
%h2
@@ -40,9 +39,9 @@
= link_to "Add a planting.", new_planting_path
.col-md-4
= f.text_field :due_date,
= f.date_field :due_date,
value: @activity.due_date ? @activity.due_date.to_fs(:ymd) : '',
class: 'add-datepicker', label: 'When?'
label: 'When?'
%hr

View File

@@ -0,0 +1,18 @@
.card.col-md-8.col-lg-7.mx-auto.float-none.white.z-depth-1.py-2.px-2
= bootstrap_form_for(@garden_collaborator.new_record? ? [@garden, @garden_collaborator] : garden_garden_collaborator_path(@garden, @garden_collaborator)) do |f|
.card-body
- if @garden_collaborator.errors.any?
#error_explanation.alert.alert-warning{:role => "alert"}
%h4.alert-heading
= pluralize(@garden_collaborator.errors.size, "error")
prohibited this garden collaborator from being saved
%ul
- @garden_collaborator.errors.full_messages.each do |msg|
%li= msg
.alert.alert-info
Ask your friend, family member or community garden member for their growstuff username to add them as a collaborator on your garden.
= f.text_field :member_slug, maxlength: 255, required: true
.row
.card-footer
.text-right= f.submit 'Save Collaboator'

View File

@@ -0,0 +1,3 @@
- content_for :title, "Edit garden collaborator"
= render 'form'

View File

@@ -0,0 +1,72 @@
- content_for :title, "#{@garden} collaborators"
%h1= "#{@garden} collaborators"
- content_for :breadcrumbs do
%li.breadcrumb-item= link_to 'Gardens', gardens_path
%li.breadcrumb-item.active= link_to @garden, gardens_path(@garden)
.row
.col-md-2
- if current_member.present?
.flex-column.nav-pills.layout-nav{"role" => "tablist", "aria-orientation"=>"vertical"}
- if can?(:create, GardenCollaborator.new(garden: @garden))
= link_to url_for([@garden, GardenCollaborator.new(garden: @garden), action: :new]), class: 'btn' do
Add a #{GardenCollaborator.new(garden: @garden).model_name.human}
- else
= render 'shared/signin_signup', to: "record your #{model.to_s.pluralize.downcase}"
%hr/
%p.text-center
#{ENV['GROWSTUFF_SITE_NAME']} helps you track what you're
harvesting from your home garden and see how productive it is.
.col-md-10
- if @garden_collaborators.empty?
%p There are no collaborators to display.
- if can?(:create, GardenCollaborator) && @owner == current_member
= link_to 'Add a garden collaborator', new_garden_garden_collaborator_path, class: 'btn btn-primary'
- else
%section
%h2= page_entries_info @garden_collaborators
= will_paginate @garden_collaborators
- @garden_collaborators.each do |garden_collaborator|
- member = garden_collaborator.member
- cache member do
.card
.card-body
- if can?(:destroy, garden_collaborator)
%div{"style": "float: right"}
= link_to garden_garden_collaborator_path(@garden, garden_collaborator), method: :delete, class: "btn btn-danger" do
Remove access
%h4.login-name= link_to member, member
%div
= render "members/avatar", member: member
%div
= link_to "view all #{member}'s gardens", member_gardens_path(member)
%p
%small
Joined
= distance_of_time_in_words(member.created_at, Time.zone.now)
ago.
- if member.location.present?
= link_to member.location, place_path(member.location)
.card-footer
%ul.nav.nav-justified.small
%li.nav-item.border-right
= link_to member_plantings_path(member) do
= localize_plural(member.plantings.active, Planting)
%li.nav-item.border-right
= link_to member_harvests_path(member) do
= localize_plural(member.harvests, Harvest)
%li.nav-item
= link_to member_seeds_path(member) do
= localize_plural(member.seeds.active, Seed)
.row
.col-12= page_entries_info @garden_collaborators
.col-12= will_paginate @garden_collaborators

View File

@@ -0,0 +1,3 @@
- content_for :title, "New garden collaborator"
= render 'form'

View File

View File

@@ -5,7 +5,6 @@
%h1.h2-responsive.text-center
%strong=yield :title
.card-body
= required_field_help_text
- if @garden.errors.any?
#error_explanation.alert.alert-warning{:role => "alert"}
%h4.alert-heading
@@ -16,7 +15,7 @@
%li= msg
= f.text_field :name, maxlength: 255, required: true
= f.text_area :description, rows: 6
= f.text_area :description, rows: 6, placeholder: "Tell us about this garden - where is it located? What does it look like? Do you have a link to a photo? Do you have irrigation? What are your plans?"
= f.text_field :location,
value: @garden.location || current_member.location,
class: 'form-control', maxlength: 255
@@ -27,7 +26,7 @@
- else
= link_to "Change your location.", edit_member_registration_path
.row
.col-md-5.col-12= f.number_field :area, class: 'input-small', step: "any"
.col-md-5.col-12= f.number_field :area, class: 'input-small', step: "any", min: 0
.col-md-7.col-12= f.select(:area_unit, Garden::AREA_UNITS_VALUES, { include_blank: false })
.col-12= f.select(:garden_type_id, GardenType.all.order(:name).pluck(:name, :id),
selected: @garden.garden_type_id, include_blank: true)

View File

@@ -31,7 +31,7 @@
%p
:markdown
#{strip_tags markdownify(@garden.description)}
- unless @garden.description
- unless @garden.description.present?
.row-fluid
%p No description available yet.
@@ -39,8 +39,13 @@
%p
Why not
= link_to 'tell us more.', edit_garden_path(@garden)
- else
- if can? :edit, @garden
%p
Did you want to
= link_to 'update this description.', edit_garden_path(@garden)
- if @garden.plantings.where.not(planted_at: nil).any?
- if @garden.plantings.active.any?
%section.card
%h2 Garden progress
.card-body
@@ -55,6 +60,14 @@
- else
.col-md-12
%p Nothing is currently planted here.
- if can?(:edit, @garden)
.col-md-12
= garden_plant_something_button(@garden)
- if can?(:destroy, @garden)
.dropdown-divider
= delete_button(@garden, classes: 'dropdown-item text-danger',
message: 'All plantings associated with this garden will also be deleted. Are you sure?')
%section
%h2 Current activities in garden
@@ -65,6 +78,9 @@
- else
.col-md-12
%p Nothing is currently planned here.
- if can?(:edit, @garden)
.col-md-12
= garden_plan_something_button(@garden)
- if @suggested_companions.any?
%section.companions
@@ -83,6 +99,17 @@
%p
%strong Owner:
= link_to @garden.owner, @garden.owner
%p
%strong Collaborators:
- if can?(:create, GardenCollaborator.new(garden: @garden))
= link_to "Manage", garden_garden_collaborators_path(@garden)
- if @garden.garden_collaborators.any?
%ul
- @garden.garden_collaborators.each do |collabator|
%li= link_to collabator.member, collabator.member
- else
None
- if @garden.location.present?
%p
%strong Location:

View File

@@ -7,7 +7,6 @@
= harvest_icon
%strong=yield :title
.card-body
= required_field_help_text
- if @harvest.errors.any?
#error_explanation
%h2 #{pluralize(@harvest.errors.size, "error")} prohibited this harvest from being saved:"
@@ -31,8 +30,7 @@
= link_to "Request new crops.", new_crop_path
.col-md-4
= f.text_field :harvested_at, value: @harvest.harvested_at ? @harvest.harvested_at.to_fs(:ymd) : '',
class: 'add-datepicker', label: 'When?'
= f.date_field :harvested_at, value: @harvest.harvested_at ? @harvest.harvested_at.to_fs(:ymd) : '', label: 'When?'
.col-12
= f.form_group :plant_part_id, label: { text: "Harvested Plant Part" } do
.row
@@ -44,7 +42,7 @@
-# http://blog.isotoma.com/2012/03/html5-input-typenumber-and-decimalsfloats-in-chrome/
.row
.col-md-4
= f.number_field :quantity, class: 'input-small form-control', step: 'any', label: 'How many?'
= f.number_field :quantity, class: 'input-small form-control', step: 'any', label: 'How many?', min: 1
.col-md-8
= f.select(:unit, Harvest::UNITS_VALUES, { include_blank: false }, class: 'input-medium form-control')
.row

View File

@@ -31,7 +31,10 @@
.text-center= render 'plantings/badges', planting: planting
= render 'plantings/progress', planting: planting
.card-footer
.float-right
%span.chip.member-chip
= link_to member_path(slug: planting.owner_slug) do
= planting.owner_login_name
%small
Planted by
= link_to member_path(slug: planting.owner_slug), class: "owner-link" do
= planting.owner_login_name
in
= link_to garden_path(slug: planting.garden_slug), class: "garden-link" do
= planting.garden_name

View File

@@ -6,7 +6,6 @@
%strong=yield :title
= bootstrap_form_for(@planting) do |f|
.card-body
= required_field_help_text
- if @planting.errors.any?
#error_explanation
%h2
@@ -45,7 +44,7 @@
.col-md-4
= f.select(:sunniness, Planting::SUNNINESS_VALUES, { include_blank: '', label: 'Sun or shade?' } )
.col-md-4
= f.number_field :quantity, label: 'How many?'
= f.number_field :quantity, label: 'How many?', min: 1
= f.text_area :description, rows: 6, label: 'Tell us more about it'
.row

View File

@@ -14,7 +14,6 @@
%ul
- @seed.errors.full_messages.each do |msg|
%li= msg
= required_field_help_text
.form-group.required
= f.label :crop, 'Crop'
@@ -23,7 +22,7 @@
= f.hidden_field :parent_planting_id, value: @planting.id
- else
= auto_suggest @seed, :crop, class: 'form-control', default: @crop
= auto_suggest @seed, :crop, class: 'form-control', default: @crop, required: true
%span.help-inline
Can't find what you're looking for?
= link_to "Request new crops.", new_crop_path
@@ -32,7 +31,7 @@
= f.text_field :saved_at,
value: @seed.saved_at ? @seed.saved_at.to_fs(:ymd) : '',
class: 'add-datepicker', label: 'When were the seeds harvested/saved?'
.col-12.col-md-4= f.number_field :quantity, label: 'Quantity'
.col-12.col-md-4= f.number_field :quantity, label: 'Quantity', min: 1
.col-12.col-md-4
= f.text_field :plant_before, class: 'add-datepicker',
value: @seed.plant_before ? @seed.plant_before.to_fs(:ymd) : ''
@@ -46,21 +45,21 @@
%span.help-inline= t('.finish_helper')
.row
.col-md-6= f.number_field :days_until_maturity_min, label_as_placeholder: true, label: 'min', prepend: 'Days until maturity'
.col-md-6= f.number_field :days_until_maturity_max, label_as_placeholder: true, label: 'max', prepend: 'to', append: "days"
.col-md-6= f.number_field :days_until_maturity_min, label_as_placeholder: true, label: 'min', prepend: 'Days until maturity', min: 1
.col-md-6= f.number_field :days_until_maturity_max, label_as_placeholder: true, label: 'max', prepend: 'to', append: "days", min: 1
.row
.col-md-4
= f.select(:organic, Seed::ORGANIC_VALUES, {label: 'Organic?', wrapper: { class: 'required'}}, default: 'unknown', required: true)
= f.select(:organic, Seed::ORGANIC_VALUES, {label: 'Organic?', wrapper: { class: 'required'}, required: true}, default: 'unknown')
.col-md-4
= f.select(:gmo, Seed::GMO_VALUES, {label: 'GMO?', wrapper: { class: 'required'}}, default: 'unknown', required: true)
= f.select(:gmo, Seed::GMO_VALUES, {label: 'GMO?', wrapper: { class: 'required'}, required: true}, default: 'unknown')
.col-md-4
= f.select(:heirloom, Seed::HEIRLOOM_VALUES, {label: 'Heirloom?', wrapper: { class: 'required'}}, default: 'unknown', required: true)
= f.select(:heirloom, Seed::HEIRLOOM_VALUES, {label: 'Heirloom?', wrapper: { class: 'required'}, required: true}, default: 'unknown')
= f.text_area :description, rows: 6
%hr/
= t('.trade_help', site_name: ENV['GROWSTUFF_SITE_NAME'])
= f.select(:tradable_to, Seed::TRADABLE_TO_VALUES, {label: 'Will trade', wrapper: { class: 'required'}})
= f.select(:tradable_to, Seed::TRADABLE_TO_VALUES, {label: 'Will trade', wrapper: { class: 'required'}, required: true})
%span.help_inline
- if current_member.location.blank?
Don't forget to

View File

@@ -5,7 +5,6 @@
= edit_icon
.hide{id: "date--#{model.id}-#{field.to_s}"}
= bootstrap_form_for(model) do |f|
= f.text_field field,
value: model.send(field) ? model.send(field).to_fs(:ymd) : '',
class: 'add-datepicker', label: 'When?'
= f.date_field field,
value: model.send(field) ? model.send(field).to_fs(:ymd) : '', label: 'When?'
= f.submit :save

View File

@@ -12,7 +12,6 @@
- elsif field_type == :select
= f.select field, collection
- elsif field_type == :date
= f.text_field field,
value: model.send(field) ? model.send(field).to_fs(:ymd) : '',
class: 'add-datepicker', label: 'When?'
= f.date_field field,
value: model.send(field) ? model.send(field).to_fs(:ymd) : '', label: 'When?'
= f.submit :save

View File

@@ -30,6 +30,8 @@ Rails.application.routes.draw do
resources :gardens, concerns: :has_photos, param: :slug do
get 'timeline' => 'charts/gardens#timeline', constraints: { format: 'json' }
resources :garden_collaborators
end
resources :plantings, concerns: :has_photos, param: :slug do

View File

@@ -0,0 +1,10 @@
class CreateGardenCollaborators < ActiveRecord::Migration[7.2]
def change
create_table :garden_collaborators do |t|
t.references :member
t.references :garden
t.timestamps
t.index [:member_id, :garden_id], unique: true
end
end
end

View File

@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.1].define(version: 2024_07_14_024918) do
ActiveRecord::Schema[7.2].define(version: 2024_09_29_041435) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -54,13 +54,6 @@ ActiveRecord::Schema[7.1].define(version: 2024_07_14_024918) do
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "slug"
t.integer "cached_votes_total", default: 0
t.integer "cached_votes_score", default: 0
t.integer "cached_votes_up", default: 0
t.integer "cached_votes_down", default: 0
t.integer "cached_weighted_score", default: 0
t.integer "cached_weighted_total", default: 0
t.float "cached_weighted_average", default: 0.0
t.integer "likes_count", default: 0
t.index ["garden_id"], name: "index_activities_on_garden_id"
t.index ["owner_id"], name: "index_activities_on_owner_id"
@@ -214,13 +207,6 @@ ActiveRecord::Schema[7.1].define(version: 2024_07_14_024918) do
t.text "body", null: false
t.datetime "created_at", precision: nil
t.datetime "updated_at", precision: nil
t.integer "cached_votes_total", default: 0
t.integer "cached_votes_score", default: 0
t.integer "cached_votes_up", default: 0
t.integer "cached_votes_down", default: 0
t.integer "cached_weighted_score", default: 0
t.integer "cached_weighted_total", default: 0
t.float "cached_weighted_average", default: 0.0
end
create_table "crop_companions", force: :cascade do |t|
@@ -280,6 +266,16 @@ ActiveRecord::Schema[7.1].define(version: 2024_07_14_024918) do
t.index ["slug"], name: "index_forums_on_slug", unique: true
end
create_table "garden_collaborators", force: :cascade do |t|
t.bigint "member_id"
t.bigint "garden_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["garden_id"], name: "index_garden_collaborators_on_garden_id"
t.index ["member_id", "garden_id"], name: "index_garden_collaborators_on_member_id_and_garden_id", unique: true
t.index ["member_id"], name: "index_garden_collaborators_on_member_id"
end
create_table "garden_types", force: :cascade do |t|
t.text "name", null: false
t.text "slug", null: false
@@ -504,13 +500,6 @@ ActiveRecord::Schema[7.1].define(version: 2024_07_14_024918) do
t.datetime "date_taken", precision: nil
t.integer "likes_count", default: 0
t.string "source"
t.integer "cached_votes_total", default: 0
t.integer "cached_votes_score", default: 0
t.integer "cached_votes_up", default: 0
t.integer "cached_votes_down", default: 0
t.integer "cached_weighted_score", default: 0
t.integer "cached_weighted_total", default: 0
t.float "cached_weighted_average", default: 0.0
t.index ["fullsize_url"], name: "index_photos_on_fullsize_url", unique: true
t.index ["thumbnail_url"], name: "index_photos_on_thumbnail_url", unique: true
end
@@ -553,13 +542,6 @@ ActiveRecord::Schema[7.1].define(version: 2024_07_14_024918) do
t.integer "days_to_last_harvest"
t.integer "parent_seed_id"
t.integer "harvests_count", default: 0
t.integer "cached_votes_total", default: 0
t.integer "cached_votes_score", default: 0
t.integer "cached_votes_up", default: 0
t.integer "cached_votes_down", default: 0
t.integer "cached_weighted_score", default: 0
t.integer "cached_weighted_total", default: 0
t.float "cached_weighted_average", default: 0.0
t.integer "likes_count", default: 0
t.index ["slug"], name: "index_plantings_on_slug", unique: true
end
@@ -574,13 +556,6 @@ ActiveRecord::Schema[7.1].define(version: 2024_07_14_024918) do
t.integer "forum_id"
t.integer "likes_count", default: 0
t.integer "comments_count", default: 0
t.integer "cached_votes_total", default: 0
t.integer "cached_votes_score", default: 0
t.integer "cached_votes_up", default: 0
t.integer "cached_votes_down", default: 0
t.integer "cached_weighted_score", default: 0
t.integer "cached_weighted_total", default: 0
t.float "cached_weighted_average", default: 0.0
t.index ["created_at", "author_id"], name: "index_posts_on_created_at_and_author_id"
t.index ["slug"], name: "index_posts_on_slug", unique: true
end
@@ -628,22 +603,6 @@ ActiveRecord::Schema[7.1].define(version: 2024_07_14_024918) do
t.index ["slug"], name: "index_seeds_on_slug", unique: true
end
create_table "votes", force: :cascade do |t|
t.string "votable_type"
t.bigint "votable_id"
t.string "voter_type"
t.bigint "voter_id"
t.boolean "vote_flag"
t.string "vote_scope"
t.integer "vote_weight"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["votable_id", "votable_type", "vote_scope"], name: "index_votes_on_votable_id_and_votable_type_and_vote_scope"
t.index ["votable_type", "votable_id"], name: "index_votes_on_votable"
t.index ["voter_id", "voter_type", "vote_scope"], name: "index_votes_on_voter_id_and_voter_type_and_vote_scope"
t.index ["voter_type", "voter_id"], name: "index_votes_on_voter"
end
add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id"
add_foreign_key "active_storage_variant_records", "active_storage_blobs", column: "blob_id"
add_foreign_key "harvests", "plantings"

View File

@@ -0,0 +1,6 @@
FactoryBot.define do
factory :garden_collaborator do
garden
member
end
end

View File

@@ -10,10 +10,6 @@ describe "Gardens", :js do
include_examples 'is accessible'
it "has the required fields help text" do
expect(page).to have_content "* denotes a required field"
end
it "displays required and optional fields properly" do
expect(page).to have_selector ".required", text: "Name"
expect(page).to have_selector 'textarea#garden_description'
@@ -27,14 +23,5 @@ describe "Gardens", :js do
expect(page).to have_content "Garden was successfully created"
expect(page).to have_content "New garden"
end
it "Refuse to create new garden with negative area" do
visit new_garden_path
fill_in "Name", with: "Negative Garden"
fill_in "Area", with: -5
click_button "Save"
expect(page).to have_no_content "Garden was successfully created"
expect(page).to have_content "Area must be greater than or equal to 0"
end
end
end

View File

@@ -52,15 +52,6 @@ describe "Planting a crop", :js do
expect(page).to have_content "New garden"
end
it "Refuse to create new garden with negative area" do
visit new_garden_path
fill_in "Name", with: "Negative Garden"
fill_in "Area", with: -5
click_button "Save"
expect(page).to have_no_content "Garden was successfully created"
expect(page).to have_content "Area must be greater than or equal to 0"
end
context "Clicking edit from the index page" do
before do
visit gardens_path

View File

@@ -13,10 +13,6 @@ describe "Harvesting a crop", :js, :search do
it_behaves_like "crop suggest", "harvest", "crop"
it "has the required fields help text" do
expect(page).to have_content "* denotes a required field"
end
describe "displays required and optional fields properly" do
it { expect(page).to have_selector ".required", text: "What did you harvest?" }
it { expect(page).to have_selector 'input#harvest_quantity' }
@@ -30,7 +26,7 @@ describe "Harvesting a crop", :js, :search do
within "form#new_harvest" do
choose plant_part.name
fill_in "When?", with: "2014-06-15"
fill_in "When?", with: Time.new(2014, 06, 15)
fill_in "How many?", with: 42
fill_in "Weighing (in total)", with: 42
fill_in "Notes", with: "It's killer."

View File

@@ -18,10 +18,6 @@ describe "Planting a crop", :js, :search do
it_behaves_like "crop suggest", "planting"
it "has the required fields help text" do
expect(page).to have_content "* denotes a required field"
end
describe "displays required and optional fields properly" do
it { expect(page).to have_selector ".required", text: "What did you plant?" }
it { expect(page).to have_selector ".required", text: "Where did you plant it?" }

View File

@@ -12,10 +12,6 @@ describe "Seeds", :js, :search do
it_behaves_like "crop suggest", "seed", "crop"
it "has the required fields help text" do
expect(page).to have_content "* denotes a required field"
end
describe "displays required and optional fields properly" do
# NOTE: The required behaviour is pushed down to the control itself, not the form-group as of rails 7.1.
# Modern browsers enforce the required behaviour better than us doing it ourselves.

View File

@@ -10,13 +10,6 @@ describe ApplicationHelper do
parse_date('may 12th 2012').should eq Date.new(2012, 5, 12)
end
it "shows required field marker help text with proper formatting" do
output = required_field_help_text
expect(output).to have_selector '.margin-bottom'
expect(output).to have_selector '.red', text: '*'
expect(output).to have_selector 'em', text: 'denotes a required field'
end
describe '#avatar_uri' do
context 'with a normal user' do
before do

View File

@@ -7,9 +7,6 @@ require 'simplecov'
# output coverage locally AND send it to coveralls
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([SimpleCov::Formatter::HTMLFormatter])
# fail if there's a significant test coverage drop
SimpleCov.maximum_coverage_drop 1
require 'spec_helper'
require File.expand_path('../config/environment', __dir__)
require 'rspec/rails'