Commit Graph

197 Commits

Author SHA1 Message Date
google-labs-jules[bot]
7457edf559 Merge pull request #4380 from Growstuff/community-garden-landing-page
feat: Add community garden landing page
2025-12-03 18:20:40 +10:30
google-labs-jules[bot]
323c7dc3ee Optimize Data Improvement Page (#4356)
* feat: Add data improvement page to crops controller

This commit introduces a new data improvement page to the crops controller. The page displays tabbed lists of crops with missing data, allowing users to easily identify areas for data quality improvement.

The following data quality categories are included:
- Crops without photos
- Crops without descriptions
- Crops without a youtube video
- Crops without alternate names
- Crops without a scientific name with a wikidata id
- Crops without row spacing
- Crops without sun requirements
- Crops without height

All lists are sorted by planting count in descending order.

* refactor: Optimize data improvement page to load tab data on demand

This commit refactors the data improvement page to load data for each tab on demand, rather than loading all queries at once. This improves the performance of the page by only executing the query for the currently active tab.

The controller action now uses a `case` statement based on a `tab` URL parameter to execute the appropriate query. The view has been updated to pass this parameter when a tab is clicked.

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2025-12-01 19:41:28 +10:30
google-labs-jules[bot]
460daf36f9 Add revert functionality to admin crops page (#4346)
* feat(admin): add revert functionality to crops page

This change adds a "Revert" button to the admin crops page, allowing crop wranglers to revert changes to a previous version.

It introduces a new `Admin::VersionsController` with a `revert` action that uses `paper_trail`'s `reify` method to restore a previous version of a `Crop` object.

The view is updated to include a "Revert" button, which is guarded by a `can?(:wrangle, Crop)` check to ensure only authorized users can see it.

The controller also includes an authorization check to prevent unauthorized users from accessing the revert action directly.

A feature spec is added to test the new functionality, including the authorization logic.

* Consistent UX

* Specs

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>
2025-11-30 15:05:13 +10:30
google-labs-jules[bot]
13a8276313 Add version tracking to crops model (#4343)
* feat: Add version tracking to Crop model

This commit introduces version tracking for the Crop model using the PaperTrail gem.

Key changes include:
- Integrating `has_paper_trail` into the `Crop` model.
- Adding a "History" section to the crop show page to display a timeline of changes for that specific crop.
- Creating a new admin page for users with the "crop_wrangler" role to view a log of all recent crop edits, creations, and deletions.
- Fixing several N+1 query performance issues by eager-loading associated `Member` records in both the `CropsController` and the new `Admin::CropsController`.
- Refactoring view logic into a shared partial to reduce code duplication.

* Add papertrail

* Admin UI

* Add papertrail DB

* Add papertrail DB

* Rearrange

* Fix permissions

* Fix permissions

* Fix UI

* Fix UI

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>
2025-11-30 14:47:46 +10:30
google-labs-jules[bot]
449ab1f6c0 Add ability to create companion plantings
This change adds the ability for crop wranglers to create and manage companion plantings for crops.

- Adds a `source_url` to the `CropCompanion` model to store an optional reference URL.
- Restricts the management of companion plantings to users with the `crop_wrangler` role.
- Creates a new admin interface for managing companion plantings for a specific crop.
- Updates the crop show page to display companions from both the crop and its parent crop.
2025-09-21 00:49:11 +00:00
google-labs-jules[bot]
02db5b8130 Add API token generation, authentication, and CRUD for a number of the API resources (#4237)
* feat: Add API token generation and authentication

This commit introduces API token generation and authentication for write operations.

- Adds a section to the user's profile edit page to generate and display an API token.
- Reuses the `authentications` table to store the API token, avoiding the need for a database migration.
- Implements token-based authentication for the API using the `Authorization: Token token=...` header.
- Enables write operations for all API resources and ensures they are protected by the new authentication mechanism.
- Adds feature and request specs to test the new functionality.

* feat: Add API token generation and authentication

This commit introduces API token generation and authentication for write operations.

- Adds a section to the user's profile edit page to generate and display an API token.
- Reuses the `authentications` table to store the API token, avoiding the need for a database migration.
- Implements token-based authentication for the API using the `Authorization: Token token=...` header.
- Enables write operations for all API resources and ensures they are protected by the new authentication mechanism.
- Adds feature and request specs to test the new functionality.

* Mark as editable

* Refactor

* WIP - Authentication

* Implement more test coverage

* Split 401 and 403

* Before Create hooks

* Update harvest specs, defaulting to the first plant part - this may not be right

* Update coverage

* Update coverage

* Rubocop

* Rubocop

* Rubocop

* Fix coverage

* For now, mark photos immutable again

* Fix specs

* Fix specs

* Rubocop

* Fix specs

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>
2025-09-10 19:50:06 +09:30
google-labs-jules[bot]
e5c71f1dc4 Merge pull request #4230 from Growstuff/feature/add-more-filters
feat: Add more filters to API resources
2025-09-09 21:34:49 +09:30
Daniel O'Connor
1657a527e9 Remove Openfarm data fetching 2025-08-27 14:20:22 +00:00
google-labs-jules[bot]
a98990ccd2 Add transplant feature for plantings (#4133)
* Add ability to transplant a planting

* Fix view tests

* Transplantable gardens

* Add spec

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>
2025-08-24 22:31:14 +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
5be0153c74 Activities (#3646)
* Implement activities

* Add activities to timeline

* Add factory

* Add coverage

* Fix misc issues

* Activities display

* Add activities to garden and plantings

* Add activities to garden and plantings

* Add planting

* Add to planting, harvest show

* More CRUD

* More CRUD

* index

* index

* Extract card view

* Permissions

* Add edit

* Remove workaround fro vs code

* Fix title

* CSV

* CSV

* Add RSS, ical

* Extend ical slightly

* Cleanup

* Rubocop

* Remove doubled form

* Change icon

* Fix short description

* Add menus

* Put homepage widget in

* Add activity icon - MIT licenced - https://www.svgrepo.com/svg/336823/plan

* Naming

* Missing files

* Revert VS Code lag induced change

* Update app/views/home/_harvests.html.haml

* Update activities_controller.rb

* Update activities_controller.rb

* Update app/controllers/activities_controller.rb

* Update index.html.haml

* Apply suggestions from code review

* Apply suggestions from code review

* Typo

* Translation

* Apply suggestions from code review

* Update app/views/plantings/index.ics.erb

* Update app/models/activity.rb

* Update plantings_spec.rb

* Update plantings_spec.rb

* We are now rendering an extra event, so check the next one for the old behaviour
2024-03-10 11:36:24 +10:30
Daniel O'Connor
1f0cfa9b6c Add GBIF to our scientific names, so that our crops can associate creative commons photos (#3559)
* Add GBIF cient

* Add lookup

* Add autocomplete for GBIF lookup

* Add extra detail to scientific names

* Autocomplete

* Add routes

* Rmeove mapping

* Add autocomplete

* Update GBIF data on save

* db/schema

* Style

* Extract service

* Add concern

* Add concern

* Save photos

* Initial coverage

* Coverage

* Add coverage

* Shut up, codeclimate

* Shut up, codeclimate

* Unused

* Shut up, codeclimate

* Apply suggestions from code review

* Remove localhost

* Fix rubocop

* Fix rubocop

* Add UI links

* Add rake

* Indent

* Update Gemfile.lock

* Update lib/tasks/gbif.rake

* Update app/views/crops/_scientific_names.html.haml

* Rubocop

* Expand edit photo form

* Fix error

* Add model validations

* Skip photos without backlinks

* Fix tests

* Add photo words

* Allow blank

* Rubocop and handle invalid legacy data

* Apply suggestions from code review

* Update lib/tasks/gbif.rake
2024-01-21 13:22:25 +10:30
codefactor-io
4ff95fbac9 [CodeFactor] Apply fixes 2020-01-21 22:26:08 +13:00
Brenda Wallace
54778d9884 Likes popuplating from elastic, no more extra look ups 2020-01-01 08:38:27 +13:00
Brenda Wallace
fafe611315 reinstate planting harvest and planting seeds 2019-12-24 11:54:29 +13:00
Brenda Wallace
4a2bb2342c Sorting out cancancan, copied to common parent controller 2019-12-24 11:38:30 +13:00
codefactor-io
e8760f9c38 [CodeFactor] Apply fixes 2019-12-20 03:33:23 +00:00
codefactor-io
424132d32e [CodeFactor] Apply fixes to commit c9fddc4 2019-12-19 08:55:10 +00:00
Brenda Wallace
c9fddc4b7a Use slugs as params 2019-12-19 21:54:47 +13:00
Brenda Wallace
38e36c4a2c Merge remote-tracking branch 'upstream/dev' into cache/harvests
Conflicts:
	.rubocop_todo.yml
	app/controllers/likes_controller.rb
	app/models/concerns/crop_search.rb
	app/services/crop_search_service.rb
2019-12-19 10:28:17 +13:00
Brenda Wallace
04fd1a343a Rubocop update (#2334)
* Update rubocop config

* Rubocop update - for rubocop 0.77

* [CodeFactor] Apply fixes

* rubocop fixes

* [CodeFactor] Apply fixes to commit 2826c2e
2019-12-16 22:35:33 +13:00
Brenda Wallace
b44877a63e Using elastic for plantings look ups 2019-12-11 11:38:34 +13:00
Brenda Wallace
0c3149205b Put resources back into namespaces 2019-11-19 13:53:12 +13:00
Brenda Wallace
818a980f6d Move jsonapi resources files 2019-11-18 10:11:53 +13:00
Brenda Wallace
21848bf5b4 Merge branch 'dev' into role-admin 2019-10-19 09:42:49 +13:00
bestest-mensch
80fb4f5fe6 add ability to delete multiple conversations at once 2019-10-07 21:38:19 +00:00
Brenda Wallace
3422a0d899 Administer member's roles 2019-10-06 14:19:39 +13:00
Brenda Wallace
7b5698f977 👩‍🌾 Import openfarm data (#2177)
* Pull in openfarm icons, photos, info
* Truncating member location
* tidying up harvest display, and reducing duplication in css styles
* Tiny crop chip
* only show crop charts if there is data to show
* Make the styles more Growstuff
* Fixed links to openfarm
* Updating specs to cope with new photo sources
fix broken garden timeline on some pages
* Update homepage blurb
* Import crop companions
* More fluid page
* use thumbnail unless the source is flickr
* Messing with homepage
* Added crop growing_degree_days
* expect full size url on photos helper spec
* formatted dates from seeds#show
* tidy up places#show
* Move progress bar
* Quicker buttons for approve/reject crops
* Remove kaminari gem
* use crop cards on hierarchy page
* more crops on crops#index
* Wrap photo creation in transaction
* Wrap crop companions in a transaction
2019-09-28 17:23:25 +12:00
Brenda Wallace
1199df6d9d Merge branch 'dev' into mailbox 2019-07-20 19:44:12 +12:00
Brenda Wallace
d91a5bf55f Rewriting messages functionality to use mail boxer 2019-07-20 19:43:29 +12:00
Brenda Wallace
629352ef4f Merge remote-tracking branch 'upstream/dev' into mailbox
Conflicts:
	Gemfile.lock
	app/assets/stylesheets/application.scss
	db/schema.rb
2019-07-20 13:20:10 +12:00
Brenda Wallace
91897273be Merge branch 'dev' into ban-hammer 2019-07-16 20:56:59 +12:00
Brenda Wallace
fb77beeb7d rubocop lint 2019-07-16 20:56:33 +12:00
Brenda Wallace
c8e47e800e Moved admin ban code to admin controler 2019-07-16 20:54:32 +12:00
Brenda Wallace
e0e10c29dc Renaming photographings to photo associations
now it matches the name of its controller, and it is clearer to understand
2019-07-13 16:13:37 +12:00
Brenda Wallace
c50556221c TRying to get mailboxxer working 2019-07-11 22:28:51 +12:00
Brenda Wallace
050dfda77e Timeline 2019-07-07 22:03:15 +12:00
Brenda Wallace
5395aefa66 Rename containers to garden types 2019-03-26 20:56:11 +13:00
Brenda Wallace
8c03e3f4ab Merge branch 'dev' into bb-track-types-of-gardens 2019-01-30 16:45:14 +13:00
Brandon Baker
a00ed5a176 Merge branch 'dev' into bb-track-types-of-gardens 2019-01-08 12:03:39 -05:00
Brenda Wallace
c0e957b051 Places params is :place 2019-01-06 08:45:42 +13:00
Brenda Wallace
106497c841 Rubocop fix ups 2019-01-06 08:45:42 +13:00
Brenda Wallace
c2bcae47d2 Use the admin/members controller 2019-01-06 08:45:42 +13:00
Brenda Wallace
74e30aeb1d move cms into admin scope 2019-01-06 08:45:42 +13:00
Brenda Wallace
bf6dd049ae Fixed up admin routes 2019-01-06 08:45:42 +13:00
Brenda Wallace
1381b619be on collection, routes for notification 2019-01-06 08:45:42 +13:00
Brenda Wallace
b44b7fdd2e Move follows from members controller to follows controller 2019-01-06 08:45:42 +13:00
Brenda Wallace
1e266a92f6 Members slug used in rotes 2019-01-06 08:45:42 +13:00
Brenda Wallace
387200abf7 Moving garden data under members 2019-01-06 08:45:42 +13:00
Brenda Wallace
57d53a5c0e Fixed naming of member follows/following route 2019-01-06 08:45:42 +13:00