Improving crop request form

This commit is contained in:
Skud
2015-02-17 20:44:24 +11:00
parent ac6aa730c1
commit 1dfac3fb2f
3 changed files with 76 additions and 61 deletions

View File

@@ -6,86 +6,92 @@
- @crop.errors.full_messages.each do |msg|
%li= msg
-# Handy link to crop wrangling policy/style guide, shown to wranglers only
- if can? :wrangle, @crop
%p
%span.help-block
For detailed crop wrangling guidelines, please consult the
=link_to "crop wrangling guide", "http://wiki.growstuff.org/index.php/Crop_wrangling"
on the Growstuff wiki.
-# Everyone (wranglers and requesters) sees the basic info section
%h2 Basic information
.form-group
= f.label :name, :class => 'control-label col-md-2'
.col-md-8
= f.text_field :name, :class => 'form-control'
%span.help-block
- if can? :wrangle, @crop
Name in US English; singular; capitalize proper nouns only.
- else
Please provide the common name for the crop, in English, if you know it.
%span.help-block
The common name for the crop, in English (required).
- if can? :wrangle, @crop
Wranglers: please ensure this is singular, and capitalize
proper nouns only.
.form-group
= f.label :en_wikipedia_url, 'Wikipedia URL', :class => 'control-label col-md-2'
.col-md-8
= f.text_field :en_wikipedia_url, :class => 'form-control'
%span.help-block
- if can? :wrangle, @crop
Link to this crop's page on the English language Wikipedia.
- else
Please provide a link to the crop's page on the English language Wikipedia. Crops without Wikipedia pages cannot be added to our database at this time.
- if can? :wrangle, @crop
%span.help-block
Link to the crop's page on the English language Wikipedia (required).
-# Only crop wranglers see the crop hierarchy (for now)
- if can? :wrangle, @crop
.form-group
= f.label :parent_id, 'Parent crop', :class => 'control-label col-md-2'
.col-md-8
= collection_select(:crop, :parent_id, Crop.all, :id, :name, {:include_blank => true}, :class => 'form-control')
%span.help-block Optional. For setting up crop hierarchies for varieties etc.
%p
%span.help-block
You may enter up to 3 scientific names for a crop. Most crops will have only one.
= f.fields_for :scientific_names do |sn|
.form-group
= sn.label :scientific_name, "Scientific name", :class => 'control-label col-md-2'
.col-md-8
= sn.text_field :scientific_name, :class => 'form-control'
.col-md-2
- if sn.object && sn.object.persisted?
%label.checkbox
= sn.check_box :_destroy
= sn.label :_destroy, "Delete"
- unless @crop.new_record?
.form-group
= f.label :approval_status, 'Approval Status', :class=> 'control-label col-md-2'
.col-md-8
= f.select(:approval_status, @crop.approval_statuses, {}, {:class => 'form-control'})
-# Everyone (wranglers and requesters) gets to add scientific names
%h2 Scientific names
%p You may enter up to 3 scientific names for a crop. Most crops will have only one.
.form-group
= f.label :reason_for_rejection, 'Reason for rejection', :class => 'control-label col-md-2'
.col-md-8
= f.select(:reason_for_rejection, @crop.reasons_for_rejection, {:include_blank => true}, {:class => 'form-control'})
%p
= f.fields_for :scientific_names do |sn|
.form-group
= sn.label :scientific_name, "Scientific name", :class => 'control-label col-md-2'
.col-md-8
= sn.text_field :scientific_name, :class => 'form-control'
.col-md-2
- if sn.object && sn.object.persisted?
%label.checkbox
= sn.check_box :_destroy
= sn.label :_destroy, "Delete"
-# This is used for comments from crop requesters. We need to show it
-# to everyone, but we don't include it on new crops from wranglers.
- if (can? :wrangle, @crop and @crop.requester) or (cannot? :wrangle, @crop and @crop.new_record?)
%h2 Crop request notes
.form-group
= f.label :request_notes, 'Comments', :class => 'control-label col-md-2'
.col-md-8
= f.text_area :request_notes, :rows => 3, :class => 'form-control'
-# A final explanation of what's going to happen next, for crop requesters
- unless can? :wrangle, @crop
%p When you submit this form, your suggestion will be sent to our team of #{link_to 'volunteer crop wranglers', 'http://talk.growstuff.org/c/crop-wrangling'} for review. We'll let you know the outcome as soon as we can.
-# Now, for crop wranglers, let's have approval/rejection at the bottom of the page
- if can? :wrangle, @crop and @crop.requester
%h2 Approve or reject pending crops
.form-group
= f.label :approval_status, 'Approval status', :class=> 'control-label col-md-2'
.col-md-8
= f.select(:approval_status, @crop.approval_statuses, {}, {:class => 'form-control'})
.form-group
= f.label :reason_for_rejection, 'Reason for rejection', :class => 'control-label col-md-2'
.col-md-8
= f.select(:reason_for_rejection, @crop.reasons_for_rejection, {:include_blank => true}, {:class => 'form-control'})
.form-group
= f.label :rejection_notes, 'Rejection notes', :class => 'control-label col-md-2'
.col-md-8
= f.text_area :rejection_notes, :rows => 3, :class => 'form-control'
%span.help-block
Please provide additional notes why this crop request was rejected if the above reasons do not apply.
.form-group
= f.label :rejection_notes, 'Rejection Notes', :class => 'control-label col-md-2'
.col-md-8= f.text_area :rejection_notes, :rows => 6, :class => 'form-control'
- else
%p
%span.help-block
Provide any additional information that might help us assess your request.
.form-group
= f.label :request_notes, 'Comments', :class => 'control-label col-md-2'
.col-md-8= f.text_area :request_notes, :rows => 6, :class => 'form-control'
%p
%span.help-block
When you submit this form, your suggestion will be sent to our team of #{link_to 'volunteer crop wranglers', 'http://talk.growstuff.org/c/crop-wrangling'} for review. We'll let you know the outcome as soon as we can.
.form-group
.form-actions.col-md-offset-2.col-md-8

View File

@@ -1,10 +1,19 @@
- content_for :title, "Review crop: #{@crop.name}"
- content_for :title, "Edit crop: #{@crop.name}"
%p
Added by
= @crop.creator
= distance_of_time_in_words(@crop.created_at, Time.zone.now)
ago.
- if @crop.approval_status == "approved"
- if @crop.requester
%p Requested by #{link_to @crop.requester, @crop.requester} #{distance_of_time_in_words(@crop.created_at, Time.zone.now)} ago.
%p Approved by #{link_to @crop.creator, @crop.creator}.
- else
%p Added by #{link_to @crop.creator, @crop.creator} #{distance_of_time_in_words(@crop.created_at, Time.zone.now)} ago.
- elsif @crop.approval_status == "pending"
.alert.alert-danger
%p Requested by #{link_to @crop.requester, @crop.requester} #{distance_of_time_in_words(@crop.created_at, Time.zone.now)} ago.
%p Status: #{@crop.approval_status}.
- elsif @crop.approval_status == "rejected"
.alert.alert-danger
%p Requested by #{link_to @crop.requester, @crop.requester} #{distance_of_time_in_words(@crop.created_at, Time.zone.now)} ago.
%p Status: #{@crop.approval_status} by #{link_to @crop.creator, @crop.creator}.
= render 'form'

View File

@@ -29,7 +29,7 @@ feature "Requesting a new crop" do
scenario "Approve a request" do
visit edit_crop_path(crop)
select "approved", from: "Approval Status"
select "approved", from: "Approval status"
click_button "Save"
expect(page).to have_content "En wikipedia url is not a valid English Wikipedia URL"
fill_in "Wikipedia URL", with: "http://en.wikipedia.org/wiki/Aung_San_Suu_Kyi"
@@ -39,7 +39,7 @@ feature "Requesting a new crop" do
scenario "Rejecting a crop" do
visit edit_crop_path(crop)
select "rejected", from: "Approval Status"
select "rejected", from: "Approval status"
select "not edible", from: "Reason for rejection"
click_button "Save"
expect(page).to have_content "Crop was successfully updated."
@@ -47,4 +47,4 @@ feature "Requesting a new crop" do
end
end
end