From c87a5f2d6b0bfcdeea22211fa581e294baccc7b4 Mon Sep 17 00:00:00 2001 From: Daniel O'Connor Date: Thu, 27 Aug 2015 14:32:37 +0930 Subject: [PATCH 01/15] Fix #819 by removing the popover behaviour for a standard avatar; and putting the stats onto the card. --- .../members/_image_with_popover.html.haml | 12 ------------ app/views/members/_popover.html.haml | 15 --------------- app/views/members/_thumbnail.html.haml | 18 +++++++++++++++--- 3 files changed, 15 insertions(+), 30 deletions(-) delete mode 100644 app/views/members/_image_with_popover.html.haml delete mode 100644 app/views/members/_popover.html.haml diff --git a/app/views/members/_image_with_popover.html.haml b/app/views/members/_image_with_popover.html.haml deleted file mode 100644 index 965ac4f47..000000000 --- a/app/views/members/_image_with_popover.html.haml +++ /dev/null @@ -1,12 +0,0 @@ -= link_to | - image_tag( | - avatar_uri(member, 150), | - :alt => member.login_name, | - :class => 'img-responsive member-image' | - ), | - member, | - :rel => "popover", | - 'data-trigger' => 'hover', | - 'data-title' => member.login_name, | - 'data-content' => "#{ render :partial => 'members/popover', :locals => { :member => member } }", | - 'data-html' => true diff --git a/app/views/members/_popover.html.haml b/app/views/members/_popover.html.haml deleted file mode 100644 index 24122c560..000000000 --- a/app/views/members/_popover.html.haml +++ /dev/null @@ -1,15 +0,0 @@ -%small - %p - - if member.location - %i - = member.location - %p - Joined - = distance_of_time_in_words(member.created_at, Time.zone.now) - ago. - %p - = pluralize(member.gardens.size, "garden") - %br/ - = pluralize(member.plantings.size, "planting") - %br/ - = pluralize(member.seeds.size, "seed") diff --git a/app/views/members/_thumbnail.html.haml b/app/views/members/_thumbnail.html.haml index 5f0f9c58d..604081a73 100644 --- a/app/views/members/_thumbnail.html.haml +++ b/app/views/members/_thumbnail.html.haml @@ -1,16 +1,28 @@ - cache member do .member-thumbnail.panel %div - = render :partial => "members/image_with_popover", :locals => { :member => member } + = render :partial => "members/avatar", :locals => { :member => member } %div %p = link_to member.login_name, member - - if ! member.location.blank? + - if !member.location.blank? %small %br/ %i= member.location - - if ! member.plantings.empty? + - if !member.plantings.empty? %small %br/ Recently planted: != member.plantings.first(3).map{|p| link_to p.crop_name, p }.join(", ") + %p + %small + Joined + = distance_of_time_in_words(member.created_at, Time.zone.now) + ago. + %p + %small + = pluralize(member.gardens.size, "garden") + %br/ + = pluralize(member.plantings.size, "planting") + %br/ + = pluralize(member.seeds.size, "seed") From a0cdf3a8b22a0acc161bf954b6f1f2609f300502 Mon Sep 17 00:00:00 2001 From: Daniel O'Connor Date: Thu, 27 Aug 2015 15:12:05 +0930 Subject: [PATCH 02/15] Fix #818 by removing the .thumbnail around the button. Also rearrange some of the headings (sizing) and controls (add new garden) to be more clearly not a tab. --- app/views/members/_gardens.html.haml | 39 ++++++++++++++++++---------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/app/views/members/_gardens.html.haml b/app/views/members/_gardens.html.haml index ddee17d3a..7733e298d 100644 --- a/app/views/members/_gardens.html.haml +++ b/app/views/members/_gardens.html.haml @@ -7,31 +7,42 @@ - first_garden = false = link_to g.name, "#garden#{g.id}", 'data-toggle' => 'tab' - if current_member == member - %li= link_to 'New Garden', new_garden_path - .tab-content + %li.navbar-right + = link_to new_garden_path, class: 'btn' do + Add New Garden + .tab-content{style: "padding-top: 1em"} - first_garden = true - member.gardens.each do |g| %div{:class => ['tab-pane', first_garden ? 'active' : ''], :id => "garden#{g.id}"} - first_garden = false - %div + .container :growstuff_markdown #{ strip_tags g.description } + - unless g.description + .row + %p No description available yet. + + - if can? :edit, g + %p + Why not + = link_to 'tell us more.', edit_garden_path(g) + - if g.photos.size > 0 or (can? :edit, g and can? :create, Photo) .row - %h2 Photos - - %ul.thumbnails - - g.photos.each do |p| - .col-md-2.six-across - = render :partial => 'photos/thumbnail', :locals => { :photo => p } - - if can? :create, Photo and can? :edit, g - .col-md-2 - .thumbnail(style='height: 220px') - %p{:style => 'text-align: center; padding-top: 50px'} - = link_to "Add photo", new_photo_path(:type => "garden", :id => g.id), :class => 'btn btn-primary' + %h3 Photos + %p= pluralize(g.photos.length, "photo") + .row + %ul.thumbnails + - g.photos.each do |p| + .col-md-2.six-across + = render :partial => 'photos/thumbnail', :locals => { :photo => p } + .row + - if can? :create, Photo and can? :edit, g + %p + = link_to "Add photo", new_photo_path(:type => "garden", :id => g.id), :class => 'btn btn-primary' %h3 What's planted here? .row From ff00b2c985a2ec9b00e71df95e242e3c509592a0 Mon Sep 17 00:00:00 2001 From: Daniel O'Connor Date: Thu, 27 Aug 2015 15:25:16 +0930 Subject: [PATCH 03/15] Fix #818 and layout of show garden page --- app/views/gardens/show.html.haml | 49 ++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/app/views/gardens/show.html.haml b/app/views/gardens/show.html.haml index 526074e4a..4e666f8d5 100644 --- a/app/views/gardens/show.html.haml +++ b/app/views/gardens/show.html.haml @@ -2,7 +2,6 @@ .row .col-md-9 - - if can? :edit, @garden or can? :delete, @garden %p.btn-group - if can? :edit, @garden @@ -28,33 +27,41 @@ %div :growstuff_markdown #{strip_tags @garden.description} + - unless @garden.description + .row-fluid + %p No description available yet. + + - if can? :edit, @garden + %p + Why not + = link_to 'tell us more.', edit_garden_path(@garden) - if @garden.photos.size > 0 or (can? :edit, @garden and can? :create, Photo) - .row - %h2 Photos - - %ul.thumbnails - - @garden.photos.each do |p| - .col-md-2.six-across - = render :partial => 'photos/thumbnail', :locals => { :photo => p } + .row-fluid + %h3 Photos + %p= pluralize(@garden.photos.length, "photo") + .row-fluid + %ul.thumbnails + - @garden.photos.each do |p| + .col-md-2.six-across + = render :partial => 'photos/thumbnail', :locals => { :photo => p } + .row-fluid - if can? :create, Photo and can? :edit, @garden - .col-md-2 - .thumbnail(style='height: 220px') - %p{:style => 'text-align: center; padding-top: 50px'} - = link_to "Add photo", new_photo_path(:type => "garden", :id => @garden.id), :class => 'btn btn-primary' + %p + = link_to "Add photo", new_photo_path(:type => "garden", :id => @garden.id), :class => 'btn btn-primary' - %h3 What's planted here? - - if @garden.plantings.current.size > 0 - .row + .row-fluid + %h3 What's planted here? + - if @garden.plantings.current.size > 0 - @garden.plantings.current.each.with_index do |planting_current, index_current| = render partial: "plantings/thumbnail", locals: {:planting => planting_current} - - else - %p - Nothing is currently planted here. + - else + %p + Nothing is currently planted here. - %h3 Previously planted in this garden - - if @garden.plantings.finished.size > 0 - .row + .row-fluid + %h3 Previously planted in this garden + - if @garden.plantings.finished.size > 0 - @garden.plantings.finished.each.with_index do |planting_finished| = render partial: "plantings/thumbnail", locals: {:planting => planting_finished} From 631747e9191ae1fe9317017752189d7f205e3857 Mon Sep 17 00:00:00 2001 From: Daniel O'Connor Date: Thu, 27 Aug 2015 15:26:40 +0930 Subject: [PATCH 04/15] Add a trailing sentence. --- app/views/gardens/show.html.haml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/views/gardens/show.html.haml b/app/views/gardens/show.html.haml index 4e666f8d5..0900eac40 100644 --- a/app/views/gardens/show.html.haml +++ b/app/views/gardens/show.html.haml @@ -64,7 +64,9 @@ - if @garden.plantings.finished.size > 0 - @garden.plantings.finished.each.with_index do |planting_finished| = render partial: "plantings/thumbnail", locals: {:planting => planting_finished} - + - else + %p + Nothing has been planted here. .col-md-3 %h4 About this garden %p From f3579167790eb1377d53f851d72a11e6466abc45 Mon Sep 17 00:00:00 2001 From: Daniel O'Connor Date: Sat, 29 Aug 2015 07:49:55 +0930 Subject: [PATCH 05/15] For more accurate specs, explicitly target the login-name container --- app/views/members/_thumbnail.html.haml | 2 +- spec/features/members_list_spec.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/members/_thumbnail.html.haml b/app/views/members/_thumbnail.html.haml index 604081a73..04d92cfc3 100644 --- a/app/views/members/_thumbnail.html.haml +++ b/app/views/members/_thumbnail.html.haml @@ -3,7 +3,7 @@ %div = render :partial => "members/avatar", :locals => { :member => member } %div - %p + %p.login-name = link_to member.login_name, member - if !member.location.blank? %small diff --git a/spec/features/members_list_spec.rb b/spec/features/members_list_spec.rb index 073572795..a7857bafd 100644 --- a/spec/features/members_list_spec.rb +++ b/spec/features/members_list_spec.rb @@ -11,7 +11,7 @@ feature "members list" do expect(page).to have_css "#sort" expect(page).to have_selector "form" click_button('Show') - all_links = page.all("#maincontainer p") + all_links = page.all("#maincontainer p.login-name") expect(all_links.first).to have_text member1.login_name expect(all_links.last).to have_text member2.login_name end @@ -22,7 +22,7 @@ feature "members list" do expect(page).to have_selector "form" select("recently", :from => 'sort') click_button('Show') - all_links = page.all("#maincontainer p") + all_links = page.all("#maincontainer p.login-name") expect(all_links.first).to have_text member3.login_name expect(all_links.last).to have_text member1.login_name end From ff779b6679fb66c42c64971e4e659af8f14ce8ac Mon Sep 17 00:00:00 2001 From: Daniel O'Connor Date: Sat, 29 Aug 2015 07:51:53 +0930 Subject: [PATCH 06/15] Trial rendering as comma separated --- app/views/members/_thumbnail.html.haml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/views/members/_thumbnail.html.haml b/app/views/members/_thumbnail.html.haml index 04d92cfc3..a55c34e50 100644 --- a/app/views/members/_thumbnail.html.haml +++ b/app/views/members/_thumbnail.html.haml @@ -21,8 +21,4 @@ ago. %p %small - = pluralize(member.gardens.size, "garden") - %br/ - = pluralize(member.plantings.size, "planting") - %br/ - = pluralize(member.seeds.size, "seed") + = [pluralize(member.gardens.size, "garden"), pluralize(member.plantings.size, "planting"), pluralize(member.seeds.size, "seed")].join(", ") From 3e8f017ad02d70ba0f491115d41a93e50cd8f7e4 Mon Sep 17 00:00:00 2001 From: Savant Krishna Date: Fri, 4 Sep 2015 12:50:38 +1000 Subject: [PATCH 07/15] Modify markdown to render quick links to members using [name](member) or @name : Feature #504 --- lib/haml/filters/growstuff_markdown.rb | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/lib/haml/filters/growstuff_markdown.rb b/lib/haml/filters/growstuff_markdown.rb index dba081e44..bda3f078d 100644 --- a/lib/haml/filters/growstuff_markdown.rb +++ b/lib/haml/filters/growstuff_markdown.rb @@ -3,6 +3,8 @@ require 'bluecloth' module Haml::Filters module GrowstuffMarkdown CROP_REGEX = /\[([^\[\]]+?)\]\(crop\)/ + MEMBER_REGEX = /\[([^\[\]]+?)\]\(member\)/ + MEMBER_AT_REGEX = /\@([^\[ \n]+)/ include Haml::Filters::Base def render(text) @@ -20,6 +22,32 @@ module Haml::Filters end end + # turn [jane](member) into [jane](http://growstuff.org/members/jane) + expanded = expanded.gsub(MEMBER_REGEX) do |m| + member_str = $1 + # find crop case-insensitively + member = Member.where('lower(login_name) = ?', member_str.downcase).first + if member + url = Rails.application.routes.url_helpers.member_url(member, :only_path => true) + "[#{member_str}](#{url})" + else + member_str + end + end + + # turn @jane into [@jane](http://growstuff.org/members/jane) + expanded = expanded.gsub(MEMBER_AT_REGEX) do |m| + member_str = $1 + # find crop case-insensitively + member = Member.where('lower(login_name) = ?', member_str.downcase).first + if member + url = Rails.application.routes.url_helpers.member_url(member, :only_path => true) + "[#{"@"+member_str}](#{url})" + else + member_str + end + end + return BlueCloth.new(expanded).to_html end From b74d89c4823568e541f3515224a8e90cf1a8bc52 Mon Sep 17 00:00:00 2001 From: Savant Krishna Date: Fri, 4 Sep 2015 13:23:10 +1000 Subject: [PATCH 08/15] Tests for member quicklinks and @member links --- .../haml/filters/growstuff_markdown_spec.rb | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/spec/lib/haml/filters/growstuff_markdown_spec.rb b/spec/lib/haml/filters/growstuff_markdown_spec.rb index 8abe8aee4..731038b79 100644 --- a/spec/lib/haml/filters/growstuff_markdown_spec.rb +++ b/spec/lib/haml/filters/growstuff_markdown_spec.rb @@ -15,6 +15,20 @@ def output_link(crop, name=nil) end end +def input_member_link(name) + return "[#{name}](member)" +end + +def output_member_link(member, name=nil) + url = Rails.application.routes.url_helpers.member_url(member, :only_path => true) + if name + return "#{name}" + else + return "#{member.login_name}" + end +end + + describe 'Haml::Filters::Growstuff_Markdown' do it 'is registered as the handler for :growstuff_markdown' do Haml::Filters::defined['growstuff_markdown'].should == @@ -60,4 +74,27 @@ describe 'Haml::Filters::Growstuff_Markdown' do rendered.should match "test" end + it 'converts quick member links' do + @member = FactoryGirl.create(:member) + rendered = Haml::Filters::GrowstuffMarkdown.render(input_member_link(@member.login_name)) + rendered.should match /#{output_member_link(@member)}/ + end + + it "doesn't convert nonexistent members" do + rendered = Haml::Filters::GrowstuffMarkdown.render(input_member_link("not a member")) + rendered.should match /not a member/ + end + + it 'converts @ member links' do + @member = FactoryGirl.create(:member) + rendered = Haml::Filters::GrowstuffMarkdown.render("@#{@member.login_name}") + rendered.should match /#{output_member_link(@member, "@#{@member.login_name}")}/ + end + + it "doesn't convert nonexistent @ members" do + rendered = Haml::Filters::GrowstuffMarkdown.render("@not-a-member") + rendered.should match /@not-a-member/ + end + + end From aacf7b1f0951685a054ba049e3dae6740d3205b9 Mon Sep 17 00:00:00 2001 From: Savant Krishna Date: Fri, 4 Sep 2015 13:31:03 +1000 Subject: [PATCH 09/15] Modify regex to include @ in the group --- lib/haml/filters/growstuff_markdown.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/haml/filters/growstuff_markdown.rb b/lib/haml/filters/growstuff_markdown.rb index bda3f078d..ae2d09144 100644 --- a/lib/haml/filters/growstuff_markdown.rb +++ b/lib/haml/filters/growstuff_markdown.rb @@ -4,7 +4,7 @@ module Haml::Filters module GrowstuffMarkdown CROP_REGEX = /\[([^\[\]]+?)\]\(crop\)/ MEMBER_REGEX = /\[([^\[\]]+?)\]\(member\)/ - MEMBER_AT_REGEX = /\@([^\[ \n]+)/ + MEMBER_AT_REGEX = /(\@[^\[ \n]+)/ include Haml::Filters::Base def render(text) @@ -39,10 +39,10 @@ module Haml::Filters expanded = expanded.gsub(MEMBER_AT_REGEX) do |m| member_str = $1 # find crop case-insensitively - member = Member.where('lower(login_name) = ?', member_str.downcase).first + member = Member.where('lower(login_name) = ?', member_str[1..-1].downcase).first if member url = Rails.application.routes.url_helpers.member_url(member, :only_path => true) - "[#{"@"+member_str}](#{url})" + "[#{member_str}](#{url})" else member_str end From 0adb24fa4d6a0069b3416b3804d9dca2d293147e Mon Sep 17 00:00:00 2001 From: Savant Krishna Date: Sun, 6 Sep 2015 09:10:18 +1000 Subject: [PATCH 10/15] Add quick member link help to markdown help --- app/views/shared/_markdown_help.html.haml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/views/shared/_markdown_help.html.haml b/app/views/shared/_markdown_help.html.haml index 41aaa1a31..28505a083 100644 --- a/app/views/shared/_markdown_help.html.haml +++ b/app/views/shared/_markdown_help.html.haml @@ -5,3 +5,5 @@ to format your text. For instance, *italic*, **bold**, or a link [like this](http://to.some.site.com/). %br/ Quick crop links: [sweet potato](crop). +%br/ +Quick member links: @Username or [Username](member). From f36e9d726edec45239950a381823bc5013dcb4bd Mon Sep 17 00:00:00 2001 From: Savant Krishna Date: Sun, 6 Sep 2015 14:35:35 +1000 Subject: [PATCH 11/15] Change @ regex to match alphanumeric or _ and modify test string --- lib/haml/filters/growstuff_markdown.rb | 2 +- spec/lib/haml/filters/growstuff_markdown_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/haml/filters/growstuff_markdown.rb b/lib/haml/filters/growstuff_markdown.rb index ae2d09144..5fcb9eaf6 100644 --- a/lib/haml/filters/growstuff_markdown.rb +++ b/lib/haml/filters/growstuff_markdown.rb @@ -4,7 +4,7 @@ module Haml::Filters module GrowstuffMarkdown CROP_REGEX = /\[([^\[\]]+?)\]\(crop\)/ MEMBER_REGEX = /\[([^\[\]]+?)\]\(member\)/ - MEMBER_AT_REGEX = /(\@[^\[ \n]+)/ + MEMBER_AT_REGEX = /(\@\w+)/ include Haml::Filters::Base def render(text) diff --git a/spec/lib/haml/filters/growstuff_markdown_spec.rb b/spec/lib/haml/filters/growstuff_markdown_spec.rb index 731038b79..e3b655221 100644 --- a/spec/lib/haml/filters/growstuff_markdown_spec.rb +++ b/spec/lib/haml/filters/growstuff_markdown_spec.rb @@ -87,7 +87,7 @@ describe 'Haml::Filters::Growstuff_Markdown' do it 'converts @ member links' do @member = FactoryGirl.create(:member) - rendered = Haml::Filters::GrowstuffMarkdown.render("@#{@member.login_name}") + rendered = Haml::Filters::GrowstuffMarkdown.render("Hey @#{@member.login_name}! What's up") rendered.should match /#{output_member_link(@member, "@#{@member.login_name}")}/ end From 7afd38a1ee7d923f020266082be88936bf34da47 Mon Sep 17 00:00:00 2001 From: Savant Krishna Date: Sun, 6 Sep 2015 04:17:39 -0400 Subject: [PATCH 12/15] Fix #721 : Escape quick crop link in markdown Lookahead in markdown to verify \ is not present Test for escaping crop link --- lib/haml/filters/growstuff_markdown.rb | 2 +- spec/lib/haml/filters/growstuff_markdown_spec.rb | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/haml/filters/growstuff_markdown.rb b/lib/haml/filters/growstuff_markdown.rb index dba081e44..ef1ad7615 100644 --- a/lib/haml/filters/growstuff_markdown.rb +++ b/lib/haml/filters/growstuff_markdown.rb @@ -2,7 +2,7 @@ require 'bluecloth' module Haml::Filters module GrowstuffMarkdown - CROP_REGEX = /\[([^\[\]]+?)\]\(crop\)/ + CROP_REGEX = /(? Date: Sun, 6 Sep 2015 05:41:25 -0400 Subject: [PATCH 13/15] Escape member links for [name](member) and @name using backslash Change regex to lookforward When escaping \@name remove \ --- lib/haml/filters/growstuff_markdown.rb | 11 +++++++---- spec/lib/haml/filters/growstuff_markdown_spec.rb | 12 ++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/lib/haml/filters/growstuff_markdown.rb b/lib/haml/filters/growstuff_markdown.rb index 5fcb9eaf6..55e9df6f5 100644 --- a/lib/haml/filters/growstuff_markdown.rb +++ b/lib/haml/filters/growstuff_markdown.rb @@ -3,8 +3,9 @@ require 'bluecloth' module Haml::Filters module GrowstuffMarkdown CROP_REGEX = /\[([^\[\]]+?)\]\(crop\)/ - MEMBER_REGEX = /\[([^\[\]]+?)\]\(member\)/ - MEMBER_AT_REGEX = /(\@\w+)/ + MEMBER_REGEX = /(? true) @@ -38,7 +39,7 @@ module Haml::Filters # turn @jane into [@jane](http://growstuff.org/members/jane) expanded = expanded.gsub(MEMBER_AT_REGEX) do |m| member_str = $1 - # find crop case-insensitively + # find member case-insensitively member = Member.where('lower(login_name) = ?', member_str[1..-1].downcase).first if member url = Rails.application.routes.url_helpers.member_url(member, :only_path => true) @@ -48,6 +49,8 @@ module Haml::Filters end end + expanded = expanded.gsub(MEMBER_ESCAPE_AT_REGEX, "") + return BlueCloth.new(expanded).to_html end diff --git a/spec/lib/haml/filters/growstuff_markdown_spec.rb b/spec/lib/haml/filters/growstuff_markdown_spec.rb index e3b655221..73946ff00 100644 --- a/spec/lib/haml/filters/growstuff_markdown_spec.rb +++ b/spec/lib/haml/filters/growstuff_markdown_spec.rb @@ -85,6 +85,13 @@ describe 'Haml::Filters::Growstuff_Markdown' do rendered.should match /not a member/ end + it "doesn't convert escaped members" do + @member = FactoryGirl.create(:member) + rendered = Haml::Filters::GrowstuffMarkdown.render("\\" << input_member_link(@member.login_name)) + rendered.should match /\[#{@member.login_name}\]\(member\)/ + end + + it 'converts @ member links' do @member = FactoryGirl.create(:member) rendered = Haml::Filters::GrowstuffMarkdown.render("Hey @#{@member.login_name}! What's up") @@ -96,5 +103,10 @@ describe 'Haml::Filters::Growstuff_Markdown' do rendered.should match /@not-a-member/ end + it "doesn't convert escaped @ members" do + @member = FactoryGirl.create(:member) + rendered = Haml::Filters::GrowstuffMarkdown.render("Hey \\@#{@member.login_name}! What's up") + rendered.should match /Hey @#{@member.login_name}!/ + end end From 9e7a80cb86dbca7760c1b982cccb12a1534c3a31 Mon Sep 17 00:00:00 2001 From: Savant Krishna Date: Mon, 7 Sep 2015 04:01:20 -0400 Subject: [PATCH 14/15] Fix bug #827 : Error in generating csv file for plantings with owner filter --- app/controllers/plantings_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/plantings_controller.rb b/app/controllers/plantings_controller.rb index bba983b6c..543981170 100644 --- a/app/controllers/plantings_controller.rb +++ b/app/controllers/plantings_controller.rb @@ -20,7 +20,7 @@ class PlantingsController < ApplicationController format.json { render json: @plantings } format.rss { render :layout => false } #index.rss.builder format.csv do - specifics = (@owner ? "#{@owner.name}-" : @crop ? "#{@crop.name}-" : nil) + specifics = (@owner ? "#{@owner.login_name}-" : @crop ? "#{@crop.name}-" : nil) @filename = "Growstuff-#{specifics}Plantings-#{Time.zone.now.to_s(:number)}.csv" render :csv => @plantings end From 342323e5668615625fc55464c1f714556ae493c3 Mon Sep 17 00:00:00 2001 From: Savant Krishna Date: Mon, 7 Sep 2015 20:05:24 -0400 Subject: [PATCH 15/15] Add test for trying to quicklink non-existent @ member --- spec/lib/haml/filters/growstuff_markdown_spec.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/spec/lib/haml/filters/growstuff_markdown_spec.rb b/spec/lib/haml/filters/growstuff_markdown_spec.rb index 73946ff00..94c60b88e 100644 --- a/spec/lib/haml/filters/growstuff_markdown_spec.rb +++ b/spec/lib/haml/filters/growstuff_markdown_spec.rb @@ -98,11 +98,19 @@ describe 'Haml::Filters::Growstuff_Markdown' do rendered.should match /#{output_member_link(@member, "@#{@member.login_name}")}/ end - it "doesn't convert nonexistent @ members" do + it "doesn't convert invalid @ members" do rendered = Haml::Filters::GrowstuffMarkdown.render("@not-a-member") rendered.should match /@not-a-member/ end + it "doesn't convert nonexistent @ members" do + @member = FactoryGirl.create(:member) + @member_name = @member.login_name + @member.destroy + rendered = Haml::Filters::GrowstuffMarkdown.render("Hey @#{@member_name}") + rendered.should match /Hey @#{@member_name}/ + end + it "doesn't convert escaped @ members" do @member = FactoryGirl.create(:member) rendered = Haml::Filters::GrowstuffMarkdown.render("Hey \\@#{@member.login_name}! What's up")