Compare commits

...

1658 Commits

Author SHA1 Message Date
Awesome Code
34470a8457 Auto corrected by following Ruby Layout/LeadingBlankLines 2018-09-10 22:20:20 +00:00
Awesome Code
90f4db4853 Auto corrected by following Ruby rspec layout 2018-09-10 22:20:12 +00:00
pozorvlak
28503cdca0 Merge pull request #1696 from Growstuff/awesomecode-ruby/factorybot/attributedefinedstatically-22693
Auto corrected by following Ruby FactoryBot/AttributeDefinedStatically
2018-09-10 10:48:20 +01:00
Awesome Code
31744491ea Auto corrected by following Ruby FactoryBot/AttributeDefinedStatically 2018-09-09 21:53:57 +00:00
Cesy
d541f795f6 Merge pull request #1694 from Br3nda/upgrade/elasticsearch
Upgrade/elasticsearch
2018-09-09 09:33:09 +01:00
Brenda Wallace
03837e193e Test coverage 2018-09-09 14:25:40 +12:00
Brenda Wallace
612bfcffcb Adding codeclimate to env 2018-09-09 13:48:17 +12:00
Brenda Wallace
d0b785bcd3 Pass elasticsearch version from travis.yaml 2018-09-09 13:33:20 +12:00
Brenda Wallace
857c9e9d7a whitespace fixups 2018-09-09 12:44:52 +12:00
Brenda Wallace
913ac45127 Changed query syntax for elasticsearch 2018-09-09 12:40:40 +12:00
Brenda Wallace
27c4dbedf2 Elasticsearch has dropped the string type and is now using text 2018-09-09 12:18:50 +12:00
Brenda Wallace
4867c68984 Added stdout print when creating/refreshing elasticsearch index 2018-09-09 12:11:10 +12:00
Brenda Wallace
a326f92210 Move elastic search index create to same line as db:create 2018-09-09 11:59:50 +12:00
Brenda Wallace
835e277f49 whitepace fix up 2018-09-09 11:58:43 +12:00
Brenda Wallace
7197843ac3 Reindex elasticsearch rake task 2018-09-09 11:56:37 +12:00
Brenda Wallace
ea1fb90279 Create the search index 2018-09-09 11:55:19 +12:00
Brenda Wallace
53b08422ce Force new config when installing elasticsearch 2018-09-09 11:08:34 +12:00
Brenda Wallace
a051523354 Upgrade to elasticsearch 6.2.3 2018-09-09 10:56:21 +12:00
Brenda Wallace
5563b183dc Revert "Remove custom elastic search installer in travis"
This reverts commit d629203570.
2018-09-09 10:52:20 +12:00
Brenda Wallace
69f6c8d5de Merge branch 'dev' into upgrade/elasticsearch 2018-09-09 10:04:19 +12:00
Brenda Wallace
f69f0861d2 Style fix up 2018-09-09 10:04:02 +12:00
Brenda Wallace
d629203570 Remove custom elastic search installer in travis 2018-09-09 09:44:43 +12:00
Brenda Wallace
338e705db7 Upgrade elastic search gems 2018-09-09 09:44:27 +12:00
dependabot[bot]
dfc53747d9 Bump unicorn from 5.4.0 to 5.4.1
Bumps [unicorn](https://bogomips.org/unicorn/) from 5.4.0 to 5.4.1.

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-09-07 11:45:52 +12:00
brenda
2b8aac19dd Revert "Auto corrected by following Ruby Capybara/FeatureMethods"
This reverts commit b52763b7c2.
2018-09-07 10:40:09 +12:00
Awesome Code
b52763b7c2 Auto corrected by following Ruby Capybara/FeatureMethods 2018-09-05 12:06:58 +00:00
dependabot[bot]
45fcb76f30 Merge pull request #1681 from Growstuff/dependabot/bundler/selenium-webdriver-3.14.0 2018-08-07 09:25:36 +00:00
dependabot[bot]
b5c55f42b8 Bump selenium-webdriver from 3.13.0 to 3.14.0
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 3.13.0 to 3.14.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-3.13.0...selenium-3.14.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-08-07 09:07:48 +00:00
dependabot[bot]
53ddb4ef94 Bump rspec-rails from 3.7.2 to 3.8.0
Bumps [rspec-rails](https://github.com/rspec/rspec-rails) from 3.7.2 to 3.8.0.
- [Release notes](https://github.com/rspec/rspec-rails/releases)
- [Changelog](https://github.com/rspec/rspec-rails/blob/master/Changelog.md)
- [Commits](https://github.com/rspec/rspec-rails/compare/v3.7.2...v3.8.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-08-07 21:05:39 +12:00
dependabot[bot]
4147a571a5 Merge pull request #1668 from Growstuff/dependabot/bundler/active_utils-3.3.12 2018-08-06 11:36:17 +00:00
dependabot[bot]
02f4c7f3ac Bump active_utils from 3.3.11 to 3.3.12
Bumps [active_utils](https://github.com/shopify/active_utils) from 3.3.11 to 3.3.12.
- [Release notes](https://github.com/shopify/active_utils/releases)
- [Changelog](https://github.com/Shopify/active_utils/blob/master/CHANGELOG.md)
- [Commits](https://github.com/shopify/active_utils/compare/v3.3.11...v3.3.12)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-08-06 08:18:44 +00:00
dependabot[bot]
329f77db78 Bump factory_bot_rails from 4.8.2 to 4.10.0
Bumps [factory_bot_rails](https://github.com/thoughtbot/factory_bot_rails) from 4.8.2 to 4.10.0.
- [Release notes](https://github.com/thoughtbot/factory_bot_rails/releases)
- [Changelog](https://github.com/thoughtbot/factory_bot_rails/blob/master/NEWS)
- [Commits](https://github.com/thoughtbot/factory_bot_rails/compare/v4.8.2...v4.10.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-08-06 20:15:13 +12:00
Awesome Code
345fac4358 Auto corrected by following Ruby FactoryBot/StaticAttributeDefinedDynamically 2018-07-21 04:04:00 +00:00
dependabot[bot]
409f24e4e5 Merge pull request #1658 from Growstuff/dependabot/bundler/capybara-screenshot-1.0.21 2018-07-16 09:39:00 +00:00
dependabot[bot]
5dd22d8d1c Bump capybara-screenshot from 1.0.19 to 1.0.21
Bumps [capybara-screenshot](https://github.com/mattheworiordan/capybara-screenshot) from 1.0.19 to 1.0.21.
- [Release notes](https://github.com/mattheworiordan/capybara-screenshot/releases)
- [Changelog](https://github.com/mattheworiordan/capybara-screenshot/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mattheworiordan/capybara-screenshot/compare/v1.0.19...v1.0.21)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-16 09:25:22 +00:00
dependabot[bot]
dbbd7fdeb4 Bump uglifier from 4.1.14 to 4.1.15
Bumps [uglifier](https://github.com/lautis/uglifier) from 4.1.14 to 4.1.15.
- [Release notes](https://github.com/lautis/uglifier/releases)
- [Changelog](https://github.com/lautis/uglifier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lautis/uglifier/compare/v4.1.14...v4.1.15)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-16 21:23:32 +12:00
Brenda Wallace
3c4e1423f9 Merge pull request #1659 from Growstuff/dependabot/bundler/geocoder-1.4.9
Bump geocoder from 1.4.7 to 1.4.9
2018-07-15 08:50:20 +12:00
dependabot[bot]
40600215bc Bump geocoder from 1.4.7 to 1.4.9
Bumps [geocoder](https://github.com/alexreisner/geocoder) from 1.4.7 to 1.4.9.
- [Release notes](https://github.com/alexreisner/geocoder/releases)
- [Changelog](https://github.com/alexreisner/geocoder/blob/master/CHANGELOG.md)
- [Commits](https://github.com/alexreisner/geocoder/compare/v1.4.7...v1.4.9)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-12 08:25:38 +00:00
Brenda Wallace
0bdf42f6c8 Merge pull request #1669 from Growstuff/dependabot/bundler/faker-1.9.1
Bump faker from 1.8.7 to 1.9.1
2018-07-12 20:23:20 +12:00
dependabot[bot]
711fb28f49 Bump faker from 1.8.7 to 1.9.1
Bumps [faker](https://github.com/stympy/faker) from 1.8.7 to 1.9.1.
- [Release notes](https://github.com/stympy/faker/releases)
- [Changelog](https://github.com/stympy/faker/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stympy/faker/compare/v1.8.7...v1.9.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-12 07:25:39 +00:00
Brenda Wallace
77f14feae5 Merge pull request #1656 from Growstuff/dependabot/bundler/font-awesome-sass-5.0.13
Bump font-awesome-sass from 5.0.9 to 5.0.13
2018-07-04 13:12:36 +12:00
dependabot[bot]
1b6bbfcfac Bump font-awesome-sass from 5.0.9 to 5.0.13
Bumps [font-awesome-sass](https://github.com/FortAwesome/font-awesome-sass) from 5.0.9 to 5.0.13.
- [Release notes](https://github.com/FortAwesome/font-awesome-sass/releases)
- [Commits](https://github.com/FortAwesome/font-awesome-sass/compare/5.0.9...5.0.13)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-03 22:13:14 +00:00
Brenda Wallace
d39af973e0 Merge pull request #1663 from Growstuff/dependabot/bundler/uglifier-4.1.14
Bump uglifier from 4.1.13 to 4.1.14
2018-07-04 10:11:34 +12:00
dependabot[bot]
14dd8bbc8b Bump uglifier from 4.1.13 to 4.1.14
Bumps [uglifier](https://github.com/lautis/uglifier) from 4.1.13 to 4.1.14.
- [Release notes](https://github.com/lautis/uglifier/releases)
- [Changelog](https://github.com/lautis/uglifier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lautis/uglifier/compare/v4.1.13...v4.1.14)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-03 21:03:20 +00:00
Brenda Wallace
72753c2d43 Merge pull request #1660 from Growstuff/dependabot/bundler/chartkick-2.3.5
Bump chartkick from 2.3.4 to 2.3.5
2018-07-04 09:01:36 +12:00
Brenda Wallace
b1854bbd4a Following same syntax in contributors.md 2018-07-04 08:35:14 +12:00
Brenda Wallace
709cd640d2 Adding dependabot-bot and dependabot. 2018-07-04 08:34:34 +12:00
Brenda Wallace
9e7c6584a6 Turning off BundleOutdated in overcommit 2018-07-04 08:27:11 +12:00
dependabot[bot]
1211be2fef Bump chartkick from 2.3.4 to 2.3.5
Bumps [chartkick](https://github.com/ankane/chartkick) from 2.3.4 to 2.3.5.
- [Release notes](https://github.com/ankane/chartkick/releases)
- [Changelog](https://github.com/ankane/chartkick/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ankane/chartkick/compare/v2.3.4...v2.3.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-03 10:46:22 +00:00
Brenda Wallace
d712b440b4 Merge pull request #1650 from Growstuff/dependabot/bundler/comfortable_mexican_sofa-1.12.11
Bump comfortable_mexican_sofa from 1.12.10 to 1.12.11
2018-07-03 22:44:10 +12:00
Brenda Wallace
517cfd85e5 Merge branch 'dev' into dependabot/bundler/comfortable_mexican_sofa-1.12.11 2018-07-03 22:03:58 +12:00
Brenda Wallace
7030c868b6 Fixing deoendabot 2018-07-03 22:01:34 +12:00
Brenda Wallace
d8b39c69ec Merge branch 'dev' into dependabot/bundler/comfortable_mexican_sofa-1.12.11 2018-07-03 21:01:21 +12:00
Brenda Wallace
e7e997290e Fixed dependabot username 2018-07-03 20:52:24 +12:00
Daniel O'Connor
5d88b65284 Merge branch 'dev' into dependabot/bundler/comfortable_mexican_sofa-1.12.11 2018-07-02 15:25:39 +09:30
Daniel O'Connor
31d97f4c00 Merge pull request #1653 from Growstuff/dependabot/bundler/newrelic_rpm-5.2.0.345
Bump newrelic_rpm from 5.0.0.342 to 5.2.0.345
2018-07-02 15:24:22 +09:30
Daniel O'Connor
ec9f57e6b8 Merge pull request #1649 from Growstuff/dependabot/bundler/selenium-webdriver-3.13.0
Bump selenium-webdriver from 3.11.0 to 3.13.0
2018-07-02 15:23:53 +09:30
Daniel O'Connor
dd0e9f74e6 Merge branch 'dev' into dependabot/bundler/comfortable_mexican_sofa-1.12.11 2018-07-02 13:20:41 +09:30
Daniel O'Connor
9d389726f5 Merge branch 'dev' into dependabot/bundler/newrelic_rpm-5.2.0.345 2018-07-02 12:44:26 +09:30
Daniel O'Connor
4fd0096c85 Merge pull request #1651 from Growstuff/dependabot/bundler/rack-protection-2.0.3
Bump rack-protection from 2.0.1 to 2.0.3
2018-07-02 12:44:02 +09:30
Daniel O'Connor
28945b6f20 Merge pull request #1652 from Growstuff/dependabot/bundler/uglifier-4.1.13
Bump uglifier from 4.1.10 to 4.1.13
2018-07-02 12:40:59 +09:30
Daniel O'Connor
b926f07e2a Update CONTRIBUTORS.md 2018-07-02 12:39:59 +09:30
Daniel O'Connor
b10719ecab Merge branch 'dev' into dependabot/bundler/selenium-webdriver-3.13.0 2018-07-02 09:47:13 +09:30
Daniel O'Connor
1527fec441 Merge branch 'dev' into dependabot/bundler/uglifier-4.1.13 2018-07-02 09:46:59 +09:30
Daniel O'Connor
1096fd0e89 Merge branch 'dev' into dependabot/bundler/comfortable_mexican_sofa-1.12.11 2018-07-02 09:46:39 +09:30
Daniel O'Connor
0cde6ad684 Merge branch 'dev' into dependabot/bundler/newrelic_rpm-5.2.0.345 2018-07-02 09:46:25 +09:30
Daniel O'Connor
8b4951c71a Merge branch 'dev' into dependabot/bundler/rack-protection-2.0.3 2018-07-02 09:46:08 +09:30
Daniel O'Connor
8fe3b1da15 Update CONTRIBUTORS.md 2018-07-02 09:44:50 +09:30
dependabot[bot]
d2c81d6b29 Bump newrelic_rpm from 5.0.0.342 to 5.2.0.345
Bumps [newrelic_rpm](https://github.com/newrelic/rpm) from 5.0.0.342 to 5.2.0.345.
- [Release notes](https://github.com/newrelic/rpm/releases)
- [Changelog](https://github.com/newrelic/rpm/blob/master/CHANGELOG.md)
- [Commits](https://github.com/newrelic/rpm/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-01 11:55:29 +00:00
dependabot[bot]
5ad44c10af Bump uglifier from 4.1.10 to 4.1.13
Bumps [uglifier](https://github.com/lautis/uglifier) from 4.1.10 to 4.1.13.
- [Release notes](https://github.com/lautis/uglifier/releases)
- [Changelog](https://github.com/lautis/uglifier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lautis/uglifier/compare/v4.1.10...v4.1.13)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-01 11:54:50 +00:00
dependabot[bot]
008537a324 Bump rack-protection from 2.0.1 to 2.0.3
Bumps [rack-protection](http://www.sinatrarb.com/protection/) from 2.0.1 to 2.0.3.

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-01 11:52:31 +00:00
dependabot[bot]
116a9a8bab Bump comfortable_mexican_sofa from 1.12.10 to 1.12.11
Bumps [comfortable_mexican_sofa](https://github.com/comfy/comfortable-mexican-sofa) from 1.12.10 to 1.12.11.
- [Release notes](https://github.com/comfy/comfortable-mexican-sofa/releases)
- [Commits](https://github.com/comfy/comfortable-mexican-sofa/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-01 11:51:52 +00:00
dependabot[bot]
dc7cbadfc0 Bump selenium-webdriver from 3.11.0 to 3.13.0
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 3.11.0 to 3.13.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-3.11.0...selenium-3.13.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-01 11:50:30 +00:00
Brenda Wallace
1c7a3e27d9 Merge pull request #1648 from Growstuff/dependabot/bundler/sprockets-3.7.2
[Security] Bump sprockets from 3.7.1 to 3.7.2
2018-06-25 15:59:59 +12:00
dependabot[bot]
e66924151a [Security] Bump sprockets from 3.7.1 to 3.7.2
Bumps [sprockets](http://getsprockets.org/) from 3.7.1 to 3.7.2. **This update includes security fixes.**

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-06-25 03:31:45 +00:00
Brenda Wallace
6f1eed06cc Merge pull request #1646 from robotscissors/issue-565-create-harvests-rss
Issue 565 create harvests RSS
2018-06-19 10:52:10 +12:00
robotscissors
605e2e1392 Add to contributors file 2018-06-18 15:22:27 -07:00
Brenda Wallace
77d2dc6144 Merge branch 'dev' into issue-565-create-harvests-rss 2018-06-17 20:58:32 +12:00
Brenda Wallace
678dabf710 Merge branch 'master' into dev 2018-06-17 10:42:55 +12:00
Brenda Wallace
3a7be86ef9 Merge pull request #1607 from Br3nda/fix/plants-parts-dupe
Don't allow duplicate plant parts names
2018-06-17 10:42:14 +12:00
Brenda Wallace
a5fa69c7c7 Merge branch 'dev' into fix/plants-parts-dupe 2018-06-17 08:47:27 +12:00
Brenda Wallace
1d8c2db674 Merge branch 'dev' into issue-565-create-harvests-rss 2018-06-17 08:47:12 +12:00
Cesy
945edd1cbc Merge pull request #1644 from Br3nda/fix/reminder-email-ordering
Order plantings and harvests in email
2018-06-16 21:37:29 +01:00
Brenda Wallace
f67d39ed63 Merge branch 'dev' into issue-565-create-harvests-rss 2018-06-16 07:53:38 +12:00
Brenda Wallace
103d7375d3 Merge branch 'dev' into fix/plants-parts-dupe 2018-06-16 07:52:51 +12:00
Brenda Wallace
3b2c4a7893 Merge branch 'dev' into fix/reminder-email-ordering 2018-06-16 07:49:06 +12:00
Brenda Wallace
ecf2e82e9e Merge pull request #1645 from Growstuff/Br3nda-patch-1
Pin coverage badge to dev branch
2018-06-16 07:48:36 +12:00
robotscissors
82b83ca7a4 Fix linter issues 2018-06-12 10:00:45 -07:00
robotscissors
e784790e19 add .to_s to accomodate hound 2018-06-11 11:16:47 -07:00
robotscissors
f9bdae77d3 add tests for harvests/index.rss 2018-06-11 10:38:26 -07:00
robotscissors
dff6827761 create rss feed for harvests 2018-06-10 20:38:43 -07:00
Brenda Wallace
2f65939d5c Pin coverage badge to dev branch 2018-06-10 11:47:15 +12:00
Brenda Wallace
d7e71c8fc3 Use factory bot to make a harvest.plant_part 2018-06-07 11:46:29 +12:00
Brenda Wallace
47ddc915ef Generate random number in plant_part.name in factorybot 2018-06-07 11:44:29 +12:00
Brenda Wallace
0d303ee6df Don't allow duplicate plant parts names
Make factort's plant_part.name unique
Setting plant_part.name in specs
Unique names for plant parts
2018-06-04 17:42:41 +12:00
Brenda Wallace
5dc8bc5ec5 Order plantings and harvests in email 2018-06-04 17:35:06 +12:00
Brenda Wallace
78d9e3c970 Merge pull request #1622 from Growstuff/awesomecode-factorybot/createlist-12138
Auto corrected by following FactoryBot/CreateList
2018-05-13 07:30:24 +12:00
Daniel O'Connor
a772bdaa8d Merge branch 'dev' into awesomecode-factorybot/createlist-12138 2018-05-10 21:35:39 +09:30
Brenda Wallace
0402fee04d Merge pull request #1637 from Br3nda/fix/remote-currency-methods
Remove some old currency methods from application helper
2018-05-08 07:52:36 +12:00
Brenda Wallace
7a1499d854 Merge branch 'dev' into awesomecode-factorybot/createlist-12138 2018-05-01 13:47:44 +12:00
Brenda Wallace
152cdace75 Removed spec for currency helpers 2018-05-01 13:47:25 +12:00
Brenda Wallace
ed3ae8bbd6 Remove some old currency methods from application helper 2018-05-01 13:47:25 +12:00
Brenda Wallace
81adae77f8 Merge pull request #1639 from Growstuff/bundle-update-2018-04-29-130926
Bundle Update on 2018-04-29
2018-04-29 18:30:55 +12:00
deppbot
681b5bbd8c Bundle Update on 2018-04-29 2018-04-29 13:09:27 +08:00
Brenda Wallace
832cfde28d Merge pull request #1635 from Growstuff/bundle-update-2018-04-26-092357
Bundle Update on 2018-04-26
2018-04-28 21:15:22 +12:00
Brenda Wallace
aa9841dc7d Pinned elastic search to 5.0.0. or later 2018-04-28 18:34:26 +12:00
pozorvlak
caa59df3bd Merge pull request #1625 from Growstuff/dev
Release 46
2018-04-27 17:04:31 +01:00
Brenda Wallace
102eaf3d6b Merge branch 'dev' into bundle-update-2018-04-26-092357 2018-04-26 17:39:03 +12:00
Brenda Wallace
61ebd5fe99 Merge pull request #1632 from Br3nda/feature/i18n
i18n for plantings#index
2018-04-26 17:38:32 +12:00
Brenda Wallace
7e0e936509 Merge branch 'dev' into bundle-update-2018-04-26-092357 2018-04-26 17:27:13 +12:00
Brenda Wallace
d3faa75d1d Merge branch 'dev' into feature/i18n 2018-04-26 17:26:55 +12:00
Brenda Wallace
1575ee1ddd Merge pull request #1620 from Br3nda/feature/status
Badges for ready to harvest, days to finished
2018-04-26 17:26:36 +12:00
deppbot
5b5eacb738 Bundle Update on 2018-04-26 2018-04-26 09:23:58 +08:00
Brenda Wallace
85eea89792 i18n for plantings#index 2018-04-23 15:40:56 +12:00
Brenda Wallace
fc46685ab9 Renamed should_be_finshed? to late? 2018-04-23 13:44:53 +12:00
Brenda Wallace
db0c60be0d Rename zombie to super_late 2018-04-23 13:33:38 +12:00
Brenda Wallace
91e851c802 Merge remote-tracking branch 'upstream/dev' into feature/status 2018-04-23 13:00:53 +12:00
Brenda Wallace
9112d4e2bb Merge pull request #1630 from jenkr55/ProfileGardenDisplayImprovements
Profile garden display improvements
2018-04-22 15:33:42 +12:00
jenkr55
eed0b257fa Fixing test because I removed this line 2018-04-21 22:03:31 -05:00
jenkr55
25bba9c126 format fixes 2018-04-21 21:55:29 -05:00
jenkr55
028c2a28a5 unneeded class 2018-04-21 21:52:55 -05:00
jenkr55
fa28fe25b6 Fixing responsive design issues 2018-04-21 21:43:19 -05:00
jenkr55
77978a76f2 Fixing notes display bug on harvest card 2018-04-21 21:27:40 -05:00
jenkr55
7be10957ec WIP different profile page 2018-04-21 21:05:58 -05:00
jenkr55
c94d08c816 Moving bio to be by other profile information 2018-04-21 20:09:23 -05:00
Brenda Wallace
9fdc9e76df Merge branch 'dev' into awesomecode-factorybot/createlist-12138 2018-04-22 12:14:23 +12:00
Brenda Wallace
eba03d0662 Merge pull request #1627 from jenkr55/InActiveFixes
Fixing broken "in-active" checkbox
2018-04-22 12:11:34 +12:00
Brenda Wallace
53d7cddea1 Merge branch 'dev' into InActiveFixes 2018-04-22 08:54:27 +12:00
Brenda Wallace
89cfd49616 Merge pull request #1626 from Br3nda/bundle-update
Bundle upgrade
2018-04-22 08:52:08 +12:00
jenkr55
ef74cc293d Rubocop 2018-04-21 10:51:19 -05:00
jenkr55
0b191049b2 Undo this 2018-04-21 10:46:27 -05:00
jenkr55
e767ea6b38 Fixing planting wrapping issue 2018-04-21 10:36:33 -05:00
jenkr55
6cbf7d0bba Fixing parmas issue for owner 2018-04-21 10:29:13 -05:00
jenkr55
cb5d490b1c Fixing params not being passed to plantings controller 2018-04-21 10:26:19 -05:00
jenkr55
585e45487a Fixing button layout issue 2018-04-21 09:16:17 -05:00
jenkr55
6310c51879 Only show data prompt when there are plantings 2018-04-21 09:08:02 -05:00
Brenda Wallace
4c33e5ea2d Merge remote-tracking branch 'origin/feature/status' into feature/status 2018-04-21 22:11:52 +12:00
Brenda Wallace
caa5bcec4b Only show finish button if can edit planting 2018-04-21 21:55:33 +12:00
Brenda Wallace
55bfd50123 Merge branch 'dev' into awesomecode-factorybot/createlist-12138 2018-04-21 21:18:30 +12:00
Brenda Wallace
86781f3491 Bundle upgrade 2018-04-21 21:14:18 +12:00
Brenda Wallace
48bf7bb2f4 Merge branch 'dev' into feature/status 2018-04-21 17:41:10 +12:00
Brenda Wallace
6677f8641f If not crop lifespan data, use parent data 2018-04-21 17:40:22 +12:00
Brenda Wallace
e5cf8b6091 added spec for finished_predicted_at 2018-04-21 17:25:04 +12:00
Brenda Wallace
a7acf72f56 Merge branch 'master' into dev 2018-04-21 17:05:14 +12:00
Brenda Wallace
78f021c2f2 style fix up 2018-04-21 16:26:40 +12:00
Brenda Wallace
34145f7b64 Translation of string in haml 2018-04-21 16:19:51 +12:00
Brenda Wallace
ef9bb01fc9 Wrapped a long line 2018-04-21 15:34:18 +12:00
Brenda Wallace
e103e6be35 Reducing complexity in planting predictions code 2018-04-21 15:32:04 +12:00
Brenda Wallace
4ad4dd0c7f Style fix up 2018-04-21 15:17:51 +12:00
Brenda Wallace
4df3354020 Style fix up 2018-04-21 15:17:17 +12:00
Brenda Wallace
6077d4da34 Fixed bug in garden spec 2018-04-21 15:01:33 +12:00
Brenda Wallace
34b6b54616 Name goes on garden, not planting 2018-04-21 14:33:39 +12:00
Brenda Wallace
87d43f1eb2 Move planting delete action into the bar 2018-04-21 14:26:27 +12:00
Brenda Wallace
5cc647ee9b test that expects a garden name, set to that name 2018-04-21 14:22:20 +12:00
Brenda Wallace
948c32d1d5 test that expects a garden name, set to that name 2018-04-21 14:19:40 +12:00
Brenda Wallace
2e4378f025 Add css class to show finished/zombie/harvesting etc 2018-04-21 14:17:50 +12:00
Brenda Wallace
548fb3d3fd Badges feature specs 2018-04-21 14:00:00 +12:00
Brenda Wallace
9966eddd37 Giving gardens unique names to stop test collisions 2018-04-21 13:52:49 +12:00
Brenda Wallace
aae7688a0e Classes for planting badge colours 2018-04-21 13:05:15 +12:00
Brenda Wallace
9b16abd373 Render perenial progress bar the same as others 2018-04-21 13:04:31 +12:00
Brenda Wallace
87b04f60f7 Order garden's plantings by planted_at 2018-04-21 13:03:46 +12:00
Brenda Wallace
a8509acd49 Zombie status needs 90 days 2018-04-21 13:02:51 +12:00
Brenda Wallace
ca8dae4b78 Moving the planting buttons lower 2018-04-21 13:02:09 +12:00
Brenda Wallace
1b3e00fba0 Colours for badges on plantings 2018-04-21 13:00:24 +12:00
Brenda Wallace
935aebcb0d Tidy up visual link between planting thumbnail and crop name 2018-04-21 12:38:32 +12:00
Brenda Wallace
4fe8cd566b USe finished not finished?
because some plants have finished_at in the past but haven't had their .finished set to true yet
2018-04-21 12:37:00 +12:00
Brenda Wallace
9188bd384d Futher simplifying planting badges 2018-04-21 11:36:48 +12:00
Brenda Wallace
8ce0717c0f Fixing up planting helper predictions 2018-04-21 11:36:02 +12:00
Brenda Wallace
4c7529eb8e Merge remote-tracking branch 'origin/feature/status' into feature/status 2018-04-21 11:14:32 +12:00
Brenda Wallace
f8b76e9c84 Reducing complexity in planting predictions 2018-04-21 11:12:25 +12:00
Brenda Wallace
16341da7bd Merge branch 'dev' into feature/status 2018-04-21 10:55:40 +12:00
Brenda Wallace
0d7542a43d Merge branch 'dev' into awesomecode-factorybot/createlist-12138 2018-04-21 10:55:28 +12:00
Brenda Wallace
8dead992d3 Merge pull request #1624 from Br3nda/fix/awesome
Revert "Auto corrected by following Style/ExpandPathArguments"
2018-04-21 10:55:11 +12:00
Brenda Wallace
cdde3994b2 Revert "Auto corrected by following Style/ExpandPathArguments"
This reverts commit a5b84403bb.
2018-04-21 10:35:28 +12:00
Brenda Wallace
44196f7d65 Merge remote-tracking branch 'origin/feature/status' into feature/status 2018-04-21 10:24:13 +12:00
Brenda Wallace
dc62ab05ad Merge remote-tracking branch 'upstream/dev' into feature/status 2018-04-21 10:21:40 +12:00
Brenda Wallace
15e64226c8 Merge branch 'dev' into feature/status 2018-04-21 10:21:05 +12:00
Brenda Wallace
c860f7c14b Merge branch 'dev' into awesomecode-factorybot/createlist-12138 2018-04-21 10:20:38 +12:00
Brenda Wallace
944af28e3c Merge pull request #1623 from Growstuff/awesomecode-style/expandpatharguments-12138
Auto corrected by following Style/ExpandPathArguments
2018-04-21 10:20:18 +12:00
Awesome Code
a5b84403bb Auto corrected by following Style/ExpandPathArguments 2018-04-20 22:19:28 +00:00
Awesome Code
afc4441ce1 Auto corrected by following FactoryBot/CreateList 2018-04-20 22:19:04 +00:00
Brenda Wallace
b7d4781aef Split the planting&harvest predictions into files 2018-04-21 10:18:18 +12:00
Brenda Wallace
c2ff3790db set finished false on planting factory
some code+tests doesn't cope with nil
2018-04-21 09:22:35 +12:00
Brenda Wallace
a2f2e24aa1 Merge remote-tracking branch 'upstream/dev' into feature/status 2018-04-21 09:07:10 +12:00
pozorvlak
f1a40e4305 Merge pull request #1621 from jenkr55/SecondCommentButton
Show second comment button when many comments on a post
2018-04-20 10:51:18 +01:00
jenkr55
4120069e4c Fixing trailing whitespace 2018-04-19 12:17:36 -05:00
jenkr55
18a7306fd0 Merge branch 'SecondCommentButton' of github.com:jenkr55/growstuff into SecondCommentButton 2018-04-19 12:11:03 -05:00
jenkr55
b3962bc9bc Comment button same style 2018-04-19 12:10:19 -05:00
Brenda Wallace
7a112aeecf Grammar correction in method name 2018-04-19 13:49:54 +12:00
Jennifer Kruse
296daa7a56 Merge branch 'dev' into SecondCommentButton 2018-04-18 20:47:53 -05:00
Brenda Wallace
5bf75fa36f Only show finish prediction badges if we have enough data 2018-04-19 13:45:47 +12:00
Brenda Wallace
279c922b34 Rename update predictions methods to have ! 2018-04-19 13:45:29 +12:00
Brenda Wallace
3ed90b8d04 Moving predictions to own file 2018-04-19 13:44:39 +12:00
jenkr55
634dc936f9 Show second comment button when many comments 2018-04-18 19:32:24 -05:00
Brenda Wallace
2a8c4d4829 Add finished and finished_at to plantings factory 2018-04-17 10:06:40 +12:00
Brenda Wallace
3ee2537438 Only show time to finished if not finished 2018-04-17 10:03:59 +12:00
Brenda Wallace
934bd9adb8 Fixed bug in spec, wasn't really on member's garden#index 2018-04-16 22:11:36 +12:00
Brenda Wallace
d043613bde Model specs for harvest time and zombies 2018-04-16 21:14:47 +12:00
Brenda Wallace
d1603a6e7f Badges showing finished and harvest status 2018-04-16 21:06:20 +12:00
Brenda Wallace
79e0bc5206 Merge pull request #1615 from Growstuff/dev
Release 45
2018-04-13 11:25:40 +12:00
pozorvlak
61183509b0 Merge pull request #1612 from Growstuff/Br3nda-patch-1
Pick the first photo
2018-04-12 15:34:22 +01:00
Brenda Wallace
6c1bbe9f1c Merge branch 'dev' into Br3nda-patch-1 2018-04-12 14:15:49 +12:00
Brenda Wallace
bab41143fa Merge branch 'master' into dev 2018-04-12 11:01:53 +12:00
Brenda Wallace
3c7688d2ed Merge branch 'dev' into Br3nda-patch-1 2018-04-09 09:57:24 +12:00
Brenda Wallace
ef20d1a333 Merge pull request #1613 from jenkr55/OnlyShowPlantingSuggestionIfMatch
Only show planting suggestion if there's a match
2018-04-09 09:57:04 +12:00
jenkr55
9c0ddb61e7 Prevent error when @matching_plantings is nil 2018-04-08 10:17:06 -05:00
Jennifer Kruse
19acb238fd Merge branch 'dev' into OnlyShowPlantingSuggestionIfMatch 2018-04-08 09:49:29 -05:00
jenkr55
d38167fd14 Only show planting suggestion if theres a match 2018-04-08 09:47:15 -05:00
Brenda Wallace
6b68e9ee4d Style fix 2018-04-08 10:04:43 +12:00
Brenda Wallace
3e2b4f4183 Pick the first photo 2018-04-08 09:56:19 +12:00
Brenda Wallace
65bb523d16 Merge pull request #1609 from jenkr55/FixVariousWrappingIssues
Fix various wrapping issues
2018-04-08 09:03:26 +12:00
jenkr55
efa8c513ea Adding myself as a contributor 2018-04-07 14:59:14 -05:00
jenkr55
43813d1318 Fixing various wrapping issues 2018-04-07 14:58:07 -05:00
Cesy
7e2aec9ec3 Merge pull request #1608 from Growstuff/dev
Release 44
2018-04-06 07:23:07 +01:00
Brenda Wallace
952224b2e1 Merge branch 'master' into dev 2018-04-03 17:46:37 +12:00
Brenda Wallace
26b1a3a6ca Merge pull request #1605 from Br3nda/feature/ownable
Adding counter caches and ownable concern
2018-04-03 08:54:15 +12:00
Brenda Wallace
03c9151ecd Merge branch 'dev' into feature/ownable 2018-04-03 08:46:34 +12:00
pozorvlak
1dd3d658eb Merge pull request #1606 from Br3nda/fix/dependents
Set the behaviour of dependent models when crops are deleted from the database:

 - plantings, seeds and harvests are deleted
 - child crops are orphaned.
2018-04-02 15:52:10 +01:00
pozorvlak
c3b694ea7d Merge branch 'dev' into fix/dependents 2018-04-02 15:39:16 +01:00
pozorvlak
a3e2b892d1 Merge pull request #1596 from Br3nda/fix/coverage
Adding codeclimate coverage
2018-04-02 15:36:48 +01:00
pozorvlak
d0f6d63d36 Merge branch 'dev' into fix/dependents 2018-04-02 15:26:07 +01:00
pozorvlak
879ce26de7 Merge branch 'dev' into fix/coverage 2018-04-02 15:21:51 +01:00
pozorvlak
98e27b5af4 Merge pull request #1602 from Br3nda/fix/ordering
Fix ordering of recent plantings on crops#show
2018-04-02 15:21:29 +01:00
pozorvlak
a7cfecf82c Merge branch 'dev' into feature/ownable 2018-04-02 14:47:48 +01:00
pozorvlak
d0f28d4bef Merge branch 'dev' into fix/ordering 2018-04-02 14:43:40 +01:00
pozorvlak
2c090757cc Merge pull request #1601 from Br3nda/feature/fluid-layout
Feature/fluid layout
2018-04-02 14:40:44 +01:00
Brenda Wallace
106d187e67 Add dependent clauses on crop model 2018-04-02 10:29:10 +12:00
Brenda Wallace
8521047803 Merge branch 'dev' into feature/ownable 2018-04-02 10:23:07 +12:00
Brenda Wallace
e173d0c130 Merge branch 'dev' into fix/ordering 2018-04-02 10:22:20 +12:00
Brenda Wallace
53197f27eb Merge branch 'dev' into feature/fluid-layout 2018-04-02 10:22:03 +12:00
Brenda Wallace
2460f73673 Merge branch 'dev' into fix/coverage 2018-04-02 10:21:22 +12:00
Brenda Wallace
324dcfc821 Merge pull request #1598 from Growstuff/bundle-update-2018-03-22-131347
Bundle Update on 2018-03-22
2018-04-02 10:21:04 +12:00
Brenda Wallace
e3bb43477b Adding counter caches and ownable concern 2018-04-02 10:13:19 +12:00
Brenda Wallace
2d309b7645 Removing jasmine, we have no jasmine specs 2018-04-02 09:58:02 +12:00
Brenda Wallace
a59f7dd137 Merge branch 'dev' into fix/coverage 2018-04-02 09:50:11 +12:00
Brenda Wallace
1fb3c4e0f9 Regnerated and secured code climate key 2018-04-02 09:47:04 +12:00
Brenda Wallace
b64a294245 Removed duplicate margins in css 2018-04-01 18:45:35 +12:00
Brenda Wallace
31d2aa052a More bundle updates 2018-04-01 14:16:50 +12:00
Brenda Wallace
b7f78d5dc9 Fix ordering of recent plantings on crops#show 2018-04-01 13:05:23 +12:00
Brenda Wallace
f1afe1ca79 Expanding layout to use full screen 2018-04-01 12:44:59 +12:00
Brenda Wallace
e029ef17ab Merge remote-tracking branch 'upstream/dev' into dev 2018-04-01 09:21:37 +12:00
Brenda Wallace
d5c8b9ae27 Merge branch 'dev' into bundle-update-2018-03-22-131347 2018-03-31 18:15:25 +13:00
Brenda Wallace
f907ba9e4b Merge pull request #1599 from Growstuff/dev
Release 43
2018-03-30 16:14:06 +13:00
Brenda Wallace
25070f73d7 Merge pull request #1591 from Br3nda/feature/photos-helper
Use photos helpers to find photos
2018-03-26 18:14:32 +13:00
Brenda Wallace
2fe6012342 Merge branch 'dev' into feature/photos-helper 2018-03-23 15:03:01 +13:00
deppbot
61468b3587 Bundle Update on 2018-03-22 2018-03-22 13:13:48 +08:00
Brenda Wallace
58c4d82087 Merge pull request #1590 from Growstuff/dev
Release 42
2018-03-22 15:01:52 +13:00
deppbot
c80685bf0d Security Update on 2018-03-20 (#1597)
* Security Update on 2018-03-20

* Ordered gems, to please rubocop
2018-03-22 14:14:19 +13:00
Brenda Wallace
69018f2c5c Merge remote-tracking branch 'upstream/dev' into dev 2018-03-22 11:53:29 +13:00
Brenda Wallace
00ea96a73e Can't rename GROWSTUFF_ELASTICSEARCH 2018-03-20 11:35:01 +13:00
Brenda Wallace
a1e33ae36e Only set up database and assets in test run, not linter run 2018-03-20 11:13:11 +13:00
Brenda Wallace
7f24927dc9 Clean up errors on undefined shell vars 2018-03-20 11:06:37 +13:00
Brenda Wallace
a178d3d42a Fix ES install on travis 2018-03-19 18:02:26 +13:00
Brenda Wallace
6089198f5c fixed path to scripts 2018-03-19 17:52:25 +13:00
Brenda Wallace
715ff4d41d Merge branch 'dev' into fix/coverage 2018-03-19 17:47:01 +13:00
Brenda Wallace
5992c974c7 Adding codeclimate coverage 2018-03-19 17:08:04 +13:00
Brenda Wallace
511e89fa58 Merge branch 'dev' into feature/photos-helper 2018-03-19 13:39:02 +13:00
Daniel O'Connor
13d8a29773 Merge pull request #1592 from Br3nda/fix/layout
Layout fixes for mobile and smaller screens
2018-03-19 10:38:12 +10:30
Brenda Wallace
dc09a6ea91 Merge branch 'dev' into fix/layout 2018-03-16 14:55:03 +13:00
Brenda Wallace
f8e83cdb9c Merge branch 'dev' into feature/photos-helper 2018-03-16 14:54:53 +13:00
deppbot
64a8cfb59f Security Update on 2018-03-16 (#1593) 2018-03-16 14:54:36 +13:00
Brenda Wallace
2f81d6c78d Layout fixes for mobile and smaller screens 2018-03-15 23:01:51 +13:00
Brenda Wallace
ece7113c89 DRY photo helper spec 2018-03-15 22:56:32 +13:00
Brenda Wallace
8941c577e4 Specs for photos helper 2018-03-14 22:25:30 +13:00
Brenda Wallace
1bf1076076 Photos helper 2018-03-14 19:28:18 +13:00
Brenda Wallace
8906fd38ae For seeds, use planting photo if no seeds photo 2018-03-14 15:21:40 +13:00
Daniel O'Connor
d5be92ac8b Merge pull request #1588 from Br3nda/fix/photo-order-1547
Fix/photo order 1547
2018-03-13 00:22:35 +10:30
Brenda Wallace
40d71ae070 Merge branch 'dev' into fix/photo-order-1547 2018-03-12 11:41:12 +13:00
Brenda Wallace
2f45041f8c Fixed ordering of photos on crops#show 2018-03-12 08:56:39 +13:00
Brenda Wallace
f9d4e1d6ae Ancestry of food. Seeds -> Planting -> Seeds -> Planting (#1550)
* Add seed ancestry, and seeds.finished_at
* Plantings and seeds produce each other
* Permissions for seeds actions
* View update, for seed actions, and planting ancestry
* Routes for seeds
* Scopes for harvests
* Spec updates for seeds
* Removed in-line style
* Add seed ancestry, and seeds.finished_at
* Plantings and seeds produce each other
* Permissions for seeds actions
* View update, for seed actions, and planting ancestry
* Routes for seeds
* Scopes for harvests
* Spec updates for seeds
* Moved finishable to a concern
* Seeds.finished_at
* rubocop fixes
* Made seeds sown migration the most recent
* Specs for home page
* Only show current seeds on home page
* Seeds appear for logged in or not
* Buttons to mark seeds finished
* JS for marking seeds finished
* Some actions only appear if seed or planting is active
* Fixed up display of home page
* Fixed typo in admin members#index
* Tidying up actions on all the things
* Harvest description in #index
* Truncate garden description if long
* Updated link label in view spec
* Show planted_from always, becuase it might be a parent seed
* find correct link in spec adding photos to garden
* fixed spec finding link to edit garden
* Better harvest description truncation
* Helping spec find the edit button
* specs for the home page
* Re-instate crops js, but in the correct file now
* Fixed link to garden in actions
* Tweaking mobile view
2018-03-12 08:39:32 +13:00
Brenda Wallace
80203ad215 Merge pull request #1585 from Growstuff/dev
Release 41
2018-03-11 14:03:50 +13:00
Brenda Wallace
8c51d7bdd5 Merge branch 'master' into dev 2018-02-18 13:09:56 +13:00
Cesy
64e3b3b4d4 Merge pull request #1565 from Growstuff/awesomecode-style/andor-8234
Auto corrected by following Style/AndOr
2018-02-16 08:47:02 +00:00
Brenda Wallace
978523fd94 Merge branch 'dev' into awesomecode-style/andor-8234 2018-02-11 08:50:50 +13:00
Brenda Wallace
97f63d1147 Merge pull request #1583 from Growstuff/dev
Production hotfix
2018-02-11 08:42:49 +13:00
Brenda Wallace
1a9ff5eb4c Merge branch 'master' into dev 2018-02-11 08:14:44 +13:00
Brenda Wallace
72b1494db9 Merge pull request #1582 from Br3nda/hotfix-migration
Don't update flickr photos in migration
2018-02-11 08:14:00 +13:00
Brenda Wallace
83bba916a4 Don't update flickr photos in migration 2018-02-10 18:41:11 +13:00
Brenda Wallace
64179850ff Merge pull request #1563 from Growstuff/dev
Release 40
2018-02-10 09:04:55 +13:00
Brenda Wallace
9cdf2e899f Merge pull request #1569 from Br3nda/remove/paid-accounts
Removing shop, products, accounts, orders
2018-02-09 11:09:36 +13:00
Brenda Wallace
2eacf346a8 Merge remote-tracking branch 'origin/remove/paid-accounts' into remove/paid-accounts 2018-02-09 10:53:47 +13:00
Brenda Wallace
aab91e2fa9 Removed active merchant 2018-02-09 10:53:05 +13:00
Brenda Wallace
2217d87b5a Added back the member's last login 2018-02-09 10:53:05 +13:00
Brenda Wallace
44b2251896 Re-instated the member-since text on profiles 2018-02-09 10:53:05 +13:00
Brenda Wallace
f5e20cd2d2 Re-gen rubocop todo 2018-02-09 10:53:05 +13:00
Brenda Wallace
42de726405 Removing shop, products, accounts, orders 2018-02-09 10:53:05 +13:00
Brenda Wallace
65b4c7dbc1 Revert "Auto corrected by following Style/StringLiterals"
This reverts commit ab56a3c6b3.
2018-02-09 07:58:47 +13:00
Brenda Wallace
6b6ed7e31c Merge remote-tracking branch 'origin/remove/paid-accounts' into remove/paid-accounts 2018-02-09 07:47:53 +13:00
Brenda Wallace
564901f93f Merge branch 'dev' into remove/paid-accounts 2018-02-09 07:46:51 +13:00
Brenda Wallace
f8127eeec3 Revert "Auto corrected by following Style/StringLiterals"
This reverts commit ab56a3c6b3.
2018-02-09 07:44:48 +13:00
Brenda Wallace
33fb2408d6 Merge branch 'dev' into awesomecode-style/andor-8234 2018-02-07 14:25:41 +13:00
Awesome Code
ab56a3c6b3 Auto corrected by following Style/StringLiterals 2018-02-07 10:20:26 +13:00
Brenda Wallace
ef4b4d0c46 Merge branch 'dev' into awesomecode-style/andor-8234 2018-02-07 08:41:30 +13:00
Brenda Wallace
44ba29137d Merge branch 'dev' into remove/paid-accounts 2018-02-07 08:41:17 +13:00
deppbot
ed2fcc2ada Bundle Update on 2018-02-07 2018-02-07 08:40:54 +13:00
Brenda Wallace
0b5c45d08f Merge branch 'dev' into awesomecode-style/andor-8234 2018-02-05 16:13:15 +13:00
Brenda Wallace
54c880a66c Removed active merchant 2018-02-05 15:40:37 +13:00
Brenda Wallace
0699677d05 Added back the member's last login 2018-02-05 14:42:41 +13:00
Brenda Wallace
3c411f15b8 Re-instated the member-since text on profiles 2018-02-05 14:42:05 +13:00
Brenda Wallace
dcf5286275 Re-gen rubocop todo 2018-02-05 14:38:08 +13:00
Brenda Wallace
7e1e2bef91 Removing shop, products, accounts, orders 2018-02-05 14:32:59 +13:00
Brenda Wallace
5cda14f87a Don't update flickr meta data on db rollback 2018-02-05 12:52:59 +13:00
Brenda Wallace
88da0da616 Re-fetches from flickr 2018-02-05 12:52:59 +13:00
Meir Taffel
a69afd87e7 Add date_taken to photos 2018-02-05 12:52:59 +13:00
Brenda Wallace
57bfafccc7 Merge branch 'dev' into awesomecode-style/andor-8234 2018-02-05 12:28:08 +13:00
deppbot
24931381af Bundle Update on 2018-02-03 2018-02-04 08:25:59 +13:00
deppbot
742c7e30a9 Bundle Update on 2018-01-31 2018-01-31 13:12:08 +13:00
Daniel O'Connor
2f3e368ede Merge branch 'dev' into awesomecode-style/andor-8234 2018-01-29 11:45:51 +10:30
Daniel O'Connor
502a20cf10 Merge pull request #1564 from Growstuff/awesomecode-rspec/leadingsubject-8234
Auto corrected by following RSpec/LeadingSubject
2018-01-29 11:45:07 +10:30
Brenda Wallace
b2cf022522 Removed extra blank lines 2018-01-29 13:01:49 +13:00
Shiny
3d4598e4e1 style clean up 2018-01-29 12:56:41 +13:00
Awesome Code
94db28b3a9 Auto corrected by following Style/AndOr 2018-01-28 23:47:38 +00:00
Awesome Code
767477df66 Auto corrected by following RSpec/LeadingSubject 2018-01-28 23:47:27 +00:00
Brenda Wallace
7f87ee1018 Fixed default_photo for seeds - uses own photos, not the crop 2018-01-29 09:55:06 +13:00
deppbot
093a948922 Bundle Update on 2018-01-28 2018-01-29 09:54:30 +13:00
deppbot
be1553410f Bundle Update on 2018-01-24 2018-01-29 09:54:20 +13:00
Shiny
caf41e80c9 Patching paperclip gem 2018-01-24 15:07:06 +13:00
deppbot
2eff7d6716 Bundle Update on 2018-01-21 2018-01-23 09:00:34 +13:00
Shiny
df5006c61c Disable jshint
this is on by default
2018-01-23 09:00:34 +13:00
Brenda Wallace
1e0565dd9b Tell hound to ignore the bootstrap plugin file 2018-01-23 09:00:34 +13:00
Brenda Wallace
3453a648fa Latest versions of bootstrap accessibility plugin 2018-01-23 09:00:34 +13:00
Awesome Code
e8d9314cff Auto corrected by following Style/Lambda 2018-01-23 09:00:34 +13:00
Brenda Wallace
92e56cfc1e Fixed up a spec, use sign_in member instead of stubing 2018-01-23 09:00:34 +13:00
Brenda Wallace
3dc356eb29 order gardens by name on plantings form 2018-01-23 09:00:34 +13:00
Brenda Wallace
56ed61b2b3 Lock pg < 1.0.0 for now 2018-01-23 09:00:34 +13:00
Brenda Wallace
16ad5384d1 Moved gardens chart to dedicated controller 2018-01-23 09:00:34 +13:00
Brenda Wallace
cf93489af7 Fixed crops chart permissions by moving to another controller 2018-01-23 09:00:34 +13:00
Brenda Wallace
86b9a3650b Move application.js loading last again 2018-01-23 09:00:34 +13:00
Brenda Wallace
625a035f44 Scope js variables so they are not global 2018-01-23 09:00:34 +13:00
Brenda Wallace
196d37dee9 Re-instated the extra fields on crop.json 2018-01-23 09:00:34 +13:00
Shiny
6f613635d2 Update crop_detail_page_spec.rb 2018-01-23 09:00:34 +13:00
Awesome Code
46267b2a1d Auto corrected by following Style/MutableConstant 2018-01-23 09:00:34 +13:00
Awesome Code
8c8d549cb1 Auto corrected by following RSpec/NotToNot 2018-01-23 09:00:34 +13:00
Awesome Code
d9cc1dcae8 Auto corrected by following RSpec/MultipleSubjects 2018-01-23 09:00:34 +13:00
Brenda Wallace
9db4736229 Permissions (and specs) for charts json 2018-01-23 09:00:34 +13:00
pozorvlak
04a7c41f63 Only deploy from the Elasticsearch build job
Fixes #1099, or at least works around it, though a better solution would
be to rewrite our deployment system using Travis build stages or Heroku
build pipelines.

The Elasticsearch job was picked because it's the one most likely to
fail, and I can't work out how to deploy only if all three jobs pass.
2018-01-23 09:00:34 +13:00
Brenda Wallace
78b8be1fc2 Use .presence to find finished ts in timeline 2018-01-23 09:00:34 +13:00
Brenda Wallace
b6e9539127 Use predicted finish times to put current plantings on the timeline 2018-01-23 09:00:34 +13:00
Brenda Wallace
33276874a8 add google js to gardens#show 2018-01-23 09:00:34 +13:00
Brenda Wallace
9adb3d1e4e Removed d3 graph tests 2018-01-23 09:00:34 +13:00
Awesome Code
3391f6c392 Auto corrected by following Style/RescueStandardError 2018-01-23 09:00:34 +13:00
Awesome Code
a13acbe087 Auto corrected by following Style/ParallelAssignment 2018-01-23 09:00:34 +13:00
Awesome Code
0c8240d4e8 Auto corrected by following Style/OrAssignment 2018-01-23 09:00:34 +13:00
Brenda Wallace
5ea7ae8af0 Added Harvested for chart 2018-01-23 09:00:34 +13:00
Brenda Wallace
eb1b890eec Add planted_from chart 2018-01-23 09:00:34 +13:00
Brenda Wallace
4821bf3b07 Wrapped thre crops show js in a document.ready 2018-01-23 09:00:34 +13:00
Brenda Wallace
b83db1d4e7 Fix predictions, it wasn't showing nil 2018-01-23 09:00:34 +13:00
Awesome Code
dea7ce241b Auto corrected by following RSpec/EmptyLineAfterFinalLet 2018-01-23 09:00:34 +13:00
Awesome Code
8d166f1fe6 Auto corrected by following FactoryBot/DynamicAttributeDefinedStatically 2018-01-23 09:00:34 +13:00
Brenda Wallace
49253b59ee Fixing up prediction specs 2018-01-23 09:00:34 +13:00
Brenda Wallace
ca16b2c407 Removed ignore of highcharts 2018-01-23 09:00:34 +13:00
Brenda Wallace
427a0187e1 updated prediction spec 2018-01-23 09:00:34 +13:00
Brenda Wallace
b1096cd021 Moved chart includes to application.js, attempting to fix json parse error 2018-01-23 09:00:34 +13:00
Awesome Code
020d024e4b Auto corrected by following EmptyLine 2018-01-23 09:00:34 +13:00
Brenda Wallace
070a4605d0 Add a green border around predictions boxes 2018-01-23 09:00:34 +13:00
Brenda Wallace
1f8413bf3e Remove highcharts.js, we're not using it 2018-01-23 09:00:34 +13:00
Brenda Wallace
59c3edcf82 Add timeline to gardens 2018-01-23 09:00:34 +13:00
Brenda Wallace
1bf05f81ab Convert to use chartkick gem
Conflicts:
	Gemfile
	Gemfile.lock
	config/initializers/assets.rb
2018-01-23 09:00:34 +13:00
Brenda Wallace
e6e88fa0c7 Fixed up tabulation 2018-01-23 09:00:34 +13:00
Brenda Wallace
308e834713 Wrap long line 2018-01-23 09:00:34 +13:00
Brenda Wallace
121deb4f48 Fix ordering of crops' parent on form 2018-01-23 09:00:34 +13:00
Brenda Wallace
4b65f28461 Added new line at end of file 2018-01-23 09:00:34 +13:00
Brenda Wallace
87708f1765 Tabulation and jsdoc fixes 2018-01-23 09:00:34 +13:00
Brenda Wallace
2cf335a064 Removed unused variables in js 2018-01-23 09:00:34 +13:00
Brenda Wallace
b205f35399 Wrapped a long line 2018-01-23 09:00:34 +13:00
Brenda Wallace
a4c06207e3 more JSDoc 2018-01-23 09:00:34 +13:00
Brenda Wallace
580fac6aa1 removed 2 unused variable in js 2018-01-23 09:00:34 +13:00
Brenda Wallace
4a696af9ba Fix up JSDoc 2018-01-23 09:00:34 +13:00
Brenda Wallace
d2a060ad49 added JSDoc 2018-01-23 09:00:34 +13:00
Brenda Wallace
d898f926d5 added JSDoc 2018-01-23 09:00:34 +13:00
Brenda Wallace
49444edc61 contributors/commits update 2018-01-23 09:00:34 +13:00
Brenda Wallace
a4c7de381e converted variable to camel case 2018-01-23 09:00:34 +13:00
Brenda Wallace
61408d7e4e Some js cleanups 2018-01-23 09:00:34 +13:00
Brenda Wallace
9906036faf Add bootstrap js to codeclimate excludes 2018-01-23 09:00:34 +13:00
Brenda Wallace
e009d9532a Updating javascript style 2018-01-23 09:00:34 +13:00
Brenda Wallace
9f1c064900 Use the old "var" syntax, and max line 120 2018-01-23 09:00:34 +13:00
Brenda Wallace
8d3d8f3c91 Adding package lock, and eslint 2018-01-23 09:00:34 +13:00
deppbot
0feed2d359 Bundle Update on 2017-12-24 2018-01-23 09:00:34 +13:00
Cesy
c08beb5291 Merge pull request #1495 from Growstuff/dev
Release 37
2017-12-22 09:54:32 +00:00
pozorvlak
269f3164b7 Merge pull request #1497 from Br3nda/feature/admin-nicer
Nicer admin interface
2017-12-18 11:33:02 +00:00
Shiny
9d47b2b029 Merge branch 'dev' into feature/admin-nicer 2017-12-18 15:10:36 +13:00
Daniel O'Connor
81e26aaf02 Merge pull request #1496 from Br3nda/feature/ordering
Feature/ordering
2017-12-18 09:30:51 +10:30
Shiny
d62322b498 Merge branch 'dev' into feature/admin-nicer 2017-12-18 06:59:33 +13:00
Shiny
ebb2f90294 Merge branch 'dev' into feature/ordering 2017-12-18 06:59:17 +13:00
Shiny
72922a160d Merge pull request #1498 from Growstuff/bundle-update-2017-12-18-000857
Bundle Update on 2017-12-18
2017-12-18 06:58:50 +13:00
deppbot
0699716c19 Bundle Update on 2017-12-18 2017-12-18 00:08:58 +08:00
Brenda Wallace
4c35987cb7 Ignore long method in ability.rb 2017-12-17 17:57:19 +13:00
Brenda Wallace
54e0806f38 don't check role is there's no member 2017-12-17 17:55:14 +13:00
Brenda Wallace
99828c7c01 Updated spec for new admin#index 2017-12-17 17:54:13 +13:00
Brenda Wallace
25d2773464 Use nested module/class definitions instead of compact style. 2017-12-17 17:50:30 +13:00
Brenda Wallace
233a30a045 Haml code style fix up 2017-12-17 17:49:05 +13:00
Brenda Wallace
01a7463ae8 Split up ability.rb into methods 2017-12-17 12:47:41 +13:00
Brenda Wallace
8a446ecbfc Member admin 2017-12-17 12:45:19 +13:00
Brenda Wallace
efc60e6313 Nicer layout on editing roles 2017-12-17 12:11:55 +13:00
Brenda Wallace
406b2dbf04 Make admin index a bit nicer 2017-12-17 12:06:03 +13:00
Brenda Wallace
ac056b4eb5 Merge remote-tracking branch 'upstream/dev' into dev 2017-12-17 12:05:42 +13:00
Brenda Wallace
2394f4d237 One view for showing photos on an item 2017-12-17 11:40:55 +13:00
Brenda Wallace
2a4fd57050 Merge remote-tracking branch 'upstream/dev' into feature/ordering 2017-12-17 10:18:25 +13:00
Shiny
5c885d675e Merge branch 'master' into dev 2017-12-17 10:05:25 +13:00
Shiny
0b08691160 Merge pull request #1474 from Br3nda/feature/photos-1457
Polymorphic relationship to photos
2017-12-17 10:04:30 +13:00
Brenda Wallace
b1052a2dbf Order posts by most recent 2017-12-17 10:01:51 +13:00
Brenda Wallace
95a923ff5f Order the plantings on the front page 2017-12-17 10:01:51 +13:00
deppbot
c8e34b640e Bundle Update on 2017-12-14 2017-12-17 10:01:51 +13:00
Brenda Wallace
6f2b4b13cd Only show photo pagination if there are photos 2017-12-17 09:55:52 +13:00
Brenda Wallace
970da53873 Merge remote-tracking branch 'origin/feature/photos-1457' into feature/photos-1457 2017-12-17 09:15:24 +13:00
Brenda Wallace
3aa2f0bd3b Paginate photos on seeds#show (inc feature specs) 2017-12-17 08:55:08 +13:00
Shiny
8c1514bc04 Merge branch 'dev' into feature/photos-1457 2017-12-15 17:13:12 +13:00
Daniel O'Connor
d2e39f58d5 Merge pull request #1494 from Br3nda/fix/ordering
More ordering fixes
2017-12-15 12:57:08 +10:30
Brenda Wallace
3d3a3b669e Order posts by most recent 2017-12-15 13:28:41 +13:00
Brenda Wallace
8697e56323 Order the plantings on the front page 2017-12-15 13:26:48 +13:00
Shiny
472b2eb192 Merge branch 'dev' into feature/photos-1457 2017-12-15 12:10:36 +13:00
Cesy
1698157d8d Merge pull request #1492 from Growstuff/bundle-update-2017-12-14-201051
Bundle Update on 2017-12-14
2017-12-14 12:25:49 +00:00
deppbot
ff652ae234 Bundle Update on 2017-12-14 2017-12-14 20:10:52 +08:00
Shiny
b4fcf004cd Merge pull request #1484 from Growstuff/dev
Release 36
2017-12-14 19:37:02 +13:00
Brenda Wallace
25e9ef892d Merge remote-tracking branch 'origin/feature/photos-1457' into feature/photos-1457 2017-12-14 08:45:40 +13:00
Shiny
82149d4565 Merge branch 'dev' into feature/photos-1457 2017-12-14 08:44:31 +13:00
Brenda Wallace
fcd3e36e36 Removed commented out code 2017-12-14 08:42:51 +13:00
pozorvlak
b783448ec3 Merge pull request #1485 from Br3nda/planting-harvests
Show photos of a planting's harvests
2017-12-13 12:08:23 +00:00
pozorvlak
e8b5850bfe Merge branch 'dev' into planting-harvests 2017-12-13 10:57:40 +00:00
pozorvlak
bca72680c4 Merge pull request #1490 from Br3nda/dependabot/npm_and_yarn/coffeelint-2.0.7
Bump coffeelint from 1.16.0 to 2.0.7
2017-12-13 10:57:18 +00:00
pozorvlak
358eb96684 Merge branch 'dev' into dependabot/npm_and_yarn/coffeelint-2.0.7 2017-12-13 10:29:18 +00:00
pozorvlak
05807d41f4 Merge pull request #1491 from Br3nda/flickr-auth-fix
Fix Growstuff::OauthSignupAction not found error when connecting flickr
2017-12-13 10:27:16 +00:00
Shiny
96f1995768 Merge branch 'dev' into dependabot/npm_and_yarn/coffeelint-2.0.7 2017-12-13 23:26:07 +13:00
Shiny
deefbbce71 Merge branch 'dev' into planting-harvests 2017-12-13 23:25:56 +13:00
Brenda Wallace
f8e51f4b45 Merge remote-tracking branch 'origin/feature/photos-1457' into feature/photos-1457 2017-12-13 22:35:29 +13:00
Brenda Wallace
1c8b75b7cb add and show photos for seeds
close #1457
2017-12-13 22:34:16 +13:00
Brenda Wallace
1f66df0743 Fixed link to associated flickr, twitter, facebook accountss
fixes #1479
2017-12-13 22:23:22 +13:00
Brenda Wallace
72f52230a1 Fix Growstuff::OauthSignupAction not found error when connecting flickr account 2017-12-13 22:19:41 +13:00
Shiny
700fba58e8 Merge branch 'dev' into feature/photos-1457 2017-12-13 21:52:55 +13:00
Daniel O'Connor
acecbe93c1 Merge pull request #1487 from Growstuff/bundle-update-2017-12-11-160933
Bundle Update on 2017-12-11
2017-12-13 16:20:36 +10:00
dependabot[bot]
bafe2b7fd1 Bump coffeelint from 1.16.0 to 2.0.7
Bumps [coffeelint](https://github.com/clutchski/coffeelint) from 1.16.0 to 2.0.7.
- [Commits](https://github.com/clutchski/coffeelint/commits)
2017-12-12 11:00:57 +00:00
Shiny
3be1454a69 Merge branch 'dev' into bundle-update-2017-12-11-160933 2017-12-12 12:36:54 +13:00
Shiny
232e5d50ac Merge branch 'dev' into planting-harvests 2017-12-12 12:36:33 +13:00
pozorvlak
7207a39039 Merge pull request #1486 from Br3nda/cleanup/routes
Convert hashes in routes
2017-12-11 10:47:18 +00:00
deppbot
291f865f7f Bundle Update on 2017-12-11 2017-12-11 16:09:34 +08:00
Brenda Wallace
47e82eb0a7 Convert hashes in routes 2017-12-10 19:50:08 +13:00
Brenda Wallace
08dc2a0513 Show photos of a planting's harvests 2017-12-09 22:24:51 +13:00
Brenda Wallace
4f64698403 Merge remote-tracking branch 'origin/feature/photos-1457' into feature/photos-1457 2017-12-09 20:59:56 +13:00
Brenda Wallace
14551b6ec8 Merge remote-tracking branch 'upstream/dev' into feature/photos-1457
Conflicts:
	spec/models/crop_spec.rb
2017-12-09 20:59:20 +13:00
Shiny
5d44196947 Merge branch 'master' into dev 2017-12-09 13:28:10 +13:00
Shiny
1c41cb7b66 Merge pull request #1483 from Growstuff/bundle-update-2017-12-08-121126
Bundle Update on 2017-12-08
2017-12-09 08:25:36 +13:00
Shiny
c3c55eaa09 Merge branch 'dev' into bundle-update-2017-12-08-121126 2017-12-09 08:15:28 +13:00
pozorvlak
98aa9521fe Merge pull request #1482 from Br3nda/ordering
Fixes to ordering
2017-12-08 12:04:48 +00:00
Shiny
96bb345ca9 Merge branch 'dev' into ordering 2017-12-08 20:20:27 +13:00
Shiny
9de991a075 Merge branch 'dev' into bundle-update-2017-12-08-121126 2017-12-08 20:19:39 +13:00
Shiny
f76619864c Merge pull request #1477 from Br3nda/upgrade-rubocop
Rubocop upgrade (and some style fixes)
2017-12-08 20:19:08 +13:00
deppbot
ec149997b0 Bundle Update on 2017-12-08 2017-12-08 12:11:27 +08:00
Brenda Wallace
ac07f18b2d Show most recent seeds first 2017-12-07 15:00:16 +13:00
Brenda Wallace
4ce3e8968f crops#show order posts by most recent first 2017-12-07 14:58:57 +13:00
Brenda Wallace
cd35538b83 Order forums by name 2017-12-07 13:42:48 +13:00
Shiny
0f317f624e Merge branch 'dev' into feature/photos-1457 2017-12-07 13:40:19 +13:00
Brenda Wallace
35d8461811 Order recent plantings by when they were planted 2017-12-07 13:39:32 +13:00
Brenda Wallace
8d03a3ffa8 Most recent photos is a crop's default photo 2017-12-06 21:47:01 +13:00
Brenda Wallace
2b0f199329 change string replacement for performance reasons 2017-12-06 15:19:34 +13:00
Brenda Wallace
24f18f78da use bare percent literals 2017-12-06 14:33:51 +13:00
Brenda Wallace
3cc637017d Avoid {} for multiline 2017-12-06 14:29:21 +13:00
Brenda Wallace
37f9dcd7dd for simple loops, use Integer.times 2017-12-06 14:26:58 +13:00
Brenda Wallace
f516ef2e57 Don't use :: for method calls 2017-12-06 14:24:17 +13:00
Brenda Wallace
182c626226 Prefer if/unless modifier 2017-12-06 14:23:12 +13:00
Brenda Wallace
ea2fcd09dc Fixed last old style word array 2017-12-06 14:18:51 +13:00
Brenda Wallace
878fc7ebcd Use symbol procs 2017-12-06 14:17:34 +13:00
Brenda Wallace
3fdc23098e Use perl names for cli script variables 2017-12-06 14:16:47 +13:00
Brenda Wallace
515325c44e Fixed up % delimiters 2017-12-06 14:14:31 +13:00
Brenda Wallace
25b1836146 Removed nil comparison 2017-12-06 14:13:01 +13:00
Brenda Wallace
c925c95398 Use next, instead of a if wrapper 2017-12-06 14:11:27 +13:00
Brenda Wallace
2d00206abf Converted sprintf to format 2017-12-06 14:10:26 +13:00
Brenda Wallace
f499f245de Added new line after block end, for rubocpo 2017-12-06 14:08:05 +13:00
Brenda Wallace
35414391c3 modified spec to please rubocop 2017-12-06 14:07:18 +13:00
Brenda Wallace
1f7f4f52d1 Updated ability_spec.rb to use block end new lines 2017-12-06 14:02:48 +13:00
Brenda Wallace
b4efeee904 Merge remote-tracking branch 'origin/upgrade-rubocop' into upgrade-rubocop 2017-12-06 11:23:03 +13:00
Brenda Wallace
5b588bf9e9 Rubocop change namespace of some cops 2017-12-06 11:21:25 +13:00
Daniel O'Connor
07611e9a5d Merge branch 'dev' into upgrade-rubocop 2017-12-05 11:38:52 +10:30
Daniel O'Connor
baa89a790f Merge pull request #1480 from Growstuff/bundle-update-2017-12-05-081300
Bundle Update on 2017-12-05
2017-12-05 11:38:18 +10:30
deppbot
00395ae68b Bundle Update on 2017-12-05 2017-12-05 08:13:00 +08:00
Shiny
41e26a2c74 Merge branch 'dev' into feature/photos-1457 2017-12-03 21:09:04 +13:00
Shiny
d7eb5e0014 Merge pull request #1472 from Growstuff/dev
Release 35
2017-12-02 21:16:29 +13:00
deppbot
f08d02f4c5 Bundle Update on 2017-12-02 2017-12-02 20:32:08 +13:00
Brenda Wallace
a6a7f789a3 Rubocop upgrade (and some style fixes) 2017-12-01 21:07:39 +13:00
Brenda Wallace
c4c659f159 DRY specs, and use create_list in crops model spec 2017-11-30 13:37:47 +13:00
Brenda Wallace
14b16b0d8c Moved photo.items's item lookup to a class method 2017-11-30 11:23:34 +13:00
Brenda Wallace
697779e67c Don't add item to photo is already there 2017-11-30 10:15:05 +13:00
Brenda Wallace
35ce8b84db Adding a unique index on the items <--> photos table 2017-11-30 09:56:47 +13:00
Brenda Wallace
ccbdfe51f6 Modified a spec to avoid a chicken and an egg 2017-11-29 22:30:11 +13:00
Brenda Wallace
ff57176d60 Simplified the photos controller a bit 2017-11-29 22:13:03 +13:00
Brenda Wallace
12700d6268 Added polymorphic relationship to photos 2017-11-29 21:41:22 +13:00
Brenda Wallace
6ed7376c58 Name garden in spec to ensure it's ordered first 2017-11-29 20:59:37 +13:00
Brenda Wallace
c8a200bf19 Changed selector in view spec
it was having trouble finding the link
2017-11-29 20:59:37 +13:00
Brenda Wallace
a62b668781 Fix up duplicate order item in controller spec, and DRY 2017-11-29 20:59:37 +13:00
Brenda Wallace
09f82d5995 Tidy up home/crops partial view 2017-11-29 20:59:37 +13:00
Brenda Wallace
8d0bec34a6 Crops controller spec, use let, other cleanup 2017-11-29 20:59:37 +13:00
Brenda Wallace
d7ec4eacee Fix sort on plant parts 2017-11-29 20:59:37 +13:00
Brenda Wallace
3a3f4eefbf Added sort to members controller 2017-11-29 20:59:37 +13:00
Brenda Wallace
9e00023332 Fixed post ordering 2017-11-29 20:59:37 +13:00
Brenda Wallace
3058160a59 Removed an orderng spec for gardens 2017-11-29 20:59:37 +13:00
Brenda Wallace
e3886ce5b5 Fixed up unescaped model attribute 2017-11-29 20:59:37 +13:00
Brenda Wallace
48f8085e2d Fix seeds order 2017-11-29 20:59:37 +13:00
Brenda Wallace
594e466fd4 Fixed photos ordering 2017-11-29 20:59:37 +13:00
Brenda Wallace
b813669d71 Updated shop controller specs 2017-11-29 20:59:37 +13:00
Brenda Wallace
d0b8ae3411 Delete follows records when a member is deleted 2017-11-29 20:59:37 +13:00
Brenda Wallace
9c993e9f47 Plantings controller ordering and specs 2017-11-29 20:59:37 +13:00
Brenda Wallace
d5fece87d0 Tests for comments#index (and bugfix) 2017-11-29 20:59:37 +13:00
Brenda Wallace
33816d4312 Use faker gem, in account types - and add controller specs 2017-11-29 20:59:37 +13:00
Brenda Wallace
00e6aeed5c seed.tradable was back to front logic. fixed 2017-11-29 20:59:37 +13:00
Brenda Wallace
0205b345d0 A planting's photo is their most recent photo 2017-11-29 20:59:37 +13:00
Brenda Wallace
9f8a32e9f8 Feature plantings need to be ordered 2017-11-29 20:59:37 +13:00
Brenda Wallace
7357524271 Garden's default photo should be the most recent photo 2017-11-29 20:59:37 +13:00
Brenda Wallace
6aa689b0d8 Removed some model ordering specs 2017-11-29 20:59:37 +13:00
Brenda Wallace
962b3b574d Fixed up planting spec to not care about ordering 2017-11-29 20:59:37 +13:00
Brenda Wallace
d77d1d9a77 spec for notifications needs to be agnostic about the order 2017-11-29 20:59:37 +13:00
Brenda Wallace
4bed6da422 Crop validation methods can be private 2017-11-29 20:59:37 +13:00
Brenda Wallace
023c870d49 Fix up crop.recent 2017-11-29 20:59:37 +13:00
Brenda Wallace
9aff65e956 Added ordering to finding first photo 2017-11-29 20:59:37 +13:00
Brenda Wallace
0446c0a405 Add ordering back into controller #index 2017-11-29 20:59:37 +13:00
Brenda Wallace
7719d1f896 Remote default ordering scopes, and clean up models 2017-11-29 20:59:37 +13:00
Brenda Wallace
17fd6f61a5 Added polymorphic relationship to photos 2017-11-29 20:14:27 +13:00
Brenda Wallace
c9558e4d51 Merge branch 'master' into dev
Conflicts:
	Gemfile.lock
2017-11-29 10:46:08 +13:00
deppbot
8a679670e4 Bundle Update on 2017-11-29 2017-11-29 07:00:25 +13:00
pozorvlak
a7586e9d2b Merge pull request #1448 from Br3nda/fix/1211
upgrade leaflet-rails
2017-11-27 20:42:22 +00:00
Shiny
811011419e Exit if we can't cd 2017-11-26 09:39:43 +13:00
Shiny
dae3ea2789 removed some debug 2017-11-25 19:41:41 +13:00
Shiny
49aa6bb846 Update .travis.yml 2017-11-25 19:41:03 +13:00
Brenda Wallace
c154a9b845 Upgraded leaflet maskercluster 2017-11-25 19:34:05 +13:00
Shiny
ad14ecb41b Merge branch 'dev' into fix/1211 2017-11-25 17:03:23 +13:00
deppbot
08a73ce503 Bundle Update on 2017-11-24 2017-11-25 09:53:29 +13:00
Brenda Wallace
6663f3ade4 Add id and type back to photos#new 2017-11-24 19:02:54 +13:00
deppbot
451030761d Bundle Update on 2017-11-21 2017-11-24 19:02:54 +13:00
Brenda Wallace
d4e4ca6519 Move planting's add photo button to _actions.haml 2017-11-24 19:02:54 +13:00
Brenda Wallace
284f0cddcd Fix gardens actions, and add specs
A bug slipped into all garden display pages - and there were no tests that caught it.
This adds feature specs for gardens#index, which would have detected the un-initialised
variable in haml
2017-11-24 19:02:54 +13:00
Logan Gingerich
4ced7ee7e9 Whitespace fix, spec fix, and spec addition 2017-11-24 19:02:54 +13:00
Logan Gingerich
b60510e016 deleted line 70 on plantings view to clean up logic 2017-11-24 19:02:54 +13:00
Logan Gingerich
e85daa405b Moved add photo button from garden show view to garden actions 2017-11-24 19:02:54 +13:00
Logan Gingerich
9ab83f7bbc Adds a more prominent add photo button to garden and planting show views 2017-11-24 19:02:54 +13:00
Brenda Wallace
329e0106bb Path remains same after sign out for our test cases 2017-11-24 19:02:54 +13:00
Brenda Wallace
4743fc7a63 Feature spec for showing item details on photo adding page 2017-11-24 19:02:54 +13:00
Brenda Wallace
c66a5b12a5 Reduced the tests of signout on photos/new 2017-11-24 19:02:54 +13:00
Brenda Wallace
f98bb32612 Shaved some yaks to remove a rescue from a controller 2017-11-24 19:02:54 +13:00
Brenda Wallace
771443ee85 Removed rescue in a controller 2017-11-24 19:02:54 +13:00
Brenda Wallace
1322ebd8e3 Use the ||= operator 2017-11-24 19:02:54 +13:00
Brenda Wallace
9e98db423e Tidy up photos logic, and test of signin/out on photos#new 2017-11-24 19:02:54 +13:00
Logan Gingerich
305702f644 Refactored and specs updated 2017-11-24 19:02:54 +13:00
Logan Gingerich
1f4f806bb0 Now displays correctly for planting, harvest or garden 2017-11-24 19:02:54 +13:00
Logan Gingerich
6a17ba547f fixes #1433 Says what item you're adding a photo to on photos#new 2017-11-24 19:02:54 +13:00
deppbot
3ffdc61428 Bundle Update on 2017-11-18 2017-11-24 19:02:54 +13:00
milesgould
bb6e9e32e6 De-deprecate controller and view specs
We deprecated controller and view specs on the grounds that they were
brittle, and were a poorer measure of user experience than feature
specs. However, feature specs have their own problems: they're much
slower to run, and flakier (see #901). We also ran into a few cases
where feature specs erroneously passed because they were checking for
the presence of a string that occurred in the error page!

Hence, we're cautiously un-deprecating controller and view specs.

Fixes #1132
2017-11-24 19:02:54 +13:00
Brenda Wallace
229396d9e7 Add id and type back to photos#new 2017-11-22 22:06:41 +13:00
Daniel O'Connor
0fa02272b0 Merge pull request #1465 from Growstuff/bundle-update-2017-11-21-121132
Bundle Update on 2017-11-21
2017-11-22 16:36:46 +10:30
deppbot
a91b8605c4 Bundle Update on 2017-11-21 2017-11-21 12:11:33 +08:00
pozorvlak
f1107b518c Merge pull request #1460 from Br3nda/fix/gardens-index
Fix gardens actions, and add specs
2017-11-20 11:21:07 +00:00
Shiny
52d93a7ccd Merge branch 'dev' into fix/1211 2017-11-19 18:22:02 +13:00
Brenda Wallace
d3df1e8f33 Move planting's add photo button to _actions.haml 2017-11-19 18:02:09 +13:00
Shiny
eb77715b70 Merge branch 'dev' into fix/gardens-index 2017-11-19 16:35:56 +13:00
Shiny
252910694d Merge branch 'master' into dev 2017-11-19 16:34:58 +13:00
Brenda Wallace
bd063be3a9 Fix gardens actions, and add specs
A bug slipped into all garden display pages - and there were no tests that caught it.
This adds feature specs for gardens#index, which would have detected the un-initialised
variable in haml
2017-11-19 16:31:17 +13:00
Shiny
9a6d827b6d Merge branch 'dev' into fix/1211 2017-11-19 11:14:09 +13:00
Logan Gingerich
ede5187369 Whitespace fix, spec fix, and spec addition 2017-11-19 11:13:41 +13:00
Logan Gingerich
610a5b7a48 deleted line 70 on plantings view to clean up logic 2017-11-19 11:13:41 +13:00
Logan Gingerich
1fa71c1546 Moved add photo button from garden show view to garden actions 2017-11-19 11:13:41 +13:00
Logan Gingerich
7574eb554e Adds a more prominent add photo button to garden and planting show views 2017-11-19 11:13:41 +13:00
Shiny
eea7e19ecf Merge branch 'dev' into fix/1211 2017-11-18 22:27:04 +13:00
Brenda Wallace
dafaffcd73 Path remains same after sign out for our test cases 2017-11-18 22:25:58 +13:00
Brenda Wallace
3e149a5d1d Feature spec for showing item details on photo adding page 2017-11-18 22:25:58 +13:00
Brenda Wallace
c20d9b78c5 Reduced the tests of signout on photos/new 2017-11-18 22:25:58 +13:00
Brenda Wallace
7906d50d13 Shaved some yaks to remove a rescue from a controller 2017-11-18 22:25:58 +13:00
Brenda Wallace
faed8b019e Removed rescue in a controller 2017-11-18 22:25:58 +13:00
Brenda Wallace
c8974a869f Use the ||= operator 2017-11-18 22:25:58 +13:00
Brenda Wallace
3969f410f1 Tidy up photos logic, and test of signin/out on photos#new 2017-11-18 22:25:58 +13:00
Logan Gingerich
6304f230a5 Refactored and specs updated 2017-11-18 22:25:58 +13:00
Logan Gingerich
73524b8883 Now displays correctly for planting, harvest or garden 2017-11-18 22:25:58 +13:00
Logan Gingerich
fd9fc38def fixes #1433 Says what item you're adding a photo to on photos#new 2017-11-18 22:25:58 +13:00
deppbot
949c7c31d8 Bundle Update on 2017-11-18 2017-11-18 15:27:04 +13:00
pozorvlak
e34dcd03bc Merge pull request #1454 from pozorvlak/dedeprecate_view_specs
De-deprecate controller and view specs
2017-11-17 17:05:07 +00:00
pozorvlak
929229379e Merge pull request #1455 from Growstuff/dev
Release 34
2017-11-17 16:55:01 +00:00
milesgould
d8bf8ae4df De-deprecate controller and view specs
We deprecated controller and view specs on the grounds that they were
brittle, and were a poorer measure of user experience than feature
specs. However, feature specs have their own problems: they're much
slower to run, and flakier (see #901). We also ran into a few cases
where feature specs erroneously passed because they were checking for
the presence of a string that occurred in the error page!

Hence, we're cautiously un-deprecating controller and view specs.

Fixes #1132
2017-11-17 16:51:24 +00:00
pozorvlak
ac0e52f15d Merge pull request #1412 from Br3nda/api
Basic read only api  - members, gardens, plantings, crops, photos, harvests, seeds
2017-11-17 16:44:41 +00:00
Shiny
c7f427fe8a Merge branch 'dev' into api 2017-11-18 00:48:03 +13:00
Shiny
50fd9ae9b0 Merge branch 'master' into dev 2017-11-18 00:44:44 +13:00
Brenda Wallace
efe39da878 Removed un-used method, to reduce class size 2017-11-18 00:43:17 +13:00
Brenda Wallace
1cd3c64590 Reducing class line count 2017-11-18 00:43:17 +13:00
Brenda Wallace
b591529892 Reinstated test of first harvest prediction display 2017-11-18 00:43:17 +13:00
Brenda Wallace
cef236d8f8 Reducing crop class size 2017-11-18 00:43:17 +13:00
Brenda Wallace
5ad0068142 Run existing crop specs with annual crop 2017-11-18 00:43:17 +13:00
Brenda Wallace
b8a5ff9acf Don't show lifespan of perennials 2017-11-18 00:43:17 +13:00
deppbot
90653aa57f Bundle Update on 2017-11-15 2017-11-18 00:43:17 +13:00
Shiny
80a4739f34 Underscore prefix on our last unused args (#1442) 2017-11-18 00:43:17 +13:00
Brenda Wallace
a6cc530fe5 Updating specs to use same owner for garden and planting 2017-11-18 00:43:17 +13:00
Brenda Wallace
97f19a0038 If a harvest has a planting, it must have the same owner 2017-11-18 00:43:17 +13:00
Brenda Wallace
140611d868 Get planting factory's owner from its garden 2017-11-18 00:43:17 +13:00
Brenda Wallace
3fa5ffc544 Planting's owner must be the same as its garden's owner 2017-11-18 00:43:17 +13:00
deppbot
eeafb4caa5 Bundle Update on 2017-11-12 2017-11-18 00:43:17 +13:00
Brenda Wallace
c747d46ab5 Request spec for seeds api 2017-11-17 23:22:10 +13:00
Brenda Wallace
3009ed2d83 Merge branch 'api' of github.com:Br3nda/growstuff into api 2017-11-17 23:16:16 +13:00
Shiny
f68a15c04e Merge branch 'dev' into api 2017-11-17 22:02:12 +13:00
Brenda Wallace
06295fb9e9 Merge branch 'api' of github.com:Br3nda/growstuff into api 2017-11-17 22:02:06 +13:00
Brenda Wallace
c4a1806a87 Request spec for photos api 2017-11-17 22:01:37 +13:00
Brenda Wallace
fa5e151af0 Request spec for photos api 2017-11-17 22:00:32 +13:00
Brenda Wallace
13e8d1f5a5 Merge remote-tracking branch 'upstream/dev' into api 2017-11-17 21:51:39 +13:00
Brenda Wallace
c1836cc78e Removed un-used method, to reduce class size 2017-11-17 21:50:59 +13:00
Brenda Wallace
28fdb6e1ed Reducing class line count 2017-11-17 21:50:59 +13:00
Brenda Wallace
67dec795a0 Reinstated test of first harvest prediction display 2017-11-17 21:50:59 +13:00
Brenda Wallace
86ea8eab39 Reducing crop class size 2017-11-17 21:50:59 +13:00
Brenda Wallace
8884056ff3 Run existing crop specs with annual crop 2017-11-17 21:50:59 +13:00
Brenda Wallace
d01a5d7976 Don't show lifespan of perennials 2017-11-17 21:50:59 +13:00
pozorvlak
66c08650ba Merge pull request #1445 from Br3nda/feature/planting-garden-owner-match
planting owner needs to match garden owner
2017-11-15 17:49:00 +00:00
Shiny
521873b656 Merge branch 'dev' into feature/planting-garden-owner-match 2017-11-15 09:27:41 +13:00
Shiny
83fea92353 Merge branch 'dev' into fix/1211 2017-11-15 09:27:17 +13:00
deppbot
2060d9ab9e Bundle Update on 2017-11-15 2017-11-15 09:26:47 +13:00
Shiny
1795b27152 Merge branch 'dev' into feature/planting-garden-owner-match 2017-11-13 23:09:04 +13:00
Shiny
1317ce9db0 Merge branch 'dev' into fix/1211 2017-11-13 23:08:38 +13:00
Shiny
93193c9fba Merge branch 'dev' into api 2017-11-13 23:00:33 +13:00
Brenda Wallace
e489831241 Debugging phantom on travis 2017-11-13 23:00:05 +13:00
Shiny
df7a9448b0 Underscore prefix on our last unused args (#1442) 2017-11-13 09:54:55 +00:00
Brenda Wallace
3d4f5c6917 upgrade leaflet-rails 2017-11-13 21:49:00 +13:00
Brenda Wallace
1b4d77e017 Requests spec for member api 2017-11-13 20:03:39 +13:00
Brenda Wallace
08e7c7dd29 Request specs for harvests api 2017-11-13 19:19:18 +13:00
Brenda Wallace
5fec826c41 Add more attributes to crops 2017-11-13 19:19:18 +13:00
Brenda Wallace
c29234c40c Request specs for crops api 2017-11-13 19:19:18 +13:00
Brenda Wallace
2f0cb5c815 DRY the api specs 2017-11-13 19:19:18 +13:00
Brenda Wallace
b6cbfe25d2 Factory girl becomes factory bot 2017-11-13 19:19:18 +13:00
Brenda Wallace
d8f5876518 Added predictions to planting api, and added specs 2017-11-13 19:19:18 +13:00
Brenda Wallace
ae2cbf0bec requests spec for modifying immutable gardens on api 2017-11-13 19:19:18 +13:00
Brenda Wallace
c9d5c42814 Plantings have many harvests 2017-11-13 19:19:18 +13:00
Brenda Wallace
b60f47f502 Add more relationships to members on the api 2017-11-13 19:19:18 +13:00
Brenda Wallace
d86e0af5ad Request for for getting api gardens#index 2017-11-13 19:19:18 +13:00
Brenda Wallace
fc0058d677 all our api controllers inheriting from base 2017-11-13 19:19:18 +13:00
Brenda Wallace
41110f96d1 Put immutable on every resource 2017-11-13 19:19:18 +13:00
Brenda Wallace
33822abf93 crops have harvests 2017-11-13 19:19:18 +13:00
Brenda Wallace
5877da95a6 Added a base resource, a little more DRY 2017-11-13 19:19:18 +13:00
Brenda Wallace
88a119deac Add a default paginator for api responses 2017-11-13 19:19:18 +13:00
Brenda Wallace
d07fd1a277 Added seeds and harvests to api, and tidied up resources 2017-11-13 19:19:18 +13:00
Brenda Wallace
c96695258b Basic read only api 2017-11-13 19:19:18 +13:00
Brenda Wallace
2fbba52bc8 Updating specs to use same owner for garden and planting 2017-11-13 19:18:14 +13:00
Brenda Wallace
a2ae429f6b If a harvest has a planting, it must have the same owner 2017-11-13 19:18:14 +13:00
Brenda Wallace
7ca76e69cf Get planting factory's owner from its garden 2017-11-13 19:18:14 +13:00
Brenda Wallace
c6824b1262 Planting's owner must be the same as its garden's owner 2017-11-13 19:18:14 +13:00
Shiny
2a74c057f3 Merge branch 'master' into dev 2017-11-12 09:30:45 +13:00
deppbot
85cc9e77c6 Bundle Update on 2017-11-12 2017-11-12 09:29:21 +13:00
pozorvlak
a0d6d154f0 Merge pull request #1439 from Growstuff/dev
Release 32
2017-11-10 16:25:42 +00:00
pozorvlak
7e9707e3b0 Merge pull request #1437 from Br3nda/feature/harvest-predictions
Feature/harvest predictions
2017-11-10 11:59:00 +00:00
Brenda Wallace
4fe0dba28e Merge remote-tracking branch 'upstream/dev' into feature/harvest-predictions 2017-11-09 18:30:18 +13:00
Shiny
328037b8c0 Merge branch 'master' into dev 2017-11-09 18:19:57 +13:00
Brenda Wallace
e4ab5114f7 Remove duplicate setting of medians in migration 2017-11-09 17:51:18 +13:00
Brenda Wallace
a5d43af899 Drop the plantings.days_before_maturity column
it's not used anywhere
2017-11-09 17:43:00 +13:00
Brenda Wallace
2d384c9851 Merge remote-tracking branch 'upstream/dev' into feature/harvest-predictions 2017-11-09 17:36:50 +13:00
Brenda Wallace
205247b136 Shorter condition in haml view (progress) 2017-11-09 17:36:37 +13:00
Brenda Wallace
963a182981 simplified logic in planting's first/last harvest fetcher 2017-11-09 17:36:33 +13:00
Daniel O'Connor
1090db6d21 Merge pull request #1438 from Growstuff/bundle-update-2017-11-08-201231
Bundle Update on 2017-11-08
2017-11-09 09:27:31 +11:00
deppbot
f187b31653 Bundle Update on 2017-11-08 2017-11-08 20:12:32 +08:00
Brenda Wallace
809dd81378 "Changed last_harvest" to "days_to_last_harvest" 2017-11-08 17:17:58 +13:00
Brenda Wallace
62beec23a1 "Changed first_harvest" to "days_to_first_harvest" 2017-11-08 17:17:15 +13:00
Brenda Wallace
a60a5ce591 Added a space, to please hound 2017-11-07 09:46:19 +13:00
Brenda Wallace
7206f99510 Updated spec to match new crop detail page text 2017-11-07 08:39:45 +13:00
Brenda Wallace
bf6475da57 annual? perennial!=true 2017-11-06 23:15:08 +13:00
Brenda Wallace
c5971cd46b A little bit of eager loading 2017-11-06 23:13:36 +13:00
Brenda Wallace
2f47eeb7b3 Bug fix. Can only predict if we have harvested_at and planted_at 2017-11-06 23:12:28 +13:00
Brenda Wallace
928749aaad Changed a "Pictures" header to "Photos" to be consistent 2017-11-06 23:11:39 +13:00
Brenda Wallace
1d64d4d1d2 Clearer message that predctions are for days after planting 2017-11-06 23:10:55 +13:00
Brenda Wallace
1e86cf7662 Update planting medians after updating record
So changes to the planted_at are re-calculated
2017-11-06 23:07:44 +13:00
Brenda Wallace
941dab7c4a Crop.annual? method 2017-11-06 23:00:16 +13:00
Brenda Wallace
2696d12771 Removed duplicate display of last harvest 2017-11-06 22:59:04 +13:00
Brenda Wallace
6bf87c243c Feature spec for crop predictions on crop#show 2017-11-06 22:38:48 +13:00
Brenda Wallace
ec63d8086f Moved crop predictions to own haml file 2017-11-06 22:36:47 +13:00
Brenda Wallace
470aacd1c9 Fixed %w for an array of words 2017-11-06 09:11:27 +13:00
Brenda Wallace
9997c365d8 Update robocop todo - to reflect progress 2017-11-05 20:44:41 +13:00
Brenda Wallace
eaa65fda9e update median_last_harvest too, with specs 2017-11-05 20:28:51 +13:00
Brenda Wallace
e844eade94 Changed model validators message to please Hound 2017-11-05 20:09:21 +13:00
Brenda Wallace
35e7b6a5b4 Removed an ignore from rubocop 2017-11-05 19:55:00 +13:00
Brenda Wallace
6c33c335d8 Default ordering for harvests are gone, so order it in spec 2017-11-05 19:26:50 +13:00
Brenda Wallace
26537943e3 Removed pending spec 2017-11-05 18:00:49 +13:00
Brenda Wallace
136c082003 Smaller photos on crop page. Fits in the predictions data 2017-11-05 17:47:19 +13:00
Brenda Wallace
b3fd8e32d0 Fixed ordering of Harvests - don't order in scope. 2017-11-05 17:42:59 +13:00
Brenda Wallace
9b1b22afa8 Bugfix and specs for first and last harvest 2017-11-05 17:33:58 +13:00
Brenda Wallace
996706ee78 Tests for planting lifespan predictions when there's no crop data 2017-11-05 17:29:42 +13:00
Brenda Wallace
9d11bcc039 Can't calculate first harvest if there are no harvests 2017-11-05 16:20:51 +13:00
Brenda Wallace
b1684b0156 Set prediction data for existing planting and crops 2017-11-05 14:16:00 +13:00
Brenda Wallace
ec00baef0d Updated feature spec to look for new annual/perennial text 2017-11-05 14:07:33 +13:00
Brenda Wallace
eb585611fe Fixed spec to call update_lifespan_medians 2017-11-05 14:05:54 +13:00
Brenda Wallace
9280049a84 Merge remote-tracking branch 'upstream/dev' into feature/harvest-predictions 2017-11-05 13:45:08 +13:00
Brenda Wallace
53d7fd1479 Displaying predicted first harvest on plantings and crops 2017-11-05 13:43:00 +13:00
Brenda Wallace
4cc0f77bd0 Predicting first harvest - updating medians 2017-11-05 13:42:30 +13:00
Brenda Wallace
5e5773aa59 feature spec for displaying annual/perennial on crops#show 2017-11-05 12:52:02 +13:00
deppbot
2422939b4f Bundle Update on 2017-11-04 2017-11-04 20:10:52 +13:00
Brenda Wallace
d5a1a683f1 Rubocop fix 2017-11-04 15:44:56 +13:00
Brenda Wallace
f5bb47e4ca DRY plantings controller a bit more - update crop means in one place 2017-11-04 15:36:51 +13:00
Brenda Wallace
8359218294 Update crop medians after deletion of planting (not before) 2017-11-04 11:53:40 +13:00
Brenda Wallace
285e6edc61 crop -> sci_names needs dependent:destroy so we don't get orphans 2017-11-04 11:51:19 +13:00
Brenda Wallace
f2fac9db1b Time.zone.local 2017-11-04 11:39:53 +13:00
Brenda Wallace
cabc4fd030 %i-literals should be delimited by ( and ) 2017-11-04 10:29:31 +13:00
Brenda Wallace
20fe9e4cc5 Merge remote-tracking branch 'upstream/dev' into feature/harvest-predictions 2017-11-04 10:09:53 +13:00
pozorvlak
fac24c5e99 Merge pull request #1423 from Growstuff/dev
Release 31
2017-11-03 08:32:35 +00:00
Logan Gingerich
fa600bea9e changed spec to reflect factorybot change 2017-11-03 14:53:20 +13:00
Logan Gingerich
99e7fb1f7d Name added to contributors and spec added 2017-11-03 14:53:20 +13:00
Logan Gingerich
81e22d6fb2 fixes #1419 - Allows brackets in garden names 2017-11-03 14:53:20 +13:00
Logan Gingerich
10a8df47a9 Factorygirl to factorybot - fixes #1413 (#1425)
* FactoryGirl Changed to FactoryBot

file fix

changes based on comments received

Bundle Update on 2017-10-29

style update to align hash literal

added package-lock

* indentation fixes with rubocop

* name added to contributors
2017-11-01 15:03:31 +00:00
pozorvlak
b0a4df629c Merge pull request #1429 from Br3nda/delimiters
Stop hound and codeclimate fighing over delimiter styles
2017-11-01 10:00:44 +00:00
Brenda Wallace
0b8357a261 Merge branch 'delimiters' into feature/harvest-predictions 2017-11-01 15:14:06 +13:00
Brenda Wallace
7104781d1b Rubocop array fix ups 2017-11-01 15:13:32 +13:00
Brenda Wallace
267f27b3f8 rubocop fix up 2017-11-01 14:48:42 +13:00
Brenda Wallace
31a37bf6dc No progress bar for perennials 2017-11-01 14:27:03 +13:00
Brenda Wallace
d1951b8b65 Edit and show perennial plants 2017-11-01 14:22:39 +13:00
Brenda Wallace
cd99769311 Wrapped a long line 2017-11-01 14:02:56 +13:00
Brenda Wallace
71cb3f8c5f Rubocop fixes 2017-11-01 13:57:49 +13:00
Brenda Wallace
d540342acb removed the days_before_maturity specs because function no longer exists 2017-11-01 13:57:49 +13:00
Brenda Wallace
f66b0768e2 Changed how db schema is loaded in travis 2017-11-01 13:57:49 +13:00
Brenda Wallace
251f44b0c7 Updated tests of progress bar 2017-11-01 13:57:49 +13:00
Brenda Wallace
adf07ce5ef Planting feature specs passing 2017-11-01 13:57:49 +13:00
Brenda Wallace
54b204c636 fixed typo 2017-11-01 13:57:49 +13:00
Brenda Wallace
ff446c2139 Updated spec, new message when not enough data to predict progress 2017-11-01 13:57:49 +13:00
Brenda Wallace
62d84d7af4 planting progress is 100% if finished 2017-11-01 13:57:49 +13:00
Brenda Wallace
92fa09a1d3 Mark harvest predictions as pending 2017-11-01 13:57:49 +13:00
Brenda Wallace
b09c4aa7a1 Update display, to show predicted finish date 2017-11-01 13:57:49 +13:00
Brenda Wallace
692ab59285 Display expected finished date 2017-11-01 13:57:49 +13:00
Brenda Wallace
302bdba150 fixes search 2017-11-01 13:57:49 +13:00
Brenda Wallace
aa3057056f rubocop fix up 2017-11-01 13:57:49 +13:00
Brenda Wallace
9ef40532ad removed old percentage grow specs 2017-11-01 13:57:49 +13:00
Brenda Wallace
70ba8c8421 Updating planting model specs, for predictions 2017-11-01 13:57:49 +13:00
Brenda Wallace
3b81affbe5 include child records when reading plantings from db 2017-11-01 13:57:49 +13:00
Brenda Wallace
9703d4e983 Remove harvest preductions for now 2017-11-01 13:57:49 +13:00
Brenda Wallace
22e1718ce6 Rubocop fix ups 2017-11-01 13:57:49 +13:00
Brenda Wallace
b90b4e42fb Updated progress bar to use new predictions 2017-11-01 13:57:49 +13:00
Brenda Wallace
202f557e32 Delete the old predictions code 2017-11-01 13:57:49 +13:00
Brenda Wallace
8364c8c688 updated schema 2017-11-01 13:57:49 +13:00
Brenda Wallace
3a286cd240 Show median lifespan of a crop 2017-11-01 13:57:49 +13:00
Brenda Wallace
41dbf6fb1b Moved crop search out of crop model file 2017-11-01 13:57:49 +13:00
Brenda Wallace
47ecbe3f94 Call the predictions update on planting modifications from controller 2017-11-01 13:57:49 +13:00
Brenda Wallace
0f066ab302 Cleaning up models as adding predictions 2017-11-01 13:57:49 +13:00
Brenda Wallace
8e94ddb4bf Moved planting predictions to crop 2017-11-01 13:57:49 +13:00
Brenda Wallace
a9cedc6a8a Add active median gem 2017-11-01 13:57:49 +13:00
Brenda Wallace
7d6c49d8c3 Set harvest preductions on plantings 2017-11-01 13:57:49 +13:00
Brenda Wallace
0d8ca89b14 harvested_at and harvest_predicted_at added to plantings 2017-11-01 13:57:49 +13:00
Brenda Wallace
82a37d69bc Ensure harvests are same crop, and after the planting was planted 2017-11-01 13:57:49 +13:00
Shiny
4533d35fe7 Merge branch 'dev' into delimiters 2017-11-01 13:27:26 +13:00
deppbot
4b445907d5 Bundle Update on 2017-11-01 2017-11-01 13:27:10 +13:00
Brenda Wallace
fce6395d21 Stop hound and codeclimate fighing over delimiter styles 2017-11-01 13:21:42 +13:00
deppbot
2946dca5fc Bundle Update on 2017-10-29 2017-10-30 20:20:50 +13:00
Shiny
9eb6d84e5a Merge branch 'master' into dev 2017-10-28 10:43:34 +13:00
Brenda Wallace
96b4742e78 Dev is almost always on port 3000 2017-10-28 10:38:51 +13:00
pozorvlak
68c14a695e Merge pull request #1416 from Br3nda/feature/more-crop-photos
All crop photos
2017-10-27 12:57:43 +01:00
Brenda Wallace
e42ec4f8ae Test crop photo display when not signed in 2017-10-27 23:43:23 +13:00
Brenda Wallace
f7b75157e7 Feature spec for harvest photos 2017-10-27 23:34:37 +13:00
Brenda Wallace
7e27b6deef Merge branch 'feature/more-crop-photos' of github.com:Br3nda/growstuff into feature/more-crop-photos 2017-10-27 23:33:01 +13:00
Shiny
cd69ea1487 Merge branch 'dev' into feature/more-crop-photos 2017-10-27 23:32:46 +13:00
Brenda Wallace
4cdcbdac19 Merge remote-tracking branch 'origin/feature/more-crop-photos' into feature/more-crop-photos 2017-10-26 20:32:55 +13:00
Brenda Wallace
f3d03c00b2 Merge remote-tracking branch 'upstream/dev' into feature/more-crop-photos 2017-10-26 20:31:23 +13:00
deppbot
d9aa9df7fe Bundle Update on 2017-10-26 2017-10-26 10:42:31 +13:00
pozorvlak
494dd1d658 Merge pull request #1411 from Growstuff/dev
Release 30
2017-10-25 08:16:42 +01:00
Shiny
af60489459 Merge branch 'dev' into feature/more-crop-photos 2017-10-24 10:32:57 +13:00
Brenda Wallace
a3a88c48de Randomise the crops on the homepage 2017-10-23 22:09:34 +01:00
Brenda Wallace
f3e88f5aae Include harvest photos on crop page 2017-10-24 09:34:10 +13:00
Brenda Wallace
1e81dac699 All crop photos; crops-> photos route 2017-10-24 09:34:03 +13:00
Brenda Wallace
705240014a Link harvest thumbnails to harvests
to be consistent with the rest of the site
2017-10-23 11:07:27 +01:00
Brenda Wallace
78aa049502 Fixed comment model spec 2017-10-23 10:44:37 +01:00
Brenda Wallace
97c7277a73 fixed up ambigous regex and use of expect in specs 2017-10-23 10:44:37 +01:00
Brenda Wallace
0e0af44d9f post show specs, use expect syntax, and more tests for js injection 2017-10-23 10:44:37 +01:00
Brenda Wallace
45af8d5f4f Converting to expect syntax 2017-10-23 10:44:37 +01:00
deppbot
a1ee822690 Bundle Update on 2017-10-22 2017-10-23 14:55:15 +13:00
Brenda Wallace
b6e61eba7a Merge branch 'master' into dev-conflict-fix 2017-10-22 11:30:43 +13:00
Brenda Wallace
b356d86931 Allow inline style on the progress bar width 2017-10-21 22:48:37 +01:00
Brenda Wallace
34f91c2189 Wrap garden overview buttons to right of photo on small screens 2017-10-21 22:48:37 +01:00
Brenda Wallace
faf3f60e78 small screen gardens overview 2017-10-21 22:48:37 +01:00
Brenda Wallace
e3113fd53d Re-work gardens#index to show planting progress 2017-10-21 22:48:37 +01:00
Brenda Wallace
68768c4d6a Fixed redirection after planting is deleted 2017-10-21 22:48:37 +01:00
pozorvlak
da7fec5e0b Merge pull request #1405 from Br3nda/fix-1379
Display messages even when member is deleted
2017-10-20 16:10:51 +01:00
Brenda Wallace
191c8e4e9d Display messages even when member is deleted 2017-10-20 23:44:51 +13:00
deppbot
edc763cd8c Bundle Update on 2017-10-19 2017-10-20 23:23:02 +13:00
Brenda Wallace
fdfb116d92 Ignore one Style/ClassAndModuleChildren 2017-10-19 08:22:40 +13:00
Brenda Wallace
888e0669a0 Added hound config 2017-10-19 08:22:40 +13:00
Brenda Wallace
d55e2b5466 Update heroku maintenance script
maintenance is just an attribute now
2017-10-19 08:22:40 +13:00
Brenda Wallace
c28ae4fe83 Use ! to indicate the method changes class variables 2017-10-19 08:22:40 +13:00
Brenda Wallace
4b4669459e Fixed duplicated code in growstuff member link markdown 2017-10-19 08:22:40 +13:00
Brenda Wallace
77902ad300 Moved member look up to a method (less duplicate code) 2017-10-19 08:22:40 +13:00
Brenda Wallace
f314fcd919 Fixed members link in growstuff markdown 2017-10-19 08:22:40 +13:00
Brenda Wallace
8171c12a5b Fixed links to crops in growstuff markdown 2017-10-19 08:22:40 +13:00
Brenda Wallace
08b6b46bfa Removed some rubocop todos 2017-10-19 08:22:40 +13:00
Brenda Wallace
bf189092ea More simplification of growstuff markup 2017-10-19 08:22:40 +13:00
Brenda Wallace
a539a47044 Reduced complexity of growstuff_markdown 2017-10-19 08:22:40 +13:00
Brenda Wallace
e29ac8827a Another code style fixup 2017-10-19 08:22:40 +13:00
Brenda Wallace
c5cee72ae5 Migrate to new heroku platform api - maintenance mode trigger 2017-10-19 08:22:40 +13:00
deppbot
5396550a8a Bundle Update on 2017-10-16 2017-10-19 08:22:40 +13:00
deppbot
76d2fb37b4 Bundle Update on 2017-09-28 2017-10-19 08:22:40 +13:00
deppbot
a42676ef0a Bundle Update on 2017-09-25 2017-10-19 08:22:40 +13:00
Brenda Wallace
3f3fc6a4ca Only install elastic search in travis on the matix that tests elasticsearch 2017-10-19 08:22:40 +13:00
Brenda Wallace
c710a8b1ef Outputs which version of elasticsearch we are running on travis 2017-10-19 08:22:40 +13:00
Brenda Wallace
6ada0c4f84 Install elastic search 2.4.0 when running on travis 2017-10-19 08:22:40 +13:00
Brenda Wallace
2e5a2455d6 Sleep before tests
as suggested here https://docs.travis-ci.com/user/database-setup/#ElasticSearch
2017-10-19 08:22:40 +13:00
Brenda Wallace
d89d4cea39 Further gem updates 2017-10-19 08:22:40 +13:00
Brenda Wallace
01a82ac993 Use floats, so the percentage calc works 2017-10-19 08:22:40 +13:00
Brenda Wallace
68660b3c65 update from erubi to erubis gem broke stuff - rolling back 2017-10-19 08:22:40 +13:00
Brenda Wallace
67b4f3558e Set required executable to jshint linting 2017-10-19 08:22:40 +13:00
Brenda Wallace
63b973833f Don't need to create database if just running linters 2017-10-19 08:22:40 +13:00
Brenda Wallace
4b19f73eb8 Remove git guilt 2017-10-19 08:22:40 +13:00
Brenda Wallace
9b4d6044ef Specify the executable in the npm installed linters 2017-10-19 08:22:40 +13:00
Brenda Wallace
9c70ffe051 Specify the executable in the npm installed linters 2017-10-19 08:22:40 +13:00
Brenda Wallace
e7a1d2345d Bundle update and change to platform-api instead of heroku 2017-10-19 08:22:40 +13:00
Brenda Wallace
c7585f1931 Use string.start_with? instead of a regexp 2017-10-19 08:22:40 +13:00
Brenda Wallace
63b76d175d Changed regex to matches? to appease rubocop 2017-10-19 08:22:40 +13:00
Brenda Wallace
1d5d2cc704 Added xmlrpc gem to solve rake errors on travis 2017-10-19 08:22:40 +13:00
Brenda Wallace
9477b4f9c7 Bump ruby version to 2.4.1 2017-10-19 08:22:40 +13:00
deppbot
a42a61abdd Bundle Update on 2017-08-03 2017-10-19 08:22:40 +13:00
pozorvlak
62eaa07862 Merge pull request #1401 from Br3nda/fix/codestyle
Another code style fixup
2017-10-18 10:52:38 +01:00
pozorvlak
f26420c380 Merge branch 'dev' into fix/codestyle 2017-10-18 10:41:03 +01:00
pozorvlak
6de13b7327 Merge pull request #1402 from Br3nda/fix/heroku-deploys
Update heroku maintenance script - maintenance is just an attribute now
2017-10-18 10:34:33 +01:00
Brenda Wallace
310f631f40 Ignore one Style/ClassAndModuleChildren 2017-10-18 20:45:27 +13:00
Brenda Wallace
bec59aba43 Merge remote-tracking branch 'origin/fix/codestyle' into fix/codestyle 2017-10-18 19:27:36 +13:00
Brenda Wallace
c86902967d Merge remote-tracking branch 'upstream/dev' into fix/codestyle 2017-10-18 19:27:08 +13:00
Brenda Wallace
361e3df692 Added hound config 2017-10-18 19:26:36 +13:00
Shiny
ce18bef892 Merge branch 'dev' into fix/codestyle 2017-10-18 14:01:57 +13:00
Shiny
ac2b0d04ea Merge branch 'dev' into fix/heroku-deploys 2017-10-18 13:40:52 +13:00
Brenda Wallace
9d0b48b84c Update heroku maintenance script
maintenance is just an attribute now
2017-10-18 13:37:54 +13:00
Brenda Wallace
d8f41b5ca0 Use ! to indicate the method changes class variables 2017-10-18 12:20:28 +13:00
Brenda Wallace
b5fbfaf515 Fixed duplicated code in growstuff member link markdown 2017-10-18 12:13:05 +13:00
Brenda Wallace
ce9a71cdad Moved member look up to a method (less duplicate code) 2017-10-18 12:10:59 +13:00
Brenda Wallace
42a10bcd80 Fixed members link in growstuff markdown 2017-10-18 12:10:04 +13:00
Brenda Wallace
33656a4104 Fixed links to crops in growstuff markdown 2017-10-18 12:05:22 +13:00
pozorvlak
ca200c1f30 Merge pull request #1400 from Br3nda/fix/heroku-deploys
Migrate to new heroku platform api - maintenance mode trigger
2017-10-17 14:52:16 +01:00
Brenda Wallace
ccd352d699 Removed some rubocop todos 2017-10-17 22:33:22 +13:00
Brenda Wallace
bd396dabfe More simplification of growstuff markup 2017-10-17 22:29:02 +13:00
Brenda Wallace
1279dd63bc Reduced complexity of growstuff_markdown 2017-10-17 22:20:17 +13:00
Brenda Wallace
8d681dd90a Another code style fixup 2017-10-17 17:29:48 +13:00
Brenda Wallace
dfd0e1dbf5 Migrate to new heroku platform api - maintenance mode trigger 2017-10-17 16:23:12 +13:00
deppbot
0d555542c2 Bundle Update on 2017-10-16 2017-10-16 18:46:50 +13:00
deppbot
99a69cd492 Bundle Update on 2017-09-28 2017-10-16 14:52:16 +13:00
deppbot
e8e9aa23b2 Bundle Update on 2017-09-25 2017-09-25 09:34:12 +13:00
pozorvlak
2fafc6f3e4 Merge pull request #1391 from Br3nda/feature/bundle-update-and-heroku-api-change
Bundle update and change to platform-api instead of heroku
2017-09-24 14:59:44 +01:00
Brenda Wallace
6b1714eb05 Only install elastic search in travis on the matix that tests elasticsearch 2017-09-24 18:50:23 +13:00
Brenda Wallace
8e5c52e85e Outputs which version of elasticsearch we are running on travis 2017-09-24 18:40:50 +13:00
Brenda Wallace
c749f4a813 Install elastic search 2.4.0 when running on travis 2017-09-24 18:35:39 +13:00
Brenda Wallace
5ed5f9ec7e Sleep before tests
as suggested here https://docs.travis-ci.com/user/database-setup/#ElasticSearch
2017-09-24 15:17:39 +13:00
Brenda Wallace
f4658df208 Further gem updates 2017-09-24 14:28:51 +13:00
Brenda Wallace
e21b95a353 Use floats, so the percentage calc works 2017-09-13 22:21:15 +12:00
Brenda Wallace
19205cb6a8 update from erubi to erubis gem broke stuff - rolling back 2017-09-13 22:08:21 +12:00
Brenda Wallace
17521cde17 Set required executable to jshint linting 2017-09-13 22:01:33 +12:00
Brenda Wallace
5f7d48c633 Don't need to create database if just running linters 2017-09-05 14:30:03 +12:00
Brenda Wallace
94bb3bf6bb Remove git guilt 2017-09-05 14:22:52 +12:00
Brenda Wallace
c9aacd0110 Specify the executable in the npm installed linters 2017-09-05 14:20:28 +12:00
Brenda Wallace
ca5f14bb37 Specify the executable in the npm installed linters 2017-09-05 14:19:24 +12:00
Brenda Wallace
43da004ccb Bundle update and change to platform-api instead of heroku 2017-09-05 13:58:56 +12:00
Cesy
2704fcf515 Merge pull request #1387 from Br3nda/ruby-2-4-1
Bump ruby version to 2.4.1
2017-09-04 11:21:40 +01:00
Shiny
1af19335d7 Merge branch 'dev' into ruby-2-4-1 2017-09-01 13:00:46 +12:00
Shiny
4d33c32866 Merge branch 'master' into dev 2017-09-01 12:20:15 +12:00
Brenda Wallace
01333bf965 Use string.start_with? instead of a regexp 2017-09-01 12:11:57 +12:00
Brenda Wallace
a145abff56 Changed regex to matches? to appease rubocop 2017-08-31 21:27:22 +12:00
Brenda Wallace
9732553d3b Added xmlrpc gem to solve rake errors on travis 2017-08-31 21:04:55 +12:00
Brenda Wallace
9142613b6b Bump ruby version to 2.4.1 2017-08-22 13:49:43 +12:00
Cesy
7132c95b61 Merge pull request #1382 from Growstuff/bundle-update-2017-08-03-163455
Bundle Update on 2017-08-03
2017-08-21 09:40:49 +01:00
Shiny
38b2d8de0f Merge branch 'dev' into master 2017-08-20 17:25:01 +12:00
Shiny
8f76ccf836 Merge branch 'dev' into bundle-update-2017-08-03-163455 2017-08-20 17:21:38 +12:00
ancyentMariner
491982f8f3 added security contact info to readme
udpated to actual email address

added name to contributors
2017-08-20 17:21:14 +12:00
deppbot
58e6411bbe Bundle Update on 2017-08-03 2017-08-03 16:34:56 +08:00
Daniel O'Connor
ac7e116eae Merge pull request #1375 from Growstuff/bundle-update-2017-07-25-161454
Bundle Update on 2017-07-25
2017-08-03 14:17:43 +09:30
deppbot
1526257a0d Bundle Update on 2017-07-25 2017-07-25 16:14:55 +08:00
deppbot
7234848c5f Bundle Update on 2017-07-22 2017-07-24 06:57:44 +12:00
deppbot
6e453707b9 Bundle Update on 2017-07-18 2017-07-20 21:24:40 +12:00
Daniel O'Connor
dac2d1d4c2 Merge pull request #1367 from Growstuff/bundle-update-2017-06-28-101508
Bundle Update on 2017-06-28
2017-07-17 23:31:09 +09:30
deppbot
6c4c1ff8ba Bundle Update on 2017-06-25 2017-06-30 07:06:28 +12:00
deppbot
93d1bfd05d Bundle Update on 2017-06-22 2017-06-30 07:06:28 +12:00
deppbot
6167e291d2 Bundle Update on 2017-06-18 2017-06-30 07:06:28 +12:00
Cesy Avon
deb1e27176 Making rubocop happy 2017-06-30 07:06:28 +12:00
Cesy Avon
82bb6c2f3b Putting jquery-ui-rails back so things work 2017-06-30 07:06:28 +12:00
Cesy Avon
24d9d714b2 Bundle update 2017-06-30 07:06:28 +12:00
Cesy Avon
d9ad55db7c Removing any locks on versions that don't have comments explaining why 2017-06-30 07:06:28 +12:00
deppbot
4dad76e635 Bundle Update on 2017-06-15 2017-06-30 07:06:28 +12:00
deppbot
252791b47d Bundle Update on 2017-06-12 2017-06-30 07:06:28 +12:00
deppbot
aa849c2e1f Bundle Update on 2017-06-28 2017-06-28 10:15:09 +08:00
Shiny
b03a59cb93 Merge branch 'master' into dev 2017-06-25 12:09:34 +12:00
deppbot
e761ecc356 Bundle Update on 2017-06-25 2017-06-25 12:08:30 +12:00
deppbot
69b887ba79 Bundle Update on 2017-06-22 2017-06-22 08:09:01 +12:00
deppbot
e4c2f777ac Bundle Update on 2017-06-18 2017-06-19 23:06:24 +12:00
Daniel O'Connor
f0cb635b42 Merge pull request #1362 from cesy/bundleupdate2
Upgrade and unpin some gems
2017-06-16 07:52:55 +09:30
Cesy Avon
4116e201b5 Making rubocop happy 2017-06-15 15:28:50 +00:00
Cesy Avon
5788c0c5ce Putting jquery-ui-rails back so things work 2017-06-15 15:28:50 +00:00
Cesy Avon
6f6e0a58a3 Bundle update 2017-06-15 15:28:50 +00:00
Cesy Avon
15b49672ee Removing any locks on versions that don't have comments explaining why 2017-06-15 15:28:14 +00:00
Daniel O'Connor
9e2c7d0748 Merge pull request #1361 from Growstuff/bundle-update-2017-06-15-181612
Bundle Update on 2017-06-15
2017-06-15 20:04:07 +09:30
deppbot
5ff0e2c565 Bundle Update on 2017-06-15 2017-06-15 18:16:13 +08:00
Cesy
d40665fb08 Merge pull request #1360 from Growstuff/bundle-update-2017-06-12-143439
Bundle Update on 2017-06-12
2017-06-12 09:03:45 +01:00
Cesy
3b6a42b8f2 Merge pull request #1343 from Growstuff/dev
Release 26
2017-06-12 09:01:10 +01:00
deppbot
cf3772af43 Bundle Update on 2017-06-12 2017-06-12 14:34:40 +08:00
Cesy
2f30343303 Merge pull request #1341 from Br3nda/issue-1044-account-deletion
Issue 1044 account deletion
2017-06-11 19:01:00 +01:00
Brenda Wallace
8de7e7a00b remove pending admin deletion specs. covered by model spec 2017-06-09 23:35:04 +12:00
Brenda Wallace
46efcf3e61 Spec for Forum owners and Crop creators deleting their accounts 2017-06-09 23:25:40 +12:00
Brenda Wallace
7968f3e407 Marked some un-written specs as pending 2017-06-09 23:00:38 +12:00
Brenda Wallace
639232bc87 Removal from newsletter spec is in model spec 2017-06-09 22:55:11 +12:00
Brenda Wallace
e0bc1c936a Spec for comments by deleted members 2017-06-09 22:54:36 +12:00
Brenda Wallace
910a9673dc Unsubscribes newsletter before member destroying 2017-06-09 22:39:07 +12:00
Brenda Wallace
582dd2c9fd Checks the deleted members are not found 2017-06-09 21:28:47 +12:00
Brenda Wallace
1a743d7592 Filled in spec for link to delete member's account 2017-06-09 21:17:12 +12:00
Shiny
174040aa1b Merge branch 'dev' into issue-1044-account-deletion 2017-06-09 21:04:41 +12:00
deppbot
4471ac64e4 Bundle Update on 2017-06-09 2017-06-09 21:03:03 +12:00
Daniel O'Connor
a8bb6c9f58 Merge pull request #1357 from cesy/bundleupdate0
Bundle update 2017-06-08
2017-06-09 09:55:12 +09:30
Daniel O'Connor
7d7053f558 Merge branch 'dev' into bundleupdate0 2017-06-09 09:54:24 +09:30
Daniel O'Connor
6f59896d96 Merge pull request #1358 from cesy/bundleupdate
Rails 4.2.7->4.2.8
2017-06-09 09:53:45 +09:30
Cesy Avon
e8cf19cc9d Bundle update 2017-06-08 2017-06-08 16:20:11 +00:00
Cesy Avon
5a3d15d101 Bundle update 2017-06-08 16:19:00 +00:00
Cesy Avon
142be72fc3 Upgrading Rails 2017-06-08 16:07:30 +00:00
Brenda Wallace
c6331fc449 Spec checks deleted member doesn't appear in interesting queries 2017-06-04 19:31:27 +12:00
Brenda Wallace
e8455cd943 Merge remote-tracking branch 'origin/issue-1044-account-deletion' into issue-1044-account-deletion 2017-06-04 19:27:37 +12:00
Brenda Wallace
080e728905 Spec checks you can't log in after deleting your account 2017-06-04 19:21:58 +12:00
Shiny
db532fcc8f Merge branch 'dev' into issue-1044-account-deletion 2017-06-04 13:00:30 +12:00
deppbot
e78d899528 Bundle Update on 2017-06-03 2017-06-04 12:55:47 +12:00
Brenda Wallace
1f916b8314 Post says Member Deleted when they are 2017-06-02 22:51:48 +12:00
Brenda Wallace
1cdcaac41e comment says "Member Deleted" when they are 2017-06-02 22:50:48 +12:00
Brenda Wallace
bbc3ca749f Removed author_exists scope. It is part of default 2017-06-02 22:43:25 +12:00
Brenda Wallace
20b980a162 Helpful comment explains why we use act_as_paranoid 2017-06-02 22:42:03 +12:00
Brenda Wallace
37897ad595 Merge remote-tracking branch 'origin/issue-1044-account-deletion' into issue-1044-account-deletion 2017-06-02 22:40:56 +12:00
Brenda Wallace
72f805e135 Doesn't need check the :deleted field in registraions 2017-06-02 22:40:39 +12:00
Shiny
1bb4f601a1 Merge branch 'dev' into issue-1044-account-deletion 2017-06-02 22:35:07 +12:00
Brenda Wallace
fb012c073e leaves a record of orders and payments intact when members deleted 2017-06-02 22:34:19 +12:00
Brenda Wallace
3dfd9eedca Updating member deletion specs 2017-06-02 21:49:28 +12:00
Brenda Wallace
75d2c0ea3c destroy member if password correct 2017-06-02 20:49:30 +12:00
Brenda Wallace
08996c4157 removed members#destroy. this should be on the registrations controller 2017-06-02 20:48:43 +12:00
Brenda Wallace
c48e24845e Remove owner_exists scope 2017-06-02 20:28:32 +12:00
Cesy Avon
61f93df6ff Feature specs for member deletion 2017-06-02 19:48:59 +12:00
deppbot
34e5e0850d Bundle Update on 2017-05-31 2017-05-31 18:27:23 +12:00
Shiny
7621da7041 Merge branch 'dev' into issue-1044-account-deletion 2017-05-30 20:39:44 +12:00
Brenda Wallace
8bcc5104e5 Delegate planting predictions 2017-05-29 22:45:14 +12:00
Brenda Wallace
4bbeca9f3e only look up other plantings finishing, if we have a crop 2017-05-29 22:45:14 +12:00
Brenda Wallace
54748ac20d Removed current_date variable from planting_predictions 2017-05-29 22:45:14 +12:00
Brenda Wallace
3c8b80574a Small DRY of planting models -> predict added 2017-05-29 22:45:14 +12:00
Brenda Wallace
288ad782d2 Planted? = true when planted today 2017-05-29 22:45:14 +12:00
Brenda Wallace
5d97a7edac Move setting of days_before_maturity back to plant model 2017-05-29 22:45:14 +12:00
Brenda Wallace
ff1c835cda Moving the planting predictions to own service 2017-05-29 22:45:14 +12:00
Daniel O'Connor
479f61b224 Merge pull request #1352 from Br3nda/admin-typo
Fixed admin typo
2017-05-29 19:18:59 +09:30
Brenda Wallace
ac94b8b6d3 Fixed admin typo 2017-05-29 17:52:08 +12:00
Shiny
fedc7a7fb6 Merge branch 'dev' into issue-1044-account-deletion 2017-05-29 16:17:59 +12:00
Brenda Wallace
9f9df07390 DRY photos controller more 2017-05-29 16:17:43 +12:00
Brenda Wallace
e5a705aeae Responders on the roles controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
fb0f74c4d8 Changed location we direct to after garden destroy 2017-05-29 16:17:43 +12:00
Brenda Wallace
963aafd5ab Added missing respond_with to crops controller
This tells rails what to use in json responses
2017-05-29 16:17:43 +12:00
Brenda Wallace
efe2f49e7f More DRY Harvests controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
a7178b6da7 changed spec to expect responder gem flash 2017-05-29 16:17:43 +12:00
Brenda Wallace
2da3cd6673 Fixed location to redirect to afver comment add/update 2017-05-29 16:17:43 +12:00
Brenda Wallace
5d50f9aec2 DRY the admin controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
cfb43ba07c DRY the homes controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
3811417d70 More DRY comments controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
9b3c77a0e6 More DRY comments controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
b5636af3be Add responders to alternate names controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
3e93fb5e2e Add responders on products controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
c22c92e9f4 Validates min price on product
the database has this constraint already. Adding so the ruby models
match.
2017-05-29 16:17:43 +12:00
Brenda Wallace
97a763660a DRY the products controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
8a25ecc635 DRY the roles controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
ee52c14b95 Put rubocop word array settings back 2017-05-29 16:17:43 +12:00
Brenda Wallace
3178e44843 DRY some of the places_controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
f510dfd8d9 Removed fixed issues from rubocop_todo 2017-05-29 16:17:43 +12:00
Brenda Wallace
7ad13d3eff Don't restrict crop search to approved 2017-05-29 16:17:43 +12:00
Brenda Wallace
e0c7e8c15b Removed route comments and extras on plant_parts controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
5e91effb12 More DRY the plant_parts controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
9560da90ab Add Scientific names to the menu 2017-05-29 16:17:43 +12:00
Brenda Wallace
9e1ed8e9eb add flash responders to plants parts controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
15592d01d0 Small dry of plant_parts controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
15d93e6c33 Move includes(:photos) before pagination 2017-05-29 16:17:43 +12:00
Brenda Wallace
484e20ba83 Don't attempt to create blank altnames or scinames 2017-05-29 16:17:43 +12:00
Brenda Wallace
d341e977c3 Fix up check of pending crops in view 2017-05-29 16:17:43 +12:00
Brenda Wallace
e7d7ee396e Further DRY of saving crops 2017-05-29 16:17:43 +12:00
Brenda Wallace
adf585852a Revert "Wikipedia url is always required"
This reverts commit ba5ad00f5c.
2017-05-29 16:17:43 +12:00
Brenda Wallace
de5b56235e Small style change to reduce size of crops#show 2017-05-29 16:17:43 +12:00
Brenda Wallace
318ef46ae8 crops pending approval, fetched in one method (DRY) 2017-05-29 16:17:43 +12:00
Brenda Wallace
b982793fbf Wikipedia url is always required
The form says it's required, so it should be required.
2017-05-29 16:17:43 +12:00
Brenda Wallace
6fef56ebb7 DRY the crops controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
fa586c15aa Dry the scientific names controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
51be3db970 Use a guard clasue in shop controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
5d654175a9 A bunch of single line methods 2017-05-29 16:17:43 +12:00
Brenda Wallace
e9003ad32a Small dry of crops controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
38c3320731 Rubocop fix up in accounts controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
e6b556851a More DRYing of members controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
a30285ef49 DRY some of the members controller 2017-05-29 16:17:43 +12:00
Brenda Wallace
4f67f17551 DRY the shop controller 2017-05-29 16:17:43 +12:00
Shiny
8f66009d0d Merge branch 'dev' into issue-1044-account-deletion 2017-05-29 15:56:17 +12:00
Daniel O'Connor
cdd12fd4dd Merge pull request #1348 from Br3nda/inactive-plantings
Inactive plantings show as tiny thumbnails
2017-05-29 10:52:37 +09:30
Daniel O'Connor
3ff0018a12 Merge branch 'dev' into inactive-plantings 2017-05-29 09:46:03 +09:30
Daniel O'Connor
0b0f479752 Merge pull request #1346 from Br3nda/bugfix-brokenurl-crop-rss
Fixed url in crop rss feed
2017-05-29 09:44:04 +09:30
Shiny
b7148b99dc Merge branch 'dev' into issue-1044-account-deletion 2017-05-28 20:54:02 +12:00
Brenda Wallace
8076e58a97 Owner must exist so we can see photos 2017-05-28 19:32:34 +12:00
Shiny
251d390c23 Merge branch 'dev' into bugfix-brokenurl-crop-rss 2017-05-28 18:52:03 +12:00
Brenda Wallace
f380f222a9 Move edit link to top of card 2017-05-28 18:51:01 +12:00
Brenda Wallace
eacdab45ba Removed planting.with_dates 2017-05-28 18:44:26 +12:00
Brenda Wallace
dcb949e7b3 Fixed bug - error when planting has no finished_at 2017-05-28 18:10:53 +12:00
Brenda Wallace
ebf1468652 Fix up small haml nexting bug 2017-05-28 18:07:19 +12:00
Brenda Wallace
4726b57c47 Inactive plantings show as tiny thumbnails 2017-05-28 17:13:04 +12:00
deppbot
f422336aff Bundle Update on 2017-05-28 2017-05-28 14:23:17 +12:00
Brenda Wallace
2c622af49c Fixed url in crop rss feed 2017-05-27 14:30:24 +12:00
Brenda Wallace
0b684eb05e Checks owner exists, in default_scopes of many models 2017-05-26 23:00:06 +12:00
Brenda Wallace
9c4a45bc29 Merge remote-tracking branch 'origin/issue-1044-account-deletion' into issue-1044-account-deletion 2017-05-26 21:25:00 +12:00
Brenda Wallace
00f7551c0a Merge remote-tracking branch 'upstream/dev' into issue-1044-account-deletion 2017-05-26 21:24:41 +12:00
Shiny
ee7b915313 Merge branch 'dev' into issue-1044-account-deletion 2017-05-26 21:24:29 +12:00
Daniel O'Connor
af0871cd0a Merge pull request #1344 from Growstuff/bundle-update-2017-05-25-051814
Bundle Update on 2017-05-25
2017-05-25 11:49:55 +09:30
deppbot
60d074a0de Bundle Update on 2017-05-25 2017-05-25 05:18:15 +08:00
Shiny
c2ba2719de Merge branch 'master' into dev 2017-05-24 13:26:06 +12:00
Shiny
afb0b9e387 Merge branch 'dev' into issue-1044-account-deletion 2017-05-24 13:25:21 +12:00
pozorvlak
e4e4d9600e Merge pull request #1340 from Br3nda/fix-1334
Display seeds for trade, on homepage, as thumbnails.
2017-05-24 00:35:28 +01:00
Brenda Wallace
a6964a8f4e Update specs to join before checking member is destroyed. 2017-05-21 21:59:28 +12:00
Brenda Wallace
b538330785 Form to delete your own account 2017-05-21 21:51:44 +12:00
Brenda Wallace
aee90268a5 Fixed old migration - to work under act_as_paranoid 2017-05-21 21:50:52 +12:00
Brenda Wallace
cabf849774 Deleting of users 2017-05-21 21:29:09 +12:00
Brenda Wallace
7251f3308b Merge branch 'fix-1334' into issue-1044-account-deletion 2017-05-21 11:46:30 +12:00
Brenda Wallace
121d3d99fe Tests for retrieving data of deleted members 2017-05-21 11:36:07 +12:00
Brenda Wallace
c4938e00e4 Member acts as paranoid 2017-05-21 11:33:12 +12:00
Brenda Wallace
4a926415db Call destroy, to mark a member as deleted 2017-05-21 11:32:54 +12:00
Brenda Wallace
7d4c9011aa Member.deleted_at column added 2017-05-21 11:31:53 +12:00
Brenda Wallace
b5b2582335 default scope says members deleted :false 2017-05-21 11:17:42 +12:00
Brenda Wallace
7d2a2b96a2 Only show gardens of members who are not deleted 2017-05-21 11:17:09 +12:00
Brenda Wallace
e2fe04a44b Form and controller method to mark members as deleted 2017-05-20 22:01:20 +12:00
Brenda Wallace
18c02bf33b Add deleted column to members table 2017-05-20 22:00:15 +12:00
Brenda Wallace
6c0b1018bc Updated spec for homepage seeds 2017-05-20 17:16:03 +12:00
Brenda Wallace
15e2b4f595 Seeds on home page looking like thumbnails 2017-05-20 17:01:07 +12:00
Brenda Wallace
6e7bf11ec8 Seeds delegate name and default_photo to their crop 2017-05-20 17:00:49 +12:00
Brenda Wallace
5f9b0890fb Move seed.interesting to a scope 2017-05-20 16:58:49 +12:00
Brenda Wallace
4841c52bcd order crop.plant_parts by plant_parts.name 2017-05-20 15:46:37 +12:00
Brenda Wallace
7baabca827 Unique is un-necesary when declaring relationship to plant_parts 2017-05-20 15:46:37 +12:00
Brenda Wallace
9a19007b85 More railsy order by in models 2017-05-20 15:46:37 +12:00
Brenda Wallace
677f850e21 Removed extra blank line 2017-05-20 15:46:37 +12:00
Brenda Wallace
d771bc3688 More railsy syntax in default scopes 2017-05-20 15:46:37 +12:00
Brenda Wallace
1dfc58c120 Remove default scope from harvest.
Causes an ORDER clause to be added in queries even when not selecting
from that table. E.g. if we 're looking for PlantParts that have a
Harvest
2017-05-20 15:46:37 +12:00
Brenda Wallace
6f58f266a6 Moving has_photos scope to PhotoCapable
-
2017-05-20 15:46:37 +12:00
deppbot
e38395b6ba Bundle Update on 2017-05-19 2017-05-20 07:07:27 +12:00
Daniel O'Connor
944d477dbc Merge pull request #1338 from Growstuff/bundle-update-2017-05-16-135240
Bundle Update on 2017-05-16
2017-05-16 16:45:08 +09:30
deppbot
cbf7ac0126 Bundle Update on 2017-05-16 2017-05-16 13:52:41 +08:00
Cesy
1ad171f37b Merge pull request #1335 from Growstuff/dev
Release 25
2017-05-15 20:43:16 +01:00
deppbot
06896dacd5 Bundle Update on 2017-05-13 2017-05-14 18:20:44 +12:00
Shiny
ff90d6430d Merge branch 'master' into dev 2017-05-13 11:35:26 +12:00
Brenda Wallace
4dbdbc4285 Pull haml gem back to version 4 2017-05-13 11:31:32 +12:00
deppbot
0f1c8e0658 Bundle Update on 2017-05-03 2017-05-13 11:31:32 +12:00
Daniel O'Connor
c9ec116c9b Merge pull request #1333 from Br3nda/garden-photos-fixup
Fix up of photo display on garden#show
2017-05-11 17:25:51 +09:30
Brenda Wallace
e61c3f619b Revert "Only show first 5 photos on gardens#show"
This reverts commit 93b25a5c32.
2017-05-07 16:10:14 +12:00
Brenda Wallace
93b25a5c32 Only show first 5 photos on gardens#show 2017-05-07 14:41:14 +12:00
Brenda Wallace
f7ca32d888 Moved garden photos to right/bottom 2017-05-06 13:30:57 +12:00
Brenda Wallace
d57c46066a updated view spec to find glypicon 2017-05-06 13:27:23 +12:00
Brenda Wallace
1e6cb2cfe4 don't eager load harvests 2017-05-06 12:15:03 +12:00
Brenda Wallace
67ae80056a Removed unnecesary div wrap 2017-05-06 12:08:23 +12:00
Brenda Wallace
13fa3c69e8 fixes places
card -> thumbnail
2017-05-06 12:06:28 +12:00
Brenda Wallace
caad557b2a Updating specs to click glypicons 2017-05-06 12:03:57 +12:00
Brenda Wallace
0f030d2c27 Planting thumbnail links to planting
fixes #1308
2017-05-06 11:48:17 +12:00
Brenda Wallace
66d548c9c1 Added some glypicons to gardenshow 2017-05-06 11:47:24 +12:00
Brenda Wallace
c168bb4a2b More fix up to alignment and thumbnail row counts gardens#show 2017-05-06 11:39:02 +12:00
Brenda Wallace
811db2961a Quick fix up of photo display on garden#show 2017-05-05 23:38:19 +12:00
Brenda Wallace
42cea2ebde Fixed spec for days_before_maturity 2017-04-28 20:48:25 +12:00
Brenda Wallace
ccc5eb3c9a Make calc_and_set_days_before_maturity public 2017-04-28 20:48:25 +12:00
Brenda Wallace
0e71a4fcb3 Removed un-needed rubocop ignores 2017-04-28 20:48:25 +12:00
Brenda Wallace
4ea681984f Call calc_and_set_days_before_maturity from controller 2017-04-28 20:48:25 +12:00
Brenda Wallace
dadc5b96c6 Reduced duplicate code further, with responders gem
This makes locale-friendly flash notices
2017-04-28 20:48:25 +12:00
Brenda Wallace
787fca138b Added helpful comment about days_until_maturity 2017-04-28 20:48:25 +12:00
Brenda Wallace
b820615081 Moved planting maturity to planting model. simplified controller 2017-04-28 20:48:25 +12:00
Cesy
812a6f5ec2 Merge pull request #1328 from Growstuff/dev
release 24
2017-04-28 07:31:21 +01:00
Shiny
f1b42ec699 Merge branch 'master' into dev 2017-04-25 13:14:40 +12:00
Brenda Wallace
26c17ea19c Plantings Thumbnails, fit to box 2017-04-25 10:58:17 +12:00
Brenda Wallace
acc75f80bf include harvests when retrieving data for plantings#index 2017-04-25 10:58:17 +12:00
Daniel O'Connor
a79a65363f Merge pull request #1326 from Br3nda/plantings-validators
Plantings validators
2017-04-24 17:47:41 +09:30
Shiny
dfeb4804e7 Merge branch 'dev' into plantings-validators 2017-04-23 19:35:37 +12:00
deppbot
9d20fafd06 Bundle Update on 2017-04-23 2017-04-23 19:35:23 +12:00
Shiny
e9a5ef0058 Merge branch 'dev' into plantings-validators 2017-04-22 20:50:29 +12:00
Brenda Wallace
d2378376e4 Plantings validators
Adding garden presence true.
Checks crop presence before crop approved
2017-04-22 20:48:48 +12:00
Daniel O'Connor
4b1b5d8a18 Merge pull request #1323 from Growstuff/bundle-update-2017-04-20-122131
Bundle Update on 2017-04-20
2017-04-20 15:27:04 +09:30
deppbot
a0770e80e7 Bundle Update on 2017-04-20 2017-04-20 12:21:32 +08:00
Brenda Wallace
f08e740ac6 Removed owner_matches?
it's not used anymore
2017-04-19 08:22:03 +00:00
Brenda Wallace
5f23bcfad6 Photo#show for signed in and not signed in, and other members 2017-04-19 08:22:03 +00:00
Brenda Wallace
3cd7b86c99 Photos#show links to items 2017-04-19 08:22:03 +00:00
Brenda Wallace
bd53d4a271 updating view spec - link to delete photo has changed 2017-04-19 08:22:03 +00:00
Brenda Wallace
16d88730ec controller specs for PhotoAssociations 2017-04-19 08:22:03 +00:00
Brenda Wallace
5ad88eb6bd Responsive image on photos#show 2017-04-19 08:22:03 +00:00
Brenda Wallace
b617eb3140 Deleting photo's association with another item 2017-04-19 08:22:03 +00:00
Brenda Wallace
acc4d3ad84 Only delete own associations 2017-04-19 08:22:03 +00:00
Brenda Wallace
beb3f7e2b8 Don't overwrite edited photo titles 2017-04-19 08:22:03 +00:00
Brenda Wallace
ab46a8dd96 UI for removing photos from plantings 2017-04-19 08:22:03 +00:00
Brenda Wallace
b6b578d7e6 Layout change on photos 2017-04-19 08:22:03 +00:00
Brenda Wallace
4d07cf80fa Editing title of photos 2017-04-19 08:22:03 +00:00
Brenda Wallace
93f6b65d8d bugfix: Only show harvests if we have some 2017-04-19 08:22:03 +00:00
Brenda Wallace
b40a6723e1 gardens#show Include crop, owner, harvesss and garden in query 2017-04-19 08:22:03 +00:00
Brenda Wallace
2058d28b37 Include owner in query, because we need it later 2017-04-19 08:22:03 +00:00
Brenda Wallace
682c6d6f5e Reduced query count by .includes() on plantings 2017-04-19 08:22:03 +00:00
Brenda Wallace
2be55acc92 Route for flickr auth callback -- Fixes #1106 2017-04-19 08:22:03 +00:00
Brenda Wallace
a9a040182c Rubocop compliance for members controller 2017-04-19 08:22:03 +00:00
Shiny
f39fe94173 Merge branch 'master' into dev 2017-04-18 18:27:43 +00:00
Brenda Wallace
976bdbbd96 Removed owner_matches?
it's not used anymore
2017-04-18 07:09:47 +00:00
Brenda Wallace
cff1d8bfb9 Photo#show for signed in and not signed in, and other members 2017-04-18 07:09:47 +00:00
Brenda Wallace
bbdc54cb69 Photos#show links to items 2017-04-18 07:09:47 +00:00
Brenda Wallace
36f1f7b71a updating view spec - link to delete photo has changed 2017-04-18 07:09:47 +00:00
Brenda Wallace
e1731793dd controller specs for PhotoAssociations 2017-04-18 07:09:47 +00:00
Brenda Wallace
8ea3b27612 Responsive image on photos#show 2017-04-18 07:09:47 +00:00
Brenda Wallace
9469a69078 Deleting photo's association with another item 2017-04-18 07:09:47 +00:00
Brenda Wallace
cc46fe3336 Only delete own associations 2017-04-18 07:09:47 +00:00
Brenda Wallace
52b4064a2d Don't overwrite edited photo titles 2017-04-18 07:09:47 +00:00
Brenda Wallace
d367b9ef21 UI for removing photos from plantings 2017-04-18 07:09:47 +00:00
Brenda Wallace
4711e4669f Layout change on photos 2017-04-18 07:09:47 +00:00
Brenda Wallace
3e55024f98 Editing title of photos 2017-04-18 07:09:47 +00:00
Daniel O'Connor
ccf56bf944 Merge pull request #1321 from Br3nda/harvests-display
bugfix: Only show harvests if we have some
2017-04-18 12:24:01 +09:30
Shiny
42e51a9cf6 Merge branch 'dev' into harvests-display 2017-04-17 10:00:20 +00:00
Brenda Wallace
667e0cc0e3 bugfix: Only show harvests if we have some 2017-04-17 21:59:31 +12:00
Brenda Wallace
339830b3bb gardens#show Include crop, owner, harvesss and garden in query 2017-04-17 08:59:34 +00:00
Brenda Wallace
7770164672 Include owner in query, because we need it later 2017-04-17 08:59:34 +00:00
Brenda Wallace
f333607572 Reduced query count by .includes() on plantings 2017-04-17 08:59:34 +00:00
Brenda Wallace
87d3764eeb Route for flickr auth callback -- Fixes #1106 2017-04-17 08:28:52 +00:00
Cesy
faf487b719 Merge pull request #1314 from Br3nda/members-controller
Rubocop compliance for members controller
2017-04-17 09:13:26 +01:00
Shiny
53eb171dfc Merge pull request #1317 from Growstuff/dev
release 22
2017-04-17 05:00:59 +00:00
Shiny
3dbf0df19e Merge branch 'dev' into members-controller 2017-04-17 03:49:54 +00:00
deppbot
b0b6931678 Bundle Update on 2017-04-17 2017-04-17 03:45:39 +00:00
Shiny
cd272a6443 Merge branch 'dev' into members-controller 2017-04-16 09:44:32 +00:00
Daniel O'Connor
d515dba7f2 Merge pull request #1316 from Br3nda/garden-thumbnail
Garden thumbnail display cleanup
2017-04-16 15:50:52 +09:30
Shiny
4958330c9e Merge branch 'master' into dev 2017-04-16 02:42:38 +00:00
Brenda Wallace
17236a4a8a Garden thumbnail display cleanup 2017-04-16 13:48:22 +12:00
Brenda Wallace
936a8778ed Rubocop compliance for members controller 2017-04-16 12:03:48 +12:00
Daniel O'Connor
3ccab3f857 Merge pull request #1309 from Br3nda/fix_1305
Fix 1305
2017-04-15 17:11:02 +09:30
Daniel O'Connor
0201e873eb Merge branch 'dev' into fix_1305 2017-04-15 17:03:15 +09:30
Daniel O'Connor
20289e6566 Merge pull request #1310 from Br3nda/counter-caches
Adding counter caches
2017-04-15 17:01:20 +09:30
Shiny
85ded414ec Merge branch 'dev' into fix_1305 2017-04-15 06:50:16 +00:00
Shiny
299c95c5f5 Merge branch 'dev' into counter-caches 2017-04-14 07:40:19 +00:00
Taylor Griffin
8f51090098 make mentionbot settings file 2017-04-14 07:40:01 +00:00
deppbot
5551eeba24 Bundle Update on 2017-04-14 2017-04-14 07:10:10 +00:00
Shiny
7a5a68f511 Merge branch 'dev' into counter-caches 2017-04-14 01:44:44 +00:00
Shiny
6d4ec9ad34 Merge branch 'dev' into fix_1305 2017-04-14 01:44:35 +00:00
Brenda Wallace
fffef75813 Ignore ConsecutiveComments and IdNames in haml for now 2017-04-14 01:43:42 +00:00
Brenda Wallace
0e2d7b4393 Allow instance variables in partials for now 2017-04-14 01:43:42 +00:00
Brenda Wallace
f08068c289 Upgrade haml_lint 2017-04-14 01:43:42 +00:00
deppbot
ff653934ad Bundle Update on 2017-04-08 2017-04-14 01:43:42 +00:00
Brenda Wallace
c4bed2cf4d Merge branch 'haml-lint-fix' into counter-caches 2017-04-14 11:42:02 +12:00
Brenda Wallace
47c0f74f81 Ignore ConsecutiveComments and IdNames in haml for now 2017-04-14 11:40:52 +12:00
Brenda Wallace
171e34914b Allow instance variables in partials for now 2017-04-14 11:40:46 +12:00
Brenda Wallace
8010a8b56c Upgrade haml_lint 2017-04-14 11:40:40 +12:00
Brenda Wallace
ac165ce0cd Adding counter caches 2017-04-14 11:32:31 +12:00
Brenda Wallace
4925fde28f Ignore ConsecutiveComments and IdNames in haml for now 2017-04-14 09:43:16 +12:00
Brenda Wallace
6580cf38b0 Allow instance variables in partials for now 2017-04-13 23:02:16 +12:00
Brenda Wallace
fdf10202ba Upgrade haml_lint 2017-04-13 22:56:07 +12:00
Brenda Wallace
85a368999b we love rubocop 2017-04-13 14:30:51 +12:00
Daniel O'Connor
6ba4b4560e Fix #1305 by adding aggregation
Expand test coverage
member_id is owner_id on plantings
Argue with ActionView::Template::Error about what we can group on

Rename variable
2017-04-13 14:30:41 +12:00
Cesy
71aedb136a Merge pull request #1300 from Growstuff/bundle-update-2017-04-02-131809
Bundle Update on 2017-04-02
2017-04-08 15:06:16 +01:00
Shiny
65c988790b Merge branch 'dev' into bundle-update-2017-04-02-131809 2017-04-06 08:04:46 +12:00
Brenda Wallace
0372d3b9b0 Removing pre-commit.sh script 2017-04-06 08:04:09 +12:00
Shiny
3272ea1ca5 Merge branch 'dev' into bundle-update-2017-04-02-131809 2017-04-06 07:51:19 +12:00
Shiny
39b461c348 Merge pull request #1243 from Growstuff/dev
Release 21
2017-04-06 07:49:08 +12:00
pozorvlak
a8f7031447 Merge pull request #1303 from Br3nda/disable-eslint
Disable eslint

Fixes #1302, at least temporarily.
2017-04-05 11:15:10 +01:00
Shiny
17967b7c72 Merge branch 'dev' into disable-eslint 2017-04-04 09:07:02 +12:00
Brenda Wallace
e422c8b072 Disable eslint 2017-04-03 21:05:35 +00:00
Cesy
5392d7d900 Merge branch 'dev' into bundle-update-2017-04-02-131809 2017-04-03 08:47:32 +01:00
Cesy
d42bbe7fa3 Merge pull request #1299 from Br3nda/gemfile-ruby-bump
Gemfile.lock bumping ruby version to match other files
2017-04-03 08:46:19 +01:00
deppbot
45f2abeab5 Bundle Update on 2017-04-02 2017-04-02 13:18:11 +08:00
Brenda Wallace
7e754b8293 Gemfile.lock bumping ruby version to match other files 2017-04-01 15:19:18 +13:00
pozorvlak
1dcd84009a Merge pull request #1298 from CloCkWeRX/ruby_234
Ruby 2.3.4
2017-03-31 14:07:36 +01:00
Daniel O'Connor
8615df264e Ruby 2.3.4 2017-03-31 16:29:21 +10:00
Daniel O'Connor
4e400cc899 Merge pull request #1295 from Growstuff/bundle-update-2017-03-30-121732
Bundle Update on 2017-03-30
2017-03-31 16:27:43 +10:00
Daniel O'Connor
3cead5fb6b Pin to earlier rubocop 2017-03-31 16:15:55 +10:00
Shiny
1decf6ea11 Merge branch 'dev' into bundle-update-2017-03-30-121732 2017-03-30 21:37:57 +13:00
Harry Brodsky
23c0f901c6 Add name to CONTRIBUTORS.md 2017-03-30 19:15:48 +13:00
Harry Brodsky
78f4b3dbf3 Update irregular crop pluralizations 2017-03-30 19:15:48 +13:00
deppbot
9340b8d7e5 Bundle Update on 2017-03-30 2017-03-30 12:17:33 +08:00
pozorvlak
0094473bbe Merge pull request #1287 from Br3nda/bw/readme-new-contributors
Readme update for new contributors - force-merging because it only touches README.md.
2017-03-28 23:56:37 +01:00
pozorvlak
743f482818 Merge pull request #1292 from Br3nda/query-optimising
Query optimising
2017-03-28 23:55:05 +01:00
Brenda Wallace
b8ea6116d4 Add photos to plantings to make them interesting in the spec 2017-03-29 10:46:15 +13:00
Brenda Wallace
2521e52d71 Remove test called to Planting.interesting(...)
Interesting plantings with no photos is not used in the code.
The method was converted to a scope.
2017-03-29 08:28:58 +13:00
Brenda Wallace
d44f9ef4e9 Removed assignment of useless variable 2017-03-29 08:21:34 +13:00
Brenda Wallace
63cee1edc9 Back to reading @garden.plantings 2017-03-29 08:21:02 +13:00
Brenda Wallace
3791b34fe3 One planting per owner (used for intersetingness) 2017-03-28 22:39:03 +13:00
Brenda Wallace
5d58be110e Fixed crop.interesting, no more duplicate crops 2017-03-28 19:33:34 +13:00
Brenda Wallace
911593b480 Reduces query numbes on gardens#show 2017-03-24 21:10:45 +13:00
Shiny
b72a3d6942 Merge branch 'dev' into query-optimising 2017-03-24 18:31:18 +13:00
Brenda Wallace
804ac8662a Rubocop fix ups 2017-03-24 17:29:39 +13:00
Brenda Wallace
1601e966ad Planting.interesting is in a scope 2017-03-24 16:59:09 +13:00
Brenda Wallace
e7553868f2 Removed variables on homes controller
following the comment there
2017-03-24 16:57:51 +13:00
Brenda Wallace
5e8ca392d2 Moved Member.interest near top of file 2017-03-24 16:45:55 +13:00
Brenda Wallace
815915d933 Loading child records of interesting crops 2017-03-24 16:45:36 +13:00
Brenda Wallace
6223076dae Pull in interesting members data in controller 2017-03-24 16:30:56 +13:00
Brenda Wallace
0182a99654 Optimising Member.interesting 2017-03-24 16:28:37 +13:00
Brenda Wallace
5baa357bb3 Use bullet to find queries to optomise 2017-03-24 16:07:05 +13:00
deppbot
0fb4d74685 Bundle Update on 2017-03-24 2017-03-24 09:24:40 +13:00
Daniel O'Connor
eebaef6fde Merge branch 'dev' into bw/readme-new-contributors 2017-03-21 14:03:22 +10:30
Daniel O'Connor
59fc550f3c Merge pull request #1290 from Growstuff/bundle-update-2017-03-19-161121
Bundle Update on 2017-03-19
2017-03-20 14:15:06 +10:30
Shiny
64ffaab1ec Merge branch 'dev' into bundle-update-2017-03-19-161121 2017-03-20 10:01:48 +13:00
Cesy
21f53e362f Merge pull request #1279 from Br3nda/plantings-harvests
View harvests for a planting
2017-03-19 09:46:57 +00:00
deppbot
20cfa0c5b2 Bundle Update on 2017-03-19 2017-03-19 16:11:22 +08:00
Shiny
204633d533 Merge branch 'dev' into bw/readme-new-contributors 2017-03-18 14:21:43 +13:00
Shiny
c77ed8c6d0 Merge branch 'dev' into plantings-harvests 2017-03-17 08:18:56 +13:00
Shiny
fe7ae18e7b Merge pull request #1285 from Growstuff/add-contributor-megan
Added Megan to contributors
2017-03-17 08:13:03 +13:00
Shiny
8746cc67e2 Merge branch 'dev' into plantings-harvests 2017-03-17 08:11:33 +13:00
Shiny
f1feb59818 Merge branch 'dev' into add-contributor-megan 2017-03-17 08:10:32 +13:00
Shiny
bb62b11070 Merge branch 'dev' into bw/readme-new-contributors 2017-03-16 21:15:30 +13:00
deppbot
1660d54c01 Bundle Update on 2017-03-16 2017-03-16 21:15:11 +13:00
Shiny
cb7715b6d9 Merge branch 'dev' into bw/readme-new-contributors 2017-03-16 15:35:22 +13:00
Shiny
a60d0faedd Merge branch 'dev' into add-contributor-megan 2017-03-16 15:35:15 +13:00
Shiny
7f592579cd Merge branch 'dev' into plantings-harvests 2017-03-16 15:35:06 +13:00
Brenda Wallace
998befb30f Limited plantings to member's own garden, and approved crops 2017-03-16 15:29:25 +13:00
Shiny
ebbf6df87d Merge branch 'dev' into plantings-harvests 2017-03-16 14:59:54 +13:00
Shiny
40e4f8df8a Merge branch 'dev' into add-contributor-megan 2017-03-16 14:59:26 +13:00
Brenda Wallace
81d41398a2 Link to waffle from readme 2017-03-16 14:55:30 +13:00
Brenda Wallace
4f02f45ae8 Updated wiki link 2017-03-16 14:55:22 +13:00
Arun Kumar
f7ec1826b0 Use presence instead of regex validation 2017-03-16 13:27:13 +13:00
Shiny
d619cd160d Added Megan to contributors 2017-03-16 13:04:31 +13:00
Daniel O'Connor
4a20f68d3a Merge branch 'dev' into plantings-harvests 2017-03-16 09:40:56 +10:30
Daniel O'Connor
62d2b5e9fb Merge pull request #1273 from Br3nda/yaml-cleanup
Yaml file clean up
2017-03-16 09:39:33 +10:30
Daniel O'Connor
5935d2e73f Merge pull request #1276 from Br3nda/bw/install-linters
Install npm modules locally
2017-03-16 09:38:54 +10:30
Daniel O'Connor
92b8972b24 Merge pull request #1278 from Br3nda/bw/crop-model-dupe
Reduced duplication of the term "approved" in crop model
2017-03-16 09:37:24 +10:30
Daniel O'Connor
12254fe0ca Merge pull request #1275 from Br3nda/bw/discourse-removal
Removing references to Discourse (talk.growstuff.org)
2017-03-16 09:36:29 +10:30
Daniel O'Connor
ea54fca2b2 Merge pull request #1282 from Br3nda/gardens-order
Gardens order
2017-03-16 09:35:17 +10:30
Daniel O'Connor
d7db9007fd Merge pull request #1280 from Br3nda/public-error-pages
Update public error pages
2017-03-16 09:32:52 +10:30
Daniel O'Connor
c2acb8cf73 Merge pull request #1274 from Br3nda/fix-traxis-badge
Tie travis badge to a branch
2017-03-16 09:30:27 +10:30
Shiny
8d04d4b223 Merge branch 'dev' into plantings-harvests 2017-03-15 23:10:15 +13:00
Shiny
35d9c8e9f1 Merge branch 'dev' into bw/crop-model-dupe 2017-03-15 23:09:31 +13:00
Shiny
b23118a9db Merge branch 'dev' into public-error-pages 2017-03-15 23:09:21 +13:00
Shiny
5585dbada1 Merge branch 'dev' into gardens-order 2017-03-15 23:09:09 +13:00
Thomas Countz
fa49234669 remove "add new garden" on other member's page (#1283)
* update garden#show view logic
* added name to contributors
Closes #1167
2017-03-15 23:06:32 +13:00
Shiny
8833571ab3 Merge branch 'dev' into bw/discourse-removal 2017-03-14 16:21:44 +13:00
Shiny
a54e66f2fd Merge branch 'dev' into bw/install-linters 2017-03-12 22:56:11 +13:00
Shiny
7913f85cf4 Merge branch 'dev' into yaml-cleanup 2017-03-12 22:55:11 +13:00
Shiny
bf46c0a6d2 Merge branch 'dev' into bw/crop-model-dupe 2017-03-12 22:54:32 +13:00
Shiny
082bdb035f Merge branch 'dev' into plantings-harvests 2017-03-12 22:54:17 +13:00
Shiny
15bedb1659 Merge branch 'dev' into public-error-pages 2017-03-12 22:54:03 +13:00
Shiny
5995812215 Merge branch 'dev' into gardens-order 2017-03-12 22:53:34 +13:00
Brenda Wallace
195d1bbdbb order gardens by recently updated 2017-03-12 20:12:28 +13:00
deppbot
55e0579384 Bundle Update on 2017-03-12 2017-03-12 18:50:42 +13:00
Megan Talbot
d167a427b9 Update public error pages
Author:    Megan Talbot <meganftalbot@gmail.com>
Date:      Wed Mar 1 15:55:30 2017 -0700
2017-03-12 14:46:40 +13:00
Brenda Wallace
c89c20e842 View harvests for a planting 2017-03-12 14:44:11 +13:00
Shiny
ad04a48c8f Merge branch 'dev' into bw/discourse-removal 2017-03-12 13:56:04 +13:00
Shiny
d3a47b3dc6 Merge branch 'dev' into fix-traxis-badge 2017-03-12 12:49:22 +13:00
Brenda Wallace
02de30f617 Reduced duplication of the term "approved" in crop model 2017-03-12 12:31:38 +13:00
Shiny
a4360a0fa5 Merge branch 'dev' into yaml-cleanup 2017-03-12 11:44:21 +13:00
Brenda Wallace
39d4dec294 Npm sourced linters in package.json 2017-03-12 11:26:50 +13:00
Brenda Wallace
4c189b4d56 Lock haml_lint to 0.20.0 and update other gems 2017-03-12 10:53:55 +13:00
Brenda Wallace
8267b7d16d Removing references to Discource (talk.growstuff.org)
and adding one link to github issues.
2017-03-12 10:51:25 +13:00
Brenda Wallace
bf9f86d516 Tie travis badge to a branch
Instead of showing the most recent buid (on any branch),
show the dev branch.
2017-03-12 10:42:17 +13:00
Brenda Wallace
a93c4e9fb8 Yaml file clean up 2017-03-12 10:38:39 +13:00
deppbot
3243716d13 Bundle Update on 2017-03-06 2017-03-08 10:41:52 +13:00
Cesy
685418507b Merge pull request #1266 from Br3nda/spec-fixups
bugfix in some spec expectations
2017-03-05 08:32:09 +00:00
Shiny
418c5fdcd0 Merge branch 'dev' into spec-fixups 2017-03-05 21:11:06 +13:00
Brenda Wallace
322f28eaa6 bugfix in some spec expectations 2017-03-05 00:36:10 +13:00
Cesy
7a06ab0b61 Merge pull request #1264 from Br3nda/js-clean
Added missing semicolons to js files
2017-03-04 11:07:19 +00:00
Shiny
a5dda8ab9b Merge branch 'dev' into js-clean 2017-03-04 23:58:04 +13:00
Cesy
54b5c139f3 Merge pull request #1263 from Br3nda/bundle-audit-update
Bundle audit needs updating in test runs
2017-03-04 10:34:39 +00:00
Shiny
864990dc8a Merge branch 'dev' into js-clean 2017-03-04 17:09:01 +13:00
Brenda Wallace
1e0ccd72a2 Added missing semicolons to js files 2017-03-04 17:06:29 +13:00
Shiny
513a8924d8 Merge branch 'dev' into bundle-audit-update 2017-03-04 16:52:19 +13:00
Brenda Wallace
478d68ee25 Bundle audit needs updating 2017-03-04 16:45:43 +13:00
deppbot
175780aa06 Bundle Update on 2017-03-03 2017-03-04 16:33:18 +13:00
Miles Gould
c9558be2d3 Add deppbot to CONTRIBUTORS.md
This prevents deppbot-generated pull requests from failing the "are you
in CONTRIBUTORS.md?" check in CI.
2017-03-04 16:16:28 +13:00
Miles Gould
f1d3a70bbd Install git-guilt linter 2017-03-03 14:25:03 +13:00
Miles Gould
d3dd6f88f2 Fix typo in CONTRIBUTING.md 2017-03-03 14:25:03 +13:00
Brenda Wallace
882d641683 Photo changes expire homepage too 2017-03-03 08:49:24 +13:00
pozorvlak
a53f6073a6 Merge pull request #1253 from Br3nda/rubocop-progress
Rubocop progress
2017-03-02 17:45:39 +00:00
pozorvlak
7c7020f50a Merge branch 'dev' into rubocop-progress 2017-03-02 14:31:39 +00:00
pozorvlak
41b3c0f4fc Merge pull request #1254 from Br3nda/bw/unneeded-percent-q
Rubocop fix for unneeded %Q
2017-03-02 14:29:05 +00:00
pozorvlak
314087321c Merge branch 'dev' into bw/unneeded-percent-q 2017-03-02 13:41:01 +00:00
pozorvlak
c67067acaf Merge pull request #1247 from Br3nda/overcommit
Run the linters etc from overcommit
2017-03-02 13:11:19 +00:00
Shiny
d23be43c2f Merge branch 'dev' into overcommit 2017-03-02 22:24:18 +13:00
Brenda Wallace
6c282ffbd7 rubocop fix for redundant self assignment 2017-03-02 22:21:15 +13:00
Brenda Wallace
0ecc65bbe0 rubocop fix for redundant self 2017-03-02 22:21:15 +13:00
Brenda Wallace
076da040b5 Revert "Intentionally making rubocop fail"
This reverts commit 17858cc17c.
2017-03-02 21:53:20 +13:00
Brenda Wallace
17858cc17c Intentionally making rubocop fail 2017-03-02 21:50:48 +13:00
Brenda Wallace
66fec1f4a3 Adding yaml linter 2017-03-02 21:32:53 +13:00
Brenda Wallace
69848f11ca Docs on using overcommit 2017-03-02 21:22:22 +13:00
Brenda Wallace
affbe2a460 renamed ruby files to .rb
so rubocop cop catches these in her net
2017-03-02 21:13:35 +13:00
Brenda Wallace
cc40bb35fb bundle exec on the contributor check 2017-03-02 21:04:21 +13:00
Shiny
542cc1f546 Merge branch 'dev' into bw/unneeded-percent-q 2017-03-02 21:02:28 +13:00
Brenda Wallace
0d2fb25881 Removed gemfile check. overcommit can do this 2017-03-02 20:59:45 +13:00
Brenda Wallace
29f050d19f Removed check_conflicts. overcommit does this 2017-03-02 20:48:21 +13:00
Brenda Wallace
2238374080 Moved overcommit call into check_static 2017-03-02 20:47:18 +13:00
Brenda Wallace
cad8ecad8f Added bundle-audit 2017-03-02 20:40:25 +13:00
Brenda Wallace
d161053328 Always create db - so we can check rails schema is up to date 2017-03-02 20:19:22 +13:00
Brenda Wallace
dbb74c5675 Moved phantom verion output to script 2017-03-02 20:10:47 +13:00
Brenda Wallace
6422070f04 Moved linter installs to own script 2017-03-02 20:06:47 +13:00
Brenda Wallace
b6512ce8e4 RailsSchemaUpToDate and BundleAudit added to overcommit 2017-03-02 20:00:46 +13:00
Brenda Wallace
a3e0bc0798 Rubocop fix for Gemfile 2017-03-02 19:59:59 +13:00
Brenda Wallace
5ec70d1438 Moved merge conflict checking to overcommit 2017-03-02 19:54:18 +13:00
Brenda Wallace
e848e18574 Removed commented out overcommit linters 2017-03-02 19:49:49 +13:00
Brenda Wallace
cfff970812 Revert "Intentionally making rubocop unhappy"
This reverts commit 6e3f5f9d77fb4b3b81265665adea1e1b416469fe.
2017-03-01 20:48:15 +00:00
Brenda Wallace
0db8c2feb2 Intentionally making rubocop unhappy
to test travis
2017-03-01 20:48:15 +00:00
Brenda Wallace
7e06bf4fd0 Wrap shell script variables in "" 2017-03-01 20:48:15 +00:00
Brenda Wallace
dd710860de Run the linters etc from overcommit 2017-03-01 20:48:15 +00:00
pozorvlak
4718a9edab Merge pull request #1256 from Br3nda/numeric
Rubocop fix for some numerics
2017-03-01 13:31:10 +00:00
Brenda Wallace
8c5db9229a fixed forced octal 2017-03-01 17:49:42 +13:00
Brenda Wallace
e229438997 rubocop fox for numeric literals 2017-03-01 17:46:12 +13:00
Brenda Wallace
85a4490740 Rubocop fix for unneeded %Q 2017-03-01 17:35:06 +13:00
Brenda Wallace
9684e84420 Moved metrics to bottom of rubocop.yml
Waiting to be completed
2017-03-01 11:38:16 +13:00
Brenda Wallace
4364c028a2 Removed offense counts 2017-03-01 11:36:40 +13:00
Brenda Wallace
4e44e26c6c Removed rubocop todos that are done 2017-03-01 11:24:26 +13:00
Daniel O'Connor
b07c033863 Merge pull request #1249 from Growstuff/bundle-update-2017-02-28-091217
Bundle Update on 2017-02-28
2017-02-28 11:59:57 +10:30
deppbot
f167f5cbd4 Bundle Update on 2017-02-28 2017-02-28 09:12:18 +08:00
pozorvlak
7a1b192392 Merge pull request #1238 from CloCkWeRX/bundle-update-2017-02-23-1
Upgrade rails, other gems
2017-02-27 15:18:43 +00:00
pozorvlak
642f371416 Merge branch 'dev' into bundle-update-2017-02-23-1 2017-02-27 15:01:14 +00:00
pozorvlak
f4e2b6e115 Merge pull request #1244 from Br3nda/photos-controller
DRY the photos controller
2017-02-27 11:26:14 +00:00
Daniel O'Connor
1873d28b50 Merge branch 'dev' into bundle-update-2017-02-23-1 2017-02-27 16:08:50 +10:30
Brenda Wallace
ce03b4efde DRY the photos controller 2017-02-26 17:03:29 +13:00
Shiny
102c113b0c Merge branch 'master' into dev 2017-02-25 22:56:23 +13:00
Shiny
245cd2e44c Merge branch 'dev' into bundle-update-2017-02-23-1 2017-02-25 22:56:01 +13:00
Cesy
f28456875b Merge pull request #1242 from Br3nda/schema-update
Schema is out of sync -- fixing
2017-02-24 21:15:12 +00:00
Brenda Wallace
9604eed2f3 Schema is out of sync -- fixing 2017-02-24 20:19:01 +13:00
Brenda Wallace
4eda3a506b Fix up csv importer, should make duplicates
Now matches the old functionality.
2017-02-24 20:08:01 +13:00
Daniel O'Connor
14f3dc7526 Add explaining notes 2017-02-23 14:34:38 +10:30
Daniel O'Connor
f2d3c88c85 Revert "Upgrade to the 4.x series of d3-rails"
This reverts commit 5bd7d9aa43.
2017-02-23 14:33:33 +10:30
Daniel O'Connor
f4e0efc8da Update autoprefixer-rails 2017-02-23 14:32:47 +10:30
Daniel O'Connor
13bfdeaa1a Pin Kaminari for the moment, until https://github.com/kaminari/kaminari/blob/master/CHANGELOG.md#100 assessed 2017-02-23 14:31:47 +10:30
Daniel O'Connor
e2fb7c940f Upgrade js-routes 2017-02-23 14:30:10 +10:30
Daniel O'Connor
5bd7d9aa43 Upgrade to the 4.x series of d3-rails 2017-02-23 14:28:19 +10:30
Daniel O'Connor
117c717391 Upgrade capybara, codeclimate-test-reporter 2017-02-23 14:25:51 +10:30
Daniel O'Connor
72603a2db0 Pin to specific omniauth versions for the moment, to avoid login test regression 2017-02-23 14:24:29 +10:30
Daniel O'Connor
9f8cfa8de3 Update sexp_processor, ruby-units 2017-02-23 14:23:01 +10:30
Daniel O'Connor
221dd45681 Upgrade to d3 3.5 “Mount Sharp” 2017-02-23 14:19:33 +10:30
Daniel O'Connor
fb2a600433 Pin d3-rails for the moment 2017-02-23 14:18:31 +10:30
Daniel O'Connor
296f8dddfa Update selenium-webdriver, haml_lint, jasmine 2017-02-23 14:15:27 +10:30
Daniel O'Connor
da16a38d1f Upgrade rails 2017-02-23 14:12:27 +10:30
Brenda Wallace
5abc1fb80e duplicate alt name spec (and adding to crop) 2017-02-23 15:35:29 +13:00
Brenda Wallace
86d5f5febd sciname/altnames adding code is very similar 2017-02-23 15:35:29 +13:00
Brenda Wallace
0a840abc58 Added specs for duplicate sci names 2017-02-23 15:35:29 +13:00
Brenda Wallace
968e9bd3ad Rubocop fix up in spec 2017-02-23 15:35:29 +13:00
Brenda Wallace
ddd0e0c285 Fixed typo in string causing spec to fail 2017-02-23 15:35:29 +13:00
Brenda Wallace
00952d5ef6 Updating more specs for new csv importer interface 2017-02-23 15:35:29 +13:00
Brenda Wallace
a0e1d8b11d Update scientific name model spec 2017-02-23 15:35:29 +13:00
Brenda Wallace
3d7f2ec20c Updating specs to match new csv importer 2017-02-23 15:35:29 +13:00
Brenda Wallace
abbd2cf0a4 fix bug: look up parent crop by name in csv import 2017-02-23 15:35:29 +13:00
Brenda Wallace
2f9961651f Call new csv importer from specs 2017-02-23 15:35:29 +13:00
Brenda Wallace
3089c28233 Adding validations to sci names and alt names 2017-02-23 15:35:29 +13:00
Brenda Wallace
4e722dd123 Move crop csv import to own file 2017-02-23 15:35:29 +13:00
Brenda Wallace
5698a78d9b DRY the accounts controller 2017-02-23 09:45:57 +13:00
Daniel O'Connor
71804a0b41 Merge pull request #1235 from Br3nda/accounttypes-controller-DRY
DRY the account types controller
2017-02-22 11:03:00 +10:30
Brenda Wallace
d500c9093d DRY the account types controller 2017-02-22 13:21:59 +13:00
Shiny
9ff468aa50 Merge pull request #1228 from Growstuff/dev
Release 20
2017-02-22 09:21:01 +13:00
Shiny
4261f16cd0 Merge pull request #1133 from pozorvlak/test_runners
Refactor test-runners
2017-02-21 11:59:09 +13:00
Shiny
b8884beb2f Merge branch 'dev' into test_runners 2017-02-21 11:31:02 +13:00
pozorvlak
bc88c4d8c7 Merge pull request #1231 from Br3nda/seeds-controller
DRY seeds controller
2017-02-20 13:49:29 +00:00
pozorvlak
3ac4fbcdb8 Merge branch 'dev' into seeds-controller 2017-02-20 13:36:50 +00:00
pozorvlak
549426e3e0 Merge pull request #1230 from Br3nda/gardens-controller
DRY the gardens controller
2017-02-20 13:36:40 +00:00
pozorvlak
25a1f0da9a Merge branch 'dev' into gardens-controller 2017-02-20 13:11:18 +00:00
pozorvlak
3be2fc6241 Merge pull request #1229 from Br3nda/harvests-controller
DRY the Harvests controller
2017-02-20 13:11:04 +00:00
pozorvlak
837934167b Merge branch 'dev' into harvests-controller 2017-02-20 13:02:58 +00:00
pozorvlak
d43d8ae0e7 Merge pull request #1217 from Br3nda/MultilineMethodCallBraceLayout
Fix up to match rubocop's MultilineMethodCallBraceLayout recommendation
2017-02-20 12:46:17 +00:00
Brenda Wallace
035b2399ca DRY seeds controller 2017-02-20 20:54:06 +13:00
Brenda Wallace
1a3e976ba5 DRY the gardens controller 2017-02-20 02:36:51 +00:00
Brenda Wallace
d31739f86a Further code clarity on the harvest csv filename 2017-02-20 10:07:14 +13:00
Brenda Wallace
0f523381f0 DRY the harvest controller 2017-02-20 09:58:36 +13:00
Brenda Wallace
550848a513 ParenthesesAroundCondition fixup 2017-02-19 16:20:45 +13:00
Brenda Wallace
ae3752e021 DefWithParentheses fixup 2017-02-19 16:19:16 +13:00
Brenda Wallace
50624fb2cb Style/MultilineBlockLayout fix 2017-02-19 16:17:03 +13:00
Brenda Wallace
818466a142 MethodCallWithoutArgsParentheses fixup 2017-02-19 16:17:03 +13:00
Brenda Wallace
e184503caa Fix up to match rubocop's MultilineMethodCallBraceLayout recommendation 2017-02-19 16:17:03 +13:00
Brenda Wallace
d00f743c47 rubocop fix up on spec 2017-02-17 16:00:11 +13:00
pozorvlak
b19a991106 Merge pull request #1226 from Br3nda/scinames-controller
DRY scientific names controller
2017-02-16 23:00:29 +00:00
pozorvlak
88e019a19f Merge branch 'dev' into scinames-controller 2017-02-16 22:52:07 +00:00
pozorvlak
e954ba801b Merge pull request #1225 from Br3nda/comments-controller
DRY comments controller
2017-02-16 22:51:42 +00:00
Brenda Wallace
be23bfc419 DRY scientific names controller 2017-02-17 10:18:34 +13:00
Shiny
5e984ce04a Merge branch 'dev' into comments-controller 2017-02-17 09:57:29 +13:00
Brenda Wallace
d15eb32133 Added some utf8, kōrero mai (te reo māori) 2017-02-17 09:47:12 +13:00
Brenda Wallace
21f11a4d5d highest MethodLength is now 34 2017-02-17 09:26:30 +13:00
Brenda Wallace
ae398f1a63 Spec checks you can't change post id in comments#update 2017-02-17 09:20:15 +13:00
Brenda Wallace
cd3cee5d5f DRY comments controller and add more spec scenarios 2017-02-17 09:14:01 +13:00
Miles Gould
9030e5b978 Merge branch 'dev' into test_runners 2017-02-16 13:31:39 +00:00
Miles Gould
9d6ac9fd8b LINT ALL THE HAML!
.
.
.
lint *all* the HAML?
2017-02-16 13:30:20 +00:00
pozorvlak
403a8814e1 Merge pull request #1222 from Br3nda/forums-controller
Small clean ups on forums controller
2017-02-16 13:26:38 +00:00
Miles Gould
00c34ef30c Document test-running process in CONTRIBUTING.md 2017-02-16 13:25:59 +00:00
Miles Gould
738c0d4e08 Store spec failures, for rspec --only-failures
The list of failing tests is stored in tmp/examples.txt, which is
already gitignored.
2017-02-16 13:24:50 +00:00
Miles Gould
82e27f8a71 Delete reference to Discussion Forums wiki page
The wiki is dead, that page hasn't been preserved, and most of the
forums it described are dead too. Sic transit gloria mundi.
2017-02-16 13:07:56 +00:00
Miles Gould
fbc203ca0d Make Jasmine tests pass in CI
One test relied on reading the innerHTML attribute of an SVGElement
object; this worked in the browser, but not when run with
`rake jasmine:ci`. I've changed the test to use the `textContent`
attribute instead, which works in both places.
2017-02-16 13:01:40 +00:00
Miles Gould
c83bfc101e Allow console.log in Jasmine tests, for debugging 2017-02-16 13:00:34 +00:00
pozorvlak
22905235c1 Merge branch 'dev' into forums-controller 2017-02-16 12:41:20 +00:00
pozorvlak
4d3b94b7f0 Merge pull request #1216 from Br3nda/more-rubocop
Rubocop fix for MultilineHashBraceLayout
2017-02-16 12:41:10 +00:00
pozorvlak
9e19aae0ca Merge branch 'dev' into forums-controller 2017-02-16 12:33:55 +00:00
pozorvlak
d8c3f7ed34 Merge branch 'dev' into more-rubocop 2017-02-16 12:30:38 +00:00
pozorvlak
28a6cfe25c Merge pull request #1223 from Br3nda/posts-controller
DRY the posts controller
2017-02-16 12:28:47 +00:00
pozorvlak
630d539f7d Merge branch 'dev' into more-rubocop 2017-02-16 12:24:20 +00:00
Brenda Wallace
4704bd89f8 DRY the posts controller 2017-02-16 22:15:30 +13:00
Brenda Wallace
076695d349 Added name presence validation to forum 2017-02-16 21:52:28 +13:00
Brenda Wallace
3925a54340 DRY the forums controller 2017-02-16 21:52:07 +13:00
Brenda Wallace
6c566c56d8 removed unnecesary reloads of @forum 2017-02-16 20:16:13 +13:00
Daniel O'Connor
bcc89674d4 Upgrade to current Hashie 2017-02-16 17:18:44 +13:00
Shiny
e1dab634a2 Merge branch 'dev' into more-rubocop 2017-02-16 13:23:07 +13:00
Daniel O'Connor
e06e002282 Merge pull request #1218 from Br3nda/UnneededInterpolation
Fix up all UnneededInterpolation
2017-02-16 10:29:19 +10:30
Daniel O'Connor
23ed7f91ba Merge pull request #1220 from Br3nda/ReversibleMigration
Marked our one ReversibleMigration as okay
2017-02-16 10:29:02 +10:30
Daniel O'Connor
aa511aedb4 Merge pull request #1219 from Br3nda/TrailingCommas
Removed trailing commas
2017-02-16 10:28:43 +10:30
Brenda Wallace
2b03381a24 Removed trailing commas 2017-02-15 23:33:06 +00:00
Brenda Wallace
6017c4ba23 Marked our one ReversibleMigration as okay 2017-02-16 12:32:37 +13:00
Brenda Wallace
a46b8ebe76 Fix up all UnneededInterpolation 2017-02-16 12:26:47 +13:00
Brenda Wallace
a4f8b3a0e6 Rubocop fix for MultilineHashBraceLayout 2017-02-16 12:20:32 +13:00
Daniel O'Connor
1b8c413b90 Merge pull request #1215 from Br3nda/likeable-dry
Likeable even more dry
2017-02-14 10:27:51 +10:30
Shiny
7a334abf1d Merge branch 'dev' into likeable-dry 2017-02-14 12:40:05 +13:00
pozorvlak
5c067c87b8 Merge pull request #1201 from Br3nda/bw/harvest-planting-link
Linking existing harvests to a planting
2017-02-13 23:02:04 +00:00
Brenda Wallace
87bc1becb0 Reduced repeating code in likes controller 2017-02-14 11:52:20 +13:00
pozorvlak
7c0d6c04df Merge branch 'dev' into bw/harvest-planting-link 2017-02-13 22:39:15 +00:00
pozorvlak
01415fd04f Merge pull request #1214 from Br3nda/authentication-scoping
User can only sign out their own session
2017-02-13 22:38:40 +00:00
pozorvlak
e0def646ce Merge branch 'dev' into authentication-scoping 2017-02-13 22:22:47 +00:00
pozorvlak
a52731dc4b Merge pull request #1198 from Br3nda/bw/grand-haml-cleanup-of-2017
All the haml clean up
2017-02-13 22:20:16 +00:00
Shiny
cd2500c99a Merge branch 'dev' into bw/harvest-planting-link 2017-02-14 00:19:28 +13:00
Shiny
c9a197bc61 Merge branch 'dev' into bw/grand-haml-cleanup-of-2017 2017-02-14 00:18:53 +13:00
Mackenzie Morgan
c5439c8650 use symbols for status codes 2017-02-13 20:56:22 +13:00
Brenda Wallace
6d0a7ebc8f Only show plantings with overlapping date ranges on harvest options 2017-02-13 20:41:43 +13:00
Brenda Wallace
0d1bab04d5 don't load the record again 2017-02-13 20:28:29 +13:00
Brenda Wallace
e6b23262da User can only sign out their own session 2017-02-13 20:08:31 +13:00
Brenda Wallace
06ea3db252 Use .field to format planting options on harvests 2017-02-13 17:30:41 +13:00
Brenda Wallace
8d24ffbffb spec for harvesting from a planting 2017-02-13 17:21:11 +13:00
Brenda Wallace
cce9f513db Linking existing harvests to a planting 2017-02-13 17:21:11 +13:00
Brenda Wallace
c37ba9f041 Use @harvest.planting, instead of @planting 2017-02-13 17:21:11 +13:00
Shiny
f8c56cc217 Merge branch 'dev' into bw/grand-haml-cleanup-of-2017 2017-02-13 17:19:58 +13:00
Daniel O'Connor
d11e6f484a Pin leaflet-rails for the moment, until we fix tests 2017-02-13 17:19:40 +13:00
Daniel O'Connor
9218a03e2b Upgrade only geocoder 2017-02-13 17:19:40 +13:00
Daniel O'Connor
da760a8a4c Revert "Update geocoder, leaflet-rails"
This reverts commit ecd2bb1c01.
2017-02-13 17:19:40 +13:00
Daniel O'Connor
9ccecf0e04 Update i18n-tasks bootstrap_form font-awesome-sass 2017-02-13 17:19:40 +13:00
Daniel O'Connor
5ec105ad19 Upgrade sidekiq 2017-02-13 17:19:40 +13:00
Daniel O'Connor
5c1f5f4312 Update poltergeist 2017-02-13 17:19:40 +13:00
Daniel O'Connor
48d3a64e7b Update cancancan 2017-02-13 17:19:40 +13:00
Daniel O'Connor
decd48a970 Update geocoder, leaflet-rails 2017-02-13 17:19:40 +13:00
Daniel O'Connor
540ac7b034 Update warden 2017-02-13 17:19:40 +13:00
Daniel O'Connor
8112133cf2 Update unicorn 2017-02-13 17:19:40 +13:00
Daniel O'Connor
55f00ed0f8 Update newrelic 2017-02-13 17:19:40 +13:00
Daniel O'Connor
d0999c2f9a Update activemerchant 2017-02-13 17:19:40 +13:00
Daniel O'Connor
47150a8ad8 Update selenium-webdriver 2017-02-13 17:19:40 +13:00
Daniel O'Connor
9301688763 Update guard 2017-02-13 17:19:40 +13:00
Daniel O'Connor
248b89a564 Update elasticsearch 2017-02-13 17:19:40 +13:00
Daniel O'Connor
8e9ffac64e Pin to hashie 3.4.* for https://github.com/intridea/hashie/issues/408 2017-02-13 17:19:40 +13:00
Brenda Wallace
65024d8f83 Moved hash in haml onto one line, for clarity and glory 2017-02-12 20:41:25 +00:00
Shiny
8ab70a1c1c Merge branch 'dev' into bw/grand-haml-cleanup-of-2017 2017-02-13 08:04:41 +13:00
Brenda Wallace
2c871abd03 don't allow owner in params 2017-02-13 07:41:53 +13:00
Brenda Wallace
8b4491d0ab Tabulation on wrapped form_for 2017-02-13 07:38:26 +13:00
Brenda Wallace
93202fc13c haml clean up for devise views 2017-02-13 07:34:41 +13:00
Brenda Wallace
0f520c0928 More haml clean up for home views 2017-02-13 07:34:31 +13:00
Brenda Wallace
21c989989c add missing new line at end of haml file 2017-02-13 07:34:13 +13:00
Brenda Wallace
123c34b6d1 Haml cleanup for layout 2017-02-13 07:33:48 +13:00
Brenda Wallace
f5e786401d fixed typo 2017-02-13 07:32:43 +13:00
Brenda Wallace
6ecb919f34 haml clean ups for members views 2017-02-13 07:32:43 +13:00
Brenda Wallace
c89d1ae94e Haml clean ups for plantings views 2017-02-13 07:32:43 +13:00
Brenda Wallace
9b7a7d3e8f Haml clean up for product views 2017-02-13 07:32:43 +13:00
Brenda Wallace
9ebe830402 Haml clean up for scientific names views 2017-02-13 07:32:43 +13:00
Brenda Wallace
9a0adadc9a Haml clean up for seeds views 2017-02-13 07:32:43 +13:00
Brenda Wallace
92c3976f0a Haml clean up for shared views 2017-02-13 07:32:43 +13:00
Brenda Wallace
01c25df8cf haml-lint all views 2017-02-13 07:32:43 +13:00
pozorvlak
9ae35ca6eb Merge pull request #1200 from Br3nda/bw/planting_slug
Simplified logic in planting.planting_slug
2017-02-12 15:46:22 +00:00
pozorvlak
43f9707c11 Merge branch 'dev' into bw/planting_slug 2017-02-12 15:21:41 +00:00
Mackenzie
4fa423bcab Merge pull request #1205 from Br3nda/dry-notifications
DRY for the notifications controller
2017-02-12 10:21:31 -05:00
Mackenzie
97d0bb6752 Merge pull request #1207 from Br3nda/DRY-plantparts
DRY the plant parts controller
2017-02-12 10:20:30 -05:00
Mackenzie
b9edd2f89b Merge pull request #1203 from Br3nda/access
Added cancan ability for likes (and DRY-ed)
2017-02-12 10:20:03 -05:00
pozorvlak
4bd50ca433 Merge branch 'dev' into bw/planting_slug 2017-02-12 15:19:55 +00:00
pozorvlak
a2dd675717 Merge pull request #1199 from Br3nda/time-zones
Use timezone when creating dates
2017-02-12 15:19:38 +00:00
Brenda Wallace
1275aa0102 DRY the plant parts controller 2017-02-12 22:58:17 +13:00
Brenda Wallace
f40ff18949 You can only reply to messages that were sent to you. 2017-02-12 22:15:50 +13:00
Brenda Wallace
f25d4dbf8c DRY for the notifications controller 2017-02-12 21:52:22 +13:00
Brenda Wallace
4dd99f54db Removed deprecation notice from controller spec 2017-02-12 20:55:06 +13:00
Brenda Wallace
b8e06a1d1d Specs for deleting someone else's like 2017-02-12 20:50:50 +13:00
Brenda Wallace
f7b8113af1 Fixed spec, now requests json response 2017-02-12 20:36:24 +13:00
Brenda Wallace
b0394d1028 checks json returned by likes controller 2017-02-12 17:42:24 +13:00
Brenda Wallace
fa0c00aa9c Named arg (liked_by_member) fixed
cos i was writing python when this is meant to be ruby
2017-02-12 17:37:32 +13:00
Brenda Wallace
a507eb47bf Removed trailing white space 2017-02-12 17:26:34 +13:00
Brenda Wallace
865f323f97 controller specs for likes controller 2017-02-12 15:35:15 +13:00
Brenda Wallace
c82f47bdda Pass the ID from link to likesdestroy 2017-02-12 15:34:28 +13:00
Brenda Wallace
72d0514e75 Further checks in likes controller 2017-02-12 15:33:54 +13:00
Brenda Wallace
dc62365c7d DRY likes controller further 2017-02-12 15:23:58 +13:00
Brenda Wallace
d8d94d178c Moved some of likes#destroy out to new methods 2017-02-12 15:23:58 +13:00
Brenda Wallace
6afb12c157 Split up big methods in like controller 2017-02-12 15:23:58 +13:00
Brenda Wallace
a0be52fdaa likes doesn't have an index 2017-02-12 15:23:58 +13:00
Brenda Wallace
6b8474e01b Checks for cancan ability before allowing like 2017-02-12 15:23:58 +13:00
Shiny
23ae7fcd8c Merge branch 'dev' into time-zones 2017-02-12 12:14:01 +13:00
Shiny
179cfbf6bc Merge branch 'dev' into bw/planting_slug 2017-02-12 12:13:37 +13:00
Mackenzie
b5f82a8fc8 Merge pull request #1202 from Br3nda/code-climate-knows
Simplified alternate names controller.
2017-02-11 11:06:30 -05:00
Brenda Wallace
54c01cbd82 Removing alternate names from rubocop todo 2017-02-11 19:48:16 +13:00
Brenda Wallace
cf9e5a6652 Adding alternate names to admin menu 2017-02-11 19:45:53 +13:00
Brenda Wallace
01c6a6da9f improvements to alternate names controller 2017-02-11 19:45:33 +13:00
Shiny
cc1daf8f6b Join slug with - 2017-02-10 23:54:16 +13:00
Shiny
a0bf815663 Downcase planting slug 2017-02-10 23:52:10 +13:00
Brenda Wallace
ce573c1e55 Simplified logic in planting.planting_slug 2017-02-10 22:41:28 +13:00
Brenda Wallace
be2426c99f Use timezone when creating dates 2017-02-10 21:53:18 +13:00
Shiny
7ca314c2f2 Merge pull request #1191 from Growstuff/dev
Release 19
2017-02-10 09:24:00 +13:00
Mackenzie
36768cf384 Merge pull request #1194 from Br3nda/bw/grand-haml-cleanup-of-2017
More haml clean up
2017-02-08 22:46:34 -05:00
Mackenzie
e35d0455bd Merge pull request #1196 from Br3nda/spammer-begone
stripping html from markdown
2017-02-08 22:43:51 -05:00
Brenda Wallace
c8405830c7 Added strip_tags before processing markdown 2017-02-09 03:29:18 +00:00
Shiny
6bc9f775c2 Merge branch 'dev' into bw/grand-haml-cleanup-of-2017 2017-02-09 10:23:01 +13:00
Mackenzie
a43526776b Merge pull request #1195 from Br3nda/bw/spammer-injection-begone
Truncate, escape, and DRY og:description fields
2017-02-07 16:00:32 -05:00
Brenda Wallace
6f74566d47 Truncate, escape, and DRY og:description fields 2017-02-08 09:49:19 +13:00
Brenda Wallace
82ce6c8222 Haml clean up for seeds views 2017-02-08 08:52:46 +13:00
Brenda Wallace
f96f459595 Moved title logic into application helper
For harvests, plantings, and seeds
2017-02-08 07:25:59 +13:00
Brenda Wallace
096146cb84 Fix: @owner -> owner in harvests_title 2017-02-08 07:25:59 +13:00
Brenda Wallace
ba1c40702b DRY up gardens and plantings helper 2017-02-08 07:25:59 +13:00
Brenda Wallace
e6254da3f1 Haml clean up for Roles views 2017-02-08 07:25:59 +13:00
Brenda Wallace
acbb610e05 Haml clean up for posts views 2017-02-08 07:25:59 +13:00
Brenda Wallace
338265d9e9 Haml cleanup for plantings views 2017-02-08 07:25:59 +13:00
Brenda Wallace
706922cacf Haml clean up for plantparts views 2017-02-08 07:25:59 +13:00
Brenda Wallace
08f2877f8e Haml clean up for places views 2017-02-08 07:25:59 +13:00
Brenda Wallace
8275f5be96 Add photos to travis haml check 2017-02-08 07:25:59 +13:00
Brenda Wallace
2c3d1848d5 Haml clean up for photos 2017-02-08 07:25:59 +13:00
Brenda Wallace
17e88778c8 Haml clean up for orders 2017-02-08 07:25:59 +13:00
Brenda Wallace
bafb0123da Haml cleanup for notifier 2017-02-08 07:25:59 +13:00
Brenda Wallace
e1e9c32652 Moved havests#index title to a helper 2017-02-08 07:25:59 +13:00
Brenda Wallace
48c3cbb3d1 Change to hash attributes syntax in harvests#show 2017-02-08 07:25:59 +13:00
Brenda Wallace
740b8587f2 Moved complex parts of garden/nav into helper 2017-02-08 07:25:59 +13:00
Brenda Wallace
b113146aaa Add harvest and gardens to travis for haml-lint 2017-02-08 07:25:59 +13:00
Brenda Wallace
900de8a615 Fixed Read more link in harvests 2017-02-08 07:25:59 +13:00
Brenda Wallace
d73aa98309 Cleaned up most of Home's haml 2017-02-08 07:25:59 +13:00
Brenda Wallace
ac7d44cb72 Cleaned up most of harvest's haml 2017-02-08 07:25:59 +13:00
Miles Gould
d301f2f2ae Add static check for files with merge conflicts
Fixes #1146
2017-02-07 15:03:52 +00:00
Miles Gould
2accb727e5 Describe rake static 2017-02-07 14:38:04 +00:00
Miles Gould
16db285898 Only run ES tests under GROWSTUFF_ELASTICSEARCH
And vice-versa: only run non-ElasticSearch tests under
GROWSTUFF_ELASTICSEARCH=false
2017-02-07 14:27:14 +00:00
Miles Gould
b8c0882642 Tag ElasticSearch-related tests 2017-02-07 14:27:14 +00:00
Miles Gould
cc54dc54b4 Only build ElasticSearch index for ES tests 2017-02-07 14:27:14 +00:00
Miles Gould
3f8ebdc477 Run JavaScript unit tests from Travis
`rspec spec` doesn't run the Jasmine tests, annoyingly, so I've added a
call to `rake jasmine:ci`.
2017-02-07 14:27:14 +00:00
Miles Gould
68120c5bbe Make rake spec depend on rake assets:precompile 2017-02-07 14:27:14 +00:00
Miles Gould
71ec9fd2d3 Run JS tests from rake and rake spec:unit 2017-02-07 14:27:14 +00:00
Miles Gould
f11bc42507 Turn on asset compilation in test
This is required for running jasmine tests via `rake spec:javascript`.
The comment above this setting warned that it would slow down testing
considerably; in my quick tests the slowdown is only about 2% (3mins 14
vs 3mins 11). We precompile assets in Travis, so this *shouldn't* cause
any more random CI failures...
2017-02-07 14:27:14 +00:00
Miles Gould
7672b9ffc8 Add spec:unit Rake task 2017-02-07 14:27:14 +00:00
Miles Gould
8d237cc2ee Make rake run specs and static checks by default 2017-02-07 14:27:14 +00:00
Miles Gould
a875a7c883 Cache asset-pipeline cache in Travis
This should shave about 30s off each job.
2017-02-07 14:27:14 +00:00
Miles Gould
19d65587be Split static checks into a separate Travis job 2017-02-07 14:27:14 +00:00
Miles Gould
3fed962dcc Add script/check_static to run all static checks
...and invoke it from .travis.yml
2017-02-07 14:27:14 +00:00
Miles Gould
987f50c87e Factor out global env vars in .travis.yml
This should make it slightly more obvious which job is which when
looking at Travis build results.
2017-02-07 13:52:23 +00:00
Daniel O'Connor
bba057ec76 Merge pull request #1192 from Br3nda/bw/three-pending-specs
Filled in the 3 pending planting specs
2017-02-07 16:36:59 +10:30
Brenda Wallace
1dc44c9edc Filled in the 3 pending planting specs 2017-02-07 18:29:10 +13:00
Daniel O'Connor
92c1515381 Merge pull request #1186 from CloCkWeRX/fix_date_expectation
Fix #1182 and improve test coverage
2017-02-07 14:02:31 +10:30
Shiny
43f905ea25 Merge branch 'dev' into fix_date_expectation 2017-02-07 16:03:39 +13:00
Brenda Wallace
1db30d98ce Haml clean up for members 2017-02-07 15:35:34 +13:00
Shiny
2b92f013fc Merge branch 'dev' into fix_date_expectation 2017-02-07 14:34:41 +13:00
Brenda Wallace
23f8c24ef4 Haml clean up for notifications 2017-02-07 14:33:20 +13:00
Daniel O'Connor
fba2306a4d Merge pull request #1190 from Br3nda/bw/haml-shop
Haml clean for shop
2017-02-07 11:15:26 +10:30
Brenda Wallace
c8fa54591a Haml clean for shop 2017-02-07 07:53:34 +13:00
Daniel O'Connor
67b496fe44 Merge pull request #1185 from Br3nda/bw/grand-haml-cleanup-of-2017
Forums and Gardens haml clean up
2017-02-06 14:13:27 +10:30
Daniel O'Connor
b24514fa82 Look at right attribute 2017-02-06 14:11:44 +10:30
Daniel O'Connor
f0a81d4100 Fix #1182 and improve test coverage 2017-02-06 14:10:40 +10:30
Brenda Wallace
64f11793c9 Fixed typo in link 2017-02-06 16:31:57 +13:00
Brenda Wallace
05a9d498a7 More forums haml clean up 2017-02-06 14:50:49 +13:00
Brenda Wallace
16145599ce Haml clean up for (most) garden views 2017-02-06 14:46:19 +13:00
Brenda Wallace
af8527aa5b Haml clean up of forum views 2017-02-06 14:46:19 +13:00
Daniel O'Connor
f9eb70e2eb Merge pull request #1184 from Br3nda/bw/grand-haml-cleanup-of-2017
Haml clean up -- crops views
2017-02-06 11:47:47 +10:30
Brenda Wallace
8408fdc845 Moved popular plant plarts calculation into sql 2017-02-06 13:22:18 +13:00
Brenda Wallace
f37c9152af Simplified the "grown for" view 2017-02-06 11:21:33 +13:00
Brenda Wallace
4ee789ca06 Popular plant parts are now sorted by popularity 2017-02-06 10:59:40 +13:00
Brenda Wallace
43e4ed43cd Travis starts checking the haml that's cleaned up
To stop regressions to bad haml again
2017-02-06 10:46:49 +13:00
Brenda Wallace
80371c835c Moved long line (ebay url) to helper 2017-02-06 10:40:58 +13:00
Brenda Wallace
6478d9cb1b Haml clean up for crops views 2017-02-06 10:31:45 +13:00
pozorvlak
f8b84f390d Calculate "count_uses_of_property" using DB query (#1183)
* Refactor 'count_uses_of_property' method in crop model
* Add check for nil column value

* Add @alran to CONTRIBUTORS.md

* Reformat Crop#count_uses_of_property

* Remove unnecessary string interpolation
2017-02-05 13:23:47 +13:00
pozorvlak
755b9b339f Merge pull request #1181 from Br3nda/bw/grand-haml-cleanup-of-2017
Te grand haml cleanup of 2017
2017-02-04 23:07:12 +00:00
Shiny
9deed09d36 Merge branch 'dev' into bw/grand-haml-cleanup-of-2017 2017-02-05 11:01:46 +13:00
pozorvlak
43de722faf Merge pull request #1180 from Br3nda/bw/application-controller-complexity
Reduce complexity of ApplicationController.store_location
2017-02-04 21:55:51 +00:00
pozorvlak
e145bb59f7 Merge branch 'dev' into bw/application-controller-complexity 2017-02-04 21:45:06 +00:00
pozorvlak
911c7b7bc1 Merge pull request #1174 from Br3nda/bw/rubocop-reduce-complexity
rubocop - reduce complexity
2017-02-04 21:44:42 +00:00
Brenda Wallace
2b7144c1fd Fixed trailing quote in haml 2017-02-04 15:07:18 +13:00
Brenda Wallace
8ddf36fed9 Haml clean up for (some of) crops views 2017-02-04 15:04:07 +13:00
Brenda Wallace
785ae33a42 Haml clean up for comments views 2017-02-04 14:07:59 +13:00
Brenda Wallace
c43c1686a3 Haml clean up for alternate_names views 2017-02-04 13:50:04 +13:00
Brenda Wallace
65a8bde467 Haml clean up for admin views 2017-02-04 12:00:42 +13:00
Brenda Wallace
3647f67538 Haml clean up for accounts views 2017-02-04 11:52:15 +13:00
Brenda Wallace
6c4f7eff92 Haml clean up for account_types views 2017-02-04 11:50:33 +13:00
Brenda Wallace
9b57a44f6c Adding haml-lint 2017-02-04 11:41:02 +13:00
Brenda Wallace
8a69ed4013 Reduce complexity of ApplicationController.store_location 2017-02-04 11:31:34 +13:00
Brenda Wallace
e5d826e8c3 Further simplified newsletter subscription logic 2017-02-04 11:28:37 +13:00
Brenda Wallace
77c01d4f66 BUGFIX: Added missing if 2017-02-04 11:23:27 +13:00
Brenda Wallace
33b7952ed3 Simplified OmniauthCallbacksController 2017-02-04 11:21:15 +13:00
Brenda Wallace
1217ba5b48 Reduce complexity of ApplicationController.store_location 2017-02-04 11:19:11 +13:00
Brenda Wallace
ffee6ada83 Simplify member.update_newsletter_subscription 2017-02-04 11:18:00 +13:00
Brenda Wallace
63b71a9265 Reduce controller complexity 2017-02-04 11:18:00 +13:00
pozorvlak
3ecc7ba99b Merge pull request #1178 from Br3nda/bw/plantingshelper-simplify
PlantingsHelper simplification
2017-02-03 13:36:42 +00:00
pozorvlak
3e81419e78 Merge branch 'dev' into bw/plantingshelper-simplify 2017-02-03 12:08:54 +00:00
pozorvlak
7cd8dfa0c7 Merge pull request #1176 from Br3nda/bw/seeds-controller-complexity
Reduce complexity of seeds controller
2017-02-03 12:08:45 +00:00
pozorvlak
9182c8ceb1 Merge branch 'dev' into bw/seeds-controller-complexity 2017-02-03 11:12:20 +00:00
pozorvlak
ec8096233c Merge pull request #1179 from CloCkWeRX/repair_gemfile
Repair missing items from Gemfile.lock - jasmine/phantomjs
2017-02-03 11:11:28 +00:00
Brenda Wallace
19aa3a1ca4 PlantingsHelper simplification 2017-02-03 20:42:15 +13:00
Shiny
e574ee166c Merge branch 'dev' into bw/seeds-controller-complexity 2017-02-03 20:32:29 +13:00
Daniel O'Connor
93e9428bb6 Repair missing items from Gemfile.lock 2017-02-03 11:11:47 +10:30
pozorvlak
fcf453b9d9 Merge pull request #1173 from Br3nda/bw/inactive-gardens
hide inactive gardens by default
2017-02-02 22:57:54 +00:00
pozorvlak
909164ea70 Merge branch 'dev' into bw/inactive-gardens 2017-02-02 22:40:21 +00:00
pozorvlak
b5a5aca67b Merge pull request #1175 from Br3nda/bw/plantings-controller-complexity
Reduce complexity of plantings controller
2017-02-02 22:22:41 +00:00
Shiny
2424e7de87 Merge branch 'dev' into bw/inactive-gardens 2017-02-02 14:48:31 +13:00
Shiny
d367b44da1 Merge branch 'dev' into bw/plantings-controller-complexity 2017-02-02 14:48:14 +13:00
Shiny
fe999d7170 Merge branch 'dev' into bw/seeds-controller-complexity 2017-02-02 14:47:10 +13:00
Daniel O'Connor
3267fd7d1f Merge pull request #1177 from Br3nda/bw/simplify-harvest-to-s
Simplified harvest.to_s
2017-02-02 10:58:16 +10:30
Brenda Wallace
355419b6cb Reduce complexity of seeds controller 2017-02-02 00:01:48 +00:00
Brenda Wallace
dfa23a6564 Simplified harvest.to_s 2017-02-01 23:55:45 +00:00
Brenda Wallace
9099ee5779 Reduce complexity of plantings controller 2017-02-01 23:51:14 +00:00
Brenda Wallace
7ba9049908 spec only show active gardens 2017-02-01 18:25:56 +13:00
Brenda Wallace
c82127f1fb Modify specs for new titles on garden nav buttons 2017-02-01 17:37:03 +13:00
Brenda Wallace
666394906b Active gardens only on profiles 2017-02-01 17:37:03 +13:00
Brenda Wallace
150393b1c3 Show only active gardens by default 2017-02-01 17:37:03 +13:00
Daniel O'Connor
e8e1e33a07 Merge pull request #1172 from pozorvlak/install_d3
Install d3-rails gem in production and staging
2017-01-31 11:01:41 +10:30
Miles Gould
18e6e8510c Install d3-rails gem in production and staging
It was only being installed in development and test environments,
causing deployment failures.

Fixes #1170
2017-01-30 20:17:42 +00:00
Daniel O'Connor
64d7c2535b Merge pull request #1168 from Br3nda/likeable
Reviving Likeable
2017-01-27 12:30:36 +10:30
Daniel O'Connor
15106a051c Merge branch 'dev' into likeable 2017-01-27 12:05:13 +10:30
Daniel O'Connor
62fe72c9f4 Merge pull request #1143 from pozorvlak/bw/bar_graphs
[WIP] bar graphs
2017-01-27 12:01:03 +10:30
Daniel O'Connor
43519809f5 Merge branch 'dev' into bw/bar_graphs 2017-01-27 11:54:12 +10:30
Shiny
7731623397 Merge branch 'dev' into likeable 2017-01-27 14:21:53 +13:00
pozorvlak
3b3e14fadb Merge pull request #1161 from Br3nda/bw/pending-crops
Member can see crops they have requested
2017-01-26 11:21:24 +00:00
Daniel O'Connor
271242eca9 Merge branch 'dev' into bw/bar_graphs 2017-01-25 13:00:25 +10:30
Daniel O'Connor
a607fdc6ec Merge branch 'dev' into likeable 2017-01-25 12:58:55 +10:30
Daniel O'Connor
6d1bdf9ae1 Merge branch 'dev' into bw/pending-crops 2017-01-25 12:55:13 +10:30
Daniel O'Connor
25058d02fc Merge pull request #1164 from Br3nda/bw/link-from-harvest-to-planting
Link from harvest to planting, instead of garden
2017-01-25 12:54:42 +10:30
Shiny
b80e7f677c Merge branch 'dev' into likeable 2017-01-24 19:44:42 +13:00
pozorvlak
576426c30d Merge pull request #1166 from Br3nda/bw/fix-notify-sys-exit
Fix crashing on email send - HOTFIX to master
2017-01-23 17:54:19 +00:00
Shiny
c9b464771d Merge branch 'master' into bw/fix-notify-sys-exit 2017-01-23 21:50:22 +13:00
Shiny
76af02f2a5 Merge branch 'dev' into bw/bar_graphs 2017-01-23 20:18:19 +13:00
Shiny
346970b471 Merge branch 'dev' into bw/pending-crops 2017-01-23 20:17:44 +13:00
Shiny
e6d3c257e8 Merge branch 'dev' into bw/link-from-harvest-to-planting 2017-01-23 20:17:34 +13:00
Daniel O'Connor
7224ef8848 Merge pull request #1159 from Br3nda/bw/garden-display-fix
Fix display of gardens on smaller screens
2017-01-23 14:59:43 +10:30
Brenda Wallace
dd9a0071d2 Link from harvest to planting, instead of garden 2017-01-23 09:58:25 +13:00
Brenda Wallace
65b4b2d23e Feature spec for requested crops 2017-01-23 09:49:47 +13:00
Brenda Wallace
4fedc7f23f Member can see crops they have requested 2017-01-23 09:49:47 +13:00
Shiny
26b3e28171 Merge branch 'dev' into bw/garden-display-fix 2017-01-23 09:41:37 +13:00
Daniel O'Connor
29765c7bab Merge pull request #1160 from Br3nda/bw/fix-notify-sys-exit
change deliver_later to deliver_now, so we don't sys.exit() crash
2017-01-23 00:21:47 +10:30
Brenda Wallace
370938c9f9 change deliver_later to deliver_now, so we don't sys.exit() crash 2017-01-22 21:22:30 +13:00
Brenda Wallace
08d407f041 Fix display of gardens on smaller screens 2017-01-22 20:33:37 +13:00
Shiny
d6de147661 Merge branch 'dev' into bw/bar_graphs 2017-01-22 18:39:53 +13:00
Brenda Wallace
9cadbdec2b Regenerated schema file 2017-01-22 18:27:32 +13:00
Brenda Wallace
5e61be9853 Merge remote-tracking branch 'upstream/dev' into HEAD 2017-01-22 18:26:38 +13:00
Brenda Wallace
ff50ec65d0 Merge remote-tracking branch 'upstream/dev' into HEAD 2017-01-22 18:26:29 +13:00
Shiny
714b2580a3 Merge branch 'dev' into bw/bar_graphs 2017-01-18 11:15:09 +13:00
Shiny
22343385f6 Merge branch 'dev' into bw/bar_graphs 2017-01-14 18:26:48 +13:00
Miles Gould
d0351bad70 Merge branch 'dev' into bw/bar_graphs 2017-01-09 15:21:38 +00:00
Miles Gould
7ca371ae43 Merge remote-tracking branch 'mine/bw/bar_graphs' into bw/bar_graphs 2017-01-09 15:19:18 +00:00
Miles Gould
7fa0d22583 Graph real crop sunninesses from server
Works for me in superficial manual testing, but needs automated tests.
Also currently does two server round trips (one for planting locations
and one for sunninesses); it would be better to combine these into one,
or alternatively to create a "crop stats" API endpoint and calculate
sunniness stats in SQL.
2017-01-09 15:13:55 +00:00
Shiny
6e535f2403 Merge branch 'dev' into bw/bar_graphs 2017-01-08 11:10:21 +13:00
Miles Gould
885c9433ce Merge branch 'dev' into bw/bar_graphs 2017-01-05 11:39:10 +00:00
Miles Gould
b0c132c28f Replace literal RGB with variable in graph.css 2017-01-05 11:38:55 +00:00
Miles Gould
8765770071 Ignore spurious code duplication error in bar_*.js
The code in question is

```
  return root.append('g')
    .attr("class", "bar")
    .selectAll("rect")
    .data(bars.map(function(bar) { return bar.value; }))
    .enter()
```

in graphs/bar_group.js, and

```
    return d3.append('g')
      .attr("class", "bar-label")
      .selectAll("text")
      .data(bars.map(function(bar){ return bar.name;}))
      .enter()
      .append("text")
      .attr('x', -80)
```

in graphs/bar_label_group.js. I don't think it's worth unifying these.
2017-01-05 11:19:44 +00:00
Miles Gould
8083ae9052 Remove duplicate getBarValues() methods
I've replaced one with a getMaxValue() function, which is what we
actually want, and deleted the other.
2017-01-05 11:18:51 +00:00
Shiny
a95fca3682 Merge branch 'dev' into bw/bar_graphs 2017-01-03 22:42:58 +13:00
Shiny
0c8345d1e2 Merge branch 'dev' into bw/bar_graphs 2016-12-22 10:22:29 +13:00
Shiny
27520e9aa6 Merge branch 'dev' into bw/bar_graphs 2016-12-16 12:52:16 +13:00
Daniel O'Connor
3cdaa03e5d Merge branch 'dev' into likeable 2016-12-15 14:28:22 +10:30
Shiny
fe5a93160f Merge branch 'dev' into bw/bar_graphs 2016-12-10 21:39:11 +13:00
Daniel O'Connor
88ba4f9198 Rubocop 2016-12-09 12:19:38 +10:30
Daniel O'Connor
2594e5d334 Rubocop 2016-12-09 12:06:14 +10:30
Daniel O'Connor
ce9fc85d0b Rubocop 2016-12-09 12:04:13 +10:30
Daniel O'Connor
2499db77f1 Rubocop 2016-12-09 11:59:56 +10:30
Daniel O'Connor
8edbef3965 Rubocop 2016-12-09 11:56:53 +10:30
Daniel O'Connor
2e23675425 app/controllers/likes_controller.rb:2:3: C: Rails/ActionFilter: Prefer before_action over before_filter. 2016-12-09 11:52:46 +10:30
Daniel O'Connor
fef272e30f Merge remote-tracking branch 'upstream/dev' into likeable 2016-12-09 11:42:32 +10:30
Shiny
391d5bed5f Merge branch 'dev' into bw/bar_graphs 2016-12-09 07:29:55 +13:00
Shiny
8161e90fbd Merge branch 'dev' into bw/bar_graphs 2016-12-08 12:35:59 +13:00
Daniel O'Connor
a074e72b9b Merge branch 'dev' into bw/bar_graphs 2016-12-07 13:36:21 +10:30
Brenda Wallace
d4a496eb1c Removed duplicate variable assignment 2016-12-07 12:26:12 +13:00
Brenda Wallace
a23e241480 Eslint clean ups 2016-12-07 12:22:33 +13:00
Brenda Wallace
af424103f4 Code style fix up (comments only) 2016-12-07 11:34:17 +13:00
Brenda Wallace
d68cfe0486 Move the invocation into the parens that contain the function 2016-12-07 11:33:30 +13:00
Brenda Wallace
0f15095129 Fix up css style 2016-12-07 11:30:17 +13:00
Brenda Wallace
6e0e7e4de1 Merge remote-tracking branch 'upstream/dev' into bw/bar_graphs
Conflicts:
	CONTRIBUTORS.md
	Gemfile
	Gemfile.lock
	app/assets/javascripts/application.js
	app/assets/javascripts/crops.js.erb
	app/views/crops/show.html.haml
2016-12-07 11:17:30 +13:00
Daniel O'Connor
07f7bd24d5 Clean up 2016-07-09 21:54:26 +09:30
Daniel O'Connor
04074ff372 Reimplement ajax like/unlike behaviour 2016-07-09 21:53:33 +09:30
Daniel O'Connor
d3dac756d6 Merge remote-tracking branch 'upstream/dev' into likeable 2016-07-09 21:08:33 +09:30
Daniel O'Connor
6f9ae13757 Update spec to wait for the link to appear 2016-06-04 23:01:57 +09:30
Daniel O'Connor
0a33ae8d37 Add an ajax like and unlike (though it hides after the user action) 2016-06-04 22:49:08 +09:30
Daniel O'Connor
ac33816675 Update spec 2016-06-04 21:37:35 +09:30
Daniel O'Connor
77e95ad344 Shift to concerns 2016-06-04 21:02:50 +09:30
Daniel O'Connor
bb25cbe5e2 Merge branch 'dev' of github.com:Growstuff/growstuff into likeable 2016-06-04 21:00:52 +09:30
Marlena Compton
71c0bff3e0 add comments explaining each file per pull request 2015-03-06 07:03:06 -08:00
Marlena Compton
c7a71381b7 write test for tooltips 2015-03-03 06:49:16 -08:00
Marlena Compton
5a1fd19abc move bar color into the data 2015-03-03 05:49:13 -08:00
Marlena Compton
a48a6da494 refactored graph scale into width scale and height scale 2015-02-28 15:50:27 -08:00
Marlena Compton
b0a803a7a5 add h2 for sunniness chart and crop map 2015-02-26 06:41:24 -08:00
Marlena Compton
6e4bb58dfd change color when hovering over a bar 2015-02-26 06:26:38 -08:00
Marlena Compton
66b0f139a9 add tooltip to show data values 2015-02-26 06:07:23 -08:00
Marlena Compton
567562f132 fix merge conflicts in gemfile.lock 2015-02-10 06:44:22 -08:00
Marlena Compton
39feeb94d0 merge in changes from dev branch 2015-02-10 06:28:47 -08:00
Yoong Kang Lim
75ac2081b0 Merge branch 'dev' into likeable
Conflicts:
	db/schema.rb
2015-02-10 22:57:28 +11:00
Yoong Kang Lim
36a94156c1 Merge branch 'dev' into likeable
Conflicts:
	db/schema.rb
2015-02-10 22:54:45 +11:00
Yoong Kang Lim
e3db003bbc Added tests for the concern and member model 2015-02-10 20:18:26 +11:00
Yoong Kang Lim
33a66dce1f Starting stages of a like feature for posts. 2015-02-05 00:54:31 +11:00
Marlena Compton
a013385d35 add bits to get the labels in the right place 2015-01-31 08:02:51 -08:00
Marlena Compton
ba7ef3c85d all charts tests passing WOOT 2015-01-28 05:16:23 -08:00
Marlena Compton
73e144278e added chart to the page 2015-01-27 07:26:31 -08:00
Marlena Compton
e3d2a90af8 all tests by the y test is passing 2015-01-25 12:45:36 -08:00
Marlena Compton
1d5466fdfd all but one test passing and seeing that I need a how separate y scale 2015-01-24 16:23:09 -08:00
Marlena Compton
a749a9ca63 all tests working but 2 about to monkey with data again 2015-01-23 06:33:03 -08:00
Marlena Compton
6d8817d1fe fixing tests but some of them are green and render is working 2015-01-19 07:34:15 -08:00
Marlena Compton
1a845fdabc xscale working 2015-01-13 21:40:31 -08:00
Marlena Compton
e52c4f7d4b add group for graph and transform to accommodate labels 2014-12-22 10:24:33 -08:00
Marlena Compton
5f435b1e82 fix conflict in contributors file 2014-12-14 10:15:05 -08:00
Marlena Compton
f608685ac8 add names to contributors 2014-12-12 13:36:11 -08:00
Marlena Compton
dbbd37e59e BarGroup uses data object 2014-12-06 21:30:38 -08:00
Marlena Compton
482650dec6 bar label group and all tests passing 2014-12-06 21:16:22 -08:00
Marlena Compton
cc22b87cf1 barlabelgroup tests passing still horizontalbargraph tests to fix 2014-12-06 08:30:49 -08:00
Marlena Compton
8826b0137a changed growtuff to growstuff which fixed tests 2014-11-26 13:55:27 -08:00
Marlena Compton
d4d76b2e8d committing tests classes I thought I committed earlier :/ 2014-11-26 13:48:22 -08:00
Marlena Compton
994ee18f13 Merge remote-tracking branch 'upstream/master' 2014-11-23 14:36:21 -08:00
Marlena Compton
80532e94f1 Merge remote-tracking branch 'origin/dev' 2014-09-11 06:46:41 -07:00
637 changed files with 10964 additions and 10513 deletions

View File

@@ -19,6 +19,9 @@ engines:
languages:
- ruby
- javascript
exclude_fingerprints:
- 16dbcb58d6caa7ccfe241417831ecfa6
- 7d7dca4f27f50e3084f203280073cc74
fixme:
enabled: true
exclude_fingerprints: # rubocop_todo filename
@@ -39,3 +42,4 @@ exclude_paths:
- spec/
- public/
- app/assets/stylesheets/bootstrap-accessibility.css
- app/assets/javascripts/bootstrap*

1
.esignore Normal file
View File

@@ -0,0 +1 @@
app/assets/javascripts/bootstrap-accessibility.min.js

11
.eslintrc.json Normal file
View File

@@ -0,0 +1,11 @@
{
"extends": "google",
"env": {
"browser": true,
"node": true
},
"rules": {
"no-var": "off",
"max-len": ["error", { "code": 120, "tabWidth": 4 }]
}
}

4
.gitignore vendored
View File

@@ -14,4 +14,6 @@ Pathogen:
custom_plan.rb
zeus.json
.bundle
.idea/**
.idea/**
public/**
node_modules

9
.haml-lint.yml Normal file
View File

@@ -0,0 +1,9 @@
linters:
LineLength:
max: 120
InstanceVariables:
enabled: false
IdNames:
enabled: false
ConsecutiveComments:
enabled: false

13
.hound.yml Normal file
View File

@@ -0,0 +1,13 @@
---
fail_on_violations: true
ruby:
config_file: .rubocop.yml
haml:
config_file: .haml-lint.yml
scss:
config_file: .scss-lint.yml
eslint:
config_file: .eslintrc
ignore_file: .esignore
jshint:
enabled: false

3
.mention-bot Normal file
View File

@@ -0,0 +1,3 @@
{
"userBlacklist": ["tygriffin","oshiho3"]
}

99
.overcommit.yml Normal file
View File

@@ -0,0 +1,99 @@
---
# Use this file to configure the Overcommit hooks you wish to use. This will
# extend the default configuration defined in:
# https://github.com/brigade/overcommit/blob/master/config/default.yml
#
# At the topmost level of this YAML file is a key representing type of hook
# being run (e.g. pre-commit, commit-msg, etc.). Within each type you can
# customize each hook, such as whether to only run it on certain files (via
# `include`), whether to only display output if it fails (via `quiet`), etc.
#
# For a complete list of hooks, see:
# https://github.com/brigade/overcommit/tree/master/lib/overcommit/hook
#
# For a complete list of options that you can use to customize hooks, see:
# https://github.com/brigade/overcommit#configuration
#
# Uncomment the following lines to make the configuration take effect.
PreCommit:
ALL:
quiet: false
problem_on_unmodified_line: warn
RuboCop:
enabled: true
command: ['bundle', 'exec', 'rubocop', '-D', '--rails']
TrailingWhitespace:
enabled: true
exclude:
- '**/db/structure.sql' # Ignore trailing whitespace in generated files
CoffeeLint:
enabled: true
on_fail: warn
command: ['npm', 'run', 'coffeelint']
required_executable: 'npm'
HardTabs:
enabled: true
AuthorEmail:
enabled: false
AuthorName:
enabled: false
CssLint:
enabled: true
exclude:
- '**/bootstrap.min.css'
command: ['npm', 'run', 'csslint']
required_executable: 'npm'
HamlLint:
enabled: true
include:
- 'app/views/**'
command: ['bundle', 'exec', 'haml-lint']
JsonSyntax:
enabled: true
BundleAudit:
enabled: true
on_warn: warn
EsLint:
enabled: true
exclude:
- 'app/assets/**'
- 'spec/javascripts/support/vendor/**'
- '**/bootstrap*'
command: ['./node_modules/.bin/eslint']
required_executable: 'npm'
ScssLint:
enabled: true
RailsSchemaUpToDate:
enabled: true
MergeConflicts:
enabled: true
YamlLint:
enabled: true
PostCheckout:
ALL:
quiet: false
BundleInstall:
enabled: true
RailsSchemaUpToDate:
enabled: true
PostMerge:
BundleInstall:
enabled: true
RailsSchemaUpToDate:
enabled: true
# PrePush:
# ALL:
# on_warn: fail # Treat all warnings as failures
# quiet: false
# # Brakeman:
# # enabled: true
# RSpec:
# enabled: true
# command: ['bundle', 'exec', 'rspec', '--fail-fast']
#
# IndexTags:
# enabled: true # Generate a tags file with `ctags` each time HEAD changes

View File

@@ -7,61 +7,40 @@ AllCops:
Exclude:
- 'db/schema.rb'
- 'vendor/**/*'
TargetRailsVersion: 4.0
Rails:
Enabled: true
Style/FileName:
Exclude:
- 'Guardfile'
- 'Gemfile'
- 'Gemfile.lock'
Style/StringLiterals:
Enabled: false
Style/MultilineMethodCallIndentation:
# Stop hound and codeclimate fighting
Style/PercentLiteralDelimiters:
PreferredDelimiters:
default: ()
'%i': ()
'%w': ()
Layout/MultilineMethodCallIndentation:
EnforcedStyle: indented
# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth.
# SupportedStyles: with_first_parameter, with_fixed_indentation
Style/AlignParameters:
Layout/AlignParameters:
EnforcedStyle: with_fixed_indentation
Metrics/MethodLength:
Description: 'Avoid methods longer than 30 lines of code.'
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#short-methods'
# Set to 30 once all methods are fixed.
# Max: 30
Max: 104
# Remove the following once the code style matches
# Offense count: 59
Metrics/AbcSize:
Max: 38
# Offense count: 5
# Configuration parameters: CountComments.
Metrics/BlockLength:
Max: 62
# Offense count: 6
# Configuration parameters: CountComments.
Metrics/ClassLength:
Max: 275
# Offense count: 6
Metrics/CyclomaticComplexity:
Max: 11
Metrics/LineLength:
Max: 120
# Offense count: 8
Metrics/PerceivedComplexity:
Max: 10
# See https://github.com/bbatsov/rubocop/issues/3629
Rails/HttpPositionalArguments:
# turn these back on in Rails 5
Rails/HttpPositionalArguments: # See https://github.com/bbatsov/rubocop/issues/3629
Enabled: false
Style/Documentation:
@@ -75,4 +54,22 @@ Style/FrozenStringLiteralComment:
Rails/Output:
Exclude:
- 'config/unicorn.rb'
- 'db/seeds.rb'
- 'db/seeds.rb'
Metrics/BlockLength:
Exclude:
- 'spec/**/*'
- '**/*.rake'
- 'config/**/*.rb'
# Remove the following once the code style matches
Metrics/MethodLength:
Max: 34
Metrics/AbcSize:
Max: 31
Metrics/ClassLength:
Max: 179
Metrics/CyclomaticComplexity:
Max: 11
Metrics/PerceivedComplexity:
Max: 9

View File

@@ -1,40 +1,15 @@
# This configuration was generated by
# `rubocop --auto-gen-config --exclude-limit 500`
# on 2017-01-21 15:58:02 +1030 using RuboCop version 0.47.1.
# `rubocop --auto-gen-config --no-offense-counts`
# on 2018-02-05 14:37:22 +1300 using RuboCop version 0.49.1.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
# versions of RuboCop, may require this file to be generated again.
# Offense count: 22
Lint/AmbiguousRegexpLiteral:
Exclude:
- 'spec/controllers/admin/orders_controller_spec.rb'
- 'spec/controllers/orders_controller_spec.rb'
- 'spec/features/cms_spec.rb'
- 'spec/lib/haml/filters/escaped_markdown_spec.rb'
- 'spec/lib/haml/filters/growstuff_markdown_spec.rb'
- 'spec/models/comment_spec.rb'
- 'spec/models/planting_spec.rb'
- 'spec/views/members/show.rss.haml_spec.rb'
- 'spec/views/posts/show.html.haml_spec.rb'
# Offense count: 1
Lint/HandleExceptions:
Exclude:
- 'lib/tasks/testing.rake'
# Offense count: 11
# Cop supports --auto-correct.
# Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
Lint/UnusedBlockArgument:
Exclude:
- 'app/controllers/crops_controller.rb'
- 'app/controllers/sessions_controller.rb'
- 'config/unicorn.rb'
- 'lib/haml/filters/growstuff_markdown.rb'
# Offense count: 6
# Cop supports --auto-correct.
# Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods.
Lint/UnusedMethodArgument:
@@ -43,80 +18,31 @@ Lint/UnusedMethodArgument:
- 'app/controllers/passwords_controller.rb'
- 'app/controllers/registrations_controller.rb'
- 'app/validators/approved_validator.rb'
- 'spec/views/plantings/show.html.haml_spec.rb'
# Offense count: 5
Lint/Void:
Exclude:
- 'spec/models/crop_spec.rb'
- 'spec/models/garden_spec.rb'
- 'spec/models/post_spec.rb'
# Offense count: 55
# Configuration parameters: CountComments, ExcludedMethods.
Metrics/BlockLength:
Exclude:
- '**/*'
# Offense count: 2
# Cop supports --auto-correct.
Performance/StringReplacement:
Exclude:
- 'app/models/planting.rb'
- 'spec/rails_helper.rb'
# Offense count: 9
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: strict, flexible
Rails/Date:
Exclude:
- 'app/controllers/harvests_controller.rb'
- 'db/seeds.rb'
- 'lib/tasks/growstuff.rake'
- 'spec/controllers/plantings_controller_spec.rb'
- 'spec/factories/planting.rb'
- 'spec/features/plantings/planting_a_crop_spec.rb'
- 'spec/features/shared_examples/append_date.rb'
# Offense count: 4
Rails/FilePath:
Exclude:
- 'spec/rails_helper.rb'
# Offense count: 3
Rails/OutputSafety:
Exclude:
- 'app/helpers/application_helper.rb'
- 'app/helpers/auto_suggest_helper.rb'
- 'app/helpers/gardens_helper.rb'
# Offense count: 1
# Configuration parameters: Include.
# Include: db/migrate/*.rb
Rails/ReversibleMigration:
Exclude:
- 'db/migrate/20130215131921_rename_notification_fields.rb'
# Offense count: 4
# Configuration parameters: Blacklist.
# Blacklist: decrement!, decrement_counter, increment!, increment_counter, toggle!, touch, update_all, update_attribute, update_column, update_columns, update_counters
Rails/SkipsModelValidations:
Exclude:
- 'app/controllers/plantings_controller.rb'
- 'db/seeds.rb'
# Offense count: 7
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: strict, flexible
Rails/TimeZone:
Exclude:
- 'spec/controllers/accounts_controller_spec.rb'
- 'spec/factories/member.rb'
- 'spec/factories/post.rb'
- 'spec/models/post_spec.rb'
- 'spec/views/plantings/index.html.haml_spec.rb'
# Offense count: 7
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: always, conditionals
@@ -125,289 +51,26 @@ Style/AndOr:
- 'config/unicorn.rb'
- 'lib/tasks/growstuff.rake'
# Offense count: 1
Style/AsciiComments:
Exclude:
- 'config/initializers/comfortable_mexican_sofa.rb'
# Offense count: 5
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: percent_q, bare_percent
Style/BarePercentLiterals:
Exclude:
- 'app/helpers/auto_suggest_helper.rb'
- 'spec/support/feature_helpers.rb'
# Offense count: 26
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles, ProceduralMethods, FunctionalMethods, IgnoredMethods.
# SupportedStyles: line_count_based, semantic, braces_for_chaining
# ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
# FunctionalMethods: let, let!, subject, watch
# IgnoredMethods: lambda, proc, it
Style/BlockDelimiters:
Exclude:
- 'app/controllers/alternate_names_controller.rb'
- 'app/controllers/members_controller.rb'
- 'app/controllers/posts_controller.rb'
- 'app/controllers/scientific_names_controller.rb'
- 'spec/controllers/harvests_controller_spec.rb'
- 'spec/controllers/order_items_controller_spec.rb'
- 'spec/features/notifications_spec.rb'
- 'spec/models/ability_spec.rb'
- 'spec/models/comment_spec.rb'
- 'spec/models/follow_spec.rb'
- 'spec/models/member_spec.rb'
- 'spec/models/planting_spec.rb'
- 'spec/models/post_spec.rb'
- 'spec/views/crops/edit.html.haml_spec.rb'
# Offense count: 8
# Cop supports --auto-correct.
Style/BlockEndNewline:
Exclude:
- 'app/controllers/members_controller.rb'
- 'app/controllers/posts_controller.rb'
- 'spec/models/ability_spec.rb'
- 'spec/models/member_spec.rb'
- 'spec/models/planting_spec.rb'
# Offense count: 4
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: nested, compact
Style/ClassAndModuleChildren:
Exclude:
- 'app/controllers/admin/orders_controller.rb'
- 'lib/actions/oauth_signup_action.rb'
- 'lib/haml/filters/escaped_markdown.rb'
- 'lib/haml/filters/growstuff_markdown.rb'
# Offense count: 1
# Cop supports --auto-correct.
Style/ClassMethods:
Exclude:
- 'app/models/planting.rb'
# Offense count: 2
# Cop supports --auto-correct.
Style/ColonMethodCall:
Exclude:
- 'spec/lib/haml/filters/escaped_markdown_spec.rb'
- 'spec/lib/haml/filters/growstuff_markdown_spec.rb'
# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: Keywords.
# Keywords: TODO, FIXME, OPTIMIZE, HACK, REVIEW
Style/CommentAnnotation:
Exclude:
- 'app/controllers/crops_controller.rb'
# Offense count: 1
# Cop supports --auto-correct.
Style/DefWithParentheses:
Exclude:
- 'spec/views/posts/_single.html.haml_spec.rb'
# Offense count: 10
# Cop supports --auto-correct.
Style/EachForSimpleLoop:
Exclude:
- 'spec/models/crop_spec.rb'
- 'spec/views/home/_crops.html.haml_spec.rb'
# Offense count: 11
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: compact, expanded
Style/EmptyMethod:
Exclude:
- 'app/controllers/account_types_controller.rb'
- 'app/controllers/accounts_controller.rb'
- 'app/controllers/alternate_names_controller.rb'
- 'app/controllers/gardens_controller.rb'
- 'app/controllers/photos_controller.rb'
- 'app/controllers/plant_parts_controller.rb'
- 'app/controllers/posts_controller.rb'
- 'app/controllers/products_controller.rb'
- 'app/controllers/roles_controller.rb'
- 'app/controllers/scientific_names_controller.rb'
- 'app/controllers/seeds_controller.rb'
# Offense count: 5
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: format, sprintf, percent
Style/FormatString:
Exclude:
- 'app/helpers/application_helper.rb'
- 'spec/helpers/application_helper_spec.rb'
- 'spec/views/shop/index_spec.rb'
# Offense count: 2
Style/IdenticalConditionalBranches:
Exclude:
- 'app/controllers/follows_controller.rb'
# Offense count: 6
# Cop supports --auto-correct.
# Configuration parameters: MaxLineLength.
Style/IfUnlessModifier:
Exclude:
- 'app/controllers/shop_controller.rb'
- 'app/helpers/crops_helper.rb'
- 'app/models/planting.rb'
- 'config/initializers/geocoder.rb'
- 'lib/tasks/growstuff.rake'
# Offense count: 7
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: line_count_dependent, lambda, literal
Style/Lambda:
Exclude:
- 'spec/controllers/member_controller_spec.rb'
- 'spec/models/photo_spec.rb'
# Offense count: 2
# Cop supports --auto-correct.
Style/MethodCallWithoutArgsParentheses:
Exclude:
- 'spec/helpers/application_helper_spec.rb'
- 'spec/views/plantings/new.html.haml_spec.rb'
# Offense count: 8
# Cop supports --auto-correct.
Style/MultilineBlockLayout:
Exclude:
- 'app/controllers/members_controller.rb'
- 'app/controllers/posts_controller.rb'
- 'spec/models/ability_spec.rb'
- 'spec/models/member_spec.rb'
- 'spec/models/planting_spec.rb'
# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: symmetrical, new_line, same_line
Style/MultilineHashBraceLayout:
Exclude:
- 'app/models/planting.rb'
# Offense count: 1
# Cop supports --auto-correct.
Style/MultilineIfModifier:
Exclude:
- 'spec/rails_helper.rb'
# Offense count: 5
# Cop supports --auto-correct.
Style/MultilineIfThen:
Exclude:
- 'script/check_contributors_md'
- 'script/gemfile_check'
# Offense count: 95
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: symmetrical, new_line, same_line
Style/MultilineMethodCallBraceLayout:
Exclude:
- 'app/controllers/application_controller.rb'
- 'app/controllers/authentications_controller.rb'
- 'app/controllers/seeds_controller.rb'
- 'spec/controllers/order_items_controller_spec.rb'
- 'spec/helpers/gardens_helper_spec.rb'
- 'spec/helpers/harvests_helper_spec.rb'
- 'spec/helpers/plantings_helper_spec.rb'
- 'spec/helpers/seeds_helper_spec.rb'
- 'spec/models/ability_spec.rb'
- 'spec/models/crop_spec.rb'
- 'spec/models/harvest_spec.rb'
- 'spec/models/member_spec.rb'
- 'spec/models/order_spec.rb'
- 'spec/models/plant_part_spec.rb'
- 'spec/models/planting_spec.rb'
- 'spec/models/post_spec.rb'
- 'spec/views/account_types/edit.html.haml_spec.rb'
- 'spec/views/account_types/new.html.haml_spec.rb'
- 'spec/views/account_types/show.html.haml_spec.rb'
- 'spec/views/crops/_grown_for.html.haml_spec.rb'
- 'spec/views/crops/_planting_advice.html.haml_spec.rb'
- 'spec/views/forums/edit.html.haml_spec.rb'
- 'spec/views/harvests/index.html.haml_spec.rb'
- 'spec/views/orders/show.html.haml_spec.rb'
- 'spec/views/photos/edit.html.haml_spec.rb'
- 'spec/views/plant_parts/edit.html.haml_spec.rb'
- 'spec/views/plant_parts/new.html.haml_spec.rb'
- 'spec/views/plantings/_form.html.haml_spec.rb'
- 'spec/views/plantings/edit.html.haml_spec.rb'
- 'spec/views/plantings/index.html.haml_spec.rb'
- 'spec/views/plantings/new.html.haml_spec.rb'
- 'spec/views/plantings/show.html.haml_spec.rb'
- 'spec/views/posts/edit.html.haml_spec.rb'
- 'spec/views/products/edit.html.haml_spec.rb'
- 'spec/views/products/new.html.haml_spec.rb'
- 'spec/views/roles/edit.html.haml_spec.rb'
- 'spec/views/roles/index.html.haml_spec.rb'
- 'spec/views/roles/new.html.haml_spec.rb'
- 'spec/views/roles/show.html.haml_spec.rb'
- 'spec/views/scientific_names/edit.html.haml_spec.rb'
- 'spec/views/scientific_names/show.html.haml_spec.rb'
# Offense count: 2
Style/MultilineTernaryOperator:
Exclude:
- 'app/controllers/notifications_controller.rb'
- 'app/controllers/order_items_controller.rb'
# Offense count: 3
# Cop supports --auto-correct.
Style/MutableConstant:
Exclude:
- 'app/controllers/members_controller.rb'
- 'app/models/planting.rb'
# Offense count: 1
# Cop supports --auto-correct.
Style/NegatedIf:
Exclude:
- 'app/helpers/crops_helper.rb'
# Offense count: 2
Style/NestedTernaryOperator:
Exclude:
- 'app/controllers/harvests_controller.rb'
- 'app/controllers/plantings_controller.rb'
# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, MinBodyLength, SupportedStyles.
# SupportedStyles: skip_modifier_ifs, always
Style/Next:
Exclude:
- 'lib/tasks/growstuff.rake'
# Offense count: 2
# Cop supports --auto-correct.
Style/NilComparison:
Exclude:
- 'lib/tasks/growstuff.rake'
# Offense count: 2
# Cop supports --auto-correct.
# Configuration parameters: EnforcedOctalStyle, SupportedOctalStyles.
# SupportedOctalStyles: zero_with_o, zero_only
Style/NumericLiteralPrefix:
Exclude:
- 'spec/views/plantings/_form.html.haml_spec.rb'
# Offense count: 3
# Cop supports --auto-correct.
Style/NumericLiterals:
MinDigits: 9
# Offense count: 5
# Cop supports --auto-correct.
# Configuration parameters: AutoCorrect, EnforcedStyle, SupportedStyles.
# SupportedStyles: predicate, comparison
@@ -417,53 +80,7 @@ Style/NumericPredicate:
- 'app/helpers/harvests_helper.rb'
- 'app/helpers/plantings_helper.rb'
- 'lib/tasks/growstuff.rake'
- 'script/check_contributors_md'
# Offense count: 3
# Cop supports --auto-correct.
Style/ParallelAssignment:
Exclude:
- 'app/mailers/notifier.rb'
# Offense count: 4
# Cop supports --auto-correct.
# Configuration parameters: AllowSafeAssignment.
Style/ParenthesesAroundCondition:
Exclude:
- 'app/controllers/application_controller.rb'
- 'app/controllers/orders_controller.rb'
- 'app/helpers/crops_helper.rb'
- 'config/factory_girl.rb'
# Offense count: 5
# Cop supports --auto-correct.
# Configuration parameters: PreferredDelimiters.
Style/PercentLiteralDelimiters:
Exclude:
- 'app/helpers/auto_suggest_helper.rb'
- 'script/check_contributors_md'
- 'spec/features/signin_spec.rb'
- 'spec/features/signout_spec.rb'
# Offense count: 3
# Cop supports --auto-correct.
Style/PerlBackrefs:
Exclude:
- 'lib/haml/filters/growstuff_markdown.rb'
# Offense count: 1
# Cop supports --auto-correct.
Style/RedundantParentheses:
Exclude:
- 'app/helpers/plantings_helper.rb'
# Offense count: 1
# Cop supports --auto-correct.
Style/RedundantSelf:
Exclude:
- 'lib/geocodable.rb'
# Offense count: 6
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles, AllowInnerSlashes.
# SupportedStyles: slashes, percent_r, mixed
@@ -474,86 +91,3 @@ Style/RegexpLiteral:
- 'spec/views/devise/registrations/edit_spec.rb'
- 'spec/views/members/index.html.haml_spec.rb'
- 'spec/views/posts/index.html.haml_spec.rb'
- 'spec/views/posts/show.html.haml_spec.rb'
# Offense count: 1
# Cop supports --auto-correct.
Style/SelfAssignment:
Exclude:
- 'app/helpers/crops_helper.rb'
# Offense count: 2
# Cop supports --auto-correct.
# Configuration parameters: SupportedStyles.
# SupportedStyles: use_perl_names, use_english_names
Style/SpecialGlobalVars:
EnforcedStyle: use_perl_names
# Offense count: 3
# Cop supports --auto-correct.
# Configuration parameters: IgnoredMethods.
# IgnoredMethods: respond_to, define_method
Style/SymbolProc:
Exclude:
- 'app/controllers/crops_controller.rb'
- 'lib/tasks/growstuff.rake'
# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles, AllowSafeAssignment.
# SupportedStyles: require_parentheses, require_no_parentheses, require_parentheses_when_complex
Style/TernaryParentheses:
Exclude:
- 'app/helpers/plantings_helper.rb'
# Offense count: 4
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyleForMultiline, SupportedStylesForMultiline.
# SupportedStylesForMultiline: comma, consistent_comma, no_comma
Style/TrailingCommaInArguments:
Exclude:
- 'db/seeds.rb'
- 'lib/actions/oauth_signup_action.rb'
- 'lib/tasks/growstuff.rake'
# Offense count: 4
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyleForMultiline, SupportedStylesForMultiline.
# SupportedStylesForMultiline: comma, consistent_comma, no_comma
Style/TrailingCommaInLiteral:
Exclude:
- 'config/environments/test.rb'
- 'spec/rails_helper.rb'
# Offense count: 1
# Cop supports --auto-correct.
Style/UnlessElse:
Exclude:
- 'app/controllers/omniauth_callbacks_controller.rb'
# Offense count: 12
# Cop supports --auto-correct.
Style/UnneededInterpolation:
Exclude:
- 'spec/features/crops/crop_wranglers_spec.rb'
- 'spec/features/following_spec.rb'
- 'spec/features/shared_examples/append_date.rb'
- 'spec/models/crop_spec.rb'
- 'spec/models/forum_spec.rb'
- 'spec/models/member_spec.rb'
- 'spec/models/plant_part_spec.rb'
- 'spec/views/layouts/_header_spec.rb'
# Offense count: 3
# Cop supports --auto-correct.
Style/UnneededPercentQ:
Exclude:
- 'spec/support/feature_helpers.rb'
# Offense count: 2
# Cop supports --auto-correct.
# Configuration parameters: SupportedStyles, WordRegex.
# SupportedStyles: percent, brackets
Style/WordArray:
EnforcedStyle: percent
MinSize: 5

View File

@@ -1 +1 @@
2.3.3
2.4.1

View File

@@ -1,47 +1,56 @@
sudo: false
sudo: required
language: ruby
cache:
bundler: true
directories:
- travis_phantomjs
- tmp/cache/assets/test/sprockets
env:
matrix:
- GROWSTUFF_SITE_NAME="Growstuff (travis)" RAILS_SECRET_TOKEN='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' GROWSTUFF_ELASTICSEARCH='true'
- GROWSTUFF_SITE_NAME="Growstuff (travis)" RAILS_SECRET_TOKEN='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' GROWSTUFF_ELASTICSEARCH='false'
- GROWSTUFF_ELASTICSEARCH=true RSPEC_TAG=elasticsearch COVERAGE=true
- GROWSTUFF_ELASTICSEARCH=false RSPEC_TAG=~elasticsearch COVERAGE=false
- STATIC_CHECKS=true
global:
secure: "Z5TpM2jEX4UCvNePnk/LwltQX48U2u9BRc+Iypr1x9QW2o228QJhPIOH39a8RMUrepGnkQIq9q3ZRUn98RfrJz1yThtlNFL3NmzdQ57gKgjGwfpa0e4Dwj/ZJqV2D84tDGjvdVYLP7zzaYZxQcwk/cgNpzKf/jq97HLNP7CYuf4="
rvm:
- 2.3.3
- secure: "Z5TpM2jEX4UCvNePnk/LwltQX48U2u9BRc+Iypr1x9QW2o228QJhPIOH39a8RMUrepGnkQIq9q3ZRUn98RfrJz1yThtlNFL3NmzdQ57gKgjGwfpa0e4Dwj/ZJqV2D84tDGjvdVYLP7zzaYZxQcwk/cgNpzKf/jq97HLNP7CYuf4="
- GROWSTUFF_SITE_NAME="Growstuff (travis)"
- RAILS_SECRET_TOKEN='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
before_install:
- ./script/install_phantomjs.sh
- export PATH=$PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64/bin:$PATH
- >
if [ $(phantomjs --version) != '2.1.1' ]; then
PHANTOM_URL=https://assets.membergetmember.co/software/phantomjs-2.1.1-linux-x86_64.tar.bz2;
rm -rf $PWD/travis_phantomjs;
mkdir -p $PWD/travis_phantomjs;
wget $PHANTOM_URL -O $PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2;
tar -xvf $PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2 -C $PWD/travis_phantomjs;
fi
- phantomjs --version
- ./script/install_codeclimate.sh
- ./script/install_linters.sh
- VERSION="6.2.3" ./script/install_elasticsearch.sh
before_script:
- bundle exec rake db:create db:migrate db:test:prepare
- bundle exec rake assets:precompile
- >
if [ "${COVERAGE}" = "true" ]; then
./cc-test-reporter before-build
fi
script:
- bundle exec rubocop --display-cop-names --rails
- script/gemfile_check
- bundle exec script/check_contributors_md
- bundle exec rake db:migrate --trace
- bundle exec rspec spec/
services:
- elasticsearch
- set -e
- >
if [ "${STATIC_CHECKS}" = "true" ]; then
./script/check_static.rb
else
set +e;
RAILS_ENV=test bundle exec rake db:create db:migrate search:create;
bundle exec rake assets:precompile;
bundle exec rspec --tag $RSPEC_TAG spec/;
fi;
- set +e
after_script:
- >
if [ "${COVERAGE}" = "true" ]; then
./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT;
fi
before_deploy:
- bundle exec script/heroku_maintenance.rb on
deploy:
provider: heroku
api_key:
secure: WrQxf0fEKkCdXrjcejurobOnNNz3he4dDwjBbToXbQTQNDObPp7NetJrLsfM8FiUFEeOuvhIHHiDQtMvY720zGGAGxDptvgFS+0QHCUqoTRZA/yFfUmHlG2jROXTzk5uVK0AE4k6Ion5kX8+mM0EnMT/7u+MTFiukrJctSiEXfg=
secure: "WrQxf0fEKkCdXrjcejurobOnNNz3he4dDwjBbToXbQTQNDObPp7NetJrLsfM8FiUFEeOuvhIHHiDQtMvY720zGGAGxDptvgFS+0QHCUqoTRZA/yFfUmHlG2jROXTzk5uVK0AE4k6Ion5kX8+mM0EnMT/7u+MTFiukrJctSiEXfg="
on:
repo: Growstuff/growstuff
condition: "$RSPEC_TAG = elasticsearch"
app:
dev: growstuff-staging
master: growstuff-prod
@@ -55,4 +64,5 @@ after_deploy:
- bundle exec script/heroku_maintenance.rb off
addons:
code_climate:
repo_token: 462e015bbdaabfb20910fc07f2fea253410ecb131444e00f97dbf32dc6789ca6
repo_token:
secure: "PfhLGBKRgNqhKuYCJsK+VPhdAzcgWFGeeOyxC/eS8gtlvIISVdgyZE+r30uIei0DFI6zEiN62eW4d+xtT4j7/e2ZcAcx7U52mza/SnQNuu3nCGQDJB8VOvV5NbnwXfi8vfr4e889Mt7k3ocd2c4gqB4UtRqrzhygj7HN+B/GfEk="

View File

@@ -7,7 +7,32 @@ When you create a pull request, please include the following:
* Make sure you have automated tests for your work, where possible.
* Add your name (and that of your pair partner, if any) to [CONTRIBUTORS.md](CONTRIBUTORS.md).
If you would like to discuss your work before submitting a pull request,
please join any of our [Discussion
forums](http://wiki.growstuff.org/index.php/Discussion_forums), where
our dev team will be happy to help you.
All pull requests should pass our automatic continuous integration and style
checks before being merged. You can run tests locally as follows:
- `rake spec` to run all Ruby tests
- `rake spec:models` to run Ruby model tests (or `rake spec:views` for view tests, etc)
- `rake static` to run all static checks (code style, unfixed Git conflicts, etc)
- `rake jasmine:ci` to run JavaScript unit tests in headless mode
- `rake jasmine` to start a server for running JavaScript unit tests in a
browser (eg for debugging). Point your browser at http://localhost:8888 to
run the tests.
- `rspec ./spec/path/to/my_spec.rb` to run all Ruby tests in the file `my_spec.rb`
- `rspec ./spec/path/to/my_spec.rb:45` to run the Ruby test starting on line 45 of
`my_spec.rb`. RSpec will output a list of command-lines in this form for all
failing tests so you can easily re-run particular ones.
- `rspec --only-failures` to re-run all Ruby tests that failed last time.
Growstuff runs several linters and checkers before a change is merged. These
run from overcommit. To automatically run the same linters yourself you can
install overcommit too.
- `./script/install_linters`
You can run `rake -T` to see a list of available Rake tasks. If you can't get
some tests to pass, please submit a pull request anyway - we'll be happy to
help you debug the failures.
If you would like to discuss an idea before submitting a pull request,
please open a [GitHub Issue](https://github.com/growstuff/growstuff/issues),
where our dev team will be happy to help you.

View File

@@ -8,14 +8,15 @@ submit the change with your pull request.
## Committers
- Alex Bayley / [Skud](https://github.com/Skud)
- Cesy / [cesy](https://github.com/cesy)
- Miles Gould / [pozorvlak](https://github.com/pozorvlak)
- Taylor Griffin / [tygriffin](https://github.com/tygriffin)
- Mackenzie Morgan / [maco](https://github.com/maco)
- Brenda Wallace / [br3nda](https://github.com/br3nda)
## Contributors
- Alex Bayley / [Skud](https://github.com/Skud)
- Taylor Griffin / [tygriffin](https://github.com/tygriffin)
- Joseph Caudle / [jcaudle](https://github.com/jcaudle)
- Ricky Amianym / [amianym](https://github.com/amianym)
- Juliet Kemp / [julietk](https://github.com/julietk)
@@ -54,6 +55,8 @@ submit the change with your pull request.
- Rocky Jaiswal / [rocky-jaiswal](https://github.com/rocky-jaiswal)
- Robert Landreaux / [robertlandreaux](https://github.com/robertlandreaux)
- Savant Krishna / [sksavant](https://github.com/sksavant)
- Marlena Compton / [marlena](https://github/marlena)
- Ryan Dy / [rdy](https://github/rdy)
- Jake Yesbeck / [yez](https://github.com/yez)
- Mauricio Gonzalez / [mauricio-gonzalez](https://github.com/mauricio-gonzalez)
- Andrey Bazhutkin / [andrba](https://github.com/andrba)
@@ -71,5 +74,21 @@ submit the change with your pull request.
- Lucas Nogueira / [lucasnogueira](https://github.com/lucasnogueira)
- Charley Lewittes / [ctlewitt](https://github.com/ctlewitt)
- Kristine Nicole Polvoriza / [polveenomials](https://github.com/polveenomials)
- Brenda Wallace / [br3nda](https://github.com/br3nda)
- Jim Stallings / [jestallin](https://github.com/jestallin)
- Alyssa Ransbury / [alran](https://github.com/alran)
- Thomas Countz / [thomascountz](https://github.com/thomascountz)
- Megan Talbot / [meganft](https://github.com/meganft)
- Arun Kumar / [arun1595](https://github.com/arun1595)
- Harry Brodsky / [hbrodsk1](https://github.com/hbrodsk1)
- Jeff Kingswood / [ancyentmariner](https://github.com/ancyentmariner)
- Logan Gingerich / [logangingerich](https://github.com/logangingerich)
- Mark Taffman / [mftaff](https://github.com/mftaff)
- Jennifer Kruse / [jenkr55](https://github.com/jenkr55)
- Christopher Bazin / [RobotScissors](https://github.com/robotscissors)
## Bots
### Security and Dependency Updates
- DeppBot / [deppbot](https://github.com/deppbot)
- dependabot[bot] / [dependabot-bot](https://github.com/dependabot-bot)
- dependabot / [dependabot](https://github.com/dependabot)

82
Gemfile
View File

@@ -1,57 +1,66 @@
# frozen_string_literal: true
source 'https://rubygems.org'
ruby '2.3.3'
ruby '2.4.1'
gem 'rails', '~> 4.2.7'
gem 'rails', '~> 4.2.8'
gem 'bundler', '>=1.1.5'
gem 'coffee-rails', '~> 4.1.0'
gem 'coffee-rails'
gem 'haml'
gem 'sass-rails', '~> 5.0.4'
gem 'sass-rails'
# API data
gem 'jsonapi-resources'
# CSS framework
gem 'bootstrap-sass', '~> 3.3.6'
gem 'bootstrap-sass'
gem 'font-awesome-sass'
gem 'uglifier', '~> 2.7.2' # JavaScript compressor
gem 'uglifier' # JavaScript compressor
# planting and harvest predictions
gem 'active_median'
gem 'flickraw'
gem 'jquery-rails'
gem 'jquery-ui-rails', '~> 5.0.2'
gem 'jquery-ui-rails', '~> 5.0.2' # needs careful upgrade with change of location
gem 'js-routes' # provides access to Rails routes in Javascript
gem 'cancancan', '~> 1.9' # for checking member privileges
gem 'cancancan' # for checking member privileges
gem 'csv_shaper' # CSV export
gem 'figaro' # for handling config via ENV variables
gem 'gibbon', '~>1.2.0' # for Mailchimp newsletter subscriptions
gem 'leaflet-markercluster-rails'
# Maps
gem 'leaflet-rails'
gem 'pg'
gem 'rails-assets-leaflet.markercluster', source: 'https://rails-assets.org'
gem 'pg', '< 1.0.0' # Upstream bug, see https://github.com/Growstuff/growstuff/pull/1539
gem 'ruby-units' # for unit conversion
gem 'unicorn' # http server
gem 'comfortable_mexican_sofa', '~> 1.12.0' # content management system
gem 'comfortable_mexican_sofa' # content management system
gem 'bootstrap-kaminari-views' # bootstrap views for kaminari
gem 'kaminari' # pagination
gem 'active_utils'
gem 'activemerchant'
gem 'sidekiq'
# Markdown formatting for updates etc
gem 'bluecloth'
# Pagination
gem 'will_paginate', '~> 3.0'
gem 'will_paginate'
# user signup/login/etc
gem 'devise', '>= 4.0.0'
gem 'devise'
# nicely formatted URLs
gem 'friendly_id', '~> 5.0.4'
gem 'friendly_id'
# gravatars
gem 'gravatar-ultimate'
@@ -63,11 +72,13 @@ gem 'geocoder'
gem 'bootstrap-datepicker-rails'
# For connecting to other services (eg Twitter)
gem 'omniauth'
gem 'omniauth', '~> 1.3'
gem 'omniauth-facebook'
gem 'omniauth-flickr', '>= 0.0.15'
gem 'omniauth-twitter'
gem "chartkick"
# client for Elasticsearch. Elasticsearch is a flexible
# and powerful, distributed, real-time search and analytics engine.
# An example of the use in the project is fuzzy crop search.
@@ -75,14 +86,20 @@ gem 'omniauth-twitter'
# Project does not use semver, so we want to be in sync with the version of
# elasticsearch we use
# See https://github.com/elastic/elasticsearch-ruby#compatibility
gem "elasticsearch-api", "~> 2.0.0"
gem "elasticsearch-model"
gem "elasticsearch-rails"
gem "elasticsearch-api", ">= 6.0.0"
gem "elasticsearch-model", ">= 6.0.0"
gem "elasticsearch-rails", ">= 6.0.0"
gem "hashie", ">= 3.5.3"
gem 'rake', '>= 10.0.0'
# # CMS
# gem 'comfortable_mexican_sofa', '~> 1.12.0'
# locale based flash notices for controllers
gem "responders"
# allows soft delete. Used for members.
gem 'acts_as_paranoid', '~> 0.5.0'
gem 'xmlrpc' # fixes rake error - can be removed if not needed later
group :production, :staging do
gem 'bonsai-elasticsearch-rails' # Integration with Bonsa-Elasticsearch on heroku
@@ -97,7 +114,7 @@ group :development do
# A debugger and irb alternative. Pry doesn't play nice
# with unicorn, so start a Webrick server when debugging
# with Pry
gem 'better_errors'
gem 'better_errors', '~> 2.2.0'
gem 'binding_of_caller'
gem 'guard'
gem 'guard-rspec'
@@ -107,30 +124,35 @@ group :development do
end
group :development, :test do
gem "active_merchant-paypal-bogus-gateway"
gem 'bullet' # performance tuning by finding unnecesary queries
gem 'byebug' # debugging
gem 'capybara' # integration tests
gem 'capybara-email' # integration tests for email
gem 'capybara-screenshot' # for test debugging
gem 'coveralls', require: false # coverage analysis
gem 'database_cleaner', '~> 1.5.0'
gem 'factory_girl_rails' # for creating test data
gem 'database_cleaner'
gem 'factory_bot_rails' # for creating test data
gem 'faker'
gem 'haml-i18n-extractor'
gem 'haml-rails' # HTML templating language
gem 'haml_lint' # Checks haml files for goodness
gem 'i18n-tasks' # adds tests for finding missing and unused translations
gem 'poltergeist' # for headless JS testing
gem 'rspec-activemodel-mocks'
gem 'rspec-rails' # unit testing framework
gem 'rubocop', require: false
gem 'rainbow', '< 2.2.0' # See https://github.com/sickill/rainbow/issues/44
gem 'rspec-activemodel-mocks'
gem 'rspec-rails' # unit testing framework
gem 'rubocop'
gem 'selenium-webdriver'
gem 'webrat' # provides HTML matchers for view tests
gem 'webrat' # provides HTML matchers for view tests
end
group :test do
gem 'codeclimate-test-reporter', require: false
gem 'timecop'
end
group :travis do
gem 'heroku-api'
gem 'platform-api'
end
gem 'loofah', '>= 2.2.1'
gem 'rack-protection', '>= 2.0.1'

View File

@@ -1,69 +1,68 @@
GEM
remote: https://rubygems.org/
remote: https://rails-assets.org/
specs:
actionmailer (4.2.7.1)
actionpack (= 4.2.7.1)
actionview (= 4.2.7.1)
activejob (= 4.2.7.1)
actionmailer (4.2.10)
actionpack (= 4.2.10)
actionview (= 4.2.10)
activejob (= 4.2.10)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 1.0, >= 1.0.5)
actionpack (4.2.7.1)
actionview (= 4.2.7.1)
activesupport (= 4.2.7.1)
actionpack (4.2.10)
actionview (= 4.2.10)
activesupport (= 4.2.10)
rack (~> 1.6)
rack-test (~> 0.6.2)
rails-dom-testing (~> 1.0, >= 1.0.5)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
actionview (4.2.7.1)
activesupport (= 4.2.7.1)
actionview (4.2.10)
activesupport (= 4.2.10)
builder (~> 3.1)
erubis (~> 2.7.0)
rails-dom-testing (~> 1.0, >= 1.0.5)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
active_link_to (1.0.3)
rails-html-sanitizer (~> 1.0, >= 1.0.3)
active_link_to (1.0.5)
actionpack
active_merchant-paypal-bogus-gateway (0.1.0)
activemerchant
active_utils (3.2.3)
activesupport (>= 3.2, < 5.1.0)
addressable
active_median (0.1.4)
activerecord
active_utils (3.3.12)
activesupport (>= 3.2, < 6.0)
i18n
activejob (4.2.7.1)
activesupport (= 4.2.7.1)
activejob (4.2.10)
activesupport (= 4.2.10)
globalid (>= 0.3.0)
activemerchant (1.61.0)
activesupport (>= 3.2.14, < 5.1)
builder (>= 2.1.2, < 4.0.0)
i18n (>= 0.6.9)
nokogiri (~> 1.4)
activemodel (4.2.7.1)
activesupport (= 4.2.7.1)
activemodel (4.2.10)
activesupport (= 4.2.10)
builder (~> 3.1)
activerecord (4.2.7.1)
activemodel (= 4.2.7.1)
activesupport (= 4.2.7.1)
activerecord (4.2.10)
activemodel (= 4.2.10)
activesupport (= 4.2.10)
arel (~> 6.0)
activesupport (4.2.7.1)
activesupport (4.2.10)
i18n (~> 0.7)
json (~> 1.7, >= 1.7.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
addressable (2.5.0)
public_suffix (~> 2.0, >= 2.0.2)
acts_as_paranoid (0.5.0)
activerecord (>= 4.0, < 5.1)
activesupport (>= 4.0, < 5.1)
addressable (2.5.2)
public_suffix (>= 2.0.2, < 4.0)
arel (6.0.4)
ast (2.3.0)
autoprefixer-rails (6.6.1)
ast (2.4.0)
autoprefixer-rails (8.6.4)
execjs
bcrypt (3.1.11)
better_errors (2.1.1)
better_errors (2.2.0)
coderay (>= 1.0.0)
erubis (>= 2.6.6)
rack (>= 0.9.0)
binding_of_caller (0.7.2)
binding_of_caller (0.8.0)
debug_inspector (>= 0.0.1)
bluecloth (2.2.0)
bonsai-elasticsearch-rails (0.0.4)
bootstrap-datepicker-rails (1.6.4.1)
bootstrap-datepicker-rails (1.8.0.1)
railties (>= 3.0)
bootstrap-kaminari-views (0.0.5)
kaminari (>= 0.13)
@@ -71,42 +70,44 @@ GEM
bootstrap-sass (3.3.7)
autoprefixer-rails (>= 5.2.1)
sass (>= 3.3.4)
bootstrap_form (2.5.3)
bootstrap_form (2.7.0)
builder (3.2.3)
byebug (9.0.6)
cancancan (1.15.0)
capybara (2.10.1)
bullet (5.7.5)
activesupport (>= 3.0.0)
uniform_notifier (~> 1.11.0)
byebug (10.0.2)
cancancan (2.2.0)
capybara (2.18.0)
addressable
mime-types (>= 1.16)
mini_mime (>= 0.1.3)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
rack-test (>= 0.5.4)
xpath (~> 2.0)
capybara-email (2.5.0)
capybara (~> 2.4)
xpath (>= 2.0, < 4.0)
capybara-email (3.0.1)
capybara (>= 2.4, < 4.0)
mail
capybara-screenshot (1.0.14)
capybara (>= 1.0, < 3)
capybara-screenshot (1.0.21)
capybara (>= 1.0, < 4)
launchy
childprocess (0.5.9)
chartkick (2.3.5)
childprocess (0.9.0)
ffi (~> 1.0, >= 1.0.11)
climate_control (0.1.0)
climate_control (0.2.0)
cliver (0.3.2)
cocaine (0.5.8)
climate_control (>= 0.0.3, < 1.0)
codeclimate-test-reporter (1.0.3)
simplecov
codeclimate-test-reporter (1.0.8)
simplecov (<= 0.13)
codemirror-rails (5.16.0)
railties (>= 3.0, < 6.0)
coderay (1.1.1)
coffee-rails (4.1.1)
coderay (1.1.2)
coffee-rails (4.2.2)
coffee-script (>= 2.2.0)
railties (>= 4.0.0, < 5.1.x)
railties (>= 4.0.0)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.12.2)
comfortable_mexican_sofa (1.12.10)
comfortable_mexican_sofa (1.12.11)
active_link_to (>= 1.0.0)
bootstrap-sass (>= 3.2.0)
bootstrap_form (>= 2.2.0)
@@ -121,7 +122,7 @@ GEM
rails (>= 4.0.0, < 5.1)
rails-i18n (>= 4.0.0)
sass-rails (>= 4.0.3)
concurrent-ruby (1.0.4)
concurrent-ruby (1.0.5)
connection_pool (2.2.1)
coveralls (0.8.19)
json (>= 1.8, < 3)
@@ -129,68 +130,70 @@ GEM
term-ansicolor (~> 1.3)
thor (~> 0.19.1)
tins (~> 1.6)
crass (1.0.4)
csv_shaper (1.3.0)
activesupport (>= 3.0.0)
dalli (2.7.6)
database_cleaner (1.5.3)
debug_inspector (0.0.2)
devise (4.2.0)
dalli (2.7.8)
database_cleaner (1.7.0)
debug_inspector (0.0.3)
devise (4.4.3)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0, < 5.1)
railties (>= 4.1.0, < 6.0)
responders
warden (~> 1.2.3)
diff-lcs (1.3)
docile (1.1.5)
easy_translate (0.5.0)
json
easy_translate (0.5.1)
thread
thread_safe
elasticsearch (2.0.0)
elasticsearch-api (= 2.0.0)
elasticsearch-transport (= 2.0.0)
elasticsearch-api (2.0.0)
elasticsearch (6.1.0)
elasticsearch-api (= 6.1.0)
elasticsearch-transport (= 6.1.0)
elasticsearch-api (6.1.0)
multi_json
elasticsearch-model (0.1.9)
elasticsearch-model (6.0.0)
activesupport (> 3)
elasticsearch (> 0.4)
elasticsearch (> 1)
hashie
elasticsearch-rails (0.1.9)
elasticsearch-transport (2.0.0)
elasticsearch-rails (6.0.0)
elasticsearch-transport (6.1.0)
faraday
multi_json
erubis (2.7.0)
excon (0.54.0)
excon (0.62.0)
execjs (2.7.0)
factory_girl (4.8.0)
factory_bot (4.10.0)
activesupport (>= 3.0.0)
factory_girl_rails (4.8.0)
factory_girl (~> 4.8.0)
factory_bot_rails (4.10.0)
factory_bot (~> 4.10.0)
railties (>= 3.0.0)
faraday (0.9.2)
faker (1.9.1)
i18n (>= 0.7)
faraday (0.12.2)
multipart-post (>= 1.2, < 3)
ffi (1.9.17)
ffi (1.9.25)
figaro (1.1.1)
thor (~> 0.14)
flickraw (0.9.9)
font-awesome-sass (4.6.2)
sass (>= 3.2)
font-awesome-sass (5.0.13)
sassc (>= 1.11)
formatador (0.2.5)
friendly_id (5.0.5)
friendly_id (5.2.4)
activerecord (>= 4.0.0)
geocoder (1.4.1)
geocoder (1.4.9)
gibbon (1.2.1)
httparty
multi_json (>= 1.9.0)
globalid (0.3.7)
activesupport (>= 4.1.0)
globalid (0.4.1)
activesupport (>= 4.2.0)
gravatar-ultimate (2.0.0)
activesupport (>= 2.3.14)
rack
guard (2.14.0)
guard (2.14.2)
formatador (>= 0.2.4)
listen (>= 2.7, < 4.0)
lumberjack (~> 1.0)
lumberjack (>= 1.0.12, < 2.0)
nenv (~> 0.1)
notiffany (~> 0.0)
pry (>= 0.9.12)
@@ -201,7 +204,8 @@ GEM
guard (~> 2.1)
guard-compat (~> 1.1)
rspec (>= 2.99.0, < 4.0)
haml (4.0.7)
haml (5.0.4)
temple (>= 0.8.0)
tilt
haml-i18n-extractor (0.5.9)
activesupport
@@ -209,26 +213,35 @@ GEM
highline
tilt
trollop (= 1.16.2)
haml-rails (0.9.0)
haml-rails (1.0.0)
actionpack (>= 4.0.1)
activesupport (>= 4.0.1)
haml (>= 4.0.6, < 5.0)
haml (>= 4.0.6, < 6.0)
html2haml (>= 1.0.1)
railties (>= 4.0.1)
hashie (3.4.6)
heroku-api (0.4.2)
excon (~> 0.45)
multi_json (~> 1.8)
highline (1.7.8)
html2haml (2.0.0)
haml_lint (0.26.0)
haml (>= 4.0, < 5.1)
rainbow
rake (>= 10, < 13)
rubocop (>= 0.49.0)
sysexits (~> 1.1)
hashie (3.5.7)
heroics (0.0.24)
erubis (~> 2.0)
excon
moneta
multi_json (>= 1.9.2)
highline (1.7.10)
html2haml (2.2.0)
erubis (~> 2.7.0)
haml (~> 4.0.0)
nokogiri (~> 1.6.0)
haml (>= 4.0, < 6)
nokogiri (>= 1.6.0)
ruby_parser (~> 3.5)
httparty (0.14.0)
httparty (0.16.2)
multi_xml (>= 0.5.2)
i18n (0.7.0)
i18n-tasks (0.9.9)
i18n (0.9.5)
concurrent-ruby (~> 1.0)
i18n-tasks (0.9.12)
activesupport (>= 4.0.2)
ast (>= 2.1.0)
easy_translate (>= 0.5.0)
@@ -238,67 +251,82 @@ GEM
parser (>= 2.2.3.0)
term-ansicolor (>= 1.3.2)
terminal-table (>= 1.5.1)
jquery-rails (4.2.2)
jquery-rails (4.3.3)
rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
jquery-ui-rails (5.0.5)
railties (>= 3.2.16)
js-routes (1.3.0)
js-routes (1.4.3)
railties (>= 3.2)
sprockets-rails
json (1.8.6)
json (2.1.0)
jsonapi-resources (0.9.0)
activerecord (>= 4.1)
concurrent-ruby
railties (>= 4.1)
jwt (1.5.6)
kaminari (0.17.0)
actionpack (>= 3.0.0)
activesupport (>= 3.0.0)
kgio (2.10.0)
kramdown (1.13.2)
kaminari (1.1.1)
activesupport (>= 4.1.0)
kaminari-actionview (= 1.1.1)
kaminari-activerecord (= 1.1.1)
kaminari-core (= 1.1.1)
kaminari-actionview (1.1.1)
actionview
kaminari-core (= 1.1.1)
kaminari-activerecord (1.1.1)
activerecord
kaminari-core (= 1.1.1)
kaminari-core (1.1.1)
kgio (2.11.2)
kramdown (1.17.0)
launchy (2.4.3)
addressable (~> 2.3)
leaflet-markercluster-rails (0.7.0)
railties (>= 3.1)
leaflet-rails (0.7.7)
letter_opener (1.4.1)
leaflet-rails (1.3.1)
rails (>= 4.2.0)
letter_opener (1.6.0)
launchy (~> 2.2)
listen (3.1.5)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
ruby_dep (~> 1.2)
loofah (2.0.3)
loofah (2.2.2)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
lumberjack (1.0.11)
mail (2.6.4)
mime-types (>= 1.16, < 4)
lumberjack (1.0.13)
mail (2.7.0)
mini_mime (>= 0.1.1)
memcachier (0.0.2)
method_source (0.8.2)
method_source (0.9.0)
mime-types (3.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2016.0521)
mimemagic (0.3.2)
mini_portile2 (2.1.0)
minitest (5.10.1)
mini_mime (1.0.0)
mini_portile2 (2.3.0)
minitest (5.11.3)
moneta (0.8.1)
multi_json (1.11.3)
multi_xml (0.6.0)
multipart-post (2.0.0)
nenv (0.3.0)
newrelic_rpm (3.17.1.326)
nokogiri (1.6.8.1)
mini_portile2 (~> 2.1.0)
newrelic_rpm (5.2.0.345)
nokogiri (1.8.4)
mini_portile2 (~> 2.3.0)
notiffany (0.1.1)
nenv (~> 0.1)
shellany (~> 0.0)
oauth (0.5.1)
oauth2 (1.2.0)
faraday (>= 0.8, < 0.10)
oauth (0.5.4)
oauth2 (1.4.0)
faraday (>= 0.8, < 0.13)
jwt (~> 1.0)
multi_json (~> 1.3)
multi_xml (~> 0.5)
rack (>= 1.2, < 3)
omniauth (1.3.2)
hashie (>= 1.2, < 4)
rack (>= 1.0, < 3)
omniauth-facebook (4.0.0)
omniauth (1.8.1)
hashie (>= 3.4.6, < 3.6.0)
rack (>= 1.6.2, < 3)
omniauth-facebook (5.0.0)
omniauth-oauth2 (~> 1.2)
omniauth-flickr (0.0.19)
multi_json (~> 1.11.0)
@@ -306,60 +334,66 @@ GEM
omniauth-oauth (1.1.0)
oauth
omniauth (~> 1.0)
omniauth-oauth2 (1.4.0)
oauth2 (~> 1.0)
omniauth-oauth2 (1.5.0)
oauth2 (~> 1.1)
omniauth (~> 1.2)
omniauth-twitter (1.2.1)
json (~> 1.3)
omniauth-twitter (1.4.0)
omniauth-oauth (~> 1.1)
rack
orm_adapter (0.5.0)
paperclip (5.1.0)
paperclip (6.1.0)
activemodel (>= 4.2.0)
activesupport (>= 4.2.0)
cocaine (~> 0.5.5)
mime-types
mimemagic (~> 0.3.0)
parser (2.3.3.1)
ast (~> 2.2)
pg (0.19.0)
terrapin (~> 0.6.0)
parallel (1.12.1)
parser (2.5.1.0)
ast (~> 2.4.0)
pg (0.21.0)
platform-api (2.1.0)
heroics (~> 0.0.23)
moneta (~> 0.8.1)
plupload-rails (1.2.1)
rails (>= 3.1)
poltergeist (1.11.0)
poltergeist (1.17.0)
capybara (~> 2.1)
cliver (~> 0.3.1)
websocket-driver (>= 0.2.0)
powerpack (0.1.1)
pry (0.10.4)
pry (0.11.3)
coderay (~> 1.1.0)
method_source (~> 0.8.1)
slop (~> 3.4)
public_suffix (2.0.5)
method_source (~> 0.9.0)
public_suffix (3.0.2)
quiet_assets (1.1.0)
railties (>= 3.1, < 5.0)
rack (1.6.5)
rack-protection (1.5.3)
rack (1.6.10)
rack-protection (2.0.3)
rack
rack-test (0.6.3)
rack (>= 1.0)
rails (4.2.7.1)
actionmailer (= 4.2.7.1)
actionpack (= 4.2.7.1)
actionview (= 4.2.7.1)
activejob (= 4.2.7.1)
activemodel (= 4.2.7.1)
activerecord (= 4.2.7.1)
activesupport (= 4.2.7.1)
rails (4.2.10)
actionmailer (= 4.2.10)
actionpack (= 4.2.10)
actionview (= 4.2.10)
activejob (= 4.2.10)
activemodel (= 4.2.10)
activerecord (= 4.2.10)
activesupport (= 4.2.10)
bundler (>= 1.3.0, < 2.0)
railties (= 4.2.7.1)
railties (= 4.2.10)
sprockets-rails
rails-assets-leaflet (1.3.1)
rails-assets-leaflet.markercluster (1.3.0)
rails-assets-leaflet (>= 1.0.3)
rails-deprecated_sanitizer (1.0.3)
activesupport (>= 4.2.0.alpha)
rails-dom-testing (1.0.8)
activesupport (>= 4.2.0.beta, < 5.0)
rails-dom-testing (1.0.9)
activesupport (>= 4.2.0, < 5.0)
nokogiri (~> 1.6)
rails-deprecated_sanitizer (>= 1.0.1)
rails-html-sanitizer (1.0.3)
loofah (~> 2.0)
rails-html-sanitizer (1.0.4)
loofah (~> 2.2, >= 2.2.2)
rails-i18n (4.0.9)
i18n (~> 0.7)
railties (~> 4.0)
@@ -368,163 +402,174 @@ GEM
rails_stdout_logging
rails_serve_static_assets (0.0.5)
rails_stdout_logging (0.0.5)
railties (4.2.7.1)
actionpack (= 4.2.7.1)
activesupport (= 4.2.7.1)
railties (4.2.10)
actionpack (= 4.2.10)
activesupport (= 4.2.10)
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
rainbow (2.1.0)
raindrops (0.17.0)
rake (12.0.0)
rb-fsevent (0.9.8)
rb-inotify (0.9.7)
ffi (>= 0.5.0)
redis (3.3.2)
responders (2.3.0)
railties (>= 4.2.0, < 5.1)
rspec (3.5.0)
rspec-core (~> 3.5.0)
rspec-expectations (~> 3.5.0)
rspec-mocks (~> 3.5.0)
raindrops (0.19.0)
rake (12.3.1)
rb-fsevent (0.10.3)
rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2)
redis (4.0.1)
responders (2.4.0)
actionpack (>= 4.2.0, < 5.3)
railties (>= 4.2.0, < 5.3)
rspec (3.8.0)
rspec-core (~> 3.8.0)
rspec-expectations (~> 3.8.0)
rspec-mocks (~> 3.8.0)
rspec-activemodel-mocks (1.0.3)
activemodel (>= 3.0)
activesupport (>= 3.0)
rspec-mocks (>= 2.99, < 4.0)
rspec-core (3.5.4)
rspec-support (~> 3.5.0)
rspec-expectations (3.5.0)
rspec-core (3.8.0)
rspec-support (~> 3.8.0)
rspec-expectations (3.8.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.5.0)
rspec-mocks (3.5.0)
rspec-support (~> 3.8.0)
rspec-mocks (3.8.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.5.0)
rspec-rails (3.5.2)
rspec-support (~> 3.8.0)
rspec-rails (3.8.0)
actionpack (>= 3.0)
activesupport (>= 3.0)
railties (>= 3.0)
rspec-core (~> 3.5.0)
rspec-expectations (~> 3.5.0)
rspec-mocks (~> 3.5.0)
rspec-support (~> 3.5.0)
rspec-support (3.5.0)
rubocop (0.47.1)
rspec-core (~> 3.8.0)
rspec-expectations (~> 3.8.0)
rspec-mocks (~> 3.8.0)
rspec-support (~> 3.8.0)
rspec-support (3.8.0)
rubocop (0.49.1)
parallel (~> 1.10)
parser (>= 2.3.3.1, < 3.0)
powerpack (~> 0.1)
rainbow (>= 1.99.1, < 3.0)
ruby-progressbar (~> 1.7)
unicode-display_width (~> 1.0, >= 1.0.1)
ruby-progressbar (1.8.1)
ruby-units (2.0.1)
ruby-progressbar (1.9.0)
ruby-units (2.3.0)
ruby_dep (1.5.0)
ruby_parser (3.8.4)
sexp_processor (~> 4.1)
rubyzip (1.2.0)
sass (3.4.23)
sass-rails (5.0.6)
ruby_parser (3.11.0)
sexp_processor (~> 4.9)
rubyzip (1.2.1)
sass (3.5.6)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
sass-rails (5.0.7)
railties (>= 4.0.0, < 6)
sass (~> 3.1)
sprockets (>= 2.8, < 4.0)
sprockets-rails (>= 2.0, < 4.0)
tilt (>= 1.1, < 3)
selenium-webdriver (3.0.5)
sassc (1.12.0)
ffi (~> 1.9.6)
sass (>= 3.3.0)
selenium-webdriver (3.14.0)
childprocess (~> 0.5)
rubyzip (~> 1.0)
websocket (~> 1.0)
sexp_processor (4.7.0)
rubyzip (~> 1.2)
sexp_processor (4.11.0)
shellany (0.0.1)
sidekiq (4.1.4)
sidekiq (5.1.3)
concurrent-ruby (~> 1.0)
connection_pool (~> 2.2, >= 2.2.0)
redis (~> 3.2, >= 3.2.1)
sinatra (>= 1.4.7)
rack-protection (>= 1.5.0)
redis (>= 3.3.5, < 5)
simplecov (0.12.0)
docile (~> 1.1.0)
json (>= 1.8, < 3)
simplecov-html (~> 0.10.0)
simplecov-html (0.10.0)
sinatra (1.4.7)
rack (~> 1.5)
rack-protection (~> 1.4)
tilt (>= 1.3, < 3)
slop (3.6.0)
sparkpost_rails (1.4.0)
rails (>= 4.0, < 5.1)
sprockets (3.7.1)
simplecov-html (0.10.2)
sparkpost_rails (1.5.1)
rails (>= 4.0, < 5.3)
sprockets (3.7.2)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
sprockets-rails (3.2.0)
sprockets-rails (3.2.1)
actionpack (>= 4.0)
activesupport (>= 4.0)
sprockets (>= 3.0.0)
term-ansicolor (1.4.0)
sysexits (1.2.0)
temple (0.8.0)
term-ansicolor (1.6.0)
tins (~> 1.0)
terminal-table (1.7.3)
unicode-display_width (~> 1.1.1)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
terrapin (0.6.0)
climate_control (>= 0.0.3, < 1.0)
thor (0.19.4)
thread (0.2.2)
thread_safe (0.3.5)
tilt (2.0.5)
tins (1.13.0)
thread_safe (0.3.6)
tilt (2.0.8)
timecop (0.9.1)
tins (1.16.3)
trollop (1.16.2)
tzinfo (1.2.2)
tzinfo (1.2.5)
thread_safe (~> 0.1)
uglifier (2.7.2)
execjs (>= 0.3.0)
json (>= 1.8.0)
unicode-display_width (1.1.3)
unicorn (5.1.0)
uglifier (4.1.15)
execjs (>= 0.3.0, < 3)
unicode-display_width (1.3.2)
unicorn (5.4.1)
kgio (~> 2.6)
raindrops (~> 0.7)
warden (1.2.6)
uniform_notifier (1.11.0)
warden (1.2.7)
rack (>= 1.0)
webrat (0.7.3)
nokogiri (>= 1.2.0)
rack (>= 1.0)
rack-test (>= 0.5.3)
websocket (1.2.3)
websocket-driver (0.6.4)
websocket-driver (0.7.0)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.2)
will_paginate (3.1.5)
xpath (2.0.0)
nokogiri (~> 1.3)
websocket-extensions (0.1.3)
will_paginate (3.1.6)
xmlrpc (0.3.0)
xpath (3.1.0)
nokogiri (~> 1.8)
PLATFORMS
ruby
DEPENDENCIES
active_merchant-paypal-bogus-gateway
active_median
active_utils
activemerchant
better_errors
acts_as_paranoid (~> 0.5.0)
better_errors (~> 2.2.0)
binding_of_caller
bluecloth
bonsai-elasticsearch-rails
bootstrap-datepicker-rails
bootstrap-kaminari-views
bootstrap-sass (~> 3.3.6)
bootstrap-sass
bullet
bundler (>= 1.1.5)
byebug
cancancan (~> 1.9)
cancancan
capybara
capybara-email
capybara-screenshot
chartkick
codeclimate-test-reporter
coffee-rails (~> 4.1.0)
comfortable_mexican_sofa (~> 1.12.0)
coffee-rails
comfortable_mexican_sofa
coveralls
csv_shaper
dalli
database_cleaner (~> 1.5.0)
devise (>= 4.0.0)
elasticsearch-api (~> 2.0.0)
elasticsearch-model
elasticsearch-rails
factory_girl_rails
database_cleaner
devise
elasticsearch-api (>= 6.0.0)
elasticsearch-model (>= 6.0.0)
elasticsearch-rails (>= 6.0.0)
factory_bot_rails
faker
figaro
flickraw
font-awesome-sass
friendly_id (~> 5.0.4)
friendly_id
geocoder
gibbon (~> 1.2.0)
gravatar-ultimate
@@ -533,44 +578,52 @@ DEPENDENCIES
haml
haml-i18n-extractor
haml-rails
heroku-api
haml_lint
hashie (>= 3.5.3)
i18n-tasks
jquery-rails
jquery-ui-rails (~> 5.0.2)
js-routes
jsonapi-resources
kaminari
leaflet-markercluster-rails
leaflet-rails
letter_opener
loofah (>= 2.2.1)
memcachier
newrelic_rpm
omniauth
omniauth (~> 1.3)
omniauth-facebook
omniauth-flickr (>= 0.0.15)
omniauth-twitter
pg
pg (< 1.0.0)
platform-api
poltergeist
pry
quiet_assets
rails (~> 4.2.7)
rack-protection (>= 2.0.1)
rails (~> 4.2.8)
rails-assets-leaflet.markercluster!
rails_12factor
rainbow (< 2.2.0)
rake (>= 10.0.0)
responders
rspec-activemodel-mocks
rspec-rails
rubocop
ruby-units
sass-rails (~> 5.0.4)
sass-rails
selenium-webdriver
sidekiq
sparkpost_rails
uglifier (~> 2.7.2)
timecop
uglifier
unicorn
webrat
will_paginate (~> 3.0)
will_paginate
xmlrpc
RUBY VERSION
ruby 2.3.3p222
ruby 2.4.1p111
BUNDLED WITH
1.13.7
1.16.4

View File

@@ -1,13 +1,13 @@
guard :rspec,
cmd: 'bundle exec rspec --format documentation',
failed_mode: :keep do
cmd: 'bundle exec rspec --format documentation',
failed_mode: :keep do
watch(%r{^spec/.+_spec\.rb$})
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/libs/#{m[1]}_spec.rb" }
watch('spec/spec_helper.rb') { "spec" }
watch('spec/spec_helper.rb') { "spec" }
# Rails example
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
watch(%r{^app/(.*)(\.erb|\.haml|\.slim)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
watch('config/routes.rb') { "spec/routing" }
end
end

View File

@@ -1,7 +1,7 @@
# Growstuff
[![Build Status](https://travis-ci.org/Growstuff/growstuff.png)](https://travis-ci.org/Growstuff/growstuff)
[![Coverage Status](https://coveralls.io/repos/Growstuff/growstuff/badge.png)](https://coveralls.io/r/Growstuff/growstuff)
[![Build Status](https://travis-ci.org/Growstuff/growstuff.svg?branch=dev)](https://travis-ci.org/Growstuff/growstuff)
[![Coverage Status](https://coveralls.io/repos/github/Growstuff/growstuff/badge.svg?branch=dev)](https://coveralls.io/github/Growstuff/growstuff?branch=dev)
[![Code Climate](https://codeclimate.com/github/Growstuff/growstuff/badges/gpa.svg)](https://codeclimate.com/github/Growstuff/growstuff)
Welcome to the Growstuff project.
@@ -19,7 +19,6 @@ encourage participation from people of all backgrounds and skill levels.
* [Issues](http://github.com/Growstuff/growstuff/issues) (features we're
working on, known bugs, etc)
* [Discussion forums](http://talk.growstuff.org/) (design ideas, planning releases)
* [IRC](https://webchat.freenode.net/) growstuff channel (general chat, brainstorming and troubleshooting) or [Gitter](https://gitter.im/Growstuff/growstuff)
* [Wiki](https://github.com/Growstuff/growstuff/wiki) (general documentation, etc. Help by migrating from the [old wiki](https://web.archive.org/web/*/wiki.growstuff.org))
@@ -30,8 +29,7 @@ frontend features. We welcome contributions -- see
[CONTRIBUTING](CONTRIBUTING.md) for details.
* To set up your development environment, see [Getting started](https://github.com/Growstuff/growstuff/wiki/New-contributor-guide).
* We encourage [pair programming](http://wiki.growstuff.org/index.php/Pairing), especially for newer developers. [Find a pair programming partner.](http://talk.growstuff.org/t/find-a-pair-programming-partner/13)
* Drop in to our [discussion forums](http://talk.growstuff.org/), IRC or Gitter to chat to other developers, get help, etc.
* We encourage [pair programming](http://wiki.growstuff.org/index.php/Pairing), especially for newer developers.
* You may also be interested in our [API](https://github.com/Growstuff/growstuff/wiki/API).
## For designers, writers, researchers, data wranglers, and other contributors
@@ -41,23 +39,25 @@ your skills and interests.
You might like to check out:
* The [Get Involved](http://wiki.growstuff.org/index.php/Get_involved)
* The [New Contributor Guide](https://github.com/Growstuff/growstuff/wiki/New-contributor-guide)
page on our wiki, which has lots of detail for different areas
* [Growstuff Talk](http://talk.growstuff.org/) especially the [Idea category](http://talk.growstuff.org/c/idea)
Here on Github, you might find these useful:
* [Waffle](http://waffle.io/Growstuff/growstuff) has stories in "ready" that can be worked on.
* [needs: design](https://github.com/Growstuff/growstuff/labels/needs:%20design) - tasks requiring high-level design
* [needs: visual design](https://github.com/Growstuff/growstuff/labels/needs:%20visual design) - tasks requiring visual/graphical design
* [needs: documentation](https://github.com/Growstuff/growstuff/labels/needs:%20documentation)
* [needs: data](https://github.com/Growstuff/growstuff/labels/needs:%20data) - tasks requiring data entry, data design, data import, or similar
* [curated:beginner](https://github.com/Growstuff/growstuff/labels/curated:%20beginner) - tasks that are ideal for beginner programmers or people new to the project
Feel free to comment on any of the issues you find there, or open up a broader conversation on [Growstuff Talk](http://talk.growstuff.org).
Feel free to comment on any of the issues on [Github](https://github.com/Growstuff/growstuff/issues).
## Contact
For more information about this project, contact [info@growstuff.org](mailto:info@growstuff.org).
Security Issues: If you find an authorization bypass or data breach, please contact our maintainers directly at [maintainers@growstuff.org](mailto:maintainers@growstuff.org).
You can also contact us on [Twitter](http://twitter.com/growstufforg/) or
[Facebook](https://www.facebook.com/pages/Growstuff/1531133417099494).
[Facebook](https://www.facebook.com/pages/Growstuff/1531133417099494) or [Github](https://github.com/Growstuff/growstuff/issues)..

0
Rakefile Normal file → Executable file
View File

View File

@@ -10,12 +10,12 @@
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require leaflet
//= require leaflet.markercluster
//= require js-routes
//= require jquery
//= require jquery_ujs
//= require jquery-ui/autocomplete
//= require bootstrap-sprockets
//= require bootstrap-datepicker
//= require_tree .
// = require leaflet
// = require leaflet.markercluster
// = require js-routes
// = require jquery
// = require jquery_ujs
// = require jquery-ui/autocomplete
// = require bootstrap-sprockets
// = require bootstrap-datepicker
// = require_tree .

View File

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
// = require Chart.bundle
// = require chartkick

View File

@@ -0,0 +1,39 @@
jQuery ->
$('#add-sci_name-row').css("display", "inline-block")
$('#remove-sci_name-row').css("display", "inline-block")
$("#add-alt_name-row").css("display", "inline-block")
$("#remove-alt_name-row").css("display", "inline-block")
-$ ->
sci_template = "<div id='sci_template[INDEX]' class='template col-md-12'><div class='col-md-2'><label>Scientific name INDEX:</label></div><div class='col-md-8'><input name='sci_name[INDEX]' class='form-control', id='sci_name[INDEX]')'></input><span class='help-block'>Scientific name of crop.</span></div><div class='col-md-2'></div></div>"
sci_index = $('#scientific_names .template').length + 1
$('#add-sci_name-row').click ->
compiled_input = $(sci_template.split("INDEX").join(sci_index))
$('#scientific_names').append(compiled_input)
sci_index = sci_index + 1
$('#remove-sci_name-row').click ->
if (sci_index > 2)
sci_index = sci_index - 1
tmp = 'sci_template[' + sci_index + ']'
element = document.getElementById(tmp)
element.remove()
alt_template = "<div id='alt_template[INDEX]' class='template col-md-12'><div class='col-md-2'><label>Alternate name INDEX:</label></div><div class='col-md-8'><input name='alt_name[INDEX]' class='form-control', id='alt_name[INDEX]')'></input><span class='help-block'>Alternate name of crop.</span></div><div class='col-md-2'></div></div>"
alt_index = $('#alternate_names .template').length + 1
$('#add-alt_name-row').click ->
compiled_input = $(alt_template.split("INDEX").join(alt_index))
$('#alternate_names').append(compiled_input)
alt_index = alt_index + 1
$('#remove-alt_name-row').click ->
if (alt_index > 2)
alt_index = alt_index - 1
tmp = 'alt_template[' + alt_index + ']'
element = document.getElementById(tmp)
console.log("%s",tmp)
element.remove()

View File

@@ -1,35 +1,27 @@
if (document.getElementById("cropmap") !== null) {
mapbox_map_id = "<%= Rails.env == 'test' ? 0 : Growstuff::Application.config.mapbox_map_id %>";
mapbox_access_token = "<%= Rails.env == 'test' ? 0 : Growstuff::Application.config.mapbox_access_token %>";
mapbox_base_url = "http://a.tiles.mapbox.com/v4/" + mapbox_map_id + "/{z}/{x}/{y}.png?access_token=" + mapbox_access_token;
L.Icon.Default.imagePath = '/assets'
cropmap = L.map('cropmap').setView([0.0, -0.0], 2);
showCropMap(cropmap);
}
function showCropMap(cropmap) {
var mapbox_map_id = "<%= Rails.env == 'test' ? 0 : Growstuff::Application.config.mapbox_map_id %>";
var mapbox_access_token = "<%= Rails.env == 'test' ? 0 : Growstuff::Application.config.mapbox_access_token %>";
var mapbox_base_url = "http://a.tiles.mapbox.com/v4/" + mapbox_map_id + "/{z}/{x}/{y}.png?access_token=" + mapbox_access_token;
L.tileLayer(mapbox_base_url, {
attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors under <a href="http://www.openstreetmap.org/copyright">ODbL</a> | Map imagery &copy; <a href="http://mapbox.com">Mapbox</a>',
maxZoom: 18
}).addTo(cropmap);
markers = new L.MarkerClusterGroup({showCoverageOnHover: false, maxClusterRadius: 20 });
var markers = new L.MarkerClusterGroup({showCoverageOnHover: false, maxClusterRadius: 20 });
things_to_map = location.pathname + '.json';
var things_to_map = location.pathname + '.json';
$.getJSON(things_to_map, function(crop) {
$.each(crop.plantings, function(i, planting) {
owner = planting.owner;
var owner = planting.owner;
if (owner.latitude && owner.longitude) {
marker = new L.Marker(new L.LatLng(owner.latitude, owner.longitude));
var marker = new L.Marker(new L.LatLng(owner.latitude, owner.longitude));
planting_url = "/plantings/" + planting.id;
planting_link = "<a href='" + planting_url + "'>" + owner.login_name + "'s " + crop.name + "</a>";
var planting_url = "/plantings/" + planting.id;
var planting_link = "<a href='" + planting_url + "'>" + owner.login_name + "'s " + crop.name + "</a>";
where = "<p><i>" + owner.location + "</i></p>";
var where = "<p><i>" + owner.location + "</i></p>";
details = "<p>";
var details = "<p>";
if (planting.quantity) {
details = details + "Quantity: " + planting.quantity + "<br/>";
}
@@ -49,6 +41,17 @@ function showCropMap(cropmap) {
cropmap.addLayer(markers);
}
$('.btn.toggle.crop-hierarchy').click(function () {
$('.toggle.crop-hierarchy').toggleClass('hide');
});
$(document).ready(function() {
if (document.getElementById("cropmap") !== null) {
L.Icon.Default.imagePath = '/assets';
var cropmap = L.map('cropmap').setView([0.0, -0.0], 2);
showCropMap(cropmap);
}
$('.btn.toggle.crop-hierarchy').click(function () {
$('.toggle.crop-hierarchy').toggleClass('hide');
});
});

View File

@@ -0,0 +1,19 @@
# Clears the finished at date field when
# a seed is marked unfinished, and
# repopulates the field with a cached value
# marking unfinished is undone.
jQuery ->
previousValue = ''
$('#seed_finished').on('click', ->
finished = $('#seed_finished_at')
if @checked
if previousValue.length
date = previousValue
finished.val(date)
else
finished.trigger('focus')
else
previousValue = finished.val()
finished.val('')
)

View File

@@ -1,25 +1,24 @@
if (document.getElementById("membermap") !== null) {
mapbox_map_id = "<%= Rails.env == 'test' ? 0 : Growstuff::Application.config.mapbox_map_id %>";
mapbox_access_token = "<%= Rails.env == 'test' ? 0 : Growstuff::Application.config.mapbox_access_token %>";
mapbox_base_url = "http://a.tiles.mapbox.com/v4/" + mapbox_map_id + "/{z}/{x}/{y}.png?access_token=" + mapbox_access_token;
L.Icon.Default.imagePath = '/assets'
var mapbox_map_id = "<%= Rails.env == 'test' ? 0 : Growstuff::Application.config.mapbox_map_id %>";
var mapbox_access_token = "<%= Rails.env == 'test' ? 0 : Growstuff::Application.config.mapbox_access_token %>";
var mapbox_base_url = "http://a.tiles.mapbox.com/v4/" + mapbox_map_id + "/{z}/{x}/{y}.png?access_token=" + mapbox_access_token;
L.Icon.Default.imagePath = '/assets';
$.getJSON(location.pathname + '.json', function(member) {
if (member.latitude && member.longitude) {
membermap = L.map('membermap').setView([member.latitude, member.longitude], 4);
var membermap = L.map('membermap').setView([member.latitude, member.longitude], 4);
L.tileLayer(mapbox_base_url, {
attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors under <a href="http://www.openstreetmap.org/copyright">ODbL</a> | Map imagery &copy; <a href="http://mapbox.com">Mapbox</a>',
maxZoom: 18
}).addTo(membermap);
marker = new L.Marker(new L.LatLng(member.latitude, member.longitude));
var marker = new L.Marker(new L.LatLng(member.latitude, member.longitude));
member_url = "/members/" + member.slug;
member_link = "<a href='" + member_url + "'>" + member.login_name + "</a>";
var member_url = "/members/" + member.slug;
var member_link = "<a href='" + member_url + "'>" + member.login_name + "</a>";
where = "<p><i>" + member.location + "</i></p>";
var where = "<p><i>" + member.location + "</i></p>";
marker.bindPopup(member_link + where).openPopup();
marker.addTo(membermap);

View File

@@ -0,0 +1,18 @@
$(document).ready(function() {
$('.post-like').show();
$('.post-like').on('ajax:success', function(event, data) {
var likeControl = $('#post-' + data.id + ' .post-like');
$('#post-' + data.id + ' .like-count').text(data.description);
if (data.liked_by_member) {
likeControl.data('method', 'delete');
likeControl.attr('href', data.url);
likeControl.text('Unlike');
} else {
likeControl.data('method', 'post');
likeControl.attr('href', '/likes.json?post_id=' + data.id);
likeControl.text('Like');
}
});
});

View File

@@ -4,41 +4,3 @@
jQuery ->
$('.add-datepicker').datepicker('format' : 'yyyy-mm-dd')
$('#add-sci_name-row').css("display", "inline-block")
$('#remove-sci_name-row').css("display", "inline-block")
$("#add-alt_name-row").css("display", "inline-block")
$("#remove-alt_name-row").css("display", "inline-block")
$ ->
sci_template = "<div id='sci_template[INDEX]' class='template col-md-12'><div class='col-md-2'><label>Scientific name INDEX:</label></div><div class='col-md-8'><input name='sci_name[INDEX]' class='form-control', id='sci_name[INDEX]')'></input><span class='help-block'>Scientific name of crop.</span></div><div class='col-md-2'></div></div>"
sci_index = $('#scientific_names .template').length + 1
$('#add-sci_name-row').click ->
compiled_input = $(sci_template.split("INDEX").join(sci_index))
$('#scientific_names').append(compiled_input)
sci_index = sci_index + 1
$('#remove-sci_name-row').click ->
if (sci_index > 2)
sci_index = sci_index - 1
tmp = 'sci_template[' + sci_index + ']'
element = document.getElementById(tmp)
element.remove()
alt_template = "<div id='alt_template[INDEX]' class='template col-md-12'><div class='col-md-2'><label>Alternate name INDEX:</label></div><div class='col-md-8'><input name='alt_name[INDEX]' class='form-control', id='alt_name[INDEX]')'></input><span class='help-block'>Alternate name of crop.</span></div><div class='col-md-2'></div></div>"
alt_index = $('#alternate_names .template').length + 1
$('#add-alt_name-row').click ->
compiled_input = $(alt_template.split("INDEX").join(alt_index))
$('#alternate_names').append(compiled_input)
alt_index = alt_index + 1
$('#remove-alt_name-row').click ->
if (alt_index > 2)
alt_index = alt_index - 1
tmp = 'alt_template[' + alt_index + ']'
element = document.getElementById(tmp)
console.log("%s",tmp)
element.remove()

View File

@@ -2,6 +2,7 @@
@import 'bootstrap-datepicker'
@import 'leaflet'
@import 'leaflet.markercluster'
@import 'leaflet.markercluster.default'
@import 'custom_bootstrap/custom_bootstrap'
@import 'overrides'
@import 'graphs'
@import 'predictions'

View File

@@ -1 +1 @@
.btn:focus{outline:dotted 2px #000}div.active:focus{outline:dotted 1px #000}a:focus{outline:dotted 1px #000}.close:hover,.close:focus{outline:dotted 1px #000}.nav>li>a:hover,.nav>li>a:focus{outline:dotted 1px #000}.carousel-inner>.item{position:absolute;top:-999999em;display:block;-moz-transition:ease-in-out 0.6s left;-o-transition:ease-in-out 0.6s left;-webkit-transition:ease-in-out 0.6s left;transition:ease-in-out 0.6s left}.carousel-inner>.active{top:0}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{position:relative}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.alert-success{color:#2d4821}.alert-info{color:#214c62}.alert-warning{color:#6c4a00;background-color:#f9f1c6}.alert-danger{color:#d2322d}.alert-danger:hover{color:#a82824}
.btn:focus{outline:dotted 2px #000}div.active:focus{outline:dotted 1px #000}a:focus{outline:dotted 1px #000}.close:hover,.close:focus{outline:dotted 1px #000}.nav>li>a:hover,.nav>li>a:focus{outline:dotted 1px #000}.carousel-indicators li,.carousel-indicators li.active{height:18px;width:18px;border-width:2px;position:relative;box-shadow:0px 0px 0px 1px #808080}.carousel-indicators.active li{background-color:rgba(100,149,253,0.6)}.carousel-indicators.active li.active{background-color:white}.carousel-tablist-highlight{display:block;position:absolute;outline:2px solid transparent;background-color:transparent;box-shadow:0px 0px 0px 1px transparent}.carousel-tablist-highlight.focus{outline:2px solid #6495ED;background-color:rgba(0,0,0,0.4)}a.carousel-control:focus{outline:2px solid #6495ED;background-image:linear-gradient(to right, transparent 0px, rgba(0,0,0,0.5) 100%);box-shadow:0px 0px 0px 1px #000000}.carousel-pause-button{position:absolute;top:-30em;left:-300em;display:block}.carousel-pause-button.focus{top:0.5em;left:0.5em}.carousel:hover .carousel-caption,.carousel.contrast .carousel-caption{background-color:rgba(0,0,0,0.5);z-index:10}.alert-success{color:#2d4821}.alert-info{color:#214c62}.alert-warning{color:#6c4a00;background-color:#f9f1c6}.alert-danger{color:#d2322d}.alert-danger:hover{color:#a82824}

View File

@@ -1,7 +1,7 @@
// Use this file to override Twitter Bootstrap variables or define own variables.
// Import original variables so they can be used in overrides
//@import 'bootstrap/variables.scss'
@import 'bootstrap/variables.scss'
// Base colours
@@ -10,13 +10,15 @@ $brown: #413f3b
$green: #5f8e43
$blue: #2f4365
$red: #8e4d43
$orange: #b2685c
$red: #ff4d43
$orange: #ffa500
$yellow: #b2935c
$white: #ffffff
$body-bg: $beige
$text-color: $brown
$link-color: $green
$graph-hover: $orange
$brand-primary: $green

View File

@@ -0,0 +1,2 @@
.bar rect:hover
fill: $graph-hover

View File

@@ -3,37 +3,22 @@
@import "custom_bootstrap/variables"
// this padding needs to be done before the responsive stuff is imported
body
// modifying this for our promotional banner. can be replaced after if
// needed.
// padding-top: $navbar-height + 15px
padding-top: $navbar-height
//@import "bootstrap/responsive"
// Font Awesome
@import "font-awesome-sprockets"
@import "font-awesome"
// Glyphicons
//@import "bootstrap/glyphicons"
.list-inline > li.first
padding-left: 0px
.activity-list
list-style-type: none
padding: 0
h2
font-size: 150%
//#subtitle
// color: lighten($brown, 30%)
// font-style: italic
// font-weight: normal
// margin-top: 0px
// padding-left: 1em
// padding-top: 0px
h3
font-size: 120%
@@ -53,6 +38,21 @@ h3
max-width: 100%
height: auto
.profile-sidebar
margin-top: -5rem
.avatar
border-radius: 50%
border-radius: 50%
z-index: 2
position: relative
.profile-activity
background: white
padding: 2em
margin-top: 2em
.container
width: 100%
.sidebar
border-left: 1px solid darken($beige, 10%)
margin-left: -1px
@@ -92,10 +92,16 @@ p.stats
display: flex
flex: none
flex-wrap: wrap
justify-content: space-between
.card-row
display: grid
grid-template-columns: 50% 50%
grid-gap: 25px
grid-row-gap: 5px
.member-thumbnail
padding: .25em
margin: 1em
div
width: 5em
@@ -106,37 +112,47 @@ p.stats
padding-left: 1em
width: 15em
.planting
dl.planting-attributes
font-size: 85%
.progress
border-radius: 0
.badge-super-late
background-color: $red
.badge-harvest
background-color: $blue
.planting-super-late
.planting-late
background-color: $beige
.planting
.planting-badges
position: absolute
.planting-thumbnail
padding: 0
border: 1px solid darken($beige, 10%)
border-radius: 4px
.planting-actions
top: -8em
.planting-name
position: relative
top: -1em
dl.planting-attributes
dt
text-align: left
dd
margin-left: auto
@media (min-width: $screen-md-min)
.planting-thumbnail
dl.planting-attributes
font-size: 85%
width: 100%
dt
text-align: left
width: 80px
dd
padding-left: 80px
margin-left: auto
.navbar .navbar-form
width: 250px
.layout-actions
width: 100%
#placesmap, #cropmap
height: 500px
#membermap
height: 250px
z-index: 0
.location-not-set
height: 250px
@@ -183,6 +199,8 @@ p.stats
border: none
text-align: center
margin-bottom: 1.5em
max-width: 160px
max-height: 200px
.member-thumbnail
text-align: left
@@ -229,6 +247,9 @@ li.crop-hierarchy
.navbar-bottom
margin: 40px 0px 0px 0px !important
.post-actions
margin-bottom: 1rem
// footer
footer
#footer1, #footer2, #footer3
@@ -258,6 +279,7 @@ footer
#maincontainer
min-height: 80%
padding: 50px
html, body
height: 100%
@@ -276,24 +298,6 @@ html, body
a
font-weight: 800
// Overrides applying only to mobile view. This must be at the end of the overrides file.
@media only screen and (max-width: 767px)
.sidebar
margin-left: 0
border-left: none
padding-left: 0
#map
height: 300px
.navbar .nav > li
display: block
.navbar .navbar-form
width: 185px
padding-left: 0
padding-right: 0
/* override "info" alert boxes to be green, not blue, on Growstuff */
$state-info-text: darken($green, 10%)
@@ -319,9 +323,6 @@ $state-success-bg: lighten($green, 50%)
text-overflow: ellipsis
overflow: hidden
#gardens_panel_body
height: 20em
.form-group.required .control-label:before
content: "* "
color: red
@@ -336,3 +337,62 @@ $state-success-bg: lighten($green, 50%)
overflow: hidden
text-overflow: ellipsis
white-space: nowrap
ul.plantings
list-style-type: none
ul.thumbnail-buttons
list-style-type: none
text-align: right
.hover-wrapper .text
position: absolute
visibility: hidden
.hover-wrapper:hover .text
visibility: visible
.homepage-listing
padding-bottom: 6px
@media (min-width: $screen-md-min)
.planting-thumbnail
dl.planting-attributes
width: 100%
dt
text-align: left
width: 120px
dd
padding-left: 120px
margin-left: auto
.navbar .navbar-form
width: 250px
// Overrides applying only to mobile view. This must be at the end of the overrides file.
@media only screen and (max-width: 767px)
.sidebar
margin-left: 0
border-left: none
padding-left: 0
#map
height: 300px
.navbar .nav > li
display: block
.navbar .navbar-form
width: 185px
padding-left: 0
padding-right: 0
.homepage
.thumbnail
height: 180px
.seed-thumbnail
height: 220px
#maincontainer
padding: 10px

View File

@@ -0,0 +1,11 @@
.predictions
.metric
height: 180px
border: 1px solid lighten($green, 20%)
background: $white
margin: 4px
strong
font-size: 250%
font-align: center
h3

View File

@@ -1,38 +0,0 @@
module Growstuff
module Constants
class PhotoModels
PLANTING = { type: 'planting', class: 'Planting', relation: 'plantings' }.freeze
HARVEST = { type: 'harvest', class: 'Harvest', relation: 'harvests' }.freeze
GARDEN = { type: 'garden', class: 'Garden', relation: 'gardens' }.freeze
SEED = { type: 'seed', class: 'Seed', relation: 'seeds' }.freeze
ALL = [PLANTING, HARVEST, GARDEN, SEED].freeze
def self.types
ALL.map do |model|
model[:type]
end
end
def self.relations
ALL.map do |model|
model[:relation]
end
end
def self.get_relation(object, type)
relation = ALL.select do |model|
model[:type] == type
end[0][:relation]
object.send(relation)
end
def self.get_item(type)
class_name = ALL.select do |model|
model[:type] == type
end[0][:class]
class_name.constantize
end
end
end
end

View File

@@ -1,72 +0,0 @@
class AccountTypesController < ApplicationController
before_action :authenticate_member!
load_and_authorize_resource
# GET /account_types
def index
@account_types = AccountType.all
respond_to do |format|
format.html # index.html.erb
end
end
# GET /account_types/1
def show
respond_to do |format|
format.html # show.html.erb
end
end
# GET /account_types/new
def new
@account_type = AccountType.new
respond_to do |format|
format.html # new.html.erb
end
end
# GET /account_types/1/edit
def edit
end
# POST /account_types
def create
@account_type = AccountType.new(account_type_params)
respond_to do |format|
if @account_type.save
format.html { redirect_to @account_type, notice: I18n.t('account_types.created') }
else
format.html { render action: "new" }
end
end
end
# PUT /account_types/1
def update
respond_to do |format|
if @account_type.update(account_type_params)
format.html { redirect_to @account_type, notice: I18n.t('account_types.updated') }
else
format.html { render action: "edit" }
end
end
end
# DELETE /account_types/1
def destroy
@account_type.destroy
respond_to do |format|
format.html { redirect_to account_types_url, notice: I18n.t('account_types.deleted') }
end
end
private
def account_type_params
params.require(:account_type).permit(:is_paid, :is_permanent_paid, :name)
end
end

View File

@@ -1,41 +0,0 @@
class AccountsController < ApplicationController
before_action :authenticate_member!
load_and_authorize_resource
# GET /accounts
def index
@accounts = Account.all
respond_to do |format|
format.html # index.html.erb
end
end
# GET /accounts/1
def show
respond_to do |format|
format.html # show.html.erb
end
end
# GET /accounts/1/edit
def edit
end
# PUT /accounts/1
def update
respond_to do |format|
if @account.update(params[:account])
format.html { redirect_to @account, notice: I18n.t('account.update') }
else
format.html { render action: "edit" }
end
end
end
private
def account_params
params.require(:account).permit(:account_type_id, :member_id, :paid_until)
end
end

View File

@@ -0,0 +1,14 @@
module Admin
class MembersController < ApplicationController
before_action :auth!
def index
@members = Member.order(:login_name).paginate(page: params[:page])
end
private
def auth!
authorize! :manage, :all
end
end
end

View File

@@ -1,21 +0,0 @@
class Admin::OrdersController < ApplicationController
def index
authorize! :manage, :all
respond_to do |format|
format.html # index.html.haml
end
end
def search
authorize! :manage, :all
@orders = Order.search(by: params[:search_by], for: params[:search_text])
if @orders.empty?
flash[:alert] = "Couldn't find order with #{params[:search_by]} = #{params[:search_text]}"
end
respond_to do |format|
format.html # index.html.haml
end
end
end

View File

@@ -1,16 +1,12 @@
class AdminController < ApplicationController
respond_to :html
def index
authorize! :manage, :all
respond_to do |format|
format.html # index.html.haml
end
end
def newsletter
authorize! :manage, :all
@members = Member.confirmed.wants_newsletter.all
respond_to do |format|
format.html # index.html.haml
end
respond_with @members
end
end

View File

@@ -1,16 +1,14 @@
class AlternateNamesController < ApplicationController
before_action :authenticate_member!, except: [:index, :show]
before_action :authenticate_member!, except: %i(index show)
load_and_authorize_resource
respond_to :html, :json
responders :flash
# GET /alternate_names
# GET /alternate_names.json
def index
@alternate_names = AlternateName.all
respond_to do |format|
format.html # index.html.haml
format.json { render json: @alternate_names }
end
@alternate_names = AlternateName.all.order(:name)
respond_with(@alternate_names)
end
# GET /alternate_names/new
@@ -18,16 +16,10 @@ class AlternateNamesController < ApplicationController
def new
@alternate_name = AlternateName.new
@crop = Crop.find_or_initialize_by(id: params[:crop_id])
respond_to do |format|
format.html # new.html.haml
format.json { render json: @alternate_name }
end
end
# GET /alternate_names/1/edit
def edit
end
def edit; end
# POST /alternate_names
# POST /alternate_names.json
@@ -35,28 +27,20 @@ class AlternateNamesController < ApplicationController
params[:alternate_name][:creator_id] = current_member.id
@alternate_name = AlternateName.new(alternate_name_params)
respond_to do |format|
if @alternate_name.save
format.html { redirect_to @alternate_name.crop, notice: 'Alternate name was successfully created.' }
format.json { render json: @alternate_name, status: :created, location: @alternate_name }
else
format.html { render action: "new" }
format.json { render json: @alternate_name.errors, status: :unprocessable_entity }
end
if @alternate_name.save
redirect_to @alternate_name.crop, notice: 'Alternate name was successfully created.'
else
render action: "new"
end
end
# PUT /alternate_names/1
# PUT /alternate_names/1.json
def update
respond_to do |format|
if @alternate_name.update(alternate_name_params)
format.html { redirect_to @alternate_name.crop, notice: 'Alternate name was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @alternate_name.errors, status: :unprocessable_entity }
end
if @alternate_name.update(alternate_name_params)
redirect_to @alternate_name.crop, notice: 'Alternate name was successfully updated.'
else
render action: "edit"
end
end
@@ -65,13 +49,7 @@ class AlternateNamesController < ApplicationController
def destroy
@crop = @alternate_name.crop
@alternate_name.destroy
respond_to do |format|
format.html {
redirect_to @crop, notice: 'Alternate name was successfully deleted.'
}
format.json { head :no_content }
end
redirect_to @crop, notice: 'Alternate name was successfully deleted.'
end
private

View File

@@ -0,0 +1,7 @@
module Api
module V1
class BaseController < JSONAPI::ResourceController
abstract
end
end
end

View File

@@ -0,0 +1,6 @@
module Api
module V1
class CropsController < BaseController
end
end
end

View File

@@ -0,0 +1,6 @@
module Api
module V1
class GardensController < BaseController
end
end
end

View File

@@ -0,0 +1,6 @@
module Api
module V1
class HarvestsController < BaseController
end
end
end

View File

@@ -0,0 +1,6 @@
module Api
module V1
class MembersController < BaseController
end
end
end

View File

@@ -0,0 +1,6 @@
module Api
module V1
class PhotosController < BaseController
end
end
end

View File

@@ -0,0 +1,6 @@
module Api
module V1
class PlantingsController < BaseController
end
end
end

View File

@@ -0,0 +1,6 @@
module Api
module V1
class SeedsController < BaseController
end
end
end

View File

@@ -7,13 +7,12 @@ class ApplicationController < ActionController::Base
before_action :set_locale
def store_location
if (request.path != "/members/sign_in" &&
request.path != "/members/sign_up" &&
request.path != "/members/password/new" &&
request.path != "/members/password/edit" &&
request.path != "/members/confirmation" &&
request.path != "/members/sign_out" &&
!request.xhr?)
unless request.path.in?(["/members/sign_in",
"/members/sign_up",
"/members/password/new",
"/members/password/edit",
"/members/confirmation",
"/members/sign_out"]) || request.xhr?
store_location_for(:member, request.fullpath)
end
end
@@ -60,8 +59,7 @@ class ApplicationController < ActionController::Base
# profile stuff
:bio, :location, :latitude, :longitude,
# email settings
:show_email, :newsletter, :send_notification_email, :send_planting_reminder
)
:show_email, :newsletter, :send_notification_email, :send_planting_reminder)
end
devise_parameter_sanitizer.permit(:account_update) do |member|
@@ -74,8 +72,11 @@ class ApplicationController < ActionController::Base
# email settings
:show_email, :newsletter, :send_notification_email, :send_planting_reminder,
# update password
:current_password
)
:current_password)
end
end
def expire_homepage
expire_fragment("homepage_stats")
end
end

View File

@@ -1,3 +1,4 @@
require './lib/actions/oauth_signup_action'
class AuthenticationsController < ApplicationController
before_action :authenticate_member!
load_and_authorize_resource
@@ -18,7 +19,8 @@ class AuthenticationsController < ApplicationController
.find_or_create_by(
provider: auth['provider'],
uid: auth['uid'],
name: name)
name: name
)
flash[:notice] = "Authentication successful."
else
@@ -29,7 +31,6 @@ class AuthenticationsController < ApplicationController
# DELETE /authentications/1
def destroy
@authentication = Authentication.find(params[:id])
@authentication.destroy
respond_to do |format|

View File

@@ -0,0 +1,30 @@
module Charts
class CropsController < ApplicationController
respond_to :json
def sunniness
pie_chart_query 'sunniness'
end
def planted_from
pie_chart_query 'planted_from'
end
def harvested_for
@crop = Crop.find(params[:crop_id])
render json: Harvest.joins(:plant_part)
.where(crop: @crop)
.group("plant_parts.name").count(:id)
end
private
def pie_chart_query(field)
@crop = Crop.find(params[:crop_id])
render json: Planting.where(crop: @crop)
.where.not(field.to_sym => nil)
.where.not(field.to_sym => '')
.group(field.to_sym).count(:id)
end
end
end

View File

@@ -0,0 +1,16 @@
module Charts
class GardensController < ApplicationController
respond_to :json
def timeline
@data = []
@garden = Garden.find(params[:garden_id])
@garden.plantings.where.not(planted_at: nil)
.order(finished_at: :desc).each do |p|
# use finished_at if we have it, otherwise use predictions
finish = p.finished_at.presence || p.finish_predicted_at
@data << [p.crop.name, p.planted_at, finish] if finish.present?
end
render json: @data
end
end
end

View File

@@ -1,93 +1,53 @@
class CommentsController < ApplicationController
before_action :authenticate_member!, except: [:index, :show]
before_action :authenticate_member!, except: %i(index show)
load_and_authorize_resource
respond_to :html, :json
respond_to :rss, only: :index
responders :flash
# GET /comments
# GET /comments.json
def index
@comments = Comment.paginate(page: params[:page])
respond_to do |format|
format.html # index.html.erb
format.json { render json: @comments }
format.rss { render layout: false }
end
@comments = Comment.order(created_at: :desc).paginate(page: params[:page])
respond_with(@comments)
end
# GET /comments/new
# GET /comments/new.json
def new
@comment = Comment.new
@post = Post.find_by(id: params[:post_id])
if @post
@comments = @post.comments
respond_to do |format|
format.html # new.html.erb
format.json { render json: @comment }
end
respond_with(@comments)
else
redirect_to request.referer || root_url,
alert: "Can't post a comment on a non-existent post"
redirect_to(request.referer || root_url,
alert: "Can't post a comment on a non-existent post")
end
end
# GET /comments/1/edit
def edit
@comments = @comment.post.comments
end
# POST /comments
# POST /comments.json
def create
params[:comment][:author_id] = current_member.id
@comment = Comment.new(comment_params)
respond_to do |format|
if @comment.save
format.html { redirect_to @comment.post, notice: "Comment was successfully created." }
format.json { render json: @comment, status: :created, location: @comment }
else
format.html { render action: "new" }
format.json { render json: @comment.errors, status: :unprocessable_entity }
end
end
@comment.author = current_member
@comment.save
respond_with @comment, location: @comment.post
end
# PUT /comments/1
# PUT /comments/1.json
def update
# you should never be able to change the author or post when
# updating
params[:comment].delete("post_id")
params[:comment].delete("author_id")
respond_to do |format|
if @comment.update(comment_params)
format.html { redirect_to @comment.post, notice: 'Comment was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @comment.errors, status: :unprocessable_entity }
end
end
@comment.update(body: comment_params['body'])
respond_with @comment, location: @comment.post
end
# DELETE /comments/1
# DELETE /comments/1.json
def destroy
@post = @comment.post
@comment.destroy
respond_to do |format|
format.html { redirect_to @post }
format.json { head :no_content }
end
respond_with(@post)
end
private
def comment_params
params.require(:comment).permit(:author_id, :body, :post_id)
params.require(:comment).permit(:body, :post_id)
end
end

View File

@@ -1,37 +1,25 @@
require 'will_paginate/array'
class CropsController < ApplicationController
before_action :authenticate_member!, except: [:index, :hierarchy, :search, :show]
before_action :authenticate_member!, except: %i(index hierarchy search show)
load_and_authorize_resource
skip_authorize_resource only: [:hierarchy, :search]
skip_authorize_resource only: %i(hierarchy search)
respond_to :html, :json, :rss, :csv
responders :flash
# GET /crops
# GET /crops.json
def index
@sort = params[:sort]
@crops = if @sort == 'alpha'
Crop.includes(:scientific_names, plantings: :photos)
else
popular_crops
end
@paginated_crops = @crops.approved.paginate(page: params[:page])
respond_to do |format|
format.html
format.json { render json: @crops }
format.rss do
@crops = Crop.recent.includes(:scientific_names, :creator)
render rss: @crops
end
format.csv do
@filename = "Growstuff-Crops-#{Time.zone.now.to_s(:number)}.csv"
@crops = Crop.includes(:scientific_names, :plantings, :seeds, :creator)
render csv: @crops
end
end
@crops = crops
@num_requested_crops = requested_crops.size if current_member
@filename = filename
respond_with @crops
end
def requested
@requested = requested_crops.paginate(page: params[:page])
respond_with @requested
end
# GET /crops/wrangle
def wrangle
@approval_status = params[:approval_status]
@crops = case @approval_status
@@ -41,176 +29,124 @@ class CropsController < ApplicationController
Crop.rejected
else
Crop.recent
end
@crops = @crops.paginate(page: params[:page])
end.paginate(page: params[:page])
@crop_wranglers = Role.crop_wranglers
respond_to do |format|
format.html
end
respond_with @crops
end
# GET /crops/hierarchy
def hierarchy
@crops = Crop.toplevel
respond_to do |format|
format.html
end
respond_with @crops
end
# GET /crops/search
def search
@term = params[:term]
@matches = Crop.search(@term)
@paginated_matches = @matches.paginate(page: params[:page])
respond_to do |format|
format.html
format.json { render json: @matches }
end
respond_with @matches
end
# GET /crops/1
# GET /crops/1.json
def show
@crop = Crop.includes(:scientific_names, plantings: :photos).find(params[:id])
@posts = @crop.posts.paginate(page: params[:page])
@posts = @crop.posts.order(created_at: :desc).paginate(page: params[:page])
# respond_with(@crop)
respond_to do |format|
format.html # show.html.haml
format.json do
# TODO RABL or similar one day to avoid presentation logic here
owner_structure = {
owner: {
only: [:id, :login_name, :location, :latitude, :longitude]
}
}
render json: @crop.to_json(include: {
plantings: {
include: owner_structure
}
})
end
format.html
format.json { render json: @crop.to_json(crop_json_fields) }
end
end
# GET /crops/new
# GET /crops/new.json
def new
@crop = Crop.new
@crop.alternate_names.build
@crop.scientific_names.build
respond_to do |format|
format.html # new.html.haml
format.json { render json: @crop }
end
respond_with @crop
end
# GET /crops/1/edit
def edit
@crop.alternate_names.build if @crop.alternate_names.blank?
@crop.scientific_names.build if @crop.scientific_names.blank?
end
# POST /crops
# POST /crops.json
def create
@crop = Crop.new(crop_params)
if current_member.role? :crop_wrangler
@crop.creator = current_member
success_msg = "Crop was successfully created."
else
@crop.requester = current_member
@crop.approval_status = "pending"
success_msg = "Crop was successfully requested."
end
respond_to do |format|
if @crop.save
params[:alt_name].each do |index, value|
create_name('alternate', value)
end
params[:sci_name].each do |index, value|
create_name('scientific', value)
end
unless current_member.role? :crop_wrangler
Role.crop_wranglers.each do |w|
Notifier.new_crop_request(w, @crop).deliver_later!
end
end
notify_wranglers if Crop.transaction { @crop.save && save_crop_names }
format.html { redirect_to @crop, notice: success_msg }
format.json { render json: @crop, status: :created, location: @crop }
else
format.html { render action: "new" }
format.json { render json: @crop.errors, status: :unprocessable_entity }
end
end
respond_with @crop
end
# PUT /crops/1
# PUT /crops/1.json
def update
previous_status = @crop.approval_status
@crop.creator = current_member if previous_status == "pending"
respond_to do |format|
if @crop.update(crop_params)
recreate_names('alt_name', 'alternate')
recreate_names('sci_name', 'scientific')
if @crop.update(crop_params)
recreate_names('alt_name', 'alternate')
recreate_names('sci_name', 'scientific')
if previous_status == "pending"
requester = @crop.requester
new_status = @crop.approval_status
Notifier.crop_request_approved(requester, @crop).deliver_later! if new_status == "approved"
Notifier.crop_request_rejected(requester, @crop).deliver_later! if new_status == "rejected"
end
format.html { redirect_to @crop, notice: 'Crop was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @crop.errors, status: :unprocessable_entity }
end
notifier.deliver_now! if previous_status == "pending"
end
respond_with @crop
end
# DELETE /crops/1
# DELETE /crops/1.json
def destroy
@crop.destroy
respond_to do |format|
format.html { redirect_to crops_url }
format.json { head :no_content }
end
respond_with @crop
end
private
def popular_crops
Crop.popular.includes(:scientific_names, plantings: :photos)
def notifier
case @crop.approval_status
when "approved"
Notifier.crop_request_approved(@crop.requester, @crop)
when "rejected"
Notifier.crop_request_rejected(@crop.requester, @crop)
end
end
def save_crop_names
params[:alt_name]&.values&.each do |value|
create_name!('alternate', value) unless value.empty?
end
params[:sci_name]&.values&.each do |value|
create_name!('scientific', value) unless value.empty?
end
end
def notify_wranglers
return if current_member.role? :crop_wrangler
Role.crop_wranglers.each do |w|
Notifier.new_crop_request(w, @crop).deliver_now!
end
end
def recreate_names(param_name, name_type)
return unless params[param_name].present?
return if params[param_name].blank?
destroy_names(name_type)
params[param_name].each do |index, value|
create_name(name_type, value)
params[param_name].each do |_i, value|
create_name!(name_type, value) unless value.empty?
end
end
def destroy_names(name_type)
@crop.send("#{name_type}_names").each do |alt_name|
alt_name.destroy
end
@crop.send("#{name_type}_names").each(&:destroy)
end
def create_name(name_type, value)
@crop.send("#{name_type}_names").create(name: value, creator_id: current_member.id)
def create_name!(name_type, value)
@crop.send("#{name_type}_names").create!(name: value, creator_id: current_member.id)
end
def crop_params
@@ -218,11 +154,41 @@ class CropsController < ApplicationController
:name,
:parent_id,
:creator_id,
:perennial,
:approval_status,
:request_notes,
:reason_for_rejection,
:rejection_notes, scientific_names_attributes: [:scientific_name,
:_destroy,
:id])
:rejection_notes,
scientific_names_attributes: %i(scientific_name
_destroy
id))
end
def filename
"Growstuff-Crops-#{Time.zone.now.to_s(:number)}.csv"
end
def crop_json_fields
{
include: {
plantings: {
include: {
owner: { only: %i(id login_name location latitude longitude) }
}
},
scientific_names: { only: [:name] },
alternate_names: { only: [:name] }
}
}
end
def crops
q = Crop.approved.includes(:scientific_names, plantings: :photos)
q = q.popular unless @sort == 'alpha'
q.order("LOWER(crops.name)").includes(:photos).paginate(page: params[:page])
end
def requested_crops
current_member.requested_crops.pending_approval
end
end

View File

@@ -1,86 +1,51 @@
class ForumsController < ApplicationController
load_and_authorize_resource
respond_to :html, :json
# GET /forums
# GET /forums.json
def index
@forums = Forum.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @forums }
end
@forums = Forum.all.order(:name)
respond_with(@forums)
end
# GET /forums/1
# GET /forums/1.json
def show
@forum = Forum.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @forum }
end
respond_with(@forum)
end
# GET /forums/new
# GET /forums/new.json
def new
@forum = Forum.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @forum }
end
respond_with(@forum)
end
# GET /forums/1/edit
def edit
@forum = Forum.find(params[:id])
end
def edit; end
# POST /forums
# POST /forums.json
def create
@forum = Forum.new(forum_params)
respond_to do |format|
if @forum.save
format.html { redirect_to @forum, notice: 'Forum was successfully created.' }
format.json { render json: @forum, status: :created, location: @forum }
else
format.html { render action: "new" }
format.json { render json: @forum.errors, status: :unprocessable_entity }
end
end
flash[:notice] = 'Forum was successfully created.' if @forum.save
respond_with(@forum)
end
# PUT /forums/1
# PUT /forums/1.json
def update
@forum = Forum.find(params[:id])
respond_to do |format|
if @forum.update(forum_params)
format.html { redirect_to @forum, notice: 'Forum was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @forum.errors, status: :unprocessable_entity }
end
end
flash[:notice] = 'Forum was successfully updated.' if @forum.update(forum_params)
respond_with(@forum)
end
# DELETE /forums/1
# DELETE /forums/1.json
def destroy
@forum = Forum.find(params[:id])
@forum.destroy
respond_to do |format|
format.html { redirect_to forums_url, notice: 'Forum was successfully deleted' }
format.json { head :no_content }
end
flash[:notice] = 'Forum was successfully deleted'
redirect_to forums_url
end
private

View File

@@ -1,96 +1,73 @@
class GardensController < ApplicationController
before_action :authenticate_member!, except: [:index, :show]
before_action :authenticate_member!, except: %i(index show)
after_action :expire_homepage, only: %i(create delete)
load_and_authorize_resource
respond_to :html, :json
# GET /gardens
# GET /gardens.json
def index
@owner = Member.find_by(slug: params[:owner])
@gardens = if @owner
@owner.gardens.paginate(page: params[:page])
else
Garden.paginate(page: params[:page])
end
respond_to do |format|
format.html # index.html.erb
format.json { render json: @gardens }
end
@show_all = params[:all] == '1'
@gardens = gardens
respond_with(@gardens)
end
# GET /gardens/1
# GET /gardens/1.json
def show
respond_to do |format|
format.html # show.html.erb
format.json { render json: @garden }
end
@current_plantings = @garden.plantings.current
.includes(:crop, :owner)
.order(planted_at: :desc)
@finished_plantings = @garden.plantings.finished
.includes(:crop)
.order(finished_at: :desc)
respond_with(@garden)
end
# GET /gardens/new
# GET /gardens/new.json
def new
@garden = Garden.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @garden }
end
respond_with(@garden)
end
# GET /gardens/1/edit
def edit
end
def edit; end
# POST /gardens
# POST /gardens.json
def create
@garden.owner_id = current_member.id
respond_to do |format|
if @garden.save
format.html { redirect_to @garden, notice: I18n.t('gardens.created') }
format.json { render json: @garden, status: :created, location: @garden }
expire_fragment("homepage_stats")
else
format.html { render action: "new" }
format.json { render json: @garden.errors, status: :unprocessable_entity }
end
end
flash[:notice] = I18n.t('gardens.created') if @garden.save
respond_with(@garden)
end
# PUT /gardens/1
# PUT /gardens/1.json
def update
respond_to do |format|
if @garden.update(garden_params)
format.html { redirect_to @garden, notice: I18n.t('gardens.updated') }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @garden.errors, status: :unprocessable_entity }
end
end
flash[:notice] = I18n.t('gardens.updated') if @garden.update(garden_params)
respond_with(@garden)
end
# DELETE /gardens/1
# DELETE /gardens/1.json
def destroy
@garden.destroy
expire_fragment("homepage_stats")
respond_to do |format|
format.html do
redirect_to gardens_by_owner_path(owner: @garden.owner), notice: I18n.t('gardens.deleted')
end
format.json { head :no_content }
end
flash[:notice] = I18n.t('gardens.deleted')
redirect_to(gardens_by_owner_path(owner: @garden.owner))
end
private
def garden_params
params.require(:garden).permit(:name, :slug, :owner_id, :description, :active,
params.require(:garden).permit(:name, :slug, :description, :active,
:location, :latitude, :longitude, :area, :area_unit)
end
def gardens
g = @owner ? @owner.gardens : Garden.all
g = g.active unless @show_all
g.joins(:owner).order(:name).paginate(page: params[:page])
end
end

View File

@@ -1,94 +1,53 @@
class HarvestsController < ApplicationController
before_action :authenticate_member!, except: [:index, :show]
before_action :authenticate_member!, except: %i(index show)
after_action :update_crop_medians, only: %i(create update destroy)
load_and_authorize_resource
respond_to :html, :json
respond_to :csv, :rss, only: :index
responders :flash
# GET /harvests
# GET /harvests.json
def index
@owner = Member.find_by(slug: params[:owner])
@crop = Crop.find_by(slug: params[:crop])
@harvests = if @owner
@owner.harvests.includes(:owner, :crop)
elsif @crop
@crop.harvests.includes(:owner, :crop)
else
Harvest.includes(:owner, :crop)
end
@owner = Member.find_by(slug: params[:owner]) if params[:owner]
@crop = Crop.find_by(slug: params[:crop]) if params[:crop]
@planting = Planting.find_by(slug: params[:planting_id]) if params[:planting_id]
respond_to do |format|
format.html { @harvests = @harvests.paginate(page: params[:page]) }
format.json { render json: @harvests }
format.csv do
specifics = (@owner ? "#{@owner.login_name}-" : @crop ? "#{@crop.name}-" : nil)
@filename = "Growstuff-#{specifics}Harvests-#{Time.zone.now.to_s(:number)}.csv"
render csv: @harvests
end
end
@harvests = harvests
@filename = csv_filename
respond_with(@harvests)
end
def show
@planting = @harvest.planting if @harvest.planting_id
@matching_plantings = matching_plantings if @harvest.owner == current_member
@photos = @harvest.photos.order(created_at: :desc).paginate(page: params[:page])
respond_with(@harvest)
end
# GET /harvests/new
# GET /harvests/new.json
def new
@harvest = Harvest.new('harvested_at' => Date.today)
@harvest = Harvest.new(harvested_at: Time.zone.today)
@planting = Planting.find_by(slug: params[:planting_id]) if params[:planting_id]
# using find_by_id here because it returns nil, unlike find
@crop = Crop.find_or_initialize_by(id: params[:crop_id])
respond_to do |format|
format.html # new.html.erb
format.json { render json: @harvest }
end
@crop = Crop.find_by(id: params[:crop_id])
respond_with(@harvest)
end
# GET /harvests/1/edit
def edit
@planting = @harvest.planting if @harvest.planting_id
end
# POST /harvests
# POST /harvests.json
def create
@harvest.crop_id = @harvest.planting.crop_id if @harvest.planting_id
respond_to do |format|
if @harvest.save
format.html { redirect_to @harvest, notice: I18n.t('harvests.created') }
format.json { render json: @harvest, status: :created, location: @harvest }
else
format.html { render action: "new" }
format.json { render json: @harvest.errors, status: :unprocessable_entity }
end
end
@harvest.harvested_at = Time.zone.now if @harvest.harvested_at.blank?
@harvest.save
respond_with(@harvest)
end
# PUT /harvests/1
# PUT /harvests/1.json
def update
respond_to do |format|
if @harvest.update(harvest_params)
format.html { redirect_to @harvest, notice: I18n.t('harvests.updated') }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @harvest.errors, status: :unprocessable_entity }
end
end
@harvest.update(harvest_params)
respond_with(@harvest)
end
# DELETE /harvests/1
# DELETE /harvests/1.json
def destroy
@harvest.destroy
respond_to do |format|
format.html { redirect_to harvests_url }
format.json { head :no_content }
end
respond_with(@harvest)
end
private
@@ -100,4 +59,40 @@ class HarvestsController < ApplicationController
:plant_part_id, :slug, :si_weight)
.merge(owner_id: current_member.id)
end
def matching_plantings
Planting.where(crop: @harvest.crop, owner: @harvest.owner)
.where('(planted_at IS NULL OR planted_at <= ?)', @harvest.harvested_at)
.where('(finished_at IS NULL OR finished_at >= ?)', @harvest.harvested_at)
end
def harvests
if @owner
@owner.harvests
elsif @crop
@crop.harvests
elsif @planting
@planting.harvests
else
Harvest.all
end.order(harvested_at: :desc).joins(:owner, :crop).paginate(page: params[:page])
end
def csv_filename
specifics = if @owner
"#{@owner.login_name}-"
elsif @crop
"#{@crop.name}-"
end
"Growstuff-#{specifics}Harvests-#{Time.zone.now.to_s(:number)}.csv"
end
def update_crop_medians
# We only update medians to predict plantings
# if this harvest is not linked to a planting, then do nothing
return if @harvest.planting.nil?
@harvest.planting.update_harvest_days!
@harvest.crop.update_harvest_medians
end
end

View File

@@ -1,14 +1,11 @@
class HomeController < ApplicationController
skip_authorize_resource
respond_to :html
def index
# we were previously generating a lot of instance variables like
# @members_count and @interesting_crops in here, but now we call
# the relevant class methods directly in the view, so that fragment
# caching will be effective.
respond_to do |format|
format.html # index.html.haml
end
end
end

View File

@@ -0,0 +1,57 @@
class LikesController < ApplicationController
before_action :authenticate_member!
respond_to :html, :json
def create
@like = Like.new(member: current_member, likeable: find_likeable)
return failed(@like, message: 'Unable to like') unless @like.likeable && @like.save
success(@like, liked_by_member: true, status_code: :created)
end
def destroy
@like = Like.find_by(id: params[:id], member: current_member)
return failed(@like, message: 'Unable to unlike') unless @like && @like.destroy
success(@like, liked_by_member: false, status_code: :ok)
end
private
def find_likeable
Post.find(params[:post_id]) if params[:post_id]
end
def render_json(like, liked_by_member: true)
{
id: like.likeable.id,
liked_by_member: liked_by_member,
description: ActionController::Base.helpers.pluralize(like.likeable.likes.count, "like"),
url: like_path(like, format: :json)
}
end
def success(like, liked_by_member: nil, status_code: nil)
respond_to do |format|
format.html { redirect_to like.likeable }
format.json do
render(json: render_json(like, liked_by_member: liked_by_member),
status: status_code)
end
end
end
def failed(like, message)
respond_to do |format|
format.json { render(json: { 'error': message }, status: :forbidden) }
format.html do
flash[:error] = message
if like && like.likeable
redirect_to like.likeable
else
redirect_to root_path
end
end
end
end
end

View File

@@ -1,26 +1,15 @@
class MembersController < ApplicationController
load_and_authorize_resource except: [:finish_signup, :unsubscribe, :view_follows, :view_followers, :show]
skip_authorize_resource only: [:nearby, :unsubscribe, :finish_signup]
after_action :expire_cache_fragments, only: :create
load_and_authorize_resource except: %i(finish_signup unsubscribe view_follows view_followers show)
skip_authorize_resource only: %i(nearby unsubscribe finish_signup)
respond_to :html, :json, :rss
after_action :expire_homepage, only: :create
def index
@sort = params[:sort]
@members = if @sort == 'recently_joined'
Member.confirmed.recently_joined.paginate(page: params[:page])
else
Member.confirmed.paginate(page: params[:page])
end
@members = members
respond_to do |format|
format.html # index.html.haml
format.json {
render json: @members.to_json(only: [
:id, :login_name,
:slug, :bio, :created_at,
:location, :latitude, :longitude
])
}
format.json { render json: @members.to_json(only: member_json_fields) }
end
end
@@ -30,6 +19,9 @@ class MembersController < ApplicationController
@flickr_auth = @member.auth('flickr')
@facebook_auth = @member.auth('facebook')
@posts = @member.posts
@gardens = @member.gardens.active.order(:name)
@harvests = @member.harvests
# The garden form partial is called from the "New Garden" tab;
# it requires a garden to be passed in @garden.
# The new garden is not persisted unless Garden#save is called.
@@ -37,17 +29,13 @@ class MembersController < ApplicationController
respond_to do |format|
format.html # show.html.haml
format.json {
render json: @member.to_json(only: [
:id, :login_name, :bio,
:created_at, :slug, :location,
:latitude, :longitude
])
}
format.rss { render(
layout: false,
locals: { member: @member }
)}
format.json { render json: @member.to_json(only: member_json_fields) }
format.rss do
render(
layout: false,
locals: { member: @member }
)
end
end
end
@@ -64,7 +52,7 @@ class MembersController < ApplicationController
EMAIL_TYPE_STRING = {
send_notification_email: "direct message notifications",
send_planting_reminder: "planting reminders"
}
}.freeze
def unsubscribe
verifier = ActiveSupport::MessageVerifier.new(ENV['RAILS_SECRET_TOKEN'])
@@ -75,7 +63,6 @@ class MembersController < ApplicationController
@member.update(@type => false)
flash.now[:notice] = I18n.t('members.unsubscribed', email_type: EMAIL_TYPE_STRING[@type])
rescue ActiveSupport::MessageVerifier::InvalidSignature
flash.now[:alert] = I18n.t('members.unsubscribe.error')
end
@@ -96,11 +83,23 @@ class MembersController < ApplicationController
private
def expire_cache_fragments
expire_fragment("homepage_stats")
end
def member_params
params.require(:member).permit(:login_name, :tos_agreement, :email, :newsletter)
end
def member_json_fields
%i(
id login_name
slug bio created_at
location latitude longitude
)
end
def members
if @sort == 'recently_joined'
Member.recently_joined
else
Member.order(:login_name)
end.confirmed.paginate(page: params[:page])
end
end

View File

@@ -2,14 +2,11 @@ class NotificationsController < ApplicationController
include NotificationsHelper
before_action :authenticate_member!
load_and_authorize_resource
respond_to :html
# GET /notifications
def index
@notifications = Notification.by_recipient(current_member).page(params[:page])
respond_to do |format|
format.html # index.html.erb
end
@notifications = Notification.by_recipient(current_member).order(:created_at).page(params[:page])
end
# GET /notifications/1
@@ -17,10 +14,6 @@ class NotificationsController < ApplicationController
@notification.read = true
@notification.save
@reply_link = reply_link(@notification)
respond_to do |format|
format.html # show.html.erb
end
end
# GET /notifications/new
@@ -29,35 +22,26 @@ class NotificationsController < ApplicationController
@notification = Notification.new
@recipient = Member.find_by(id: params[:recipient_id])
@subject = params[:subject] || ""
respond_to do |format|
format.html # new.html.erb
end
end
# GET /notifications/1/reply
def reply
@notification = Notification.new
@sender_notification = Notification.find(params[:id])
@sender_notification = Notification.find_by(id: params[:id], recipient: current_member)
@sender_notification.read = true
@sender_notification.save
@recipient = @sender_notification.sender
@subject = @sender_notification.subject =~ /^Re: / ?
@sender_notification.subject :
"Re: " + @sender_notification.subject
respond_to do |format|
format.html # reply.html.haml
end
@subject = if @sender_notification.subject.start_with? 'Re: '
@sender_notification.subject
else
"Re: #{@sender_notification.subject}"
end
end
# DELETE /notifications/1
def destroy
@notification.destroy
respond_to do |format|
format.html { redirect_to notifications_url }
end
redirect_to notifications_url
end
# POST /notifications
@@ -66,12 +50,10 @@ class NotificationsController < ApplicationController
@notification = Notification.new(notification_params)
@recipient = Member.find_by(id: params[:notification][:recipient_id])
respond_to do |format|
if @notification.save
format.html { redirect_to notifications_path, notice: 'Message was successfully sent.' }
else
format.html { render action: "new" }
end
if @notification.save
redirect_to notifications_path, notice: 'Message was successfully sent.'
else
render action: "new"
end
end

View File

@@ -23,22 +23,21 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController
action = Growstuff::OauthSignupAction.new
@authentication = nil
if auth
member = action.find_or_create_from_authorization(auth)
@authentication = action.establish_authentication(auth, member)
unless action.member_created?
sign_in_and_redirect member, event: :authentication # this will throw if @user is not activated
set_flash_message(:notice, :success, kind: auth['provider']) if is_navigational_format?
else
raise "Invalid provider" unless ['facebook', 'twitter', 'flickr'].index(auth['provider'].to_s)
return redirect_to request.env['omniauth.origin'] || edit_member_registration_path unless auth
session["devise.#{auth['provider']}_data"] = request.env["omniauth.auth"]
sign_in member
redirect_to finish_signup_url(member)
end
member = action.find_or_create_from_authorization(auth)
@authentication = action.establish_authentication(auth, member)
if action.member_created?
raise "Invalid provider" unless %w(facebook twitter flickr).index(auth['provider'].to_s)
session["devise.#{auth['provider']}_data"] = request.env["omniauth.auth"]
sign_in member
redirect_to finish_signup_url(member)
else
redirect_to request.env['omniauth.origin'] || edit_member_registration_path
sign_in_and_redirect member, event: :authentication # this will throw if @user is not activated
set_flash_message(:notice, :success, kind: auth['provider']) if is_navigational_format?
end
end

View File

@@ -1,29 +0,0 @@
class OrderItemsController < ApplicationController
before_action :authenticate_member!
load_and_authorize_resource
# POST /order_items
def create
if params[:order_item][:price]
params[:order_item][:price] = params[:order_item][:price].to_f * 100 # convert to cents
end
@order_item = OrderItem.new(order_item_params)
@order_item.order = current_member.current_order || Order.create(member_id: current_member.id)
respond_to do |format|
if @order_item.save
format.html { redirect_to @order_item.order, notice: 'Added item to your order.' }
else
errors = @order_item.errors.empty? ?
"There was a problem with your order." : @order_item.errors.full_messages.to_sentence
format.html { redirect_to shop_path, alert: errors }
end
end
end
private
def order_item_params
params.require(:order_item).permit(:order_id, :price, :product_id, :quantity)
end
end

View File

@@ -1,90 +0,0 @@
class OrdersController < ApplicationController
before_action :authenticate_member!
load_and_authorize_resource
# GET /orders
def index
@orders = Order.by_member(current_member)
respond_to do |format|
format.html # index.html.erb
end
end
# GET /orders/1
def show
respond_to do |format|
format.html # show.html.erb
end
end
# GET /orders/new
def new
@order = Order.new
respond_to do |format|
format.html # new.html.erb
end
end
# checkout with PayPal
def checkout
respond_to do |format|
if @order.update_attributes(referral_code: params[:referral_code])
response = EXPRESS_GATEWAY.setup_purchase(
@order.total,
items: @order.activemerchant_items,
currency: Growstuff::Application.config.currency,
no_shipping: true,
ip: request.remote_ip,
return_url: complete_order_url,
cancel_return_url: shop_url
)
format.html { redirect_to EXPRESS_GATEWAY.redirect_url_for(response.token) }
else
format.html { render action: "show" }
end
end
end
def complete
if (params[:token] && params['PayerID'])
purchase = EXPRESS_GATEWAY.purchase(
@order.total,
currency: Growstuff::Application.config.currency,
ip: request.remote_ip,
payer_id: params['PayerID'],
token: params[:token]
)
if purchase.success?
@order.completed_at = Time.zone.now
@order.record_paypal_details(params[:token])
else
flash[:alert] = "Could not complete your order. Please notify support."
end
else
flash[:alert] = "PayPal didn't return a token or payer_id for your order. Please notify support."
end
@order.update_account # apply paid account benefits, etc.
respond_to do |format|
format.html # new.html.erb
end
end
def cancel
respond_to do |format|
format.html { redirect_to shop_url, notice: 'Order was cancelled.' }
end
end
# DELETE /orders/1
def destroy
@order.destroy
respond_to do |format|
format.html { redirect_to shop_url, notice: 'Order was deleted.' }
end
end
end

View File

@@ -0,0 +1,21 @@
class PhotoAssociationsController < ApplicationController
before_action :authenticate_member!
respond_to :json, :html
def destroy
raise "Photos not supported" unless Photo::PHOTO_CAPABLE.include? item_class
@photo = Photo.find_by!(id: params[:photo_id], owner: current_member)
@item = Photographing.item(item_id, item_class)
@item.photos.delete(@photo)
# @photo.destroy_if_unused
respond_with(@photo)
end
def item_class
params[:type].capitalize
end
def item_id
params[:id]
end
end

View File

@@ -1,95 +1,67 @@
class PhotosController < ApplicationController
before_action :authenticate_member!, except: [:index, :show]
before_action :authenticate_member!, except: %i(index show)
after_action :expire_homepage, only: %i(create delete)
load_and_authorize_resource
respond_to :html, :json
responders :flash
# GET /photos
# GET /photos.json
def index
@photos = Photo.paginate(page: params[:page])
respond_to do |format|
format.html # index.html.erb
format.json { render json: @photos }
if params[:crop_id]
@crop = Crop.find params[:crop_id]
@photos = @crop.photos
else
@photos = Photo.all
end
@photos = @photos.order(created_at: :desc)
.includes(:owner)
.paginate(page: params[:page])
respond_with(@photos)
end
# GET /photos/new
# GET /photos/new.json
def new
@photo = Photo.new
@type = params[:type]
@id = params[:id]
page = params[:page] || 1
@flickr_auth = current_member.auth('flickr')
@current_set = params[:set]
if @flickr_auth
@sets = current_member.flickr_sets
photos, total = current_member.flickr_photos(page, @current_set)
@photos = WillPaginate::Collection.create(page, 30, total) do |pager|
pager.replace photos
end
end
respond_to do |format|
format.html # new.html.erb
format.json { render json: @photo }
end
@item = item_to_link_to
@type = item_type
@id = item_id
retrieve_from_flickr
respond_with @photo
end
# GET /photos/1/edit
def edit
respond_with @photo
end
# POST /photos
# POST /photos.json
def create
find_or_create_photo_from_flickr_photo
add_photo_to_collection
respond_to do |format|
if @photo.present? && @photo.save
format.html { redirect_to photo_path(@photo), notice: 'Photo was successfully added.' }
format.json { render json: @photo, status: :created, location: @photo }
else
format.html { render action: "new" }
format.json { render json: @photo.errors, status: :unprocessable_entity }
end
ActiveRecord::Base.transaction do
@photo = find_or_create_photo_from_flickr_photo
@item = item_to_link_to
raise "Could not find this #{type} owned by you" unless @item
@item.photos << @photo unless @item.photos.include? @photo
@photo.save! if @photo.present?
end
respond_with @photo
end
# PUT /photos/1
# PUT /photos/1.json
def update
respond_to do |format|
if @photo.update(photo_params)
format.html { redirect_to @photo, notice: 'Photo was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @photo.errors, status: :unprocessable_entity }
end
end
@photo.update(photo_params)
respond_with @photo
end
# DELETE /photos/1
# DELETE /photos/1.json
def destroy
@photo.destroy
flash[:alert] = "Photo successfully deleted."
respond_to do |format|
format.html { redirect_to photos_url }
format.json { head :no_content }
end
respond_with @photo
end
private
def item_id?
params.key? :id
#
# Params
def item_id
params[:id]
end
def item_type
params[:type]
end
def flickr_photo_id_param
@@ -97,29 +69,41 @@ class PhotosController < ApplicationController
end
def photo_params
params.require(:photo).permit(:flickr_photo_id, :owner_id, :title, :license_name,
params.require(:photo).permit(:flickr_photo_id, :title, :license_name,
:license_url, :thumbnail_url, :fullsize_url, :link_url)
end
def find_or_create_photo_from_flickr_photo
@photo = Photo.find_by(flickr_photo_id: flickr_photo_id_param)
@photo = Photo.new(photo_params) unless @photo
@photo.owner_id = current_member.id
@photo.set_flickr_metadata
@photo
# Item with photos attached
def item_to_link_to
raise "No item id provided" if item_id.nil?
raise "No item type provided" if item_type.nil?
item_class = item_type.capitalize
raise "Photos not supported" unless Photo::PHOTO_CAPABLE.include? item_class
item_class.constantize.find_by!(id: params[:id], owner_id: current_member.id)
end
def add_photo_to_collection
raise "Missing or invalid type provided" unless Growstuff::Constants::PhotoModels.types.include?(params[:type])
raise "No item id provided" unless item_id?
collection = Growstuff::Constants::PhotoModels.get_relation(@photo, params[:type])
#
# Flickr retrieval
def find_or_create_photo_from_flickr_photo
photo = Photo.find_by(flickr_photo_id: flickr_photo_id_param)
photo ||= Photo.new(photo_params)
photo.owner_id = current_member.id
photo.set_flickr_metadata!
photo
end
item_class = Growstuff::Constants::PhotoModels.get_item(params[:type])
item = item_class.find_by!(id: params[:id], owner_id: current_member.id)
raise "Could not find this item owned by you" unless item
def retrieve_from_flickr
@flickr_auth = current_member.auth('flickr')
@current_set = params[:set]
return unless @flickr_auth
collection << item unless collection.include?(item)
rescue => e
flash[:alert] = e.message
page = params[:page] || 1
@sets = current_member.flickr_sets
photos, total = current_member.flickr_photos(page, @current_set)
@photos = WillPaginate::Collection.create(page, 30, total) do |pager|
pager.replace photos
end
end
end

View File

@@ -1,14 +1,15 @@
class PlacesController < ApplicationController
skip_authorize_resource
respond_to :html, :json
def index
respond_to do |format|
format.html
# json response is whatever we want to map here
format.json do
render json: Member.located.to_json(only: [
:id, :login_name, :slug, :location, :latitude, :longitude
])
render json: Member.located.to_json(only: %i(
id login_name slug location latitude longitude
))
end
end
end
@@ -21,26 +22,18 @@ class PlacesController < ApplicationController
respond_to do |format|
format.html # show.html.haml
format.json do
render json: @nearby_members.to_json(only: [
:id, :login_name, :slug, :location, :latitude, :longitude
])
render json: @nearby_members.to_json(only: %i(
id login_name slug location latitude longitude
))
end
end
end
def search
if params[:new_place].empty?
respond_to do |format|
format.html do
redirect_to places_path, alert: 'Please enter a valid location'
end
end
redirect_to places_path, alert: 'Please enter a valid location'
else
respond_to do |format|
format.html do
redirect_to place_path(params[:new_place])
end
end
redirect_to place_path(params[:new_place])
end
end
end

View File

@@ -1,80 +1,37 @@
class PlantPartsController < ApplicationController
load_and_authorize_resource
respond_to :html, :json
responders :flash
# GET /plant_parts
# GET /plant_parts.json
def index
@plant_parts = PlantPart.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @plant_parts }
end
@plant_parts = PlantPart.all.order(:name)
respond_with(@plant_parts)
end
# GET /plant_parts/1
# GET /plant_parts/1.json
def show
respond_to do |format|
format.html # show.html.erb
format.json { render json: @plant_part }
end
respond_with(@plant_part)
end
# GET /plant_parts/new
# GET /plant_parts/new.json
def new
@plant_part = PlantPart.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @plant_part }
end
respond_with(@plant_part)
end
# GET /plant_parts/1/edit
def edit
end
def edit; end
# POST /plant_parts
# POST /plant_parts.json
def create
@plant_part = PlantPart.new(plant_part_params)
respond_to do |format|
if @plant_part.save
format.html { redirect_to @plant_part, notice: 'Plant part was successfully created.' }
format.json { render json: @plant_part, status: :created, location: @plant_part }
else
format.html { render action: "new" }
format.json { render json: @plant_part.errors, status: :unprocessable_entity }
end
end
@plant_part = PlantPart.create(plant_part_params)
respond_with(@plant_part)
end
# PUT /plant_parts/1
# PUT /plant_parts/1.json
def update
respond_to do |format|
if @plant_part.update(plant_part_params)
format.html { redirect_to @plant_part, notice: 'Plant part was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @plant_part.errors, status: :unprocessable_entity }
end
end
@plant_part.update(plant_part_params)
respond_with(@plant_part)
end
# DELETE /plant_parts/1
# DELETE /plant_parts/1.json
def destroy
@plant_part.destroy
respond_to do |format|
format.html { redirect_to plant_parts_url }
format.json { head :no_content }
end
respond_with(@plant_part)
end
private

View File

@@ -1,139 +1,107 @@
class PlantingsController < ApplicationController
before_action :authenticate_member!, except: [:index, :show]
before_action :authenticate_member!, except: %i(index show)
after_action :expire_homepage, only: %i(create update destroy)
after_action :update_crop_medians, only: %i(create update destroy)
after_action :update_planting_medians, only: :update
load_and_authorize_resource
# GET /plantings
# GET /plantings.json
respond_to :html, :json
respond_to :csv, :rss, only: [:index]
responders :flash
def index
@owner = Member.find_by(slug: params[:owner]) if params[:owner]
@crop = Crop.find_by(slug: params[:crop]) if params[:crop]
@show_all = params[:all] == '1'
@plantings = plantings
respond_to do |format|
format.html { @plantings = @plantings.paginate(page: params[:page]) }
format.json { render json: @plantings }
format.rss { render layout: false } # index.rss.builder
format.csv do
specifics = (@owner ? "#{@owner.login_name}-" : @crop ? "#{@crop.name}-" : nil)
@filename = "Growstuff-#{specifics}Plantings-#{Time.zone.now.to_s(:number)}.csv"
render csv: @plantings
end
end
specifics = if @owner
"#{@owner.login_name}-"
elsif @crop
"#{@crop.name}-"
end
@filename = "Growstuff-#{specifics}Plantings-#{Time.zone.now.to_s(:number)}.csv"
respond_with(@plantings)
end
# GET /plantings/1
# GET /plantings/1.json
def show
@planting = Planting.includes(:owner, :crop, :garden, :photos).friendly.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @planting }
end
@planting = Planting.includes(:owner, :crop, :garden, :photos)
.friendly
.find(params[:id])
@photos = @planting.photos.order(date_taken: :desc).includes(:owner).paginate(page: params[:page])
respond_with @planting
end
# GET /plantings/new
# GET /plantings/new.json
def new
@planting = Planting.new('planted_at' => Time.zone.today)
@planting = Planting.new(planted_at: Time.zone.today)
@seed = Seed.find_by(slug: params[:seed_id]) if params[:seed_id]
# using find_by_id here because it returns nil, unlike find
@crop = Crop.find_by(id: params[:crop_id]) || Crop.new
@garden = Garden.find_by(id: params[:garden_id]) || Garden.new
@crop = Crop.approved.find_by(id: params[:crop_id]) || Crop.new
@garden = Garden.find_by(owner: current_member, id: params[:garden_id]) || Garden.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @planting }
end
respond_with @planting
end
# GET /plantings/1/edit
def edit
# the following are needed to display the form but aren't used
@crop = Crop.new
@garden = Garden.new
end
# POST /plantings
# POST /plantings.json
def create
params[:planted_at] = parse_date(params[:planted_at])
@planting = Planting.new(planting_params)
@planting.owner = current_member
respond_to do |format|
if @planting.save
@planting.update_attribute(:days_before_maturity,
update_days_before_maturity(@planting, planting_params[:crop_id]))
format.html { redirect_to @planting, notice: 'Planting was successfully created.' }
format.json { render json: @planting, status: :created, location: @planting }
expire_fragment("homepage_stats")
else
format.html { render action: "new" }
format.json { render json: @planting.errors, status: :unprocessable_entity }
end
end
@planting.crop = @planting.parent_seed.crop if @planting.parent_seed.present?
@planting.save!
respond_with @planting
end
# PUT /plantings/1
# PUT /plantings/1.json
def update
params[:planted_at] = parse_date(params[:planted_at])
respond_to do |format|
if @planting.update(planting_params)
@planting.update_attribute(:days_before_maturity,
update_days_before_maturity(@planting, planting_params[:crop_id]))
format.html { redirect_to @planting, notice: 'Planting was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @planting.errors, status: :unprocessable_entity }
end
end
@planting.update(planting_params)
respond_with @planting
end
# DELETE /plantings/1
# DELETE /plantings/1.json
def destroy
@garden = @planting.garden
@planting.destroy
expire_fragment("homepage_stats")
respond_to do |format|
format.html { redirect_to @garden }
format.json { head :no_content }
end
respond_with @planting, location: @planting.garden
end
private
def planting_params
params.require(:planting).permit(:crop_id, :description, :garden_id, :planted_at,
:quantity, :sunniness, :planted_from, :owner_id, :finished,
:finished_at)
def update_crop_medians
@planting.crop.update_lifespan_medians
end
def update_days_before_maturity(planting, crop_id)
if planting.finished_at.nil?
planting.calculate_days_before_maturity(planting, crop_id)
else
(planting.finished_at - planting.planted_at).to_i
end
def update_planting_medians
@planting.update_harvest_days!
end
def planting_params
params[:planted_at] = parse_date(params[:planted_at]) if params[:planted_at]
params.require(:planting).permit(
:crop_id, :description, :garden_id, :planted_at,
:parent_seed_id,
:quantity, :sunniness, :planted_from, :finished,
:finished_at
)
end
def plantings
@plantings = if @owner
@owner.plantings
elsif @crop
@crop.plantings
else
Planting
end
@plantings = @plantings.current unless @show_all
@plantings = @plantings.includes(:owner, :crop, :garden).order(:created_at).paginate(page: params[:page])
@plantings
p = if @owner
@owner.plantings
elsif @crop
@crop.plantings
else
Planting
end
p = p.current unless @show_all
p.joins(:owner, :crop, :garden)
.order(created_at: :desc)
.includes(:crop, :owner, :garden)
.paginate(page: params[:page])
end
end

View File

@@ -1,38 +1,24 @@
class PostsController < ApplicationController
before_action :authenticate_member!, except: [:index, :show]
before_action :authenticate_member!, except: %i(index show)
load_and_authorize_resource
respond_to :html, :json
respond_to :rss, only: %i(index show)
# GET /posts
# GET /posts.json
# GET /posts.rss
def index
@author = Member.find_by(slug: params[:author])
@posts = if @author
@author.posts.includes(:author, comments: :author).paginate(page: params[:page])
else
Post.includes(:author, comments: :author).paginate(page: params[:page])
end
respond_to do |format|
format.html # index.html.haml
format.json { render json: @posts }
format.rss { render layout: false } # index.rss.builder
end
@posts = posts
respond_with(@posts)
end
# GET /posts/1
# GET /posts/1.json
# GET /posts/1.rss
def show
@post = Post.includes(:author, comments: :author).find(params[:id])
respond_to do |format|
format.html # show.html.haml
format.json { render json: @post }
format.rss { render(
layout: false,
locals: { post: @post }
)}
end
respond_with(@post)
end
# GET /posts/new
@@ -40,57 +26,33 @@ class PostsController < ApplicationController
def new
@post = Post.new
@forum = Forum.find_by(id: params[:forum_id])
respond_to do |format|
format.html # new.html.haml
format.json { render json: @post }
end
respond_with(@post)
end
# GET /posts/1/edit
def edit
end
def edit; end
# POST /posts
# POST /posts.json
def create
params[:post][:author_id] = current_member.id
@post = Post.new(post_params)
respond_to do |format|
if @post.save
format.html { redirect_to @post, notice: 'Post was successfully created.' }
format.json { render json: @post, status: :created, location: @post }
else
format.html { render action: "new" }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
flash[:notice] = 'Post was successfully created.' if @post.save
respond_with(@post)
end
# PUT /posts/1
# PUT /posts/1.json
def update
respond_to do |format|
if @post.update(post_params)
format.html { redirect_to @post, notice: 'Post was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
flash[:notice] = 'Post was successfully updated.' if @post.update(post_params)
respond_with(@post)
end
# DELETE /posts/1
# DELETE /posts/1.json
def destroy
@post.destroy
respond_to do |format|
format.html { redirect_to posts_url, notice: 'Post was deleted.' }
format.json { head :no_content }
end
flash[:notice] = 'Post was deleted.' if @post.destroy
respond_with(@post)
end
private
@@ -98,4 +60,12 @@ class PostsController < ApplicationController
def post_params
params.require(:post).permit(:body, :subject, :author_id, :forum_id)
end
def posts
if @author
@author.posts
else
Post
end.order(created_at: :desc).includes(:author, comments: :author).paginate(page: params[:page])
end
end

View File

@@ -1,73 +0,0 @@
class ProductsController < ApplicationController
before_action :authenticate_member!
load_and_authorize_resource
# GET /products
def index
@products = Product.all
respond_to do |format|
format.html # index.html.erb
end
end
# GET /products/1
def show
respond_to do |format|
format.html # show.html.erb
end
end
# GET /products/new
def new
@product = Product.new
respond_to do |format|
format.html # new.html.erb
end
end
# GET /products/1/edit
def edit
end
# POST /products
def create
@product = Product.new(product_params)
respond_to do |format|
if @product.save
format.html { redirect_to @product, notice: 'Product was successfully created.' }
else
format.html { render action: "new" }
end
end
end
# PUT /products/1
def update
respond_to do |format|
if @product.update(product_params)
format.html { redirect_to @product, notice: 'Product was successfully updated.' }
else
format.html { render action: "edit" }
end
end
end
# DELETE /products/1
def destroy
@product.destroy
respond_to do |format|
format.html { redirect_to products_url }
end
end
private
def product_params
params.require(:product).permit(:description, :min_price, :recommended_price, :name,
:account_type_id, :paid_months)
end
end

View File

@@ -35,6 +35,14 @@ class RegistrationsController < Devise::RegistrationsController
render "edit"
end
end
def destroy
if @member.destroy_with_password(params.require(:member)[:current_password])
redirect_to root_path
else
render "edit"
end
end
end
# check if we need the current password to update fields

View File

@@ -1,67 +1,40 @@
class RolesController < ApplicationController
before_action :authenticate_member!
load_and_authorize_resource
respond_to :html
responders :flash
# GET /roles
def index
@roles = Role.all
respond_to do |format|
format.html # index.html.erb
end
@roles = Role.all.order(:name)
respond_with @roles
end
# GET /roles/1
def show
respond_to do |format|
format.html # show.html.erb
end
respond_with @role
end
# GET /roles/new
def new
@role = Role.new
respond_to do |format|
format.html # new.html.erb
end
respond_with @role
end
# GET /roles/1/edit
def edit
respond_with @role
end
# POST /roles
def create
@role = Role.new(role_params)
respond_to do |format|
if @role.save
format.html { redirect_to @role, notice: 'Role was successfully created.' }
else
format.html { render action: "new" }
end
end
@role = Role.create(role_params)
respond_with @role
end
# PUT /roles/1
def update
respond_to do |format|
if @role.update(role_params)
format.html { redirect_to @role, notice: 'Role was successfully updated.' }
else
format.html { render action: "edit" }
end
end
@role.update(role_params)
respond_with @role
end
# DELETE /roles/1
def destroy
@role.destroy
respond_to do |format|
format.html { redirect_to roles_url }
end
respond_with @role
end
private

View File

@@ -1,25 +1,20 @@
class ScientificNamesController < ApplicationController
before_action :authenticate_member!, except: [:index, :show]
before_action :authenticate_member!, except: %i(index show)
load_and_authorize_resource
respond_to :html, :json
responders :flash
# GET /scientific_names
# GET /scientific_names.json
def index
@scientific_names = ScientificName.all
respond_to do |format|
format.html # index.html.haml
format.json { render json: @scientific_names }
end
@scientific_names = ScientificName.all.order(:name)
respond_with(@scientific_names)
end
# GET /scientific_names/1
# GET /scientific_names/1.json
def show
respond_to do |format|
format.html # show.html.haml
format.json { render json: @scientific_name }
end
respond_with(@scientific_name)
end
# GET /scientific_names/new
@@ -27,46 +22,27 @@ class ScientificNamesController < ApplicationController
def new
@scientific_name = ScientificName.new
@crop = Crop.find_or_initialize_by(id: params[:crop_id])
respond_to do |format|
format.html # new.html.haml
format.json { render json: @scientific_name }
end
respond_with(@scientific_name)
end
# GET /scientific_names/1/edit
def edit
end
def edit; end
# POST /scientific_names
# POST /scientific_names.json
def create
params[:scientific_name][:creator_id] = current_member.id
@scientific_name = ScientificName.new(scientific_name_params)
@scientific_name.creator = current_member
respond_to do |format|
if @scientific_name.save
format.html { redirect_to @scientific_name.crop, notice: 'Scientific name was successfully created.' }
format.json { render json: @scientific_name, status: :created, location: @scientific_name }
else
format.html { render action: "new" }
format.json { render json: @scientific_name.errors, status: :unprocessable_entity }
end
end
@scientific_name.save
respond_with(@scientific_name.crop)
end
# PUT /scientific_names/1
# PUT /scientific_names/1.json
def update
respond_to do |format|
if @scientific_name.update(scientific_name_params)
format.html { redirect_to @scientific_name.crop, notice: 'Scientific name was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @scientific_name.errors, status: :unprocessable_entity }
end
end
@scientific_name.update(scientific_name_params)
respond_with(@scientific_name.crop)
end
# DELETE /scientific_names/1
@@ -74,18 +50,13 @@ class ScientificNamesController < ApplicationController
def destroy
@crop = @scientific_name.crop
@scientific_name.destroy
respond_to do |format|
format.html {
redirect_to @crop, notice: 'Scientific name was successfully deleted.'
}
format.json { head :no_content }
end
flash[:notice] = 'Scientific name was successfully deleted.'
respond_with(@crop)
end
private
def scientific_name_params
params.require(:scientific_name).permit(:crop_id, :name, :creator_id)
params.require(:scientific_name).permit(:crop_id, :name)
end
end

View File

@@ -1,112 +1,85 @@
class SeedsController < ApplicationController
before_action :authenticate_member!, except: [:index, :show]
before_action :authenticate_member!, except: %i(index show)
load_and_authorize_resource
respond_to :html, :json
respond_to :csv, only: :index
respond_to :rss, only: :index
# GET /seeds
# GET /seeds.json
def index
@owner = Member.find_by(slug: params[:owner])
@crop = Crop.find_by(slug: params[:crop])
@seeds = if @owner
@owner.seeds.includes(:owner, :crop).paginate(page: params[:page])
elsif @crop
@crop.seeds.includes(:owner, :crop).paginate(page: params[:page])
else
Seed.includes(:owner, :crop).paginate(page: params[:page])
end
@seeds = seeds(owner: @owner, crop: @crop)
@filename = csv_filename
respond_to do |format|
format.html # index.html.erb
format.json { render json: @seeds }
format.rss { render layout: false } # index.rss.builder
format.csv do
if @owner
@filename = "Growstuff-#{@owner}-Seeds-#{Time.zone.now.to_s(:number)}.csv"
@seeds = @owner.seeds.includes(:owner, :crop)
else
@filename = "Growstuff-Seeds-#{Time.zone.now.to_s(:number)}.csv"
@seeds = Seed.includes(:owner, :crop)
end
render csv: @seeds
end
end
respond_with(@seeds)
end
# GET /seeds/1
# GET /seeds/1.json
def show
respond_to do |format|
format.html # show.html.erb
format.json { render json: @seed }
end
@photos = @seed.photos.includes(:owner).order(created_at: :desc).paginate(page: params[:page])
respond_with(@seed)
end
# GET /seeds/new
# GET /seeds/new.json
def new
@seed = Seed.new
# using find_by_id here because it returns nil, unlike find
@crop = Crop.find_or_initialize_by(id: params[:crop_id])
respond_to do |format|
format.html # new.html.erb
format.json { render json: @seed }
if params[:planting_id]
@planting = Planting.find_by(slug: params[:planting_id])
else
@crop = Crop.find_or_initialize_by(id: params[:crop_id])
end
respond_with(@seed)
end
# GET /seeds/1/edit
def edit
end
def edit; end
# POST /seeds
# POST /seeds.json
def create
params[:seed][:owner_id] = current_member.id
@seed = Seed.new(seed_params)
respond_to do |format|
if @seed.save
format.html { redirect_to @seed, notice: "Successfully added #{@seed.crop} seed to your stash." }
format.json { render json: @seed, status: :created, location: @seed }
else
format.html { render action: "new" }
format.json { render json: @seed.errors, status: :unprocessable_entity }
end
end
@seed.owner = current_member
@seed.crop = @seed.parent_planting.crop if @seed.parent_planting
flash[:notice] = "Successfully added #{@seed.crop} seed to your stash." if @seed.save
respond_with(@seed)
end
# PUT /seeds/1
# PUT /seeds/1.json
def update
respond_to do |format|
if @seed.update(seed_params)
format.html { redirect_to @seed, notice: 'Seed was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @seed.errors, status: :unprocessable_entity }
end
end
flash[:notice] = 'Seed was successfully updated.' if @seed.update(seed_params)
respond_with(@seed)
end
# DELETE /seeds/1
# DELETE /seeds/1.json
def destroy
@seed.destroy
respond_to do |format|
format.html { redirect_to seeds_url }
format.json { head :no_content }
end
respond_with(@seed)
end
private
def seed_params
params.require(:seed).permit(
:owner_id, :crop_id, :description, :quantity, :plant_before,
:days_until_maturity_min, :days_until_maturity_max, :organic, :gmo,
:heirloom, :tradable_to, :slug)
:crop_id, :description, :quantity, :plant_before,
:parent_planting_id,
:days_until_maturity_min, :days_until_maturity_max,
:organic, :gmo,
:heirloom, :tradable_to, :slug,
:finished, :finished_at
)
end
def seeds(owner: nil, crop: nil)
if owner
owner.seeds
elsif crop
crop.seeds
else
Seed
end.order(created_at: :desc).includes(:owner, :crop).paginate(page: params[:page])
end
def csv_filename
if @owner
"Growstuff-#{@owner}-Seeds-#{Time.zone.now.to_s(:number)}.csv"
else
"Growstuff-Seeds-#{Time.zone.now.to_s(:number)}.csv"
end
end
end

View File

@@ -2,7 +2,7 @@ class SessionsController < Devise::SessionsController
respond_to :json
def create
super do |resource|
super do |_resource|
if Crop.pending_approval.present? && current_member.role?(:crop_wrangler)
flash[:alert] = "There are crops waiting to be wrangled."
end

View File

@@ -1,25 +0,0 @@
class ShopController < ApplicationController
def index
@products = Product.all
@order_item = OrderItem.new
# this is (hopefully) part of a short-term hack to prevent people from
# ordering multiple subscriptions, which would be very confusing to deal
# with. We check whether they have an order already in progress, and if
# so, point that out to them and encourage them to checkout, rather than
# letting them add more stuff to their order.
@order = nil
@most_recent_item = nil
if current_member
@order = current_member.current_order
if @order
@most_recent_item = @order.order_items.first
end
end
respond_to do |format|
format.html # index.html.haml
end
end
end

View File

@@ -1,26 +1,9 @@
module ApplicationHelper
def price_in_dollars(price)
sprintf('%.2f', price / 100.0)
end
# 999 cents becomes 9.99 AUD -- for products/orders/etc
def price_with_currency(price)
sprintf('%.2f %s', price / 100.0, Growstuff::Application.config.currency)
end
def parse_date(str)
str ||= '' # Date.parse barfs on nil
str == '' ? nil : Date.parse(str)
end
def forex_link(price)
pid = price_in_dollars(price)
currency = Growstuff::Application.config.currency
link = "http://www.wolframalpha.com/input/?i=#{pid}+#{currency}"
link_to "(convert)", link, target: "_blank", rel: "noopener noreferrer"
end
def build_alert_classes(alert_type = :info)
classes = 'alert alert-dismissable '
case alert_type.to_sym
@@ -55,6 +38,7 @@ module ApplicationHelper
# Falls back to Gravatar
#
def avatar_uri(member, size = 150)
return unless member
if member.preferred_avatar_uri.present?
# Some avatars support different sizes
# http://graph.facebook.com/12345678/picture?width=150&height=150
@@ -81,4 +65,35 @@ module ApplicationHelper
model_name = model.model_name.human(count: size)
"#{size} #{model_name}"
end
def show_inactive_tickbox_path(type, owner, show_all)
all = show_all ? '' : 1
if owner
if type == 'plantings'
plantings_by_owner_path(owner: owner.slug, all: all)
elsif type == 'gardens'
gardens_by_owner_path(owner: owner.slug, all: all)
end
elsif type == 'plantings'
plantings_path(all: all)
elsif type == 'gardens'
gardens_path(all: all)
end
end
def title(type, owner, crop, planting)
if owner
t(".title.owner_#{type}", owner: owner.login_name)
elsif crop
t(".title.crop_#{type}", crop: crop.name)
elsif planting
t(".title.planting_#{type}", planting: planting.to_s)
else
t(".title.default")
end
end
def og_description(description)
strip_tags(description).split(' ')[0..20].join(' ')
end
end

View File

@@ -11,7 +11,7 @@ module AutoSuggestHelper
resource = resource.class.name.downcase
source_path = Rails.application.routes.url_helpers.send("#{source}s_search_path")
%Q{
%(
<input id="#{source}" class="auto-suggest #{options[:class]}"
type="text" value="#{default}" data-source-url="#{source_path}",
placeholder="e.g. lettuce">
@@ -20,6 +20,6 @@ module AutoSuggestHelper
</noscript>
<input id="#{resource}_#{source}_id" class="auto-suggest-id"
type="hidden" name="#{resource}[#{source}_id]" value="#{default_id}">
}.html_safe
).html_safe
end
end

View File

@@ -5,17 +5,19 @@ module CropsHelper
seeds = member.seeds.select { |seed| seed.crop.name == crop.name }
seeds.each do |seed|
total_quantity = total_quantity + seed.quantity if seed.quantity
total_quantity += seed.quantity if seed.quantity
end
if !seeds.any?
return "You don't have any seeds of this crop."
end
return "You don't have any seeds of this crop." if seeds.none?
if (total_quantity != 0)
if total_quantity != 0
"You have #{total_quantity} #{Seed.model_name.human(count: total_quantity)} of this crop."
else
"You have an unknown quantity of seeds of this crop."
end
end
def crop_ebay_seeds_url(crop)
"http://rover.ebay.com/rover/1/705-53470-19255-0/1?icep_ff3=9&pub=5575213277&toolid=10001&campid=5337940151&customid=&icep_uq=#{URI.escape crop.name}&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=181003&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229515&kwid=902099&mtid=824&kw=lg" # rubocop:disable Metrics/LineLength
end
end

View File

@@ -9,6 +9,10 @@ module GardensHelper
end
end
def gardens_active_tickbox_path(owner, show_all)
show_inactive_tickbox_path('gardens', owner, show_all)
end
def display_garden_name(garden)
truncate(garden.name, length: 50, separator: ' ', omission: '... ')
end
@@ -17,13 +21,14 @@ module GardensHelper
if plantings.blank?
"None"
else
output = ""
plantings.first(2).each do |planting|
output = '<ul class="plantings">'
plantings.each do |planting|
output += "<li>"
output += planting.quantity.nil? ? "0 " : "#{planting.quantity} "
output += link_to planting.crop.name, planting.crop
output += ", planted on #{planting.planted_at}</li>"
end
output += '</ul>'
output.html_safe
end
end

View File

@@ -15,7 +15,7 @@ module HarvestsHelper
if harvest.unit == 'individual' # just the number
number_to_human(harvest.quantity, strip_insignificant_zeros: true)
elsif !harvest.unit.blank? # pluralize anything else
elsif harvest.unit.present? # pluralize anything else
pluralize(number_to_human(harvest.quantity, strip_insignificant_zeros: true), harvest.unit)
else
"#{number_to_human(harvest.quantity, strip_insignificant_zeros: true)} #{harvest.unit}"
@@ -28,7 +28,12 @@ module HarvestsHelper
end
def display_harvest_description(harvest)
return "No description provided." if harvest.description.empty?
harvest.description
if harvest.description.nil?
"no description provided."
else
truncate(harvest.description, length: 50, separator: ' ', omission: '... ') do
link_to "Read more", harvest_path(harvest)
end
end
end
end

View File

@@ -0,0 +1,51 @@
module PhotosHelper
def crop_image_path(crop)
if crop.default_photo.present?
crop.default_photo.thumbnail_url
else
placeholder_image
end
end
def garden_image_path(garden)
if garden.default_photo.present?
garden.default_photo.thumbnail_url
else
placeholder_image
end
end
def planting_image_path(planting)
if planting.photos.present?
planting.photos.order(date_taken: :desc).first.thumbnail_url
else
placeholder_image
end
end
def harvest_image_path(harvest)
if harvest.photos.present?
harvest.photos.order(date_taken: :desc).first.thumbnail_url
elsif harvest.planting.present?
planting_image_path(harvest.planting)
else
placeholder_image
end
end
def seed_image_path(seed)
if seed.default_photo.present?
seed.default_photo.thumbnail_url
elsif seed.crop.default_photo.present?
seed.crop.default_photo.thumbnail_url
else
placeholder_image
end
end
private
def placeholder_image
'placeholder_150.png'
end
end

View File

@@ -1,18 +1,6 @@
module PlantingsHelper
def display_days_before_maturity(planting)
if planting.finished?
"0"
elsif !planting.finished_at.nil?
((p = planting.finished_at - Date.current).to_i) <= 0 ? "0" : p.to_i.to_s
elsif planting.planted_at.nil? || planting.days_before_maturity.nil?
"unknown"
else
((p = (planting.planted_at + planting.days_before_maturity) - Date.current).to_i <= 0) ? "0" : p.to_i.to_s
end
end
def display_finished(planting)
if !planting.finished_at.nil?
if planting.finished_at.present?
planting.finished_at
elsif planting.finished
"Yes (no date specified)"
@@ -22,11 +10,11 @@ module PlantingsHelper
end
def display_planted_from(planting)
!planting.planted_from.blank? ? planting.planted_from : "not specified"
planting.planted_from.present? ? planting.planted_from : "not specified"
end
def display_planting_quantity(planting)
!planting.quantity.blank? ? planting.quantity : "not specified"
planting.quantity.present? ? planting.quantity : "not specified"
end
def display_planting(planting)
@@ -40,4 +28,28 @@ module PlantingsHelper
"#{planting.owner}."
end
end
def plantings_active_tickbox_path(owner, show_all)
show_inactive_tickbox_path('plantings', owner, show_all)
end
def days_from_now_to_finished(planting)
return unless planting.finish_is_predicatable?
(planting.finish_predicted_at - Time.zone.today).to_i
end
def days_from_now_to_first_harvest(planting)
return unless planting.planted_at.present? && planting.first_harvest_predicted_at.present?
(planting.first_harvest_predicted_at - Time.zone.today).to_i
end
def planting_classes(planting)
classes = []
classes << 'planting-growing' if planting.growing?
classes << 'planting-finished' if planting.finished?
classes << 'planting-harvest-time' if planting.harvest_time?
classes << 'planting-late' if planting.late?
classes << 'planting-super-late' if planting.super_late?
classes.join(' ')
end
end

View File

@@ -26,8 +26,8 @@ class Notifier < ActionMailer::Base
def planting_reminder(member)
@member = member
@plantings = @member.plantings.first(5)
@harvests = @member.harvests.first(5)
@plantings = @member.plantings.order(planted_at: :desc).first(5)
@harvests = @member.harvests.order(harvested_at: :desc).first(5)
# Encrypting
message = { member_id: @member.id, type: :send_planting_reminder }
@@ -37,17 +37,20 @@ class Notifier < ActionMailer::Base
end
def new_crop_request(member, request)
@member, @request = member, request
@member = member
@request = request
mail(to: @member.email, subject: "#{@request.requester.login_name} has requested #{@request.name} as a new crop")
end
def crop_request_approved(member, crop)
@member, @crop = member, crop
@member = member
@crop = crop
mail(to: @member.email, subject: "#{crop.name.capitalize} has been approved")
end
def crop_request_rejected(member, crop)
@member, @crop = member, crop
@member = member
@crop = crop
mail(to: @member.email, subject: "#{crop.name.capitalize} has been rejected")
end
end

View File

@@ -1,7 +1,13 @@
class Ability
include CanCan::Ability
def initialize(member) # rubocop:disable Metrics/AbcSize
def initialize(member)
anon_abilities(member)
member_abilities(member) if member.present?
admin_abilities(member) if member.present? && member.role?(:admin)
end
def anon_abilities(_member)
# See the wiki for details: https://github.com/ryanb/cancan/wiki/Defining-Abilities
# everyone can do these things, even non-logged in
@@ -9,17 +15,18 @@ class Ability
can :view_follows, Member
can :view_followers, Member
# Everyone can see the charts
can :timeline, Garden
can :sunniness, Crop
can :planted_from, Crop
can :harvested_for, Crop
# except these, which don't make sense if you're not logged in
cannot :read, Notification
cannot :read, Authentication
cannot :read, Order
cannot :read, OrderItem
# and nobody should be able to view this except admins
cannot :read, Role
cannot :read, Product
cannot :read, Account
cannot :read, AccountType
# nobody should be able to view unapproved crops unless they
# are wranglers or admins
@@ -35,11 +42,14 @@ class Ability
can :read, AlternateName do |an|
an.crop.approved?
end
end
def member_abilities(member) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
return unless member
# members can see even rejected or pending crops if they requested it
can :read, Crop, requester_id: member.id
can :requested, Crop # see list of crops they've requested
# managing your own user settings
can :update, Member, id: member.id
@@ -71,11 +81,13 @@ class Ability
can :create, Authentication
can :destroy, Authentication, member_id: member.id
# anyone can create a post, or comment on a post,
# anyone can create a post, like, or comment on a post,
# but only the author can edit/destroy it.
can :create, Post
can :update, Post, author_id: member.id
can :destroy, Post, author_id: member.id
can :create, Like
can :destroy, Like, member_id: member.id
can :create, Comment
can :update, Comment, author_id: member.id
can :destroy, Comment, author_id: member.id
@@ -86,8 +98,8 @@ class Ability
can :destroy, Garden, owner_id: member.id
can :create, Planting
can :update, Planting, garden: { owner_id: member.id }
can :destroy, Planting, garden: { owner_id: member.id }
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 :create, Harvest
can :update, Harvest, owner_id: member.id
@@ -99,23 +111,12 @@ class Ability
can :update, Photo, owner_id: member.id
can :destroy, Photo, owner_id: member.id
can :create, Seed
can :update, Seed, owner_id: member.id
can :create, Seed
can :update, Seed, owner_id: member.id
can :destroy, Seed, owner_id: member.id
# orders/shop/etc
can :create, Order
can :read, Order, member_id: member.id
can :complete, Order, member_id: member.id, completed_at: nil
can :checkout, Order, member_id: member.id, completed_at: nil
can :cancel, Order, member_id: member.id, completed_at: nil
can :destroy, Order, member_id: member.id, completed_at: nil
can :create, OrderItem
# for now, let's not let people mess with individual order items
cannot :read, OrderItem, order: { member_id: member.id }
cannot :update, OrderItem, order: { member_id: member.id, completed_at: nil }
cannot :destroy, OrderItem, order: { member_id: member.id, completed_at: nil }
can :create, Seed, owner_id: member.id, parent_planting: { owner_id: member.id }
can :update, Seed, owner_id: member.id, parent_planting: { owner_id: member.id }
can :destroy, Seed, owner_id: member.id, parent_planting: { owner_id: member.id }
# following/unfollowing permissions
can :create, Follow
@@ -123,18 +124,14 @@ class Ability
can :destroy, Follow
cannot :destroy, Follow, followed_id: member.id # can't unfollow yourself
end
def admin_abilities(member)
return unless member.role? :admin
can :read, :all
can :manage, :all
# can't change order history, because it's *history*
cannot :create, Order
cannot :complete, Order
cannot :destroy, Order
cannot :manage, OrderItem
# can't delete plant parts if they have harvests associated with them
cannot :destroy, PlantPart
can :destroy, PlantPart do |pp|

View File

@@ -1,23 +0,0 @@
class Account < ActiveRecord::Base
belongs_to :member
belongs_to :account_type
validates :member_id, uniqueness: {
message: 'already has account details associated with it'
}
before_create do |account|
unless account.account_type
account.account_type = AccountType.find_or_create_by(name:
Growstuff::Application.config.default_account_type)
end
end
def paid_until_string
if account_type.is_permanent_paid
"forever"
elsif account_type.is_paid
paid_until.to_s
end
end
end

View File

@@ -1,7 +0,0 @@
class AccountType < ActiveRecord::Base
has_many :products
def to_s
name
end
end

View File

@@ -2,4 +2,6 @@ class AlternateName < ActiveRecord::Base
after_commit { |an| an.crop.__elasticsearch__.index_document if an.crop && ENV['GROWSTUFF_ELASTICSEARCH'] == "true" }
belongs_to :crop
belongs_to :creator, class_name: 'Member'
validates :name, presence: true
validates :crop, presence: true
end

View File

@@ -2,7 +2,6 @@ class Comment < ActiveRecord::Base
belongs_to :author, class_name: 'Member'
belongs_to :post
default_scope { order("created_at DESC") }
scope :post_order, -> { reorder("created_at ASC") } # for display on post page
after_create do

View File

@@ -0,0 +1,12 @@
module Finishable
extend ActiveSupport::Concern
included do
scope :finished, -> { where(finished: true) }
scope :current, -> { where.not(finished: true) }
def active?
!finished
end
end
end

View File

@@ -0,0 +1,8 @@
module Likeable
extend ActiveSupport::Concern
included do
has_many :likes, as: :likeable, dependent: :destroy
has_many :members, through: :likes
end
end

View File

@@ -0,0 +1,7 @@
module Ownable
extend ActiveSupport::Concern
included do
belongs_to :owner, class_name: 'Member', foreign_key: 'owner_id', counter_cache: true
end
end

View File

@@ -1,17 +1,10 @@
require_relative '../../constants/photo_models.rb'
module PhotoCapable
extend ActiveSupport::Concern
included do
has_and_belongs_to_many :photos # rubocop:disable Rails/HasAndBelongsToMany
has_many :photos, through: :photographings, as: :photographable
has_many :photographings, as: :photographable, dependent: :destroy
before_destroy :remove_from_list
end
def remove_from_list
photolist = photos.to_a # save a temp copy of the photo list
photos.clear # clear relationship b/w object and photo
photolist.each(&:destroy_if_unused)
scope :has_photos, -> { includes(:photos).where.not(photos: { id: nil }) }
end
end

View File

@@ -0,0 +1,61 @@
module PredictHarvest
extend ActiveSupport::Concern
included do # rubocop:disable Metrics/BlockLength
# dates
def first_harvest_date
harvests_with_dates.minimum(:harvested_at)
end
def last_harvest_date
harvests_with_dates.maximum(:harvested_at)
end
def first_harvest_predicted_at
return unless crop.median_days_to_first_harvest.present? && planted_at.present?
planted_at + crop.median_days_to_first_harvest.days
end
def last_harvest_predicted_at
return unless crop.median_days_to_last_harvest.present? && planted_at.present?
planted_at + crop.median_days_to_last_harvest.days
end
# actions
def update_harvest_days!
days_to_first_harvest = nil
days_to_last_harvest = nil
if planted_at.present? && harvests_with_dates.size.positive?
days_to_first_harvest = (first_harvest_date - planted_at).to_i
days_to_last_harvest = (last_harvest_date - planted_at).to_i if finished?
end
update(days_to_first_harvest: days_to_first_harvest, days_to_last_harvest: days_to_last_harvest)
end
# status
def harvest_time?
return false if crop.perennial || finished
# We have harvests but haven't finished
harvests.size.positive? ||
# or, we don't have harvests, but we predict we should by now
(first_harvest_predicted_at.present? &&
harvests.empty? &&
first_harvest_predicted_at < Time.zone.today)
end
def before_harvest_time?
first_harvest_predicted_at.present? &&
harvests.empty? &&
first_harvest_predicted_at.present? &&
first_harvest_predicted_at > Time.zone.today
end
private
def harvests_with_dates
harvests.where.not(harvested_at: nil)
end
end
end

View File

@@ -0,0 +1,80 @@
module PredictPlanting
extend ActiveSupport::Concern
included do # rubocop:disable Metrics/BlockLength
## Triggers
before_save :calculate_lifespan
def calculate_lifespan
self.lifespan = (planted_at.present? && finished_at.present? ? finished_at - planted_at : nil)
end
# dates
def finish_predicted_at
if planted_at.blank?
nil
elsif crop.median_lifespan.present?
planted_at + crop.median_lifespan.days
elsif crop.parent.present? && crop.parent.median_lifespan.present?
planted_at + crop.parent.median_lifespan.days
end
end
# days
def expected_lifespan
if actual_lifespan.present?
actual_lifespan
elsif crop.median_lifespan.present?
crop.median_lifespan
elsif crop.parent.present? && crop.parent.median_lifespan.present?
crop.parent.median_lifespan
end
end
def actual_lifespan
return unless planted_at.present? && finished_at.present?
(finished_at - planted_at).to_i
end
def days_since_planted
(Time.zone.today - planted_at).to_i if planted_at.present?
end
# progress
def percentage_grown
if finished?
100
elsif !finish_is_predicatable?
nil
elsif growing?
calculate_percentage_grown
elsif planted?
0
end
end
# states
def finish_is_predicatable?
crop.annual? && planted_at.present? && finish_predicted_at.present?
end
# Planting has live more then 90 days past predicted finish
def super_late?
late? && (finish_predicted_at + 90.days) < Time.zone.today
end
def late?
crop.annual? && !finished &&
planted_at.present? &&
finish_predicted_at.present? &&
finish_predicted_at <= Time.zone.today
end
private
def calculate_percentage_grown
percent = (days_since_planted / expected_lifespan.to_f) * 100
(percent > 100 ? 100 : percent)
end
end
end

View File

@@ -1,44 +1,46 @@
class Crop < ActiveRecord::Base
extend FriendlyId
friendly_id :name, use: [:slugged, :finders]
friendly_id :name, use: %i(slugged finders)
has_many :scientific_names, after_add: :update_index, after_remove: :update_index
accepts_nested_attributes_for :scientific_names,
allow_destroy: true,
reject_if: :all_blank
has_many :alternate_names, after_add: :update_index, after_remove: :update_index, dependent: :destroy
has_many :plantings
has_many :photos, through: :plantings
has_many :seeds
has_many :harvests
has_many :plant_parts, -> { uniq }, through: :harvests
belongs_to :creator, class_name: 'Member'
belongs_to :requester, class_name: 'Member'
belongs_to :parent, class_name: 'Crop'
has_many :varieties, class_name: 'Crop', foreign_key: 'parent_id'
has_and_belongs_to_many :posts # rubocop:disable Rails/HasAndBelongsToMany
##
## Triggers
before_destroy { |crop| crop.posts.clear }
default_scope { order("lower(name) asc") }
scope :recent, lambda {
where(approval_status: "approved").reorder("created_at desc")
}
scope :toplevel, lambda {
where(approval_status: "approved", parent_id: nil)
}
scope :popular, lambda {
where(approval_status: "approved").reorder("plantings_count desc, lower(name) asc")
}
scope :randomized, lambda {
# ok on sqlite and psql, but not on mysql
where(approval_status: "approved").reorder('random()')
}
##
## Relationships
has_many :scientific_names, after_add: :update_index, after_remove: :update_index, dependent: :destroy
accepts_nested_attributes_for :scientific_names, allow_destroy: true, reject_if: :all_blank
has_many :alternate_names, after_add: :update_index, after_remove: :update_index, dependent: :destroy
has_many :plantings, dependent: :destroy
has_many :seeds, dependent: :destroy
has_many :harvests, dependent: :destroy
has_many :photos, through: :plantings
has_many :plant_parts, -> { uniq.reorder("plant_parts.name") }, through: :harvests
belongs_to :creator, class_name: 'Member'
belongs_to :requester, class_name: 'Member'
belongs_to :parent, class_name: 'Crop'
has_many :varieties, class_name: 'Crop', foreign_key: 'parent_id', dependent: :nullify
has_and_belongs_to_many :posts # rubocop:disable Rails/HasAndBelongsToMany
##
## Scopes
scope :recent, -> { approved.order(created_at: :desc) }
scope :toplevel, -> { approved.where(parent_id: nil) }
scope :popular, -> { approved.order("plantings_count desc, lower(name) asc") }
scope :pending_approval, -> { where(approval_status: "pending") }
scope :approved, -> { where(approval_status: "approved") }
scope :rejected, -> { where(approval_status: "rejected") }
scope :interesting, -> { approved.has_photos }
scope :has_photos, -> { includes(:photos).where.not(photos: { id: nil }) }
##
## Validations
# Reasons are only necessary when rejecting
validates :reason_for_rejection, presence: true, if: :rejected?
## This validation addresses a race condition
validate :approval_status_cannot_be_changed_again
validate :must_be_rejected_if_rejected_reasons_present
validate :must_have_meaningful_reason_for_rejection
## Wikipedia urls are only necessary when approving a crop
validates :en_wikipedia_url,
format: {
@@ -47,16 +49,6 @@ class Crop < ActiveRecord::Base
},
if: :approved?
## Reasons are only necessary when rejecting
validates :reason_for_rejection, presence: true, if: :rejected?
## This validation addresses a race condition
validate :approval_status_cannot_be_changed_again
validate :must_be_rejected_if_rejected_reasons_present
validate :must_have_meaningful_reason_for_rejection
####################################
# Elastic search configuration
if ENV["GROWSTUFF_ELASTICSEARCH"] == "true"
@@ -86,31 +78,25 @@ class Crop < ActiveRecord::Base
} do
mappings dynamic: 'false' do
indexes :id, type: 'long'
indexes :name, type: 'string', analyzer: 'gs_edgeNGram_analyzer'
indexes :approval_status, type: 'string'
indexes :name, type: 'text', analyzer: 'gs_edgeNGram_analyzer'
indexes :approval_status, type: 'text'
indexes :scientific_names do
indexes :name,
type: 'string',
type: 'text',
analyzer: 'gs_edgeNGram_analyzer',
# Disabling field-length norm (norm). If the norm option is turned on(by default),
# higher weigh would be given for shorter fields, which in our case is irrelevant.
norms: { enabled: false }
end
indexes :alternate_names do
indexes :name, type: 'string', analyzer: 'gs_edgeNGram_analyzer'
indexes :name, type: 'text', analyzer: 'gs_edgeNGram_analyzer'
end
end
end
end
def as_indexed_json(_options = {})
as_json(
only: [:id, :name, :approval_status],
include: {
scientific_names: { only: :name },
alternate_names: { only: :name }
}
)
def harvest_photos
Photo.joins(:harvests).where("harvests.crop_id": id)
end
# update the Elasticsearch index (only if we're using it in this
@@ -118,7 +104,6 @@ class Crop < ActiveRecord::Base
def update_index(_name_obj)
__elasticsearch__.index_document if ENV["GROWSTUFF_ELASTICSEARCH"] == "true"
end
# End Elasticsearch section
def to_s
@@ -129,19 +114,13 @@ class Crop < ActiveRecord::Base
scientific_names.first.name unless scientific_names.empty?
end
# crop.default_photo
# currently returns the first available photo, but exists so that
# later we can choose a default photo based on different criteria,
# eg. popularity
def default_photo
return photos.first if photos.any?
# Crop has no photos? Look for the most recent harvest with a photo.
harvest_with_photo = Harvest.where(crop_id: id).joins(:photos).order('harvests.id DESC').limit(1).first
harvest_with_photo.photos.first if harvest_with_photo
first_photo(:plantings) || first_photo(:harvests) || first_photo(:seeds)
end
# crop.sunniness
# returns hash indicating whether this crop is grown in
# sun/semi-shade/shade
# key: sunniness (eg. 'sun')
@@ -150,7 +129,6 @@ class Crop < ActiveRecord::Base
count_uses_of_property 'sunniness'
end
# crop.planted_from
# returns a hash of propagation methods (seed, seedling, etc),
# key: propagation method (eg. 'seed')
# value: count of how many times it's been used by plantings
@@ -158,16 +136,19 @@ class Crop < ActiveRecord::Base
count_uses_of_property 'planted_from'
end
# crop.popular_plant_parts
# returns a hash of most harvested plant parts (fruit, seed, etc)
# key: plant part (eg. 'fruit')
# value: count of how many times it's been used by harvests
def popular_plant_parts
popular_plant_parts = Hash.new(0)
harvests.each do |h|
popular_plant_parts[h.plant_part] += 1 if h.plant_part
end
popular_plant_parts
PlantPart.joins(:harvests)
.where("crop_id = ?", id)
.order("count_harvests_id DESC")
.group("plant_parts.id", "plant_parts.name")
.count("harvests.id")
end
def annual?
!perennial
end
def interesting?
@@ -198,166 +179,46 @@ class Crop < ActiveRecord::Base
["already in database", "not edible", "not enough information", "other"]
end
# Crop.interesting
# returns a list of interesting crops, for use on the homepage etc
def self.interesting
howmany = 12 # max number to find
interesting_crops = []
Crop.includes(:photos).randomized.each do |c|
break if interesting_crops.size == howmany
next unless c.interesting?
interesting_crops.push(c)
end
interesting_crops
end
# Crop.create_from_csv(row)
# used by db/seeds.rb and rake growstuff:import_crops
# CSV fields:
# - name (required)
# - en_wikipedia_url (required)
# - parent (name, optional)
# - scientific name (optional, can be picked up from parent if it has one)
def self.create_from_csv(row)
name, en_wikipedia_url, parent, scientific_names, alternate_names = row
cropbot = Member.find_by(login_name: 'cropbot')
raise "cropbot account not found: run rake db:seed" unless cropbot
crop = Crop.find_or_create_by(name: name)
crop.update_attributes(
en_wikipedia_url: en_wikipedia_url,
creator_id: cropbot.id
)
if parent
parent = Crop.find_by(name: parent)
if parent
crop.update_attributes(parent_id: parent.id)
else
logger.warn("Warning: parent crop #{parent} not found")
end
end
crop.add_scientific_names_from_csv(scientific_names)
crop.add_alternate_names_from_csv(alternate_names)
end
def add_scientific_names_from_csv(scientific_names)
names_to_add = []
if !scientific_names.blank? # i.e. we actually passed something in, which isn't a given
names_to_add = scientific_names.split(/,\s*/)
elsif parent && !parent.scientific_names.empty? # pick up from parent
names_to_add = parent.scientific_names.map(&:name)
else
logger.warn("Warning: no scientific name (not even on parent crop) for #{self}")
end
cropbot = Member.find_by(login_name: 'cropbot')
return if names_to_add.empty?
raise "cropbot account not found: run rake db:seed" unless cropbot
add_names_to_list(names_to_add, 'scientific')
end
def add_alternate_names_from_csv(alternate_names)
# i.e. we actually passed something in, which isn't a given
return if alternate_names.blank?
cropbot = Member.find_by!(login_name: 'cropbot')
names_to_add = alternate_names.split(/,\s*/)
add_names_to_list(names_to_add, 'alternate')
rescue
raise "cropbot account not found: run rake db:seed" unless cropbot
end
def rejection_explanation
return rejection_notes if reason_for_rejection == "other"
reason_for_rejection
end
# Crop.search(string)
def update_medians
plantings.each(&:update_harvest_days!)
update_lifespan_medians
update_harvest_medians
end
def update_lifespan_medians
# Median lifespan of plantings
update(median_lifespan: Planting.where(crop: self).median(:lifespan))
end
def update_harvest_medians
update(median_days_to_first_harvest: Planting.where(crop: self).median(:days_to_first_harvest))
update(median_days_to_last_harvest: Planting.where(crop: self).median(:days_to_last_harvest))
end
def self.search(query)
if ENV['GROWSTUFF_ELASTICSEARCH'] == "true"
search_str = query.nil? ? "" : query.downcase
response = __elasticsearch__.search( # Finds documents which match any field, but uses the _score from
# the best field insead of adding up _score from each field.
query: {
multi_match: {
query: search_str.to_s,
analyzer: "standard",
fields: ["name",
"scientific_names.scientific_name",
"alternate_names.name"]
}
},
filter: {
term: { approval_status: "approved" }
},
size: 50
)
response.records.to_a
else
# if we don't have elasticsearch, just do a basic SQL query.
# also, make sure it's an actual array not an activerecord
# collection, so it matches what we get from elasticsearch and we can
# manipulate it in the same ways (eg. deleting elements without deleting
# the whole record from the db)
matches = Crop.approved.where("name ILIKE ?", "%#{query}%").to_a
# we want to make sure that exact matches come first, even if not
# using elasticsearch (eg. in development)
exact_match = Crop.approved.find_by(name: query)
if exact_match
matches.delete(exact_match)
matches.unshift(exact_match)
end
matches
end
CropSearchService.search(query)
end
def self.case_insensitive_name(name)
where(["lower(name) = :value", { value: name.downcase }])
where(["lower(crops.name) = :value", { value: name.downcase }])
end
private
def add_names_to_list(names_to_add, list_name)
names_to_add.each do |n|
if name_already_exists(list_name, n)
logger.warn("Warning: skipping duplicate #{list_name} name #{n} for #{self}")
else
create_crop_in_list(list_name, n)
end
end
end
def create_crop_in_list(list_name, name)
cropbot = Member.find_by(login_name: 'cropbot')
create_hash = {
creator_id: cropbot.id.to_s,
name: name
}
send("#{list_name}_names").create(create_hash)
end
def name_already_exists(list_name, name)
send("#{list_name}_names").exists?(name: name)
end
def count_uses_of_property(col_name)
data = Hash.new(0)
plantings.each do |p|
data[p.send(col_name.to_s)] += 1 unless p.send(col_name.to_s).blank?
end
data
plantings.unscoped
.where(crop_id: id)
.where.not(col_name => nil)
.group(col_name)
.count
end
# Custom validations
def approval_status_cannot_be_changed_again
previous = previous_changes.include?(:approval_status) ? previous_changes.approval_status : {}
return unless previous.include?(:rejected) || previous.include?(:approved)
@@ -374,4 +235,8 @@ class Crop < ActiveRecord::Base
return unless reason_for_rejection == "other" && rejection_notes.blank?
errors.add(:rejection_notes, "must be added if the reason for rejection is \"other\"")
end
def first_photo(type)
Photo.joins(type).where("#{type}": { crop_id: id }).order("photos.created_at DESC").first
end
end

View File

@@ -0,0 +1,70 @@
class CsvImporter
# used by db/seeds.rb and rake growstuff:import_crops
# CSV fields:
# - name (required)
# - en_wikipedia_url (required)
# - parent (name, optional)
# - scientific name (optional, can be picked up from parent if it has one)
def import_crop(row)
name, en_wikipedia_url, parent_name, scientific_names, alternate_names = row
@crop = Crop.find_or_create_by(name: name)
@crop.update_attributes(
en_wikipedia_url: en_wikipedia_url,
creator_id: cropbot.id
)
add_parent(parent_name) if parent_name
add_scientific_names(scientific_names)
add_alternate_names(alternate_names)
@crop.save!
@crop
end
private
def add_parent(parent_name)
parent = Crop.find_by(name: parent_name)
if parent
@crop.update_attributes(parent_id: parent.id)
else
@crop.logger.warn("Warning: parent crop #{parent_name} not found")
end
end
def add_scientific_names(scientific_names)
names_to_add = []
if scientific_names.present? # i.e. we actually passed something in, which isn't a given
names_to_add = scientific_names.split(/,\s*/)
elsif @crop.parent && !@crop.parent.scientific_names.empty? # pick up from parent
names_to_add = @crop.parent.scientific_names.map(&:name)
else
@crop.logger.warn("Warning: no scientific name (not even on parent crop) for #{self}")
end
return if names_to_add.empty?
names_to_add.each do |name|
sciname = ScientificName.find_by(name: name, crop: @crop)
sciname ||= ScientificName.create!(name: name, crop: @crop, creator: cropbot)
@crop.scientific_names << sciname
end
end
def add_alternate_names(alternate_names)
# i.e. we actually passed something in, which isn't a given
return if alternate_names.blank?
alternate_names.split(/,\s*/).each do |name|
altname = AlternateName.find_by(name: name, crop: @crop)
altname ||= AlternateName.create! name: name, crop: @crop, creator: cropbot
@crop.alternate_names << altname
end
end
def cropbot
@cropbot ||= Member.find_by!(login_name: 'cropbot')
@cropbot
rescue StandardError
raise "cropbot account not found: run rake db:seed"
end
end

View File

@@ -1,9 +1,10 @@
class Forum < ActiveRecord::Base
extend FriendlyId
friendly_id :name, use: [:slugged, :finders]
include Ownable
validates :name, presence: true
friendly_id :name, use: %i(slugged finders)
has_many :posts
belongs_to :owner, class_name: "Member"
def to_s
name

Some files were not shown because too many files have changed in this diff Show More