Skip to content

Commit

Permalink
Merge branch 'njw-field-slips' into nimmo-field_slip-templates
Browse files Browse the repository at this point in the history
  • Loading branch information
mo-nathan committed Mar 25, 2024
2 parents 0702ccd + 87c26c0 commit ba3b56e
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 6 deletions.
22 changes: 16 additions & 6 deletions app/controllers/field_slips_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ def create
@field_slip = FieldSlip.new(field_slip_params)

respond_to do |format|
check_project_membership(@field_slip)
check_project_membership
check_for_last_obs
if params[:commit] == :field_slip_last_obs.t
@field_slip.observation = ObservationView.last(User.current)
end
Expand All @@ -72,9 +73,7 @@ def create
# PATCH/PUT /field_slips/1 or /field_slips/1.json
def update
respond_to do |format|
if params[:commit] == :field_slip_last_obs.t
@field_slip.observation = ObservationView.last(User.current)
end
check_for_last_obs
if @field_slip.update(field_slip_params)
format.html do
if params[:commit] == :field_slip_create_obs.t
Expand Down Expand Up @@ -124,11 +123,22 @@ def field_slip_params
params.require(:field_slip).permit(:observation_id, :project_id, :code)
end

def check_project_membership(slip)
project = slip&.project
def check_project_membership
project = @field_slip&.project
return unless project&.can_join?(User.current)

project.user_group.users << User.current
flash_notice(:field_slip_welcome.t(title: project.title))
end

def check_for_last_obs
return unless params[:commit] == :field_slip_last_obs.t

obs = ObservationView.last(User.current)
@field_slip.observation = obs
project = @field_slip.project
return unless obs && project&.user_can_add_observation?(obs, User.current)

project.add_observation(obs)
end
end
1 change: 1 addition & 0 deletions test/controllers/field_slips_controller_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ class FieldSlipsControllerTest < FunctionalTestCase
project_id: @field_slip.project_id } })
assert_redirected_to field_slip_url(@field_slip)
assert_equal(@field_slip.observation, ObservationView.last(User.current))
assert(@field_slip.project.observations.include?(obs))
end

test "should update field_slip and redirect to create obs" do
Expand Down

0 comments on commit ba3b56e

Please sign in to comment.