Allow admins to remove credits from internal/users (#2635)
This commit is contained in:
parent
4c9959f0ff
commit
011e734ee0
4 changed files with 24 additions and 4 deletions
|
|
@ -42,6 +42,7 @@ class Internal::UsersController < Internal::ApplicationController
|
|||
make_matches
|
||||
add_note if user_params[:new_note]
|
||||
add_credits if user_params[:add_credits]
|
||||
remove_credits if user_params[:remove_credits]
|
||||
if user_params[:quick_match]
|
||||
redirect_to "/internal/users/unmatched_mentee"
|
||||
else
|
||||
|
|
@ -68,6 +69,11 @@ class Internal::UsersController < Internal::ApplicationController
|
|||
Credit.import credit_objects
|
||||
end
|
||||
|
||||
def remove_credits
|
||||
amount = user_params[:remove_credits].to_i
|
||||
@user.credits.where(spent: false).limit(amount).delete_all
|
||||
end
|
||||
|
||||
def user_status
|
||||
@user = User.find(params[:id])
|
||||
begin
|
||||
|
|
@ -138,6 +144,7 @@ class Internal::UsersController < Internal::ApplicationController
|
|||
:toggle_mentorship,
|
||||
:pro,
|
||||
:merge_user_id,
|
||||
:add_credits)
|
||||
:add_credits,
|
||||
:remove_credits)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
class User < ApplicationRecord
|
||||
include CloudinaryHelper
|
||||
|
||||
attr_accessor :scholar_email, :new_note, :quick_match, :mentorship_note, :note_for_current_role, :add_mentor, :add_mentee, :user_status, :toggle_mentorship, :pro, :merge_user_id, :add_credits
|
||||
attr_accessor :scholar_email, :new_note, :quick_match, :mentorship_note, :note_for_current_role, :add_mentor, :add_mentee, :user_status, :toggle_mentorship, :pro, :merge_user_id, :add_credits, :remove_credits
|
||||
|
||||
rolify
|
||||
include AlgoliaSearch
|
||||
|
|
|
|||
|
|
@ -1,11 +1,18 @@
|
|||
<div class="row">
|
||||
<h3><u>Credits</u></h3>
|
||||
<p>Avaiable Credits: <%= @user.credits.where(spent: false).size %></p>
|
||||
<p>Available Credits: <%= @user.credits.where(spent: false).size %></p>
|
||||
<%= form_for [:internal, @user] do |f| %>
|
||||
<%= f.label "Add Credit(s): " %>
|
||||
<br>
|
||||
<%= f.text_field :add_credits %>
|
||||
<%= f.text_field :add_credits, placeholder: "#" %>
|
||||
<br>
|
||||
<%= f.submit "Add Credits" %>
|
||||
<% end %>
|
||||
<%= form_for [:internal, @user] do |f| %>
|
||||
<%= f.label "Remove Credits(s)" %>
|
||||
<br>
|
||||
<%= f.text_field :remove_credits, placeholder: "#" %>
|
||||
<br>
|
||||
<%= f.submit "Remove Credits"%>
|
||||
<% end %>
|
||||
</div>
|
||||
|
|
@ -130,6 +130,12 @@ RSpec.describe "Internal::Users", type: :request do
|
|||
put "/internal/users/#{user.id}", params: { user: { new_note: "general note about whatever" } }
|
||||
expect(Note.last.content).to eq("general note about whatever")
|
||||
end
|
||||
|
||||
it "remove credits from account" do
|
||||
create_list(:credit, 5, user: user)
|
||||
put "/internal/users/#{user.id}", params: { user: { remove_credits: "3" } }
|
||||
expect(user.credits.size).to eq(2)
|
||||
end
|
||||
end
|
||||
|
||||
context "when deleting user" do
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue